in16s()

Read 16-bit values from a port

Synopsis:

#include <hw/inout.h>

void * in16s( void * buff,
              unsigned len,
              uintptr_t port );

Arguments:

buff
A pointer to a buffer where the function can store the values read.
len
The number of values that you want to read.
port
The port you want to read the values from.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

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 and x86_64 targets, the process must have the PROCMGR_AID_IO ability enabled, and calling thread must have I/O privileges, or else it will fault with a SIGSEGV; see procmgr_ability(), and the ThreadCtl() _NTO_TCTL_IO command.

Returns:

A pointer to the end of the read data.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes