mirror of
https://github.com/wiiu-env/wut.git
synced 2024-12-05 03:04:16 +01:00
Add coreinit/userconfig.h (#132)
* Add coreinit/userconfig.h - add enum UCCommand - add enum UCDataType - add enum UCErrors - add enum UCFileSys - add struct UCSysConfig - add struct UCAsyncParams - add function UCOpen - add function UCClose - add function UCDeleteSysConfig - add function UCDeleteSysConfigAsync - add function UCReadSysConfig - add function UCReadSysConfigAsync - add function UCWriteSysConfig - add function UCWriteSysConfigAsync See decaf for reference: -b75f646a1e/src/libdecaf/src/cafe/libraries/coreinit/coreinit_userconfig.h
-407f3f8093/src/libdecaf/src/ios/auxil/ios_auxil_enum.h
* Fix structs * coreinit/userconfig.h: Add missing typedefs * Add coreinit/userconfig.h to testsuite
This commit is contained in:
parent
7950d62d0e
commit
a0412a90da
181
include/coreinit/userconfig.h
Normal file
181
include/coreinit/userconfig.h
Normal file
@ -0,0 +1,181 @@
|
||||
#pragma once
|
||||
#include <wut.h>
|
||||
#include <coreinit/ios.h>
|
||||
|
||||
/**
|
||||
* \defgroup coreinit_userconfig User Config
|
||||
* \ingroup coreinit
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef int32_t UCError;
|
||||
typedef struct UCSysConfig UCSysConfig;
|
||||
typedef struct UCAsyncParams UCAsyncParams ;
|
||||
|
||||
typedef enum UCCommand
|
||||
{
|
||||
UC_CMD_READ_SYS_CONFIG = 0x30,
|
||||
UC_CMD_WRITE_SYS_CONFIG = 0x31,
|
||||
UC_CMD_DELETE_SYS_CONFIG = 0x32,
|
||||
UC_CMD_QUERY_SYS_CONFIG = 0x33,
|
||||
UC_CMD_LIST_SYS_CONFIG = 0x34
|
||||
} UCCommand;
|
||||
|
||||
typedef enum UCDataType
|
||||
{
|
||||
UC_DATATYPE_UNDEFINED = 0x00,
|
||||
UC_DATATYPE_UNSIGNED_BYTE = 0x01,
|
||||
UC_DATATYPE_UNSIGNED_SHORT = 0x02,
|
||||
UC_DATATYPE_UNSIGNED_INT = 0x03,
|
||||
UC_DATATYPE_SIGNED_INT = 0x04,
|
||||
UC_DATATYPE_FLOAT = 0x05,
|
||||
UC_DATATYPE_STRING = 0x06,
|
||||
UC_DATATYPE_HEXBINARY = 0x07,
|
||||
UC_DATATYPE_COMPLEX = 0x08,
|
||||
UC_DATATYPE_INVALID = 0xFF
|
||||
} UCDataType;
|
||||
|
||||
typedef enum UCErrors
|
||||
{
|
||||
UC_ERROR_OK = 0,
|
||||
UC_ERROR_ERROR = -1,
|
||||
UC_ERROR_OTHER = -0x200001,
|
||||
UC_ERROR_SYSTEM = -0x200002,
|
||||
UC_ERROR_ALLOC = -0x200003,
|
||||
UC_ERROR_OPCODE = -0x200004,
|
||||
UC_ERROR_INVALID_PARAM = -0x200005,
|
||||
UC_ERROR_INVALID_TYPE = -0x200006,
|
||||
UC_ERROR_UNSUPPORTED = -0x200007,
|
||||
UC_ERROR_NON_LEAF_NODE = -0x200008,
|
||||
UC_ERROR_KEY_NOT_FOUND = -0x200009,
|
||||
UC_ERROR_MODIFY = -0x20000A,
|
||||
UC_ERROR_STRING_TOO_LONG = -0x20000B,
|
||||
UC_ERROR_ROOT_KEYS_DIFFER = -0x20000C,
|
||||
UC_ERROR_INVALID_LOCATION = -0x20000D,
|
||||
UC_ERROR_BAD_COMMENT = -0x20000E,
|
||||
UC_ERROR_READ_ACCESS = -0x20000F,
|
||||
UC_ERROR_WRITE_ACCESS = -0x200010,
|
||||
UC_ERROR_CREATE_ACCESS = -0x200011,
|
||||
UC_ERROR_FILE_SYS_NAME = -0x200012,
|
||||
UC_ERROR_FILE_SYS_INIT = -0x200013,
|
||||
UC_ERROR_FILE_SYS_MOUNT = -0x200014,
|
||||
UC_ERROR_FILE_OPEN = -0x200015,
|
||||
UC_ERROR_FILE_STAT = -0x200016,
|
||||
UC_ERROR_FILE_READ = -0x200017,
|
||||
UC_ERROR_FILE_WRITE = -0x200018,
|
||||
UC_ERROR_FILE_TOO_BIG = -0x200019,
|
||||
UC_ERROR_FILE_REMOVE = -0x20001A,
|
||||
UC_ERROR_FILE_RENAME = -0x20001B,
|
||||
UC_ERROR_FILE_CLOSE = -0x20001C,
|
||||
UC_ERROR_FILE_SEEK = -0x20001D,
|
||||
UC_ERROR_FILE_CONFIRM = -0x20001E,
|
||||
UC_ERROR_FILE_BACKUP = -0x20001F,
|
||||
UC_ERROR_MALFORMED_XML = -0x200020,
|
||||
UC_ERROR_VERSION = -0x200021,
|
||||
UC_ERROR_NO_IPC_BUFFERS = -0x200022,
|
||||
UC_ERROR_FILE_LOCK_NEEDED = -0x200024,
|
||||
UC_ERROR_SYS_PROT = -0x200028
|
||||
} UCErrors;
|
||||
|
||||
typedef enum UCFileSys
|
||||
{
|
||||
UC_FILE_SYS_INVALID = 0x00,
|
||||
UC_FILE_SYS_SYS = 0x01,
|
||||
UC_FILE_SYS_SLC = 0x02,
|
||||
UC_FILE_SYS_RAM = 0x03
|
||||
} UCFileSys;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct UCSysConfig
|
||||
{
|
||||
char name[64];
|
||||
uint32_t access;
|
||||
UCDataType dataType;
|
||||
UCError error;
|
||||
uint32_t dataSize;
|
||||
void* data;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x00, name);
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x40, access);
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x44, dataType);
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x48, error);
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x4C, dataSize);
|
||||
WUT_CHECK_OFFSET(UCSysConfig, 0x50, data);
|
||||
WUT_CHECK_SIZE(UCSysConfig, 0x54);
|
||||
|
||||
typedef void (*UCAsyncCallbackFn)(UCError result,
|
||||
UCCommand command,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings,
|
||||
void* context);
|
||||
#pragma pack(push, 1)
|
||||
struct UCAsyncParams
|
||||
{
|
||||
UCAsyncCallbackFn callback;
|
||||
void * context;
|
||||
UCCommand command;
|
||||
uint32_t unk0x0C;
|
||||
uint32_t count;
|
||||
UCSysConfig* settings;
|
||||
IOSVec* vecs;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x00, callback);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x04, context);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x08, command);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x0C, unk0x0C);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x10, count);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x14, settings);
|
||||
WUT_CHECK_OFFSET(UCAsyncParams, 0x18, vecs);
|
||||
WUT_CHECK_SIZE(UCAsyncParams, 0x1C);
|
||||
|
||||
UCError
|
||||
UCOpen();
|
||||
|
||||
UCError
|
||||
UCClose(IOSHandle handle);
|
||||
|
||||
UCError
|
||||
UCDeleteSysConfig(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings);
|
||||
|
||||
UCError
|
||||
UCDeleteSysConfigAsync(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings,
|
||||
UCAsyncParams* asyncParams);
|
||||
|
||||
UCError
|
||||
UCReadSysConfig(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings);
|
||||
|
||||
UCError
|
||||
UCReadSysConfigAsync(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings,
|
||||
UCAsyncParams* asyncParams);
|
||||
|
||||
UCError
|
||||
UCWriteSysConfig(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings);
|
||||
|
||||
UCError
|
||||
UCWriteSysConfigAsync(int32_t handle,
|
||||
uint32_t count,
|
||||
UCSysConfig* settings,
|
||||
UCAsyncParams* asyncParams);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
@ -43,6 +43,7 @@
|
||||
#include <coreinit/threadqueue.h>
|
||||
#include <coreinit/time.h>
|
||||
#include <coreinit/title.h>
|
||||
#include <coreinit/userconfig.h>
|
||||
#include <dmae/mem.h>
|
||||
#include <dmae/sync.h>
|
||||
#include <gx2/clear.h>
|
||||
|
Loading…
Reference in New Issue
Block a user