#include <osmocom/core/select.h>
#include <osmocom/core/signal.h>
+#include <l1ctl_proto.h>
+
extern void *l23_ctx;
extern struct llist_head ms_list;
extern int vty_reading;
gsm_subscr_exit(ms);
gsm48_cc_exit(ms);
gsm_sim_exit(ms);
- lapdm_exit(&ms->l2_entity.lapdm_acch);
- lapdm_exit(&ms->l2_entity.lapdm_dcch);
+ lapdm_channel_exit(&ms->lapdm_channel);
ms->shutdown = 2; /* being down */
vty_notify(ms, NULL);
{
int rc;
- lapdm_init(&ms->l2_entity.lapdm_dcch, ms);
- lapdm_init(&ms->l2_entity.lapdm_acch, ms);
+ gsm_settings_arfcn(ms);
+
+ lapdm_channel_init(&ms->lapdm_channel, LAPDM_MODE_MS);
+ lapdm_channel_set_l1(&ms->lapdm_channel, l1ctl_ph_prim_cb, ms);
+
gsm_sim_init(ms);
gsm48_cc_init(ms);
gsm_subscr_init(ms);
ms->shutdown = 0;
ms->started = 0;
+ if (!strcmp(ms->settings.imei, "000000000000000")) {
+ printf("***\nWarning: Mobile '%s' has default IMEI: %s\n",
+ ms->name, ms->settings.imei);
+ printf("This could relate your identitiy to other users with "
+ "default IMEI.\n***\n");
+ }
+
l1ctl_tx_reset_req(ms, L1CTL_RES_T_FULL);
printf("Mobile '%s' initialized, please start phone now!\n", ms->name);
return 0;
/* global exit */
int l23_app_exit(void)
{
- unregister_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
- unregister_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL);
- unregister_signal_handler(SS_GLOBAL, &global_signal_cb, NULL);
+ osmo_signal_unregister_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
+ osmo_signal_unregister_handler(SS_L1CTL, &mobile_signal_cb, NULL);
+ osmo_signal_unregister_handler(SS_GLOBAL, &global_signal_cb, NULL);
osmo_gps_close();
return rc;
printf("VTY available on port %u.\n", vty_port);
- register_signal_handler(SS_GLOBAL, &global_signal_cb, NULL);
- register_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL);
- register_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
+ osmo_signal_register_handler(SS_GLOBAL, &global_signal_cb, NULL);
+ osmo_signal_register_handler(SS_L1CTL, &mobile_signal_cb, NULL);
+ osmo_signal_register_handler(SS_L1CTL, &gsm322_l1_signal, NULL);
if (llist_empty(&ms_list)) {
struct osmocom_ms *ms;