Provided by: manpages-pl-dev_0.6-2_all bug

NAZWA

       outb,  outw,  outl,  outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p,
       outl_p, inb_p, inw_p, inl_p - wejście/wyjście portów

SKŁADNIA

       #include <sys/io.h>

       unsigned char inb(unsigned short int port);
       unsigned char inb_p(unsigned short int port);
       unsigned short int inw(unsigned short int port);
       unsigned short int inw_p(unsigned short int port);
       unsigned int inl(unsigned short int port);
       unsigned int inl_p(unsigned short int port);

       void outb(unsigned char value, unsigned short int port);
       void outb_p(unsigned char value, unsigned short int port);
       void outw(unsigned short int value, unsigned short int port);
       void outw_p(unsigned short int value, unsigned short int port);
       void outl(unsigned int value, unsigned short int port);
       void outl_p(unsigned int value, unsigned short int port);

       void insb(unsigned short int port, void *addr,
                  unsigned long int count);
       void insw(unsigned short int port, void *addr,
                  unsigned long int count);
       void insl(unsigned short int port, void *addr,
                  unsigned long int count);
       void outsb(unsigned short int port, const void *addr,
                  unsigned long int count);
       void outsw(unsigned short int port, const void *addr,
                  unsigned long int count);
       void outsl(unsigned short int port, const void *addr,
                  unsigned long int count);

OPIS

       Ta rodzina funkcji jest używana do wykonywania niskopoziomowych odczytów z portu i zapisów
       do  portu.  Funkcje  "out*"  zapisują do portu, funkcje "in*" odczytują z portu; funkcje z
       sufiksem "b" operują na bajtach, a z sufiksem "w" — na słowach;  funkcje  z  sufiksem  "p"
       czekają na zakończenie operacji wejścia/wyjścia.

       Są  przeznaczone  głównie  do  użytku wewnątrz jądra, lecz mogą być też używane w warstwie
       użytkownika.

       Trzeba je kompilować z -O lub -O2 lub z czymś podobnym. Funkcje te  są  zdefiniowane  jako
       makra inline i nie będą podstawione bez włączonej optymalizacji, powodując niezdefiniowane
       referencje podczas konsolidacji.

       Aby przekazać jądru, że warstwa użytkownika chce uzyskać dostęp do żądanych portów, należy
       użyć  ioperm(2)  lub iopl(2). Błąd podczas wykonywanie tej operacji spowoduje błąd ochrony
       pamięci.

ZGODNE Z

       outb() i przyjaciele są zależne od sprzętu, na którym  działają.  Pierwszym  przekazywanym
       argumentem  jest  value,  a  drugim  —  port,  czyli  kolejność argumentów jest odwrotna w
       stosunku do większości implementacji DOS-owych.

ZOBACZ TAKŻE

       ioperm(2), iopl(2)

O STRONIE

       Angielska wersja tej strony  pochodzi  z  wydania  3.71  projektu  Linux  man-pages.  Opis
       projektu,  informacje  dotyczące  zgłaszania błędów, oraz najnowszą wersję oryginału można
       znaleźć pod adresem http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek  Borys  (PTM)
       <pborys@dione.ids.pl>, Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl> i Robert Luberda
       <robert@debian.org>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów  na
       stronie   http://sourceforge.net/projects/manpages-pl/.   Jest   zgodne   z  wersją   3.71
       oryginału.