forked from xt-sys/exectos
		
	Add context control flags and thread frames for i686 architecture
This commit is contained in:
		| @@ -116,6 +116,15 @@ | ||||
| #define EFLAGS_ID_MASK                    0x00200000L | ||||
| #define EFLAGS_USER_SANITIZE              0x003F4DD7L | ||||
|  | ||||
| /* Context control flags */ | ||||
| #define CONTEXT_ARCHITECTURE              0x00010000 | ||||
| #define CONTEXT_CONTROL                   (CONTEXT_ARCHITECTURE | 0x01) | ||||
| #define CONTEXT_INTEGER                   (CONTEXT_ARCHITECTURE | 0x02) | ||||
| #define CONTEXT_SEGMENTS                  (CONTEXT_ARCHITECTURE | 0x04) | ||||
| #define CONTEXT_FLOATING_POINT            (CONTEXT_ARCHITECTURE | 0x08) | ||||
| #define CONTEXT_DEBUG_REGISTERS           (CONTEXT_ARCHITECTURE | 0x10) | ||||
| #define CONTEXT_EXTENDED_REGISTERS        (CONTEXT_ARCHITECTURE | 0x20) | ||||
|  | ||||
| /* Interrupt request levels definitions */ | ||||
| #define PASSIVE_LEVEL                     0 | ||||
| #define LOW_LEVEL                         0 | ||||
| @@ -345,6 +354,15 @@ typedef struct _KEXCEPTION_FRAME | ||||
|     ULONG PlaceHolder; | ||||
| } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; | ||||
|  | ||||
| /* Thread start frame definition */ | ||||
| typedef struct _KSTART_FRAME | ||||
| { | ||||
|     PKSYSTEM_ROUTINE SystemRoutine; | ||||
|     PKSTART_ROUTINE StartRoutine; | ||||
|     PVOID StartContext; | ||||
|     BOOLEAN UserMode; | ||||
| } KSTART_FRAME, *PKSTART_FRAME; | ||||
|  | ||||
| /* Switch frame definition */ | ||||
| typedef struct _KSWITCH_FRAME | ||||
| { | ||||
| @@ -393,6 +411,15 @@ typedef struct _KTRAP_FRAME | ||||
|     ULONG V86Gs; | ||||
| } KTRAP_FRAME, *PKTRAP_FRAME; | ||||
|  | ||||
| /* Thread initialization frame definition */ | ||||
| typedef struct _KTHREAD_INIT_FRAME | ||||
| { | ||||
|     KSWITCH_FRAME SwitchFrame; | ||||
|     KSTART_FRAME StartFrame; | ||||
|     KTRAP_FRAME TrapFrame; | ||||
|     FX_SAVE_AREA NpxFrame; | ||||
| } KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME; | ||||
|  | ||||
| /* Special kernel registers structure definition */ | ||||
| typedef struct _KSPECIAL_REGISTERS | ||||
| { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user