- Remove RosSymInfo hack from LDR_DATA_TABLE_ENTRY and use
PatchInformation instead. It's still an abuse but at least we're not
defining a new structure/
Modified: trunk/reactos/include/ndk/fixmes.txt
Modified: trunk/reactos/include/ndk/ldrtypes.h
Modified: trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c
_____
Modified: trunk/reactos/include/ndk/fixmes.txt
--- trunk/reactos/include/ndk/fixmes.txt 2005-11-20 15:09:59 UTC
(rev 19371)
+++ trunk/reactos/include/ndk/fixmes.txt 2005-11-20 15:27:07 UTC
(rev 19372)
@@ -11,7 +11,7 @@
List:
Priority 1:
- - LDR_DATA_TABLE_ENTRY has a ROSSYM Hack (GvG) [ldrtypes.h]
+ - FIXED: LDR_DATA_TABLE_ENTRY has a ROSSYM Hack (Alex)
[ldrtypes.h]
- FIXED: LDR_FLAGS are not correct (Alex) [ldrtypes.h]
- FIXED: Remove extra Process Info classes from ddk (Alex)
[zwtypes.h]
- FIXED: PsEstablishWin32Callouts + Parameters don't match NT
(Alex) [obtypes.h]
_____
Modified: trunk/reactos/include/ndk/ldrtypes.h
--- trunk/reactos/include/ndk/ldrtypes.h 2005-11-20 15:09:59 UTC
(rev 19371)
+++ trunk/reactos/include/ndk/ldrtypes.h 2005-11-20 15:27:07 UTC
(rev 19372)
@@ -76,10 +76,6 @@
};
PVOID EntryPointActivationContext;
PVOID PatchInformation;
-#if defined(DBG) || defined(KDBG)
- /* FIXME: THIS _REALLY_ NEEDS TO GO SOMEWHERE ELSE */
- PVOID RosSymInfo;
-#endif /* KDBG */
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
typedef struct _LDR_RESOURCE_INFO
_____
Modified: trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c
--- trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c 2005-11-20 15:09:59 UTC
(rev 19371)
+++ trunk/reactos/ntoskrnl/kdbg/kdb_symbols.c 2005-11-20 15:27:07 UTC
(rev 19372)
@@ -84,7 +84,7 @@
pInfo->Name[Length] = L'\0';
pInfo->Base = (ULONG_PTR)current->DllBase;
pInfo->Size = current->SizeOfImage;
- pInfo->RosSymInfo = current->RosSymInfo;
+ pInfo->RosSymInfo = current->PatchInformation;
return TRUE;
}
current_entry = current_entry->Flink;
@@ -127,7 +127,7 @@
pInfo->Name[Length] = L'\0';
pInfo->Base = (ULONG_PTR)current->DllBase;
pInfo->Size = current->SizeOfImage;
- pInfo->RosSymInfo = current->RosSymInfo;
+ pInfo->RosSymInfo = current->PatchInformation;
return TRUE;
}
current_entry = current_entry->Flink;
@@ -493,7 +493,7 @@
UNICODE_STRING KernelName;
DPRINT("LdrModule %p\n", LdrModule);
- LdrModule->RosSymInfo = NULL;
+ LdrModule->PatchInformation = NULL;
KernelName.MaximumLength = sizeof(Prefix) +
LdrModule->FullDllName.Length;
KernelName.Length = KernelName.MaximumLength - sizeof(WCHAR);
@@ -507,7 +507,7 @@
LdrModule->FullDllName.Length);
KernelName.Buffer[KernelName.Length / sizeof(WCHAR)] = L'\0';
- KdbpSymLoadModuleSymbols(&KernelName,
(PROSSYM_INFO*)&LdrModule->RosSymInfo);
+ KdbpSymLoadModuleSymbols(&KernelName,
(PROSSYM_INFO*)&LdrModule->PatchInformation);
ExFreePool(KernelName.Buffer);
}
@@ -539,7 +539,7 @@
{
Current = CONTAINING_RECORD(CurrentEntry, LDR_DATA_TABLE_ENTRY,
InLoadOrderModuleList);
- KdbpSymUnloadModuleSymbols(Current->RosSymInfo);
+ KdbpSymUnloadModuleSymbols(Current->PatchInformation);
CurrentEntry = CurrentEntry->Flink;
}
@@ -561,9 +561,9 @@
/* Load symbols for the image if available */
DPRINT("Loading driver %wZ symbols (driver @ %08x)\n", Filename,
Module->Base);
- Module->RosSymInfo = NULL;
+ Module->PatchInformation = NULL;
- KdbpSymLoadModuleSymbols(Filename,
(PROSSYM_INFO*)&Module->RosSymInfo);
+ KdbpSymLoadModuleSymbols(Filename,
(PROSSYM_INFO*)&Module->PatchInformation);
}
/*! \brief Unloads symbol info for a driver.
@@ -574,8 +574,8 @@
KdbSymUnloadDriverSymbols(IN PLDR_DATA_TABLE_ENTRY ModuleObject)
{
/* Unload symbols for module if available */
- KdbpSymUnloadModuleSymbols(ModuleObject->RosSymInfo);
- ModuleObject->RosSymInfo = NULL;
+ KdbpSymUnloadModuleSymbols(ModuleObject->PatchInformation);
+ ModuleObject->PatchInformation = NULL;
}
/*! \brief Called when a symbol file is loaded by the loader?
@@ -617,7 +617,7 @@
{
if (! LoadSymbols)
{
- ModuleObject->RosSymInfo = NULL;
+ ModuleObject->PatchInformation = NULL;
return;
}
@@ -631,16 +631,16 @@
if (i < KeLoaderBlock.ModsCount)
{
KeLoaderModules[i].Reserved = 1;
- if (ModuleObject->RosSymInfo != NULL)
+ if (ModuleObject->PatchInformation != NULL)
{
- KdbpSymRemoveCachedFile(ModuleObject->RosSymInfo);
+ KdbpSymRemoveCachedFile(ModuleObject->PatchInformation);
}
if (IsRaw)
{
if (! RosSymCreateFromRaw((PVOID)
KeLoaderModules[i].ModStart,
KeLoaderModules[i].ModEnd -
KeLoaderModules[i].ModStart,
-
(PROSSYM_INFO*)&ModuleObject->RosSymInfo))
+
(PROSSYM_INFO*)&ModuleObject->PatchInformation))
{
return;
}
@@ -649,7 +649,7 @@
{
if (! RosSymCreateFromMem((PVOID)
KeLoaderModules[i].ModStart,
KeLoaderModules[i].ModEnd -
KeLoaderModules[i].ModStart,
-
(PROSSYM_INFO*)&ModuleObject->RosSymInfo))
+
(PROSSYM_INFO*)&ModuleObject->PatchInformation))
{
return;
}
@@ -658,14 +658,14 @@
/* add file to cache */
RtlInitAnsiString(&AnsiString, FileName);
RtlAnsiStringToUnicodeString(&UnicodeString, &AnsiString, TRUE);
- KdbpSymAddCachedFile(&UnicodeString, ModuleObject->RosSymInfo);
+ KdbpSymAddCachedFile(&UnicodeString,
ModuleObject->PatchInformation);
RtlFreeUnicodeString(&UnicodeString);
DPRINT("Installed symbols: %s@%08x-%08x %p\n",
FileName,
ModuleObject->DllBase,
ModuleObject->SizeOfImage + ModuleObject->DllBase,
- ModuleObject->RosSymInfo);
+ ModuleObject->PatchInformation);
}
}
}
@@ -683,8 +683,8 @@
int Found;
char YesNo;
- NtoskrnlModuleObject->RosSymInfo = NULL;
- LdrHalModuleObject->RosSymInfo = NULL;
+ NtoskrnlModuleObject->PatchInformation = NULL;
+ LdrHalModuleObject->PatchInformation = NULL;
InitializeListHead(&SymbolFileListHead);
KeInitializeSpinLock(&SymbolFileListLock);