Add necessary ac functions for rosalina's wifi connection forcing feature
This commit is contained in:
parent
0da86433ee
commit
4218915eb9
@ -90,3 +90,23 @@ Result ACU_GetLastErrorCode(u32* errorCode);
|
||||
* @param errorCode Pointer to output the error code to.
|
||||
*/
|
||||
Result ACU_GetLastDetailErrorCode(u32* errorCode);
|
||||
|
||||
/**
|
||||
* @brief Prepares a buffer to hold the configuration data to start a connection.
|
||||
* @param config Pointer to a buffer of size at least 0x200 to contain the data.
|
||||
*/
|
||||
Result ACU_CreateDefaultConfig(u8* config);
|
||||
|
||||
/**
|
||||
* @brief Sets the slot to use when connecting.
|
||||
* @param config Pointer to a buffer of size at least 0x200 used with ACU_CreateDefaultConfig previously.
|
||||
* @param type Allowed slots flag. 1 for slot 1, 2 for slot 2, 4 for slot 3.
|
||||
*/
|
||||
Result ACU_SetAllowApType(u8* config, u8 type);
|
||||
|
||||
/**
|
||||
* @brief Starts the connection procedure.
|
||||
* @param config Pointer to a buffer of size at least 0x200 used with ACU_CreateDefaultConfig previously.
|
||||
* @param connectionHandle Handle created with svcCreateEvent to wait on until the connection succeeds or fails.
|
||||
*/
|
||||
Result ACU_ConnectAsync(u8* config, Handle connectionHandle);
|
||||
|
@ -197,3 +197,53 @@ Result ACU_GetLastDetailErrorCode(u32* errorCode)
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result ACU_CreateDefaultConfig(u8* config)
|
||||
{
|
||||
Result ret=0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
u32 *staticbufs = getThreadStaticBuffers();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x1,0,0); // 0x10000
|
||||
staticbufs[0] = IPC_Desc_StaticBuffer(0x200, 0);
|
||||
staticbufs[1] = (u32)config;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(acHandle))) return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result ACU_SetAllowApType(u8* config, u8 type)
|
||||
{
|
||||
Result ret=0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
u32 *staticbufs = getThreadStaticBuffers();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x22,1,2); // 0x220042
|
||||
cmdbuf[1] = type;
|
||||
cmdbuf[2] = IPC_Desc_StaticBuffer(0x200, 0);
|
||||
cmdbuf[3] = (u32)config;
|
||||
staticbufs[0] = IPC_Desc_StaticBuffer(0x200, 0);
|
||||
staticbufs[1] = (u32)config;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(acHandle))) return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
||||
Result ACU_ConnectAsync(u8* config, Handle connectionHandle)
|
||||
{
|
||||
Result ret=0;
|
||||
u32 *cmdbuf = getThreadCommandBuffer();
|
||||
|
||||
cmdbuf[0] = IPC_MakeHeader(0x4,0,6); // 0x40006
|
||||
cmdbuf[1] = 0x20;
|
||||
cmdbuf[3] = 0;
|
||||
cmdbuf[4] = connectionHandle;
|
||||
cmdbuf[5] = IPC_Desc_StaticBuffer(0x200, 1);
|
||||
cmdbuf[6] = (u32)config;
|
||||
|
||||
if(R_FAILED(ret = svcSendSyncRequest(acHandle))) return ret;
|
||||
|
||||
return (Result)cmdbuf[1];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user