Initial commit
This commit is contained in:
145
xbdm/dmglobals.h
Normal file
145
xbdm/dmglobals.h
Normal file
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
Copyright (c) 2013 Nathan LeRoux
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _DMGLOBALS_H
|
||||
#define _DMGLOBALS_H
|
||||
|
||||
#define CONSOLE_COLOR_FLAG_NOSIDECAR 0 // JTAG
|
||||
#define CONSOLE_COLOR_FLAG_BLACK 1 // DEVKIT
|
||||
#define CONSOLE_COLOR_FLAG_BLUE 2 // 1GB
|
||||
#define CONSOLE_COLOR_FLAG_WHITE 4 // TESTKIT
|
||||
|
||||
typedef struct _KEXCEPTION_FRAME
|
||||
{
|
||||
DWORD Status; // 0
|
||||
DWORD Unk; // 4
|
||||
DWORD Unk2; // 8
|
||||
DWORD Unk3; // C
|
||||
BOOL Continuable; // If the exception can be continued // 10
|
||||
DWORD ExceptionInformation[32]; // 14
|
||||
} KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
|
||||
|
||||
typedef BOOL (*pfnTrapHandler)(PKTRAP_FRAME ptf, PKEXCEPTION_FRAME pef,
|
||||
PCONTEXT pcr, BOOL fSecondChance);
|
||||
|
||||
typedef struct _ldata{ //This is the variable exported on ordinal 1 from dashlaunch
|
||||
DWORD ID;
|
||||
DWORD ltype;
|
||||
char link[MAX_PATH];
|
||||
char dev[MAX_PATH];
|
||||
USHORT versionMaj;
|
||||
USHORT versionMin;
|
||||
USHORT targetKernel;
|
||||
USHORT reserved;
|
||||
DWORD options; // for external apps that want to know what dash launch has set/parsed
|
||||
pfnTrapHandler *DebugRoutine; // for external apps that want to recursively hook and call the first/last chance exception trap on their own
|
||||
LPDWORD DebugStepPatch; // address to patch single step exception to not be skipped (write 0x60000000/nop to this address to enable it)
|
||||
} ldata, *pldata;
|
||||
|
||||
// Debug Monitor Global Data
|
||||
typedef struct _DMGD
|
||||
{
|
||||
BOOL bDirty; // If true, the saved settings will be flushed soon
|
||||
|
||||
BOOL bDashlaunch; // If true, dashlaunch is loaded with the version we want
|
||||
|
||||
pldata pLaunchData; // This is the data taken from dashlaunch
|
||||
|
||||
HMODULE hXam; // xam.xex
|
||||
HMODULE hKernel; // xboxkrnl.exe
|
||||
HMODULE hDashlaunch; // launch.xex
|
||||
|
||||
pfnTrapHandler PreviousTrap; // The trap handler that used to be there
|
||||
|
||||
HANDLE pthrServ; // The server thread handle
|
||||
|
||||
BOOL fClockSet; // If the clock was set yet
|
||||
|
||||
BOOL bHasIp; // If we have an ip address
|
||||
|
||||
DWORD dwPid; // Process id
|
||||
|
||||
BOOL bDebugging; // If a debugger is present
|
||||
DWORD dwDebugPort; // The debugger port
|
||||
char rgchDebuggerName[256]; // The debugger name
|
||||
char rgchDebuggerUser[256]; // The debugger user
|
||||
|
||||
DWORD dwStopFlags; // When we should stop
|
||||
|
||||
BOOL bHypervisorEnabled; // If hypervisor expansions are enabled
|
||||
|
||||
// BEGIN_SAVED_SETTINGS
|
||||
|
||||
char rgchDbgName[256]; // The debug name of the xbox
|
||||
BOOL bDriveMap; // If we map internal drives or not
|
||||
|
||||
DWORD dwConsoleColor;
|
||||
|
||||
BOOL bMagicBoot; // If we are to write the magicboot settings to disk
|
||||
char szBootTitle[MAX_PATH]; // The path to the title that we want to boot
|
||||
char szBootPath[MAX_PATH]; // The path that we want to use as game:\\
|
||||
char szBootCmdLine[MAX_PATH]; // The command line arguments to pass when we boot
|
||||
DWORD dwBootFlags; // The flags for when we continue
|
||||
DWORD dwDumpMode; // What we do if we crash without a debugger attached
|
||||
|
||||
// END_SAVED_SETTINGS
|
||||
} DMGD, *PDMGD;
|
||||
|
||||
// Debug Monitor Debug Data
|
||||
typedef struct _DMDD
|
||||
{
|
||||
PKPROCESS KeSystemProcess; // A descriptor for all system threads (spinlock this!)
|
||||
PKPROCESS KeTitleProcess; // A descriptor for all title threads (spinlock this!)
|
||||
|
||||
PLIST_ENTRY PsLoadedModuleList; // A list of all loaded modules
|
||||
DWORD *XexLoadedModuleListLock; // Spinlock this before using PsLoadedModuleList
|
||||
} DMDD, *PDMDD;
|
||||
|
||||
extern DMGD g_dmGlobals;
|
||||
extern DMDD g_dmDebug;
|
||||
|
||||
#ifdef _DEBUG
|
||||
typedef struct
|
||||
{
|
||||
DWORD MinVersion;
|
||||
DWORD Unk; // i dont set this
|
||||
DWORD XamXbdmRebootRequest; // run this to reboot
|
||||
DWORD Unk1;
|
||||
DWORD Unk2;
|
||||
DWORD Unk3;
|
||||
DWORD Unk4;
|
||||
DWORD Unk5;
|
||||
BYTE szTitle[0x100];
|
||||
BYTE szFolder[0x100];
|
||||
BYTE szCmdLine[0x100];
|
||||
} XAMGLOBALS;
|
||||
extern XAMGLOBALS g_XamGlobals;
|
||||
#endif
|
||||
|
||||
// Exports
|
||||
|
||||
// XAM.XEX
|
||||
typedef NTSTATUS (*pfnXamLoaderLaunchTitleEx)(LPCSTR XexName, LPCSTR MountPath,
|
||||
LPCSTR CmdLine, DWORD Flags);
|
||||
pfnXamLoaderLaunchTitleEx XamLoaderLaunchTitleEx;
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user