Что такое вызов функции outb() в Linux?
Может кто-нибудь объяснить, пожалуйста, значение
outb(0x10,short_base+2);
Я попытался выяснить, прибегая к помощи, но безрезультатно.
2 ответа
Системные вызовы описаны в разделе 2 справочных страниц: man 2 outb
void outb(unsigned char value, unsigned short int port);
DESCRIPTION
This family of functions is used to do low-level port input and output.
The out* functions do port output, the in* functions do port input; the
b-suffix functions are byte-width and the w-suffix functions word-width;
the _p-suffix functions pause until the I/O completes.
Чтобы ответить на ваш вопрос:
outb - это функция-оболочка для инструкции по сборке с тем же именем, используемая для связи с устройствами с отображением портов, например, диапазон адресов ввода / вывода 0x60-0x6F используется для клавиатуры в IBM PC-совместимых компьютерах.
Теперь, что такое IO с отображением портов?
Метод связи ЦП с периферийным устройством, и он используется, когда процессор использует другую адресную шину для связи с устройствами и памятью, что требует специальных инструкций.
Сопоставление памяти с вводом-выводом является другим и наиболее распространенным методом в настоящее время, где не требуется никаких специальных инструкций, поскольку все живет в одном и том же адресном пространстве.