4 #include <osmocom/core/select.h>
5 #include <osmocom/gsm/gsm_utils.h>
6 #include <osmocom/core/write_queue.h>
10 /* FIXME no 'mobile' specific stuff should be here */
11 #include <osmocom/bb/mobile/support.h>
12 #include <osmocom/bb/mobile/settings.h>
13 #include <osmocom/bb/mobile/subscriber.h>
14 #include <osmocom/bb/common/lapdm.h>
15 #include <osmocom/bb/common/sap_interface.h>
16 #include <osmocom/bb/mobile/gsm48_rr.h>
17 #include <osmocom/bb/common/sysinfo.h>
18 #include <osmocom/bb/mobile/gsm322.h>
19 #include <osmocom/bb/mobile/gsm48_mm.h>
20 #include <osmocom/bb/mobile/gsm48_cc.h>
21 #include <osmocom/bb/common/sim.h>
24 struct osmol2_entity {
25 struct lapdm_entity lapdm_dcch;
26 struct lapdm_entity lapdm_acch;
27 osmol2_cb_t msg_handler;
30 struct osmosap_entity {
31 osmosap_cb_t msg_handler;
34 /* RX measurement statistics */
38 /* cumulated values of current cell from SACCH dl */
44 /* counters loss criterion */
49 /* One Mobilestation for osmocom */
51 struct llist_head entity;
53 struct osmo_wqueue l2_wq, sap_wq;
56 uint8_t deleting, shutdown, started;
57 struct gsm_support support;
58 struct gsm_settings settings;
59 struct gsm_subscriber subscr;
61 struct osmol2_entity l2_entity;
62 struct osmosap_entity sap_entity;
63 struct rx_meas_stat meas;
64 struct gsm48_rrlayer rrlayer;
65 struct gsm322_plmn plmn;
66 struct gsm322_cellsel cellsel;
67 struct gsm48_mmlayer mmlayer;
68 struct gsm48_cclayer cclayer;
69 struct llist_head trans_list;
72 enum osmobb_sig_subsys {
77 enum osmobb_l1ctl_sig {
83 S_L1CTL_CCCH_MODE_CONF,
84 S_L1CTL_TCH_MODE_CONF,
88 enum osmobb_global_sig {
92 struct osmobb_fbsb_res {
93 struct osmocom_ms *ms;
98 struct osmobb_meas_res {
99 struct osmocom_ms *ms;
104 struct osmobb_ccch_mode_conf {
105 struct osmocom_ms *ms;
109 struct osmobb_tch_mode_conf {
110 struct osmocom_ms *ms;