mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 12:40:33 +00:00
- Header cleanup
- Rename ObInit to ObInitSystem - Add missing KPCR_PRCB_PRCB_LOCK offset to the NDK svn path=/trunk/; revision=35345
This commit is contained in:
parent
1e1fc03ade
commit
39775880e5
6 changed files with 32 additions and 85 deletions
|
@ -191,6 +191,7 @@ Author:
|
||||||
#define KPCR_PROCESSOR_NUMBER 0x130
|
#define KPCR_PROCESSOR_NUMBER 0x130
|
||||||
#define KPCR_PRCB_SET_MEMBER 0x134
|
#define KPCR_PRCB_SET_MEMBER 0x134
|
||||||
#define KPCR_PRCB_CPU_TYPE 0x138
|
#define KPCR_PRCB_CPU_TYPE 0x138
|
||||||
|
#define KPCR_PRCB_PRCB_LOCK 0xA7C
|
||||||
#define KPCR_NPX_THREAD 0x640
|
#define KPCR_NPX_THREAD 0x640
|
||||||
#define KPCR_DR6 0x428
|
#define KPCR_DR6 0x428
|
||||||
#define KPCR_DR7 0x42C
|
#define KPCR_DR7 0x42C
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ ExpInitializeExecutive(IN ULONG Cpu,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Create the Basic Object Manager Types to allow new Object Types */
|
/* Create the Basic Object Manager Types to allow new Object Types */
|
||||||
if (!ObInit()) KEBUGCHECK(OBJECT_INITIALIZATION_FAILED);
|
if (!ObInitSystem()) KEBUGCHECK(OBJECT_INITIALIZATION_FAILED);
|
||||||
|
|
||||||
/* Load basic Security for other Managers */
|
/* Load basic Security for other Managers */
|
||||||
if (!SeInit()) KEBUGCHECK(SECURITY_INITIALIZATION_FAILED);
|
if (!SeInit()) KEBUGCHECK(SECURITY_INITIALIZATION_FAILED);
|
||||||
|
@ -1516,7 +1516,7 @@ Phase1InitializationDiscard(IN PVOID Context)
|
||||||
InbvUpdateProgressBar(5);
|
InbvUpdateProgressBar(5);
|
||||||
|
|
||||||
/* Call OB initialization again */
|
/* Call OB initialization again */
|
||||||
if (!ObInit()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED);
|
if (!ObInitSystem()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED);
|
||||||
|
|
||||||
/* Initialize Basic System Objects and Worker Threads */
|
/* Initialize Basic System Objects and Worker Threads */
|
||||||
if (!ExInitSystem()) KeBugCheckEx(PHASE1_INITIALIZATION_FAILED, 0, 0, 1, 0);
|
if (!ExInitSystem()) KeBugCheckEx(PHASE1_INITIALIZATION_FAILED, 0, 0, 1, 0);
|
||||||
|
|
|
@ -520,6 +520,21 @@ typedef struct _KEY_INFORMATION
|
||||||
NTSTATUS CmiCallRegisteredCallbacks(IN REG_NOTIFY_CLASS Argument1, IN PVOID Argument2);
|
NTSTATUS CmiCallRegisteredCallbacks(IN REG_NOTIFY_CLASS Argument1, IN PVOID Argument2);
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//
|
||||||
|
// Startup and Shutdown Functions
|
||||||
|
//
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
CmInitSystem1(
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
CmShutdownSystem(
|
||||||
|
VOID
|
||||||
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Mapped View Hive Functions
|
// Mapped View Hive Functions
|
||||||
//
|
//
|
||||||
|
|
|
@ -183,6 +183,13 @@ KD_CONTINUE_TYPE
|
||||||
|
|
||||||
/* INIT ROUTINES *************************************************************/
|
/* INIT ROUTINES *************************************************************/
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
KdInitSystem(
|
||||||
|
ULONG Reserved,
|
||||||
|
PLOADER_PARAMETER_BLOCK LoaderBlock
|
||||||
|
);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
STDCALL
|
||||||
KdpScreenInit(
|
KdpScreenInit(
|
||||||
|
|
|
@ -37,6 +37,8 @@
|
||||||
#define InterlockedCompareExchange64 _InterlockedCompareExchange64
|
#define InterlockedCompareExchange64 _InterlockedCompareExchange64
|
||||||
#define InterlockedExchange _InterlockedExchange
|
#define InterlockedExchange _InterlockedExchange
|
||||||
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
||||||
|
#define InterlockedOr _InterlockedOr
|
||||||
|
#define InterlockedAnd _InterlockedAnd
|
||||||
|
|
||||||
#include "ke.h"
|
#include "ke.h"
|
||||||
#include "i386/mm.h"
|
#include "i386/mm.h"
|
||||||
|
@ -71,84 +73,6 @@
|
||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
#include "arch/intrin_i.h"
|
#include "arch/intrin_i.h"
|
||||||
|
|
||||||
#include <pshpack1.h>
|
|
||||||
/*
|
|
||||||
* Defines a descriptor as it appears in the processor tables
|
|
||||||
*/
|
|
||||||
typedef struct __DESCRIPTOR
|
|
||||||
{
|
|
||||||
ULONG a;
|
|
||||||
ULONG b;
|
|
||||||
} IDT_DESCRIPTOR, GDT_DESCRIPTOR;
|
|
||||||
|
|
||||||
#include <poppack.h>
|
|
||||||
//extern GDT_DESCRIPTOR KiGdt[256];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initalization functions (called once by main())
|
|
||||||
*/
|
|
||||||
BOOLEAN NTAPI ObInit(VOID);
|
|
||||||
BOOLEAN NTAPI CmInitSystem1(VOID);
|
|
||||||
VOID NTAPI CmShutdownSystem(VOID);
|
|
||||||
BOOLEAN NTAPI KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
|
|
||||||
|
|
||||||
/* FIXME - RtlpCreateUnicodeString is obsolete and should be removed ASAP! */
|
|
||||||
BOOLEAN FASTCALL
|
|
||||||
RtlpCreateUnicodeString(
|
|
||||||
IN OUT PUNICODE_STRING UniDest,
|
|
||||||
IN PCWSTR Source,
|
|
||||||
IN POOL_TYPE PoolType);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
NTAPI
|
|
||||||
RtlpLogException(IN PEXCEPTION_RECORD ExceptionRecord,
|
|
||||||
IN PCONTEXT ContextRecord,
|
|
||||||
IN PVOID ContextData,
|
|
||||||
IN ULONG Size);
|
|
||||||
|
|
||||||
/* FIXME: Interlocked functions that need to be made into a public header */
|
|
||||||
#ifdef __GNUC__
|
|
||||||
FORCEINLINE
|
|
||||||
LONG
|
|
||||||
InterlockedAnd(IN OUT LONG volatile *Target,
|
|
||||||
IN LONG Set)
|
|
||||||
{
|
|
||||||
LONG i;
|
|
||||||
LONG j;
|
|
||||||
|
|
||||||
j = *Target;
|
|
||||||
do {
|
|
||||||
i = j;
|
|
||||||
j = InterlockedCompareExchange((PLONG)Target,
|
|
||||||
i & Set,
|
|
||||||
i);
|
|
||||||
|
|
||||||
} while (i != j);
|
|
||||||
|
|
||||||
return j;
|
|
||||||
}
|
|
||||||
|
|
||||||
FORCEINLINE
|
|
||||||
LONG
|
|
||||||
InterlockedOr(IN OUT LONG volatile *Target,
|
|
||||||
IN LONG Set)
|
|
||||||
{
|
|
||||||
LONG i;
|
|
||||||
LONG j;
|
|
||||||
|
|
||||||
j = *Target;
|
|
||||||
do {
|
|
||||||
i = j;
|
|
||||||
j = InterlockedCompareExchange((PLONG)Target,
|
|
||||||
i | Set,
|
|
||||||
i);
|
|
||||||
|
|
||||||
} while (i != j);
|
|
||||||
|
|
||||||
return j;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* generic information class probing code
|
* generic information class probing code
|
||||||
*/
|
*/
|
||||||
|
@ -324,8 +248,8 @@ C_ASSERT(FIELD_OFFSET(KTHREAD, TrapFrame) == KTHREAD_TRAP_FRAME);
|
||||||
C_ASSERT(FIELD_OFFSET(KTHREAD, CallbackStack) == KTHREAD_CALLBACK_STACK);
|
C_ASSERT(FIELD_OFFSET(KTHREAD, CallbackStack) == KTHREAD_CALLBACK_STACK);
|
||||||
C_ASSERT(FIELD_OFFSET(KTHREAD, ApcState.Process) == KTHREAD_APCSTATE_PROCESS);
|
C_ASSERT(FIELD_OFFSET(KTHREAD, ApcState.Process) == KTHREAD_APCSTATE_PROCESS);
|
||||||
C_ASSERT(FIELD_OFFSET(KPROCESS, DirectoryTableBase) == KPROCESS_DIRECTORY_TABLE_BASE);
|
C_ASSERT(FIELD_OFFSET(KPROCESS, DirectoryTableBase) == KPROCESS_DIRECTORY_TABLE_BASE);
|
||||||
//C_ASSERT(FIELD_OFFSET(KPCR, Tib.ExceptionList) == KPCR_EXCEPTION_LIST);
|
C_ASSERT(FIELD_OFFSET(KPCR, Tib.ExceptionList) == KPCR_EXCEPTION_LIST);
|
||||||
//C_ASSERT(FIELD_OFFSET(KPCR, Self) == KPCR_SELF);
|
C_ASSERT(FIELD_OFFSET(KPCR, Self) == KPCR_SELF);
|
||||||
#ifdef _M_IX86
|
#ifdef _M_IX86
|
||||||
C_ASSERT(FIELD_OFFSET(KPCR, IRR) == KPCR_IRR);
|
C_ASSERT(FIELD_OFFSET(KPCR, IRR) == KPCR_IRR);
|
||||||
C_ASSERT(FIELD_OFFSET(KPCR, IDR) == KPCR_IDR);
|
C_ASSERT(FIELD_OFFSET(KPCR, IDR) == KPCR_IDR);
|
||||||
|
@ -335,7 +259,7 @@ C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, NextThread) == KPCR
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, NpxThread) == KPCR_NPX_THREAD);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, NpxThread) == KPCR_NPX_THREAD);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) == KPCR_PRCB_DATA);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) == KPCR_PRCB_DATA);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, KeSystemCalls) == KPCR_SYSTEM_CALLS);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, KeSystemCalls) == KPCR_SYSTEM_CALLS);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcData) + /*FIELD_OFFSET(KDPC_DATA, DpcQueuDepth)*/12 == KPCR_PRCB_DPC_QUEUE_DEPTH);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcData) + FIELD_OFFSET(KDPC_DATA, DpcQueueDepth) == KPCR_PRCB_DPC_QUEUE_DEPTH);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcData) + 16 == KPCR_PRCB_DPC_COUNT);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcData) + 16 == KPCR_PRCB_DPC_COUNT);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcStack) == KPCR_PRCB_DPC_STACK);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcStack) == KPCR_PRCB_DPC_STACK);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, TimerRequest) == KPCR_PRCB_TIMER_REQUEST);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, TimerRequest) == KPCR_PRCB_TIMER_REQUEST);
|
||||||
|
@ -348,7 +272,7 @@ C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, TimerRequest) == KP
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, QuantumEnd) == KPCR_PRCB_QUANTUM_END);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, QuantumEnd) == KPCR_PRCB_QUANTUM_END);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DeferredReadyListHead) == KPCR_PRCB_DEFERRED_READY_LIST_HEAD);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DeferredReadyListHead) == KPCR_PRCB_DEFERRED_READY_LIST_HEAD);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, PowerState) == KPCR_PRCB_POWER_STATE_IDLE_FUNCTION);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, PowerState) == KPCR_PRCB_POWER_STATE_IDLE_FUNCTION);
|
||||||
//C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, PrcbLock) == KPCR_PRCB_PRCB_LOCK);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, PrcbLock) == KPCR_PRCB_PRCB_LOCK);
|
||||||
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcStack) == KPCR_PRCB_DPC_STACK);
|
C_ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, DpcStack) == KPCR_PRCB_DPC_STACK);
|
||||||
C_ASSERT(sizeof(FX_SAVE_AREA) == SIZEOF_FX_SAVE_AREA);
|
C_ASSERT(sizeof(FX_SAVE_AREA) == SIZEOF_FX_SAVE_AREA);
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ ObInit2(VOID)
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
INIT_FUNCTION
|
INIT_FUNCTION
|
||||||
NTAPI
|
NTAPI
|
||||||
ObInit(VOID)
|
ObInitSystem(VOID)
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
UNICODE_STRING Name;
|
UNICODE_STRING Name;
|
||||||
|
|
Loading…
Reference in a new issue