diff options
-rw-r--r-- | include/libgsmd/libgsmd.h | 3 | ||||
-rw-r--r-- | src/libgsmd/lgsm_internals.h | 3 | ||||
-rw-r--r-- | src/libgsmd/libgsmd.c | 10 |
3 files changed, 16 insertions, 0 deletions
diff --git a/include/libgsmd/libgsmd.h b/include/libgsmd/libgsmd.h index f260ae2..a6a4252 100644 --- a/include/libgsmd/libgsmd.h +++ b/include/libgsmd/libgsmd.h @@ -69,4 +69,7 @@ extern int lgsm_handle_packet(struct lgsm_handle *lh, char *buf, int len); extern int lgsm_blocking_wait_packet(struct lgsm_handle *lh, u_int16_t id, struct gsmd_msg_hdr *gmh, int rlen); +extern void *lgsm_get_user_data(struct lgsm_handle *lh); +extern void lgsm_set_user_data(struct lgsm_handle *lh, void *data); + #endif diff --git a/src/libgsmd/lgsm_internals.h b/src/libgsmd/lgsm_internals.h index c826723..76c08b4 100644 --- a/src/libgsmd/lgsm_internals.h +++ b/src/libgsmd/lgsm_internals.h @@ -8,6 +8,9 @@ struct lgsm_handle { int fd; lgsm_msg_handler *handler[__NUM_GSMD_MSGS]; enum lgsm_netreg_state netreg_state; + + /* any data set by the user */ + void *user_data; }; int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh); diff --git a/src/libgsmd/libgsmd.c b/src/libgsmd/libgsmd.c index 50bd719..1626b04 100644 --- a/src/libgsmd/libgsmd.c +++ b/src/libgsmd/libgsmd.c @@ -229,3 +229,13 @@ int lgsm_send_simple(struct lgsm_handle *lh, int type, int sub_type) lgsm_gmh_free(gmh); return rc; } + +void *lgsm_get_user_data(struct lgsm_handle *lh) +{ + return lh->user_data; +} + +void lgsm_set_user_data(struct lgsm_handle *lh, void *data) +{ + lh->user_data = data; +} |