PSD_INIT
PSD_INIT keywords
Description
Initialize the PSD.
This function is called to initialize the PSD. It is used to allocate and
initialize any resources that the PSD may require, as well as initializing
the state of the hardware. This function should only initialize the state
of the hardware in general. Initialization of CPUs should be done in ProcInit.
It must fill in the INIT structure passed to it by OS/2. This function is
only called once on CPU0.
Mode
Called in Init Mode only.
Entry
Pointer to INIT structure
Exit
NO_ERROR
if the PSD initialized successfully.
-1
if the PSD didn't initialize.
Structures
typedef struct init_s{
ulong_t flags; (Output)
ulong_t version; (Output)
} INIT;
flags
in the INIT structure
indicate any special features or requirement that the PSD may have.
INIT_GLOBAL_IRQ_ACCESS
indicates that the platform can perform IRQ operations
(e.g. PIC masking) on any processor. If this flag is omitted, the IRQ functions
are guaranteed to only get called on CPU0, otherwise they may get called
on any processor. If the flag is omitted and an IRQ operation is initiated
on a processor other then CPU0, the OS/2 kernel will route the request to
CPU0.
INIT_USE_FPERR_TRAP
indicates that Trap 16
will be used to report floating point errors, instead of IRQ 13. If this
flag is set, the kernel sets the NE flag in CR0 for all processors. The
PSD is responsible for doing any additional work for making the transition.
INIT_EOI_IRQ13_ON_CPU0
indicates that an EOI
for a floating point error using IRQ13 should only be performed from CPU0.
On CPU1-N, the hardware is responsible for clearing the interrupt.
version
indicates the version number of this
PSD. It should be updated appropriately as this will help with service.
Notes
[Back: PSD_DEINSTALL]
[Next: PSD_PROC_INIT]