usbloadergx/source/usbloader/partition_usbloader.h
giantpune 9e79c9d99b * remove little unused code
* code cleanup
2010-09-18 23:16:05 +00:00

84 lines
1.9 KiB
C

#ifndef _PARTITION_H_
#define _PARTITION_H_
#ifdef __cplusplus
extern "C"
{
#endif
/* 'partition entry' structure */
typedef struct
{
/* Boot indicator */
u8 boot;
/* Starting CHS */
u8 start[3];
/* Partition type */
u8 type;
/* Ending CHS */
u8 end[3];
/* Partition sector */
u32 sector;
/* Partition size */
u32 size;
} ATTRIBUTE_PACKED partitionEntry;
/* Constants */
#define MAX_PARTITIONS 4
#define MAX_PARTITIONS_EX 10
#define FS_TYPE_UNK 0
#define FS_TYPE_FAT16 1
#define FS_TYPE_FAT32 2
#define FS_TYPE_NTFS 3
#define FS_TYPE_WBFS 4
typedef struct
{
u8 fs_type;
u8 part_fs;
u8 wbfs_i; // seq wbfs part index
u8 fat_i; // seq fat part index
u8 ntfs_i; // seq ntfs part index
u8 index;
} PartInfo;
typedef struct
{
u8 num;
u32 sector_size;
partitionEntry pentry[MAX_PARTITIONS_EX];
u8 wbfs_n;
u8 fat_n;
u8 ntfs_n;
PartInfo pinfo[MAX_PARTITIONS_EX];
} PartList;
/* Prototypes */
s32 Partition_GetEntries( u32 device, partitionEntry *outbuf, u32 *outval );
s32 Partition_GetEntriesEx( u32 device, partitionEntry *outbuf, u32 *outval, u8 *num );
bool Device_ReadSectors( u32 device, u32 sector, u32 count, void *buffer );
bool Device_WriteSectors( u32 device, u32 sector, u32 count, void *buffer );
s32 Partition_GetList( u32 device, PartList *plist );
int Partition_FixEXT( u32 device, u8 part );
bool part_is_extended( int type );
bool part_is_data( int type );
char* part_type_data( int type );
char* part_type_name( int type );
bool part_valid_data( partitionEntry *entry );
int get_fs_type( void *buf );
bool is_type_fat( int type );
char* get_fs_name( int i );
#ifdef __cplusplus
}
#endif
#endif