diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-06-10 23:11:52 +0800 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-06-10 23:25:50 +0800 |
commit | 4bfdfe7f70376612ad2343dd71e8b6ad52124ee6 (patch) | |
tree | cfe0b6321dc1346d72471f1805d5bdf02384498b /openbsc/src/gsm_data.c | |
parent | ec44e1ff4139f60483dfcaa8329e39b41bfb8c4a (diff) |
reworked MNCC codebase
This is Harald's reworked MNCC base, slowly heading towards integration
into master. The key changes are:
* provide much more structure to the data in gsm_mncc
* encode_* and decode_* functions now take a structure rather than tons
of individual arguments (whose order nobody can remember)
* make sure we don't have copies of the same code everywhere by introducing
mncc_set_cause() and mncc_release_ind()
* save horizontal screen space if possible
* make sure we break lines > 80 characters
Diffstat (limited to 'openbsc/src/gsm_data.c')
-rw-r--r-- | openbsc/src/gsm_data.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c index a78425f95..9ab5895ee 100644 --- a/openbsc/src/gsm_data.c +++ b/openbsc/src/gsm_data.c @@ -84,7 +84,8 @@ const char *gsm_chreq_name(enum gsm_chreq_reason_t c) } struct gsm_network *gsm_network_init(unsigned int num_bts, enum gsm_bts_type bts_type, - u_int16_t country_code, u_int16_t network_code) + u_int16_t country_code, u_int16_t network_code, + int (*mncc_recv)(struct gsm_network *, int, void *)) { int i; struct gsm_network *net; @@ -101,6 +102,11 @@ struct gsm_network *gsm_network_init(unsigned int num_bts, enum gsm_bts_type bts net->network_code = network_code; net->num_bts = num_bts; + INIT_LLIST_HEAD(&net->trans_list); + INIT_LLIST_HEAD(&net->upqueue); + + net->mncc_recv = mncc_recv; + for (i = 0; i < num_bts; i++) { struct gsm_bts *bts = &net->bts[i]; int j; @@ -118,7 +124,7 @@ struct gsm_network *gsm_network_init(unsigned int num_bts, enum gsm_bts_type bts trx->bts = bts; trx->nr = j; - for (k = 0; k < 8; k++) { + for (k = 0; k < TRX_NR_TS; k++) { struct gsm_bts_trx_ts *ts = &trx->ts[k]; int l; |