void test_init_log_domain(void) { static bool done = false; if (done) return; sol_log_domain_init_level(&test_log_domain); done = true; }
int sol_pin_mux_init(void) { sol_log_domain_init_level(SOL_LOG_DOMAIN); if (!sol_pin_mux_select_mux(sol_platform_get_board_name())) { SOL_WRN("Pin Multiplexer found, but failed to be loaded."); return -1; } return 0; }
int sol_update_init(void) { sol_log_domain_init_level(SOL_LOG_DOMAIN); if (!load_update_module()) { SOL_WRN("Could not initialise update module"); return -1; } if (update_module && update_module->init) return update_module->init(); return 0; }
int sol_blob_init(void) { sol_log_domain_init_level(SOL_LOG_DOMAIN); return 0; }
SOL_API int sol_init(void) { int r; _init_count++; if (_init_count > 1) return 0; r = sol_log_init(); if (r < 0) goto log_error; sol_log_domain_init_level(SOL_LOG_DOMAIN); r = mainloop_impl->init(); if (r < 0) goto impl_error; r = sol_platform_init(); if (r < 0) goto platform_error; r = sol_pin_mux_init(); if (r < 0) goto pin_mux_error; r = sol_blob_init(); if (r < 0) goto blob_error; r = sol_crypto_init(); if (r < 0) goto crypto_error; r = sol_flow_init(); if (r < 0) goto flow_error; r = sol_comms_init(); if (r < 0) goto comms_error; r = sol_update_init(); if (r < 0) goto update_error; r = sol_ipm_init(); if (r < 0) goto ipm_error; SOL_DBG("Soletta %s on %s-%s initialized", sol_platform_get_sw_version(), BASE_OS, sol_platform_get_os_version()); return 0; ipm_error: sol_update_shutdown(); update_error: sol_comms_shutdown(); comms_error: sol_flow_shutdown(); flow_error: sol_crypto_shutdown(); crypto_error: sol_blob_shutdown(); blob_error: sol_pin_mux_shutdown(); pin_mux_error: sol_platform_shutdown(); platform_error: mainloop_impl->shutdown(); impl_error: sol_log_shutdown(); log_error: _init_count = 0; return r; }
SOL_API int sol_init(void) { int r; _init_count++; if (_init_count > 1) return 0; r = sol_log_init(); if (r < 0) goto log_error; sol_log_domain_init_level(SOL_LOG_DOMAIN); r = sol_mainloop_impl_init(); if (r < 0) goto impl_error; r = sol_platform_init(); if (r < 0) goto platform_error; r = sol_pin_mux_init(); if (r < 0) goto pin_mux_error; r = sol_blob_init(); if (r < 0) goto blob_error; #ifdef FLOW_SUPPORT r = sol_flow_init(); if (r < 0) goto flow_error; #endif #ifdef NETWORK r = sol_comms_init(); if (r < 0) goto comms_error; #endif SOL_DBG("initialized"); return 0; #ifdef NETWORK comms_error: #endif #ifdef FLOW_SUPPORT sol_flow_shutdown(); flow_error: #endif sol_blob_shutdown(); blob_error: sol_pin_mux_shutdown(); pin_mux_error: sol_platform_shutdown(); platform_error: sol_mainloop_impl_shutdown(); impl_error: sol_log_shutdown(); log_error: _init_count = 0; return r; }