153 lines
3.9 KiB
C
153 lines
3.9 KiB
C
/*++ BUILD Version: 0002 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
init.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the INIT subcomponent of NTOS
|
|
|
|
Author:
|
|
|
|
Steve Wood (stevewo) 31-Mar-1989
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _INIT_
|
|
#define _INIT_
|
|
|
|
//
|
|
// Define xbox kernel version structure.
|
|
//
|
|
|
|
typedef struct _XBOX_KRNL_VERSION {
|
|
USHORT Major;
|
|
USHORT Minor;
|
|
USHORT Build;
|
|
USHORT Qfe;
|
|
} XBOX_KRNL_VERSION, *PXBOX_KRNL_VERSION;
|
|
|
|
#if !defined(_NTSYSTEM_)
|
|
extern const PXBOX_KRNL_VERSION XboxKrnlVersion;
|
|
#else
|
|
extern const XBOX_KRNL_VERSION XboxKrnlVersion;
|
|
#endif
|
|
|
|
//
|
|
// Information about the current hardware that the system is running on
|
|
//
|
|
typedef struct _XBOX_HARDWARE_INFO {
|
|
ULONG Flags;
|
|
UCHAR GpuRevision;
|
|
UCHAR McpRevision;
|
|
UCHAR reserved[2];
|
|
} XBOX_HARDWARE_INFO;
|
|
|
|
#if !defined(_NTSYSTEM_)
|
|
extern const XBOX_HARDWARE_INFO* XboxHardwareInfo;
|
|
#else
|
|
extern XBOX_HARDWARE_INFO XboxHardwareInfo;
|
|
#endif
|
|
|
|
//
|
|
// Define XboxHardwareFlags - a list of
|
|
// flags indicating hardware differences
|
|
// the title libraries must know about.
|
|
//
|
|
#define XBOX_HW_FLAG_INTERNAL_USB_HUB 0x00000001
|
|
#define XBOX_HW_FLAG_DEVKIT_KERNEL 0x00000002
|
|
#define XBOX_480P_MACROVISION_ENABLED 0x00000004
|
|
#define XBOX_HW_FLAG_ARCADE 0x00000008
|
|
|
|
//
|
|
// Boot flags
|
|
//
|
|
extern ULONG XboxBootFlags;
|
|
|
|
#define XBOX_BOOTFLAG_SHADOW 0x00000001
|
|
#define XBOX_BOOTFLAG_HDBOOT 0x00000002
|
|
#define XBOX_BOOTFLAG_CDBOOT 0x00000004
|
|
#define XBOX_BOOTFLAG_NONSECUREMODE 0x00000008
|
|
#define XBOX_BOOTFLAG_SHORTANIMATION 0x00000010
|
|
#define XBOX_BOOTFLAG_DISPLAYFATALERROR 0x00000020
|
|
#define XBOX_BOOTFLAG_TRAYEJECT 0x00000040
|
|
#define XBOX_BOOTFLAG_DASHBOARDBOOT 0x00000080
|
|
|
|
//
|
|
// Define the fatal error codes. The bitmap of UEMs stored
|
|
// in EEPROM starts at HDD_NOT_LOCKED being at bit zero.
|
|
// CORE_DIGITAL and BAD_RAM are values used by the SMC.
|
|
//
|
|
|
|
#define FATAL_ERROR_NONE 0x00
|
|
#define FATAL_ERROR_CORE_DIGITAL 0x01
|
|
#define FATAL_ERROR_BAD_EEPROM 0x02
|
|
#define FATAL_ERROR_UNUSED1 0x03
|
|
#define FATAL_ERROR_BAD_RAM 0x04
|
|
#define FATAL_ERROR_HDD_NOT_LOCKED 0x05
|
|
#define FATAL_ERROR_HDD_CANNOT_UNLOCK 0x06
|
|
#define FATAL_ERROR_HDD_TIMEOUT 0x07
|
|
#define FATAL_ERROR_HDD_NOT_FOUND 0x08
|
|
#define FATAL_ERROR_HDD_BAD_CONFIG 0x09
|
|
#define FATAL_ERROR_DVD_TIMEOUT 0x0A
|
|
#define FATAL_ERROR_DVD_NOT_FOUND 0x0B
|
|
#define FATAL_ERROR_DVD_BAD_CONFIG 0x0C
|
|
#define FATAL_ERROR_XBE_DASH_GENERIC 0x0D
|
|
#define FATAL_ERROR_XBE_DASH_ERROR 0x0E
|
|
#define FATAL_ERROR_UNUSED2 0x0F
|
|
#define FATAL_ERROR_XBE_DASH_SETTINGS 0x10
|
|
#define FATAL_ERROR_UNUSED3 0x11
|
|
#define FATAL_ERROR_UNUSED4 0x12
|
|
#define FATAL_ERROR_UNUSED5 0x13
|
|
#define FATAL_ERROR_XBE_DASH_X2_PASS 0x14
|
|
#define FATAL_ERROR_REBOOT_ROUTINE 0x15
|
|
#define FATAL_ERROR_RESERVED 0xFF
|
|
|
|
|
|
VOID
|
|
KiSystemStartup(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
Phase1Initialization(
|
|
IN PVOID Context
|
|
);
|
|
|
|
DECLSPEC_NORETURN
|
|
VOID
|
|
ExDisplayFatalError(
|
|
IN ULONG ErrorCode
|
|
);
|
|
|
|
//
|
|
// Various Xbox encryption keys and game region
|
|
//
|
|
#define XBOX_KEY_LENGTH 16
|
|
|
|
typedef UCHAR XBOX_KEY_DATA[XBOX_KEY_LENGTH];
|
|
extern XBOX_KEY_DATA XboxCERTKey;
|
|
extern ULONG XboxGameRegion;
|
|
|
|
#if !defined(_NTSYSTEM_)
|
|
extern const XBOX_KEY_DATA* XboxEEPROMKey;
|
|
extern const XBOX_KEY_DATA* XboxHDKey;
|
|
extern const XBOX_KEY_DATA* XboxLANKey;
|
|
extern const XBOX_KEY_DATA* XboxSignatureKey;
|
|
extern const XBOX_KEY_DATA* XboxAlternateSignatureKeys[];
|
|
#else
|
|
extern XBOX_KEY_DATA XboxEEPROMKey;
|
|
extern XBOX_KEY_DATA XboxHDKey;
|
|
extern XBOX_KEY_DATA XboxLANKey;
|
|
extern XBOX_KEY_DATA XboxSignatureKey;
|
|
extern XBOX_KEY_DATA XboxAlternateSignatureKeys[];
|
|
#endif
|
|
|
|
#endif // _INIT_
|
|
|