problem s napsanim funkce pro hw i/o

Martin Mares mj na atrey.karlin.mff.cuni.cz
Pátek Leden 8 00:01:45 CET 1999


Zdravim,

> Makra jsem inb, outb jsem nepouzil, protoze nejsem toho schopen. Pri
> kompilaci mi to napise undefined reference to '__outbc, __outb. Pritom mam
> explicitne #include <io.h>.

   Jelikoz mnohe z techto funkci definovany jako extern inline, je program
nutno kompilovat s optimalizacemi (-O), aby se opravdu inlinovaly.
 
> void outb( unsigned char value, unsigned short port)
> {
>       __asm__ __volatile__ ("outb %b0,%w1"  : : "a" (value), "d" (port));
> //    __asm__ __volatile__ ("outb %b0,%1"  : : "a" (value), "id" (port));
> 
> 
> }
> 
> Zkompiluje se to, ale pri vlastnim pouziti funkce vybehne chyba
> 'Segmentation fault. Tak nevim co s tim dal.

   Zadny proces nema pravo primo pristupovat na porty, pokud o to nepozada
jadro. To muze ucinit pouze bezi-li s rootovskymi pravy, a to za pomoci
funkci ioperm(), pripadne iopl().

				Have a nice fortnight
-- 
Martin `MJ' Mares   <mj na ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"We all live in a yellow subroutine."


Další informace o konferenci Linux