CfgUSBLoader/lib/libext2fs/source/partitions.h
Nitraiolo c9df95e9d1 GC - updated nintendont config support to version 0x00000006
GC - if nintendont_config_mode=arg is set nintendont configuration is passed via command line argument
GC - added minimum nitnendont version check before game load
GC - added possibility to update nintendont as a plugin if update_nintendont=1 is set
Internals - added UStealth support
Internals - fixed plugins update URLs
Usability - fixed reboot and exit behaviour
Usability - WFC patching options
2017-01-15 09:56:47 +00:00

52 lines
2.3 KiB
C

#ifndef PARTITIONS_H_
#define PARTITIONS_H_
#include <gccore.h>
#include "bitops.h"
#define MBR_SIGNATURE ext2fs_cpu_to_le16(0xAA55)
#define EBR_SIGNATURE ext2fs_cpu_to_le16(0xAA55)
#define MBR_US_SIGNATURE ext2fs_cpu_to_le16(0xAB55)
#define EBR_US_SIGNATURE ext2fs_cpu_to_le16(0xAB55)
#define PARTITION_STATUS_BOOTABLE 0x80 /* Bootable (active) */
#define PARTITION_TYPE_EMPTY 0x00 /* Empty */
#define PARTITION_TYPE_DOS33_EXTENDED 0x05 /* DOS 3.3+ extended partition */
#define PARTITION_TYPE_WIN95_EXTENDED 0x0F /* Windows 95 extended partition */
#define PARTITION_TYPE_LINUX 0x83 /* EXT2/3/4 */
/**
* PRIMARY_PARTITION - Block device partition record
*/
typedef struct _PARTITION_RECORD {
u8 status; /* Partition status; see above */
u8 chs_start[3]; /* Cylinder-head-sector address to first block of partition */
u8 type; /* Partition type; see above */
u8 chs_end[3]; /* Cylinder-head-sector address to last block of partition */
u32 lba_start; /* Local block address to first sector of partition */
u32 block_count; /* Number of blocks in partition */
} __attribute__((__packed__)) PARTITION_RECORD;
/**
* MASTER_BOOT_RECORD - Block device master boot record
*/
typedef struct _MASTER_BOOT_RECORD {
u8 code_area[446]; /* Code area; normally empty */
PARTITION_RECORD partitions[4]; /* 4 primary partitions */
u16 signature; /* MBR signature; 0xAA55 (std) or 0xAB55 (UStealth) */
} __attribute__((__packed__)) MASTER_BOOT_RECORD;
/**
* EXTENDED_PARTITION - Block device extended boot record
*/
typedef struct _EXTENDED_BOOT_RECORD {
u8 code_area[446]; /* Code area; normally empty */
PARTITION_RECORD partition; /* Primary partition */
PARTITION_RECORD next_ebr; /* Next extended boot record in the chain */
u8 reserved[32]; /* Normally empty */
u16 signature; /* EBR signature; 0xAA55 (std) or 0xAB55 (UStealth) */
} __attribute__((__packed__)) EXTENDED_BOOT_RECORD;
#endif