18#define APA_OPT_H "apa-opt.h"
24#define APA_SECTOR_MBR 0
26#define APA_SECTOR_SECTOR_ERROR 34
29#define APA_SECTOR_SECTOR_ERROR 6
31#define APA_SECTOR_PART_ERROR APA_SECTOR_SECTOR_ERROR + 1
32#define APA_SECTOR_APAL APA_SECTOR_PART_ERROR + 1
33#define APA_SECTOR_APAL_HEADERS APA_SECTOR_APAL + 2
34#define APA_SECTOR_MIN_OSDSTART APA_SECTOR_APAL_HEADERS + 252 + 1
37#define APA_MAGIC 0x00415041
38#define APA_MBR_VERSION 2
40#define APA_MODVER ((APA_MODVER_MAJOR << 8) | APA_MODVER_MINOR)
69 char rpwd[APA_PASSMAX];
70 char fpwd[APA_PASSMAX];
94 u32 UniqueMbrSignature;
109 u8 partition_record234[48];
119#define APA_CACHE_FLAG_DIRTY 0x01
138 char fpwd[APA_PASSMAX];
139 char rpwd[APA_PASSMAX];
147extern void apaSaveError(s32 device,
void *buffer, u32 lba, u32 err_lba);
148extern void apaSetPartErrorSector(s32 device, u32 lba);
149extern int apaGetPartErrorSector(s32 device, u32 lba, u32 *lba_out);
150extern int apaGetPartErrorName(s32 device,
char *name);
152extern apa_cache_t *apaFillHeader(s32 device,
const apa_params_t *params, u32 start, u32 next, u32 prev, u32 length,
int *err);
154extern apa_cache_t *apaFindPartition(s32 device,
const char *
id,
int *err);
155extern void apaAddEmptyBlock(
apa_header_t *header, u32 *emptyBlocks);
156extern apa_cache_t *apaRemovePartition(s32 device, u32 start, u32 next, u32 prev, u32 length);
161extern int apaCheckSum(
apa_header_t *header,
int fullcheck);
162extern int apaReadHeader(s32 device,
apa_header_t *header, u32 lba);
163extern int apaWriteHeader(s32 device,
apa_header_t *header, u32 lba);
164extern int apaGetFormat(s32 device,
int *format);
165extern u32 apaGetPartitionMax(u32 totalLBA);
170extern int apaCacheInit(u32 size);
171extern int apaCacheDeinit(
void);
174extern int apaCacheTransfer(
apa_cache_t *clink,
int type);
176extern int apaCacheFlushAllDirty(s32 device);
177extern apa_cache_t *apaCacheGetHeader(s32 device, u32 sector, u32 mode,
int *err);
183#define APAL_MAGIC 0x4150414C
191#define journalCheckSum(header) apaCheckSum((apa_header_t *)header, 1)
192extern int apaJournalReset(s32 device);
193extern int apaJournalFlush(s32 device);
195extern int apaJournalRestore(s32 device);
199extern void *apaAllocMem(
int size);
200extern void apaFreeMem(
void *ptr);
202extern int apaGetIlinkID(u8 *idbuf);
205extern int apaPassCmp(
const char *password1,
const char *password2);
206extern void apaEncryptPassword(
const char *
id,
char *password_out,
const char *password_in);
212 u32 partitionMaxSize;
217extern int apaGetFreeSectors(s32 device, u32 *free,
apa_device_t *deviceinfo);