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