1 /*---------------------------------------------------------------------------* 2 Project: TwlSDK - OS - include 3 File: ownerInfoEx_private.h 4 5 Copyright 2003-2008 Nintendo. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Date:: 2008-10-30#$ 14 $Rev: 9155 $ 15 $Author: hirose_kazuki $ 16 *---------------------------------------------------------------------------*/ 17 18 #ifndef TWL_OS_COMMON_OWNERINFO_PRIVATE_H_ 19 #define TWL_OS_COMMON_OWNERINFO_PRIVATE_H_ 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 /*---------------------------------------------------------------------------* 26 Declarations that general developers should not be aware of have been taken out of ownerInfoEx.h. 27 Applications should not directly use the items defined here. 28 *---------------------------------------------------------------------------*/ 29 30 /*===========================================================================*/ 31 32 #include <twl/types.h> 33 #include <twl/spec.h> 34 #ifdef SDK_NITRO 35 #include <nitro/hw/common/mmap_shared.h> 36 #else 37 #include <twl/hw/common/mmap_shared.h> 38 #endif 39 40 #include <twl/os/common/ownerInfoEx.h> 41 42 43 /*---------------------------------------------------------------------------* 44 Formats that will be saved in main memory 45 *---------------------------------------------------------------------------*/ 46 47 48 // Structure that is compatible with TWL timestamp data 49 typedef struct OSTWLDate{ 50 u8 month; // Month: 01 to 12 51 u8 day; // Day: 01 to 31 52 } OSTWLDate; // 2 bytes 53 54 // Structure that is compatible with TWL owner information 55 typedef struct OSTWLOwnerInfo 56 { 57 u8 userColor : 4; // Favorite color 58 u8 rsv : 4; // Reserved 59 u8 pad; // Padding 60 OSTWLDate birthday; // Birthdate 61 u16 nickname[ OS_TWL_NICKNAME_LENGTH + 1 ]; // Nickname (with terminating character) 62 u16 comment[ OS_TWL_COMMENT_LENGTH + 1 ]; // Comment (with terminating character) 63 } OSTWLOwnerInfo; // 80 bytes 64 65 66 // Structure that is compatible with TWL settings data 67 typedef struct OSTWLSettingsData 68 { 69 union { 70 struct { 71 u32 isFinishedInitialSetting : 1; // Initial settings complete? 72 u32 isFinishedInitialSetting_Launcher : 1; // Initial launcher settings complete? 73 u32 isSetLanguage : 1; // Language code set? 74 u32 isAvailableWireless : 1; // Enabling/disabling the wireless module's RF unit 75 u32 rsv : 20; // reserved 76 u32 isAgreeEULAFlagList : 8; // List of EULA acceptance flags 77 // Wi-Fi settings are separate data; do not prepare the flags set here. 78 }; 79 u32 raw; 80 } flags; 81 u8 rsv[ 1 ]; // reserved 82 u8 country; // Country code 83 u8 language; // Language (the 8-bit data size differs from NTR systems) 84 u8 rtcLastSetYear; // The year previously set with the RTC 85 s64 rtcOffset; // Offset value when configuring the RTC (Each time the user changes the configuration of the RTC, this fluctuates in response to that value.�j 86 // The parameter size up to this point is 16 bytes 87 u8 agreeEulaVersion[ 8 ]; // 8 bytes: The accepted EULA version 88 u8 pad1[2]; 89 u8 pad2[6]; // 6 bytes 90 u8 pad3[16]; // 16 bytes 91 u8 pad4[20]; // 20 bytes 92 OSTWLOwnerInfo owner; // 80 bytes: Owner information 93 OSTWLParentalControl parentalControl; // 148 bytes: Parental Controls information 94 } OSTWLSettingsData; // 296 bytes 95 96 97 // Structure that is compatible with configuration data for normal TWL hardware information 98 typedef struct OSTWLHWNormalInfo 99 { 100 u8 rtcAdjust; // RTC adjustment value 101 u8 rsv[ 3 ]; 102 u8 movableUniqueID[ OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN ]; // A unique ID that can be moved 103 } OSTWLHWNormalInfo; // 20 bytes 104 105 106 // Structure that is compatible with configuration data for secure TWL hardware information 107 typedef struct OSTWLHWSecureInfo 108 { 109 u32 validLanguageBitmap; // A bitmap of language codes valid on this system 110 struct { 111 u8 forceDisableWireless :1; 112 u8 :7; 113 }flags; 114 u8 pad[ 3 ]; 115 u8 region; // Region 116 u8 serialNo[ OS_TWL_HWINFO_SERIALNO_LEN_MAX ]; // Serial number (an ASCII string with a terminating character) 117 } OSTWLHWSecureInfo; // 24 bytes 118 119 120 typedef struct OSTWLWirelessFirmwareData 121 { 122 u8 data; 123 u8 rsv[ 3 ]; 124 } OSTWLWirelessFirmwareData; 125 126 /*---------------------------------------------------------------------------* 127 Function Declarations 128 *---------------------------------------------------------------------------*/ 129 /*---------------------------------------------------------------------------* 130 Name: OS_GetWirelessWirmwareData 131 132 Description: Gets a pointer to data for the wireless firmware. 133 134 Arguments: None. 135 Returns: Returns a pointer to data for the wireless firmware. 136 Returns NULL when the program is not running on a TWL system. 137 *---------------------------------------------------------------------------*/ 138 OSTWLWirelessFirmwareData *OS_GetWirelessFirmwareData(void); 139 140 /*---------------------------------------------------------------------------* 141 Name: OS_GetValidLanguageBitmap 142 143 Description: Gets a bitmap of supported languages. 144 145 Arguments: None. 146 Returns: Returns a bitmap of supported languages. 147 Returns "0" when the program is not running on a TWL system. 148 *---------------------------------------------------------------------------*/ 149 u32 OS_GetValidLanguageBitmap(void); 150 151 /*---------------------------------------------------------------------------* 152 Name: OS_GetSerialNo 153 154 Description: Gets the serial number. 155 156 Arguments: serialNo: Storage location. 157 OS_TWL_HWINFO_SERIALNO_LEN_MAX bytes will be stored, including the terminating character. 158 This is filled in with 0's when the program is not running on a TWL system. 159 160 Returns: None. 161 *---------------------------------------------------------------------------*/ 162 void OS_GetSerialNo(u8 *serialNo); 163 164 165 /*===========================================================================*/ 166 167 #ifdef __cplusplus 168 } /* extern "C" */ 169 #endif 170 171 #endif /* TWL_OS_COMMON_OWNERINFO_EX_PRIVATE_H_ */ 172 173 /*---------------------------------------------------------------------------* 174 End of file 175 *---------------------------------------------------------------------------*/ 176