diff --git a/flight/Modules/AHRSComms/ahrs_comms.c b/flight/Modules/AHRSComms/ahrs_comms.c index 69885270f..0c98969e3 100644 --- a/flight/Modules/AHRSComms/ahrs_comms.c +++ b/flight/Modules/AHRSComms/ahrs_comms.c @@ -88,7 +88,7 @@ int32_t AHRSCommsInitialize(void) return 0; } -MODULE_INITCALL(AHRSCommsInitialize, 0, AHRSCommsStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(AHRSCommsInitialize, AHRSCommsStart) /** * Module thread, should not return. diff --git a/flight/Modules/Actuator/actuator.c b/flight/Modules/Actuator/actuator.c index 94a17ccfa..269b9dda6 100644 --- a/flight/Modules/Actuator/actuator.c +++ b/flight/Modules/Actuator/actuator.c @@ -116,7 +116,7 @@ int32_t ActuatorInitialize() return 0; } -MODULE_INITCALL(ActuatorInitialize, 0, ActuatorStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(ActuatorInitialize, ActuatorStart) /** * @brief Main Actuator module task diff --git a/flight/Modules/Altitude/altitude.c b/flight/Modules/Altitude/altitude.c index d7a026f1e..363cba15f 100644 --- a/flight/Modules/Altitude/altitude.c +++ b/flight/Modules/Altitude/altitude.c @@ -90,7 +90,7 @@ int32_t AltitudeInitialize() return 0; } -MODULE_INITCALL(AltitudeInitialize, 0, AltitudeStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(AltitudeInitialize, AltitudeStart) /** * Module thread, should not return. */ diff --git a/flight/Modules/Attitude/attitude.c b/flight/Modules/Attitude/attitude.c index 0f6b13a19..87daf3c52 100644 --- a/flight/Modules/Attitude/attitude.c +++ b/flight/Modules/Attitude/attitude.c @@ -147,7 +147,7 @@ int32_t AttitudeInitialize(void) return 0; } -MODULE_INITCALL(AttitudeInitialize, 0, AttitudeStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(AttitudeInitialize, AttitudeStart) /** * Module thread, should not return. diff --git a/flight/Modules/Battery/battery.c b/flight/Modules/Battery/battery.c index 19112bd13..fe36745bb 100644 --- a/flight/Modules/Battery/battery.c +++ b/flight/Modules/Battery/battery.c @@ -75,7 +75,8 @@ static void onTimer(UAVObjEvent* ev); * Initialise the module, called on startup * \returns 0 on success or -1 if initialisation failed */ -MODULE_INITCALL(BatteryInitialize, 0, 0, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(BatteryInitialize, 0) + int32_t BatteryInitialize(void) { static UAVObjEvent ev; diff --git a/flight/Modules/Example/example.c b/flight/Modules/Example/example.c index 8b2761616..d50809415 100644 --- a/flight/Modules/Example/example.c +++ b/flight/Modules/Example/example.c @@ -59,4 +59,4 @@ void ExampleInitialize(void) { ExampleModEventInitialize(); } -MODULE_INITCALL(ExampleInitialize, 0, ExampleStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(ExampleInitialize, ExampleStart) diff --git a/flight/Modules/FirmwareIAP/firmwareiap.c b/flight/Modules/FirmwareIAP/firmwareiap.c index b00099ff8..e3372019c 100644 --- a/flight/Modules/FirmwareIAP/firmwareiap.c +++ b/flight/Modules/FirmwareIAP/firmwareiap.c @@ -88,7 +88,7 @@ static void resetTask(UAVObjEvent *); * \note * */ -MODULE_INITCALL(FirmwareIAPInitialize, 0, 0, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(FirmwareIAPInitialize, 0) int32_t FirmwareIAPInitialize() { const struct pios_board_info * bdinfo = &pios_board_info_blob; diff --git a/flight/Modules/FlightPlan/flightplan.c b/flight/Modules/FlightPlan/flightplan.c index 16f454f5d..5537c8f15 100644 --- a/flight/Modules/FlightPlan/flightplan.c +++ b/flight/Modules/FlightPlan/flightplan.c @@ -86,7 +86,7 @@ int32_t FlightPlanInitialize() return 0; } -MODULE_INITCALL(FlightPlanInitialize, 0, FlightPlanStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(FlightPlanInitialize, FlightPlanStart) /** * Module task */ diff --git a/flight/Modules/GPS/GPS.c b/flight/Modules/GPS/GPS.c index 022731155..163c3f577 100644 --- a/flight/Modules/GPS/GPS.c +++ b/flight/Modules/GPS/GPS.c @@ -129,7 +129,7 @@ int32_t GPSInitialize(void) return 0; } -MODULE_INITCALL(GPSInitialize, 0, GPSStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(GPSInitialize, GPSStart) // **************** /** diff --git a/flight/Modules/Guidance/guidance.c b/flight/Modules/Guidance/guidance.c index cad7c3e50..348210675 100644 --- a/flight/Modules/Guidance/guidance.c +++ b/flight/Modules/Guidance/guidance.c @@ -105,7 +105,7 @@ int32_t GuidanceInitialize() return 0; } -MODULE_INITCALL(GuidanceInitialize, 0, GuidanceStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(GuidanceInitialize, GuidanceStart) static float northVelIntegral = 0; static float eastVelIntegral = 0; diff --git a/flight/Modules/ManualControl/manualcontrol.c b/flight/Modules/ManualControl/manualcontrol.c index 7f6088b0f..4d5b3af02 100644 --- a/flight/Modules/ManualControl/manualcontrol.c +++ b/flight/Modules/ManualControl/manualcontrol.c @@ -112,7 +112,7 @@ int32_t ManualControlInitialize() return 0; } -MODULE_INITCALL(ManualControlInitialize, 0, ManualControlStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(ManualControlInitialize, ManualControlStart) /** * Module task diff --git a/flight/Modules/Stabilization/stabilization.c b/flight/Modules/Stabilization/stabilization.c index 024dd5585..665c0188c 100644 --- a/flight/Modules/Stabilization/stabilization.c +++ b/flight/Modules/Stabilization/stabilization.c @@ -129,7 +129,7 @@ int32_t StabilizationInitialize() return 0; } -MODULE_INITCALL(StabilizationInitialize, 0, StabilizationStart, 0, MODULE_EXEC_NOORDER_FLAG) +MODULE_INITCALL(StabilizationInitialize, StabilizationStart) /** * Module task diff --git a/flight/Modules/System/systemmod.c b/flight/Modules/System/systemmod.c index 2c3d9de48..f555d227f 100644 --- a/flight/Modules/System/systemmod.c +++ b/flight/Modules/System/systemmod.c @@ -111,7 +111,7 @@ int32_t SystemModInitialize(void) return 0; } -MODULE_INITCALL(SystemModInitialize, 0, 0, 0, MODULE_EXEC_FIRST_FLAG) +MODULE_INITCALL(SystemModInitialize, 0) /** * System task, periodically executes every SYSTEM_UPDATE_PERIOD_MS */ diff --git a/flight/Modules/Telemetry/telemetry.c b/flight/Modules/Telemetry/telemetry.c index c711a9151..ad0e39278 100644 --- a/flight/Modules/Telemetry/telemetry.c +++ b/flight/Modules/Telemetry/telemetry.c @@ -143,7 +143,7 @@ int32_t TelemetryInitialize(void) return 0; } -MODULE_INITCALL(TelemetryInitialize, 0, TelemetryStart, 0, MODULE_EXEC_LAST_FLAG) +MODULE_INITCALL(TelemetryInitialize, TelemetryStart) /** * Register a new object, adds object to local list and connects the queue depending on the object's diff --git a/flight/PiOS/inc/pios_initcall.h b/flight/PiOS/inc/pios_initcall.h index 041a7c1d5..68b9ef077 100644 --- a/flight/PiOS/inc/pios_initcall.h +++ b/flight/PiOS/inc/pios_initcall.h @@ -41,16 +41,10 @@ /* * Used for initialization calls.. */ -#define MODULE_EXEC_NOORDER_FLAG 0xFA000000 -#define MODULE_EXEC_FIRST_FLAG 0xFA000001 -#define MODULE_EXEC_LAST_FLAG 0xFA000002 typedef int32_t (*initcall_t)(void); typedef struct { - uint32_t flag; - uint32_t param_minit; initcall_t fn_minit; - uint32_t param_tinit; initcall_t fn_tinit; } initmodule_t; @@ -69,26 +63,20 @@ extern initmodule_t __module_initcall_start[], __module_initcall_end[]; static initcall_t __initcall_##fn##id __attribute__((__used__)) \ __attribute__((__section__(".initcall" level ".init"))) = fn -#define __define_module_initcall(level,ifn,iparam,sfn,sparam, param) \ +#define __define_module_initcall(level, ifn, sfn) \ static initmodule_t __initcall_##fn __attribute__((__used__)) \ - __attribute__((__section__(".initcall" level ".init"))) = { .flag = param, .param_minit = iparam, .fn_minit = ifn, .param_tinit = sparam, .fn_tinit = sfn }; + __attribute__((__section__(".initcall" level ".init"))) = { .fn_minit = ifn, .fn_tinit = sfn }; #define UAVOBJ_INITCALL(fn) __define_initcall("uavobj",fn,1) -#define MODULE_INITCALL(ifn, iparam, sfn, sparam, flags) __define_module_initcall("module", ifn, iparam, sfn, sparam, flags) +#define MODULE_INITCALL(ifn, sfn) __define_module_initcall("module", ifn, sfn) #define MODULE_INITIALISE_ALL { for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) \ - if (fn->fn_minit && ( (fn->flag & MODULE_EXEC_FIRST_FLAG) == MODULE_EXEC_FIRST_FLAG) ) \ - (fn->fn_minit)(); \ - for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) \ - if (fn->fn_minit && ( (fn->flag & (MODULE_EXEC_LAST_FLAG | MODULE_EXEC_FIRST_FLAG)) == MODULE_EXEC_NOORDER_FLAG) ) \ - (fn->fn_minit)(); \ - for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) \ - if (fn->fn_minit && ( (fn->flag & MODULE_EXEC_LAST_FLAG) == MODULE_EXEC_LAST_FLAG) ) \ - (fn->fn_minit)(); } + if (fn->fn_minit) \ + (fn->fn_minit)(); } #define MODULE_TASKCREATE_ALL { for (initmodule_t *fn = __module_initcall_start; fn < __module_initcall_end; fn++) \ - if (fn->fn_tinit) \ - (fn->fn_tinit)(); } + if (fn->fn_tinit) \ + (fn->fn_tinit)(); } #endif /* PIOS_INITCALL_H */