22#define APA_OPT_H "apa-opt.h"
28#define APA_SECTOR_MBR 0
30#define APA_SECTOR_SECTOR_ERROR 34
33#define APA_SECTOR_SECTOR_ERROR 6
35#define APA_SECTOR_PART_ERROR APA_SECTOR_SECTOR_ERROR + 1
36#define APA_SECTOR_APAL APA_SECTOR_PART_ERROR + 1
37#define APA_SECTOR_APAL_HEADERS APA_SECTOR_APAL + 2
38#define APA_SECTOR_MIN_OSDSTART APA_SECTOR_APAL_HEADERS + 252 + 1
41#define APA_MAGIC 0x00415041
42#define APA_MBR_VERSION 2
44#define APA_MODVER ((APA_MODVER_MAJOR << 8) | APA_MODVER_MINOR)
73 char rpwd[APA_PASSMAX];
74 char fpwd[APA_PASSMAX];
98 u32 UniqueMbrSignature;
113 u8 partition_record234[48];
123#define APA_CACHE_FLAG_DIRTY 0x01
142 char fpwd[APA_PASSMAX];
143 char rpwd[APA_PASSMAX];
151extern void apaSaveError(s32 device,
void *buffer, u32 lba, u32 err_lba);
152extern void apaSetPartErrorSector(s32 device, u32 lba);
153extern int apaGetPartErrorSector(s32 device, u32 lba, u32 *lba_out);
154extern int apaGetPartErrorName(s32 device,
char *name);
156extern apa_cache_t *apaFillHeader(s32 device,
const apa_params_t *params, u32 start, u32 next, u32 prev, u32 length,
int *err);
157extern apa_cache_t *apaInsertPartition(s32 device,
const apa_params_t *params, u32 sector,
int *err);
158extern apa_cache_t *apaFindPartition(s32 device,
const char *
id,
int *err);
159extern void apaAddEmptyBlock(
apa_header_t *header, u32 *emptyBlocks);
160extern apa_cache_t *apaRemovePartition(s32 device, u32 start, u32 next, u32 prev, u32 length);
161extern void apaMakeEmpty(apa_cache_t *clink);
162extern apa_cache_t *apaDeleteFixPrev(apa_cache_t *clink1,
int *err);
163extern apa_cache_t *apaDeleteFixNext(apa_cache_t *clink,
int *err);
164extern int apaDelete(apa_cache_t *clink);
165extern int apaCheckSum(
apa_header_t *header,
int fullcheck);
166extern int apaReadHeader(s32 device,
apa_header_t *header, u32 lba);
167extern int apaWriteHeader(s32 device,
apa_header_t *header, u32 lba);
168extern int apaGetFormat(s32 device,
int *format);
169extern u32 apaGetPartitionMax(u32 totalLBA);
170extern apa_cache_t *apaGetNextHeader(apa_cache_t *clink,
int *err);
174extern int apaCacheInit(u32 size);
175extern int apaCacheDeinit(
void);
176extern void apaCacheLink(apa_cache_t *clink, apa_cache_t *cnew);
177extern apa_cache_t *apaCacheUnLink(apa_cache_t *clink);
178extern int apaCacheTransfer(apa_cache_t *clink,
int type);
179extern void apaCacheFlushDirty(apa_cache_t *clink);
180extern int apaCacheFlushAllDirty(s32 device);
181extern apa_cache_t *apaCacheGetHeader(s32 device, u32 sector, u32 mode,
int *err);
182extern void apaCacheFree(apa_cache_t *clink);
183extern apa_cache_t *apaCacheAlloc(
void);
187#define APAL_MAGIC 0x4150414C
195#define journalCheckSum(header) apaCheckSum((apa_header_t *)header, 1)
196extern int apaJournalReset(s32 device);
197extern int apaJournalFlush(s32 device);
198extern int apaJournalWrite(apa_cache_t *clink);
199extern int apaJournalRestore(s32 device);
203extern void *apaAllocMem(
int size);
204extern void apaFreeMem(
void *ptr);
206extern int apaGetIlinkID(u8 *idbuf);
209extern int apaPassCmp(
const char *password1,
const char *password2);
210extern void apaEncryptPassword(
const char *
id,
char *password_out,
const char *password_in);
216 u32 partitionMaxSize;
221extern int apaGetFreeSectors(s32 device, u32 *free,
apa_device_t *deviceinfo);