Jump to content

PSD IRQ MASK: Difference between revisions

From EDM2
Created page with "Mask/Unmask IRQ levels. This function allows masking (disabling), or un-masking (enabling) of IRQ levels. When this function is invoked it should save the state of the interr..."
 
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:PSD_IRQ_MASK}}
Mask/Unmask IRQ levels.
Mask/Unmask IRQ levels.


This function allows masking (disabling), or un-masking (enabling) of IRQ levels. When this function is invoked it should save the state of the interrupt flag, and disable interrupts before performing the mask operation . It should then restore the state of the interrupt flag.
This function allows masking (disabling), or un-masking (enabling) of IRQ levels. When this function is invoked it should save the state of the interrupt flag, and disable interrupts before performing the mask operation. It should then restore the state of the interrupt flag.
 
;Mode: Called in Kernel, and Interrupt Mode.
; Mode : Called in Kernel, and Interrupt Mode.


==Syntax==  
==Syntax==  
Line 10: Line 10:
==Parameters==
==Parameters==
; Entry : Pointer to PSD_IRQ structure.
; Entry : Pointer to PSD_IRQ structure.
   ulong_t flags;    (Input)
   ulong_t flags;    (Input)
   ulong_t data;    (Input/Output)
   ulong_t data;    (Input/Output)
   ulong_t procnum;  (Input)
   ulong_t procnum;  (Input)
; flags : indicate which type of operation is to be performed.
; flags : indicate which type of operation is to be performed.
:: IRQ_MASK mask (disable) IRQ levels
:: IRQ_MASK mask (disable) IRQ levels
Line 20: Line 18:
:: IRQ_GETMASK retrieves the masks for all IRQ levels
:: IRQ_GETMASK retrieves the masks for all IRQ levels
:: IRQ_NEWMASK indicates that all the IRQ levels should reflect the state of the specified mask.
:: IRQ_NEWMASK indicates that all the IRQ levels should reflect the state of the specified mask.
; data : is the logical IRQ levels to mask, or un-mask.
;data: is the logical IRQ levels to mask, or un-mask.
; procnum : is the processor number of where the operation should take place.
;procnum: is the processor number of where the operation should take place.


==Return Code==
==Return Code==
; NO_ERROR : operation completed successfully.
;NO_ERROR : operation completed successfully.
; -1 : operation failed.
;-1 : operation failed.


==Remarks==
==Remarks==

Latest revision as of 02:41, 20 May 2025

Mask/Unmask IRQ levels.

This function allows masking (disabling), or un-masking (enabling) of IRQ levels. When this function is invoked it should save the state of the interrupt flag, and disable interrupts before performing the mask operation. It should then restore the state of the interrupt flag.

Mode
Called in Kernel, and Interrupt Mode.

Syntax

PSD_IRQ_MASK <keywords>

Parameters

Entry
Pointer to PSD_IRQ structure.
  ulong_t flags;    (Input)
  ulong_t data;     (Input/Output)
  ulong_t procnum;  (Input)
flags
indicate which type of operation is to be performed.
IRQ_MASK mask (disable) IRQ levels
IRQ_UNMASK unmask (enable) IRQ levels
IRQ_GETMASK retrieves the masks for all IRQ levels
IRQ_NEWMASK indicates that all the IRQ levels should reflect the state of the specified mask.
data
is the logical IRQ levels to mask, or un-mask.
procnum
is the processor number of where the operation should take place.

Return Code

NO_ERROR
operation completed successfully.
-1
operation failed.

Remarks

  • Optional: the function is not required.
  • The OS/2 kernel provides default handling for that specific function.
  • The function can not call a PSD help that may block.

Structure

typedef struct psd_irq_s {
   ulong_t flags;    (Input)
   ulong_t data;     (Input/Output)
   ulong_t procnum;  (Input)
} PSD_IRQ;