diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-08-13 13:21:55 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-08-13 13:21:55 +0000 |
| commit | 113fffaa86ca105694dd4da28fc8685350aba947 (patch) | |
| tree | f219a657d235d587d7436da80a725dc146c1a0fa | |
| parent | f6f3a1395ece444556583139d988657396bf8cb7 (diff) | |
| download | rockbox-113fffaa86ca105694dd4da28fc8685350aba947.zip rockbox-113fffaa86ca105694dd4da28fc8685350aba947.tar.gz rockbox-113fffaa86ca105694dd4da28fc8685350aba947.tar.bz2 rockbox-113fffaa86ca105694dd4da28fc8685350aba947.tar.xz | |
Don't save settings on disk if it has no partition table
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1712 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/settings.c | 2 | ||||
| -rw-r--r-- | firmware/drivers/fat.c | 5 | ||||
| -rw-r--r-- | firmware/drivers/fat.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/apps/settings.c b/apps/settings.c index 67530a9..e285d26 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -198,7 +198,7 @@ static int save_config_buffer( void ) /* update the checksum in the end of the block before saving */ calculate_config_checksum(rtc_config_block + sizeof(rtc_config_block) - 2); #ifdef SAVE_TO_DISK - if(battery_level_safe()) + if(battery_level_safe() && (fat_firstsector()!=0)) return !ata_write_sectors( 61, 1, rtc_config_block); else return -1; diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c index 7fe011c..78d0f8f 100644 --- a/firmware/drivers/fat.c +++ b/firmware/drivers/fat.c @@ -218,6 +218,11 @@ static int first_sector_of_cluster(int cluster) return (cluster - 2) * fat_bpb.bpb_secperclus + fat_bpb.firstdatasector; } +int fat_startsector(void) +{ + return fat_bpb.startsector; +} + int fat_mount(int startsector) { unsigned char buf[SECTOR_SIZE]; diff --git a/firmware/drivers/fat.h b/firmware/drivers/fat.h index 844864d..836d5c6 100644 --- a/firmware/drivers/fat.h +++ b/firmware/drivers/fat.h @@ -66,6 +66,7 @@ extern int fat_mount(int startsector); extern int fat_create_file(unsigned int currdir, char *name); extern int fat_create_dir(unsigned int currdir, char *name); #endif +extern int fat_startsector(void); extern int fat_open(unsigned int cluster, struct fat_file *ent); extern int fat_read(struct fat_file *ent, int sectorcount, void* buf ); extern int fat_seek(struct fat_file *ent, int sector ); |