summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/gsm48_rr.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2011-05-22 20:10:34 +0200
committerHarald Welte <laforge@gnumonks.org>2011-06-21 19:51:01 +0200
commit7ad100b94e49f29d2f5c4586504840ee7df577c9 (patch)
tree88aedd9da82ce76484cf08fb4e26bc5540c80fdb /src/host/layer23/src/mobile/gsm48_rr.c
parentddb20b8b4e39e7342350ed5b34a2b64029fce7b0 (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.c14
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);