From cf6d90b6f283bdfbcd36440f14e4b86bfa5b9153 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Fri, 19 Nov 2010 23:16:50 +0000 Subject: [PATCH] [ASM] Add more constants for ks386.inc svn path=/branches/cmake-bringup/; revision=49647 --- include/asm/genincdata.c | 15 +++++++++++ include/asm/ks386.template.h | 48 ++++++++++++++++++++++++++++++------ 2 files changed, 55 insertions(+), 8 deletions(-) diff --git a/include/asm/genincdata.c b/include/asm/genincdata.c index 22a46051926..0b4cf031250 100644 --- a/include/asm/genincdata.c +++ b/include/asm/genincdata.c @@ -15,6 +15,21 @@ #include #include +// FIXME: where to put this? +typedef struct _FIBER /* Field offsets: */ +{ /* 32 bit 64 bit */ + /* this must be the first field */ + PVOID Parameter; /* 0x00 0x00 */ + struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList; /* 0x04 0x08 */ + PVOID StackBase; /* 0x08 0x10 */ + PVOID StackLimit; /* 0x0C 0x18 */ + PVOID DeallocationStack; /* 0x10 0x20 */ + CONTEXT Context; /* 0x14 0x28 */ + ULONG GuaranteedStackBytes; /* 0x2E0 */ + PVOID FlsData; /* 0x2E4 */ + PVOID ActivationContextStack; /* 0x2E8 */ +} FIBER, *PFIBER; + typedef struct { char Type; diff --git a/include/asm/ks386.template.h b/include/asm/ks386.template.h index ebb934dc8dd..8b874089fa6 100644 --- a/include/asm/ks386.template.h +++ b/include/asm/ks386.template.h @@ -349,6 +349,31 @@ OFFSET(CONTEXT_SEGSS, CONTEXT, SegSs), //OFFSET(CONTEXT_FRAME_LENGTH 0x2D0 SIZE(CONTEXT_FRAME_LENGTH, CONTEXT), +HEADER("FIBER"), +OFFSET(FIBER_PARAMETER, FIBER, Parameter), +OFFSET(FIBER_EXCEPTION_LIST, FIBER, ExceptionList), +OFFSET(FIBER_STACK_BASE, FIBER, StackBase), +OFFSET(FIBER_STACK_LIMIT, FIBER, StackLimit), +OFFSET(FIBER_DEALLOCATION_STACK, FIBER, DeallocationStack), +OFFSET(FIBER_CONTEXT, FIBER, Context), +OFFSET(FIBER_CONTEXT_FLAGS, FIBER, Context.ContextFlags), +OFFSET(FIBER_CONTEXT_EAX, FIBER, Context.Eax), +OFFSET(FIBER_CONTEXT_EBX, FIBER, Context.Ebx), +OFFSET(FIBER_CONTEXT_ECX, FIBER, Context.Ecx), +OFFSET(FIBER_CONTEXT_EDX, FIBER, Context.Edx), +OFFSET(FIBER_CONTEXT_ESI, FIBER, Context.Esi), +OFFSET(FIBER_CONTEXT_EDI, FIBER, Context.Edi), +OFFSET(FIBER_CONTEXT_EBP, FIBER, Context.Ebp), +OFFSET(FIBER_CONTEXT_EIP, FIBER, Context.Eip), +OFFSET(FIBER_CONTEXT_ESP, FIBER, Context.Esp), +OFFSET(FIBER_CONTEXT_DR6, FIBER, Context.Dr6), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD, FIBER, Context.FloatSave.ControlWord), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD, FIBER, Context.FloatSave.StatusWord), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD, FIBER, Context.FloatSave.TagWord), +OFFSET(FIBER_GUARANTEED_STACK_BYTES, FIBER, GuaranteedStackBytes), +OFFSET(FIBER_FLS_DATA, FIBER, FlsData), +OFFSET(FIBER_ACTIVATION_CONTEXT_STACK, FIBER, ActivationContextStack), + HEADER("KTSS"), OFFSET(KTSS_IOMAPBASE, KTSS, IoMapBase), OFFSET(KTSS_ESP0, KTSS, Esp0), @@ -406,6 +431,20 @@ OFFSET(KPROCESS_IOPM_OFFSET, KPROCESS, IopmOffset), //OFFSET(KPROCESS_ACTIVE_PROCESSORS 0x34 //OFFSET(EPROCESS_VDM_OBJECTS 0x144 +HEADER("Teb"), +OFFSET(TEB_EXCEPTION_LIST, TEB, NtTib.ExceptionList), +OFFSET(TEB_STACK_LIMIT, TEB, NtTib.StackLimit), +OFFSET(TEB_STACK_BASE, TEB, NtTib.StackBase), +OFFSET(TEB_SELF, TEB, NtTib.Self), +OFFSET(TEB_FIBER_DATA, TEB, NtTib.FiberData), +OFFSET(TEB_PEB, TEB, ProcessEnvironmentBlock), +OFFSET(TEB_EXCEPTION_CODE, TEB, ExceptionCode), +OFFSET(PEB_KERNEL_CALLBACK_TABLE, PEB, KernelCallbackTable), +OFFSET(TEB_FLS_DATA, TEB, FlsData), +OFFSET(TEB_ACTIVATION_CONTEXT_STACK_POINTER, TEB, ActivationContextStackPointer), +OFFSET(TEB_GUARANTEED_STACK_BYTES, TEB, GuaranteedStackBytes), +OFFSET(TEB_DEALLOCATION_STACK, TEB, DeallocationStack), + HEADER("Misc"), CONSTANT(NPX_FRAME_LENGTH), CONSTANT(FN_CR0_NPX_STATE), @@ -419,18 +458,11 @@ CONSTANT(CBSTACK_RESULT_LENGTH), CONSTANT(CBSTACK_TRAP_FRAME), CONSTANT(CBSTACK_CALLBACK_STACK), SIZE(SIZEOF_FX_SAVE_AREA, FX_SAVE_AREA), -OFFSET(TEB_EXCEPTION_LIST, TEB, NtTib.ExceptionList), -OFFSET(TEB_STACK_LIMIT, TEB, NtTib.StackLimit), -OFFSET(TEB_STACK_BASE, TEB, NtTib.StackBase), -OFFSET(TEB_PEB, TEB, ProcessEnvironmentBlock), -OFFSET(TEB_EXCEPTION_CODE, TEB, ExceptionCode), -OFFSET(PEB_KERNEL_CALLBACK_TABLE, PEB, KernelCallbackTable), CONSTANT(KUSER_SHARED_SYSCALL), CONSTANT(EXCEPTION_EXECUTE_HANDLER), CONSTANT(STATUS_CALLBACK_POP_STACK), CONSTANT(CONTEXT_ALIGNED_SIZE), - - +CONSTANT(PROCESSOR_FEATURE_FXSR),