X-Git-Url: https://git.sven.stormbind.net/?p=sven%2Fexfat-utils.git;a=blobdiff_plain;f=mkfs%2Fmkexfat.h;h=a11dff323da1f5b2e98c48af18a6dade2a71c275;hp=dbaeb8d23ff98bc593e6a454c9fdebc1dc620ebc;hb=70a4b10edcf53a90140e6dd80ccaa045f3647ad7;hpb=9799d681703e3a63dbbf876c16c9bb51b20c8fab diff --git a/mkfs/mkexfat.h b/mkfs/mkexfat.h index dbaeb8d..a11dff3 100644 --- a/mkfs/mkexfat.h +++ b/mkfs/mkexfat.h @@ -1,8 +1,8 @@ /* mkexfat.h (09.11.10) - Common declarations. + FS creation engine. - Copyright (C) 2009, 2010 Andrew Nayenko + Copyright (C) 2011, 2012 Andrew Nayenko This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,15 +23,25 @@ #include -extern struct exfat_super_block sb; -extern struct exfat_entry_label label_entry; -extern struct exfat_entry_bitmap bitmap_entry; -extern struct exfat_entry_upcase upcase_entry; - -#define OFFSET_TO_SECTOR(off) ((off) >> (sb).sector_bits) -#define SECTOR_TO_CLUSTER(sector) \ - ((((sector) - le32_to_cpu((sb).cluster_sector_start)) >> (sb).spc_bits) + \ - EXFAT_FIRST_DATA_CLUSTER) -#define OFFSET_TO_CLUSTER(off) SECTOR_TO_CLUSTER(OFFSET_TO_SECTOR(off)) +struct fs_object +{ + off_t (*get_alignment)(void); + off_t (*get_size)(void); + int (*write)(struct exfat_dev* dev); +}; + +extern const struct fs_object* objects[]; + +int get_sector_bits(void); +int get_spc_bits(void); +off_t get_volume_size(void); +const le16_t* get_volume_label(void); +uint32_t get_volume_serial(void); +uint64_t get_first_sector(void); +int get_sector_size(void); +int get_cluster_size(void); + +int mkfs(struct exfat_dev* dev, off_t volume_size); +off_t get_position(const struct fs_object* object); #endif /* ifndef MKFS_MKEXFAT_H_INCLUDED */