diff --git a/Devices/m5stack-papers3/source/module.cpp b/Devices/m5stack-papers3/source/module.cpp index 0a887f5b4..0060cf9c0 100644 --- a/Devices/m5stack-papers3/source/module.cpp +++ b/Devices/m5stack-papers3/source/module.cpp @@ -7,7 +7,7 @@ extern Driver papers3_power_driver; extern Driver papers3_power_supply_driver; extern Driver papers3_display_driver; -static const Driver* papers3_drivers[] = { +static Driver* const papers3_drivers[] = { &papers3_display_driver, &papers3_power_driver, &papers3_power_supply_driver, diff --git a/Devices/m5stack-tab5/Source/module.cpp b/Devices/m5stack-tab5/Source/module.cpp index e96d5b354..3593123a4 100644 --- a/Devices/m5stack-tab5/Source/module.cpp +++ b/Devices/m5stack-tab5/Source/module.cpp @@ -79,7 +79,7 @@ static error_t stop() { return ERROR_NONE; } -static const Driver* tab5_drivers[] = { +static Driver* const tab5_drivers[] = { &tab5_keyboard_driver, &tab5_power_control_driver, nullptr @@ -89,7 +89,7 @@ Module m5stack_tab5_module = { .name = "m5stack-tab5", .start = start, .stop = stop, - .drivers = const_cast(tab5_drivers) + .drivers = tab5_drivers }; } diff --git a/Devices/unphone/source/module.cpp b/Devices/unphone/source/module.cpp index e3298b5f9..5969f540f 100644 --- a/Devices/unphone/source/module.cpp +++ b/Devices/unphone/source/module.cpp @@ -47,7 +47,7 @@ static error_t stop() { return ERROR_NONE; } -static const Driver* unphone_drivers[] = { +static Driver* const unphone_drivers[] = { &unphone_nav_buttons_driver, &unphone_power_switch_driver, nullptr diff --git a/Drivers/aw88298-module/source/module.cpp b/Drivers/aw88298-module/source/module.cpp index d9885b483..8e067a2d2 100644 --- a/Drivers/aw88298-module/source/module.cpp +++ b/Drivers/aw88298-module/source/module.cpp @@ -8,7 +8,7 @@ extern Driver aw88298_driver; extern const ModuleSymbol aw88298_module_symbols[]; -static const Driver* aw88298_drivers[] = { +static Driver* const aw88298_drivers[] = { &aw88298_driver, nullptr }; diff --git a/Drivers/aw9523b-module/source/module.cpp b/Drivers/aw9523b-module/source/module.cpp index cc2d28c57..e7b280106 100644 --- a/Drivers/aw9523b-module/source/module.cpp +++ b/Drivers/aw9523b-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver aw9523b_driver; -static const Driver* aw9523b_drivers[] = { +static Driver* const aw9523b_drivers[] = { &aw9523b_driver, nullptr }; diff --git a/Drivers/axp192-module/source/module.cpp b/Drivers/axp192-module/source/module.cpp index d7e347b58..b9997ab09 100644 --- a/Drivers/axp192-module/source/module.cpp +++ b/Drivers/axp192-module/source/module.cpp @@ -9,7 +9,7 @@ extern Driver axp192_driver; extern Driver axp192_power_supply_driver; extern Driver axp192_backlight_driver; -static const Driver* axp192_drivers[] = { +static Driver* const axp192_drivers[] = { &axp192_driver, &axp192_power_supply_driver, &axp192_backlight_driver, diff --git a/Drivers/axp2101-module/source/module.cpp b/Drivers/axp2101-module/source/module.cpp index c135f177d..fd2995e48 100644 --- a/Drivers/axp2101-module/source/module.cpp +++ b/Drivers/axp2101-module/source/module.cpp @@ -9,7 +9,7 @@ extern Driver axp2101_driver; extern Driver axp2101_power_supply_driver; extern Driver axp2101_backlight_driver; -static const Driver* axp2101_drivers[] = { +static Driver* const axp2101_drivers[] = { &axp2101_driver, &axp2101_power_supply_driver, &axp2101_backlight_driver, diff --git a/Drivers/axs5106-module/source/module.cpp b/Drivers/axs5106-module/source/module.cpp index 3db546274..0b465574d 100644 --- a/Drivers/axs5106-module/source/module.cpp +++ b/Drivers/axs5106-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver axs5106_driver; -static const Driver* axs5106_drivers[] = { +static Driver* const axs5106_drivers[] = { &axs5106_driver, nullptr }; diff --git a/Drivers/bm8563-module/source/module.cpp b/Drivers/bm8563-module/source/module.cpp index bd9e1ec67..7a73b962c 100644 --- a/Drivers/bm8563-module/source/module.cpp +++ b/Drivers/bm8563-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver bm8563_driver; -static const Driver* bm8563_drivers[] = { +static Driver* const bm8563_drivers[] = { &bm8563_driver, nullptr }; diff --git a/Drivers/bmi270-module/source/module.cpp b/Drivers/bmi270-module/source/module.cpp index e77fe8c64..9dfac1285 100644 --- a/Drivers/bmi270-module/source/module.cpp +++ b/Drivers/bmi270-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver bmi270_driver; -static const Driver* bmi270_drivers[] = { +static Driver* const bmi270_drivers[] = { &bmi270_driver, nullptr }; diff --git a/Drivers/bq24295-module/source/module.cpp b/Drivers/bq24295-module/source/module.cpp index 545c84e53..dc6710360 100644 --- a/Drivers/bq24295-module/source/module.cpp +++ b/Drivers/bq24295-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver bq24295_driver; extern Driver bq24295_power_supply_driver; -static const Driver* bq24295_drivers[] = { +static Driver* const bq24295_drivers[] = { &bq24295_driver, &bq24295_power_supply_driver, nullptr diff --git a/Drivers/bq25896-module/source/module.cpp b/Drivers/bq25896-module/source/module.cpp index d4a27efba..5a67a7ff9 100644 --- a/Drivers/bq25896-module/source/module.cpp +++ b/Drivers/bq25896-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver bq25896_driver; extern Driver bq25896_power_supply_driver; -static const Driver* bq25896_drivers[] = { +static Driver* const bq25896_drivers[] = { &bq25896_driver, &bq25896_power_supply_driver, nullptr diff --git a/Drivers/bq27220-module/source/module.cpp b/Drivers/bq27220-module/source/module.cpp index b6ee788c8..c4fae88d2 100644 --- a/Drivers/bq27220-module/source/module.cpp +++ b/Drivers/bq27220-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver bq27220_driver; extern Driver bq27220_power_supply_driver; -static const Driver* bq27220_drivers[] = { +static Driver* const bq27220_drivers[] = { &bq27220_driver, &bq27220_power_supply_driver, nullptr diff --git a/Drivers/button-control-module/source/module.cpp b/Drivers/button-control-module/source/module.cpp index dd40acf02..183f597de 100644 --- a/Drivers/button-control-module/source/module.cpp +++ b/Drivers/button-control-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver button_control_driver; -static const Driver* button_control_drivers[] = { +static Driver* const button_control_drivers[] = { &button_control_driver, nullptr }; diff --git a/Drivers/ch422g-module/source/module.cpp b/Drivers/ch422g-module/source/module.cpp index bc7cbdeb2..9e16d6641 100644 --- a/Drivers/ch422g-module/source/module.cpp +++ b/Drivers/ch422g-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ch422g_driver; -static const Driver* ch422g_drivers[] = { +static Driver* const ch422g_drivers[] = { &ch422g_driver, nullptr }; diff --git a/Drivers/cst328-module/source/module.cpp b/Drivers/cst328-module/source/module.cpp index 1716c61f6..80529ec15 100644 --- a/Drivers/cst328-module/source/module.cpp +++ b/Drivers/cst328-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver cst328_driver; -static const Driver* cst328_drivers[] = { +static Driver* const cst328_drivers[] = { &cst328_driver, nullptr }; diff --git a/Drivers/cst66xx-module/source/module.cpp b/Drivers/cst66xx-module/source/module.cpp index 8c7238daa..f8ab86a73 100644 --- a/Drivers/cst66xx-module/source/module.cpp +++ b/Drivers/cst66xx-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver cst66xx_driver; -static const Driver* cst66xx_drivers[] = { +static Driver* const cst66xx_drivers[] = { &cst66xx_driver, nullptr }; diff --git a/Drivers/cst816s-module/source/module.cpp b/Drivers/cst816s-module/source/module.cpp index 45a952337..c2400011d 100644 --- a/Drivers/cst816s-module/source/module.cpp +++ b/Drivers/cst816s-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver cst816s_driver; -static const Driver* cst816s_drivers[] = { +static Driver* const cst816s_drivers[] = { &cst816s_driver, nullptr }; diff --git a/Drivers/cst816t-module/source/module.cpp b/Drivers/cst816t-module/source/module.cpp index 227885291..4e4af0ee1 100644 --- a/Drivers/cst816t-module/source/module.cpp +++ b/Drivers/cst816t-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver cst816t_driver; -static const Driver* cst816t_drivers[] = { +static Driver* const cst816t_drivers[] = { &cst816t_driver, nullptr }; diff --git a/Drivers/drv2605-module/source/module.cpp b/Drivers/drv2605-module/source/module.cpp index 4188781f8..f6e0f2752 100644 --- a/Drivers/drv2605-module/source/module.cpp +++ b/Drivers/drv2605-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver drv2605_driver; -static const Driver* drv2605_drivers[] = { +static Driver* const drv2605_drivers[] = { &drv2605_driver, nullptr }; diff --git a/Drivers/dummy-i2s-amp-module/source/module.cpp b/Drivers/dummy-i2s-amp-module/source/module.cpp index fe14fd7ba..efe4c34bd 100644 --- a/Drivers/dummy-i2s-amp-module/source/module.cpp +++ b/Drivers/dummy-i2s-amp-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver dummy_i2s_amp_driver; -static const Driver* dummy_drivers[] = { +static Driver* const dummy_drivers[] = { &dummy_i2s_amp_driver, nullptr }; diff --git a/Drivers/es7210-module/source/module.cpp b/Drivers/es7210-module/source/module.cpp index 0c7e000e0..833b67595 100644 --- a/Drivers/es7210-module/source/module.cpp +++ b/Drivers/es7210-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver es7210_driver; -static const Driver* es7210_drivers[] = { +static Driver* const es7210_drivers[] = { &es7210_driver, nullptr }; diff --git a/Drivers/es8311-module/source/module.cpp b/Drivers/es8311-module/source/module.cpp index 9907a258b..ab4208171 100644 --- a/Drivers/es8311-module/source/module.cpp +++ b/Drivers/es8311-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver es8311_driver; -static const Driver* es8311_drivers[] = { +static Driver* const es8311_drivers[] = { &es8311_driver, nullptr }; diff --git a/Drivers/es8388-module/source/module.cpp b/Drivers/es8388-module/source/module.cpp index 8f3b5400b..69bb68677 100644 --- a/Drivers/es8388-module/source/module.cpp +++ b/Drivers/es8388-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver es8388_driver; -static const Driver* es8388_drivers[] = { +static Driver* const es8388_drivers[] = { &es8388_driver, nullptr }; diff --git a/Drivers/ft5x06-module/source/module.cpp b/Drivers/ft5x06-module/source/module.cpp index ee705df5a..ce79913b2 100644 --- a/Drivers/ft5x06-module/source/module.cpp +++ b/Drivers/ft5x06-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ft5x06_driver; -static const Driver* ft5x06_drivers[] = { +static Driver* const ft5x06_drivers[] = { &ft5x06_driver, nullptr }; diff --git a/Drivers/ft6x36-module/source/module.cpp b/Drivers/ft6x36-module/source/module.cpp index 11652be37..bd6c28e33 100644 --- a/Drivers/ft6x36-module/source/module.cpp +++ b/Drivers/ft6x36-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ft6x36_driver; -static const Driver* ft6x36_drivers[] = { +static Driver* const ft6x36_drivers[] = { &ft6x36_driver, nullptr }; diff --git a/Drivers/gc9a01-module/source/module.cpp b/Drivers/gc9a01-module/source/module.cpp index b6fcf4560..164f6e2ae 100644 --- a/Drivers/gc9a01-module/source/module.cpp +++ b/Drivers/gc9a01-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver gc9a01_driver; -static const Driver* gc9a01_drivers[] = { +static Driver* const gc9a01_drivers[] = { &gc9a01_driver, nullptr }; diff --git a/Drivers/gt911-module/source/module.cpp b/Drivers/gt911-module/source/module.cpp index fe8c7efee..d9749a304 100644 --- a/Drivers/gt911-module/source/module.cpp +++ b/Drivers/gt911-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver gt911_driver; -static const Driver* gt911_drivers[] = { +static Driver* const gt911_drivers[] = { >911_driver, nullptr }; diff --git a/Drivers/hx8357-module/source/module.cpp b/Drivers/hx8357-module/source/module.cpp index 3003f6f16..fbd6cb5f5 100644 --- a/Drivers/hx8357-module/source/module.cpp +++ b/Drivers/hx8357-module/source/module.cpp @@ -4,7 +4,7 @@ extern Driver hx8357_driver; -static const Driver* hx8357_drivers[] = { +static Driver* const hx8357_drivers[] = { &hx8357_driver, nullptr }; diff --git a/Drivers/ili9341-module/source/module.cpp b/Drivers/ili9341-module/source/module.cpp index 715b9723d..9faaca4b4 100644 --- a/Drivers/ili9341-module/source/module.cpp +++ b/Drivers/ili9341-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ili9341_driver; -static const Driver* ili9341_drivers[] = { +static Driver* const ili9341_drivers[] = { &ili9341_driver, nullptr }; diff --git a/Drivers/ili9488-module/source/module.cpp b/Drivers/ili9488-module/source/module.cpp index 226cf49d1..dbd7cade0 100644 --- a/Drivers/ili9488-module/source/module.cpp +++ b/Drivers/ili9488-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ili9488_driver; -static const Driver* ili9488_drivers[] = { +static Driver* const ili9488_drivers[] = { &ili9488_driver, nullptr }; diff --git a/Drivers/ili9881c-module/source/module.cpp b/Drivers/ili9881c-module/source/module.cpp index dc1ace654..b4e2faf92 100644 --- a/Drivers/ili9881c-module/source/module.cpp +++ b/Drivers/ili9881c-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ili9881c_driver; -static const Driver* ili9881c_drivers[] = { +static Driver* const ili9881c_drivers[] = { &ili9881c_driver, nullptr }; diff --git a/Drivers/ina226-module/source/module.cpp b/Drivers/ina226-module/source/module.cpp index 092be9b99..4159cfc76 100644 --- a/Drivers/ina226-module/source/module.cpp +++ b/Drivers/ina226-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver ina226_driver; extern Driver ina226_power_supply_driver; -static const Driver* ina226_drivers[] = { +static Driver* const ina226_drivers[] = { &ina226_driver, &ina226_power_supply_driver, nullptr diff --git a/Drivers/jd9165-module/source/module.cpp b/Drivers/jd9165-module/source/module.cpp index 1a2ee89f6..dd0393a37 100644 --- a/Drivers/jd9165-module/source/module.cpp +++ b/Drivers/jd9165-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver jd9165_driver; -static const Driver* jd9165_drivers[] = { +static Driver* const jd9165_drivers[] = { &jd9165_driver, nullptr }; diff --git a/Drivers/jd9853-module/source/module.cpp b/Drivers/jd9853-module/source/module.cpp index 0522e53c4..5571a427d 100644 --- a/Drivers/jd9853-module/source/module.cpp +++ b/Drivers/jd9853-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver jd9853_driver; -static const Driver* jd9853_drivers[] = { +static Driver* const jd9853_drivers[] = { &jd9853_driver, nullptr }; diff --git a/Drivers/lilygo-module/source/module.cpp b/Drivers/lilygo-module/source/module.cpp index 8090f1658..c68103fd8 100644 --- a/Drivers/lilygo-module/source/module.cpp +++ b/Drivers/lilygo-module/source/module.cpp @@ -9,7 +9,7 @@ extern Driver tdeck_keyboard_backlight_driver; extern Driver tdeck_trackball_driver; extern Driver tpager_encoder_driver; -static const Driver* lilygo_drivers[] = { +static Driver* const lilygo_drivers[] = { &tdeck_keyboard_driver, &tdeck_keyboard_backlight_driver, &tdeck_trackball_driver, diff --git a/Drivers/m5pm1-module/source/module.cpp b/Drivers/m5pm1-module/source/module.cpp index 65fc19903..8ca27f6fc 100644 --- a/Drivers/m5pm1-module/source/module.cpp +++ b/Drivers/m5pm1-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver m5pm1_driver; extern Driver m5pm1_power_supply_driver; -static const Driver* m5pm1_drivers[] = { +static Driver* const m5pm1_drivers[] = { &m5pm1_driver, &m5pm1_power_supply_driver, nullptr diff --git a/Drivers/m5stack-module/source/module.cpp b/Drivers/m5stack-module/source/module.cpp index 1bd4c7ad9..9bd877cab 100644 --- a/Drivers/m5stack-module/source/module.cpp +++ b/Drivers/m5stack-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver cardputer_keyboard_driver; extern Driver cardputer_adv_keyboard_driver; -static const Driver* m5stack_drivers[] = { +static Driver* const m5stack_drivers[] = { &cardputer_keyboard_driver, &cardputer_adv_keyboard_driver, nullptr diff --git a/Drivers/mpu6886-module/source/module.cpp b/Drivers/mpu6886-module/source/module.cpp index 05f41aeac..99b530f09 100644 --- a/Drivers/mpu6886-module/source/module.cpp +++ b/Drivers/mpu6886-module/source/module.cpp @@ -6,25 +6,11 @@ extern "C" { extern Driver mpu6886_driver; -static const Driver* mpu6886_drivers[] = { +static Driver* const mpu6886_drivers[] = { &mpu6886_driver, nullptr }; -static error_t start() { - /* We crash when construct fails, because if a single driver fails to construct, - * there is no guarantee that the previously constructed drivers can be destroyed */ - check(driver_construct_add(&mpu6886_driver) == ERROR_NONE); - return ERROR_NONE; -} - -static error_t stop() { - /* We crash when destruct fails, because if a single driver fails to destruct, - * there is no guarantee that the previously destroyed drivers can be recovered */ - check(driver_remove_destruct(&mpu6886_driver) == ERROR_NONE); - return ERROR_NONE; -} - extern const ModuleSymbol mpu6886_module_symbols[]; Module mpu6886_module = { diff --git a/Drivers/pdm-mic-module/source/module.cpp b/Drivers/pdm-mic-module/source/module.cpp index a64412372..76ade6a1f 100644 --- a/Drivers/pdm-mic-module/source/module.cpp +++ b/Drivers/pdm-mic-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver pdm_mic_driver; -static const Driver* pdm_mic_drivers[] = { +static Driver* const pdm_mic_drivers[] = { &pdm_mic_driver, nullptr }; diff --git a/Drivers/pi4ioe5v6408-module/source/module.cpp b/Drivers/pi4ioe5v6408-module/source/module.cpp index a3a6234b5..b13d61fa4 100644 --- a/Drivers/pi4ioe5v6408-module/source/module.cpp +++ b/Drivers/pi4ioe5v6408-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver pi4ioe5v6408_driver; -static const Driver* pi4ioe5v6408_drivers[] = { +static Driver* const pi4ioe5v6408_drivers[] = { &pi4ioe5v6408_driver, nullptr }; diff --git a/Drivers/py32ioexpander-module/source/module.cpp b/Drivers/py32ioexpander-module/source/module.cpp index 90daf059c..cc26ee12c 100644 --- a/Drivers/py32ioexpander-module/source/module.cpp +++ b/Drivers/py32ioexpander-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver py32ioexpander_driver; -static const Driver* py32ioexpander_drivers[] = { +static Driver* const py32ioexpander_drivers[] = { &py32ioexpander_driver, nullptr }; diff --git a/Drivers/qmi8658-module/source/module.cpp b/Drivers/qmi8658-module/source/module.cpp index 48ff9e51d..6f365a63d 100644 --- a/Drivers/qmi8658-module/source/module.cpp +++ b/Drivers/qmi8658-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver qmi8658_driver; -static const Driver* qmi8658_drivers[] = { +static Driver* const qmi8658_drivers[] = { &qmi8658_driver, nullptr }; diff --git a/Drivers/rgb-display-module/source/module.cpp b/Drivers/rgb-display-module/source/module.cpp index 97a26cb32..537bc2e1a 100644 --- a/Drivers/rgb-display-module/source/module.cpp +++ b/Drivers/rgb-display-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver rgb_display_driver; -static const Driver* rgbd_display_drivers[] = { +static Driver* const rgbd_display_drivers[] = { &rgb_display_driver, nullptr }; diff --git a/Drivers/rx8130ce-module/source/module.cpp b/Drivers/rx8130ce-module/source/module.cpp index ff732acda..cf3ffaa71 100644 --- a/Drivers/rx8130ce-module/source/module.cpp +++ b/Drivers/rx8130ce-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver rx8130ce_driver; -static const Driver* rx8130ce_drivers[] = { +static Driver* const rx8130ce_drivers[] = { &rx8130ce_driver, nullptr }; diff --git a/Drivers/sc2356-module/source/module.cpp b/Drivers/sc2356-module/source/module.cpp index 46f2cde93..c82bc9281 100644 --- a/Drivers/sc2356-module/source/module.cpp +++ b/Drivers/sc2356-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver sc2356_driver; -static const Driver* sc2356_drivers[] = { +static Driver* const sc2356_drivers[] = { &sc2356_driver, nullptr }; diff --git a/Drivers/ssd1306-module/source/module.cpp b/Drivers/ssd1306-module/source/module.cpp index 6f3158eaa..8e15db551 100644 --- a/Drivers/ssd1306-module/source/module.cpp +++ b/Drivers/ssd1306-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver ssd1306_driver; -static const Driver* ssd1306_drivers[] = { +static Driver* const ssd1306_drivers[] = { &ssd1306_driver, nullptr }; diff --git a/Drivers/st7123-module/source/module.cpp b/Drivers/st7123-module/source/module.cpp index c8e62e1b6..d5da2da00 100644 --- a/Drivers/st7123-module/source/module.cpp +++ b/Drivers/st7123-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver st7123_driver; extern Driver st7123_touch_driver; -static const Driver* st7123_drivers[] = { +static Driver* const st7123_drivers[] = { &st7123_driver, &st7123_touch_driver, nullptr diff --git a/Drivers/st7701-module/source/module.cpp b/Drivers/st7701-module/source/module.cpp index 87099b5bd..3428bb650 100644 --- a/Drivers/st7701-module/source/module.cpp +++ b/Drivers/st7701-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7701_driver; -static const Driver* st7701_drivers[] = { +static Driver* const st7701_drivers[] = { &st7701_driver, nullptr }; diff --git a/Drivers/st7735-module/source/module.cpp b/Drivers/st7735-module/source/module.cpp index 118ee3ba5..a65b0fdb2 100644 --- a/Drivers/st7735-module/source/module.cpp +++ b/Drivers/st7735-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7735_driver; -static const Driver* st7735_drivers[] = { +static Driver* const st7735_drivers[] = { &st7735_driver, nullptr }; diff --git a/Drivers/st7789-i8080-module/source/module.cpp b/Drivers/st7789-i8080-module/source/module.cpp index 19bccac96..335451a97 100644 --- a/Drivers/st7789-i8080-module/source/module.cpp +++ b/Drivers/st7789-i8080-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7789_i8080_driver; -static const Driver* st7789_i8080_drivers[] = { +static Driver* const st7789_i8080_drivers[] = { &st7789_i8080_driver, nullptr }; diff --git a/Drivers/st7789-module/source/module.cpp b/Drivers/st7789-module/source/module.cpp index df376d492..7d69faefe 100644 --- a/Drivers/st7789-module/source/module.cpp +++ b/Drivers/st7789-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7789_driver; -static const Driver* st7789_drivers[] = { +static Driver* const st7789_drivers[] = { &st7789_driver, nullptr }; diff --git a/Drivers/st7796-i8080-module/source/module.cpp b/Drivers/st7796-i8080-module/source/module.cpp index d499b12e6..fec096c55 100644 --- a/Drivers/st7796-i8080-module/source/module.cpp +++ b/Drivers/st7796-i8080-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7796_i8080_driver; -static const Driver* st7796_i8080_drivers[] = { +static Driver* const st7796_i8080_drivers[] = { &st7796_i8080_driver, nullptr }; diff --git a/Drivers/st7796-module/source/module.cpp b/Drivers/st7796-module/source/module.cpp index 6968ae020..9322efb9b 100644 --- a/Drivers/st7796-module/source/module.cpp +++ b/Drivers/st7796-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver st7796_driver; -static const Driver* st7796_drivers[] = { +static Driver* const st7796_drivers[] = { &st7796_driver, nullptr }; diff --git a/Drivers/sy6970-module/source/module.cpp b/Drivers/sy6970-module/source/module.cpp index 45767ecf8..770bcc0d4 100644 --- a/Drivers/sy6970-module/source/module.cpp +++ b/Drivers/sy6970-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver sy6970_driver; extern Driver sy6970_power_supply_driver; -static const Driver* sy6970_drivers[] = { +static Driver* const sy6970_drivers[] = { &sy6970_driver, &sy6970_power_supply_driver, nullptr diff --git a/Drivers/tca8418-module/source/module.cpp b/Drivers/tca8418-module/source/module.cpp index 2efa8db00..7ae1c09c4 100644 --- a/Drivers/tca8418-module/source/module.cpp +++ b/Drivers/tca8418-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver tca8418_driver; -static const Driver* tca8418_drivers[] = { +static Driver* const tca8418_drivers[] = { &tca8418_driver, nullptr }; diff --git a/Drivers/tca9534-module/source/module.cpp b/Drivers/tca9534-module/source/module.cpp index 92aee836c..74cf0204b 100644 --- a/Drivers/tca9534-module/source/module.cpp +++ b/Drivers/tca9534-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver tca9534_driver; -static const Driver* tca9534_drivers[] = { +static Driver* const tca9534_drivers[] = { &tca9534_driver, nullptr }; diff --git a/Drivers/tca95xx-16bit-module/source/module.cpp b/Drivers/tca95xx-16bit-module/source/module.cpp index ab8de36f4..5c8d2b0d9 100644 --- a/Drivers/tca95xx-16bit-module/source/module.cpp +++ b/Drivers/tca95xx-16bit-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver tca95xx_driver; -static const Driver* tca95xx_drivers[] = { +static Driver* const tca95xx_drivers[] = { &tca95xx_driver, nullptr }; diff --git a/Drivers/xl9555-module/source/module.cpp b/Drivers/xl9555-module/source/module.cpp index b46726b71..a87b92bfb 100644 --- a/Drivers/xl9555-module/source/module.cpp +++ b/Drivers/xl9555-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver xl9555_driver; -static const Driver* xl9555_drivers[] = { +static Driver* const xl9555_drivers[] = { &xl9555_driver, nullptr }; diff --git a/Drivers/xpt2046-module/source/module.cpp b/Drivers/xpt2046-module/source/module.cpp index f54432903..782d1a581 100644 --- a/Drivers/xpt2046-module/source/module.cpp +++ b/Drivers/xpt2046-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver xpt2046_driver; extern Driver xpt2046_power_supply_driver; -static const Driver* xpt2046_drivers[] = { +static Driver* const xpt2046_drivers[] = { &xpt2046_driver, &xpt2046_power_supply_driver, nullptr diff --git a/Drivers/xpt2046-softspi-module/source/module.cpp b/Drivers/xpt2046-softspi-module/source/module.cpp index 974bf7004..43ac4b845 100644 --- a/Drivers/xpt2046-softspi-module/source/module.cpp +++ b/Drivers/xpt2046-softspi-module/source/module.cpp @@ -7,7 +7,7 @@ extern "C" { extern Driver xpt2046_softspi_driver; extern Driver xpt2046_softspi_power_supply_driver; -static const Driver* xpt2046_softspi_drivers[] = { +static Driver* const xpt2046_softspi_drivers[] = { &xpt2046_softspi_driver, &xpt2046_softspi_power_supply_driver, nullptr diff --git a/Modules/hal-device-module/source/module.cpp b/Modules/hal-device-module/source/module.cpp index df3de8161..4aef46661 100644 --- a/Modules/hal-device-module/source/module.cpp +++ b/Modules/hal-device-module/source/module.cpp @@ -6,7 +6,7 @@ extern "C" { extern Driver hal_device_driver; -static const Driver* hal_device_drivers[] = { +static Driver* const hal_device_drivers[] = { &hal_device_driver, nullptr }; diff --git a/TactilityKernel/include/tactility/module.h b/TactilityKernel/include/tactility/module.h index ede109795..339ae7f53 100644 --- a/TactilityKernel/include/tactility/module.h +++ b/TactilityKernel/include/tactility/module.h @@ -57,7 +57,7 @@ struct Module { * When the module is started, these drivers are constructed and added to the module. * When the module is stopped, these drivers are removed from the module and destroyed. */ - const struct Driver** drivers; + struct Driver* const* drivers; /** * A list of symbols exported by the module. * Should be terminated by MODULE_SYMBOL_TERMINATOR. diff --git a/TactilityKernel/source/module.cpp b/TactilityKernel/source/module.cpp index dc9a0962a..e4ca7a650 100644 --- a/TactilityKernel/source/module.cpp +++ b/TactilityKernel/source/module.cpp @@ -70,7 +70,7 @@ error_t module_start(Module* module) { auto* driver_location = module->drivers; while (*driver_location != nullptr) { auto driver = *driver_location; - driver_construct_add(driver); + check(driver_construct_add(driver) == ERROR_NONE); driver_location++; } } @@ -92,11 +92,12 @@ error_t module_stop(Module* module) { if (!internal->started) return ERROR_NONE; if (module->drivers != nullptr) { - auto* driver_location = module->drivers; - while (*driver_location != nullptr) { - auto driver = *driver_location; - driver_remove_destruct(driver); - driver_location++; + size_t count = 0; + while (module->drivers[count] != nullptr) { + count++; + } + for (size_t i = count; i-- > 0;) { + check(driver_remove_destruct(module->drivers[i]) == ERROR_NONE); } } @@ -105,7 +106,6 @@ error_t module_stop(Module* module) { if (error != ERROR_NONE) { return error; } - } internal->started = false;