ptos: hal: Add high-level interrupt interface groundwork
Signed-off-by: Chloe M. <chloe@mensia.org>
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2026, Chloe M.
|
||||||
|
* Provided under the BSD-3 clause.
|
||||||
|
*
|
||||||
|
* Description: High-level interrupt management
|
||||||
|
* Author: Chloe M.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _HAL_INTR_H_
|
||||||
|
#define _HAL_INTR_H_ 1
|
||||||
|
|
||||||
|
#include <ptdef.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Represents value interrupt request levels that can be set within
|
||||||
|
* the machine specific task priority store.
|
||||||
|
*/
|
||||||
|
#define IRQL_PASSIVE 0
|
||||||
|
#define IRQL_APC 1
|
||||||
|
#define IRQL_DISPATCH 2
|
||||||
|
#define IRQL_DEV_IRQ 3
|
||||||
|
#define IRQL_HIGH 4
|
||||||
|
|
||||||
|
/* Interrupt request level type */
|
||||||
|
typedef UCHAR IRQL;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Represents an interrupt handler
|
||||||
|
*
|
||||||
|
* @Handler: Actual in-driver handler [@Data: driver specific data]
|
||||||
|
* @Irql: IRQL of this handler context
|
||||||
|
* @Present: If true, entry is present
|
||||||
|
*
|
||||||
|
* XXX: This structured must be consistently ordered as it is
|
||||||
|
* read from assembly, always add to the bottom !!
|
||||||
|
*/
|
||||||
|
typedef struct _INTR_HANDLER {
|
||||||
|
PT_STATUS(*Handler)(VOID *Data);
|
||||||
|
IRQL Irql;
|
||||||
|
BOOLEAN Present;
|
||||||
|
} INTR_HANDLER;
|
||||||
|
|
||||||
|
#endif /* !_HAL_INTR_H_ */
|
||||||
Reference in New Issue
Block a user