]> git.sven.stormbind.net Git - sven/exfat-utils.git/blobdiff - mkfs/mkexfat.h
New upstream version 1.2.6
[sven/exfat-utils.git] / mkfs / mkexfat.h
index dbaeb8d23ff98bc593e6a454c9fdebc1dc620ebc..e8e0a44ccdcec2b043b4c07f6c0eaa3b1e2640f5 100644 (file)
@@ -1,12 +1,13 @@
 /*
        mkexfat.h (09.11.10)
 /*
        mkexfat.h (09.11.10)
-       Common declarations.
+       FS creation engine.
 
 
-       Copyright (C) 2009, 2010  Andrew Nayenko
+       Free exFAT implementation.
+       Copyright (C) 2011-2017  Andrew Nayenko
 
 
-       This program is free software: you can redistribute it and/or modify
+       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
        it under the terms of the GNU General Public License as published by
-       the Free Software Foundation, either version 3 of the License, or
+       the Free Software Foundation, either version 2 of the License, or
        (at your option) any later version.
 
        This program is distributed in the hope that it will be useful,
        (at your option) any later version.
 
        This program is distributed in the hope that it will be useful,
@@ -14,8 +15,9 @@
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
 
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
 
-       You should have received a copy of the GNU General Public License
-       along with this program.  If not, see <http://www.gnu.org/licenses/>.
+       You should have received a copy of the GNU General Public License along
+       with this program; if not, write to the Free Software Foundation, Inc.,
+       51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #ifndef MKFS_MKEXFAT_H_INCLUDED
 */
 
 #ifndef MKFS_MKEXFAT_H_INCLUDED
 
 #include <exfat.h>
 
 
 #include <exfat.h>
 
-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 */
 
 #endif /* ifndef MKFS_MKEXFAT_H_INCLUDED */