diff --git a/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.c b/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.c index b02ba389..ddce64b5 100644 --- a/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.c +++ b/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.c @@ -33,255 +33,6 @@ struct _MMPortSerialXmmrpcXmm7360Private { guint unsolicited_msg_handlers_i; }; -static void -xmm7360_rpc_msg_arg_free (Xmm7360RpcMsgArg *arg) -{ - if (arg->type == XMM7360_RPC_MSG_ARG_TYPE_STRING) { - g_free ((gchar *) arg->value.string); - } - g_free (arg); -} - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (Xmm7360RpcMsgArg, xmm7360_rpc_msg_arg_free) - -void -xmm7360_rpc_response_free (Xmm7360RpcResponse *response) -{ - if (response) { - g_byte_array_free (response->body, TRUE); - g_ptr_array_free (response->content, TRUE); - g_free (response); - } -} - -#define PARSE_ERROR(fmt, ...) { \ - g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, fmt, __VA_ARGS__); \ -} - -static gint -xmm7360_byte_array_read_asn_int (GByteArray *buf, - gsize offset, - gint *out_val, - Xmm7360RpcMsgArg *out_arg, - GError **error) -{ - const gsize orig_offset = offset; - gint size; - gint bytes_read; - gint val; - - if (buf->len <= offset + 2) { - PARSE_ERROR ("initial buffer size %u too small (need %zu)", - buf->len, offset + 2); - return -1; - } - - /* check ASN start byte and read int size */ - if (buf->data[offset] != 0x02) { - PARSE_ERROR ("unexpected ASN start byte 0x%02X (expected 0x02)", buf->data[offset]); - return -1; - } - offset++; - size = buf->data[offset++]; - - /* read actual value byte by byte */ - if (buf->len < offset + size) { - PARSE_ERROR ("buffer size %u too small (need %zu)", buf->len, offset + size); - return -1; - } - val = 0; - for (bytes_read = 0; bytes_read < size; bytes_read++) { - val <<= 8; - val |= buf->data[offset++]; - } - - if (out_arg) { - if (size == 0x01) { - out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_BYTE; - out_arg->value.b = (gint8) val; - } else if (size == 0x02) { - out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_SHORT; - out_arg->value.s = (gint16) val; - } else { - out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_LONG; - out_arg->value.l = (gint32) val; - } - } - - if (out_val) - *out_val = val; - - /* return bytes consumed by this function */ - return offset - orig_offset; -} - -static gint -xmm7360_byte_array_read_string (GByteArray *buf, - gsize offset, - Xmm7360RpcMsgArg *out_arg, - GError **error) -{ - const gsize orig_offset = offset; - guchar string_type; - gint string_len_padded; - gint pad_len; - gint string_len; - gint consumed; - - if (buf->len < offset + 2) { - PARSE_ERROR ("initial buffer size %u too small (need %zu)", - buf->len, offset + 2); - return -1; - } - - string_type = buf->data[offset++]; - if (string_type != 0x55 && string_type != 0x56 && string_type != 0x57) { - PARSE_ERROR ("unhandled string type 0x%02X", string_type); - return -1; - } - - string_len = buf->data[offset++]; - if (string_len & 0x80) { - guchar bytelen; - guint8 i; - - bytelen = string_len & 0x0f; - if (bytelen > 4) { - PARSE_ERROR ("unhandled string length size 0x%02X", bytelen); - return -1; - } else if (buf->len <= offset + bytelen) { - PARSE_ERROR ("string len buffer size %u too small (need %zu)", - buf->len, offset + bytelen); - return -1; - } - - string_len = 0; - for (i = 0; i < bytelen; i++) - string_len |= buf->data[offset++] << (i * 8); - } - - if (string_type == 0x56) { - /* 0x56 contains 2-byte chars */ - string_len <<= 1; - } else if (string_type == 0x57) { - /* 0x57 contains 4-byte chars */ - string_len <<= 2; - } - - consumed = xmm7360_byte_array_read_asn_int (buf, offset, &string_len_padded, NULL, error); - if (consumed < 0) - return -1; - offset += consumed; - - consumed = xmm7360_byte_array_read_asn_int (buf, offset, &pad_len, NULL, error); - if (consumed < 0) - return -1; - offset += consumed; - - if (string_len_padded > 0) { - if (string_len_padded != string_len + pad_len) { - PARSE_ERROR ("padded string len %u mismatch (expected %u)", - string_len_padded, string_len + pad_len); - return -1; - } - } else { - string_len_padded = string_len + pad_len; - } - - /* make sure the buffer is large enough */ - if (buf->len < offset + string_len_padded) { - PARSE_ERROR ("padded string len buffer size %u too small (need %zu)", - buf->len, offset + string_len_padded); - return -1; - } - - /* copy the result */ - if (out_arg) { - out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_STRING; - /* Copy the bare string without padding */ - out_arg->value.string = g_memdup (buf->data + offset, string_len); - out_arg->size = string_len; - } - - /* return bytes consumed by this function */ - return offset + string_len_padded - orig_offset; -} - - -void -xmm7360_byte_array_append_asn_int4 (GByteArray *buf, gint32 value) -{ - gint32 value_be = GINT32_TO_BE (value); - g_byte_array_append (buf, (const guint8 *) "\x02\x04", 2); - g_byte_array_append (buf, (const guint8 *) &value_be, 4); -} - -static void -xmm7360_byte_array_append_uint8 (GByteArray *buf, gulong val) -{ - guint8 _val = (guint8) val; - g_byte_array_append (buf, &_val, 1); -} - -static void -xmm7360_byte_array_append_string (GByteArray *buf, - const guint8 *data, - gsize data_len, - guint data_len_padded) -{ - gsize i; - gsize pad_len; - - g_assert (data_len_padded >= data_len); - pad_len = data_len_padded - data_len; - - /* only support 1-byte element size */ - xmm7360_byte_array_append_uint8 (buf, 0x55); - - if (data_len < 0x80) { - xmm7360_byte_array_append_uint8 (buf, data_len); - } else { - guchar bytelen = 0x80; - /* write dummy first byte (updated later) */ - xmm7360_byte_array_append_uint8 (buf, bytelen); - for (i = data_len; i > 0; i >>= 8) { - bytelen++; - xmm7360_byte_array_append_uint8 (buf, i & 0xff); - } - /* update first byte */ - buf->data[buf->len - 1 - (bytelen & 0x7f)] = bytelen; - } - - xmm7360_byte_array_append_asn_int4 (buf, data_len_padded); - xmm7360_byte_array_append_asn_int4 (buf, pad_len); - g_byte_array_append (buf, data, data_len); - for (i = 0; i < pad_len; i++) { - xmm7360_byte_array_append_uint8 (buf, 0); - } -} - -static GString * -xmm7360_byte_array_hexlify (GByteArray *buf) { - GString *string; - gsize i; - - string = g_string_sized_new (2 * buf->len + 1); - for (i = 0; i < buf->len; i++) { - g_string_append_printf (string, "%02x", buf->data[i]); - } - g_string_append (string, ""); - - /* truncate very long strings to avoid overly verbose logs */ - if (string->len > 64) { - gsize string_len; - string_len = string->len; - g_string_truncate (string, 48); - g_string_append_printf (string, "... (%" G_GSIZE_FORMAT " chars)", string_len); - } - - return string; -} - static void xmm7360_byte_array_log (gpointer obj, const gchar *prefix, GByteArray *buf) { @@ -292,46 +43,6 @@ xmm7360_byte_array_log (gpointer obj, const gchar *prefix, GByteArray *buf) g_string_free (hexlified, TRUE); } -static GString * -xmm7360_rpc_args_to_string (GPtrArray *args) -{ - guint i; - GString *result; - Xmm7360RpcMsgArg *arg; - gint16 arg_value_short; - gint32 arg_value_long; - - result = g_string_new (""); - - for (i = 0; i < args->len; i++) { - arg = (Xmm7360RpcMsgArg *) g_ptr_array_index (args, i); - if (i > 0) { - g_string_append (result, " "); - } - switch (arg->type) { - case XMM7360_RPC_MSG_ARG_TYPE_BYTE: - g_string_append_printf (result, "B(0x%02x)", arg->value.b); - break; - case XMM7360_RPC_MSG_ARG_TYPE_SHORT: - arg_value_short = GINT16_TO_BE (arg->value.s); - g_string_append_printf (result, "S(0x%04x)", arg_value_short); - break; - case XMM7360_RPC_MSG_ARG_TYPE_LONG: - arg_value_long = GINT32_TO_BE (arg->value.l); - g_string_append_printf (result, "L(0x%08x)", arg_value_long); - break; - case XMM7360_RPC_MSG_ARG_TYPE_STRING: - g_string_append_printf (result, "STR(size=%" G_GSIZE_FORMAT ")", arg->size); - break; - case XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN: - default: - g_assert_not_reached (); - } - } - - return result; -} - static void xmm7360_rpc_msg_args_log (gpointer obj, const gchar *prefix, GPtrArray *args) { @@ -349,221 +60,6 @@ xmm7360_rpc_msg_args_log (gpointer obj, const gchar *prefix, GPtrArray *args) g_string_free (args_string, TRUE); } -GByteArray * -xmm7360_rpc_args_to_byte_array (const Xmm7360RpcMsgArg *args) -{ - GByteArray *result; - gint16 arg_value_short; - gint32 arg_value_long; - - if (args == NULL) - return NULL; - - result = g_byte_array_new (); - for (; args->type != XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN; args++) { - switch (args->type) { - case XMM7360_RPC_MSG_ARG_TYPE_BYTE: - g_byte_array_append (result, (guint8[]) { 0x02, 0x01 }, 2); - g_byte_array_append (result, (guint8 *) &(args->value.b), 1); - break; - case XMM7360_RPC_MSG_ARG_TYPE_SHORT: - arg_value_short = GINT16_TO_BE (args->value.s); - g_byte_array_append (result, (guint8[]) { 0x02, 0x02 }, 2); - g_byte_array_append (result, (guint8 *) &arg_value_short, 2); - break; - case XMM7360_RPC_MSG_ARG_TYPE_LONG: - arg_value_long = GINT32_TO_BE (args->value.l); - g_byte_array_append (result, (guint8[]) { 0x02, 0x04 }, 2); - g_byte_array_append (result, (guint8 *) &arg_value_long, 4); - break; - case XMM7360_RPC_MSG_ARG_TYPE_STRING: - xmm7360_byte_array_append_string (result, - (const guint8 *) args->value.string, - args->size, - args->size + args->pad); - break; - case XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN: - default: - /* should be unreachable */ - return NULL; - } - } - return result; -} - -static GByteArray * -xmm7360_command_to_byte_array (Xmm7360RpcCallId callid, - gboolean is_async, - GByteArray *body) -{ - GByteArray *buf; - gint32 tid; - gint32 tid_word; - gint32 tid_word_be; - guint32 total_len; - - buf = g_byte_array_sized_new (22); - - if (body == NULL) { - body = g_byte_array_new (); - xmm7360_byte_array_append_asn_int4 (body, 0); - } else { - g_byte_array_ref (body); - } - - if (is_async) { - tid = 0x11000101; - } else { - tid = 0; - } - tid_word = 0x11000100 | tid; - - total_len = body->len + 16; - if (tid) { - total_len += 6; - } - g_byte_array_append (buf, (const guint8 *) &total_len, 4); - xmm7360_byte_array_append_asn_int4 (buf, total_len); - xmm7360_byte_array_append_asn_int4 (buf, callid); - tid_word_be = GINT32_TO_BE (tid_word); - g_byte_array_append (buf, (const guint8 *) &tid_word_be, 4); - if (tid) { - xmm7360_byte_array_append_asn_int4 (buf, tid); - } - - g_assert (total_len == buf->len + body->len - 4); - g_byte_array_append (buf, (const guint8 *) body->data, body->len); - g_byte_array_unref (body); - - return buf; -} - -static gboolean -xmm7360_rpc_msg_body_unpack (GByteArray *buf, GPtrArray *args, GError **error) -{ - gsize offset; - gint consumed; - - g_assert (buf != NULL && args != NULL); - - offset = 0; - while (offset < buf->len) { - g_autoptr(Xmm7360RpcMsgArg) arg = NULL; - - arg = g_new0 (Xmm7360RpcMsgArg, 1); - arg->size = 0; - switch (buf->data[offset]) { - case 0x02: - consumed = xmm7360_byte_array_read_asn_int (buf, - offset, - NULL, - arg, - error); - if (consumed < 0) - return FALSE; - offset += consumed; - break; - case 0x55: - case 0x56: - case 0x57: - arg->type = XMM7360_RPC_MSG_ARG_TYPE_STRING; - consumed = xmm7360_byte_array_read_string (buf, - offset, - arg, - error); - if (consumed < 0) - return FALSE; - offset += consumed; - break; - default: - arg->type = XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN; - PARSE_ERROR ("Unknown type 0x%x", buf->data[offset]); - return FALSE; - } - g_ptr_array_add (args, g_steal_pointer (&arg)); - } - - return TRUE; -} - -static Xmm7360RpcResponse * -parse_response_xmm7360 (GByteArray *buf, GError **error) -{ - g_autoptr(Xmm7360RpcResponse) response = NULL; - gsize offset; - gint consumed; - gint asn_msg_len = 0; - gint unsol_id = 0; - - /* first 20 bytes are format header: - * message size ( int32, 4) - * message size (again!) (asn int, 6) - * unsolicited message id (asn int, 6) - * transmission id ( int32, 4) - */ - if (buf->len <= 20) { - PARSE_ERROR ("error parsing RPC message: message size %u too short", buf->len); - return NULL; - } - - /* Read and validate the ASN message size */ - offset = 4; - consumed = xmm7360_byte_array_read_asn_int (buf, offset, &asn_msg_len, NULL, error); - if (consumed < 0) - return NULL; - offset += consumed; - /* Make sure the ASN message size and message size agree */ - if (*(gint32 *) buf->data != asn_msg_len) { - PARSE_ERROR ("error parsing RPC message: length mismatch (buf %d != asn %d)", - *(gint32 *) buf->data, asn_msg_len); - return NULL; - } - - consumed = xmm7360_byte_array_read_asn_int (buf, offset, &unsol_id, NULL, error); - if (consumed < 0) - return NULL; - offset += consumed; - - /* initialize all fields of the response */ - response = g_new0 (Xmm7360RpcResponse, 1); - response->id = GINT32_FROM_BE (*(gint32 *) (buf->data + 16)); - response->type = XMM7360_RPC_RESPONSE_TYPE_UNKNOWN; - response->unsol_id = unsol_id; - response->body = g_byte_array_new (); - response->content = g_ptr_array_new_with_free_func ((GDestroyNotify)xmm7360_rpc_msg_arg_free); - - g_byte_array_append (response->body, &buf->data[20], buf->len - 20); - if (!xmm7360_rpc_msg_body_unpack (response->body, response->content, error)) - return NULL; - - if (response->id == 0x11000100) { - response->type = XMM7360_RPC_RESPONSE_TYPE_RESPONSE; - } else if ((response->id & 0xffffff00) == 0x11000100) { - if (response->unsol_id >= 0x7d0) { - response->type = XMM7360_RPC_RESPONSE_TYPE_ASYNC_ACK; - } else { - Xmm7360RpcMsgArg *arg; - - response->type = XMM7360_RPC_RESPONSE_TYPE_RESPONSE; - - /* discard first element in content (equals transmission id) */ - arg = (Xmm7360RpcMsgArg *) g_ptr_array_index (response->content, 0); - if (arg->type != XMM7360_RPC_MSG_ARG_TYPE_LONG - || (guint32) XMM7360_RPC_MSG_ARG_GET_INT (arg) != response->id) { - PARSE_ERROR ("error parsing RPC message: invalid start of async response body (type %u not LONG or ID mismatch)", - arg->type); - return NULL; - } - g_ptr_array_remove_index (response->content, 0); - g_byte_array_remove_range (response->body, 0, 6); - } - } else { - response->type = XMM7360_RPC_RESPONSE_TYPE_UNSOLICITED; - } - - return g_steal_pointer (&response); -} - static MMPortSerialResponseType parse_response (MMPortSerial *port, GByteArray *response_buffer, @@ -599,7 +95,7 @@ serial_command_ready (MMPortSerial *port, return; } - response = parse_response_xmm7360 (response_buffer, &error); + response = xmm7360_parse_response (response_buffer, &error); if (!response) { mm_obj_dbg (port, "%s", error->message); g_clear_error (&error); @@ -727,7 +223,7 @@ parse_unsolicited (MMPortSerial *port, GByteArray *response_buffer) g_autoptr(GError) error = NULL; GSList *iter; - response = parse_response_xmm7360 (response_buffer, &error); + response = xmm7360_parse_response (response_buffer, &error); if (!response) { mm_obj_dbg (port, "%s", error->message); return; diff --git a/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.h b/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.h index 59cc0dd6..31efaef2 100644 --- a/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.h +++ b/src/plugins/intel/mm-port-serial-xmmrpc-xmm7360.h @@ -23,509 +23,7 @@ #include #include "mm-port-serial.h" - -typedef enum { - XMM7360_RPC_CALL_UTA_MS_SIM_OPEN_REQ = 0x001, - XMM7360_RPC_CALL_UTA_MS_SIM_APDU_CMD_REQ = 0x002, - XMM7360_RPC_CALL_UTA_MS_SIM_APPLICATION_REQ = 0x004, - XMM7360_RPC_CALL_UTA_MS_SIM_DECODE_FCP = 0x006, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_READ_ENTRY_REQ = 0x00d, - XMM7360_RPC_CALL_UTA_MS_SIM_GEN_PIN_REQ = 0x00f, - XMM7360_RPC_CALL_UTA_MS_SIM_MODIFY_LOCK_REQ = 0x011, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_PROACTIVE_COMMAND_RSP = 0x016, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_ENVELOPE_COMMAND_REQ = 0x017, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_TERMINAL_PROFILE_READ_REQ = 0x019, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_REGISTER_HANDLER = 0x01c, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_DEREGISTER_HANDLER = 0x01d, - XMM7360_RPC_CALL_UTA_MS_CPS_SET_MODE_REQ = 0x01f, - XMM7360_RPC_CALL_UTA_MS_CPS_SET_STACK_MODE_CONFIGURATION = 0x020, - XMM7360_RPC_CALL_UTA_MS_CPS_SET_SIM_MODE_CONFIGURATION = 0x021, - XMM7360_RPC_CALL_UTA_MS_CPS_READ_IMEI = 0x023, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_INIT = 0x024, - XMM7360_RPC_CALL_UTA_MS_CBS_INIT = 0x025, - XMM7360_RPC_CALL_UTA_MS_SS_INIT = 0x026, - XMM7360_RPC_CALL_UTA_MS_SS_SEND_USSD_REQ = 0x027, - XMM7360_RPC_CALL_UTA_MS_SS_RESPOND_USSD = 0x028, - XMM7360_RPC_CALL_UTA_MS_SS_ABORT = 0x029, - XMM7360_RPC_CALL_UTA_MS_SMS_INIT = 0x030, - XMM7360_RPC_CALL_UTA_MS_SMS_SEND_REQ = 0x031, - XMM7360_RPC_CALL_UTA_MS_SMS_SET_MEMORY_AVAILABLE_REQ = 0x034, - XMM7360_RPC_CALL_UTA_MS_SMS_INCOMING_SMS_ACK = 0x036, - XMM7360_RPC_CALL_UTA_MS_SMS_SIM_MSG_COUNT_REQ = 0x038, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_INITIALIZE = 0x03a, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_OBTAIN_PDP_CONTEXT_ID = 0x03b, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_RELEASE_PDP_CONTEXT_ID = 0x03c, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_DEFINE_PRIMARY_REQ = 0x03d, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_UNDEFINE_PRIMARY_REQ = 0x03f, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_PRIMARY_REQ = 0x041, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_AUTHENTICATION_REQ = 0x043, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_DNS_REQ = 0x045, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEGOTIATED_DNS_REQ = 0x047, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEG_IP_ADDR_REQ = 0x049, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_ACTIVATE_REQ = 0x04b, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_DEACTIVATE_REQ = 0x04e, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_CONNECT_REQ = 0x051, - XMM7360_RPC_CALL_UTA_MS_NET_OPEN = 0x053, - XMM7360_RPC_CALL_UTA_MS_NET_SET_RADIO_SIGNAL_REPORTING = 0x054, - XMM7360_RPC_CALL_UTA_MS_NET_SINGLE_SHOT_RADIO_SIGNAL_REPORTING_REQ = 0x055, - XMM7360_RPC_CALL_UTA_MS_NET_ATTACH_REQ = 0x05c, - XMM7360_RPC_CALL_UTA_MS_NET_PS_ATTACH_REQ = 0x05d, - XMM7360_RPC_CALL_UTA_MS_NET_PS_DETACH_REQ = 0x05e, - XMM7360_RPC_CALL_UTA_MS_NET_SCAN_REQ = 0x05f, - XMM7360_RPC_CALL_UTA_MS_NET_SCAN_ABORT = 0x060, - XMM7360_RPC_CALL_UTA_MS_NET_POWER_DOWN_REQ = 0x061, - XMM7360_RPC_CALL_UTA_MS_NET_EXT_SCAN_REQ = 0x062, - XMM7360_RPC_CALL_UTA_MS_NET_SET_FD_CONFIG_REQ = 0x06e, - XMM7360_RPC_CALL_UTA_MS_NET_GET_FD_CONFIG_REQ = 0x071, - XMM7360_RPC_CALL_UTA_MS_NET_CONFIGURE_NETWORK_MODE_REQ = 0x073, - XMM7360_RPC_CALL_UTA_MS_NET_RAT_MODE_STATUS_REQ = 0x076, - XMM7360_RPC_CALL_UTA_NVM_READ = 0x079, - XMM7360_RPC_CALL_UTA_NVM_WRITE = 0x07a, - XMM7360_RPC_CALL_UTA_NVM_WRITE_COMMIT = 0x07b, - XMM7360_RPC_CALL_UTA_SYS_GET_INFO = 0x07c, - XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_SETUP_REQ = 0x07d, - XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_TO_DATACHANNEL_REQ = 0x07e, - XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_RELEASE_REQ = 0x07f, - XMM7360_RPC_CALL_UTA_MS_NET_DC_SET_VOICE_DOMAIN_PREFERENCE_CONFIG_REQ = 0x080, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_SETUP_VOICE_CALL_REQ = 0x082, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_RELEASE_CALL_REQ = 0x088, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_ACCEPT_CALL_REQ = 0x08d, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_SWAP_CALLS_REQ = 0x090, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_HOLD_CALL_REQ = 0x092, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_RETRIEVE_CALL_REQ = 0x094, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_SPLIT_MPTY_REQ = 0x096, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_JOIN_CALLS_REQ = 0x098, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_TRANSFER_CALLS_REQ = 0x09a, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_START_DTMF_REQ = 0x09c, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_STOP_DTMF_REQ = 0x09e, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_SET_UUS1_INFO = 0x0a6, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_SET_TTY_DEVICE_MODE = 0x0a7, - XMM7360_RPC_CALL_UTA_MS_CALL_CS_GET_TTY_DEVICE_MODE = 0x0a8, - XMM7360_RPC_CALL_UTA_MS_CALL_MULTIMEDIA_SETUP_CALL_REQ = 0x0ac, - XMM7360_RPC_CALL_UTA_MS_CALL_MULTIMEDIA_UPDATE_CALL_REQ = 0x0ad, - XMM7360_RPC_CALL_UTA_MS_CPS_SET_SIM_MODE_REQ = 0x0b0, - XMM7360_RPC_CALL_UTA_MS_SS_CALL_FORWARD_REQ = 0x0b2, - XMM7360_RPC_CALL_UTA_MS_SS_CALL_WAITING_REQ = 0x0b4, - XMM7360_RPC_CALL_UTA_MS_SS_CALL_BARRING_REQ = 0x0b6, - XMM7360_RPC_CALL_UTA_MS_SS_IDENTIFICATION_REQ = 0x0b8, - XMM7360_RPC_CALL_UTA_MS_SMS_SET_SEND_MORE_MESSAGES_STATUS = 0x0ba, - XMM7360_RPC_CALL_UTA_MS_SMS_DATA_DOWNLOAD_REQ = 0x0bb, - XMM7360_RPC_CALL_UTA_MS_SMS_DATA_DOWNLOAD_ACK = 0x0bd, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEG_QOS_REQ = 0x0be, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_TFT_REQ = 0x0c0, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_PCO_REQ = 0x0c2, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NW_PCO_REQ = 0x0c4, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_NW_ACTIVATE_ACCEPT_REQ = 0x0c7, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_NW_ACTIVATE_REJECT_REQ = 0x0c9, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_DATA_PREF_REQ = 0x0cd, - XMM7360_RPC_CALL_UTA_MS_CBS_START_REQ = 0x0cf, - XMM7360_RPC_CALL_UTA_MS_CBS_STOP_REQ = 0x0d0, - XMM7360_RPC_CALL_UTA_MS_CBS_SET_MSG_FILTER = 0x0d3, - XMM7360_RPC_CALL_UTA_MS_CBS_GET_MSG_FILTER = 0x0d4, - XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_CONFIG_REQ = 0x0d6, - XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_START_REQ = 0x0d8, - XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_STOP_REQ = 0x0da, - XMM7360_RPC_CALL_UTA_MS_CPS_NVM_WRITE = 0x0de, - XMM7360_RPC_CALL_UTA_MS_CPS_NVM_READ = 0x0df, - XMM7360_RPC_CALL_UTA_MS_NET_CONFIGURE_RX_DIVERSITY_DARP = 0x0e0, - XMM7360_RPC_CALL_UTA_MS_NET_LDR_GET_APN_PARAMETER_LIST = 0x0e2, - XMM7360_RPC_CALL_UTA_MS_NET_TIME_INFO_READ_REQ = 0x0e3, - XMM7360_RPC_CALL_UTA_MS_NET_SET_CSG_CONFIG_REQ = 0x0e6, - XMM7360_RPC_CALL_UTA_MS_NET_BAND_STATUS_REQ = 0x0e7, - XMM7360_RPC_CALL_UTA_MS_NET_GET_EXTENDED_RADIO_SIGNAL_INFO_REQ = 0x0ec, - XMM7360_RPC_CALL_UTA_MS_NET_DETACH_REQ = 0x0ef, - XMM7360_RPC_CALL_UTA_MS_NET_SELECT_GPRS_CLASS_REQ = 0x0f1, - XMM7360_RPC_CALL_UTA_MS_NET_GET_CSG_CONFIG_REQ = 0x0f3, - XMM7360_RPC_CALL_UTA_MS_NET_CS_SERVICE_NOTIFICATION_ACCEPT = 0x0f4, - XMM7360_RPC_CALL_UTA_MS_NET_SINGLE_SHOT_FD_REQ = 0x0f9, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_LOCATION_REQ = 0x0fb, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_READ_GAS_ENTRY_REQ = 0x0fd, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_WRITE_ENTRY_REQ = 0x0ff, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_GET_META_INFORMATION_REQ = 0x101, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_USIM_PB_SELECT_REQ = 0x103, - XMM7360_RPC_CALL_UTA_MS_SIM_PB_GET_FREE_RECORDS_REQ = 0x105, - XMM7360_RPC_CALL_UTA_MS_SIM_CREATE_READ_BINARY_APDU = 0x10a, - XMM7360_RPC_CALL_UTA_MS_SIM_CREATE_UPDATE_BINARY_APDU = 0x10b, - XMM7360_RPC_CALL_UTA_MS_SIM_ANALYSE_READ_RESULT = 0x10c, - XMM7360_RPC_CALL_UTA_MS_SIM_SET_FDN_REQ = 0x10e, - XMM7360_RPC_CALL_SET_AP_SCREEN_STATE = 0x110, - XMM7360_RPC_CALL_UTA_IO_CTL = 0x111, - XMM7360_RPC_CALL_UTA_IDC_AP_MSG_SET_REQ = 0x114, - XMM7360_RPC_CALL_UTA_IDC_AP_MSG_GET_REQ = 0x115, - XMM7360_RPC_CALL_UTA_IDC_ENBLE_REQ = 0x116, - XMM7360_RPC_CALL_UTA_IDC_CWS_MSG_SET_REQ = 0x119, - XMM7360_RPC_CALL_UTA_IDC_CWS_MSG_GET_REQ = 0x11a, - XMM7360_RPC_CALL_UTA_IDC_SUBSCRIBE_INDICATIONS = 0x11c, - XMM7360_RPC_CALL_UTA_IDC_UNSUBSCRIBE_INDICATIONS = 0x11d, - XMM7360_RPC_CALL_UTA_BOOT_PREPARE_SHUTDOWN_REQ = 0x11f, - XMM7360_RPC_CALL_UTA_BOOT_SHUTDOWN_REQ = 0x120, - XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_2G = 0x121, - XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_3G = 0x122, - XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_4G = 0x123, - XMM7360_RPC_CALL_UTA_FREQ_INFO_ACTIVATE_REQ = 0x128, - XMM7360_RPC_CALL_UTA_FREQ_INFO_GET_FREQ_INFO_REQ = 0x129, - XMM7360_RPC_CALL_UTA_FREQ_INFO_DEACTIVATE_REQ = 0x12a, - XMM7360_RPC_CALL_UTA_FREQ_INFO_REGISTER_INDICATIONS = 0x12b, - XMM7360_RPC_CALL_UTA_FREQ_INFO_DEREGISTER_INDICATIONS = 0x12c, - XMM7360_RPC_CALL_UTA_MODE_SET_REQ = 0x12f, - XMM7360_RPC_CALL_UTA_NVM_FLUSH_SYNC = 0x130, - XMM7360_RPC_CALL_UTA_PROD_REGISTER_GTI_CALLBACK_FUNC = 0x132, - XMM7360_RPC_CALL_UTA_PROD_GTI_CMD_REQ = 0x133, - XMM7360_RPC_CALL_UTA_CELL_TIME_STAMP_REQ = 0x134, - XMM7360_RPC_CALL_UTA_MS_SS_LCS_INIT = 0x136, - XMM7360_RPC_CALL_UTA_MS_SS_LCS_MO_LOCATION_REQ = 0x137, - XMM7360_RPC_CALL_UTA_MS_SS_LCS_MTLR_NOTIFICATION_RSP = 0x139, - XMM7360_RPC_CALL_UTA_MS_CP_ASSISTANCE_DATA_INJECT_REQ = 0x13c, - XMM7360_RPC_CALL_UTA_MS_CP_RESET_ASSISTANCE_DATA = 0x13d, - XMM7360_RPC_CALL_UTA_MS_CP_POS_MEASUREMENT_REQ = 0x140, - XMM7360_RPC_CALL_UTA_MS_CP_POS_MEASUREMENT_ABORT_REQ = 0x142, - XMM7360_RPC_CALL_UTA_MS_CP_POS_ENABLE_MEASUREMENT_REPORT = 0x144, - XMM7360_RPC_CALL_UTA_MS_CP_POS_DISABLE_MEASUREMENT_REPORT = 0x145, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_INIT = 0x146, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SMS_PP_RSP = 0x148, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SIM_INITIATED_CALL_RSP = 0x14a, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SS_USSD_RSP = 0x14c, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_DTMF_RSP = 0x14e, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_STOP_DTMF_REQ = 0x150, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_REFRESH_CONFIRM_RSP = 0x152, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_REFRESH_FCN_RSP = 0x154, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_CONTROL_REQ = 0x155, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_TERMINAL_PROFILE_DOWNLOAD_REQ = 0x157, - XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_SEND_REQ = 0x15a, - XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_SUBSCRIBE_INDICATIONS = 0x15c, - XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_UNSUBSCRIBE_INDICATIONS = 0x15d, - XMM7360_RPC_CALL_RPC_GET_REMOTE_VER_INFO = 0x15e, - XMM7360_RPC_CALL_UTA_MS_METRICS_REGISTER_HANDLER = 0x160, - XMM7360_RPC_CALL_UTA_MS_METRICS_DEREGISTER_HANDLER = 0x161, - XMM7360_RPC_CALL_UTA_MS_METRICS_SET_OPTIONS = 0x162, - XMM7360_RPC_CALL_UTA_MS_METRICS_TRIGGER = 0x163, - XMM7360_RPC_CALL_UTA_MS_EMBMS_INIT = 0x164, - XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_SERVICE_REQ = 0x165, - XMM7360_RPC_CALL_UTA_MS_EMBMS_MBSFN_AREA_CONFIG_REQ = 0x166, - XMM7360_RPC_CALL_UTA_MS_EMBMS_SESSION_CONFIG_REQ = 0x167, - XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_INTERESTED_TMGI_LIST_REQ = 0x168, - XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_INTERESTED_SAI_FREQ_REQ = 0x169, - XMM7360_RPC_CALL_UTA_IMS_SUBSCRIBE_INDICATIONS = 0x176, - XMM7360_RPC_CALL_UTA_IMS_UNSUBSCRIBE_INDICATIONS = 0x177, - XMM7360_RPC_CALL_UTA_IMS_GET_FRAMEWORK_STATE = 0x178, - XMM7360_RPC_CALL_UTA_RTC_GET_DATETIME = 0x179, - XMM7360_RPC_CALL_UTA_MS_SIM_ANALYSE_SIM_APDU_RESULT = 0x17a, - XMM7360_RPC_CALL_UTA_MS_SIM_OPEN_CHANNEL_REQ = 0x17b, - XMM7360_RPC_CALL_UTA_MS_SIM_CLOSE_CHANNEL_REQ = 0x17d, - XMM7360_RPC_CALL_UTA_MS_SIM_SET_BDN_REQ = 0x17f, - XMM7360_RPC_CALL_UTA_MS_SET_SIM_STACK_MAPPING_REQ = 0x181, - XMM7360_RPC_CALL_UTA_MS_GET_SIM_STACK_MAPPING_REQ = 0x183, - XMM7360_RPC_CALL_UTA_MS_NET_SET_RADIO_SIGNAL_REPORTING_CONFIGURATION = 0x188, - XMM7360_RPC_CALL_UTA_PC_IE_ENUMERATIONEXT_TOUT = 0x189, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_SET_TERMINAL_CAPABILITY_REQ = 0x18a, - XMM7360_RPC_CALL_UTA_MS_SIM_TK_READ_TERMINAL_CAPABILITY_REQ = 0x18c, - XMM7360_RPC_CALL_CSI_FCC_LOCK_QUERY_REQ = 0x18e, - XMM7360_RPC_CALL_CSI_FCC_LOCK_GEN_CHALLENGE_REQ = 0x190, - XMM7360_RPC_CALL_CSI_FCC_LOCK_VER_CHALLENGE_REQ = 0x192, - XMM7360_RPC_CALL_UTA_SENSOR_OPEN_REQ = 0x194, - XMM7360_RPC_CALL_UTA_SENSOR_CLOSE_EXT = 0x197, - XMM7360_RPC_CALL_UTA_SENSOR_START_EXT = 0x198, - XMM7360_RPC_CALL_UTA_SENSOR_SET_ALARM_PARAM_EXT = 0x199, - XMM7360_RPC_CALL_UTA_SENSOR_SET_SCHEDULER_PARAM_EXT = 0x19a, - XMM7360_RPC_CALL_CSI_SIO_IP_FILTER_CNTRL_SET_REQ = 0x19b, - XMM7360_RPC_CALL_UTA_MS_ACC_CURRENT_FREQ_INFO_REQ = 0x19d, - XMM7360_RPC_CALL_CSI_TRC_AT_CMND_REQ = 0x1a0, - XMM7360_RPC_CALL_UTA_MS_SIM_APDU_CMD_EXT_REQ = 0x1a2, - XMM7360_RPC_CALL_UTA_MS_NET_GET_PLMN_NAME_INFO_REQ = 0x1a4, - XMM7360_RPC_CALL_UTA_MS_NET_GET_COUNTRY_LIST_REQ = 0x1a7, - XMM7360_RPC_CALL_UTA_MS_NET_EXT_CONFIGURE_NETWORK_MODE_REQ = 0x1a9, - XMM7360_RPC_CALL_UTA_MS_NET_EXT_BAND_STATUS_REQ = 0x1ac, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_ATTACH_APN_CONFIG_REQ = 0x1af, - XMM7360_RPC_CALL_CSI_MS_CALL_PS_INITIALIZE = 0x1b1, - XMM7360_RPC_CALL_UTA_AUDIO_ENABLE_SOURCE = 0x1b2, - XMM7360_RPC_CALL_UTA_AUDIO_DISABLE_SOURCE = 0x1b3, - XMM7360_RPC_CALL_UTA_AUDIO_CONFIGURE_DESTINATION_EXT = 0x1b4, - XMM7360_RPC_CALL_UTA_AUDIO_SET_DESTINATIONS_FOR_SOURCE = 0x1b5, - XMM7360_RPC_CALL_UTA_AUDIO_SET_VOLUME_FOR_SOURCE = 0x1b6, - XMM7360_RPC_CALL_UTA_AUDIO_SET_MUTE_FOR_SOURCE_EXT = 0x1b7, - XMM7360_RPC_CALL_UTA_AUDIO_SET_VOLUME_FOR_DESTINATION = 0x1b8, - XMM7360_RPC_CALL_UTA_AUDIO_SET_MUTE_FOR_DESTINATION_EXT = 0x1b9, - XMM7360_RPC_CALL_UTA_AUDIO_CONFIGURE_SOURCE_EXT = 0x1ba, - XMM7360_RPC_CALL_UTA_AUDIO_SET_DESTINATIONS_FOR_SOURCE_EXT = 0x1bb, - XMM7360_RPC_CALL_UTA_RPC_SCREEN_CONTROL_REQ = 0x1bc, - XMM7360_RPC_CALL_UTA_MS_CALL_PS_READ_CONTEXT_STATUS_REQ = 0x1bd, - XMM7360_RPC_CALL_CSI_MS_SIM_ACCESS_GET_SIM_STATE_INFO_REQ = 0x1bf, - XMM7360_RPC_CALL_CSI_MS_NET_GET_REGISTRATION_INFO_REQ = 0x1c1, - XMM7360_RPC_CALL_CSI_SIO_IP_FILTER_NEW_CNTRL_SET_REQ = 0x1c3, - XMM7360_RPC_CALL_CSI_MS_NET_LDR_GET_APN_PLMN_PARAMETER_LIST_REQ = 0x1c5, - XMM7360_RPC_CALL_RPC_GET_API_PARAM_CHANGED_BITMAP = 0x1c8, -} Xmm7360RpcCallId; - -typedef enum { - XMM7360_RPC_UNSOL_UTA_MS_SIM_APDU_CMD_RSP_CB = 0x003, - XMM7360_RPC_UNSOL_UTA_MS_SIM_APPLICATION_RSP_CB = 0x005, - XMM7360_RPC_UNSOL_UTA_MS_SIM_INFO_IND_CB = 0x007, - XMM7360_RPC_UNSOL_UTA_MS_SIM_INIT_IND_CB = 0x008, - XMM7360_RPC_UNSOL_UTA_MS_SIM_FULL_ACCESS_IND_CB = 0x009, - XMM7360_RPC_UNSOL_UTA_MS_SIM_ERROR_IND_CB = 0x00a, - XMM7360_RPC_UNSOL_UTA_MS_SIM_CARD_IND_CB = 0x00b, - XMM7360_RPC_UNSOL_UTA_MS_SIM_APPLICATION_IND_CB = 0x00c, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_READ_ENTRY_RSP_CB = 0x00e, - XMM7360_RPC_UNSOL_UTA_MS_SIM_GEN_PIN_RSP_CB = 0x010, - XMM7360_RPC_UNSOL_UTA_MS_SIM_MODIFY_LOCK_RSP_CB = 0x012, - XMM7360_RPC_UNSOL_UTA_MS_SIM_LOCK_STATUS_IND_CB = 0x013, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_MO_SMS_CONTROL_INFO_IND_CB = 0x014, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_PROACTIVE_COMMAND_IND_CB = 0x015, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_ENVELOPE_RES_IND_CB = 0x018, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_PROFILE_READ_RSP_CB = 0x01a, - XMM7360_RPC_UNSOL_UTA_SIM_TK_PROACTIVE_COMMAND_HANDLER_FUNC = 0x01b, - XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_MODE_RSP = 0x01e, - XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_MODE_IND_CB = 0x022, - XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_ERROR_IND_CB = 0x02a, - XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_REJECT_IND_CB = 0x02b, - XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_GSM_CAUSE_IND_CB = 0x02c, - XMM7360_RPC_UNSOL_UTA_MS_SS_USSD_RSP_CB = 0x02d, - XMM7360_RPC_UNSOL_UTA_MS_SS_USSD_IND_CB = 0x02e, - XMM7360_RPC_UNSOL_UTA_MS_SS_END_IND_CB = 0x02f, - XMM7360_RPC_UNSOL_UTA_MS_SMS_INCOMING_IND_CB = 0x032, - XMM7360_RPC_UNSOL_UTA_MS_SMS_SEND_RSP_CB = 0x033, - XMM7360_RPC_UNSOL_UTA_MS_SMS_SET_MEMORY_AVAILABLE_RSP_CB = 0x035, - XMM7360_RPC_UNSOL_UTA_MS_SMS_SIM_MSG_CACHE_FINISHED_IND_CB = 0x037, - XMM7360_RPC_UNSOL_UTA_MS_SMS_SIM_MSG_COUNT_RSP_CB = 0x039, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEFINE_PRIMARY_RSP_CB = 0x03e, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_UNDEFINE_PRIMARY_RSP_CB = 0x040, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_PRIMARY_RSP_CB = 0x042, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_AUTHENTICATION_RSP_CB = 0x044, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_DNS_RSP_CB = 0x046, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEGOTIATED_DNS_RSP_CB = 0x048, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEG_IP_ADDR_RSP_CB = 0x04a, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ACTIVATE_RSP_CB = 0x04c, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ACTIVATE_STATUS_IND_CB = 0x04d, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEACTIVATE_RSP_CB = 0x04f, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEACTIVATE_IND_CB = 0x050, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_CONNECT_RSP_CB = 0x052, - XMM7360_RPC_UNSOL_UTA_MS_NET_SINGLE_SHOT_RADIO_SIGNAL_REPORTING_RSP_CB = 0x056, - XMM7360_RPC_UNSOL_UTA_MS_NET_CELL_INFO_IND_CB = 0x057, - XMM7360_RPC_UNSOL_UTA_MS_NET_CONNECTION_INFO_IND_CB = 0x058, - XMM7360_RPC_UNSOL_UTA_MS_NET_HSPA_INFO_IND_CB = 0x059, - XMM7360_RPC_UNSOL_UTA_MS_NET_RADIO_SIGNAL_IND_CB = 0x05a, - XMM7360_RPC_UNSOL_UTA_MS_NET_CELL_CHANGE_IND_CB = 0x05b, - XMM7360_RPC_UNSOL_UTA_MS_NET_ATTACH_RSP_CB = 0x063, - XMM7360_RPC_UNSOL_UTA_MS_NET_PS_ATTACH_RSP_CB = 0x064, - XMM7360_RPC_UNSOL_UTA_MS_NET_PS_DETACH_RSP_CB = 0x065, - XMM7360_RPC_UNSOL_UTA_MS_NET_SCAN_RSP_CB = 0x066, - XMM7360_RPC_UNSOL_UTA_MS_NET_POWER_DOWN_RSP_CB = 0x067, - XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_SCAN_RSP_CB = 0x068, - XMM7360_RPC_UNSOL_UTA_MS_NET_PS_ATTACH_IND_CB = 0x069, - XMM7360_RPC_UNSOL_UTA_MS_NET_PS_DETACH_IND_CB = 0x06a, - XMM7360_RPC_UNSOL_UTA_MS_NET_REGISTRATION_INFO_IND_CB = 0x06b, - XMM7360_RPC_UNSOL_UTA_MS_NET_IS_ATTACH_ALLOWED_IND_CB = 0x06c, - XMM7360_RPC_UNSOL_UTA_MS_NET_GPRS_CLASS_IND_CB = 0x06d, - XMM7360_RPC_UNSOL_UTA_MS_NET_SET_FD_CONFIG_RSP_CB = 0x06f, - XMM7360_RPC_UNSOL_UTA_MS_NET_FD_CONFIG_IND_CB = 0x070, - XMM7360_RPC_UNSOL_UTA_MS_NET_GET_FD_CONFIG_RSP_CB = 0x072, - XMM7360_RPC_UNSOL_UTA_MS_NET_CONFIGURE_NETWORK_MODE_RSP_CB = 0x074, - XMM7360_RPC_UNSOL_UTA_MS_NET_NETWORK_MODE_CHANGE_IND_CB = 0x075, - XMM7360_RPC_UNSOL_UTA_MS_NET_RAT_MODE_STATUS_RSP_CB = 0x077, - XMM7360_RPC_UNSOL_UTA_MS_NET_RAT_MODE_STATUS_IND_CB = 0x078, - XMM7360_RPC_UNSOL_UTA_MS_NET_DC_SET_VOICE_DOMAIN_PREFERENCE_CONFIG_RSP_CB = 0x081, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SETUP_CALL_RSP_CB = 0x083, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DIALING_IND_CB = 0x084, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_ALERTING_IND_CB = 0x085, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CTM_INFO_IND_CB = 0x086, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CONNECTED_IND_CB = 0x087, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_RELEASE_CALL_RSP_CB = 0x089, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DISCONNECTING_IND_CB = 0x08a, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DISCONNECTED_IND_CB = 0x08b, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_INCOMING_CALL_IND_CB = 0x08c, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_ACCEPT_CALL_RSP_CB = 0x08e, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_PROGRESS_IND_CB = 0x08f, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SWAP_CALLS_RSP_CB = 0x091, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_HOLD_CALL_RSP_CB = 0x093, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_RETRIEVE_CALL_RSP_CB = 0x095, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SPLIT_MPTY_RSP_CB = 0x097, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_JOIN_CALLS_RSP_CB = 0x099, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_TRANSFER_CALLS_RSP_CB = 0x09b, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_START_DTMF_RSP_CB = 0x09d, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_STOP_DTMF_RSP_CB = 0x09f, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_STOP_DTMF_EXT_RSP_CB = 0x0a0, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_NOTIFICATION_IND_CB = 0x0a1, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CUG_INFO_IND_CB = 0x0a2, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CALLING_NAME_INFO_IND_CB = 0x0a3, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_EMERGENCY_NUMBER_LIST_IND_CB = 0x0a4, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CALL_STATUS_IND_CB = 0x0a5, - XMM7360_RPC_UNSOL_UTA_CALL_MULTIMEDIA_GET_MEDIA_PROFILES_INFO_RSP_CB = 0x0a9, - XMM7360_RPC_UNSOL_UTA_MS_CALL_MULTIMEDIA_SETUP_CALL_RSP_CB = 0x0aa, - XMM7360_RPC_UNSOL_UTA_MS_CALL_MULTIMEDIA_UPDATE_CALL_RSP_CB = 0x0ab, - XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_VOIMS_SRVCC_HO_STATUS_IND_CB = 0x0ae, - XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_SIM_MODE_RSP = 0x0af, - XMM7360_RPC_UNSOL_UTA_MS_CPS_STARTUP_IND_CB = 0x0b1, - XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_FORWARD_RSP_CB = 0x0b3, - XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_WAITING_RSP_CB = 0x0b5, - XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_BARRING_RSP_CB = 0x0b7, - XMM7360_RPC_UNSOL_UTA_MS_SS_IDENTIFICATION_RSP_CB = 0x0b9, - XMM7360_RPC_UNSOL_UTA_MS_SMS_DATA_DOWNLOAD_RSP_CB = 0x0bc, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEG_QOS_RSP_CB = 0x0bf, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_TFT_RSP_CB = 0x0c1, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_PCO_RSP_CB = 0x0c3, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NW_PCO_RSP_CB = 0x0c5, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_NW_ACTIVATE_IND_CB = 0x0c6, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_NW_ACTIVATE_ACCEPT_RSP_CB = 0x0c8, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_MODIFY_IND_CB = 0x0ca, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SUSPEND_IND_CB = 0x0cb, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_RESUME_IND_CB = 0x0cc, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_DATA_PREF_RSP_CB = 0x0ce, - XMM7360_RPC_UNSOL_UTA_MS_CBS_START_RSP_CB = 0x0d1, - XMM7360_RPC_UNSOL_UTA_MS_CBS_STOP_RSP_CB = 0x0d2, - XMM7360_RPC_UNSOL_UTA_MS_CBS_NEW_MESSAGE_IND_CB = 0x0d5, - XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_CONFIG_RSP_CB = 0x0d7, - XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_START_RSP_CB = 0x0d9, - XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_STOP_RSP_CB = 0x0db, - XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_NOTIFY_PRIMARY_WARNING_IND = 0x0dc, - XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_NOTIFY_SECONDARY_WARNING_IND = 0x0dd, - XMM7360_RPC_UNSOL_UTA_MS_NET_CONFIGURE_RX_DIVERSITY_DARP_IND_CB = 0x0e1, - XMM7360_RPC_UNSOL_UTA_MS_NET_TIME_INFO_READ_RSP_CB = 0x0e4, - XMM7360_RPC_UNSOL_UTA_MS_NET_TIME_INFO_IND_CB = 0x0e5, - XMM7360_RPC_UNSOL_UTA_MS_NET_BAND_STATUS_RSP_CB = 0x0e8, - XMM7360_RPC_UNSOL_UTA_MS_NET_BAND_STATUS_IND_CB = 0x0e9, - XMM7360_RPC_UNSOL_UTA_MS_NET_SET_CSG_CONFIG_RSP_CB = 0x0ea, - XMM7360_RPC_UNSOL_UTA_MS_NET_GET_CSG_CONFIG_RSP_CB = 0x0eb, - XMM7360_RPC_UNSOL_UTA_MS_NET_GET_EXTENDED_RADIO_SIGNAL_INFO_RSP_CB = 0x0ed, - XMM7360_RPC_UNSOL_UTA_MS_NET_NITZ_INFO_IND_CB = 0x0ee, - XMM7360_RPC_UNSOL_UTA_MS_NET_DETACH_RSP_CB = 0x0f0, - XMM7360_RPC_UNSOL_UTA_MS_NET_SELECT_GPRS_CLASS_RSP_CB = 0x0f2, - XMM7360_RPC_UNSOL_UTA_MS_NET_NETWORK_FEATURE_SUPPORT_INFO_IND_CB = 0x0f5, - XMM7360_RPC_UNSOL_UTA_MS_NET_EPS_NETWORK_FEATURE_SUPPORT_INFO_IND_CB = 0x0f6, - XMM7360_RPC_UNSOL_UTA_MS_NET_CS_SERVICE_NOTIFICATION_IND_CB = 0x0f7, - XMM7360_RPC_UNSOL_UTA_MS_NET_DUAL_SIM_SERVICE_IND_CB = 0x0f8, - XMM7360_RPC_UNSOL_UTA_MS_NET_SINGLE_SHOT_FD_RSP_CB = 0x0fa, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_LOCATION_RSP_CB = 0x0fc, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_READ_GAS_ENTRY_RSP_CB = 0x0fe, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_WRITE_ENTRY_RSP_CB = 0x100, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_META_INFORMATION_RSP_CB = 0x102, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_USIM_PB_SELECT_RSP_CB = 0x104, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_FREE_RECORDS_RSP_CB = 0x106, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_USIM_PB_READY_IND_CB = 0x107, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_CACHE_LOAD_FINISHED_IND_CB = 0x108, - XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_CACHE_LOAD_IND_CB = 0x109, - XMM7360_RPC_UNSOL_UTA_MS_SIM_GEN_PIN_IND_CB = 0x10d, - XMM7360_RPC_UNSOL_UTA_MS_SIM_FDN_STATE_IND_CB = 0x10f, - XMM7360_RPC_UNSOL_UTA_IDC_AP_MSG_SET_RSP_CB = 0x112, - XMM7360_RPC_UNSOL_UTA_IDC_AP_MSG_GET_RSP_CB = 0x113, - XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_SET_RSP_CB = 0x117, - XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_GET_RSP_CB = 0x118, - XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_IND_CB = 0x11b, - XMM7360_RPC_UNSOL_UTA_BOOT_PREPARE_SHUTDOWN_RSP_CB = 0x11e, - XMM7360_RPC_UNSOL_UTA_FREQ_INFO_ACTIVATE_RSP_CB = 0x124, - XMM7360_RPC_UNSOL_UTA_FREQ_INFO_DEACTIVATE_RSP_CB = 0x125, - XMM7360_RPC_UNSOL_UTA_FREQ_INFO_GET_FREQ_INFO_RSP_CB = 0x126, - XMM7360_RPC_UNSOL_UTA_FREQ_INFO_INDICATION_CB = 0x127, - XMM7360_RPC_UNSOL_UTA_MODE_SET_RSP_CB = 0x12d, - XMM7360_RPC_UNSOL_UTA_MODE_STARTUP_IND_CB = 0x12e, - XMM7360_RPC_UNSOL_UTA_PROD_GTI_CMD_RSP_CB = 0x131, - XMM7360_RPC_UNSOL_UTA_CELL_TIME_STAMP_RSP_CB = 0x135, - XMM7360_RPC_UNSOL_UTA_MS_SS_LCS_MO_LOCATION_RSP_CB = 0x138, - XMM7360_RPC_UNSOL_UTA_MS_SS_LCS_CAPABILITIES_IND_CB = 0x13a, - XMM7360_RPC_UNSOL_UTA_MS_CP_ASSISTANCE_DATA_INJECT_RSP_CB = 0x13b, - XMM7360_RPC_UNSOL_UTA_MS_CP_ASSISTANCE_DATA_NEEDED_IND_CB = 0x13e, - XMM7360_RPC_UNSOL_UTA_MS_CP_POS_MEASUREMENT_RSP_CB = 0x13f, - XMM7360_RPC_UNSOL_UTA_MS_CP_POS_MEASUREMENT_ABORT_RSP_CB = 0x141, - XMM7360_RPC_UNSOL_UTA_MS_CP_POS_REPORT_MEASUREMENT_IND_CB = 0x143, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SMS_PP_IND_CB = 0x147, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SIM_INITIATED_CALL_IND_CB = 0x149, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SS_USSD_IND_CB = 0x14b, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_DTMF_IND_CB = 0x14d, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_DTMF_END_IND_CB = 0x14f, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_REFRESH_CONFIRM_IND_CB = 0x151, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_REFRESH_FCN_IND_CB = 0x153, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_CONTROL_RSP_CB = 0x156, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_PROFILE_DOWNLOAD_RSP_CB = 0x158, - XMM7360_RPC_UNSOL_UTA_MS_3GPP2_SMS_SEND_RSP_CB = 0x159, - XMM7360_RPC_UNSOL_UTA_MS_3GPP2_SMS_INCOMING_IND_CB = 0x15b, - XMM7360_RPC_UNSOL_UTA_METRICS_HANDLER_FUNCTION = 0x15f, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_SERVICE_RSP_CB = 0x16a, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MBSFN_AREA_CONFIG_RSP_CB = 0x16b, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SESSION_CONFIG_RSP_CB = 0x16c, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_INTERESTED_TMGI_LIST_RSP_CB = 0x16d, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_INTERESTED_SAI_FREQ_RSP_CB = 0x16e, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SERVICE_IND_CB = 0x16f, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MBSFN_AREA_IND_CB = 0x170, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SERVICES_LIST_IND_CB = 0x171, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SAI_LIST_IND_CB = 0x172, - XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MPS_INFO_IND_CB = 0x173, - XMM7360_RPC_UNSOL_UTA_IMS_STATE_CHANGED_IND_CB = 0x174, - XMM7360_RPC_UNSOL_UTA_IMS_SERVICE_STATE_CHANGED_IND_CB = 0x175, - XMM7360_RPC_UNSOL_UTA_MS_SIM_OPEN_CHANNEL_RSP_CB = 0x17c, - XMM7360_RPC_UNSOL_UTA_MS_SIM_CLOSE_CHANNEL_RSP_CB = 0x17e, - XMM7360_RPC_UNSOL_UTA_MS_SIM_BDN_STATE_IND_CB = 0x180, - XMM7360_RPC_UNSOL_UTA_MS_SET_SIM_STACK_MAPPING_RSP_CB = 0x182, - XMM7360_RPC_UNSOL_UTA_MS_GET_SIM_STACK_MAPPING_RSP_CB = 0x184, - XMM7360_RPC_UNSOL_UTA_MS_SIM_MCC_MNC_IND_CB = 0x185, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_RESPONSE_IND_CB = 0x186, - XMM7360_RPC_UNSOL_UTA_MS_NET_REGISTERED_PLMN_NAME_IND_CB = 0x187, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_SET_TERMINAL_CAPABILITY_RSP_CB = 0x18b, - XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_READ_TERMINAL_CAPABILITY_RSP_CB = 0x18d, - XMM7360_RPC_UNSOL_CSI_FCC_LOCK_QUERY_RSP_CB = 0x18f, - XMM7360_RPC_UNSOL_CSI_FCC_LOCK_GEN_CHALLENGE_RSP_CB = 0x191, - XMM7360_RPC_UNSOL_CSI_FCC_LOCK_VER_CHALLENGE_RSP_CB = 0x193, - XMM7360_RPC_UNSOL_UTA_SENSOR_OPEN_RSP_CB = 0x195, - XMM7360_RPC_UNSOL_UTA_SENSOR_MEAS_IND_CB = 0x196, - XMM7360_RPC_UNSOL_CSI_SIO_IP_FILTER_CNTRL_SET_RSP_CB = 0x19c, - XMM7360_RPC_UNSOL_CSI_SIO_IP_FILTER_NEW_CNTRL_SET_RSP_CB = 0x1c4, - XMM7360_RPC_UNSOL_UTA_MS_ACC_CURRENT_FREQ_INFO_RSP_CB = 0x19e, - XMM7360_RPC_UNSOL_UTA_MS_ACC_CURRENT_FREQ_INFO_IND_CB = 0x19f, - XMM7360_RPC_UNSOL_CSI_TRC_AT_CMND_RSP_CB = 0x1a1, - XMM7360_RPC_UNSOL_UTA_MS_SIM_APDU_CMD_EXT_RSP_CB = 0x1a3, - XMM7360_RPC_UNSOL_UTA_MS_NET_GET_PLMN_NAME_INFO_RSP_CB = 0x1a5, - XMM7360_RPC_UNSOL_UTA_MS_NET_SIB8_TIME_INFO_IND_CB = 0x1a6, - XMM7360_RPC_UNSOL_UTA_MS_NET_GET_COUNTRY_LIST_RSP_CB = 0x1a8, - XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_CONFIGURE_NETWORK_MODE_RSP_CB = 0x1aa, - XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_NETWORK_MODE_CHANGE_IND_CB = 0x1ab, - XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_BAND_STATUS_RSP_CB = 0x1ad, - XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_BAND_STATUS_IND_CB = 0x1ae, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ATTACH_APN_CONFIG_RSP_CB = 0x1b0, - XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_READ_CONTEXT_STATUS_RSP_CB = 0x1be, - XMM7360_RPC_UNSOL_CSI_MS_SIM_ACCESS_GET_SIM_STATE_INFO_RSP_CB = 0x1c0, - XMM7360_RPC_UNSOL_CSI_MS_NET_GET_REGISTRATION_INFO_RSP_CB = 0x1c2, - XMM7360_RPC_UNSOL_CSI_MS_NET_LDR_GET_APN_PLMN_PARAMETER_LIST_RSP_CB = 0x1c6, - XMM7360_RPC_UNSOL_UTA_MS_NET_LDR_APN_PARAMETERS_CHANGE_IND_CB = 0x1c7, -} Xmm7360RpcUnsolId; - -typedef enum { - XMM7360_RPC_MSG_ARG_TYPE_BYTE, - XMM7360_RPC_MSG_ARG_TYPE_SHORT, - XMM7360_RPC_MSG_ARG_TYPE_LONG, - XMM7360_RPC_MSG_ARG_TYPE_STRING, - XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN, -} Xmm7360RpcMsgArgType; - - -#define XMM7360_RPC_MSG_ARG_GET_INT(arg) \ - (arg->type == XMM7360_RPC_MSG_ARG_TYPE_BYTE ? arg->value.b \ - : arg->type == XMM7360_RPC_MSG_ARG_TYPE_SHORT ? arg->value.s \ - : arg->type == XMM7360_RPC_MSG_ARG_TYPE_LONG ? arg->value.l : -1) - -typedef struct { - Xmm7360RpcMsgArgType type; - union { - gint8 b; - gint16 s; - gint32 l; - const gchar *string; - } value; - gsize size; - gsize pad; -} Xmm7360RpcMsgArg; - -typedef enum { - XMM7360_RPC_RESPONSE_TYPE_RESPONSE, - XMM7360_RPC_RESPONSE_TYPE_ASYNC_ACK, - XMM7360_RPC_RESPONSE_TYPE_UNSOLICITED, - XMM7360_RPC_RESPONSE_TYPE_UNKNOWN, -} Xmm7360RpcResponseType; - -typedef struct { - guint32 id; - Xmm7360RpcResponseType type; - guint32 unsol_id; - GByteArray *body; - GPtrArray *content; /* contains (Xmm7360RpcMsgArgs *) */ -} Xmm7360RpcResponse; +#include "mm-xmmrpc-xmm7360-protocol.h" #define MM_TYPE_PORT_SERIAL_XMMRPC_XMM7360 (mm_port_serial_xmmrpc_xmm7360_get_type ()) #define MM_PORT_SERIAL_XMMRPC_XMM7360(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PORT_SERIAL_XMMRPC_XMM7360, MMPortSerialXmmrpcXmm7360)) @@ -566,14 +64,6 @@ void mm_port_serial_xmmrpc_xmm7360_command (MMPortSerialXmmrpcXmm7360 *self, GAsyncReadyCallback callback, gpointer user_data); -void xmm7360_byte_array_append_asn_int4 (GByteArray *array, gint32 value); - -void xmm7360_rpc_response_free (Xmm7360RpcResponse *msg); - -G_DEFINE_AUTOPTR_CLEANUP_FUNC (Xmm7360RpcResponse, xmm7360_rpc_response_free); - -GByteArray *xmm7360_rpc_args_to_byte_array (const Xmm7360RpcMsgArg *args); - Xmm7360RpcResponse *mm_port_serial_xmmrpc_xmm7360_command_finish (MMPortSerialXmmrpcXmm7360 *self, GAsyncResult *res, GError **error); diff --git a/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.c b/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.c new file mode 100644 index 00000000..8de12652 --- /dev/null +++ b/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.c @@ -0,0 +1,535 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * Copyright (C) 2019 James Wah + * Copyright (C) 2020 Marinus Enzinger + * Copyright (C) 2023 Shane Parslow + * Copyright (C) 2024 Thomas Vogt + */ + +#include +#include +#include +#include + + +#include "mm-xmmrpc-xmm7360-protocol.h" +#include "mm-intel-enums-types.h" + +static void +xmm7360_rpc_msg_arg_free (Xmm7360RpcMsgArg *arg) +{ + if (arg->type == XMM7360_RPC_MSG_ARG_TYPE_STRING) { + g_free ((gchar *) arg->value.string); + } + g_free (arg); +} + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (Xmm7360RpcMsgArg, xmm7360_rpc_msg_arg_free) + +void +xmm7360_rpc_response_free (Xmm7360RpcResponse *response) +{ + if (response) { + g_byte_array_free (response->body, TRUE); + g_ptr_array_free (response->content, TRUE); + g_free (response); + } +} + +#define PARSE_ERROR(fmt, ...) { \ + g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, fmt, __VA_ARGS__); \ +} + +static gint +xmm7360_byte_array_read_asn_int (GByteArray *buf, + gsize offset, + gint *out_val, + Xmm7360RpcMsgArg *out_arg, + GError **error) +{ + const gsize orig_offset = offset; + gint size; + gint bytes_read; + gint val; + + if (buf->len <= offset + 2) { + PARSE_ERROR ("initial buffer size %u too small (need %zu)", + buf->len, offset + 2); + return -1; + } + + /* check ASN start byte and read int size */ + if (buf->data[offset] != 0x02) { + PARSE_ERROR ("unexpected ASN start byte 0x%02X (expected 0x02)", buf->data[offset]); + return -1; + } + offset++; + size = buf->data[offset++]; + + /* read actual value byte by byte */ + if (buf->len < offset + size) { + PARSE_ERROR ("buffer size %u too small (need %zu)", buf->len, offset + size); + return -1; + } + val = 0; + for (bytes_read = 0; bytes_read < size; bytes_read++) { + val <<= 8; + val |= buf->data[offset++]; + } + + if (out_arg) { + if (size == 0x01) { + out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_BYTE; + out_arg->value.b = (gint8) val; + } else if (size == 0x02) { + out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_SHORT; + out_arg->value.s = (gint16) val; + } else { + out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_LONG; + out_arg->value.l = (gint32) val; + } + } + + if (out_val) + *out_val = val; + + /* return bytes consumed by this function */ + return offset - orig_offset; +} + +static gint +xmm7360_byte_array_read_string (GByteArray *buf, + gsize offset, + Xmm7360RpcMsgArg *out_arg, + GError **error) +{ + const gsize orig_offset = offset; + guchar string_type; + gint string_len_padded; + gint pad_len; + gint string_len; + gint consumed; + + if (buf->len < offset + 2) { + PARSE_ERROR ("initial buffer size %u too small (need %zu)", + buf->len, offset + 2); + return -1; + } + + string_type = buf->data[offset++]; + if (string_type != 0x55 && string_type != 0x56 && string_type != 0x57) { + PARSE_ERROR ("unhandled string type 0x%02X", string_type); + return -1; + } + + string_len = buf->data[offset++]; + if (string_len & 0x80) { + guchar bytelen; + guint8 i; + + bytelen = string_len & 0x0f; + if (bytelen > 4) { + PARSE_ERROR ("unhandled string length size 0x%02X", bytelen); + return -1; + } else if (buf->len <= offset + bytelen) { + PARSE_ERROR ("string len buffer size %u too small (need %zu)", + buf->len, offset + bytelen); + return -1; + } + + string_len = 0; + for (i = 0; i < bytelen; i++) + string_len |= buf->data[offset++] << (i * 8); + } + + if (string_type == 0x56) { + /* 0x56 contains 2-byte chars */ + string_len <<= 1; + } else if (string_type == 0x57) { + /* 0x57 contains 4-byte chars */ + string_len <<= 2; + } + + consumed = xmm7360_byte_array_read_asn_int (buf, offset, &string_len_padded, NULL, error); + if (consumed < 0) + return -1; + offset += consumed; + + consumed = xmm7360_byte_array_read_asn_int (buf, offset, &pad_len, NULL, error); + if (consumed < 0) + return -1; + offset += consumed; + + if (string_len_padded > 0) { + if (string_len_padded != string_len + pad_len) { + PARSE_ERROR ("padded string len %u mismatch (expected %u)", + string_len_padded, string_len + pad_len); + return -1; + } + } else { + string_len_padded = string_len + pad_len; + } + + /* make sure the buffer is large enough */ + if (buf->len < offset + string_len_padded) { + PARSE_ERROR ("padded string len buffer size %u too small (need %zu)", + buf->len, offset + string_len_padded); + return -1; + } + + /* copy the result */ + if (out_arg) { + out_arg->type = XMM7360_RPC_MSG_ARG_TYPE_STRING; + /* Copy the bare string without padding */ + out_arg->value.string = g_memdup (buf->data + offset, string_len); + out_arg->size = string_len; + } + + /* return bytes consumed by this function */ + return offset + string_len_padded - orig_offset; +} + + +void +xmm7360_byte_array_append_asn_int4 (GByteArray *buf, gint32 value) +{ + gint32 value_be = GINT32_TO_BE (value); + g_byte_array_append (buf, (const guint8 *) "\x02\x04", 2); + g_byte_array_append (buf, (const guint8 *) &value_be, 4); +} + +static void +xmm7360_byte_array_append_uint8 (GByteArray *buf, gulong val) +{ + guint8 _val = (guint8) val; + g_byte_array_append (buf, &_val, 1); +} + +static void +xmm7360_byte_array_append_string (GByteArray *buf, + const guint8 *data, + gsize data_len, + guint data_len_padded) +{ + gsize i; + gsize pad_len; + + g_assert (data_len_padded >= data_len); + pad_len = data_len_padded - data_len; + + /* only support 1-byte element size */ + xmm7360_byte_array_append_uint8 (buf, 0x55); + + if (data_len < 0x80) { + xmm7360_byte_array_append_uint8 (buf, data_len); + } else { + guchar bytelen = 0x80; + /* write dummy first byte (updated later) */ + xmm7360_byte_array_append_uint8 (buf, bytelen); + for (i = data_len; i > 0; i >>= 8) { + bytelen++; + xmm7360_byte_array_append_uint8 (buf, i & 0xff); + } + /* update first byte */ + buf->data[buf->len - 1 - (bytelen & 0x7f)] = bytelen; + } + + xmm7360_byte_array_append_asn_int4 (buf, data_len_padded); + xmm7360_byte_array_append_asn_int4 (buf, pad_len); + g_byte_array_append (buf, data, data_len); + for (i = 0; i < pad_len; i++) { + xmm7360_byte_array_append_uint8 (buf, 0); + } +} + +GString * +xmm7360_byte_array_hexlify (GByteArray *buf) +{ + GString *string; + gsize i; + + string = g_string_sized_new (2 * buf->len + 1); + for (i = 0; i < buf->len; i++) { + g_string_append_printf (string, "%02x", buf->data[i]); + } + g_string_append (string, ""); + + /* truncate very long strings to avoid overly verbose logs */ + if (string->len > 64) { + gsize string_len; + string_len = string->len; + g_string_truncate (string, 48); + g_string_append_printf (string, "... (%" G_GSIZE_FORMAT " chars)", string_len); + } + + return string; +} + +GString * +xmm7360_rpc_args_to_string (GPtrArray *args) +{ + guint i; + GString *result; + Xmm7360RpcMsgArg *arg; + gint16 arg_value_short; + gint32 arg_value_long; + + result = g_string_new (""); + + for (i = 0; i < args->len; i++) { + arg = (Xmm7360RpcMsgArg *) g_ptr_array_index (args, i); + if (i > 0) { + g_string_append (result, " "); + } + switch (arg->type) { + case XMM7360_RPC_MSG_ARG_TYPE_BYTE: + g_string_append_printf (result, "B(0x%02x)", arg->value.b); + break; + case XMM7360_RPC_MSG_ARG_TYPE_SHORT: + arg_value_short = GINT16_TO_BE (arg->value.s); + g_string_append_printf (result, "S(0x%04x)", arg_value_short); + break; + case XMM7360_RPC_MSG_ARG_TYPE_LONG: + arg_value_long = GINT32_TO_BE (arg->value.l); + g_string_append_printf (result, "L(0x%08x)", arg_value_long); + break; + case XMM7360_RPC_MSG_ARG_TYPE_STRING: + g_string_append_printf (result, "STR(size=%" G_GSIZE_FORMAT ")", arg->size); + break; + case XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN: + default: + g_assert_not_reached (); + } + } + + return result; +} + +GByteArray * +xmm7360_rpc_args_to_byte_array (const Xmm7360RpcMsgArg *args) +{ + GByteArray *result; + gint16 arg_value_short; + gint32 arg_value_long; + + if (args == NULL) + return NULL; + + result = g_byte_array_new (); + for (; args->type != XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN; args++) { + switch (args->type) { + case XMM7360_RPC_MSG_ARG_TYPE_BYTE: + g_byte_array_append (result, (guint8[]) { 0x02, 0x01 }, 2); + g_byte_array_append (result, (guint8 *) &(args->value.b), 1); + break; + case XMM7360_RPC_MSG_ARG_TYPE_SHORT: + arg_value_short = GINT16_TO_BE (args->value.s); + g_byte_array_append (result, (guint8[]) { 0x02, 0x02 }, 2); + g_byte_array_append (result, (guint8 *) &arg_value_short, 2); + break; + case XMM7360_RPC_MSG_ARG_TYPE_LONG: + arg_value_long = GINT32_TO_BE (args->value.l); + g_byte_array_append (result, (guint8[]) { 0x02, 0x04 }, 2); + g_byte_array_append (result, (guint8 *) &arg_value_long, 4); + break; + case XMM7360_RPC_MSG_ARG_TYPE_STRING: + xmm7360_byte_array_append_string (result, + (const guint8 *) args->value.string, + args->size, + args->size + args->pad); + break; + case XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN: + default: + /* should be unreachable */ + return NULL; + } + } + return result; +} + +GByteArray * +xmm7360_command_to_byte_array (Xmm7360RpcCallId callid, + gboolean is_async, + GByteArray *body) +{ + GByteArray *buf; + gint32 tid; + gint32 tid_word; + gint32 tid_word_be; + guint32 total_len; + + buf = g_byte_array_sized_new (22); + + if (body == NULL) { + body = g_byte_array_new (); + xmm7360_byte_array_append_asn_int4 (body, 0); + } else { + g_byte_array_ref (body); + } + + if (is_async) { + tid = 0x11000101; + } else { + tid = 0; + } + tid_word = 0x11000100 | tid; + + total_len = body->len + 16; + if (tid) { + total_len += 6; + } + g_byte_array_append (buf, (const guint8 *) &total_len, 4); + xmm7360_byte_array_append_asn_int4 (buf, total_len); + xmm7360_byte_array_append_asn_int4 (buf, callid); + tid_word_be = GINT32_TO_BE (tid_word); + g_byte_array_append (buf, (const guint8 *) &tid_word_be, 4); + if (tid) { + xmm7360_byte_array_append_asn_int4 (buf, tid); + } + + g_assert (total_len == buf->len + body->len - 4); + g_byte_array_append (buf, (const guint8 *) body->data, body->len); + g_byte_array_unref (body); + + return buf; +} + +static gboolean +xmm7360_rpc_msg_body_unpack (GByteArray *buf, GPtrArray *args, GError **error) +{ + gsize offset; + gint consumed; + + g_assert (buf != NULL && args != NULL); + + offset = 0; + while (offset < buf->len) { + g_autoptr(Xmm7360RpcMsgArg) arg = NULL; + + arg = g_new0 (Xmm7360RpcMsgArg, 1); + arg->size = 0; + switch (buf->data[offset]) { + case 0x02: + consumed = xmm7360_byte_array_read_asn_int (buf, + offset, + NULL, + arg, + error); + if (consumed < 0) + return FALSE; + offset += consumed; + break; + case 0x55: + case 0x56: + case 0x57: + arg->type = XMM7360_RPC_MSG_ARG_TYPE_STRING; + consumed = xmm7360_byte_array_read_string (buf, + offset, + arg, + error); + if (consumed < 0) + return FALSE; + offset += consumed; + break; + default: + arg->type = XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN; + PARSE_ERROR ("Unknown type 0x%x", buf->data[offset]); + return FALSE; + } + g_ptr_array_add (args, g_steal_pointer (&arg)); + } + + return TRUE; +} + +Xmm7360RpcResponse * +xmm7360_parse_response (GByteArray *buf, GError **error) +{ + g_autoptr(Xmm7360RpcResponse) response = NULL; + gsize offset; + gint consumed; + gint asn_msg_len = 0; + gint unsol_id = 0; + + /* first 20 bytes are format header: + * message size ( int32, 4) + * message size (again!) (asn int, 6) + * unsolicited message id (asn int, 6) + * transmission id ( int32, 4) + */ + if (buf->len <= 20) { + PARSE_ERROR ("error parsing RPC message: message size %u too short", buf->len); + return NULL; + } + + /* Read and validate the ASN message size */ + offset = 4; + consumed = xmm7360_byte_array_read_asn_int (buf, offset, &asn_msg_len, NULL, error); + if (consumed < 0) { + g_prefix_error (error, "error parsing RPC message: error reading ASN message size: "); + return NULL; + } + offset += consumed; + /* Make sure the ASN message size and message size agree */ + if (*(gint32 *) buf->data != asn_msg_len) { + PARSE_ERROR ("error parsing RPC message: length mismatch (buf %d != asn %d)", + *(gint32 *) buf->data, asn_msg_len); + return NULL; + } + + consumed = xmm7360_byte_array_read_asn_int (buf, offset, &unsol_id, NULL, error); + if (consumed < 0) { + g_prefix_error (error, "error parsing RPC message: error reading unsolicited message id: "); + return NULL; + } + offset += consumed; + + /* initialize all fields of the response */ + response = g_new0 (Xmm7360RpcResponse, 1); + response->id = GINT32_FROM_BE (*(gint32 *) (buf->data + 16)); + response->type = XMM7360_RPC_RESPONSE_TYPE_UNKNOWN; + response->unsol_id = unsol_id; + response->body = g_byte_array_new (); + response->content = g_ptr_array_new_with_free_func ((GDestroyNotify)xmm7360_rpc_msg_arg_free); + + g_byte_array_append (response->body, &buf->data[20], buf->len - 20); + if (!xmm7360_rpc_msg_body_unpack (response->body, response->content, error)) + return NULL; + + if (response->id == 0x11000100) { + response->type = XMM7360_RPC_RESPONSE_TYPE_RESPONSE; + } else if ((response->id & 0xffffff00) == 0x11000100) { + if (response->unsol_id >= 0x7d0) { + response->type = XMM7360_RPC_RESPONSE_TYPE_ASYNC_ACK; + } else { + Xmm7360RpcMsgArg *arg; + + response->type = XMM7360_RPC_RESPONSE_TYPE_RESPONSE; + + /* discard first element in content (equals transmission id) */ + arg = (Xmm7360RpcMsgArg *) g_ptr_array_index (response->content, 0); + if (arg->type != XMM7360_RPC_MSG_ARG_TYPE_LONG + || (guint32) XMM7360_RPC_MSG_ARG_GET_INT (arg) != response->id) { + PARSE_ERROR ("error parsing RPC message: invalid start of async response body (type %u not LONG or ID mismatch)", + arg->type); + return NULL; + } + g_ptr_array_remove_index (response->content, 0); + g_byte_array_remove_range (response->body, 0, 6); + } + } else { + response->type = XMM7360_RPC_RESPONSE_TYPE_UNSOLICITED; + } + + return g_steal_pointer (&response); +} diff --git a/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.h b/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.h new file mode 100644 index 00000000..f2f34f6f --- /dev/null +++ b/src/plugins/intel/mm-xmmrpc-xmm7360-protocol.h @@ -0,0 +1,549 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * Copyright (C) 2019 James Wah + * Copyright (C) 2020 Marinus Enzinger + * Copyright (C) 2023 Shane Parslow + * Copyright (C) 2024 Thomas Vogt + */ + +#ifndef MM_XMMRPC_XMM7360_PROTOCOL_H +#define MM_XMMRPC_XMM7360_PROTOCOL_H + +#include + +typedef enum { + XMM7360_RPC_CALL_UTA_MS_SIM_OPEN_REQ = 0x001, + XMM7360_RPC_CALL_UTA_MS_SIM_APDU_CMD_REQ = 0x002, + XMM7360_RPC_CALL_UTA_MS_SIM_APPLICATION_REQ = 0x004, + XMM7360_RPC_CALL_UTA_MS_SIM_DECODE_FCP = 0x006, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_READ_ENTRY_REQ = 0x00d, + XMM7360_RPC_CALL_UTA_MS_SIM_GEN_PIN_REQ = 0x00f, + XMM7360_RPC_CALL_UTA_MS_SIM_MODIFY_LOCK_REQ = 0x011, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_PROACTIVE_COMMAND_RSP = 0x016, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_ENVELOPE_COMMAND_REQ = 0x017, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_TERMINAL_PROFILE_READ_REQ = 0x019, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_REGISTER_HANDLER = 0x01c, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_DEREGISTER_HANDLER = 0x01d, + XMM7360_RPC_CALL_UTA_MS_CPS_SET_MODE_REQ = 0x01f, + XMM7360_RPC_CALL_UTA_MS_CPS_SET_STACK_MODE_CONFIGURATION = 0x020, + XMM7360_RPC_CALL_UTA_MS_CPS_SET_SIM_MODE_CONFIGURATION = 0x021, + XMM7360_RPC_CALL_UTA_MS_CPS_READ_IMEI = 0x023, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_INIT = 0x024, + XMM7360_RPC_CALL_UTA_MS_CBS_INIT = 0x025, + XMM7360_RPC_CALL_UTA_MS_SS_INIT = 0x026, + XMM7360_RPC_CALL_UTA_MS_SS_SEND_USSD_REQ = 0x027, + XMM7360_RPC_CALL_UTA_MS_SS_RESPOND_USSD = 0x028, + XMM7360_RPC_CALL_UTA_MS_SS_ABORT = 0x029, + XMM7360_RPC_CALL_UTA_MS_SMS_INIT = 0x030, + XMM7360_RPC_CALL_UTA_MS_SMS_SEND_REQ = 0x031, + XMM7360_RPC_CALL_UTA_MS_SMS_SET_MEMORY_AVAILABLE_REQ = 0x034, + XMM7360_RPC_CALL_UTA_MS_SMS_INCOMING_SMS_ACK = 0x036, + XMM7360_RPC_CALL_UTA_MS_SMS_SIM_MSG_COUNT_REQ = 0x038, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_INITIALIZE = 0x03a, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_OBTAIN_PDP_CONTEXT_ID = 0x03b, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_RELEASE_PDP_CONTEXT_ID = 0x03c, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_DEFINE_PRIMARY_REQ = 0x03d, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_UNDEFINE_PRIMARY_REQ = 0x03f, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_PRIMARY_REQ = 0x041, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_AUTHENTICATION_REQ = 0x043, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_DNS_REQ = 0x045, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEGOTIATED_DNS_REQ = 0x047, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEG_IP_ADDR_REQ = 0x049, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_ACTIVATE_REQ = 0x04b, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_DEACTIVATE_REQ = 0x04e, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_CONNECT_REQ = 0x051, + XMM7360_RPC_CALL_UTA_MS_NET_OPEN = 0x053, + XMM7360_RPC_CALL_UTA_MS_NET_SET_RADIO_SIGNAL_REPORTING = 0x054, + XMM7360_RPC_CALL_UTA_MS_NET_SINGLE_SHOT_RADIO_SIGNAL_REPORTING_REQ = 0x055, + XMM7360_RPC_CALL_UTA_MS_NET_ATTACH_REQ = 0x05c, + XMM7360_RPC_CALL_UTA_MS_NET_PS_ATTACH_REQ = 0x05d, + XMM7360_RPC_CALL_UTA_MS_NET_PS_DETACH_REQ = 0x05e, + XMM7360_RPC_CALL_UTA_MS_NET_SCAN_REQ = 0x05f, + XMM7360_RPC_CALL_UTA_MS_NET_SCAN_ABORT = 0x060, + XMM7360_RPC_CALL_UTA_MS_NET_POWER_DOWN_REQ = 0x061, + XMM7360_RPC_CALL_UTA_MS_NET_EXT_SCAN_REQ = 0x062, + XMM7360_RPC_CALL_UTA_MS_NET_SET_FD_CONFIG_REQ = 0x06e, + XMM7360_RPC_CALL_UTA_MS_NET_GET_FD_CONFIG_REQ = 0x071, + XMM7360_RPC_CALL_UTA_MS_NET_CONFIGURE_NETWORK_MODE_REQ = 0x073, + XMM7360_RPC_CALL_UTA_MS_NET_RAT_MODE_STATUS_REQ = 0x076, + XMM7360_RPC_CALL_UTA_NVM_READ = 0x079, + XMM7360_RPC_CALL_UTA_NVM_WRITE = 0x07a, + XMM7360_RPC_CALL_UTA_NVM_WRITE_COMMIT = 0x07b, + XMM7360_RPC_CALL_UTA_SYS_GET_INFO = 0x07c, + XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_SETUP_REQ = 0x07d, + XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_TO_DATACHANNEL_REQ = 0x07e, + XMM7360_RPC_CALL_UTA_RPC_PS_CONNECT_RELEASE_REQ = 0x07f, + XMM7360_RPC_CALL_UTA_MS_NET_DC_SET_VOICE_DOMAIN_PREFERENCE_CONFIG_REQ = 0x080, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_SETUP_VOICE_CALL_REQ = 0x082, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_RELEASE_CALL_REQ = 0x088, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_ACCEPT_CALL_REQ = 0x08d, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_SWAP_CALLS_REQ = 0x090, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_HOLD_CALL_REQ = 0x092, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_RETRIEVE_CALL_REQ = 0x094, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_SPLIT_MPTY_REQ = 0x096, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_JOIN_CALLS_REQ = 0x098, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_TRANSFER_CALLS_REQ = 0x09a, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_START_DTMF_REQ = 0x09c, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_STOP_DTMF_REQ = 0x09e, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_SET_UUS1_INFO = 0x0a6, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_SET_TTY_DEVICE_MODE = 0x0a7, + XMM7360_RPC_CALL_UTA_MS_CALL_CS_GET_TTY_DEVICE_MODE = 0x0a8, + XMM7360_RPC_CALL_UTA_MS_CALL_MULTIMEDIA_SETUP_CALL_REQ = 0x0ac, + XMM7360_RPC_CALL_UTA_MS_CALL_MULTIMEDIA_UPDATE_CALL_REQ = 0x0ad, + XMM7360_RPC_CALL_UTA_MS_CPS_SET_SIM_MODE_REQ = 0x0b0, + XMM7360_RPC_CALL_UTA_MS_SS_CALL_FORWARD_REQ = 0x0b2, + XMM7360_RPC_CALL_UTA_MS_SS_CALL_WAITING_REQ = 0x0b4, + XMM7360_RPC_CALL_UTA_MS_SS_CALL_BARRING_REQ = 0x0b6, + XMM7360_RPC_CALL_UTA_MS_SS_IDENTIFICATION_REQ = 0x0b8, + XMM7360_RPC_CALL_UTA_MS_SMS_SET_SEND_MORE_MESSAGES_STATUS = 0x0ba, + XMM7360_RPC_CALL_UTA_MS_SMS_DATA_DOWNLOAD_REQ = 0x0bb, + XMM7360_RPC_CALL_UTA_MS_SMS_DATA_DOWNLOAD_ACK = 0x0bd, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NEG_QOS_REQ = 0x0be, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_TFT_REQ = 0x0c0, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_PCO_REQ = 0x0c2, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_GET_NW_PCO_REQ = 0x0c4, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_NW_ACTIVATE_ACCEPT_REQ = 0x0c7, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_NW_ACTIVATE_REJECT_REQ = 0x0c9, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_SET_DATA_PREF_REQ = 0x0cd, + XMM7360_RPC_CALL_UTA_MS_CBS_START_REQ = 0x0cf, + XMM7360_RPC_CALL_UTA_MS_CBS_STOP_REQ = 0x0d0, + XMM7360_RPC_CALL_UTA_MS_CBS_SET_MSG_FILTER = 0x0d3, + XMM7360_RPC_CALL_UTA_MS_CBS_GET_MSG_FILTER = 0x0d4, + XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_CONFIG_REQ = 0x0d6, + XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_START_REQ = 0x0d8, + XMM7360_RPC_CALL_UTA_MS_CBS_ETWS_STOP_REQ = 0x0da, + XMM7360_RPC_CALL_UTA_MS_CPS_NVM_WRITE = 0x0de, + XMM7360_RPC_CALL_UTA_MS_CPS_NVM_READ = 0x0df, + XMM7360_RPC_CALL_UTA_MS_NET_CONFIGURE_RX_DIVERSITY_DARP = 0x0e0, + XMM7360_RPC_CALL_UTA_MS_NET_LDR_GET_APN_PARAMETER_LIST = 0x0e2, + XMM7360_RPC_CALL_UTA_MS_NET_TIME_INFO_READ_REQ = 0x0e3, + XMM7360_RPC_CALL_UTA_MS_NET_SET_CSG_CONFIG_REQ = 0x0e6, + XMM7360_RPC_CALL_UTA_MS_NET_BAND_STATUS_REQ = 0x0e7, + XMM7360_RPC_CALL_UTA_MS_NET_GET_EXTENDED_RADIO_SIGNAL_INFO_REQ = 0x0ec, + XMM7360_RPC_CALL_UTA_MS_NET_DETACH_REQ = 0x0ef, + XMM7360_RPC_CALL_UTA_MS_NET_SELECT_GPRS_CLASS_REQ = 0x0f1, + XMM7360_RPC_CALL_UTA_MS_NET_GET_CSG_CONFIG_REQ = 0x0f3, + XMM7360_RPC_CALL_UTA_MS_NET_CS_SERVICE_NOTIFICATION_ACCEPT = 0x0f4, + XMM7360_RPC_CALL_UTA_MS_NET_SINGLE_SHOT_FD_REQ = 0x0f9, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_LOCATION_REQ = 0x0fb, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_READ_GAS_ENTRY_REQ = 0x0fd, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_WRITE_ENTRY_REQ = 0x0ff, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_GET_META_INFORMATION_REQ = 0x101, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_USIM_PB_SELECT_REQ = 0x103, + XMM7360_RPC_CALL_UTA_MS_SIM_PB_GET_FREE_RECORDS_REQ = 0x105, + XMM7360_RPC_CALL_UTA_MS_SIM_CREATE_READ_BINARY_APDU = 0x10a, + XMM7360_RPC_CALL_UTA_MS_SIM_CREATE_UPDATE_BINARY_APDU = 0x10b, + XMM7360_RPC_CALL_UTA_MS_SIM_ANALYSE_READ_RESULT = 0x10c, + XMM7360_RPC_CALL_UTA_MS_SIM_SET_FDN_REQ = 0x10e, + XMM7360_RPC_CALL_SET_AP_SCREEN_STATE = 0x110, + XMM7360_RPC_CALL_UTA_IO_CTL = 0x111, + XMM7360_RPC_CALL_UTA_IDC_AP_MSG_SET_REQ = 0x114, + XMM7360_RPC_CALL_UTA_IDC_AP_MSG_GET_REQ = 0x115, + XMM7360_RPC_CALL_UTA_IDC_ENBLE_REQ = 0x116, + XMM7360_RPC_CALL_UTA_IDC_CWS_MSG_SET_REQ = 0x119, + XMM7360_RPC_CALL_UTA_IDC_CWS_MSG_GET_REQ = 0x11a, + XMM7360_RPC_CALL_UTA_IDC_SUBSCRIBE_INDICATIONS = 0x11c, + XMM7360_RPC_CALL_UTA_IDC_UNSUBSCRIBE_INDICATIONS = 0x11d, + XMM7360_RPC_CALL_UTA_BOOT_PREPARE_SHUTDOWN_REQ = 0x11f, + XMM7360_RPC_CALL_UTA_BOOT_SHUTDOWN_REQ = 0x120, + XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_2G = 0x121, + XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_3G = 0x122, + XMM7360_RPC_CALL_UTA_RF_MAX_TX_PWR_SET_4G = 0x123, + XMM7360_RPC_CALL_UTA_FREQ_INFO_ACTIVATE_REQ = 0x128, + XMM7360_RPC_CALL_UTA_FREQ_INFO_GET_FREQ_INFO_REQ = 0x129, + XMM7360_RPC_CALL_UTA_FREQ_INFO_DEACTIVATE_REQ = 0x12a, + XMM7360_RPC_CALL_UTA_FREQ_INFO_REGISTER_INDICATIONS = 0x12b, + XMM7360_RPC_CALL_UTA_FREQ_INFO_DEREGISTER_INDICATIONS = 0x12c, + XMM7360_RPC_CALL_UTA_MODE_SET_REQ = 0x12f, + XMM7360_RPC_CALL_UTA_NVM_FLUSH_SYNC = 0x130, + XMM7360_RPC_CALL_UTA_PROD_REGISTER_GTI_CALLBACK_FUNC = 0x132, + XMM7360_RPC_CALL_UTA_PROD_GTI_CMD_REQ = 0x133, + XMM7360_RPC_CALL_UTA_CELL_TIME_STAMP_REQ = 0x134, + XMM7360_RPC_CALL_UTA_MS_SS_LCS_INIT = 0x136, + XMM7360_RPC_CALL_UTA_MS_SS_LCS_MO_LOCATION_REQ = 0x137, + XMM7360_RPC_CALL_UTA_MS_SS_LCS_MTLR_NOTIFICATION_RSP = 0x139, + XMM7360_RPC_CALL_UTA_MS_CP_ASSISTANCE_DATA_INJECT_REQ = 0x13c, + XMM7360_RPC_CALL_UTA_MS_CP_RESET_ASSISTANCE_DATA = 0x13d, + XMM7360_RPC_CALL_UTA_MS_CP_POS_MEASUREMENT_REQ = 0x140, + XMM7360_RPC_CALL_UTA_MS_CP_POS_MEASUREMENT_ABORT_REQ = 0x142, + XMM7360_RPC_CALL_UTA_MS_CP_POS_ENABLE_MEASUREMENT_REPORT = 0x144, + XMM7360_RPC_CALL_UTA_MS_CP_POS_DISABLE_MEASUREMENT_REPORT = 0x145, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_INIT = 0x146, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SMS_PP_RSP = 0x148, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SIM_INITIATED_CALL_RSP = 0x14a, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_SS_USSD_RSP = 0x14c, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_EXEC_DTMF_RSP = 0x14e, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_STOP_DTMF_REQ = 0x150, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_REFRESH_CONFIRM_RSP = 0x152, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_REFRESH_FCN_RSP = 0x154, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_CONTROL_REQ = 0x155, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_TERMINAL_PROFILE_DOWNLOAD_REQ = 0x157, + XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_SEND_REQ = 0x15a, + XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_SUBSCRIBE_INDICATIONS = 0x15c, + XMM7360_RPC_CALL_UTA_MS_3GPP2_SMS_UNSUBSCRIBE_INDICATIONS = 0x15d, + XMM7360_RPC_CALL_RPC_GET_REMOTE_VER_INFO = 0x15e, + XMM7360_RPC_CALL_UTA_MS_METRICS_REGISTER_HANDLER = 0x160, + XMM7360_RPC_CALL_UTA_MS_METRICS_DEREGISTER_HANDLER = 0x161, + XMM7360_RPC_CALL_UTA_MS_METRICS_SET_OPTIONS = 0x162, + XMM7360_RPC_CALL_UTA_MS_METRICS_TRIGGER = 0x163, + XMM7360_RPC_CALL_UTA_MS_EMBMS_INIT = 0x164, + XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_SERVICE_REQ = 0x165, + XMM7360_RPC_CALL_UTA_MS_EMBMS_MBSFN_AREA_CONFIG_REQ = 0x166, + XMM7360_RPC_CALL_UTA_MS_EMBMS_SESSION_CONFIG_REQ = 0x167, + XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_INTERESTED_TMGI_LIST_REQ = 0x168, + XMM7360_RPC_CALL_UTA_MS_EMBMS_SET_INTERESTED_SAI_FREQ_REQ = 0x169, + XMM7360_RPC_CALL_UTA_IMS_SUBSCRIBE_INDICATIONS = 0x176, + XMM7360_RPC_CALL_UTA_IMS_UNSUBSCRIBE_INDICATIONS = 0x177, + XMM7360_RPC_CALL_UTA_IMS_GET_FRAMEWORK_STATE = 0x178, + XMM7360_RPC_CALL_UTA_RTC_GET_DATETIME = 0x179, + XMM7360_RPC_CALL_UTA_MS_SIM_ANALYSE_SIM_APDU_RESULT = 0x17a, + XMM7360_RPC_CALL_UTA_MS_SIM_OPEN_CHANNEL_REQ = 0x17b, + XMM7360_RPC_CALL_UTA_MS_SIM_CLOSE_CHANNEL_REQ = 0x17d, + XMM7360_RPC_CALL_UTA_MS_SIM_SET_BDN_REQ = 0x17f, + XMM7360_RPC_CALL_UTA_MS_SET_SIM_STACK_MAPPING_REQ = 0x181, + XMM7360_RPC_CALL_UTA_MS_GET_SIM_STACK_MAPPING_REQ = 0x183, + XMM7360_RPC_CALL_UTA_MS_NET_SET_RADIO_SIGNAL_REPORTING_CONFIGURATION = 0x188, + XMM7360_RPC_CALL_UTA_PC_IE_ENUMERATIONEXT_TOUT = 0x189, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_SET_TERMINAL_CAPABILITY_REQ = 0x18a, + XMM7360_RPC_CALL_UTA_MS_SIM_TK_READ_TERMINAL_CAPABILITY_REQ = 0x18c, + XMM7360_RPC_CALL_CSI_FCC_LOCK_QUERY_REQ = 0x18e, + XMM7360_RPC_CALL_CSI_FCC_LOCK_GEN_CHALLENGE_REQ = 0x190, + XMM7360_RPC_CALL_CSI_FCC_LOCK_VER_CHALLENGE_REQ = 0x192, + XMM7360_RPC_CALL_UTA_SENSOR_OPEN_REQ = 0x194, + XMM7360_RPC_CALL_UTA_SENSOR_CLOSE_EXT = 0x197, + XMM7360_RPC_CALL_UTA_SENSOR_START_EXT = 0x198, + XMM7360_RPC_CALL_UTA_SENSOR_SET_ALARM_PARAM_EXT = 0x199, + XMM7360_RPC_CALL_UTA_SENSOR_SET_SCHEDULER_PARAM_EXT = 0x19a, + XMM7360_RPC_CALL_CSI_SIO_IP_FILTER_CNTRL_SET_REQ = 0x19b, + XMM7360_RPC_CALL_UTA_MS_ACC_CURRENT_FREQ_INFO_REQ = 0x19d, + XMM7360_RPC_CALL_CSI_TRC_AT_CMND_REQ = 0x1a0, + XMM7360_RPC_CALL_UTA_MS_SIM_APDU_CMD_EXT_REQ = 0x1a2, + XMM7360_RPC_CALL_UTA_MS_NET_GET_PLMN_NAME_INFO_REQ = 0x1a4, + XMM7360_RPC_CALL_UTA_MS_NET_GET_COUNTRY_LIST_REQ = 0x1a7, + XMM7360_RPC_CALL_UTA_MS_NET_EXT_CONFIGURE_NETWORK_MODE_REQ = 0x1a9, + XMM7360_RPC_CALL_UTA_MS_NET_EXT_BAND_STATUS_REQ = 0x1ac, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_ATTACH_APN_CONFIG_REQ = 0x1af, + XMM7360_RPC_CALL_CSI_MS_CALL_PS_INITIALIZE = 0x1b1, + XMM7360_RPC_CALL_UTA_AUDIO_ENABLE_SOURCE = 0x1b2, + XMM7360_RPC_CALL_UTA_AUDIO_DISABLE_SOURCE = 0x1b3, + XMM7360_RPC_CALL_UTA_AUDIO_CONFIGURE_DESTINATION_EXT = 0x1b4, + XMM7360_RPC_CALL_UTA_AUDIO_SET_DESTINATIONS_FOR_SOURCE = 0x1b5, + XMM7360_RPC_CALL_UTA_AUDIO_SET_VOLUME_FOR_SOURCE = 0x1b6, + XMM7360_RPC_CALL_UTA_AUDIO_SET_MUTE_FOR_SOURCE_EXT = 0x1b7, + XMM7360_RPC_CALL_UTA_AUDIO_SET_VOLUME_FOR_DESTINATION = 0x1b8, + XMM7360_RPC_CALL_UTA_AUDIO_SET_MUTE_FOR_DESTINATION_EXT = 0x1b9, + XMM7360_RPC_CALL_UTA_AUDIO_CONFIGURE_SOURCE_EXT = 0x1ba, + XMM7360_RPC_CALL_UTA_AUDIO_SET_DESTINATIONS_FOR_SOURCE_EXT = 0x1bb, + XMM7360_RPC_CALL_UTA_RPC_SCREEN_CONTROL_REQ = 0x1bc, + XMM7360_RPC_CALL_UTA_MS_CALL_PS_READ_CONTEXT_STATUS_REQ = 0x1bd, + XMM7360_RPC_CALL_CSI_MS_SIM_ACCESS_GET_SIM_STATE_INFO_REQ = 0x1bf, + XMM7360_RPC_CALL_CSI_MS_NET_GET_REGISTRATION_INFO_REQ = 0x1c1, + XMM7360_RPC_CALL_CSI_SIO_IP_FILTER_NEW_CNTRL_SET_REQ = 0x1c3, + XMM7360_RPC_CALL_CSI_MS_NET_LDR_GET_APN_PLMN_PARAMETER_LIST_REQ = 0x1c5, + XMM7360_RPC_CALL_RPC_GET_API_PARAM_CHANGED_BITMAP = 0x1c8, +} Xmm7360RpcCallId; + +typedef enum { + XMM7360_RPC_UNSOL_UTA_MS_SIM_APDU_CMD_RSP_CB = 0x003, + XMM7360_RPC_UNSOL_UTA_MS_SIM_APPLICATION_RSP_CB = 0x005, + XMM7360_RPC_UNSOL_UTA_MS_SIM_INFO_IND_CB = 0x007, + XMM7360_RPC_UNSOL_UTA_MS_SIM_INIT_IND_CB = 0x008, + XMM7360_RPC_UNSOL_UTA_MS_SIM_FULL_ACCESS_IND_CB = 0x009, + XMM7360_RPC_UNSOL_UTA_MS_SIM_ERROR_IND_CB = 0x00a, + XMM7360_RPC_UNSOL_UTA_MS_SIM_CARD_IND_CB = 0x00b, + XMM7360_RPC_UNSOL_UTA_MS_SIM_APPLICATION_IND_CB = 0x00c, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_READ_ENTRY_RSP_CB = 0x00e, + XMM7360_RPC_UNSOL_UTA_MS_SIM_GEN_PIN_RSP_CB = 0x010, + XMM7360_RPC_UNSOL_UTA_MS_SIM_MODIFY_LOCK_RSP_CB = 0x012, + XMM7360_RPC_UNSOL_UTA_MS_SIM_LOCK_STATUS_IND_CB = 0x013, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_MO_SMS_CONTROL_INFO_IND_CB = 0x014, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_PROACTIVE_COMMAND_IND_CB = 0x015, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_ENVELOPE_RES_IND_CB = 0x018, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_PROFILE_READ_RSP_CB = 0x01a, + XMM7360_RPC_UNSOL_UTA_SIM_TK_PROACTIVE_COMMAND_HANDLER_FUNC = 0x01b, + XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_MODE_RSP = 0x01e, + XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_MODE_IND_CB = 0x022, + XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_ERROR_IND_CB = 0x02a, + XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_REJECT_IND_CB = 0x02b, + XMM7360_RPC_UNSOL_UTA_MS_SS_NETWORK_GSM_CAUSE_IND_CB = 0x02c, + XMM7360_RPC_UNSOL_UTA_MS_SS_USSD_RSP_CB = 0x02d, + XMM7360_RPC_UNSOL_UTA_MS_SS_USSD_IND_CB = 0x02e, + XMM7360_RPC_UNSOL_UTA_MS_SS_END_IND_CB = 0x02f, + XMM7360_RPC_UNSOL_UTA_MS_SMS_INCOMING_IND_CB = 0x032, + XMM7360_RPC_UNSOL_UTA_MS_SMS_SEND_RSP_CB = 0x033, + XMM7360_RPC_UNSOL_UTA_MS_SMS_SET_MEMORY_AVAILABLE_RSP_CB = 0x035, + XMM7360_RPC_UNSOL_UTA_MS_SMS_SIM_MSG_CACHE_FINISHED_IND_CB = 0x037, + XMM7360_RPC_UNSOL_UTA_MS_SMS_SIM_MSG_COUNT_RSP_CB = 0x039, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEFINE_PRIMARY_RSP_CB = 0x03e, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_UNDEFINE_PRIMARY_RSP_CB = 0x040, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_PRIMARY_RSP_CB = 0x042, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_AUTHENTICATION_RSP_CB = 0x044, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_DNS_RSP_CB = 0x046, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEGOTIATED_DNS_RSP_CB = 0x048, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEG_IP_ADDR_RSP_CB = 0x04a, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ACTIVATE_RSP_CB = 0x04c, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ACTIVATE_STATUS_IND_CB = 0x04d, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEACTIVATE_RSP_CB = 0x04f, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_DEACTIVATE_IND_CB = 0x050, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_CONNECT_RSP_CB = 0x052, + XMM7360_RPC_UNSOL_UTA_MS_NET_SINGLE_SHOT_RADIO_SIGNAL_REPORTING_RSP_CB = 0x056, + XMM7360_RPC_UNSOL_UTA_MS_NET_CELL_INFO_IND_CB = 0x057, + XMM7360_RPC_UNSOL_UTA_MS_NET_CONNECTION_INFO_IND_CB = 0x058, + XMM7360_RPC_UNSOL_UTA_MS_NET_HSPA_INFO_IND_CB = 0x059, + XMM7360_RPC_UNSOL_UTA_MS_NET_RADIO_SIGNAL_IND_CB = 0x05a, + XMM7360_RPC_UNSOL_UTA_MS_NET_CELL_CHANGE_IND_CB = 0x05b, + XMM7360_RPC_UNSOL_UTA_MS_NET_ATTACH_RSP_CB = 0x063, + XMM7360_RPC_UNSOL_UTA_MS_NET_PS_ATTACH_RSP_CB = 0x064, + XMM7360_RPC_UNSOL_UTA_MS_NET_PS_DETACH_RSP_CB = 0x065, + XMM7360_RPC_UNSOL_UTA_MS_NET_SCAN_RSP_CB = 0x066, + XMM7360_RPC_UNSOL_UTA_MS_NET_POWER_DOWN_RSP_CB = 0x067, + XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_SCAN_RSP_CB = 0x068, + XMM7360_RPC_UNSOL_UTA_MS_NET_PS_ATTACH_IND_CB = 0x069, + XMM7360_RPC_UNSOL_UTA_MS_NET_PS_DETACH_IND_CB = 0x06a, + XMM7360_RPC_UNSOL_UTA_MS_NET_REGISTRATION_INFO_IND_CB = 0x06b, + XMM7360_RPC_UNSOL_UTA_MS_NET_IS_ATTACH_ALLOWED_IND_CB = 0x06c, + XMM7360_RPC_UNSOL_UTA_MS_NET_GPRS_CLASS_IND_CB = 0x06d, + XMM7360_RPC_UNSOL_UTA_MS_NET_SET_FD_CONFIG_RSP_CB = 0x06f, + XMM7360_RPC_UNSOL_UTA_MS_NET_FD_CONFIG_IND_CB = 0x070, + XMM7360_RPC_UNSOL_UTA_MS_NET_GET_FD_CONFIG_RSP_CB = 0x072, + XMM7360_RPC_UNSOL_UTA_MS_NET_CONFIGURE_NETWORK_MODE_RSP_CB = 0x074, + XMM7360_RPC_UNSOL_UTA_MS_NET_NETWORK_MODE_CHANGE_IND_CB = 0x075, + XMM7360_RPC_UNSOL_UTA_MS_NET_RAT_MODE_STATUS_RSP_CB = 0x077, + XMM7360_RPC_UNSOL_UTA_MS_NET_RAT_MODE_STATUS_IND_CB = 0x078, + XMM7360_RPC_UNSOL_UTA_MS_NET_DC_SET_VOICE_DOMAIN_PREFERENCE_CONFIG_RSP_CB = 0x081, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SETUP_CALL_RSP_CB = 0x083, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DIALING_IND_CB = 0x084, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_ALERTING_IND_CB = 0x085, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CTM_INFO_IND_CB = 0x086, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CONNECTED_IND_CB = 0x087, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_RELEASE_CALL_RSP_CB = 0x089, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DISCONNECTING_IND_CB = 0x08a, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_DISCONNECTED_IND_CB = 0x08b, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_INCOMING_CALL_IND_CB = 0x08c, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_ACCEPT_CALL_RSP_CB = 0x08e, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_PROGRESS_IND_CB = 0x08f, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SWAP_CALLS_RSP_CB = 0x091, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_HOLD_CALL_RSP_CB = 0x093, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_RETRIEVE_CALL_RSP_CB = 0x095, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_SPLIT_MPTY_RSP_CB = 0x097, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_JOIN_CALLS_RSP_CB = 0x099, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_TRANSFER_CALLS_RSP_CB = 0x09b, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_START_DTMF_RSP_CB = 0x09d, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_STOP_DTMF_RSP_CB = 0x09f, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_STOP_DTMF_EXT_RSP_CB = 0x0a0, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_NOTIFICATION_IND_CB = 0x0a1, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CUG_INFO_IND_CB = 0x0a2, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CALLING_NAME_INFO_IND_CB = 0x0a3, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_EMERGENCY_NUMBER_LIST_IND_CB = 0x0a4, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_CALL_STATUS_IND_CB = 0x0a5, + XMM7360_RPC_UNSOL_UTA_CALL_MULTIMEDIA_GET_MEDIA_PROFILES_INFO_RSP_CB = 0x0a9, + XMM7360_RPC_UNSOL_UTA_MS_CALL_MULTIMEDIA_SETUP_CALL_RSP_CB = 0x0aa, + XMM7360_RPC_UNSOL_UTA_MS_CALL_MULTIMEDIA_UPDATE_CALL_RSP_CB = 0x0ab, + XMM7360_RPC_UNSOL_UTA_MS_CALL_CS_VOIMS_SRVCC_HO_STATUS_IND_CB = 0x0ae, + XMM7360_RPC_UNSOL_UTA_MS_CPS_SET_SIM_MODE_RSP = 0x0af, + XMM7360_RPC_UNSOL_UTA_MS_CPS_STARTUP_IND_CB = 0x0b1, + XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_FORWARD_RSP_CB = 0x0b3, + XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_WAITING_RSP_CB = 0x0b5, + XMM7360_RPC_UNSOL_UTA_MS_SS_CALL_BARRING_RSP_CB = 0x0b7, + XMM7360_RPC_UNSOL_UTA_MS_SS_IDENTIFICATION_RSP_CB = 0x0b9, + XMM7360_RPC_UNSOL_UTA_MS_SMS_DATA_DOWNLOAD_RSP_CB = 0x0bc, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NEG_QOS_RSP_CB = 0x0bf, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_TFT_RSP_CB = 0x0c1, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_PCO_RSP_CB = 0x0c3, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_GET_NW_PCO_RSP_CB = 0x0c5, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_NW_ACTIVATE_IND_CB = 0x0c6, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_NW_ACTIVATE_ACCEPT_RSP_CB = 0x0c8, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_MODIFY_IND_CB = 0x0ca, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SUSPEND_IND_CB = 0x0cb, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_RESUME_IND_CB = 0x0cc, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_SET_DATA_PREF_RSP_CB = 0x0ce, + XMM7360_RPC_UNSOL_UTA_MS_CBS_START_RSP_CB = 0x0d1, + XMM7360_RPC_UNSOL_UTA_MS_CBS_STOP_RSP_CB = 0x0d2, + XMM7360_RPC_UNSOL_UTA_MS_CBS_NEW_MESSAGE_IND_CB = 0x0d5, + XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_CONFIG_RSP_CB = 0x0d7, + XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_START_RSP_CB = 0x0d9, + XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_STOP_RSP_CB = 0x0db, + XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_NOTIFY_PRIMARY_WARNING_IND = 0x0dc, + XMM7360_RPC_UNSOL_UTA_MS_CBS_ETWS_NOTIFY_SECONDARY_WARNING_IND = 0x0dd, + XMM7360_RPC_UNSOL_UTA_MS_NET_CONFIGURE_RX_DIVERSITY_DARP_IND_CB = 0x0e1, + XMM7360_RPC_UNSOL_UTA_MS_NET_TIME_INFO_READ_RSP_CB = 0x0e4, + XMM7360_RPC_UNSOL_UTA_MS_NET_TIME_INFO_IND_CB = 0x0e5, + XMM7360_RPC_UNSOL_UTA_MS_NET_BAND_STATUS_RSP_CB = 0x0e8, + XMM7360_RPC_UNSOL_UTA_MS_NET_BAND_STATUS_IND_CB = 0x0e9, + XMM7360_RPC_UNSOL_UTA_MS_NET_SET_CSG_CONFIG_RSP_CB = 0x0ea, + XMM7360_RPC_UNSOL_UTA_MS_NET_GET_CSG_CONFIG_RSP_CB = 0x0eb, + XMM7360_RPC_UNSOL_UTA_MS_NET_GET_EXTENDED_RADIO_SIGNAL_INFO_RSP_CB = 0x0ed, + XMM7360_RPC_UNSOL_UTA_MS_NET_NITZ_INFO_IND_CB = 0x0ee, + XMM7360_RPC_UNSOL_UTA_MS_NET_DETACH_RSP_CB = 0x0f0, + XMM7360_RPC_UNSOL_UTA_MS_NET_SELECT_GPRS_CLASS_RSP_CB = 0x0f2, + XMM7360_RPC_UNSOL_UTA_MS_NET_NETWORK_FEATURE_SUPPORT_INFO_IND_CB = 0x0f5, + XMM7360_RPC_UNSOL_UTA_MS_NET_EPS_NETWORK_FEATURE_SUPPORT_INFO_IND_CB = 0x0f6, + XMM7360_RPC_UNSOL_UTA_MS_NET_CS_SERVICE_NOTIFICATION_IND_CB = 0x0f7, + XMM7360_RPC_UNSOL_UTA_MS_NET_DUAL_SIM_SERVICE_IND_CB = 0x0f8, + XMM7360_RPC_UNSOL_UTA_MS_NET_SINGLE_SHOT_FD_RSP_CB = 0x0fa, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_LOCATION_RSP_CB = 0x0fc, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_READ_GAS_ENTRY_RSP_CB = 0x0fe, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_WRITE_ENTRY_RSP_CB = 0x100, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_META_INFORMATION_RSP_CB = 0x102, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_USIM_PB_SELECT_RSP_CB = 0x104, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_GET_FREE_RECORDS_RSP_CB = 0x106, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_USIM_PB_READY_IND_CB = 0x107, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_CACHE_LOAD_FINISHED_IND_CB = 0x108, + XMM7360_RPC_UNSOL_UTA_MS_SIM_PB_CACHE_LOAD_IND_CB = 0x109, + XMM7360_RPC_UNSOL_UTA_MS_SIM_GEN_PIN_IND_CB = 0x10d, + XMM7360_RPC_UNSOL_UTA_MS_SIM_FDN_STATE_IND_CB = 0x10f, + XMM7360_RPC_UNSOL_UTA_IDC_AP_MSG_SET_RSP_CB = 0x112, + XMM7360_RPC_UNSOL_UTA_IDC_AP_MSG_GET_RSP_CB = 0x113, + XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_SET_RSP_CB = 0x117, + XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_GET_RSP_CB = 0x118, + XMM7360_RPC_UNSOL_UTA_IDC_CWS_MSG_IND_CB = 0x11b, + XMM7360_RPC_UNSOL_UTA_BOOT_PREPARE_SHUTDOWN_RSP_CB = 0x11e, + XMM7360_RPC_UNSOL_UTA_FREQ_INFO_ACTIVATE_RSP_CB = 0x124, + XMM7360_RPC_UNSOL_UTA_FREQ_INFO_DEACTIVATE_RSP_CB = 0x125, + XMM7360_RPC_UNSOL_UTA_FREQ_INFO_GET_FREQ_INFO_RSP_CB = 0x126, + XMM7360_RPC_UNSOL_UTA_FREQ_INFO_INDICATION_CB = 0x127, + XMM7360_RPC_UNSOL_UTA_MODE_SET_RSP_CB = 0x12d, + XMM7360_RPC_UNSOL_UTA_MODE_STARTUP_IND_CB = 0x12e, + XMM7360_RPC_UNSOL_UTA_PROD_GTI_CMD_RSP_CB = 0x131, + XMM7360_RPC_UNSOL_UTA_CELL_TIME_STAMP_RSP_CB = 0x135, + XMM7360_RPC_UNSOL_UTA_MS_SS_LCS_MO_LOCATION_RSP_CB = 0x138, + XMM7360_RPC_UNSOL_UTA_MS_SS_LCS_CAPABILITIES_IND_CB = 0x13a, + XMM7360_RPC_UNSOL_UTA_MS_CP_ASSISTANCE_DATA_INJECT_RSP_CB = 0x13b, + XMM7360_RPC_UNSOL_UTA_MS_CP_ASSISTANCE_DATA_NEEDED_IND_CB = 0x13e, + XMM7360_RPC_UNSOL_UTA_MS_CP_POS_MEASUREMENT_RSP_CB = 0x13f, + XMM7360_RPC_UNSOL_UTA_MS_CP_POS_MEASUREMENT_ABORT_RSP_CB = 0x141, + XMM7360_RPC_UNSOL_UTA_MS_CP_POS_REPORT_MEASUREMENT_IND_CB = 0x143, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SMS_PP_IND_CB = 0x147, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SIM_INITIATED_CALL_IND_CB = 0x149, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_SS_USSD_IND_CB = 0x14b, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_DTMF_IND_CB = 0x14d, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_EXEC_DTMF_END_IND_CB = 0x14f, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_REFRESH_CONFIRM_IND_CB = 0x151, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_REFRESH_FCN_IND_CB = 0x153, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_CONTROL_RSP_CB = 0x156, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_PROFILE_DOWNLOAD_RSP_CB = 0x158, + XMM7360_RPC_UNSOL_UTA_MS_3GPP2_SMS_SEND_RSP_CB = 0x159, + XMM7360_RPC_UNSOL_UTA_MS_3GPP2_SMS_INCOMING_IND_CB = 0x15b, + XMM7360_RPC_UNSOL_UTA_METRICS_HANDLER_FUNCTION = 0x15f, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_SERVICE_RSP_CB = 0x16a, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MBSFN_AREA_CONFIG_RSP_CB = 0x16b, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SESSION_CONFIG_RSP_CB = 0x16c, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_INTERESTED_TMGI_LIST_RSP_CB = 0x16d, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SET_INTERESTED_SAI_FREQ_RSP_CB = 0x16e, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SERVICE_IND_CB = 0x16f, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MBSFN_AREA_IND_CB = 0x170, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SERVICES_LIST_IND_CB = 0x171, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_SAI_LIST_IND_CB = 0x172, + XMM7360_RPC_UNSOL_UTA_MS_EMBMS_MPS_INFO_IND_CB = 0x173, + XMM7360_RPC_UNSOL_UTA_IMS_STATE_CHANGED_IND_CB = 0x174, + XMM7360_RPC_UNSOL_UTA_IMS_SERVICE_STATE_CHANGED_IND_CB = 0x175, + XMM7360_RPC_UNSOL_UTA_MS_SIM_OPEN_CHANNEL_RSP_CB = 0x17c, + XMM7360_RPC_UNSOL_UTA_MS_SIM_CLOSE_CHANNEL_RSP_CB = 0x17e, + XMM7360_RPC_UNSOL_UTA_MS_SIM_BDN_STATE_IND_CB = 0x180, + XMM7360_RPC_UNSOL_UTA_MS_SET_SIM_STACK_MAPPING_RSP_CB = 0x182, + XMM7360_RPC_UNSOL_UTA_MS_GET_SIM_STACK_MAPPING_RSP_CB = 0x184, + XMM7360_RPC_UNSOL_UTA_MS_SIM_MCC_MNC_IND_CB = 0x185, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_TERMINAL_RESPONSE_IND_CB = 0x186, + XMM7360_RPC_UNSOL_UTA_MS_NET_REGISTERED_PLMN_NAME_IND_CB = 0x187, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_SET_TERMINAL_CAPABILITY_RSP_CB = 0x18b, + XMM7360_RPC_UNSOL_UTA_MS_SIM_TK_READ_TERMINAL_CAPABILITY_RSP_CB = 0x18d, + XMM7360_RPC_UNSOL_CSI_FCC_LOCK_QUERY_RSP_CB = 0x18f, + XMM7360_RPC_UNSOL_CSI_FCC_LOCK_GEN_CHALLENGE_RSP_CB = 0x191, + XMM7360_RPC_UNSOL_CSI_FCC_LOCK_VER_CHALLENGE_RSP_CB = 0x193, + XMM7360_RPC_UNSOL_UTA_SENSOR_OPEN_RSP_CB = 0x195, + XMM7360_RPC_UNSOL_UTA_SENSOR_MEAS_IND_CB = 0x196, + XMM7360_RPC_UNSOL_CSI_SIO_IP_FILTER_CNTRL_SET_RSP_CB = 0x19c, + XMM7360_RPC_UNSOL_CSI_SIO_IP_FILTER_NEW_CNTRL_SET_RSP_CB = 0x1c4, + XMM7360_RPC_UNSOL_UTA_MS_ACC_CURRENT_FREQ_INFO_RSP_CB = 0x19e, + XMM7360_RPC_UNSOL_UTA_MS_ACC_CURRENT_FREQ_INFO_IND_CB = 0x19f, + XMM7360_RPC_UNSOL_CSI_TRC_AT_CMND_RSP_CB = 0x1a1, + XMM7360_RPC_UNSOL_UTA_MS_SIM_APDU_CMD_EXT_RSP_CB = 0x1a3, + XMM7360_RPC_UNSOL_UTA_MS_NET_GET_PLMN_NAME_INFO_RSP_CB = 0x1a5, + XMM7360_RPC_UNSOL_UTA_MS_NET_SIB8_TIME_INFO_IND_CB = 0x1a6, + XMM7360_RPC_UNSOL_UTA_MS_NET_GET_COUNTRY_LIST_RSP_CB = 0x1a8, + XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_CONFIGURE_NETWORK_MODE_RSP_CB = 0x1aa, + XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_NETWORK_MODE_CHANGE_IND_CB = 0x1ab, + XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_BAND_STATUS_RSP_CB = 0x1ad, + XMM7360_RPC_UNSOL_UTA_MS_NET_EXT_BAND_STATUS_IND_CB = 0x1ae, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_ATTACH_APN_CONFIG_RSP_CB = 0x1b0, + XMM7360_RPC_UNSOL_UTA_MS_CALL_PS_READ_CONTEXT_STATUS_RSP_CB = 0x1be, + XMM7360_RPC_UNSOL_CSI_MS_SIM_ACCESS_GET_SIM_STATE_INFO_RSP_CB = 0x1c0, + XMM7360_RPC_UNSOL_CSI_MS_NET_GET_REGISTRATION_INFO_RSP_CB = 0x1c2, + XMM7360_RPC_UNSOL_CSI_MS_NET_LDR_GET_APN_PLMN_PARAMETER_LIST_RSP_CB = 0x1c6, + XMM7360_RPC_UNSOL_UTA_MS_NET_LDR_APN_PARAMETERS_CHANGE_IND_CB = 0x1c7, +} Xmm7360RpcUnsolId; + +typedef enum { + XMM7360_RPC_MSG_ARG_TYPE_BYTE, + XMM7360_RPC_MSG_ARG_TYPE_SHORT, + XMM7360_RPC_MSG_ARG_TYPE_LONG, + XMM7360_RPC_MSG_ARG_TYPE_STRING, + XMM7360_RPC_MSG_ARG_TYPE_UNKNOWN, +} Xmm7360RpcMsgArgType; + + +#define XMM7360_RPC_MSG_ARG_GET_INT(arg) \ + (arg->type == XMM7360_RPC_MSG_ARG_TYPE_BYTE ? arg->value.b \ + : arg->type == XMM7360_RPC_MSG_ARG_TYPE_SHORT ? arg->value.s \ + : arg->type == XMM7360_RPC_MSG_ARG_TYPE_LONG ? arg->value.l : -1) + +typedef struct { + Xmm7360RpcMsgArgType type; + union { + gint8 b; + gint16 s; + gint32 l; + const gchar *string; + } value; + gsize size; + gsize pad; +} Xmm7360RpcMsgArg; + +typedef enum { + XMM7360_RPC_RESPONSE_TYPE_RESPONSE, + XMM7360_RPC_RESPONSE_TYPE_ASYNC_ACK, + XMM7360_RPC_RESPONSE_TYPE_UNSOLICITED, + XMM7360_RPC_RESPONSE_TYPE_UNKNOWN, +} Xmm7360RpcResponseType; + +typedef struct { + guint32 id; + Xmm7360RpcResponseType type; + guint32 unsol_id; + GByteArray *body; + GPtrArray *content; /* contains (Xmm7360RpcMsgArgs *) */ +} Xmm7360RpcResponse; + +/*****************************************************************************/ + +void xmm7360_byte_array_append_asn_int4 (GByteArray *array, + gint32 value); + +void xmm7360_rpc_response_free (Xmm7360RpcResponse *msg); + +GByteArray * xmm7360_rpc_args_to_byte_array (const Xmm7360RpcMsgArg *args); + +Xmm7360RpcResponse *xmm7360_parse_response (GByteArray *buf, + GError **error); + +GByteArray * xmm7360_command_to_byte_array (Xmm7360RpcCallId callid, + gboolean is_async, + GByteArray *body); + +GString * xmm7360_rpc_args_to_string (GPtrArray *args); + +GString * xmm7360_byte_array_hexlify (GByteArray *buf); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (Xmm7360RpcResponse, xmm7360_rpc_response_free); + +#endif /* MM_XMMRPC_XMM7360_PROTOCOL_H */ diff --git a/src/plugins/meson.build b/src/plugins/meson.build index c19dfd3b..8ad7a804 100644 --- a/src/plugins/meson.build +++ b/src/plugins/meson.build @@ -600,6 +600,7 @@ if plugins_options['intel'] 'intel/mm-broadband-modem-xmm7360.c', 'intel/mm-broadband-modem-xmm7360-rpc.c', 'intel/mm-port-serial-xmmrpc-xmm7360.c', + 'intel/mm-xmmrpc-xmm7360-protocol.c', 'intel/mm-bearer-xmm7360.c', 'intel/mm-sim-xmm7360.c', ) @@ -610,7 +611,7 @@ if plugins_options['intel'] common_c_args = '-DMM_MODULE_NAME="intel"' - headers = files('intel/mm-port-serial-xmmrpc-xmm7360.h') + headers = files('intel/mm-xmmrpc-xmm7360-protocol.h') enums_types = 'mm-intel-enums-types'