Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
OSHardware.h File Reference

Go to the source code of this file.

Classes

struct  OSDebugInterface
 
struct  OSBI2
 

Typedefs

typedef struct OSDebugInterface OSDebugInterface
 
typedef struct OSBI2 OSBI2
 

Enumerations

enum  OSBootMagic { OS_BOOT_MAGIC_BOOTROM = 0xD15EA5E , OS_BOOT_MAGIC_JTAG = 0xE5207C22 }
 
enum  PIHwReg {
  PI_INTSR , PI_INTMR , PI_REG_0x8 , PI_REG_0xC ,
  PI_REG_0x10 , PI_REG_0x14 , PI_REG_0x18 , PI_REG_0x1C ,
  PI_REG_0x20 , PI_RESET
}
 
enum  MIHwReg {
  MI_PAGE_MEM0_H , MI_PAGE_MEM0_L , MI_PAGE_MEM1_H , MI_PAGE_MEM1_L ,
  MI_PAGE_MEM2_H , MI_PAGE_MEM2_L , MI_PAGE_MEM3_H , MI_PAGE_MEM3_L ,
  MI_PROT_MEM0 , MI_PROT_MEM1 , MI_PROT_MEM2 , MI_PROT_MEM3 ,
  MI_REG_0x18 , MI_REG_0x1A , MI_INTMR , MI_INTSR ,
  MI_REG_0x20 , MI_ADDRLO , MI_ADDRHI , MI_REG_0x26 ,
  MI_REG_0x28
}
 

Functions

 OS_DEF_GLOBAL_VAR (OSBootInfo, BOOT_INFO, 0x80000000)
 
 OS_DEF_GLOBAL_VAR (OSDebugInterface, DEBUG_INTERFACE, 0x80000040)
 
 OS_DEF_GLOBAL_ARR (u8, DB_INTEGRATOR_HOOK, [0x24], 0x80000060)
 
 OS_DEF_GLOBAL_VAR (struct OSContext *, CURRENT_CONTEXT_PHYS, 0x800000C0)
 
 OS_DEF_GLOBAL_VAR (u32, PREV_INTR_MASK, 0x800000C4)
 
 OS_DEF_GLOBAL_VAR (u32, CURRENT_INTR_MASK, 0x800000C8)
 
 OS_DEF_GLOBAL_VAR (u32, TV_FORMAT, 0x800000CC)
 
 OS_DEF_GLOBAL_VAR (u32, ARAM_SIZE, 0x800000D0)
 
 OS_DEF_GLOBAL_VAR (struct OSContext *, CURRENT_CONTEXT, 0x800000D4)
 
 OS_DEF_GLOBAL_VAR (struct OSContext *, CURRENT_FPU_CONTEXT, 0x800000D8)
 
 OS_DEF_GLOBAL_VAR (OSThreadQueue, THREAD_QUEUE, 0x800000DC)
 
 OS_DEF_GLOBAL_VAR (OSThread *, CURRENT_THREAD, 0x800000E4)
 
 OS_DEF_GLOBAL_VAR (u32, DEBUG_MONITOR_SIZE, 0x800000E8)
 
 OS_DEF_GLOBAL_VAR (void *, DEBUG_MONITOR, 0x800000EC)
 
 OS_DEF_GLOBAL_VAR (u32, SIMULATED_MEM_SIZE, 0x800000F0)
 
 OS_DEF_GLOBAL_VAR (OSBI2 *, DVD_BI2, 0x800000F4)
 
 OS_DEF_GLOBAL_VAR (u32, BUS_CLOCK_SPEED, 0x800000F8)
 
 OS_DEF_GLOBAL_VAR (u32, CPU_CLOCK_SPEED, 0x800000FC)
 
 OS_DEF_GLOBAL_ARR (void *, EXCEPTION_TABLE, [15], 0x80003000)
 
 OS_DEF_GLOBAL_VAR (void *, INTR_HANDLER_TABLE, 0x80003040)
 
 OS_DEF_GLOBAL_VAR (void *, FIRST_REL, 0x800030C8)
 
 OS_DEF_GLOBAL_VAR (void *, LAST_REL, 0x800030CC)
 
 OS_DEF_GLOBAL_VAR (void *, REL_NAME_TABLE, 0x800030D0)
 
 OS_DEF_GLOBAL_VAR (u32, DOL_TOTAL_TEXT_DATA, 0x800030D4)
 
 OS_DEF_GLOBAL_VAR (s64, SYSTEM_TIME, 0x800030D8)
 
 OS_DEF_GLOBAL_VAR (u8, PAD_FLAGS, 0x800030E3)
 
 OS_DEF_GLOBAL_VAR (u16, GC_PAD_3_BTN, 0x800030E4)
 
 OS_DEF_GLOBAL_VAR (volatile u16, DVD_DEVICE_CODE, 0x800030E6)
 
 OS_DEF_GLOBAL_VAR (u8, BI2_DEBUG_FLAG, 0x800030E8)
 
 OS_DEF_GLOBAL_VAR (u8, PAD_SPEC, 0x800030E9)
 
 OS_DEF_GLOBAL_VAR (struct OSExecParams *, DOL_EXEC_PARAMS, 0x800030F0)
 
 OS_DEF_GLOBAL_VAR (u32, PHYSICAL_MEM1_SIZE, 0x80003100)
 
 OS_DEF_GLOBAL_VAR (u32, SIMULATED_MEM1_SIZE, 0x80003104)
 
 OS_DEF_GLOBAL_VAR (void *, USABLE_MEM1_START, 0x8000310C)
 
 OS_DEF_GLOBAL_VAR (void *, USABLE_MEM1_END, 0x80003110)
 
 OS_DEF_GLOBAL_VAR (u32, PHYSICAL_MEM2_SIZE, 0x80003118)
 
 OS_DEF_GLOBAL_VAR (u32, SIMULATED_MEM2_SIZE, 0x8000311C)
 
 OS_DEF_GLOBAL_VAR (void *, ACCESSIBLE_MEM2_END, 0x80003120)
 
 OS_DEF_GLOBAL_VAR (void *, USABLE_MEM2_START, 0x80003124)
 
 OS_DEF_GLOBAL_VAR (void *, USABLE_MEM2_END, 0x80003128)
 
 OS_DEF_GLOBAL_VAR (void *, IPC_BUFFER_START, 0x80003130)
 
 OS_DEF_GLOBAL_VAR (void *, IPC_BUFFER_END, 0x80003134)
 
 OS_DEF_GLOBAL_VAR (u32, HOLLYWOOD_REV, 0x80003138)
 
 OS_DEF_GLOBAL_VAR (u32, IOS_VERSION, 0x80003140)
 
 OS_DEF_GLOBAL_VAR (u32, IOS_BUILD_DATE, 0x80003144)
 
 OS_DEF_GLOBAL_VAR (void *, IOS_HEAP_START, 0x80003148)
 
 OS_DEF_GLOBAL_VAR (void *, IOS_HEAP_END, 0x8000314C)
 
 OS_DEF_GLOBAL_VAR (u32, GDDR_VENDOR_CODE, 0x80003158)
 
 OS_DEF_GLOBAL_VAR (u8, BOOT_PROGRAM_TARGET, 0x8000315C)
 
 OS_DEF_GLOBAL_VAR (u8, APPLOADER_TARGET, 0x8000315D)
 
 OS_DEF_GLOBAL_VAR (int, MIOS_SHUTDOWN_FLAG, 0x80003164)
 
 OS_DEF_GLOBAL_VAR (u32, CURRENT_APP_NAME, 0x80003180)
 
 OS_DEF_GLOBAL_VAR (u8, CURRENT_APP_TYPE, 0x80003184)
 
 OS_DEF_GLOBAL_VAR (u32, MINIMUM_IOS_VERSION, 0x80003188)
 
 OS_DEF_GLOBAL_VAR (u32, NAND_TITLE_LAUNCH_CODE, 0x8000318C)
 
 OS_DEF_GLOBAL_VAR (u32, NAND_TITLE_RETURN_CODE, 0x80003190)
 
 OS_DEF_GLOBAL_VAR (u32, BOOT_PARTITION_TYPE, 0x80003194)
 
 OS_DEF_GLOBAL_VAR (u32, BOOT_PARTITION_OFFSET, 0x80003198)
 
 OS_DEF_GLOBAL_ARR (u8, NWC24_USER_ID_BUFFER, [32], 0x800031C0)
 
 OS_DEF_GLOBAL_VAR (u64, NWC24_USER_ID, 0x800031C0)
 
 OS_DEF_GLOBAL_ARR (u8, SC_PRDINFO, [0x100], 0x80003800)
 
volatile u32 PI_HW_REGS[] AT_ADDRESS (0xCC003000)
 
volatile u16 MI_HW_REGS[] AT_ADDRESS (0xCC004000)
 
 OS_DEF_HW_REG (volatile unsigned long, DI_DMA_ADDR, 0xCD006014)
 
 OS_DEF_HW_REG (volatile unsigned long, DI_CONFIG, 0xCD006024)
 
 OS_DEF_HW_REG (volatile unsigned long, UNK_CD000034, 0xCD000034)
 
 OS_DEF_HW_REG (volatile unsigned long, UNK_CD800180, 0xCD800180)
 
 OS_DEF_HW_REG (volatile unsigned long, UNK_CD8001CC, 0xCD8001CC)
 
 OS_DEF_HW_REG (volatile unsigned long, UNK_CD8001D0, 0xCD8001D0)
 

Typedef Documentation

◆ OSBI2

typedef struct OSBI2 OSBI2

◆ OSDebugInterface

typedef struct OSDebugInterface OSDebugInterface

Enumeration Type Documentation

◆ MIHwReg

enum MIHwReg
Enumerator
MI_PAGE_MEM0_H 

0xCC004000

MI_PAGE_MEM0_L 

0xCC004002

MI_PAGE_MEM1_H 

0xCC004004

MI_PAGE_MEM1_L 

0xCC004006

MI_PAGE_MEM2_H 

0xCC004008

MI_PAGE_MEM2_L 

0xCC00400A

MI_PAGE_MEM3_H 

0xCC00400C

MI_PAGE_MEM3_L 

0xCC00400E

MI_PROT_MEM0 

0xCC004010

MI_PROT_MEM1 

0xCC004012

MI_PROT_MEM2 

0xCC004014

MI_PROT_MEM3 

0xCC004016

MI_REG_0x18 

0xCC004018

MI_REG_0x1A 

0xCC00401A

MI_INTMR 

0xCC00401C

MI_INTSR 

0xCC00401E

MI_REG_0x20 

0xCC004020

MI_ADDRLO 

0xCC004022

MI_ADDRHI 

0xCC004024

MI_REG_0x26 

0xCC004026

MI_REG_0x28 

0xCC004028

◆ OSBootMagic

Enumerator
OS_BOOT_MAGIC_BOOTROM 
OS_BOOT_MAGIC_JTAG 

◆ PIHwReg

enum PIHwReg
Enumerator
PI_INTSR 

0xCC003000

PI_INTMR 

0xCC003004

PI_REG_0x8 

0xCC003008

PI_REG_0xC 

0xCC00300C

PI_REG_0x10 

0xCC003010

PI_REG_0x14 

0xCC003014

PI_REG_0x18 

0xCC003018

PI_REG_0x1C 

0xCC00301C

PI_REG_0x20 

0xCC003020

PI_RESET 

0xCC003024

Function Documentation

◆ AT_ADDRESS() [1/2]

volatile u32 PI_HW_REGS[] AT_ADDRESS ( 0xCC003000 )

PI hardware globals

◆ AT_ADDRESS() [2/2]

volatile u16 MI_HW_REGS[] AT_ADDRESS ( 0xCC004000 )

MI hardware registers

◆ OS_DEF_GLOBAL_ARR() [1/4]

OS_DEF_GLOBAL_ARR ( u8 ,
DB_INTEGRATOR_HOOK ,
0x80000060  )

◆ OS_DEF_GLOBAL_ARR() [2/4]

OS_DEF_GLOBAL_ARR ( u8 ,
NWC24_USER_ID_BUFFER ,
0x800031C0  )

◆ OS_DEF_GLOBAL_ARR() [3/4]

OS_DEF_GLOBAL_ARR ( u8 ,
SC_PRDINFO ,
0x80003800  )

◆ OS_DEF_GLOBAL_ARR() [4/4]

OS_DEF_GLOBAL_ARR ( void * ,
EXCEPTION_TABLE ,
0x80003000  )

0x80003000 - 0x80003F00

◆ OS_DEF_GLOBAL_VAR() [1/57]

OS_DEF_GLOBAL_VAR ( int ,
MIOS_SHUTDOWN_FLAG ,
0x80003164  )

◆ OS_DEF_GLOBAL_VAR() [2/57]

OS_DEF_GLOBAL_VAR ( OSBI2 * ,
DVD_BI2 ,
0x800000F4  )

◆ OS_DEF_GLOBAL_VAR() [3/57]

OS_DEF_GLOBAL_VAR ( OSBootInfo ,
BOOT_INFO ,
0x80000000  )

0x80000000 - 0x80000100

◆ OS_DEF_GLOBAL_VAR() [4/57]

OS_DEF_GLOBAL_VAR ( OSDebugInterface ,
DEBUG_INTERFACE ,
0x80000040  )

◆ OS_DEF_GLOBAL_VAR() [5/57]

OS_DEF_GLOBAL_VAR ( OSThread * ,
CURRENT_THREAD ,
0x800000E4  )

◆ OS_DEF_GLOBAL_VAR() [6/57]

OS_DEF_GLOBAL_VAR ( OSThreadQueue ,
THREAD_QUEUE ,
0x800000DC  )

◆ OS_DEF_GLOBAL_VAR() [7/57]

OS_DEF_GLOBAL_VAR ( s64 ,
SYSTEM_TIME ,
0x800030D8  )

◆ OS_DEF_GLOBAL_VAR() [8/57]

OS_DEF_GLOBAL_VAR ( struct OSContext * ,
CURRENT_CONTEXT ,
0x800000D4  )

◆ OS_DEF_GLOBAL_VAR() [9/57]

OS_DEF_GLOBAL_VAR ( struct OSContext * ,
CURRENT_CONTEXT_PHYS ,
0x800000C0  )

◆ OS_DEF_GLOBAL_VAR() [10/57]

OS_DEF_GLOBAL_VAR ( struct OSContext * ,
CURRENT_FPU_CONTEXT ,
0x800000D8  )

◆ OS_DEF_GLOBAL_VAR() [11/57]

OS_DEF_GLOBAL_VAR ( struct OSExecParams * ,
DOL_EXEC_PARAMS ,
0x800030F0  )

◆ OS_DEF_GLOBAL_VAR() [12/57]

OS_DEF_GLOBAL_VAR ( u16 ,
GC_PAD_3_BTN ,
0x800030E4  )

◆ OS_DEF_GLOBAL_VAR() [13/57]

OS_DEF_GLOBAL_VAR ( u32 ,
ARAM_SIZE ,
0x800000D0  )

◆ OS_DEF_GLOBAL_VAR() [14/57]

OS_DEF_GLOBAL_VAR ( u32 ,
BOOT_PARTITION_OFFSET ,
0x80003198  )

◆ OS_DEF_GLOBAL_VAR() [15/57]

OS_DEF_GLOBAL_VAR ( u32 ,
BOOT_PARTITION_TYPE ,
0x80003194  )

◆ OS_DEF_GLOBAL_VAR() [16/57]

OS_DEF_GLOBAL_VAR ( u32 ,
BUS_CLOCK_SPEED ,
0x800000F8  )

◆ OS_DEF_GLOBAL_VAR() [17/57]

OS_DEF_GLOBAL_VAR ( u32 ,
CPU_CLOCK_SPEED ,
0x800000FC  )

◆ OS_DEF_GLOBAL_VAR() [18/57]

OS_DEF_GLOBAL_VAR ( u32 ,
CURRENT_APP_NAME ,
0x80003180  )

◆ OS_DEF_GLOBAL_VAR() [19/57]

OS_DEF_GLOBAL_VAR ( u32 ,
CURRENT_INTR_MASK ,
0x800000C8  )

◆ OS_DEF_GLOBAL_VAR() [20/57]

OS_DEF_GLOBAL_VAR ( u32 ,
DEBUG_MONITOR_SIZE ,
0x800000E8  )

◆ OS_DEF_GLOBAL_VAR() [21/57]

OS_DEF_GLOBAL_VAR ( u32 ,
DOL_TOTAL_TEXT_DATA ,
0x800030D4  )

◆ OS_DEF_GLOBAL_VAR() [22/57]

OS_DEF_GLOBAL_VAR ( u32 ,
GDDR_VENDOR_CODE ,
0x80003158  )

◆ OS_DEF_GLOBAL_VAR() [23/57]

OS_DEF_GLOBAL_VAR ( u32 ,
HOLLYWOOD_REV ,
0x80003138  )

◆ OS_DEF_GLOBAL_VAR() [24/57]

OS_DEF_GLOBAL_VAR ( u32 ,
IOS_BUILD_DATE ,
0x80003144  )

◆ OS_DEF_GLOBAL_VAR() [25/57]

OS_DEF_GLOBAL_VAR ( u32 ,
IOS_VERSION ,
0x80003140  )

◆ OS_DEF_GLOBAL_VAR() [26/57]

OS_DEF_GLOBAL_VAR ( u32 ,
MINIMUM_IOS_VERSION ,
0x80003188  )

◆ OS_DEF_GLOBAL_VAR() [27/57]

OS_DEF_GLOBAL_VAR ( u32 ,
NAND_TITLE_LAUNCH_CODE ,
0x8000318C  )

◆ OS_DEF_GLOBAL_VAR() [28/57]

OS_DEF_GLOBAL_VAR ( u32 ,
NAND_TITLE_RETURN_CODE ,
0x80003190  )

◆ OS_DEF_GLOBAL_VAR() [29/57]

OS_DEF_GLOBAL_VAR ( u32 ,
PHYSICAL_MEM1_SIZE ,
0x80003100  )

◆ OS_DEF_GLOBAL_VAR() [30/57]

OS_DEF_GLOBAL_VAR ( u32 ,
PHYSICAL_MEM2_SIZE ,
0x80003118  )

◆ OS_DEF_GLOBAL_VAR() [31/57]

OS_DEF_GLOBAL_VAR ( u32 ,
PREV_INTR_MASK ,
0x800000C4  )

◆ OS_DEF_GLOBAL_VAR() [32/57]

OS_DEF_GLOBAL_VAR ( u32 ,
SIMULATED_MEM1_SIZE ,
0x80003104  )

◆ OS_DEF_GLOBAL_VAR() [33/57]

OS_DEF_GLOBAL_VAR ( u32 ,
SIMULATED_MEM2_SIZE ,
0x8000311C  )

◆ OS_DEF_GLOBAL_VAR() [34/57]

OS_DEF_GLOBAL_VAR ( u32 ,
SIMULATED_MEM_SIZE ,
0x800000F0  )

◆ OS_DEF_GLOBAL_VAR() [35/57]

OS_DEF_GLOBAL_VAR ( u32 ,
TV_FORMAT ,
0x800000CC  )

◆ OS_DEF_GLOBAL_VAR() [36/57]

OS_DEF_GLOBAL_VAR ( u64 ,
NWC24_USER_ID ,
0x800031C0  )

◆ OS_DEF_GLOBAL_VAR() [37/57]

OS_DEF_GLOBAL_VAR ( u8 ,
APPLOADER_TARGET ,
0x8000315D  )

◆ OS_DEF_GLOBAL_VAR() [38/57]

OS_DEF_GLOBAL_VAR ( u8 ,
BI2_DEBUG_FLAG ,
0x800030E8  )

◆ OS_DEF_GLOBAL_VAR() [39/57]

OS_DEF_GLOBAL_VAR ( u8 ,
BOOT_PROGRAM_TARGET ,
0x8000315C  )

◆ OS_DEF_GLOBAL_VAR() [40/57]

OS_DEF_GLOBAL_VAR ( u8 ,
CURRENT_APP_TYPE ,
0x80003184  )

◆ OS_DEF_GLOBAL_VAR() [41/57]

OS_DEF_GLOBAL_VAR ( u8 ,
PAD_FLAGS ,
0x800030E3  )

◆ OS_DEF_GLOBAL_VAR() [42/57]

OS_DEF_GLOBAL_VAR ( u8 ,
PAD_SPEC ,
0x800030E9  )

◆ OS_DEF_GLOBAL_VAR() [43/57]

OS_DEF_GLOBAL_VAR ( void * ,
ACCESSIBLE_MEM2_END ,
0x80003120  )

◆ OS_DEF_GLOBAL_VAR() [44/57]

OS_DEF_GLOBAL_VAR ( void * ,
DEBUG_MONITOR ,
0x800000EC  )

◆ OS_DEF_GLOBAL_VAR() [45/57]

OS_DEF_GLOBAL_VAR ( void * ,
FIRST_REL ,
0x800030C8  )

◆ OS_DEF_GLOBAL_VAR() [46/57]

OS_DEF_GLOBAL_VAR ( void * ,
INTR_HANDLER_TABLE ,
0x80003040  )

◆ OS_DEF_GLOBAL_VAR() [47/57]

OS_DEF_GLOBAL_VAR ( void * ,
IOS_HEAP_END ,
0x8000314C  )

◆ OS_DEF_GLOBAL_VAR() [48/57]

OS_DEF_GLOBAL_VAR ( void * ,
IOS_HEAP_START ,
0x80003148  )

◆ OS_DEF_GLOBAL_VAR() [49/57]

OS_DEF_GLOBAL_VAR ( void * ,
IPC_BUFFER_END ,
0x80003134  )

◆ OS_DEF_GLOBAL_VAR() [50/57]

OS_DEF_GLOBAL_VAR ( void * ,
IPC_BUFFER_START ,
0x80003130  )

◆ OS_DEF_GLOBAL_VAR() [51/57]

OS_DEF_GLOBAL_VAR ( void * ,
LAST_REL ,
0x800030CC  )

◆ OS_DEF_GLOBAL_VAR() [52/57]

OS_DEF_GLOBAL_VAR ( void * ,
REL_NAME_TABLE ,
0x800030D0  )

◆ OS_DEF_GLOBAL_VAR() [53/57]

OS_DEF_GLOBAL_VAR ( void * ,
USABLE_MEM1_END ,
0x80003110  )

◆ OS_DEF_GLOBAL_VAR() [54/57]

OS_DEF_GLOBAL_VAR ( void * ,
USABLE_MEM1_START ,
0x8000310C  )

◆ OS_DEF_GLOBAL_VAR() [55/57]

OS_DEF_GLOBAL_VAR ( void * ,
USABLE_MEM2_END ,
0x80003128  )

◆ OS_DEF_GLOBAL_VAR() [56/57]

OS_DEF_GLOBAL_VAR ( void * ,
USABLE_MEM2_START ,
0x80003124  )

◆ OS_DEF_GLOBAL_VAR() [57/57]

OS_DEF_GLOBAL_VAR ( volatile u16 ,
DVD_DEVICE_CODE ,
0x800030E6  )

◆ OS_DEF_HW_REG() [1/6]

OS_DEF_HW_REG ( volatile unsigned long ,
DI_CONFIG ,
0xCD006024  )

◆ OS_DEF_HW_REG() [2/6]

OS_DEF_HW_REG ( volatile unsigned long ,
DI_DMA_ADDR ,
0xCD006014  )

DI hardware globals

◆ OS_DEF_HW_REG() [3/6]

OS_DEF_HW_REG ( volatile unsigned long ,
UNK_CD000034 ,
0xCD000034  )

Misc/unknown globals

◆ OS_DEF_HW_REG() [4/6]

OS_DEF_HW_REG ( volatile unsigned long ,
UNK_CD800180 ,
0xCD800180  )

◆ OS_DEF_HW_REG() [5/6]

OS_DEF_HW_REG ( volatile unsigned long ,
UNK_CD8001CC ,
0xCD8001CC  )

◆ OS_DEF_HW_REG() [6/6]

OS_DEF_HW_REG ( volatile unsigned long ,
UNK_CD8001D0 ,
0xCD8001D0  )