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]