📄 usock.h.svn-base
字号:
} __attribute__ ((packed));struct gsmd_dtmf { u_int8_t len; char dtmf[0];} __attribute__ ((packed));struct gsmd_signal_quality { u_int8_t rssi; u_int8_t ber;} __attribute__ ((packed));struct gsmd_voicemail { u_int8_t enable; struct gsmd_addr addr;} __attribute__ ((packed));struct gsmd_battery_charge { enum gsmd_bat_conn_status bcs; u_int8_t bcl;} __attribute__ ((packed));#define GSMD_ALPHA_MAXLEN 20/* call status from 3GPP TS 07.07 clause 07.17 */struct gsmd_call_status { int8_t idx; u_int8_t dir; u_int8_t stat; u_int8_t mode; u_int8_t mpty; char number[GSMD_ADDR_MAXLEN+1]; u_int8_t type; char alpha[GSMD_ALPHA_MAXLEN+1]; int is_last; } __attribute__ ((packed));/* call status from 3GPP TS 07.07 clause 7.12 */struct gsmd_call_ctrl { enum gsmd_call_ctrl_proc proc; u_int8_t idx;} __attribute__ ((packed));/* call forwarding register from 3GPP TS 07.07 clause 7.10 */struct gsmd_call_fwd_reg { enum gsmd_call_fwd_reason reason; struct gsmd_addr addr;} __attribute__ ((packed));/* status of call forwarding from 3GPP TS 07.07 clause 7.10 */struct gsmd_call_fwd_stat { enum gsmd_call_fwd_status status; u_int8_t classx; struct gsmd_addr addr; char subaddr[16+1]; u_int8_t satype; u_int8_t time; int is_last; } __attribute__ ((packed));#define GSMD_PIN_MAXLEN 8struct gsmd_pin { enum gsmd_pin_type type; char pin[GSMD_PIN_MAXLEN+1]; char newpin[GSMD_PIN_MAXLEN+1];} __attribute__ ((packed));struct gsmd_evt_auxdata { union { struct { enum gsmd_call_type type; } call; struct { struct gsmd_addr addr; } clip; struct { struct gsmd_addr addr; } colp; struct { char alpha[GSMD_ALPHA_MAXLEN+1]; int inlined; u_int8_t memtype; int index; } sms; struct { int inlined; u_int8_t memtype; int index; } cbm; struct { int inlined; u_int8_t memtype; int index; } ds; struct { enum gsmd_pin_type type; } pin; struct { enum gsmd_netreg_state state; u_int16_t lac; u_int16_t ci; } netreg; struct { u_int8_t tz; } timezone; struct { struct gsmd_signal_quality sigq; } signal; struct { enum gsmd_call_progress prog; struct gsmd_addr addr; u_int8_t ibt:1, tch:1, dir:2; } call_status; struct { u_int16_t flags; u_int16_t net_state_gsm; u_int16_t net_state_gprs; } cipher; struct { enum gsm0707_cme_error number; } cme_err; struct { enum gsm0705_cms_error number; } cms_err; struct { struct gsmd_addr addr; u_int8_t classx; char alpha[GSMD_ALPHA_MAXLEN+1]; u_int8_t cli; } ccwa; } u; u_int8_t data[0]; } __attribute__ ((packed));/* Refer to GSM 07.05 subclause 3.5.4 */struct gsmd_sms_delete { u_int8_t index; u_int8_t delflg; } __attribute__ ((packed));/* Refer to GSM 03.40 subclause 9.2.2.2 and GSM 07.05 subclause 4.3 */#define GSMD_SMS_DATA_MAXLEN 164 struct gsmd_sms { u_int8_t length; u_int8_t coding_scheme; int has_header; int is_voicemail; struct gsmd_sms_datacodingscheme dcs; enum gsmd_sms_tp_mti tp_mti; u_int8_t data[GSMD_SMS_DATA_MAXLEN+1]; } __attribute__ ((packed));/* Refer to GSM 03.40 subclause 9.2.2.2 */struct gsmd_sms_submit { struct gsmd_addr addr; struct gsmd_sms payload; int ask_ds;};/* Refer to GSM 07.05 subclause 4.4 */struct gsmd_sms_write { u_int8_t stat; struct gsmd_sms_submit sms;} __attribute__ ((packed));/* Refer to GSM 03.40 subclause 9.2.2.1 */struct gsmd_sms_list { /* FIXME Defined as in range of location numbers supported by memory */ u_int8_t index; enum gsmd_msg_sms_type stat; char time_stamp[7]; struct gsmd_addr addr; struct gsmd_sms payload; int is_last;};/* Refer to GSM 07.05 subclause 3.1 */enum ts0705_mem_type { GSM0705_MEMTYPE_NONE, GSM0705_MEMTYPE_BROADCAST, GSM0705_MEMTYPE_ME_MESSAGE, GSM0705_MEMTYPE_MT, GSM0705_MEMTYPE_SIM, GSM0705_MEMTYPE_TA, GSM0705_MEMTYPE_SR,};/* Refer to GSM 07.05 subclause 3.2.2 */struct __gsmd_sms_storage { u_int8_t memtype; u_int8_t pad[3]; u_int16_t used; u_int16_t total;} __attribute__ ((packed));struct gsmd_sms_storage { struct __gsmd_sms_storage mem[3];} __attribute__ ((packed));/* Refer to GSM 03.41 subclause 9.3.1 - note: this indicates display mode too */enum gsmd_geographical_scope { GSMD_SCOPE_CELL_WIDE_OPER = 0, GSMD_SCOPE_PLMN_WIDE, GSMD_SCOPE_LOC_AREA_WIDE, GSMD_SCOPE_CELL_WIDE,};enum gsmd_language { GSMD_LANG_GERMAN = 0, GSMD_LANG_ENGLISH, GSMD_LANG_ITALIAN, GSMD_LANG_FRENCH, GSMD_LANG_SPANISH, GSMD_LANG_DUTCH, GSMD_LANG_SWEDISH, GSMD_LANG_DANISH, GSMD_LANG_PORTUGUESE, GSMD_LANG_FINNISH, GSMD_LANG_NORWEGIAN, GSMD_LANG_GREEK, GSMD_LANG_TURKISH, GSMD_LANG_HUNGARIAN, GSMD_LANG_POLISH, GSMD_LANG_UNSPECIFIED,};/* Refer to GSM 03.41 subclause 9.3 */struct gsmd_cbm { struct { enum gsmd_geographical_scope scope; int msg_code; int update_num; } serial; u_int16_t msg_id; enum gsmd_language language; u_int8_t coding_scheme; int pages; int page; u_int8_t data[82];};/* Refer to GSM 07.07 subclause 8.12 */struct gsmd_phonebook_readrg { u_int8_t index1; u_int8_t index2; } __attribute__ ((packed));/* Refer to GSM 07.07 subclause 8.14 *//* FIXME: the nlength and tlength depend on SIM, use +CPBR=? to get */ #define GSMD_PB_NUMB_MAXLEN 44#define GSMD_PB_TEXT_MAXLEN 14struct gsmd_phonebook { int8_t index; char numb[GSMD_PB_NUMB_MAXLEN+1]; u_int8_t type; char text[GSMD_PB_TEXT_MAXLEN+1];} __attribute__ ((packed));struct gsmd_phonebooks { struct gsmd_phonebook pb; int8_t is_last;} __attribute__ ((packed));/* Refer to GSM 07.07 subclause 8.13 *//* FIXME: the tlength depends on SIM, use +CPBR=? to get */ struct gsmd_phonebook_find { char findtext[GSMD_PB_TEXT_MAXLEN+1];} __attribute__ ((packed));/* Refer to GSM 07.07 subclause 8.12 */struct gsmd_phonebook_support { u_int8_t index; u_int8_t nlength; u_int8_t tlength;} __attribute__ ((packed));/* Operator status from 3GPP TS 07.07, Clause 7.3 */enum gsmd_oper_status { GSMD_OPER_UNKNOWN, GSMD_OPER_AVAILABLE, GSMD_OPER_CURRENT, GSMD_OPER_FORBIDDEN,};/* Theoretically numeric operator code is five digits long but some * operators apparently use six digit codes. */typedef char gsmd_oper_numeric[6];struct gsmd_msg_oper { enum gsmd_oper_status stat; int is_last; char opname_longalpha[16]; char opname_shortalpha[8]; gsmd_oper_numeric opname_num;};struct gsmd_msg_prefoper { int index; int is_last; char opname_longalpha[16];};/* Refer to GSM 07.07 subclause 8.11 */struct gsmd_phonebook_mem { u_int8_t type[3]; u_int8_t pad; u_int16_t used; u_int16_t total;} __attribute__ ((packed));struct gsmd_phonebook_storage { /* FIXME the amount of phonebook storage should be dynamic */ u_int8_t num; struct gsmd_phonebook_mem mem[20];} __attribute__ ((packed));/* Subscriber number information from 3GPP TS 07.07, Clause 7.1 */enum gsmd_subscriber_service { GSMD_SERVICE_UNKNOWN = -1, GSMD_SERVICE_ASYNC_MODEM = 0, GSMD_SERVICE_SYNC_MODEM, GSMD_SERVICE_PAD_ACCESS, GSMD_SERVICE_PACKET_ACCESS, GSMD_SERVICE_VOICE, GSMD_SERVICE_FAX,};struct gsmd_own_number { int is_last; enum gsmd_subscriber_service service; struct gsmd_addr addr; char name[0];};struct gsmd_msg_hdr { u_int8_t version; u_int8_t msg_type; u_int8_t msg_subtype; u_int8_t _pad; u_int16_t id; u_int16_t len; u_int8_t data[];} __attribute__((packed));struct gsmd_msg_auxdata { union { struct { struct gsmd_signal_quality sigq; } signal; struct { char name[16]; } current_operator; /* add more here please */ } u; u_int8_t data[0];} __attribute__ ((packed));#ifdef __GSMD__#include <gsmd/usock.h>#include <gsmd/gsmd.h>#include <common/linux_list.h>struct gsmd_user;struct gsmd_ucmd { struct llist_head list; struct gsmd_msg_hdr hdr; char buf[];} __attribute__ ((packed));extern struct gsmd_ucmd *ucmd_alloc(int extra_size);extern int usock_init(struct gsmd *g);extern void usock_cmd_enqueue(struct gsmd_ucmd *ucmd, struct gsmd_user *gu);extern struct gsmd_ucmd *usock_build_event(u_int8_t type, u_int8_t subtype, u_int16_t len);extern int usock_evt_send(struct gsmd *gsmd, struct gsmd_ucmd *ucmd, u_int32_t evt);extern int gsmd_ucmd_submit(struct gsmd_user *gu, u_int8_t msg_type, u_int8_t msg_subtype, u_int16_t id, int len, const void *data);extern int gsmd_opname_init(struct gsmd *g);extern int gsmd_opname_add(struct gsmd *g, const char *numeric_bcd_string, const char *alnum_long);#endif /* __GSMD__ */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -