2010-02-15 00:22:52 +01:00
|
|
|
#ifndef _SPLITS_H
|
|
|
|
#define _SPLITS_H
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2009-11-15 20:52:58 +01:00
|
|
|
|
|
|
|
#define MAX_SPLIT 10
|
|
|
|
|
2010-02-09 11:59:55 +01:00
|
|
|
typedef struct split_info
|
|
|
|
{
|
|
|
|
char fname[1024];
|
|
|
|
//FILE *f[MAX_SPLIT];
|
|
|
|
int fd[MAX_SPLIT];
|
|
|
|
//u64 fsize[MAX_SPLIT];
|
|
|
|
u32 split_sec;
|
|
|
|
u32 total_sec;
|
|
|
|
u64 split_size;
|
|
|
|
u64 total_size;
|
|
|
|
int create_mode;
|
|
|
|
int max_split;
|
2009-11-15 20:52:58 +01:00
|
|
|
} split_info_t;
|
|
|
|
|
|
|
|
// 1 sector less than 4gb
|
|
|
|
extern u64 OPT_split_size;
|
|
|
|
|
|
|
|
void split_get_fname(split_info_t *s, int idx, char *fname);
|
|
|
|
//FILE *split_open_file(split_info_t *s, int idx);
|
|
|
|
//FILE *split_get_file(split_info_t *s, u32 lba, u32 *sec_count, int fill);
|
|
|
|
int split_open_file(split_info_t *s, int idx);
|
|
|
|
int split_get_file(split_info_t *s, u32 lba, u32 *sec_count, int fill);
|
|
|
|
int split_fill(split_info_t *s, int idx, u64 size);
|
|
|
|
int split_read_sector(void *_fp,u32 lba,u32 count,void*buf);
|
|
|
|
int split_write_sector(void *_fp,u32 lba,u32 count,void*buf);
|
|
|
|
void split_init(split_info_t *s, char *fname);
|
|
|
|
void split_set_size(split_info_t *s, u64 split_size, u64 total_size);
|
|
|
|
void split_close(split_info_t *s);
|
|
|
|
int split_open(split_info_t *s, char *fname);
|
2010-02-15 00:22:52 +01:00
|
|
|
int split_create(split_info_t *s, char *fname, u64 split_size, u64 total_size, bool overwrite);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
2009-11-15 20:52:58 +01:00
|
|
|
|
2010-02-15 00:22:52 +01:00
|
|
|
#endif //_SPLITS_H
|