Read 16-bit values from a port
#include <hw/inout.h>
void * in16s( void * buff,
unsigned len,
uintptr_t port );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The in16s() function reads len 16-bit values from the specified port and stores them in the buffer pointed to by buff.
The calling process must use mmap_device_io() to access the device's I/O registers.
On x86 targets, the calling thread must have the PROCMGR_AID_IO ability enabled and must have I/O privileges, or else it will fault with a SIGSEGV; see procmgr_ability(), and the ThreadCtl() _NTO_TCTL_IO command.
A pointer to the end of the read data.
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | Yes |
| Signal handler | Yes |
| Thread | Yes |