mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
Clean up types.h:
- Move Permission to kernel/svc.h (also fix enum naming) - Add s128, vu128, vs128 - voidfn -> VoidFn
This commit is contained in:
parent
41da28eb5c
commit
c20d372946
@ -12,6 +12,17 @@
|
|||||||
/// Pseudo handle for the current thread
|
/// Pseudo handle for the current thread
|
||||||
#define CUR_THREAD_HANDLE 0xFFFF8000
|
#define CUR_THREAD_HANDLE 0xFFFF8000
|
||||||
|
|
||||||
|
/// Memory permission bitmasks.
|
||||||
|
typedef enum {
|
||||||
|
Perm_None = 0, ///< No permissions.
|
||||||
|
Perm_R = BIT(0), ///< Read permission.
|
||||||
|
Perm_W = BIT(1), ///< Write permission.
|
||||||
|
Perm_X = BIT(2), ///< Execute permission.
|
||||||
|
Perm_Rw = Perm_R | Perm_W, ///< Read/write permissions.
|
||||||
|
Perm_Rx = Perm_R | Perm_X, ///< Read/execute permissions.
|
||||||
|
Perm_DontCare = BIT(28), ///< Don't care
|
||||||
|
} Permission;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u64 addr;
|
u64 addr;
|
||||||
u64 size;
|
u64 size;
|
||||||
|
@ -18,42 +18,34 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef uint8_t u8; ///< 8-bit unsigned integer
|
typedef uint8_t u8; ///< 8-bit unsigned integer.
|
||||||
typedef uint16_t u16; ///< 16-bit unsigned integer
|
typedef uint16_t u16; ///< 16-bit unsigned integer.
|
||||||
typedef uint32_t u32; ///< 32-bit unsigned integer
|
typedef uint32_t u32; ///< 32-bit unsigned integer.
|
||||||
typedef uint64_t u64; ///< 64-bit unsigned integer
|
typedef uint64_t u64; ///< 64-bit unsigned integer.
|
||||||
typedef __uint128_t u128; ///< 128-bit unsigned integer
|
typedef __uint128_t u128; ///< 128-bit unsigned integer.
|
||||||
|
|
||||||
typedef int8_t s8; ///< 8-bit signed integer
|
typedef int8_t s8; ///< 8-bit signed integer.
|
||||||
typedef int16_t s16; ///< 16-bit signed integer
|
typedef int16_t s16; ///< 16-bit signed integer.
|
||||||
typedef int32_t s32; ///< 32-bit signed integer
|
typedef int32_t s32; ///< 32-bit signed integer.
|
||||||
typedef int64_t s64; ///< 64-bit signed integer
|
typedef int64_t s64; ///< 64-bit signed integer.
|
||||||
|
typedef __int128_t s128; ///< 128-bit unsigned integer.
|
||||||
|
|
||||||
typedef volatile u8 vu8; ///< 8-bit volatile unsigned integer.
|
typedef volatile u8 vu8; ///< 8-bit volatile unsigned integer.
|
||||||
typedef volatile u16 vu16; ///< 16-bit volatile unsigned integer.
|
typedef volatile u16 vu16; ///< 16-bit volatile unsigned integer.
|
||||||
typedef volatile u32 vu32; ///< 32-bit volatile unsigned integer.
|
typedef volatile u32 vu32; ///< 32-bit volatile unsigned integer.
|
||||||
typedef volatile u64 vu64; ///< 64-bit volatile unsigned integer.
|
typedef volatile u64 vu64; ///< 64-bit volatile unsigned integer.
|
||||||
|
typedef volatile u128 vu128; ///< 128-bit volatile unsigned integer.
|
||||||
|
|
||||||
typedef volatile s8 vs8; ///< 8-bit volatile signed integer.
|
typedef volatile s8 vs8; ///< 8-bit volatile signed integer.
|
||||||
typedef volatile s16 vs16; ///< 16-bit volatile signed integer.
|
typedef volatile s16 vs16; ///< 16-bit volatile signed integer.
|
||||||
typedef volatile s32 vs32; ///< 32-bit volatile signed integer.
|
typedef volatile s32 vs32; ///< 32-bit volatile signed integer.
|
||||||
typedef volatile s64 vs64; ///< 64-bit volatile signed integer.
|
typedef volatile s64 vs64; ///< 64-bit volatile signed integer.
|
||||||
|
typedef volatile s128 vs128; ///< 128-bit volatile signed integer.
|
||||||
|
|
||||||
typedef u32 Handle; ///< Kernel object handle.
|
typedef u32 Handle; ///< Kernel object handle.
|
||||||
typedef u32 Result; ///< Function error code result type.
|
typedef u32 Result; ///< Function error code result type.
|
||||||
typedef void (*ThreadFunc)(void *); ///< Thread entrypoint function.
|
typedef void (*ThreadFunc)(void *); ///< Thread entrypoint function.
|
||||||
typedef void (*voidfn)(void); ///< Function without arguments nor return value.
|
typedef void (*VoidFn)(void); ///< Function without arguments nor return value.
|
||||||
|
|
||||||
/// Permission bitmasks
|
|
||||||
typedef enum {
|
|
||||||
PERM_NONE = 0, ///< No permissions.
|
|
||||||
PERM_R = 1, ///< Read permission.
|
|
||||||
PERM_W = 2, ///< Write permission.
|
|
||||||
PERM_X = 4, ///< Execute permission.
|
|
||||||
PERM_RW = PERM_R | PERM_W, ///< Read/write permissions.
|
|
||||||
PERM_RX = PERM_R | PERM_X, ///< Read/execute permissions.
|
|
||||||
PERM_DONTCARE = 0x10000000, ///< Don't care
|
|
||||||
} Permission;
|
|
||||||
|
|
||||||
/// Creates a bitmask from a bit number.
|
/// Creates a bitmask from a bit number.
|
||||||
#define BIT(n) (1U<<(n))
|
#define BIT(n) (1U<<(n))
|
||||||
|
@ -54,10 +54,10 @@ Result jitCreate(Jit* j, size_t size)
|
|||||||
rc = svcCreateJitMemory(&j->handle, j->src_addr, j->size);
|
rc = svcCreateJitMemory(&j->handle, j->src_addr, j->size);
|
||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
{
|
{
|
||||||
rc = svcMapJitMemory(j->handle, JitMapOperation_MapOwner, j->rw_addr, j->size, PERM_RW);
|
rc = svcMapJitMemory(j->handle, JitMapOperation_MapOwner, j->rw_addr, j->size, Perm_Rw);
|
||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
{
|
{
|
||||||
rc = svcMapJitMemory(j->handle, JitMapOperation_MapSlave, j->rx_addr, j->size, PERM_RX);
|
rc = svcMapJitMemory(j->handle, JitMapOperation_MapSlave, j->rx_addr, j->size, Perm_Rx);
|
||||||
|
|
||||||
if (R_FAILED(rc)) {
|
if (R_FAILED(rc)) {
|
||||||
svcMapJitMemory(j->handle, JitMapOperation_UnmapOwner, j->rw_addr, j->size, 0);
|
svcMapJitMemory(j->handle, JitMapOperation_UnmapOwner, j->rw_addr, j->size, 0);
|
||||||
@ -113,7 +113,7 @@ Result jitTransitionToExecutable(Jit* j)
|
|||||||
rc = svcMapProcessCodeMemory(envGetOwnProcessHandle(), (u64) j->rx_addr, (u64) j->src_addr, j->size);
|
rc = svcMapProcessCodeMemory(envGetOwnProcessHandle(), (u64) j->rx_addr, (u64) j->src_addr, j->size);
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc)) {
|
if (R_SUCCEEDED(rc)) {
|
||||||
rc = svcSetProcessMemoryPermission(envGetOwnProcessHandle(), (u64) j->rx_addr, j->size, PERM_RX);
|
rc = svcSetProcessMemoryPermission(envGetOwnProcessHandle(), (u64) j->rx_addr, j->size, Perm_Rx);
|
||||||
|
|
||||||
if (R_FAILED(rc)) {
|
if (R_FAILED(rc)) {
|
||||||
jitTransitionToWritable(j);
|
jitTransitionToWritable(j);
|
||||||
|
@ -56,7 +56,7 @@ Result hidInitialize(void)
|
|||||||
|
|
||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
{
|
{
|
||||||
shmemLoadRemote(&g_hidSharedmem, sharedmem_handle, 0x40000, PERM_R);
|
shmemLoadRemote(&g_hidSharedmem, sharedmem_handle, 0x40000, Perm_R);
|
||||||
|
|
||||||
rc = shmemMap(&g_hidSharedmem);
|
rc = shmemMap(&g_hidSharedmem);
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ Result nvInitialize(nvServiceType servicetype, size_t transfermem_size)
|
|||||||
g_nvIpcBufferSize = 0;
|
g_nvIpcBufferSize = 0;
|
||||||
rc = ipcQueryPointerBufferSize(g_nvSrv.handle, &g_nvIpcBufferSize);
|
rc = ipcQueryPointerBufferSize(g_nvSrv.handle, &g_nvIpcBufferSize);
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc)) rc = tmemCreate(&g_nvTransfermem, transfermem_size, PERM_NONE);
|
if (R_SUCCEEDED(rc)) rc = tmemCreate(&g_nvTransfermem, transfermem_size, Perm_None);
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc)) rc = _nvInitialize(CUR_PROCESS_HANDLE, g_nvTransfermem.handle, transfermem_size);
|
if (R_SUCCEEDED(rc)) rc = _nvInitialize(CUR_PROCESS_HANDLE, g_nvTransfermem.handle, transfermem_size);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user