Jump to content

PSD INIT: Difference between revisions

From EDM2
No edit summary
No edit summary
 
Line 5: Line 5:


; Mode:  Called in Init Mode only.
; Mode:  Called in Init Mode only.
*Required, Can Block.


==Syntax==
==Syntax==

Latest revision as of 18:11, 24 May 2025

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.
  • Required, Can Block.

Syntax

PSD_INIT <keywords>

Parameters

Entry
Pointer to INIT structure

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.

Return Code

Exit:

NO_ERROR
if the PSD initialized successfully.
-1
if the PSD didn't initialize.

Remarks

  • This function is required for OS/2 to operate properly, so the function can not be omitted.
  • This function can call a PSD help that may block.