NAME
arch – architecture–specific information and control |
SYNOPSIS
bind –a #P /dev /dev/acpitbls /dev/archctl /dev/cputype /dev/ec /dev/ioalloc /dev/iob /dev/iol /dev/iow /dev/irqalloc /dev/msr /dev/realmodemem |
DESCRIPTION
This device presents textual information about PC hardware and
allows user–level control of the I/O ports on x86–class machines.
Reads from cputype recover the processor type and clock rate in
MHz. Reads from archctl yield at least data of this form:
Reads from ioalloc return I/O ranges used by each device, one line per range. Each line contains three fields separated by white space: first address in hexadecimal, last address, name of device. Reads from irqalloc return the enabled interrupts, one line per interrupt. Each line contains three fields separated by white space: the trap number, the IRQ it is assigned to, and the name of the device using it. Reads and writes to iob, iow, and iol cause 8–bit wide, 16–bit wide, and 32–bit wide requests to I/O ports. The port accessed is determined by the byte offset of the file descriptor. Reads and writes to msr go to the P4/P6/Core/Core2/AMD64 MSRs. The realmodemem file provides access to the first megabyte of memory. This allows reading BIOS data structures and option ROMs. Writing is limited to the VGA framebuffer at [0xA0000–0xBFFFF]. Reads and writes to ec transfer bytes from and to the embedded controller.
Reads from acpitbls return a concatenation of system ACPI tables.
Each table is prefixed with a fixed size header that gives the
name signature and size of the table (see section 5.2.6 System
Description Table Header in the ACPI specification). |
EXAMPLE
The following code reads from an x86 byte I/O port.
|
SOURCE
/sys/src/9/pc/devarch.c |