diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocom/msc/gsm_data.h | 1 | ||||
-rw-r--r-- | include/osmocom/msc/osmo_msc.h | 25 |
2 files changed, 22 insertions, 4 deletions
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h index e0fbcec9f..696cef1c3 100644 --- a/include/osmocom/msc/gsm_data.h +++ b/include/osmocom/msc/gsm_data.h @@ -139,6 +139,7 @@ struct gsm_subscriber_connection { /* usage count. If this drops to zero, we start the release * towards A/Iu */ uint32_t use_count; + uint32_t use_tokens; /* The MS has opened the conn with a CM Service Request, and we shall * keep it open for an actual request (or until timeout). */ diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h index 5f4713ee8..bf455c309 100644 --- a/include/osmocom/msc/osmo_msc.h +++ b/include/osmocom/msc/osmo_msc.h @@ -84,14 +84,31 @@ void msc_subscr_conn_communicating(struct gsm_subscriber_connection *conn); void msc_subscr_conn_close(struct gsm_subscriber_connection *conn, uint32_t cause); -#define msc_subscr_conn_get(conn) \ - _msc_subscr_conn_get(conn, __BASE_FILE__, __LINE__) -#define msc_subscr_conn_put(conn) \ - _msc_subscr_conn_put(conn, __BASE_FILE__, __LINE__) +enum msc_subscr_conn_use { + MSC_CONN_USE_UNTRACKED = -1, + MSC_CONN_USE_COMPL_L3, + MSC_CONN_USE_DTAP, + MSC_CONN_USE_FSM, + MSC_CONN_USE_TRANS_CC, + MSC_CONN_USE_TRANS_SMS, + MSC_CONN_USE_TRANS_USSD, + MSC_CONN_USE_SILENT_CALL, +}; + +extern const struct value_string msc_subscr_conn_use_names[]; +static inline const char *msc_subscr_conn_use_name(enum msc_subscr_conn_use val) +{ return get_value_string(msc_subscr_conn_use_names, val); } + +#define msc_subscr_conn_get(conn, balance_token) \ + _msc_subscr_conn_get(conn, balance_token, __BASE_FILE__, __LINE__) +#define msc_subscr_conn_put(conn, balance_token) \ + _msc_subscr_conn_put(conn, balance_token, __BASE_FILE__, __LINE__) struct gsm_subscriber_connection * _msc_subscr_conn_get(struct gsm_subscriber_connection *conn, + enum msc_subscr_conn_use balance_token, const char *file, int line); void _msc_subscr_conn_put(struct gsm_subscriber_connection *conn, + enum msc_subscr_conn_use balance_token, const char *file, int line); void msc_stop_paging(struct vlr_subscr *vsub); |