diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-02-16 22:05:44 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-02-16 22:05:44 +0000 |
commit | 595ad7b7625645e798b80fb9e0f5bef18b8881f7 (patch) | |
tree | a44447fd8af3e0c4a3f59ffaf771d9b72b8064b5 /src/gsm_04_08.c | |
parent | 75099266149b78193854e84f73910074680191fa (diff) |
modify the signal handler/dispatch code (sorry zecke, no offense, I just had some different ideas)
* introduce new notion of subsystem in addition to signal number
* no need for bitmasks of 'areas' (aka subsystems)
* pass subsystem/signal_nr/... per argument rather than by data structure
Diffstat (limited to 'src/gsm_04_08.c')
-rw-r--r-- | src/gsm_04_08.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c index 0d889fb93..c69e246e3 100644 --- a/src/gsm_04_08.c +++ b/src/gsm_04_08.c @@ -685,6 +685,7 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg) u_int8_t mi_type = pr->mi[0] & GSM_MI_TYPE_MASK; char mi_string[MI_SIZE]; struct gsm_subscriber *subscr; + struct paging_signal_data sig_data; int rc = 0; mi_to_string(mi_string, sizeof(mi_string), &pr->mi[0], pr->mi_len); @@ -707,15 +708,11 @@ static int gsm48_rr_rx_pag_resp(struct msgb *msg) subscr_put(subscr); } - struct paging_signal_data sig_data = { - .data = { - .area = S_PAGING, - }, - .subscr = subscr, - .bts = msg->lchan->ts->trx->bts, - .lchan = msg->lchan, - }; - dispatch_signal(&sig_data.data); + sig_data.subscr = subscr; + sig_data.bts = msg->lchan->ts->trx->bts; + sig_data.lchan = msg->lchan; + + dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data); paging_request_stop(msg->trx->bts, subscr); /* FIXME: somehow signal the completion of the PAGING to |