Exemplo n.º 1
0
sw_error_t
sw_uk_exec(a_uint32_t api_id, ...)
{
    a_uint32_t value[SW_MAX_API_PARAM] = { 0 };
    a_uint32_t rtn = 0, i;
    va_list arg_ptr;
    a_uint32_t nr_param = 0;

    if((nr_param = sw_api_param_nums(api_id)) == 0) {
        return SW_NOT_SUPPORTED;
    }

    value[0] = api_id;
    value[1] = (a_uint32_t)&rtn;

    va_start(arg_ptr, api_id);
    for (i = 0; i < nr_param; i++) {
        value[i + 2] = va_arg(arg_ptr, a_uint32_t);
    }
    va_end(arg_ptr);

    if (SW_OK != sw_uk_if(value)) {
        return SW_FAIL;
    }
    return rtn;
}
Exemplo n.º 2
0
sw_error_t
sw_api_get(sw_api_t *sw_api)
{
    if(!sw_api)
        return SW_FAIL;

    if ((sw_api->api_fp = sw_api_func_find(sw_api->api_id)) == NULL)
        return SW_NOT_SUPPORTED;

    if ((sw_api->api_pp = sw_api_param_find(sw_api->api_id)) == NULL)
        return SW_NOT_SUPPORTED;

    if((sw_api->api_nr = sw_api_param_nums(sw_api->api_id)) == 0)
        return SW_NOT_SUPPORTED;

    return SW_OK;
}