1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

drivers/mtd_default: use XFA with MTD pointers

This commit is contained in:
Gunar Schorcht 2023-04-11 18:47:59 +02:00
parent bd67236788
commit 739cb53ca9

View File

@ -33,54 +33,28 @@ extern "C" {
#include "mtd_emulated.h" #include "mtd_emulated.h"
#endif #endif
#if !defined(MTD_NUMOF) && !DOXYGEN
#if defined(MTD_3)
#define MTD_BOARD_NUMOF 4
#elif defined(MTD_2)
#define MTD_BOARD_NUMOF 3
#elif defined(MTD_1)
#define MTD_BOARD_NUMOF 2
#elif defined(MTD_0)
#define MTD_BOARD_NUMOF 1
#else
#define MTD_BOARD_NUMOF 0
#endif
#define MTD_SDCARD_NUMOF IS_USED(MODULE_MTD_SDCARD_DEFAULT)
#define MTD_EMULATED_NUMOF IS_USED(MODULE_MTD_EMULATED)
/**
* @brief Number of MTD devices
*/
#define MTD_NUMOF (MTD_BOARD_NUMOF + MTD_SDCARD_NUMOF + MTD_EMULATED_NUMOF)
#else
#define MTD_BOARD_NUMOF MTD_NUMOF
#endif /* !defined(MTD_NUMOF) && !DOXYGEN */
#if !DOXYGEN #if !DOXYGEN
/** /**
* @brief Declare `mtd*` according to the number of MTD devices * @brief Declare `mtd*` according to the `MTD_*` symbols defined by the board
*/ */
#if MTD_NUMOF > 0 #ifdef MTD_0
extern mtd_dev_t *mtd0; extern mtd_dev_t *MTD_0;
#endif #endif
#if MTD_NUMOF > 1 #ifdef MTD_1
extern mtd_dev_t *mtd1; extern mtd_dev_t *MTD_1;
#endif #endif
#if MTD_NUMOF > 2 #ifdef MTD_2
extern mtd_dev_t *mtd2; extern mtd_dev_t *MTD_2;
#endif #endif
#if MTD_NUMOF > 3 #ifdef MTD_3
extern mtd_dev_t *mtd3; extern mtd_dev_t *MTD_3;
#endif #endif
#if MTD_NUMOF > 4 #ifdef MTD_4
extern mtd_dev_t *mtd4; extern mtd_dev_t *MTD_4;
#endif #endif
#if MTD_NUMOF > 5 #ifdef MTD_5
extern mtd_dev_t *mtd5; extern mtd_dev_t *MTD_5;
#endif #endif
#endif /* !DOXYGEN */ #endif /* !DOXYGEN */
@ -102,27 +76,7 @@ extern mtd_emulated_t mtd_emulated_dev0;
*/ */
static inline mtd_dev_t *mtd_default_get_dev(unsigned idx) static inline mtd_dev_t *mtd_default_get_dev(unsigned idx)
{ {
switch (idx) { return ((MTD_NUMOF != 0) && (idx < MTD_NUMOF)) ? mtd_dev_xfa[idx] : NULL;
#if MTD_BOARD_NUMOF > 0
case 0: return MTD_0;
#endif
#if MTD_BOARD_NUMOF > 1
case 1: return MTD_1;
#endif
#if MTD_BOARD_NUMOF > 2
case 2: return MTD_2;
#endif
#if MTD_BOARD_NUMOF > 3
case 3: return MTD_3;
#endif
#if MTD_SDCARD_NUMOF > 0
case MTD_BOARD_NUMOF: return (mtd_dev_t *)&mtd_sdcard_dev0;
#endif
#if MTD_EMULATED_NUMOF > 0
case MTD_BOARD_NUMOF + MTD_SDCARD_NUMOF: return (mtd_dev_t *)&mtd_emulated_dev0;
#endif
}
return NULL;
} }
#ifdef __cplusplus #ifdef __cplusplus