PSD_PORT_IO
PSD_PORT_IO keywords
Optional, Default, Can't
Block
Description
Perform local port I/O.
Some platforms have some non MP specific system ports localized on a per-processor
basis. If a local I/O operation may block before completion, I/O can be
routed to a specific CPU for processing. This should be done, because an
operation which started on one processor is not guaranteed to complete on
that processor if execution is blocked. This function gets invoked as the
result of a device driver calling DevHelp_Port_IO.
Mode
Called in Kernel, and Interrupt
Mode.
Entry
Pointer to a PORT_IO structure.
Exit
NO_ERROR
if the I/O was successful.
-1
if the I/O wasn't successful.
Structures
typedef struct port_io_s{
ulong_t port; (Input)
ulong_t data; (Input/Output)
ulong_t flags; (Input)
} PORT_IO;
port
indicates which port
to read to, or write from.
data
contains the data read from a read request,
or the data to write if a write request. If the request uses less the 4
bytes the least significant portion of the data variable is used.
flags
indicate what operation to perform.
IO_READ_BYTE
Read a byte from the port
IO_READ_WORD
Read a word from the port
IO_READ_DWORD
Read a dword from the port
IO_WRITE_BYTE
IO_WRITE_WORD
IO_WRITE_DWORD
Write a dword to the port
Notes
If the I/O performed is to a non-local
port, the I/O should be handled as a regular I/O request.
If device drivers or applications access the local ports directly, instead
of using the documented interfaces problems may occur.
[Back: PSD_END_IPI]
[Next: PSD_IRQ_MASK]