mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 04:20:46 +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_PRCB_SET_MEMBER 0x134
|
||||
#define KPCR_PRCB_CPU_TYPE 0x138
|
||||
#define KPCR_PRCB_PRCB_LOCK 0xA7C
|
||||
#define KPCR_NPX_THREAD 0x640
|
||||
#define KPCR_DR6 0x428
|
||||
#define KPCR_DR7 0x42C
|
||||
|
|
|
@ -1203,7 +1203,7 @@ ExpInitializeExecutive(IN ULONG Cpu,
|
|||
#endif
|
||||
|
||||
/* 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 */
|
||||
if (!SeInit()) KEBUGCHECK(SECURITY_INITIALIZATION_FAILED);
|
||||
|
@ -1516,7 +1516,7 @@ Phase1InitializationDiscard(IN PVOID Context)
|
|||
InbvUpdateProgressBar(5);
|
||||
|
||||
/* Call OB initialization again */
|
||||
if (!ObInit()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED);
|
||||
if (!ObInitSystem()) KeBugCheck(OBJECT1_INITIALIZATION_FAILED);
|
||||
|
||||
/* Initialize Basic System Objects and Worker Threads */
|
||||
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);
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//
|
||||
// Startup and Shutdown Functions
|
||||
//
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
CmInitSystem1(
|
||||
VOID
|
||||
);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
CmShutdownSystem(
|
||||
VOID
|
||||
);
|
||||
|
||||
//
|
||||
// Mapped View Hive Functions
|
||||
//
|
||||
|
|
|
@ -183,6 +183,13 @@ KD_CONTINUE_TYPE
|
|||
|
||||
/* INIT ROUTINES *************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdInitSystem(
|
||||
ULONG Reserved,
|
||||
PLOADER_PARAMETER_BLOCK LoaderBlock
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KdpScreenInit(
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
#define InterlockedCompareExchange64 _InterlockedCompareExchange64
|
||||
#define InterlockedExchange _InterlockedExchange
|
||||
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
||||
#define InterlockedOr _InterlockedOr
|
||||
#define InterlockedAnd _InterlockedAnd
|
||||
|
||||
#include "ke.h"
|
||||
#include "i386/mm.h"
|
||||
|
@ -71,84 +73,6 @@
|
|||
#include "hal.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
|
||||
*/
|
||||
|
@ -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, ApcState.Process) == KTHREAD_APCSTATE_PROCESS);
|
||||
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, Self) == KPCR_SELF);
|
||||
C_ASSERT(FIELD_OFFSET(KPCR, Tib.ExceptionList) == KPCR_EXCEPTION_LIST);
|
||||
C_ASSERT(FIELD_OFFSET(KPCR, Self) == KPCR_SELF);
|
||||
#ifdef _M_IX86
|
||||
C_ASSERT(FIELD_OFFSET(KPCR, IRR) == KPCR_IRR);
|
||||
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) == 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, 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, DpcStack) == KPCR_PRCB_DPC_STACK);
|
||||
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, 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, 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(sizeof(FX_SAVE_AREA) == SIZEOF_FX_SAVE_AREA);
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ ObInit2(VOID)
|
|||
BOOLEAN
|
||||
INIT_FUNCTION
|
||||
NTAPI
|
||||
ObInit(VOID)
|
||||
ObInitSystem(VOID)
|
||||
{
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
UNICODE_STRING Name;
|
||||
|
|
Loading…
Reference in a new issue