MM : Moved all remaining LIST_ENTRY_* macro's to where they're used (as preparation for further simplification)

This commit is contained in:
PatrickvL 2018-10-11 12:45:42 +02:00
parent 0b535dc862
commit e452d56991
4 changed files with 19 additions and 13 deletions

View File

@ -354,17 +354,6 @@ typedef struct _LIST_ENTRY
}
LIST_ENTRY, *PLIST_ENTRY;
// See the links below for the details about the kernel structure LIST_ENTRY and the related functions
// https://www.codeproject.com/Articles/800404/Understanding-LIST-ENTRY-Lists-and-Its-Importance
// https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/singly-and-doubly-linked-lists
#define LIST_ENTRY_DEFINE_HEAD(ListHead) xboxkrnl::LIST_ENTRY (ListHead) = { &(ListHead), &(ListHead) }
#define LIST_ENTRY_INITIALIZE(ListEntry) ((ListEntry)->Flink = (ListEntry)->Blink = nullptr)
#define LIST_ENTRY_ACCESS_RECORD(address, type, field) \
((type*)((UCHAR*)(address) - (ULONG)(&((type*)0)->field)))
// ******************************************************************
// * SLIST_ENTRY
// ******************************************************************

View File

@ -62,6 +62,14 @@ namespace xboxkrnl
#include <locale>
#include <codecvt>
// See the links below for the details about the kernel structure LIST_ENTRY and the related functions
// https://www.codeproject.com/Articles/800404/Understanding-LIST-ENTRY-Lists-and-Its-Importance
// https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/singly-and-doubly-linked-lists
#define LIST_ENTRY_DEFINE_HEAD(ListHead) xboxkrnl::LIST_ENTRY (ListHead) = { &(ListHead), &(ListHead) }
#define LIST_ENTRY_ACCESS_RECORD(address, type, field) \
((type*)((UCHAR*)(address) - (ULONG)(&((type*)0)->field)))
volatile DWORD HalInterruptRequestRegister = APC_LEVEL | DISPATCH_LEVEL;
HalSystemInterrupt HalSystemInterrupts[MAX_BUS_INTERRUPT_LEVEL + 1];
@ -72,7 +80,6 @@ uint32_t ResetOrShutdownDataValue = 0;
// global list of routines executed during a reboot
LIST_ENTRY_DEFINE_HEAD(ShutdownRoutineList);
// ******************************************************************
// * Declaring this in a header causes errors with xboxkrnl
// * namespace, so we must declare it within any file that uses it
@ -510,7 +517,7 @@ XBSYSAPI EXPORTNUM(49) xboxkrnl::VOID DECLSPEC_NORETURN NTAPI xboxkrnl::HalRetur
{
OldIrql = KeRaiseIrqlToDpcLevel();
ListEntry = RemoveHeadList(&ShutdownRoutineList)
ListEntry = RemoveHeadList(&ShutdownRoutineList);
KfLowerIrql(OldIrql);

View File

@ -42,6 +42,12 @@
#include "EmuKrnl.h" // For InitializeListHead(), etc.
#include <assert.h>
// See the links below for the details about the kernel structure LIST_ENTRY and the related functions
// https://www.codeproject.com/Articles/800404/Understanding-LIST-ENTRY-Lists-and-Its-Importance
// https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/singly-and-doubly-linked-lists
#define LIST_ENTRY_INITIALIZE(ListEntry) ((ListEntry)->Flink = (ListEntry)->Blink = nullptr)
#define LIST_ENTRY_ACCESS_RECORD(address, type, field) \
((type*)((UCHAR*)(address) - (ULONG)(&((type*)0)->field)))
void PhysicalMemory::InitializePageDirectory()
{

View File

@ -48,6 +48,10 @@
#include "EmuKrnl.h" // For InitializeListHead(), etc.
#include <assert.h>
// See the links below for the details about the kernel structure LIST_ENTRY and the related functions
// https://www.codeproject.com/Articles/800404/Understanding-LIST-ENTRY-Lists-and-Its-Importance
// https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/singly-and-doubly-linked-lists
#define LIST_ENTRY_INITIALIZE(ListEntry) ((ListEntry)->Flink = (ListEntry)->Blink = nullptr)
VMManager g_VMManager;