summaryrefslogtreecommitdiffstats
path: root/gril/grilreply.h
blob: 43732f51112edbe16a08fa364535131299e4c8d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
 *
 *  RIL library with GLib integration
 *
 *  Copyright (C) 2008-2011  Intel Corporation. All rights reserved.
 *  Copyright (C) 2012-2014  Canonical Ltd.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  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.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef __GRILREPLY_H
#define __GRILREPLY_H

#include <ofono/types.h>
#include <ofono/sim.h>

#include "gril.h"

#ifdef __cplusplus
extern "C" {
#endif

struct reply_operator {
	char *lalpha;
	char *salpha;
	char *numeric;
	char *status;
	int tech;
};

struct reply_avail_ops {
	guint num_ops;
	GSList *list;
};

struct reply_reg_state {
	int status;
	int lac;
	int ci;
	int tech;
};

struct reply_data_reg_state {
	struct reply_reg_state reg_state;
	unsigned int max_cids;
};

struct reply_sim_io {
	int sw1;
	int sw2;
	int hex_len;
	unsigned char *hex_response;
};

#define MAX_UICC_APPS 16

struct reply_sim_app {
	guint app_type;
	guint app_state;
	guint perso_substate;
	char *aid_str;
	char *app_str;
	guint pin_replaced;
	guint pin1_state;
	guint pin2_state;
};

struct reply_sim_status {
	guint card_state;
	guint pin_state;
	guint gsm_umts_index;
	guint cdma_index;
	guint ims_index;
	guint num_apps;
	struct reply_sim_app *apps[MAX_UICC_APPS];
};

struct reply_oem_hook {
	int length;
	void *data;
};

void g_ril_reply_free_avail_ops(struct reply_avail_ops *reply);

struct reply_avail_ops *g_ril_reply_parse_avail_ops(GRil *gril,
						const struct ril_msg *message);
void g_ril_reply_free_operator(struct reply_operator *reply);

struct reply_operator *g_ril_reply_parse_operator(GRil *gril,
						const struct ril_msg *message);

void g_ril_reply_free_sim_io(struct reply_sim_io *reply);

struct reply_sim_io *g_ril_reply_parse_sim_io(GRil *gril,
						const struct ril_msg *message);

struct reply_reg_state *g_ril_reply_parse_voice_reg_state(GRil *gril,
						const struct ril_msg *message);
struct reply_data_reg_state *g_ril_reply_parse_data_reg_state(GRil *gril,
						const struct ril_msg *message);

void g_ril_reply_free_sim_status(struct reply_sim_status *status);

struct reply_sim_status *g_ril_reply_parse_sim_status(GRil *gril,
						const struct ril_msg *message);

GSList *g_ril_reply_parse_get_calls(GRil *gril, const struct ril_msg *message);

int *g_ril_reply_parse_retries(GRil *gril, const struct ril_msg *message,
				enum ofono_sim_password_type passwd_type);

void g_ril_reply_free_oem_hook(struct reply_oem_hook *oem_hook);

struct reply_oem_hook *g_ril_reply_oem_hook_raw(GRil *gril,
						const struct ril_msg *message);

struct parcel_str_array *g_ril_reply_oem_hook_strings(GRil *gril,
						const struct ril_msg *message);

#ifdef __cplusplus
}
#endif

#endif /* __GRILREPLY_H */