summaryrefslogtreecommitdiffstats
path: root/src/exfat.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/exfat.h')
-rw-r--r--src/exfat.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/exfat.h b/src/exfat.h
index fb39e9e0..29e0eee1 100644
--- a/src/exfat.h
+++ b/src/exfat.h
@@ -94,10 +94,42 @@ struct exfat_alloc_bitmap_entry
uint64_t data_length;
} __attribute__ ((gcc_struct, __packed__));
+/*@
+ @ requires \valid_read(exfat_header);
+ @ assigns \nothing;
+ @*/
uint64_t exfat_cluster_to_offset(const struct exfat_super_block *exfat_header, const unsigned int cluster);
+
+/*@
+ @ requires \valid(disk);
+ @ requires valid_disk(disk);
+ @ requires \valid_read(partition);
+ @ requires \valid_read(exfat_header);
+ @ requires \separated(disk, partition, exfat_header, (char *)buffer);
+ @*/
int exfat_read_cluster(disk_t *disk, const partition_t *partition, const struct exfat_super_block*exfat_header, void *buffer, const unsigned int cluster);
+
+/*@
+ @ requires \valid(disk);
+ @ requires valid_disk(disk);
+ @ requires \valid(partition);
+ @ requires \separated(disk, partition);
+ @*/
int check_exFAT(disk_t *disk, partition_t *partition);
+
+/*@
+ @ requires \valid_read(disk);
+ @ requires valid_disk(disk);
+ @ requires \valid(partition);
+ @ requires valid_partition(partition);
+ @ requires \separated(disk, exfat_header, partition);
+ @*/
int recover_exFAT(const disk_t *disk, const struct exfat_super_block *exfat_header, partition_t *partition);
+
+/*@
+ @ requires \valid_read(exfat_header);
+ @ assigns \nothing;
+ @*/
int test_exFAT(const struct exfat_super_block *exfat_header);
#ifdef __cplusplus