|
|
|
@ -11,7 +11,11 @@ |
|
|
|
|
|
|
|
namespace AC_U { |
|
|
|
|
|
|
|
static struct AcConfig { u8 data[0x200]; } default_config = {}; |
|
|
|
struct ACConfig { |
|
|
|
std::array<u8, 0x200> data; |
|
|
|
}; |
|
|
|
|
|
|
|
static ACConfig default_config = {}; |
|
|
|
|
|
|
|
static bool ac_connected; |
|
|
|
|
|
|
|
@ -22,8 +26,8 @@ static Kernel::SharedPtr<Kernel::Event> disconnect_event; |
|
|
|
/**
|
|
|
|
* AC_U::CreateDefaultConfig service function |
|
|
|
* Inputs: |
|
|
|
* 64 : AcConfig size << 14 | 2 |
|
|
|
* 65 : pointer to AcConfig struct |
|
|
|
* 64 : ACConfig size << 14 | 2 |
|
|
|
* 65 : pointer to ACConfig struct |
|
|
|
* Outputs: |
|
|
|
* 1 : Result of function, 0 on success, otherwise error code |
|
|
|
*/ |
|
|
|
@ -32,10 +36,10 @@ static void CreateDefaultConfig(Service::Interface* self) { |
|
|
|
|
|
|
|
u32 ac_config_addr = cmd_buff[65]; |
|
|
|
|
|
|
|
ASSERT_MSG(cmd_buff[64] == (sizeof(AcConfig) << 14 | 2), |
|
|
|
"Output buffer size not equal AcConfig size"); |
|
|
|
ASSERT_MSG(cmd_buff[64] == (sizeof(ACConfig) << 14 | 2), |
|
|
|
"Output buffer size not equal ACConfig size"); |
|
|
|
|
|
|
|
Memory::WriteBlock(ac_config_addr, &default_config, sizeof(AcConfig)); |
|
|
|
Memory::WriteBlock(ac_config_addr, &default_config, sizeof(ACConfig)); |
|
|
|
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
|
|
|
|
|
|
|
LOG_WARNING(Service_AC, "(STUBBED) called"); |
|
|
|
@ -47,8 +51,8 @@ static void CreateDefaultConfig(Service::Interface* self) { |
|
|
|
* 1 : ProcessId Header |
|
|
|
* 3 : Copy Handle Header |
|
|
|
* 4 : Connection Event handle |
|
|
|
* 5 : AcConfig size << 14 | 2 |
|
|
|
* 6 : pointer to AcConfig struct |
|
|
|
* 5 : ACConfig size << 14 | 2 |
|
|
|
* 6 : pointer to ACConfig struct |
|
|
|
* Outputs: |
|
|
|
* 1 : Result of function, 0 on success, otherwise error code |
|
|
|
*/ |
|
|
|
@ -145,8 +149,8 @@ static void GetWifiStatus(Service::Interface* self) { |
|
|
|
/**
|
|
|
|
* AC_U::GetInfraPriority service function |
|
|
|
* Inputs: |
|
|
|
* 1 : AcConfig size << 14 | 2 |
|
|
|
* 2 : pointer to AcConfig struct |
|
|
|
* 1 : ACConfig size << 14 | 2 |
|
|
|
* 2 : pointer to ACConfig struct |
|
|
|
* Outputs: |
|
|
|
* 1 : Result of function, 0 on success, otherwise error code |
|
|
|
* 2 : Infra Priority |
|
|
|
@ -165,10 +169,10 @@ static void GetInfraPriority(Service::Interface* self) { |
|
|
|
* Inputs: |
|
|
|
* 1 : Eula Version major |
|
|
|
* 2 : Eula Version minor |
|
|
|
* 3 : AcConfig size << 14 | 2 |
|
|
|
* 4 : Input pointer to AcConfig struct |
|
|
|
* 64 : AcConfig size << 14 | 2 |
|
|
|
* 65 : Output pointer to AcConfig struct |
|
|
|
* 3 : ACConfig size << 14 | 2 |
|
|
|
* 4 : Input pointer to ACConfig struct |
|
|
|
* 64 : ACConfig size << 14 | 2 |
|
|
|
* 65 : Output pointer to ACConfig struct |
|
|
|
* Outputs: |
|
|
|
* 1 : Result of function, 0 on success, otherwise error code |
|
|
|
* 2 : Infra Priority |
|
|
|
@ -176,18 +180,18 @@ static void GetInfraPriority(Service::Interface* self) { |
|
|
|
static void SetRequestEulaVersion(Service::Interface* self) { |
|
|
|
u32* cmd_buff = Kernel::GetCommandBuffer(); |
|
|
|
|
|
|
|
u8 major = cmd_buff[1] & 0xFF; |
|
|
|
u8 minor = cmd_buff[2] & 0xFF; |
|
|
|
u32 major = cmd_buff[1] & 0xFF; |
|
|
|
u32 minor = cmd_buff[2] & 0xFF; |
|
|
|
|
|
|
|
ASSERT_MSG(cmd_buff[3] == (sizeof(AcConfig) << 14 | 2), |
|
|
|
"Input buffer size not equal AcConfig size"); |
|
|
|
ASSERT_MSG(cmd_buff[64] == (sizeof(AcConfig) << 14 | 2), |
|
|
|
"Output buffer size not equal AcConfig size"); |
|
|
|
ASSERT_MSG(cmd_buff[3] == (sizeof(ACConfig) << 14 | 2), |
|
|
|
"Input buffer size not equal ACConfig size"); |
|
|
|
ASSERT_MSG(cmd_buff[64] == (sizeof(ACConfig) << 14 | 2), |
|
|
|
"Output buffer size not equal ACConfig size"); |
|
|
|
|
|
|
|
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
|
|
|
cmd_buff[2] = 0; // Infra Priority
|
|
|
|
|
|
|
|
LOG_WARNING(Service_AC, "(STUBBED) called, major=%d, minor=%d", major, minor); |
|
|
|
LOG_WARNING(Service_AC, "(STUBBED) called, major=%u, minor=%u", major, minor); |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
|