bdk: types: refactor and add size defines

This commit is contained in:
CTCaer 2021-10-01 14:33:55 +03:00
parent a1910156d8
commit 7e4c71748f
2 changed files with 54 additions and 22 deletions

View file

@ -20,26 +20,16 @@
#include <assert.h> #include <assert.h>
#define NULL ((void *)0) /* Types */
#define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
#define ALIGN_DOWN(x, a) ((x) & ~((a) - 1))
#define BIT(n) (1U << (n))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
#define OFFSET_OF(t, m) ((u32)&((t *)NULL)->m)
#define CONTAINER_OF(mp, t, mn) ((t *)((u32)mp - OFFSET_OF(t, mn)))
typedef signed char s8; typedef signed char s8;
typedef short s16; typedef short s16;
typedef short SHORT; typedef short SHORT;
typedef int s32; typedef int s32;
typedef int INT; typedef int INT;
typedef int bool;
typedef long LONG; typedef long LONG;
typedef long long int s64; typedef long long int s64;
typedef unsigned char u8; typedef unsigned char u8;
typedef unsigned char BYTE; typedef unsigned char BYTE;
typedef unsigned short u16; typedef unsigned short u16;
@ -50,6 +40,7 @@ typedef unsigned int UINT;
typedef unsigned long DWORD; typedef unsigned long DWORD;
typedef unsigned long long QWORD; typedef unsigned long long QWORD;
typedef unsigned long long int u64; typedef unsigned long long int u64;
typedef volatile unsigned char vu8; typedef volatile unsigned char vu8;
typedef volatile unsigned short vu16; typedef volatile unsigned short vu16;
typedef volatile unsigned int vu32; typedef volatile unsigned int vu32;
@ -60,13 +51,59 @@ typedef u64 uptr;
typedef u32 uptr; typedef u32 uptr;
#endif #endif
typedef int bool; /* Important */
#define true 1
#define false 0 #define false 0
#define true 1
#define NULL ((void *)0)
/* Misc */
#define DISABLE 0 #define DISABLE 0
#define ENABLE 1 #define ENABLE 1
/* Sizes */
#define SZ_1K 0x400
#define SZ_2K 0x800
#define SZ_4K 0x1000
#define SZ_8K 0x2000
#define SZ_16K 0x4000
#define SZ_32K 0x08000
#define SZ_64K 0x10000
#define SZ_128K 0x20000
#define SZ_256K 0x40000
#define SZ_512K 0x80000
#define SZ_1M 0x100000
#define SZ_2M 0x200000
#define SZ_4M 0x400000
#define SZ_8M 0x800000
#define SZ_16M 0x1000000
#define SZ_32M 0x2000000
#define SZ_64M 0x4000000
#define SZ_128M 0x8000000
#define SZ_256M 0x10000000
#define SZ_512M 0x20000000
#define SZ_1G 0x40000000
#define SZ_2G 0x80000000
#define SZ_4G 0x100000000
/* Macros */
#define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
#define ALIGN_DOWN(x, a) ((x) & ~((a) - 1))
#define BIT(n) (1U << (n))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
#define OFFSET_OF(t, m) ((uptr)&((t *)NULL)->m)
#define CONTAINER_OF(mp, t, mn) ((t *)((uptr)mp - OFFSET_OF(t, mn)))
#define byte_swap_16(num) ((((num) >> 8) & 0xff) | (((num) << 8) & 0xff00))
#define byte_swap_32(num) ((((num) >> 24) & 0xff) | (((num) << 8) & 0xff0000) | \
(((num) >> 8 )& 0xff00) | (((num) << 24) & 0xff000000))
/* Bootloader/Nyx */
#define BOOT_CFG_AUTOBOOT_EN BIT(0) #define BOOT_CFG_AUTOBOOT_EN BIT(0)
#define BOOT_CFG_FROM_LAUNCH BIT(1) #define BOOT_CFG_FROM_LAUNCH BIT(1)
#define BOOT_CFG_FROM_ID BIT(2) #define BOOT_CFG_FROM_ID BIT(2)
@ -103,12 +140,12 @@ typedef struct __attribute__((__packed__)) _boot_cfg_t
char id[8]; // 7 char ASCII null teminated. char id[8]; // 7 char ASCII null teminated.
char emummc_path[0x78]; // emuMMC/XXX, ASCII null teminated. char emummc_path[0x78]; // emuMMC/XXX, ASCII null teminated.
}; };
u8 ums; // nyx_ums_type. u8 ums; // nyx_ums_type.
u8 xt_str[0x80]; u8 xt_str[0x80];
}; };
} boot_cfg_t; } boot_cfg_t;
static_assert(sizeof(boot_cfg_t) == 0x84, "Boot CFG size is wrong!"); static_assert(sizeof(boot_cfg_t) == 0x84, "Boot cfg storage size is wrong!");
typedef struct __attribute__((__packed__)) _ipl_ver_meta_t typedef struct __attribute__((__packed__)) _ipl_ver_meta_t
{ {

View file

@ -51,11 +51,6 @@ typedef enum
ERR_EXCEPTION = BIT(31), ERR_EXCEPTION = BIT(31),
} hekate_errors_t; } hekate_errors_t;
#define byte_swap_32(num) ((((num) >> 24) & 0xff) | (((num) << 8) & 0xff0000) | \
(((num) >> 8 )& 0xff00) | (((num) << 24) & 0xff000000))
#define byte_swap_16(num) ((((num) >> 8) & 0xff) | (((num) << 8) & 0xff00))
typedef struct _cfg_op_t typedef struct _cfg_op_t
{ {
u32 off; u32 off;