Man page - outsb(2)

Packages contains this manual

Available languages:

en fr pl ja ru ro de

Manual

outb

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВЕРСИИ
СТАНДАРТЫ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <sys/io.h>

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

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

void insb(unsigned short port , void addr [. count ],
unsigned long
count );
void insw(unsigned short
port , void addr [. count ],
unsigned long
count );
void insl(unsigned short
port , void addr [. count ],
unsigned long
count );
void outsb(unsigned short
port , const void addr [. count ],
unsigned long
count );
void outsw(unsigned short
port , const void addr [. count ],
unsigned long
count );
void outsl(unsigned short
port , const void addr [. count ],
unsigned long
count );

ОПИСАНИЕ

Это семейство вызовов используется для низкоуровневой работы с портами ввода/вывода. Вызовы out* выполняют запись в порт, а вызовы in* выполняют чтение из порта; вызовы с суффиксом b работают с данными шириной один байт, а вызовы с суффиксом w работают с данными шириной в одно слово; вызовы с суффиксом _p ждут завершения операции ввода-вывода.

В основном, они предназначены для использования внутри ядра, но могут быть вызваны и из пользовательского пространства.

Вы должны скомпилировать свою программу с флагами -O , -O2 и им подобными. Данные вызовы определены в виде встроенных макросов и не будут подставляться без включённой оптимизации, что приводит к появлению неразрешаемых ссылок в процессе компоновки программы.

Для того, чтобы запросить у ядра разрешение доступа к портам ввода-вывода из приложения, работающего в пользовательском пространстве, используйте ioperm (2) или iopl (2). Если этого не сделать, приложение получит сообщение об ошибке сегментации.

ВЕРСИИ

Вызовы outb () и ему подобные зависят от конкретного оборудования. Аргумент value передаётся первым, а port — вторым, что является обратным порядком по сравнению с большинством реализаций этих вызовов в DOS.

СТАНДАРТЫ

Отсутствуют.

СМОТРИТЕ ТАКЖЕ

ioperm (2), iopl (2)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .