[XConfig] Changed raw category values into enum

This commit is contained in:
Gliniak 2025-05-20 22:07:16 +02:00
parent 63c2d94a98
commit a79c00f67a
2 changed files with 21 additions and 9 deletions

View file

@ -64,7 +64,7 @@ namespace xe {
namespace kernel { namespace kernel {
namespace xboxkrnl { namespace xboxkrnl {
X_STATUS xeExGetXConfigSetting(uint16_t category, uint16_t setting, X_STATUS xeExGetXConfigSetting(X_CONFIG_CATEGORY category, uint16_t setting,
void* buffer, uint16_t buffer_size, void* buffer, uint16_t buffer_size,
uint16_t* required_size) { uint16_t* required_size) {
uint16_t setting_size = 0; uint16_t setting_size = 0;
@ -74,8 +74,7 @@ X_STATUS xeExGetXConfigSetting(uint16_t category, uint16_t setting,
// https://free60project.github.io/wiki/XConfig.html // https://free60project.github.io/wiki/XConfig.html
// https://github.com/oukiar/freestyledash/blob/master/Freestyle/Tools/Generic/ExConfig.h // https://github.com/oukiar/freestyledash/blob/master/Freestyle/Tools/Generic/ExConfig.h
switch (category) { switch (category) {
case 0x0002: case XCONFIG_SECURED_CATEGORY:
// XCONFIG_SECURED_CATEGORY
switch (setting) { switch (setting) {
case 0x0002: // XCONFIG_SECURED_AV_REGION case 0x0002: // XCONFIG_SECURED_AV_REGION
setting_size = 4; setting_size = 4;
@ -104,8 +103,7 @@ X_STATUS xeExGetXConfigSetting(uint16_t category, uint16_t setting,
return X_STATUS_INVALID_PARAMETER_2; return X_STATUS_INVALID_PARAMETER_2;
} }
break; break;
case 0x0003: case XCONFIG_USER_CATEGORY:
// XCONFIG_USER_CATEGORY
switch (setting) { switch (setting) {
case 0x0001: // XCONFIG_USER_TIME_ZONE_BIAS case 0x0001: // XCONFIG_USER_TIME_ZONE_BIAS
case 0x0002: // XCONFIG_USER_TIME_ZONE_STD_NAME case 0x0002: // XCONFIG_USER_TIME_ZONE_STD_NAME
@ -184,8 +182,7 @@ X_STATUS xeExGetXConfigSetting(uint16_t category, uint16_t setting,
return X_STATUS_INVALID_PARAMETER_2; return X_STATUS_INVALID_PARAMETER_2;
} }
break; break;
case 0x0007: case XCONFIG_CONSOLE_CATEGORY:
// XCONFIG_CONSOLE_SETTINGS
switch (setting) { switch (setting) {
case 0x0001: // XCONFIG_CONSOLE_SCREENSAVER case 0x0001: // XCONFIG_CONSOLE_SCREENSAVER
setting_size = 2; setting_size = 2;
@ -243,8 +240,9 @@ dword_result_t ExGetXConfigSetting_entry(word_t category, word_t setting,
word_t buffer_size, word_t buffer_size,
lpword_t required_size_ptr) { lpword_t required_size_ptr) {
uint16_t required_size = 0; uint16_t required_size = 0;
X_STATUS result = xeExGetXConfigSetting(category, setting, buffer_ptr, X_STATUS result =
buffer_size, &required_size); xeExGetXConfigSetting(static_cast<X_CONFIG_CATEGORY>(category.value()),
setting, buffer_ptr, buffer_size, &required_size);
if (required_size_ptr) { if (required_size_ptr) {
*required_size_ptr = required_size; *required_size_ptr = required_size;

View file

@ -17,6 +17,20 @@ namespace xe {
namespace kernel { namespace kernel {
namespace xboxkrnl { namespace xboxkrnl {
enum X_CONFIG_CATEGORY : uint16_t {
XCONFIG_STATIC_CATEGORY = 0x00,
XCONFIG_STATISTIC_CATEGORY = 0x01,
XCONFIG_SECURED_CATEGORY = 0x02,
XCONFIG_USER_CATEGORY = 0x03,
XCONFIG_XNET_MACHINE_ACCOUNT_CATEGORY = 0x04,
XCONFIG_XNET_PARAMETERS_CATEGORY = 0x05,
XCONFIG_MEDIA_CENTER_CATEGORY = 0x06,
XCONFIG_CONSOLE_CATEGORY = 0x07,
XCONFIG_DVD_CATEGORY = 0x08,
XCONFIG_IPTV_CATEGORY = 0x09,
XCONFIG_SYSTEM_CATEGORY = 0x0A
};
// XCONFIG_SECURED_AV_REGION // XCONFIG_SECURED_AV_REGION
enum X_AV_REGION : uint32_t { enum X_AV_REGION : uint32_t {
NTSCM = 0x00400100, NTSCM = 0x00400100,