mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 11:25:13 +00:00
183 lines
4.4 KiB
C
183 lines
4.4 KiB
C
![]() |
/*++
|
||
|
|
||
|
Copyright (c) 1998-2001 Klaus P. Gerlicher
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
parse.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
HEADER for parse.c
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
LINUX 2.2.X
|
||
|
Kernel mode only
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Klaus P. Gerlicher
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
15-Nov-2000: general cleanup of source files
|
||
|
|
||
|
Copyright notice:
|
||
|
|
||
|
This file may be distributed under the terms of the GNU Public License.
|
||
|
|
||
|
--*/
|
||
|
typedef struct TagArgs
|
||
|
{
|
||
|
ULONG Value[16];
|
||
|
ULONG Count;
|
||
|
UCHAR Switch[16];
|
||
|
ULONG CountSwitches;
|
||
|
BOOLEAN bNotTranslated[16];
|
||
|
LPSTR pToken[16];
|
||
|
}ARGS,*PARGS;
|
||
|
|
||
|
typedef struct tagCPUInfo
|
||
|
{
|
||
|
char *Name;
|
||
|
PULONG pValue;
|
||
|
}CPUINFO;
|
||
|
|
||
|
typedef BOOLEAN (*PFN)(PARGS);
|
||
|
|
||
|
#define MAX_ARGS (5)
|
||
|
|
||
|
typedef struct _CMDTABLE
|
||
|
{
|
||
|
char * Cmd;
|
||
|
PFN Handler;
|
||
|
char * Help;
|
||
|
ULONG Flags;
|
||
|
ULONG ParamFlags[MAX_ARGS];
|
||
|
LPSTR pszRecognizedSwitches;
|
||
|
ULONG CommandGroup;
|
||
|
}CMDTABLE,*PCMDTABLE;
|
||
|
|
||
|
typedef struct tagKeyWords
|
||
|
{
|
||
|
char* KeyWord;
|
||
|
PVOID pValue;
|
||
|
ULONG ulSize;
|
||
|
}KEYWORDS;
|
||
|
|
||
|
typedef struct tagSETGETREGS
|
||
|
{
|
||
|
char *RegName;
|
||
|
PULONG RegAddr;
|
||
|
}SETGETREGS;
|
||
|
|
||
|
typedef struct tag_BP
|
||
|
{
|
||
|
ULONG LinearAddress;
|
||
|
ULONG Segment,Offset;
|
||
|
BOOLEAN Used;
|
||
|
BOOLEAN Active;
|
||
|
BOOLEAN Virtual;
|
||
|
char ModName[256];
|
||
|
char SymName[256];
|
||
|
}BP;
|
||
|
|
||
|
extern BOOLEAN bNeedToFillBuffer;
|
||
|
|
||
|
extern BOOLEAN bCodeOn;
|
||
|
extern BOOLEAN bShowSrc;
|
||
|
extern BP Bp[];
|
||
|
extern BOOLEAN bInt3Here;
|
||
|
extern BOOLEAN bInt1Here;
|
||
|
|
||
|
extern BOOLEAN bStepping;
|
||
|
|
||
|
extern char szCurrentFile[256];
|
||
|
extern PDEBUG_MODULE pCurrentMod;
|
||
|
extern PICE_SYMBOLFILE_HEADER* pCurrentSymbols;
|
||
|
extern LONG ulCurrentlyDisplayedLineNumber;
|
||
|
extern LIST_ENTRY* pPsProcessListHead;
|
||
|
|
||
|
BOOLEAN AsciiToHex(LPSTR p,PULONG pValue);
|
||
|
void Parse(LPSTR pCmdLine,BOOLEAN bInvokedByFkey);
|
||
|
LPSTR FindCommand(LPSTR p);
|
||
|
ULONG StrLenUpToWhiteChar(LPSTR p,LPSTR lpszWhiteChars);
|
||
|
BOOLEAN WaitForKey(void);
|
||
|
BOOLEAN ConvertTokenToHex(LPSTR p,PULONG pValue);
|
||
|
void DisplaySourceFile(LPSTR pSrcLine,LPSTR pSrcEnd,ULONG ulLineNumber,ULONG ulLineNumberToInvert);
|
||
|
BOOLEAN ConvertTokenToSrcFile(LPSTR p,PULONG pValue);
|
||
|
void RepaintDesktop(void);
|
||
|
void PutStatusText(LPSTR p);
|
||
|
void UnassembleOneLineDown(void);
|
||
|
void UnassembleOnePageDown(ULONG page);
|
||
|
void UnassembleOneLineUp(void);
|
||
|
void UnassembleOnePageUp(ULONG page);
|
||
|
|
||
|
extern BOOLEAN (*DisplayMemory)(PARGS pArgs);
|
||
|
|
||
|
#define COMMAND_PROTOTYPE(arg) BOOLEAN arg(PARGS pArgs)
|
||
|
#define COMMAND_RET return TRUE
|
||
|
|
||
|
// available commands
|
||
|
COMMAND_PROTOTYPE(ShowGdt);
|
||
|
COMMAND_PROTOTYPE(LeaveIce);
|
||
|
COMMAND_PROTOTYPE(SingleStep);
|
||
|
COMMAND_PROTOTYPE(ShowHelp);
|
||
|
COMMAND_PROTOTYPE(ShowPageDirs);
|
||
|
COMMAND_PROTOTYPE(ShowProcesses);
|
||
|
COMMAND_PROTOTYPE(DisplayMemoryDword);
|
||
|
COMMAND_PROTOTYPE(DisplayMemoryByte);
|
||
|
COMMAND_PROTOTYPE(DisplayPhysMemDword);
|
||
|
COMMAND_PROTOTYPE(Unassemble);
|
||
|
COMMAND_PROTOTYPE(ShowSymbols);
|
||
|
COMMAND_PROTOTYPE(ShowModules);
|
||
|
COMMAND_PROTOTYPE(SetBreakpoint);
|
||
|
COMMAND_PROTOTYPE(ListBreakpoints);
|
||
|
COMMAND_PROTOTYPE(ClearBreakpoints);
|
||
|
COMMAND_PROTOTYPE(Ver);
|
||
|
COMMAND_PROTOTYPE(Hboot);
|
||
|
COMMAND_PROTOTYPE(I3here);
|
||
|
COMMAND_PROTOTYPE(I1here);
|
||
|
COMMAND_PROTOTYPE(SetSrcDisplay);
|
||
|
COMMAND_PROTOTYPE(ShowIdt);
|
||
|
COMMAND_PROTOTYPE(StepOver);
|
||
|
COMMAND_PROTOTYPE(StepInto);
|
||
|
COMMAND_PROTOTYPE(SetGetRegisters);
|
||
|
COMMAND_PROTOTYPE(SetCodeDisplay);
|
||
|
COMMAND_PROTOTYPE(NextInstr);
|
||
|
COMMAND_PROTOTYPE(ShowCPU);
|
||
|
COMMAND_PROTOTYPE(ShowTables);
|
||
|
COMMAND_PROTOTYPE(WalkStack);
|
||
|
COMMAND_PROTOTYPE(ShowVirtualMemory);
|
||
|
COMMAND_PROTOTYPE(UnassembleAtCurrentEip);
|
||
|
COMMAND_PROTOTYPE(PokeMemory);
|
||
|
COMMAND_PROTOTYPE(PeekMemory);
|
||
|
COMMAND_PROTOTYPE(ShowLocals);
|
||
|
COMMAND_PROTOTYPE(SwitchTables);
|
||
|
COMMAND_PROTOTYPE(SwitchFiles);
|
||
|
COMMAND_PROTOTYPE(EvaluateExpression);
|
||
|
COMMAND_PROTOTYPE(SizeCodeWindow);
|
||
|
COMMAND_PROTOTYPE(SizeDataWindow);
|
||
|
COMMAND_PROTOTYPE(ClearScreen);
|
||
|
COMMAND_PROTOTYPE(ShowMappings);
|
||
|
COMMAND_PROTOTYPE(ShowTimers);
|
||
|
COMMAND_PROTOTYPE(ShowPCI);
|
||
|
COMMAND_PROTOTYPE(SetKeyboardLayout);
|
||
|
COMMAND_PROTOTYPE(ShowSysCallTable);
|
||
|
COMMAND_PROTOTYPE(SetAltKey);
|
||
|
COMMAND_PROTOTYPE(ShowContext);
|
||
|
|
||
|
//ei - make sure the following correspond to ntoskrnl/mm/i386/page.c
|
||
|
//sedwards - Dont use them if you dont need them. Use DDK headers instead.
|
||
|
#define PAGETABLE_MAP (0xf0000000)
|
||
|
#define PAGEDIRECTORY_MAP (0xf0000000 + (PAGETABLE_MAP / (1024)))
|
||
|
//#define PAGE_SHIFT 12
|
||
|
#define PTRS_PER_PTE 1024
|
||
|
//#define PAGE_SIZE (1UL << PAGE_SHIFT)
|
||
|
#define ADDR_TO_PAGE_TABLE(v) (((ULONG)(v)) / (4 * 1024 * 1024))
|
||
|
#define ADDR_TO_PDE(v) (PULONG)(PAGEDIRECTORY_MAP + \
|
||
|
(((ULONG)v / (1024 * 1024))&(~0x3)))
|
||
|
#define ADDR_TO_PTE(v) (PULONG)(PAGETABLE_MAP + ((((ULONG)v / 1024))&(~0x3)))
|
||
|
#define ADDR_TO_PDE_OFFSET(v) (((ULONG)v / (4 * 1024 * 1024)))
|