diff options
| author | Rafaël Carré <rafael.carre@gmail.com> | 2011-11-20 18:44:40 +0000 |
|---|---|---|
| committer | Rafaël Carré <rafael.carre@gmail.com> | 2011-11-20 18:44:40 +0000 |
| commit | 814ffffdbe5a5ea420ddc6475512a75cba7a8583 (patch) | |
| tree | 8aab4d0bf5ac49a4bb2d3abb64625f6b70aa9a66 | |
| parent | bccee8900242d089e4e2c819725cd64b308b0157 (diff) | |
| download | rockbox-814ffffdbe5a5ea420ddc6475512a75cba7a8583.zip rockbox-814ffffdbe5a5ea420ddc6475512a75cba7a8583.tar.gz rockbox-814ffffdbe5a5ea420ddc6475512a75cba7a8583.tar.bz2 rockbox-814ffffdbe5a5ea420ddc6475512a75cba7a8583.tar.xz | |
Add INIT_ATTR to storage_init() when possible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31036 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/export/ata.h | 2 | ||||
| -rw-r--r-- | firmware/export/config.h | 10 | ||||
| -rw-r--r-- | firmware/export/mmc.h | 2 | ||||
| -rw-r--r-- | firmware/export/nand.h | 2 | ||||
| -rw-r--r-- | firmware/export/ramdisk.h | 2 | ||||
| -rw-r--r-- | firmware/export/sd.h | 2 | ||||
| -rw-r--r-- | firmware/export/storage.h | 2 |
7 files changed, 16 insertions, 6 deletions
diff --git a/firmware/export/ata.h b/firmware/export/ata.h index 5be32da..a353781 100644 --- a/firmware/export/ata.h +++ b/firmware/export/ata.h @@ -37,7 +37,7 @@ void ata_sleepnow(void); */ bool ata_disk_is_active(void); int ata_soft_reset(void); -int ata_init(void); +int ata_init(void) STORAGE_INIT_ATTR; void ata_close(void); int ata_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf); int ata_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); diff --git a/firmware/export/config.h b/firmware/export/config.h index a7f0a35..979a14d 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -908,6 +908,16 @@ Lyre prototype 1 */ #define INITDATA_ATTR #endif +/* We need to call storage_init more than once only if USB storage mode is + * handled in hardware: + * Deinit storage -> let hardware handle USB mode -> storage_init() again + */ +#if defined(HAVE_USBSTACK) || defined(USB_NONE) +#define STORAGE_INIT_ATTR INIT_ATTR +#else +#define STORAGE_INIT_ATTR +#endif + #if (CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(__APPLE__) #define DATA_ATTR __attribute__ ((section("__DATA, .data"))) #else diff --git a/firmware/export/mmc.h b/firmware/export/mmc.h index f2b0ad3..7e72cb0 100644 --- a/firmware/export/mmc.h +++ b/firmware/export/mmc.h @@ -33,7 +33,7 @@ void mmc_sleep(void); void mmc_sleepnow(void); bool mmc_disk_is_active(void); int mmc_soft_reset(void); -int mmc_init(void); +int mmc_init(void) STORAGE_INIT_ATTR; void mmc_close(void); int mmc_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf); int mmc_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); diff --git a/firmware/export/nand.h b/firmware/export/nand.h index 60b986d..13d5594 100644 --- a/firmware/export/nand.h +++ b/firmware/export/nand.h @@ -33,7 +33,7 @@ void nand_sleep(void); void nand_sleepnow(void); bool nand_disk_is_active(void); int nand_soft_reset(void); -int nand_init(void); +int nand_init(void) STORAGE_INIT_ATTR; void nand_close(void); int nand_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf); int nand_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); diff --git a/firmware/export/ramdisk.h b/firmware/export/ramdisk.h index 7a56e05..5135e38 100644 --- a/firmware/export/ramdisk.h +++ b/firmware/export/ramdisk.h @@ -32,7 +32,7 @@ void ramdisk_spindown(int seconds); void ramdisk_sleep(void); bool ramdisk_disk_is_active(void); int ramdisk_soft_reset(void); -int ramdisk_init(void); +int ramdisk_init(void) STORAGE_INIT_ATTR; void ramdisk_close(void); int ramdisk_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf); int ramdisk_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); diff --git a/firmware/export/sd.h b/firmware/export/sd.h index 8e400bf..43c961e 100644 --- a/firmware/export/sd.h +++ b/firmware/export/sd.h @@ -39,7 +39,7 @@ void sd_sleep(void); void sd_sleepnow(void); bool sd_disk_is_active(void); int sd_soft_reset(void); -int sd_init(void); +int sd_init(void) STORAGE_INIT_ATTR; void sd_close(void); int sd_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf); int sd_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); diff --git a/firmware/export/storage.h b/firmware/export/storage.h index e9ac8b4..58d8d32 100644 --- a/firmware/export/storage.h +++ b/firmware/export/storage.h @@ -214,7 +214,7 @@ void storage_sleep(void); void storage_sleepnow(void); bool storage_disk_is_active(void); int storage_soft_reset(void); -int storage_init(void); +int storage_init(void) STORAGE_INIT_ATTR; int storage_flush(void); void storage_spin(void); void storage_spindown(int seconds); |