CfgUSBLoader/cios/dip_frag/frag.h
2015-01-17 10:11:08 +00:00

34 lines
782 B
C

#define FRAG_MAX 20000
typedef struct
{
u32 offset; // file offset, in sectors unit
u32 sector;
u32 count;
} Fragment;
typedef struct
{
u32 size; // num sectors
u32 num; // num fragments
u32 maxnum;
Fragment frag[FRAG_MAX];
} FragList;
int set_frag_list(FragList *p, int size);
// in case a sparse block is requested,
// the returned poffset might not be equal to requested offset
// the difference should be filled with 0
int frag_get(FragList *ff, u32 offset, u32 count,
u32 *poffset, u32 *psector, u32 *pcount);
// woffset is pointing 32bit words to address the whole dvd, len is in bytes
int frag_read(u32 woffset, u8 *data, u32 len);
s32 Frag_Init(u32 device, void *fraglist, int size);
void Frag_Close(void);
s32 Frag_Read(void *data, u32 len, u32 woffset);