in16(), inbe16(), inle16()

Считать 16-битное значение из порта

Прототип:

#include <hw/inout.h>
uint16_t in16( uintptr_t port );
#define inbe16( port ) ...
#define inle16( port ) ...

Аргументы:

port
Порт, из которого необходимо считать значение.

Библиотека:

libc

Описание:

Функция in16() считывает 16-битное значение из указанного порта port.

Макросы inbe16() и inle16() считывают 16-битное значение с прямым или обратным порядком байт (big-endian или little-endian) из указанного порта port и возвращают значение с порядком байт процессора (native-endian).


Caution: Если необходима конвертация порядка байт, макросы inbe16() и inle16() используют указанный порт более одного раз. Это может привести к проблемам на некоторых устройствах.

Возвращаемое значение:

16-битное значение с порядоком байт процессора (native-endian).

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Предостережения:

Вызывающий поток должен иметь привилегии ввода/вывода; Подробнее в описании ThreadCtl() и команды _NTO_TCTL_IO

Вызывающий процесс должен использовать mmap_device_io() для получения доступа к регистрам ввода/вывода устройства.

inbe16() и inle16() реализованы в виде макросов.

Тематические ссылки:

in8(), in8s(), in16s(), in32(), in32s(), mmap_device_io(), out8(), out8s(), out16(), out16s(), out32(), out32s()




Предыдущий раздел: Описание API системной библиотеки