in32(), inbe32(), inle32()

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

Прототип:

#include <hw/inout.h>
uint32_t in32( uintptr_t port );
#define inbe32 ( port ) ...
#define inle32 ( port ) ...

Аргументы:

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

Библиотека:

libc

Описание:

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

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


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


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

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

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

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

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

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

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

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

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

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

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




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