summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/fat.c8
-rw-r--r--firmware/drivers/fat.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index ad1a7a0c82..38223edc6a 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -223,6 +223,14 @@ int fat_startsector(void)
223 return fat_bpb.startsector; 223 return fat_bpb.startsector;
224} 224}
225 225
226void fat_size(unsigned int* size, unsigned int* free)
227{
228 if (size)
229 *size = fat_bpb.dataclusters * fat_bpb.bpb_secperclus / 2;
230 if (free)
231 *free = fat_bpb.fsinfo.freecount * fat_bpb.bpb_secperclus / 2;
232}
233
226int fat_mount(int startsector) 234int fat_mount(int startsector)
227{ 235{
228 unsigned char buf[SECTOR_SIZE]; 236 unsigned char buf[SECTOR_SIZE];
diff --git a/firmware/drivers/fat.h b/firmware/drivers/fat.h
index b23d8dfa08..8ef2982279 100644
--- a/firmware/drivers/fat.h
+++ b/firmware/drivers/fat.h
@@ -67,6 +67,7 @@ struct fat_dir
67 67
68 68
69extern int fat_mount(int startsector); 69extern int fat_mount(int startsector);
70extern void fat_size(unsigned int* size, unsigned int* free);
70 71
71extern int fat_create_dir(unsigned int currdir, char *name); 72extern int fat_create_dir(unsigned int currdir, char *name);
72extern int fat_startsector(void); 73extern int fat_startsector(void);