mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
Replaced boot_param by LOADER_PARAMETER_BLOCK
Added missing dpc functions Fixed some Ke macros svn path=/trunk/; revision=1217
This commit is contained in:
parent
95f8770ae2
commit
6abd233802
19 changed files with 246 additions and 206 deletions
|
@ -175,23 +175,13 @@ enum
|
|||
OBJ_OPENIF = 0x10,
|
||||
};
|
||||
|
||||
/*
|
||||
* PURPOSE: DPC priorities
|
||||
*/
|
||||
enum
|
||||
{
|
||||
High,
|
||||
Medium,
|
||||
Low,
|
||||
};
|
||||
|
||||
/*
|
||||
* PURPOSE: Timer types
|
||||
*/
|
||||
enum
|
||||
{
|
||||
NotificationTimer,
|
||||
SynchronizationTimer,
|
||||
SynchronizationTimer,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -249,12 +239,12 @@ enum
|
|||
#define LOW_LEVEL 0 // Lowest interrupt level
|
||||
#define APC_LEVEL 1 // APC interrupt level
|
||||
#define DISPATCH_LEVEL 2 // Dispatcher level
|
||||
|
||||
|
||||
#define PROFILE_LEVEL 27 // timer used for profiling.
|
||||
#define CLOCK1_LEVEL 28 // Interval clock 1 level - Not used on x86
|
||||
#define CLOCK2_LEVEL 28 // Interval clock 2 level
|
||||
#define IPI_LEVEL 29 // Interprocessor interrupt level
|
||||
#define POWER_LEVEL 30 // Power failure level
|
||||
#define POWER_LEVEL 30 // Power failure level
|
||||
#define HIGH_LEVEL 31 // Highest interrupt level
|
||||
#define SYNCH_LEVEL (IPI_LEVEL-1) // synchronization level
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: halddk.h,v 1.2 2000/06/30 22:49:26 ekohl Exp $
|
||||
/* $Id: halddk.h,v 1.3 2000/07/01 18:20:41 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -456,6 +456,13 @@ HalGetInterruptVector (
|
|||
PKAFFINITY Affinity
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
HalInitSystem (
|
||||
ULONG BootPhase,
|
||||
PLOADER_PARAMETER_BLOCK LoaderBlock
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
HalInitializeProcessor (
|
||||
|
|
|
@ -1,9 +1,22 @@
|
|||
#ifndef __INCLUDE_DDK_KEDEF_H
|
||||
#define __INCLUDE_DDK_KEDEF_H
|
||||
|
||||
typedef enum _KINTERRUPT_MODE
|
||||
{
|
||||
LevelSensitive,
|
||||
Latched,
|
||||
} KINTERRUPT_MODE;
|
||||
|
||||
/*
|
||||
* PURPOSE: DPC importance
|
||||
*/
|
||||
typedef enum _KDPC_IMPORTANCE
|
||||
{
|
||||
LowImportance,
|
||||
MediumImportance,
|
||||
HighImportance
|
||||
} KDPC_IMPORTANCE;
|
||||
|
||||
typedef enum _EVENT_TYPE
|
||||
{
|
||||
NotificationEvent,
|
||||
|
@ -39,3 +52,5 @@ typedef enum _KWAIT_REASON
|
|||
WrKernel,
|
||||
MaximumWaitReason,
|
||||
} KWAIT_REASON;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,15 +4,6 @@
|
|||
|
||||
/* KERNEL FUNCTIONS ********************************************************/
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeAttachProcess (
|
||||
struct _EPROCESS* Process
|
||||
);
|
||||
|
||||
VOID KeDrainApcQueue(VOID);
|
||||
PKPROCESS KeGetCurrentProcess(VOID);
|
||||
|
||||
/*
|
||||
* FUNCTION: Acquires a spinlock so the caller can synchronize access to
|
||||
* data
|
||||
|
@ -23,14 +14,26 @@ PKPROCESS KeGetCurrentProcess(VOID);
|
|||
VOID
|
||||
STDCALL
|
||||
KeAcquireSpinLock (
|
||||
PKSPIN_LOCK SpinLock,
|
||||
PKIRQL OldIrql
|
||||
IN PKSPIN_LOCK SpinLock,
|
||||
OUT PKIRQL OldIrql
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeAcquireSpinLockAtDpcLevel (
|
||||
PKSPIN_LOCK SpinLock
|
||||
IN PKSPIN_LOCK SpinLock
|
||||
);
|
||||
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KeAcquireSpinLockRaiseToSynch (
|
||||
IN PKSPIN_LOCK SpinLock
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeAttachProcess (
|
||||
IN PEPROCESS Process
|
||||
);
|
||||
|
||||
/*
|
||||
|
@ -43,7 +46,7 @@ KeAcquireSpinLockAtDpcLevel (
|
|||
VOID
|
||||
STDCALL
|
||||
KeBugCheck (
|
||||
ULONG BugCheckCode
|
||||
IN ULONG BugCheckCode
|
||||
);
|
||||
|
||||
/*
|
||||
|
@ -57,23 +60,23 @@ KeBugCheck (
|
|||
VOID
|
||||
STDCALL
|
||||
KeBugCheckEx (
|
||||
ULONG BugCheckCode,
|
||||
ULONG BugCheckParameter1,
|
||||
ULONG BugCheckParameter2,
|
||||
ULONG BugCheckParameter3,
|
||||
ULONG BugCheckParameter4
|
||||
IN ULONG BugCheckCode,
|
||||
IN ULONG BugCheckParameter1,
|
||||
IN ULONG BugCheckParameter2,
|
||||
IN ULONG BugCheckParameter3,
|
||||
IN ULONG BugCheckParameter4
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
KeCancelTimer (
|
||||
PKTIMER Timer
|
||||
IN PKTIMER Timer
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeClearEvent (
|
||||
PKEVENT Event
|
||||
IN PKEVENT Event
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
|
@ -87,7 +90,7 @@ KeDelayExecutionThread (
|
|||
BOOLEAN
|
||||
STDCALL
|
||||
KeDeregisterBugCheckCallback (
|
||||
PKBUGCHECK_CALLBACK_RECORD CallbackRecord
|
||||
IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord
|
||||
);
|
||||
|
||||
VOID
|
||||
|
@ -102,7 +105,32 @@ KeEnterCriticalRegion (
|
|||
VOID
|
||||
);
|
||||
|
||||
VOID KeFlushIoBuffers(PMDL Mdl, BOOLEAN ReadOperation, BOOLEAN DmaOperation);
|
||||
/*
|
||||
* FUNCTION: Enters the kernel debugger
|
||||
* ARGUMENTS:
|
||||
* None
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
KeEnterKernelDebugger (
|
||||
VOID
|
||||
);
|
||||
|
||||
/*
|
||||
* VOID
|
||||
* KeFlushIoBuffers (
|
||||
* PMDL Mdl,
|
||||
* BOOLEAN ReadOperation,
|
||||
* BOOLEAN DmaOperation
|
||||
* );
|
||||
*/
|
||||
#define KeFlushIoBuffers(Mdl,ReadOperation,DmaOperation)
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeFlushWriteBuffer (
|
||||
VOID
|
||||
);
|
||||
|
||||
KIRQL
|
||||
STDCALL
|
||||
|
@ -118,7 +146,13 @@ KeGetCurrentThread (
|
|||
VOID
|
||||
);
|
||||
|
||||
ULONG KeGetDcacheFillSize(VOID);
|
||||
/*
|
||||
* ULONG KeGetDcacheFillSize(VOID);
|
||||
*
|
||||
* FUNCTION:
|
||||
* Returns the microprocessor's data cache-line boundary in bytes
|
||||
*/
|
||||
#define KeGetDcacheFillSize() 1L
|
||||
|
||||
ULONG
|
||||
STDCALL
|
||||
|
@ -278,6 +312,17 @@ KeRaiseIrql (
|
|||
PKIRQL OldIrql
|
||||
);
|
||||
|
||||
/*
|
||||
* FUNCTION: Raises a user mode exception
|
||||
* ARGUMENTS:
|
||||
* ExceptionCode = Status code of the exception
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
KeRaiseUserException (
|
||||
IN NTSTATUS ExceptionCode
|
||||
);
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
KeReadStateEvent (
|
||||
|
@ -388,6 +433,13 @@ KeSetEvent (
|
|||
BOOLEAN Wait
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeSetImportanceDpc (
|
||||
IN PKDPC Dpc,
|
||||
IN KDPC_IMPORTANCE Importance
|
||||
);
|
||||
|
||||
KPRIORITY
|
||||
STDCALL
|
||||
KeSetPriorityThread (
|
||||
|
@ -395,6 +447,13 @@ KeSetPriorityThread (
|
|||
KPRIORITY Priority
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeSetTargetProcessorDpc (
|
||||
IN PKDPC Dpc,
|
||||
IN CCHAR Number
|
||||
);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
KeSetTimer (
|
||||
|
@ -473,14 +532,14 @@ KeWaitForSingleObject (
|
|||
* newlvl = IRQ level to set
|
||||
* NOTE: This is for internal use only
|
||||
*/
|
||||
VOID KeSetCurrentIrql(KIRQL newlvl);
|
||||
//VOID KeSetCurrentIrql(KIRQL newlvl);
|
||||
|
||||
|
||||
// io permission map has a 8k size
|
||||
// Each bit in the IOPM corresponds to an io port byte address. The bitmap
|
||||
// is initialized to allow IO at any port. [ all bits set ].
|
||||
|
||||
typedef struct _IOPM
|
||||
typedef struct _IOPM
|
||||
{
|
||||
UCHAR Bitmap[8192];
|
||||
} IOPM, *PIOPM;
|
||||
|
@ -537,29 +596,6 @@ NTSTATUS KeI386ReleaseGdtSelectors(OUT PULONG SelArray,
|
|||
NTSTATUS KeI386AllocateGdtSelectors(OUT PULONG SelArray,
|
||||
IN ULONG NumOfSelectors);
|
||||
|
||||
/*
|
||||
* FUNCTION: Raises a user mode exception
|
||||
* ARGUMENTS:
|
||||
* ExceptionCode = Status code of the exception
|
||||
*/
|
||||
VOID KeRaiseUserException(NTSTATUS ExceptionCode);
|
||||
|
||||
|
||||
/*
|
||||
* FUNCTION: Enters the kernel debugger
|
||||
* ARGUMENTS:
|
||||
* None
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
KeEnterKernelDebugger (VOID);
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
KeFlushWriteBuffer (
|
||||
VOID
|
||||
);
|
||||
|
||||
KIRQL
|
||||
FASTCALL
|
||||
|
@ -567,12 +603,6 @@ KfAcquireSpinLock (
|
|||
IN PKSPIN_LOCK SpinLock
|
||||
);
|
||||
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KeAcquireSpinLockRaiseToSynch (
|
||||
IN PKSPIN_LOCK SpinLock
|
||||
);
|
||||
|
||||
VOID
|
||||
FASTCALL
|
||||
KfLowerIrql (
|
||||
|
|
|
@ -209,10 +209,10 @@ struct _KDPC;
|
|||
typedef VOID (*PKDEFERRED_ROUTINE)(struct _KDPC* Dpc, PVOID DeferredContext,
|
||||
PVOID SystemArgument1, PVOID SystemArgument2);
|
||||
|
||||
typedef struct _KDPC
|
||||
/*
|
||||
* PURPOSE: Defines a delayed procedure call object
|
||||
*/
|
||||
typedef struct _KDPC
|
||||
{
|
||||
SHORT Type;
|
||||
UCHAR Number;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: display.c,v 1.6 2000/03/19 13:34:47 ekohl Exp $
|
||||
/* $Id: display.c,v 1.7 2000/07/01 18:23:06 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -97,7 +97,7 @@ HalPutCharacter (CHAR Character)
|
|||
/* PRIVATE FUNCTIONS ********************************************************/
|
||||
|
||||
VOID
|
||||
HalInitializeDisplay (boot_param *bp)
|
||||
HalInitializeDisplay (PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||
/*
|
||||
* FUNCTION: Initalize the display
|
||||
* ARGUMENTS:
|
||||
|
@ -113,8 +113,8 @@ HalInitializeDisplay (boot_param *bp)
|
|||
// VideoBuffer = HalMapPhysicalMemory (0xb8000, 2);
|
||||
|
||||
/* Set cursor position */
|
||||
CursorX = bp->cursorx;
|
||||
CursorY = bp->cursory;
|
||||
CursorX = LoaderBlock->cursorx;
|
||||
CursorY = LoaderBlock->cursory;
|
||||
|
||||
/* read screen size from the crtc */
|
||||
/* FIXME: screen size should be read from the boot paramseters */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: dma.c,v 1.6 2000/06/12 14:53:38 ekohl Exp $
|
||||
/* $Id: dma.c,v 1.7 2000/07/01 18:23:06 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -159,12 +159,4 @@ HalReadDmaCounter (
|
|||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
ULONG KeGetDcacheFillSize()
|
||||
/*
|
||||
* FUNCTION: Returns the microprocessor's data cache-line boundary in bytes
|
||||
*/
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: halinit.c,v 1.11 2000/04/09 15:58:13 ekohl Exp $
|
||||
/* $Id: halinit.c,v 1.12 2000/07/01 18:23:06 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -24,13 +24,13 @@
|
|||
BOOLEAN
|
||||
STDCALL
|
||||
HalInitSystem (
|
||||
ULONG Phase,
|
||||
boot_param *bp
|
||||
ULONG BootPhase,
|
||||
PLOADER_PARAMETER_BLOCK LoaderBlock
|
||||
)
|
||||
{
|
||||
if (Phase == 0)
|
||||
if (BootPhase == 0)
|
||||
{
|
||||
HalInitializeDisplay (bp);
|
||||
HalInitializeDisplay (LoaderBlock);
|
||||
HalpCalibrateStallExecution ();
|
||||
KeInitExceptions ();
|
||||
HalpInitIRQs ();
|
||||
|
|
|
@ -24,7 +24,7 @@ VOID Hal_bios32_probe(VOID);
|
|||
*/
|
||||
BOOLEAN Hal_bios32_is_service_present(ULONG service);
|
||||
|
||||
VOID HalInitializeDisplay (boot_param *bp);
|
||||
VOID HalInitializeDisplay (PLOADER_PARAMETER_BLOCK LoaderBlock);
|
||||
VOID HalResetDisplay (VOID);
|
||||
|
||||
VOID
|
||||
|
@ -37,12 +37,4 @@ VOID HalpCalibrateStallExecution(VOID);
|
|||
VOID HalpDispatchInterrupt (ULONG irq);
|
||||
VOID HalpInitIRQs (VOID);
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
HalInitSystem (
|
||||
ULONG Phase,
|
||||
boot_param *bp
|
||||
);
|
||||
|
||||
|
||||
#endif /* __INTERNAL_HAL_HAL_H */
|
||||
|
|
|
@ -19,8 +19,10 @@ BOOLEAN KeDispatcherObjectWake(DISPATCHER_HEADER* hdr);
|
|||
|
||||
VOID KiInterruptDispatch(ULONG irq);
|
||||
VOID KiDispatchInterrupt(ULONG irq);
|
||||
VOID KeDrainApcQueue(VOID);
|
||||
VOID KeDrainDpcQueue(VOID);
|
||||
VOID KeExpireTimers(VOID);
|
||||
PKPROCESS KeGetCurrentProcess(VOID);
|
||||
NTSTATUS KeAddThreadTimeout(PKTHREAD Thread, PLARGE_INTEGER Interval);
|
||||
VOID KeInitializeDispatcherHeader(DISPATCHER_HEADER* Header, ULONG Type,
|
||||
ULONG Size, ULONG SignalState);
|
||||
|
@ -33,6 +35,16 @@ VOID KeCallApcsThread(VOID);
|
|||
VOID KeRemoveAllWaitsThread(PETHREAD Thread, NTSTATUS WaitStatus);
|
||||
PULONG KeGetStackTopThread(PETHREAD Thread);
|
||||
|
||||
/*
|
||||
* FUNCTION: Sets the current irql without altering the current processor
|
||||
* state
|
||||
* ARGUMENTS:
|
||||
* newlvl = IRQ level to set
|
||||
* NOTE: This is for internal use only
|
||||
*/
|
||||
VOID KeSetCurrentIrql(KIRQL newlvl);
|
||||
|
||||
|
||||
/* INITIALIZATION FUNCTIONS *************************************************/
|
||||
|
||||
VOID KeInitExceptions(VOID);
|
||||
|
|
|
@ -7,41 +7,6 @@
|
|||
|
||||
#ifndef __ASM__
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/*
|
||||
* Magic value (useless really)
|
||||
*/
|
||||
unsigned int magic;
|
||||
|
||||
/*
|
||||
* Cursor position
|
||||
*/
|
||||
unsigned int cursorx;
|
||||
unsigned int cursory;
|
||||
|
||||
/*
|
||||
* Number of files (including the kernel) loaded
|
||||
*/
|
||||
unsigned int nr_files;
|
||||
|
||||
/*
|
||||
* Range of physical memory being used by the system
|
||||
*/
|
||||
unsigned int start_mem;
|
||||
unsigned int end_mem;
|
||||
|
||||
/*
|
||||
* List of module lengths (terminated by a 0)
|
||||
*/
|
||||
unsigned int module_length[64];
|
||||
|
||||
/*
|
||||
* Kernel parameter string
|
||||
*/
|
||||
char kernel_parameters[256];
|
||||
} boot_param;
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
#include <stdarg.h>
|
||||
|
@ -78,7 +43,7 @@ VOID NtInit(VOID);
|
|||
/*
|
||||
* Initalization functions (called once by main())
|
||||
*/
|
||||
VOID MmInitSystem(ULONG Phase, boot_param* bp, ULONG LastKernelAddress);
|
||||
VOID MmInitSystem(ULONG Phase, PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress);
|
||||
VOID IoInit(VOID);
|
||||
VOID ObInit(VOID);
|
||||
VOID PsInit(VOID);
|
||||
|
@ -86,7 +51,7 @@ VOID TstBegin(VOID);
|
|||
VOID KeInit(VOID);
|
||||
VOID CmInitializeRegistry(VOID);
|
||||
VOID CmImportHive(PCHAR);
|
||||
VOID KdInitSystem(ULONG Reserved, boot_param* BootParam);
|
||||
VOID KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock);
|
||||
|
||||
#endif /* __ASM__ */
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: kdebug.c,v 1.11 2000/05/24 22:29:36 dwelch Exp $
|
||||
/* $Id: kdebug.c,v 1.12 2000/07/01 18:25:00 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -64,8 +64,8 @@ PrintString (char* fmt,...)
|
|||
|
||||
VOID
|
||||
KdInitSystem (
|
||||
ULONG Reserved,
|
||||
boot_param* BootParam
|
||||
ULONG Reserved,
|
||||
PLOADER_PARAMETER_BLOCK LoaderBlock
|
||||
)
|
||||
{
|
||||
KD_PORT_INFORMATION PortInfo;
|
||||
|
@ -81,7 +81,7 @@ KdInitSystem (
|
|||
*/
|
||||
|
||||
/* check for 'DEBUGPORT' */
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
@ -120,7 +120,7 @@ KdInitSystem (
|
|||
}
|
||||
|
||||
/* check for 'BAUDRATE' */
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
@ -143,7 +143,7 @@ KdInitSystem (
|
|||
}
|
||||
|
||||
/* Check for 'DEBUG'. Dont' accept 'DEBUGPORT'!*/
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
@ -159,7 +159,7 @@ KdInitSystem (
|
|||
}
|
||||
|
||||
/* Check for 'NODEBUG' */
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
@ -173,7 +173,7 @@ KdInitSystem (
|
|||
}
|
||||
|
||||
/* Check for 'CRASHDEBUG' */
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
@ -187,7 +187,7 @@ KdInitSystem (
|
|||
}
|
||||
|
||||
/* Check for 'BREAK' */
|
||||
p1 = BootParam->kernel_parameters;
|
||||
p1 = LoaderBlock->kernel_parameters;
|
||||
while (p1 && (p2 = strchr (p1, '/')))
|
||||
{
|
||||
p2++;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: bug.c,v 1.11 2000/06/04 19:50:12 ekohl Exp $
|
||||
/* $Id: bug.c,v 1.12 2000/07/01 18:26:10 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -26,6 +26,12 @@ VOID PsDumpThreads(VOID);
|
|||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
VOID KeInitializeBugCheck(VOID)
|
||||
{
|
||||
InitializeListHead(&BugcheckCallbackListHead);
|
||||
InBugCheck = 0;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
KeDeregisterBugCheckCallback (
|
||||
|
@ -35,12 +41,6 @@ KeDeregisterBugCheckCallback (
|
|||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
VOID KeInitializeBugCheck(VOID)
|
||||
{
|
||||
InitializeListHead(&BugcheckCallbackListHead);
|
||||
InBugCheck = 0;
|
||||
}
|
||||
|
||||
VOID KeInitializeCallbackRecord(PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/*
|
||||
/* $Id: dpc.c,v 1.16 2000/07/01 18:26:10 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/ke/dpc.c
|
||||
|
@ -8,7 +9,7 @@
|
|||
* 28/05/98: Created
|
||||
* 12/3/99: Phillip Susi: Fixed IRQL problem
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* NOTE: See also the higher level support routines in ntoskrnl/io/dpc.c
|
||||
*/
|
||||
|
@ -139,7 +140,7 @@ BOOLEAN STDCALL KeInsertQueueDpc (PKDPC Dpc,
|
|||
assert(KeGetCurrentIrql()>=DISPATCH_LEVEL);
|
||||
|
||||
Dpc->Number=0;
|
||||
Dpc->Importance=Medium;
|
||||
Dpc->Importance=MediumImportance;
|
||||
Dpc->SystemArgument1=SystemArgument1;
|
||||
Dpc->SystemArgument2=SystemArgument2;
|
||||
if (Dpc->Lock)
|
||||
|
@ -158,6 +159,40 @@ BOOLEAN STDCALL KeInsertQueueDpc (PKDPC Dpc,
|
|||
return(TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* FUNCTION: Specifies the DPCs importance
|
||||
* ARGUMENTS:
|
||||
* Dpc = Initalizes DPC
|
||||
* Importance = DPC importance
|
||||
* RETURNS: None
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
KeSetImportanceDpc (
|
||||
IN PKDPC Dpc,
|
||||
IN KDPC_IMPORTANCE Importance
|
||||
)
|
||||
{
|
||||
Dpc->Importance = Importance;
|
||||
}
|
||||
|
||||
/*
|
||||
* FUNCTION: Specifies on which processor the DPC will run
|
||||
* ARGUMENTS:
|
||||
* Dpc = Initalizes DPC
|
||||
* Number = Processor number
|
||||
* RETURNS: None
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
KeSetTargetProcessorDpc (
|
||||
IN PKDPC Dpc,
|
||||
IN CCHAR Number
|
||||
)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
VOID KeInitDpc(VOID)
|
||||
/*
|
||||
* FUNCTION: Initialize DPC handling
|
||||
|
@ -167,3 +202,4 @@ VOID KeInitDpc(VOID)
|
|||
KeInitializeSpinLock(&DpcQueueLock);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: main.c,v 1.49 2000/06/30 22:53:32 ekohl Exp $
|
||||
/* $Id: main.c,v 1.50 2000/07/01 18:26:11 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -163,7 +163,8 @@ unsigned int old_idt[256][2];
|
|||
//extern unsigned int idt[];
|
||||
unsigned int old_idt_valid = 1;
|
||||
|
||||
void _main(boot_param* _bp)
|
||||
|
||||
void _main (PLOADER_PARAMETER_BLOCK LoaderBlock)
|
||||
/*
|
||||
* FUNCTION: Called by the boot loader to start the kernel
|
||||
* ARGUMENTS:
|
||||
|
@ -175,31 +176,31 @@ void _main(boot_param* _bp)
|
|||
unsigned int i;
|
||||
unsigned int start;
|
||||
unsigned int start1;
|
||||
boot_param bp;
|
||||
unsigned int last_kernel_address;
|
||||
|
||||
// memset((void *)&edata,0,((int)&end)-((int)&edata));
|
||||
|
||||
/*
|
||||
* Copy the parameters to a local buffer because lowmem will go away
|
||||
*/
|
||||
memcpy(&bp,_bp,sizeof(boot_param));
|
||||
memcpy (&KeLoaderBlock,
|
||||
LoaderBlock,
|
||||
sizeof(LOADER_PARAMETER_BLOCK));
|
||||
|
||||
/*
|
||||
* FIXME: Preliminary hack!!!!
|
||||
* Initializes the kernel parameter line.
|
||||
* This should be done by the boot loader.
|
||||
*/
|
||||
strcpy (bp.kernel_parameters, "/DEBUGPORT=SCREEN");
|
||||
strcpy (KeLoaderBlock.kernel_parameters,
|
||||
"/DEBUGPORT=SCREEN");
|
||||
|
||||
/*
|
||||
* Initialization phase 0
|
||||
*/
|
||||
HalInitSystem (0, &bp);
|
||||
HalInitSystem (0, &KeLoaderBlock);
|
||||
|
||||
HalDisplayString("Starting ReactOS "KERNEL_VERSION_STR" (Build "KERNEL_VERSION_BUILD_STR")\n");
|
||||
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(bp.module_length[0]);
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(KeLoaderBlock.module_length[0]);
|
||||
if (start < ((int)&end))
|
||||
{
|
||||
PrintString("start %x end %x\n",start,(int)&end);
|
||||
|
@ -209,22 +210,22 @@ void _main(boot_param* _bp)
|
|||
for(;;)
|
||||
__asm__("hlt\n\t");
|
||||
}
|
||||
start1 = start+PAGE_ROUND_UP(bp.module_length[1]);
|
||||
start1 = start+PAGE_ROUND_UP(KeLoaderBlock.module_length[1]);
|
||||
|
||||
last_kernel_address = KERNEL_BASE;
|
||||
for (i=0; i<=bp.nr_files; i++)
|
||||
for (i=0; i<=KeLoaderBlock.nr_files; i++)
|
||||
{
|
||||
last_kernel_address = last_kernel_address +
|
||||
PAGE_ROUND_UP(bp.module_length[i]);
|
||||
PAGE_ROUND_UP(KeLoaderBlock.module_length[i]);
|
||||
}
|
||||
|
||||
DPRINT("MmInitSystem()\n");
|
||||
MmInitSystem(0, &bp, last_kernel_address);
|
||||
MmInitSystem(0, &KeLoaderBlock, last_kernel_address);
|
||||
|
||||
/*
|
||||
* Initialize the kernel debugger
|
||||
*/
|
||||
KdInitSystem (0, &bp);
|
||||
KdInitSystem (0, &KeLoaderBlock);
|
||||
if (KdPollBreakIn ())
|
||||
{
|
||||
DbgBreakPointWithStatus (DBG_STATUS_CONTROL_C);
|
||||
|
@ -237,9 +238,9 @@ void _main(boot_param* _bp)
|
|||
DPRINT("Kernel Initialization Phase 1\n");
|
||||
|
||||
DPRINT("HalInitSystem()\n");
|
||||
HalInitSystem (1, &bp);
|
||||
HalInitSystem (1, &KeLoaderBlock);
|
||||
DPRINT("MmInitSystem()\n");
|
||||
MmInitSystem(1, &bp, 0);
|
||||
MmInitSystem(1, &KeLoaderBlock, 0);
|
||||
|
||||
DPRINT("KeInit()\n");
|
||||
KeInit();
|
||||
|
@ -265,31 +266,31 @@ void _main(boot_param* _bp)
|
|||
/*
|
||||
* Initalize services loaded at boot time
|
||||
*/
|
||||
DPRINT1("%d files loaded\n",bp.nr_files);
|
||||
DPRINT1("%d files loaded\n",KeLoaderBlock.nr_files);
|
||||
|
||||
/* Pass 1: load registry chunks passed in */
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(bp.module_length[0]);
|
||||
for (i = 1; i < bp.nr_files; i++)
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(KeLoaderBlock.module_length[0]);
|
||||
for (i = 1; i < KeLoaderBlock.nr_files; i++)
|
||||
{
|
||||
if (!strcmp ((PCHAR) start, "REGEDIT4"))
|
||||
{
|
||||
DPRINT1("process registry chunk at %08lx\n", start);
|
||||
CmImportHive((PCHAR) start);
|
||||
}
|
||||
start = start + bp.module_length[i];
|
||||
start = start + KeLoaderBlock.module_length[i];
|
||||
}
|
||||
|
||||
/* Pass 2: process boot loaded drivers */
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(bp.module_length[0]);
|
||||
start1 = start + bp.module_length[1];
|
||||
for (i=1;i<bp.nr_files;i++)
|
||||
start = KERNEL_BASE + PAGE_ROUND_UP(KeLoaderBlock.module_length[0]);
|
||||
start1 = start + KeLoaderBlock.module_length[1];
|
||||
for (i=1;i<KeLoaderBlock.nr_files;i++)
|
||||
{
|
||||
if (strcmp ((PCHAR) start, "REGEDIT4"))
|
||||
{
|
||||
DPRINT1("process module at %08lx\n", start);
|
||||
LdrProcessDriver((PVOID)start);
|
||||
}
|
||||
start = start + bp.module_length[i];
|
||||
start = start + KeLoaderBlock.module_length[i];
|
||||
}
|
||||
|
||||
/* Create the SystemRoot symbolic link */
|
||||
|
@ -323,5 +324,4 @@ void _main(boot_param* _bp)
|
|||
PsTerminateSystemThread(STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: mdl.c,v 1.18 2000/04/02 13:32:41 ea Exp $
|
||||
/* $Id: mdl.c,v 1.19 2000/07/01 18:27:03 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -109,12 +109,6 @@ VOID MmPrepareMdlForReuse(PMDL Mdl)
|
|||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
VOID KeFlushIoBuffers(PMDL Mdl, BOOLEAN ReadOperation, BOOLEAN DmaOperation)
|
||||
{
|
||||
/* NOP on the x86 */
|
||||
/* See ntddk.h from Windows 98 DDK */
|
||||
}
|
||||
|
||||
VOID MmBuildMdlFromPages(PMDL Mdl)
|
||||
{
|
||||
ULONG i;
|
||||
|
@ -129,9 +123,9 @@ VOID MmBuildMdlFromPages(PMDL Mdl)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
VOID STDCALL MmProbeAndLockPages(PMDL Mdl,
|
||||
|
||||
VOID STDCALL MmProbeAndLockPages(PMDL Mdl,
|
||||
KPROCESSOR_MODE AccessMode,
|
||||
LOCK_OPERATION Operation)
|
||||
/*
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: mm.c,v 1.31 2000/06/25 03:59:15 dwelch Exp $
|
||||
/* $Id: mm.c,v 1.32 2000/07/01 18:27:03 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -62,20 +62,20 @@ VOID MiShutdownMemoryManager(VOID)
|
|||
{
|
||||
}
|
||||
|
||||
VOID MmInitVirtualMemory(boot_param* bp, ULONG LastKernelAddress)
|
||||
VOID MmInitVirtualMemory(PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress)
|
||||
/*
|
||||
* FUNCTION: Intialize the memory areas list
|
||||
* ARGUMENTS:
|
||||
* bp = Pointer to the boot parameters
|
||||
* LoaderBlock = Pointer to the boot parameters
|
||||
* kernel_len = Length of the kernel
|
||||
*/
|
||||
{
|
||||
unsigned int kernel_len = bp->end_mem - bp->start_mem;
|
||||
unsigned int kernel_len = LoaderBlock->end_mem - LoaderBlock->start_mem;
|
||||
PVOID BaseAddress;
|
||||
ULONG Length;
|
||||
ULONG ParamLength = kernel_len;
|
||||
|
||||
DPRINT("MmInitVirtualMemory(%x)\n",bp);
|
||||
DPRINT("MmInitVirtualMemory(%x)\n",LoaderBlock);
|
||||
|
||||
LastKernelAddress = PAGE_ROUND_UP(LastKernelAddress);
|
||||
|
||||
|
@ -229,7 +229,7 @@ MM_SYSTEM_SIZE STDCALL MmQuerySystemSize(VOID)
|
|||
return(MmSystemSize);
|
||||
}
|
||||
|
||||
void MmInitialize(boot_param* bp, ULONG LastKernelAddress)
|
||||
void MmInitialize(PLOADER_PARAMETER_BLOCK LoaderBlock, ULONG LastKernelAddress)
|
||||
/*
|
||||
* FUNCTION: Initalize memory managment
|
||||
*/
|
||||
|
@ -239,7 +239,8 @@ void MmInitialize(boot_param* bp, ULONG LastKernelAddress)
|
|||
int i;
|
||||
unsigned int kernel_len;
|
||||
|
||||
DPRINT("MmInitialize(bp %x, LastKernelAddress %x)\n", bp,
|
||||
DPRINT("MmInitialize(LoaderBlock %x, LastKernelAddress %x)\n",
|
||||
LoaderBlock,
|
||||
LastKernelAddress);
|
||||
|
||||
/*
|
||||
|
@ -252,8 +253,8 @@ void MmInitialize(boot_param* bp, ULONG LastKernelAddress)
|
|||
* (we assume the kernel occupies a continuous range of physical
|
||||
* memory)
|
||||
*/
|
||||
first_krnl_phys_addr = bp->start_mem;
|
||||
last_krnl_phys_addr = bp->end_mem;
|
||||
first_krnl_phys_addr = LoaderBlock->start_mem;
|
||||
last_krnl_phys_addr = LoaderBlock->end_mem;
|
||||
DPRINT("first krnl %x\nlast krnl %x\n",first_krnl_phys_addr,
|
||||
last_krnl_phys_addr);
|
||||
|
||||
|
@ -295,16 +296,20 @@ void MmInitialize(boot_param* bp, ULONG LastKernelAddress)
|
|||
/*
|
||||
* Intialize memory areas
|
||||
*/
|
||||
MmInitVirtualMemory(bp, LastKernelAddress);
|
||||
MmInitVirtualMemory(LoaderBlock, LastKernelAddress);
|
||||
}
|
||||
|
||||
VOID MmInitSystem (ULONG Phase, boot_param* bp, ULONG LastKernelAddress)
|
||||
VOID MmInitSystem (
|
||||
ULONG Phase,
|
||||
PLOADER_PARAMETER_BLOCK LoaderBlock,
|
||||
ULONG LastKernelAddress
|
||||
)
|
||||
{
|
||||
if (Phase == 0)
|
||||
{
|
||||
/* Phase 0 Initialization */
|
||||
MmInitializeKernelAddressSpace();
|
||||
MmInitialize (bp, LastKernelAddress);
|
||||
MmInitialize (LoaderBlock, LastKernelAddress);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $Id: ntoskrnl.def,v 1.77 2000/06/30 22:50:53 ekohl Exp $
|
||||
; $Id: ntoskrnl.def,v 1.78 2000/07/01 18:22:14 ekohl Exp $
|
||||
;
|
||||
; reactos/ntoskrnl/ntoskrnl.def
|
||||
;
|
||||
|
@ -340,7 +340,6 @@ KeEnterKernelDebugger@0
|
|||
;KeFindConfigurationEntry
|
||||
;KeFindConfigurationNextEntry
|
||||
;KeFlushEntireTb
|
||||
KeFlushIoBuffers
|
||||
KeGetCurrentThread@0
|
||||
KeGetPreviousMode@0
|
||||
;KeI386AbiosCall
|
||||
|
@ -410,12 +409,12 @@ KeSetBasePriorityThread@8
|
|||
KeSetEvent@12
|
||||
;KeSetEventBoostPriority
|
||||
;KeSetIdealProcessorThread
|
||||
;KeSetImportanceDpc
|
||||
KeSetImportanceDpc@8
|
||||
;KeSetKernelStackSwapEnable
|
||||
KeSetPriorityThread@8
|
||||
;KeSetProfileIrql
|
||||
;KeSetSwapContextNotifyRoutine
|
||||
;KeSetTargetProcessorDpc
|
||||
KeSetTargetProcessorDpc@8
|
||||
;KeSetThreadSelectNotifyRoutine
|
||||
;KeSetTimeIncrement
|
||||
KeSetTimer@16
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; $Id: ntoskrnl.edf,v 1.64 2000/06/30 22:50:53 ekohl Exp $
|
||||
; $Id: ntoskrnl.edf,v 1.65 2000/07/01 18:22:14 ekohl Exp $
|
||||
;
|
||||
; reactos/ntoskrnl/ntoskrnl.def
|
||||
;
|
||||
|
@ -336,7 +336,10 @@ KeDetachProcess=KeDetachProcess@0
|
|||
;KeDisconnectInterrupt
|
||||
KeEnterCriticalRegion=KeEnterCriticalRegion@0
|
||||
KeEnterKernelDebugger=KeEnterKernelDebugger@0
|
||||
KeFlushIoBuffers
|
||||
;KeFindConfigurationEntry
|
||||
;KeFindConfigurationNextEntry
|
||||
;KeFlushEntireTb
|
||||
KeGetCurrentThread=KeGetCurrentThread@0
|
||||
KeGetPreviousMode=KeGetPreviousMode@0
|
||||
;KeI386AbiosCall
|
||||
;KeI386AllocateGdtSelectors
|
||||
|
@ -405,12 +408,12 @@ KeSetBasePriorityThread=KeSetBasePriorityThread@8
|
|||
KeSetEvent=KeSetEvent@12
|
||||
;KeSetEventBoostPriority
|
||||
;KeSetIdealProcessorThread
|
||||
;KeSetImportanceDpc
|
||||
KeSetImportanceDpc=KeSetImportanceDpc@8
|
||||
;KeSetKernelStackSwapEnable
|
||||
KeSetPriorityThread=KeSetPriorityThread@8
|
||||
;KeSetProfileIrql
|
||||
;KeSetSwapContextNotifyRoutine
|
||||
;KeSetTargetProcessorDpc
|
||||
KeSetTargetProcessorDpc=KeSetTargetProcessorDpc@8
|
||||
;KeSetThreadSelectNotifyRoutine
|
||||
;KeSetTimeIncrement
|
||||
KeSetTimer=KeSetTimer@16
|
||||
|
|
Loading…
Reference in a new issue