| Index: embios/trunk/storage.c | 
| — | — | @@ -127,8 +127,48 @@ | 
| 128 | 128 | return storage_write_sectors(IF_MD2(drive,) start, count, buf); | 
| 129 | 129 | } | 
| 130 | 130 |  | 
|  | 131 | +#ifdef STORAGE_GET_INFO | 
|  | 132 | +void storage_get_info(int drive, struct storage_info *info) | 
|  | 133 | +{ | 
| 131 | 134 | #ifdef CONFIG_STORAGE_MULTI | 
|  | 135 | +    int driver=(storage_drivers[drive] & DRIVER_MASK)>>DRIVER_OFFSET; | 
|  | 136 | +    int ldrive=(storage_drivers[drive] & DRIVE_MASK)>>DRIVE_OFFSET; | 
|  | 137 | + | 
|  | 138 | +    switch(driver) | 
|  | 139 | +    { | 
|  | 140 | +#if (CONFIG_STORAGE & STORAGE_ATA) | 
|  | 141 | +    case STORAGE_ATA: | 
|  | 142 | +        return ata_get_info(ldrive,info); | 
|  | 143 | +#endif | 
| 132 | 144 |  | 
|  | 145 | +#if (CONFIG_STORAGE & STORAGE_MMC) | 
|  | 146 | +    case STORAGE_MMC: | 
|  | 147 | +        return mmc_get_info(ldrive,info); | 
|  | 148 | +#endif | 
|  | 149 | + | 
|  | 150 | +#if (CONFIG_STORAGE & STORAGE_SD) | 
|  | 151 | +    case STORAGE_SD: | 
|  | 152 | +        return sd_get_info(ldrive,info); | 
|  | 153 | +#endif | 
|  | 154 | + | 
|  | 155 | +#if (CONFIG_STORAGE & STORAGE_NAND) | 
|  | 156 | +    case STORAGE_NAND: | 
|  | 157 | +        return nand_get_info(ldrive,info); | 
|  | 158 | +#endif | 
|  | 159 | + | 
|  | 160 | +#if (CONFIG_STORAGE & STORAGE_RAMDISK) | 
|  | 161 | +    case STORAGE_RAMDISK: | 
|  | 162 | +        return ramdisk_get_info(ldrive,info); | 
|  | 163 | +#endif | 
|  | 164 | +    } | 
|  | 165 | +#else /* CONFIG_STORAGE_MULTI */ | 
|  | 166 | +    return STORAGE_FUNCTION(get_info)(IF_MD2(drive,)info); | 
|  | 167 | +#endif /* CONFIG_STORAGE_MULTI */ | 
|  | 168 | +} | 
|  | 169 | +#endif /* STORAGE_GET_INFO */ | 
|  | 170 | + | 
|  | 171 | +#ifdef CONFIG_STORAGE_MULTI | 
|  | 172 | + | 
| 133 | 173 | int storage_num_drives(void) | 
| 134 | 174 | { | 
| 135 | 175 | return num_drives; | 
| — | — | @@ -453,42 +493,6 @@ | 
| 454 | 494 | return max; | 
| 455 | 495 | } | 
| 456 | 496 |  | 
| 457 |  | -#ifdef STORAGE_GET_INFO | 
| 458 |  | -void storage_get_info(int drive, struct storage_info *info) | 
| 459 |  | -{ | 
| 460 |  | -    int driver=(storage_drivers[drive] & DRIVER_MASK)>>DRIVER_OFFSET; | 
| 461 |  | -    int ldrive=(storage_drivers[drive] & DRIVE_MASK)>>DRIVE_OFFSET; | 
| 462 |  | -     | 
| 463 |  | -    switch(driver) | 
| 464 |  | -    { | 
| 465 |  | -#if (CONFIG_STORAGE & STORAGE_ATA) | 
| 466 |  | -    case STORAGE_ATA: | 
| 467 |  | -        return ata_get_info(ldrive,info); | 
| 468 |  | -#endif | 
| 469 |  | - | 
| 470 |  | -#if (CONFIG_STORAGE & STORAGE_MMC) | 
| 471 |  | -    case STORAGE_MMC: | 
| 472 |  | -        return mmc_get_info(ldrive,info); | 
| 473 |  | -#endif | 
| 474 |  | - | 
| 475 |  | -#if (CONFIG_STORAGE & STORAGE_SD) | 
| 476 |  | -    case STORAGE_SD: | 
| 477 |  | -        return sd_get_info(ldrive,info); | 
| 478 |  | -#endif | 
| 479 |  | - | 
| 480 |  | -#if (CONFIG_STORAGE & STORAGE_NAND) | 
| 481 |  | -    case STORAGE_NAND: | 
| 482 |  | -        return nand_get_info(ldrive,info); | 
| 483 |  | -#endif | 
| 484 |  | - | 
| 485 |  | -#if (CONFIG_STORAGE & STORAGE_RAMDISK) | 
| 486 |  | -    case STORAGE_RAMDISK: | 
| 487 |  | -        return ramdisk_get_info(ldrive,info); | 
| 488 |  | -#endif | 
| 489 |  | -    } | 
| 490 |  | -} | 
| 491 |  | -#endif /* STORAGE_GET_INFO */ | 
| 492 |  | - | 
| 493 | 497 | #ifdef HAVE_HOTSWAP | 
| 494 | 498 | bool storage_removable(int drive) | 
| 495 | 499 | { | 
| Index: embios/trunk/storage.h | 
| — | — | @@ -25,6 +25,8 @@ | 
| 26 | 26 | #include "global.h" | 
| 27 | 27 | #include "mv.h" | 
| 28 | 28 |  | 
|  | 29 | +#define STORAGE_GET_INFO | 
|  | 30 | + | 
| 29 | 31 | #if (CONFIG_STORAGE & STORAGE_SD) | 
| 30 | 32 | #include "storage_sd.h" | 
| 31 | 33 | #endif | 
| — | — | @@ -73,9 +75,6 @@ | 
| 74 | 76 | #define storage_last_disk_activity() ata_last_disk_activity() | 
| 75 | 77 | #define storage_get_identify() ata_get_identify() | 
| 76 | 78 |  | 
| 77 |  | -        #ifdef STORAGE_GET_INFO | 
| 78 |  | -            #define storage_get_info(drive, info) ata_get_info(IF_MD2(drive,) info) | 
| 79 |  | -        #endif | 
| 80 | 79 | #ifdef HAVE_HOTSWAP | 
| 81 | 80 | #define storage_removable(drive) ata_removable(IF_MD(drive)) | 
| 82 | 81 | #define storage_present(drive) ata_present(IF_MD(drive)) | 
| — | — | @@ -97,9 +96,6 @@ | 
| 98 | 97 | #define storage_last_disk_activity() sd_last_disk_activity() | 
| 99 | 98 | #define storage_get_identify() sd_get_identify() | 
| 100 | 99 |  | 
| 101 |  | -        #ifdef STORAGE_GET_INFO | 
| 102 |  | -            #define storage_get_info(drive, info) sd_get_info(IF_MD2(drive,) info) | 
| 103 |  | -        #endif | 
| 104 | 100 | #ifdef HAVE_HOTSWAP | 
| 105 | 101 | #define storage_removable(drive) sd_removable(IF_MD(drive)) | 
| 106 | 102 | #define storage_present(drive) sd_present(IF_MD(drive)) | 
| — | — | @@ -121,9 +117,6 @@ | 
| 122 | 118 | #define storage_last_disk_activity() mmc_last_disk_activity() | 
| 123 | 119 | #define storage_get_identify() mmc_get_identify() | 
| 124 | 120 |  | 
| 125 |  | -        #ifdef STORAGE_GET_INFO | 
| 126 |  | -            #define storage_get_info(drive, info) mmc_get_info(IF_MD2(drive,) info) | 
| 127 |  | -        #endif | 
| 128 | 121 | #ifdef HAVE_HOTSWAP | 
| 129 | 122 | #define storage_removable(drive) mmc_removable(IF_MD(drive)) | 
| 130 | 123 | #define storage_present(drive) mmc_present(IF_MD(drive)) | 
| — | — | @@ -145,9 +138,6 @@ | 
| 146 | 139 | #define storage_last_disk_activity() nand_last_disk_activity() | 
| 147 | 140 | #define storage_get_identify() nand_get_identify() | 
| 148 | 141 |  | 
| 149 |  | -        #ifdef STORAGE_GET_INFO | 
| 150 |  | -            #define storage_get_info(drive, info) nand_get_info(IF_MD2(drive,) info) | 
| 151 |  | -        #endif | 
| 152 | 142 | #ifdef HAVE_HOTSWAP | 
| 153 | 143 | #define storage_removable(drive) nand_removable(IF_MD(drive)) | 
| 154 | 144 | #define storage_present(drive) nand_present(IF_MD(drive)) | 
| — | — | @@ -169,9 +159,6 @@ | 
| 170 | 160 | #define storage_last_disk_activity() ramdisk_last_disk_activity() | 
| 171 | 161 | #define storage_get_identify() ramdisk_get_identify() | 
| 172 | 162 |  | 
| 173 |  | -        #ifdef STORAGE_GET_INFO | 
| 174 |  | -            #define storage_get_info(drive, info) ramdisk_get_info(IF_MD2(drive,) info) | 
| 175 |  | -        #endif | 
| 176 | 163 | #ifdef HAVE_HOTSWAP | 
| 177 | 164 | #define storage_removable(drive) ramdisk_removable(IF_MD(drive)) | 
| 178 | 165 | #define storage_present(drive) ramdisk_present(IF_MD(drive)) | 
| — | — | @@ -194,9 +181,6 @@ | 
| 195 | 182 | void storage_spindown(int seconds); | 
| 196 | 183 | long storage_last_disk_activity(void); | 
| 197 | 184 | int storage_num_drives(void); | 
| 198 |  | -#ifdef STORAGE_GET_INFO | 
| 199 |  | -void storage_get_info(int drive, struct storage_info *info); | 
| 200 |  | -#endif | 
| 201 | 185 | #ifdef HAVE_HOTSWAP | 
| 202 | 186 | bool storage_removable(int drive); | 
| 203 | 187 | bool storage_present(int drive); | 
| — | — | @@ -208,4 +192,7 @@ | 
| 209 | 193 | int storage_read_sectors_md(int drive, unsigned long start, int count, void* buf); | 
| 210 | 194 | int storage_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf); | 
| 211 | 195 | int storage_write_sectors_md(int drive, unsigned long start, int count, const void* buf); | 
|  | 196 | +#ifdef STORAGE_GET_INFO | 
|  | 197 | +void storage_get_info(int drive, struct storage_info *info); | 
| 212 | 198 | #endif | 
|  | 199 | +#endif |