Example #1
0
void
test_init_log_domain(void)
{
    static bool done = false;

    if (done)
        return;
    sol_log_domain_init_level(&test_log_domain);
    done = true;
}
Example #2
0
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;
}
Example #3
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;
}
Example #4
0
int
sol_blob_init(void)
{
    sol_log_domain_init_level(SOL_LOG_DOMAIN);
    return 0;
}
Example #5
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;
}
Example #6
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 = 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;
}