diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-05-22 20:10:34 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-06-21 19:51:01 +0200 |
commit | 7ad100b94e49f29d2f5c4586504840ee7df577c9 (patch) | |
tree | 88aedd9da82ce76484cf08fb4e26bc5540c80fdb /src/host/layer23/src/mobile/gsm48_rr.c | |
parent | ddb20b8b4e39e7342350ed5b34a2b64029fce7b0 (diff) |
layer23: make LAPDm code mostly independent of 'struct osmocom_ms'
This is one step in the direction of re-using the lapdm code in osmo-bts.
Diffstat (limited to 'src/host/layer23/src/mobile/gsm48_rr.c')
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 79119434..a6f8a028 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -74,6 +74,7 @@ #include <osmocom/bb/common/osmocom_data.h> #include <osmocom/bb/common/l1l2_interface.h> +#include <osmocom/bb/common/l23_app.h> #include <osmocom/bb/common/logging.h> #include <osmocom/bb/common/networks.h> #include <osmocom/bb/common/l1ctl.h> @@ -511,7 +512,7 @@ static int gsm48_send_rsl(struct osmocom_ms *ms, uint8_t msg_type, rsl_rll_push_l3(msg, msg_type, rr->cd_now.chan_nr, rr->cd_now.link_id, 1); - return rslms_recvmsg(msg, ms); + return lapdm_rslms_recvmsg(msg, &ms->lapdm_channel); } /* push rsl header + release mode and send (RSL-SAP) */ @@ -523,12 +524,13 @@ static int gsm48_send_rsl_rel(struct osmocom_ms *ms, uint8_t msg_type, rsl_rll_push_hdr(msg, msg_type, rr->cd_now.chan_nr, rr->cd_now.link_id, 1); - return rslms_recvmsg(msg, ms); + return lapdm_rslms_recvmsg(msg, &ms->lapdm_channel); } /* enqueue messages (RSL-SAP) */ -static int gsm48_rx_rsl(struct msgb *msg, struct osmocom_ms *ms) +static int rcv_rsl(struct msgb *msg, struct lapdm_entity *le, void *l3ctx) { + struct osmocom_ms *ms = l3ctx; struct gsm48_rrlayer *rr = &ms->rrlayer; msgb_enqueue(&rr->rsl_upqueue, msg); @@ -1620,7 +1622,7 @@ fail: /* store ra until confirmed, then copy it with time into cr_hist */ rr->cr_ra = chan_req; - return rslms_recvmsg(nmsg, ms); + return lapdm_rslms_recvmsg(nmsg, &ms->lapdm_channel); } /* @@ -2763,7 +2765,7 @@ static int gsm48_rr_tx_meas_rep(struct osmocom_ms *ms) rsl_rll_push_hdr(nmsg, RSL_MT_UNIT_DATA_REQ, rr->cd_now.chan_nr, 0x40, 1); - return rslms_recvmsg(nmsg, ms); + return lapdm_rslms_recvmsg(nmsg, &ms->lapdm_channel); } /* @@ -5055,7 +5057,7 @@ int gsm48_rr_init(struct osmocom_ms *ms) INIT_LLIST_HEAD(&rr->downqueue); /* downqueue is handled here, so don't add_work */ - osmol2_register_handler(ms, &gsm48_rx_rsl); + osmol2_register_handler(ms, &rcv_rsl); start_rr_t_meas(rr, 1, 0); |