📄 interrupt.h
字号:
/***************************************************************************
** File name : interrupt.h
** Author : x.cheng
** Create date :
**
** Comments:
** interrupt...
**
** Revisions:
** $Log: interrupt.h,v $
** Revision 1.1 2005/08/05 15:07:03 x.cheng
** add into repositories
**
**
***************************************************************************/
#ifndef __INTERRUPT_H__
#define __INTERRUPT_H__
//#define _DEBUG_ISR__
// Context after an interrupt.
typedef struct IrqContext_Struct
{
// General purpose register.
unsigned long ulEdi, ulEsi, ulEbp, ulEbx, ulEdx, ulEcx, ulEax;
unsigned long ulEs, ulDs; // Segment register.
unsigned long ulIrqNb; // The interrupt number.
unsigned long ulEip; // Current instruction pointer (k.a. program counter).
unsigned long ulCs; // Code segment register.
unsigned long ulEflags; // EFLAGS register.
} __attribute__ ((packed)) ts_IrqContext;
// Context of a user task after an interrupt.
typedef struct IrqUserContext_Struct
{
// General purpose register.
unsigned long ulEdi, ulEsi, ulEbp, ulEbx, ulEdx, ulEcx, ulEax;
unsigned long ulEs, ulDs; // Segment register.
unsigned long ulIrqNb; // The interrupt number.
unsigned long ulEip; // Current instruction pointer (k.a. program counter).
unsigned long ulCs; // Code segment register.
unsigned long ulEflags; // EFLAGS register.
unsigned long ulUserEsp; // User stack pointer register.
unsigned long ulUserSs; // User stack segment register.
} __attribute__ ((packed)) ts_IrqUserContext;
// Context after a system call.
typedef struct SystemCallContext_Struct
{
unsigned long _ulDummy;
// General purpose register.
unsigned long ulEdi, ulEsi, ulEbp, ulEbx, ulEdx, ulEcx, ulEax;
unsigned long ulEs, ulDs; // Segment register.
unsigned long ulEip; // Current instruction pointer (k.a. program counter).
unsigned long ulCs; // Code segment register.
unsigned long ulEflags; // EFLAGS register.
unsigned long ulUserEsp; // User stack pointer register.
unsigned long ulUserSs; // User stack segment register.
} __attribute__ ((packed)) ts_SystemCallConext;
typedef struct InterruptHandler_Struct
{
void (*fpIrqHandler)( ts_IrqContext * );
} ts_InterruptHandler;
void DefaultInterruptHandler(ts_IrqContext * pstContext);
void Tp4IsrInstallHandler( unsigned char ucIrq, void *pvHandler );
#define IsrInstallHandler( ucIrq, pvHandler ) \
Tp4IsrInstallHandler( (unsigned char)ucIrq, (void *)pvHandler );
#endif /* end of __INTERRUPT_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -