LIBALPHA(2)

NAME
dense_base, inb, inl, inw, ioperm, map_memory, outb, outl, outw, readb, readl, readw, unmap_memory, writeb, writel, writew - Alpha devices I/O ports and memory access functions

SYNOPSIS
u_int64_t
dense_base(void);
u_int8_t
inb(u_int32_t port);
u_int32_t
inl(u_int32_t port);
u_int16_t
inw(u_int32_t port);
int
ioperm(unsigned long from, unsigned long num, int on);
void *
map_memory(u_int32_t address, u_int32_t size);
void
outb(u_int32_t port, u_int8_t val);
void
outl(u_int32_t port, u_int32_t val);
void
outw(u_int32_t port, u_int16_t val);
u_int8_t
readb(void *handle, u_int32_t offset);
u_int32_t
readl(void *handle, u_int32_t offset);
u_int16_t
readw(void *handle, u_int32_t offset);
void
unmap_memory(void *handle, u_int32_t size);
void
writeb(void *handle, u_int32_t offset, u_int8_t val);
void
writel(void *handle, u_int32_t offset, u_int32_t val);
void
writew(void *handle, u_int32_t offset, u_int16_t val);

DESCRIPTION
The functions in libalpha give userland programs access to the I/O ports on the OpenBSD/alpha platform.

The in*() functions return data read from the specified I/O port.

The out*() functions write data to the specified I/O port.

ioperm() enables access to the specified port numbers if on is TRUE and disables access if on is FALSE.

The map_memory() function allows a user program to map part of a device memory.

The unmap_memory() function unmaps memory that was previously mapped by map_memory().

The read*() functions read data from device memory previously mapped by map_memory().

The write*() functions write data to the device memory previously mapped by map_memory().

Note: Code using these functions must be compiled using -lalpha.

HISTORY
These functions originally appeared in FreeBSD.

CAVEATS
Only BWX bus access method is supported for now. Machines requiring swiz type access are not supported.

Root credentials are needed to use these functions.