diff options
Diffstat (limited to 'include/gsmd')
| -rw-r--r-- | include/gsmd/gsmd.h | 3 | ||||
| -rw-r--r-- | include/gsmd/usock.h | 20 | 
2 files changed, 21 insertions, 2 deletions
diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h index f1773c3..ed334f1 100644 --- a/include/gsmd/gsmd.h +++ b/include/gsmd/gsmd.h @@ -92,6 +92,9 @@ struct gsmd_user {  	struct gsmd *gsmd;  	struct gsmd_fd gfd;				/* the socket */  	u_int32_t subscriptions;		/* bitmaks of subscribed event groups */ + +	struct llist_head pb_readrg_list;	/* our READRG phonebook list */ +	struct llist_head pb_find_list;		/* our FIND phonebook list */  };  #define GSMD_DEBUG	1	/* debugging information */ diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h index c2f03f5..66cdf48 100644 --- a/include/gsmd/usock.h +++ b/include/gsmd/usock.h @@ -194,6 +194,8 @@ enum gsmd_msg_phonebook {  	GSMD_PHONEBOOK_GET_SUPPORT	= 6,  	GSMD_PHONEBOOK_LIST_STORAGE	= 7,  	GSMD_PHONEBOOK_SET_STORAGE	= 8, +	GSMD_PHONEBOOK_RETRIEVE_READRG	= 9, +	GSMD_PHONEBOOK_RETRIEVE_FIND	= 10,  };  /* Type-of-Address, Numbering-Plan-Identification field, GSM 03.40, 9.1.2.5 */ @@ -432,7 +434,6 @@ struct gsmd_phonebook {  	char text[GSMD_PB_TEXT_MAXLEN+1];  } __attribute__ ((packed)); -  /* Refer to GSM 07.07 subclause 8.13 */  /* FIXME: the tlength depends on SIM, use +CPBR=? to get */   struct gsmd_phonebook_find {	 @@ -472,8 +473,18 @@ struct gsmd_msg_prefoper {  	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 { -	char storage[3]; +	/* 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 */ @@ -518,6 +529,11 @@ struct gsmd_ucmd {  	char buf[];  } __attribute__ ((packed)); +struct gsmd_phonebooks { +	struct llist_head list; +	struct gsmd_phonebook pb; +} __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);  | 
