Read a 32-bit value from a port
#include <hw/inout.h> uint32_t in32( uintptr_t port ); #define inbe32 ( port ) ... #define inle32 ( port ) ...
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The in32() function reads a 32-bit value from the specified port.
The inbe32() and inle32() macros read a 32-bit value that's in big-endian or little-endian format, respectively, from the specified port, and returns the value as native-endian.
The inbe32() and inle32() macros access the specified port more than once if endian conversion is necessary. This could be a problem on some hardware. |
A 32-bit value in native-endian.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |
The calling thread must have I/O privileges; see ThreadCtl()'s _NTO_TCTL_IO command for details.
The calling process must also use mmap_device_io() to access the device's I/O registers.
Both inbe32() and inle32() are implemented as macros.
in8(), in8s(), in16(), in16s(), in32s(), mmap_device_io(), out8(), out8s(), out16(), out16s(), out32(), out32s()