Ejemplo n.º 1
0
static void ril_network_state_change(struct ril_msg *message, gpointer user_data)
{
	struct ofono_netreg *netreg = user_data;
	struct netreg_data *nd = ofono_netreg_get_data(netreg);
	struct cb_data *cbd = cb_data_new(ril_creg_notify, netreg);
	int request = RIL_REQUEST_VOICE_REGISTRATION_STATE;
	int ret;

	cbd->user = nd;

	if (message->req != RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED)
		goto error;

	g_ril_print_unsol_no_args(nd->ril, message);

	ret = g_ril_send(nd->ril, request, NULL,
				0, ril_creg_cb, cbd, g_free);

	/* For operator update ofono will use the current_operator cb
	 * so we don't need to probe ril here */

	g_ril_print_request_no_args(nd->ril, ret, request);

	if (ret > 0)
		return;

error:
	ofono_error("Unable to request network state changed");
	g_free(cbd);
}
Ejemplo n.º 2
0
static void ril_gprs_registration_status(struct ofono_gprs *gprs,
					ofono_gprs_status_cb_t cb,
					void *data)
{
	struct gprs_data *gd = ofono_gprs_get_data(gprs);
	struct cb_data *cbd = cb_data_new(cb, data);
	int request = RIL_REQUEST_DATA_REGISTRATION_STATE;
	guint ret;

	DBG("");

	if (gd == NULL || cbd == NULL)
		return;

	cbd->user = gprs;

	ret = g_ril_send(gd->ril, request,
				NULL, 0,
				((gd->rild_status == -1)
				? ril_data_probe_reg_cb
				: ril_data_reg_cb), cbd, g_free);

	g_ril_print_request_no_args(gd->ril, ret, request);

	if (ret <= 0) {
		ofono_error("Send RIL_REQUEST_DATA_RESTISTRATION_STATE fail.");
		g_free(cbd);

		if (cb)
			CALLBACK_WITH_FAILURE(cb, -1, data);
	}
}
Ejemplo n.º 3
0
Archivo: stk.c Proyecto: CODeRUS/ofono
static void ril_stk_agent_ready(struct ofono_stk *stk)
{
	struct stk_data *sd = ofono_stk_get_data(stk);
	int request = RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING;
	int ret;

	DBG("");

	if (!subscribed) {
		DBG("Subscribing notifications");
		g_ril_register(sd->ril, RIL_UNSOL_STK_PROACTIVE_COMMAND,
				ril_stk_pcmd_notify, stk);

		g_ril_register(sd->ril, RIL_UNSOL_STK_SESSION_END,
				ril_stk_session_end_notify, stk);

		g_ril_register(sd->ril, RIL_UNSOL_STK_EVENT_NOTIFY,
				ril_stk_event_notify, stk);
		subscribed = TRUE;
	}

	/* fire and forget i.e. not waiting for the callback*/
	ret = g_ril_send(sd->ril, request, NULL, 0,
		 NULL, NULL, NULL);

	g_ril_print_request_no_args(sd->ril, ret, request);
}
Ejemplo n.º 4
0
Archivo: stk.c Proyecto: CODeRUS/ofono
static void ril_stk_user_confirmation(struct ofono_stk *stk,
					ofono_bool_t confirm)
{
	struct stk_data *sd = ofono_stk_get_data(stk);
	struct parcel rilp;
	int request = RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM;
	int ret;

	DBG("");

	/* Only pcmd needing user confirmation is call set up
	 * RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
	 */
	parcel_init(&rilp);
	parcel_w_int32(&rilp, 1);		/* size of array */
	parcel_w_int32(&rilp, confirm);	/* yes/no */

	/* fire and forget i.e. not waiting for the callback*/
	ret = g_ril_send(sd->ril, request, rilp.data,
		 rilp.size, NULL, NULL, NULL);

	g_ril_print_request_no_args(sd->ril, ret, request);

	parcel_free(&rilp);
}
Ejemplo n.º 5
0
static int send_get_sim_status(struct ofono_sim *sim)
{
	struct sim_data *sd = ofono_sim_get_data(sim);
	int request = RIL_REQUEST_GET_SIM_STATUS;
	guint ret;

	ret = g_ril_send(sd->ril, request,
				NULL, 0, sim_status_cb, sim, NULL);

	g_ril_print_request_no_args(sd->ril, ret, request);

	return ret;
}
Ejemplo n.º 6
0
static void ril_query_passwd_state(struct ofono_sim *sim,
					ofono_sim_passwd_cb_t cb, void *data)
{
	struct sim_data *sd = ofono_sim_get_data(sim);
	struct cb_data *cbd = cb_data_new2(sim, cb, data);
	int request = RIL_REQUEST_GET_SIM_STATUS;
	guint ret;

	ret = g_ril_send(sd->ril, request,
			NULL, 0, ril_query_passwd_state_cb, cbd, g_free);

	g_ril_print_request_no_args(sd->ril, ret, request);

}
Ejemplo n.º 7
0
static void ril_register_auto(struct ofono_netreg *netreg,
				ofono_netreg_register_cb_t cb, void *data)
{
	struct netreg_data *nd = ofono_netreg_get_data(netreg);
	struct cb_data *cbd = cb_data_new(cb, data);
	int request = RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC;
	int ret;
	cbd->user = nd;

	ret = g_ril_send(nd->ril, request,
				NULL, 0, ril_register_cb, cbd, g_free);

	g_ril_print_request_no_args(nd->ril, ret, request);

	if (ret <= 0) {
		g_free(cbd);
		CALLBACK_WITH_FAILURE(cb, data);
	}
}
Ejemplo n.º 8
0
static void ril_list_operators(struct ofono_netreg *netreg,
				ofono_netreg_operator_list_cb_t cb, void *data)
{
	struct netreg_data *nd = ofono_netreg_get_data(netreg);
	struct cb_data *cbd = cb_data_new(cb, data);
	int request = RIL_REQUEST_QUERY_AVAILABLE_NETWORKS;
	int ret;

	cbd->user = nd;

	ret = g_ril_send(nd->ril, request, NULL,
				0, ril_cops_list_cb, cbd, g_free);

	g_ril_print_request_no_args(nd->ril, ret, request);

	if (ret <= 0) {
		g_free(cbd);
		CALLBACK_WITH_FAILURE(cb, 0, NULL, data);
	}
}
Ejemplo n.º 9
0
Archivo: ril.c Proyecto: CODeRUS/ofono
static int send_get_sim_status(struct ofono_modem *modem)
{
	struct ril_data *ril = ofono_modem_get_data(modem);
	int request = RIL_REQUEST_GET_SIM_STATUS;
	guint ret;

	ril->timer_id = 0;

	ret = g_ril_send(ril->modem, request,
				NULL, 0, sim_status_cb, modem, NULL);

	g_ril_print_request_no_args(ril->modem, ret, request);

	/*
	 * This function is used as a callback function for
	 * g_timeout_add_seconds therefore we must always return FALSE.
	 * The other place where this is called is from ril_connected but it
	 * doesn't even check the return value.
	 */
	return FALSE;
}
Ejemplo n.º 10
0
static void ril_registration_status(struct ofono_netreg *netreg,
					ofono_netreg_status_cb_t cb,
					void *data)
{
	struct netreg_data *nd = ofono_netreg_get_data(netreg);
	struct cb_data *cbd = cb_data_new(cb, data);
	int request = RIL_REQUEST_VOICE_REGISTRATION_STATE;
	int ret;

	cbd->user = nd;

	ret = g_ril_send(nd->ril, request, NULL,
				0, ril_creg_cb, cbd, g_free);

	g_ril_print_request_no_args(nd->ril, ret, request);

	if (ret <= 0) {
		g_free(cbd);
		CALLBACK_WITH_FAILURE(cb, -1, -1, -1, -1, data);
	}
}
Ejemplo n.º 11
0
static void ril_signal_strength(struct ofono_netreg *netreg,
				ofono_netreg_strength_cb_t cb, void *data)
{
	struct netreg_data *nd = ofono_netreg_get_data(netreg);
	struct cb_data *cbd = cb_data_new(cb, data);
	int request = RIL_REQUEST_SIGNAL_STRENGTH;
	int ret;

	cbd->user = nd;

	ret = g_ril_send(nd->ril, request,
				NULL, 0, ril_strength_cb, cbd, g_free);

	g_ril_print_request_no_args(nd->ril, ret, request);

	if (ret <= 0) {
		ofono_error("Send RIL_REQUEST_SIGNAL_STRENGTH failed.");

		g_free(cbd);
		CALLBACK_WITH_FAILURE(cb, -1, data);
	}
}