summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/mobile
diff options
context:
space:
mode:
authorAndreas.Eversberg2010-10-24 15:30:17 +0200
committerAndreas.Eversberg2010-10-24 15:30:17 +0200
commit4d211a27b889420618598fae621341f85070727b (patch)
treef8b985ec5872c8b272902478d5e07885a4d75619 /src/host/layer23/include/osmocom/bb/mobile
parent[layer23] Fixed conditions for complete set of SYSTEM INFORMATION (diff)
downloadosmocom-4d211a27b889420618598fae621341f85070727b.tar.gz
osmocom-4d211a27b889420618598fae621341f85070727b.tar.xz
osmocom-4d211a27b889420618598fae621341f85070727b.zip
[layer23] Moving sysinfo.c and gps.c (.h) to liblayer23
This makes sense, since multiple applications use it.
Diffstat (limited to 'src/host/layer23/include/osmocom/bb/mobile')
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/Makefile.am2
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/gps.h40
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/sysinfo.h149
3 files changed, 1 insertions, 190 deletions
diff --git a/src/host/layer23/include/osmocom/bb/mobile/Makefile.am b/src/host/layer23/include/osmocom/bb/mobile/Makefile.am
index b67dc15..951e4d1 100644
--- a/src/host/layer23/include/osmocom/bb/mobile/Makefile.am
+++ b/src/host/layer23/include/osmocom/bb/mobile/Makefile.am
@@ -1,2 +1,2 @@
noinst_HEADERS = gsm322.h gsm48_cc.h gsm48_mm.h gsm48_rr.h mncc.h settings.h \
- subscriber.h support.h sysinfo.h transaction.h vty.h
+ subscriber.h support.h transaction.h vty.h
diff --git a/src/host/layer23/include/osmocom/bb/mobile/gps.h b/src/host/layer23/include/osmocom/bb/mobile/gps.h
deleted file mode 100644
index e45cbc5..0000000
--- a/src/host/layer23/include/osmocom/bb/mobile/gps.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * (C) 2010 by Andreas Eversberg <jolly@eversberg.eu>
- *
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-struct gps {
- /* GPS device */
- uint8_t enable;
- char device[32];
- uint32_t baud;
-
- /* current data */
- uint8_t valid; /* we have a fix */
- time_t gmt; /* GMT time when position was received */
- double latitude, longitude;
-};
-
-extern struct gps gps;
-
-int gps_open(void);
-void gps_close(void);
-void gps_init(void);
-
-
diff --git a/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h b/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h
deleted file mode 100644
index 07daafa..0000000
--- a/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef _SYSINFO_H
-#define _SYSINFO_H
-
-#include <osmocore/gsm48_ie.h>
-
-/* collection of system information of the current cell */
-
-/* frequency mask flags of frequency type */
-#define FREQ_TYPE_SERV 0x01 /* frequency of the serving cell */
-#define FREQ_TYPE_HOPP 0x02 /* frequency used for channel hopping */
-#define FREQ_TYPE_NCELL 0x1c /* frequency of the neighbor cell */
-#define FREQ_TYPE_NCELL_2 0x04 /* sub channel of SI 2 */
-#define FREQ_TYPE_NCELL_2bis 0x08 /* sub channel of SI 2bis */
-#define FREQ_TYPE_NCELL_2ter 0x10 /* sub channel of SI 2ter */
-#define FREQ_TYPE_REP 0xe0 /* frequency to be reported */
-#define FREQ_TYPE_REP_5 0x20 /* sub channel of SI 5 */
-#define FREQ_TYPE_REP_5bis 0x40 /* sub channel of SI 5bis */
-#define FREQ_TYPE_REP_5ter 0x80 /* sub channel of SI 5ter */
-
-/* structure of all received system informations */
-struct gsm48_sysinfo {
- /* flags of available information */
- uint8_t si1, si2, si2bis, si2ter, si3,
- si4, si5, si5bis, si5ter, si6;
-
- /* memory maps to simply detect change in system info messages */
- uint8_t si1_msg[23];
- uint8_t si2_msg[23];
- uint8_t si2b_msg[23];
- uint8_t si2t_msg[23];
- uint8_t si3_msg[23];
- uint8_t si4_msg[23];
- uint8_t si5_msg[18];
- uint8_t si5b_msg[18];
- uint8_t si5t_msg[18];
- uint8_t si6_msg[18];
-
- struct gsm_sysinfo_freq freq[1024]; /* all frequencies */
- uint16_t hopping[64]; /* hopping arfcn */
- uint8_t hopp_len;
-
- /* serving cell */
- uint8_t bsic;
- uint16_t cell_id;
- uint16_t mcc, mnc, lac; /* LAI */
- uint8_t max_retrans; /* decoded */
- uint8_t tx_integer; /* decoded */
- uint8_t reest_denied; /* 1 = denied */
- uint8_t cell_barr; /* 1 = barred */
- uint16_t class_barr; /* bit 10 is emergency */
-
- /* si3 rest */
- uint8_t sp;
- uint8_t sp_cbq;
- uint8_t sp_cro;
- uint8_t sp_to;
- uint8_t sp_pt;
- uint8_t po;
- uint8_t po_value;
- uint8_t si2ter_ind;
- uint8_t ecsm;
- uint8_t sched;
- uint8_t sched_where;
- uint8_t gi_ra_colour;
- uint8_t gi_si13_pos;
-
- /* cell selection */
- int8_t ms_txpwr_max_cch;
- int8_t cell_resel_hyst_db;
- int8_t rxlev_acc_min_db;
- uint8_t neci;
- uint8_t acs;
- /* bcch options */
- uint8_t bcch_radio_link_timeout;
- uint8_t bcch_dtx;
- uint8_t bcch_pwrc;
- /* sacch options */
- uint8_t sacch_radio_link_timeout;
- uint8_t sacch_dtx;
- uint8_t sacch_pwrc;
- /* control channel */
- uint8_t ccch_conf;
- uint8_t bs_ag_blks_res;
- uint8_t att_allowed;
- uint8_t pag_mf_periods;
- int32_t t3212; /* real value in seconds */
- /* channel description */
- uint8_t tsc;
- uint8_t h; /* using hopping */
- uint16_t arfcn;
- uint8_t maio;
- uint8_t hsn;
- uint8_t chan_nr; /* type, slot, sub slot */
-
- /* neighbor cell */
- uint8_t nb_ext_ind_si2;
- uint8_t nb_ba_ind_si2;
- uint8_t nb_ext_ind_si2bis;
- uint8_t nb_ba_ind_si2bis;
- uint8_t nb_multi_rep_si2ter; /* see GSM 05.08 8.4.3 */
- uint8_t nb_ba_ind_si2ter;
- uint8_t nb_ext_ind_si5;
- uint8_t nb_ba_ind_si5;
- uint8_t nb_ext_ind_si5bis;
- uint8_t nb_ba_ind_si5bis;
- uint8_t nb_multi_rep_si5ter;
- uint8_t nb_ba_ind_si5ter;
- uint8_t nb_ncc_permitted_si2;
- uint8_t nb_ncc_permitted_si6;
- uint8_t nb_max_retrans; /* decoded */
- uint8_t nb_tx_integer; /* decoded */
- uint8_t nb_reest_denied; /* 1 = denied */
- uint8_t nb_cell_barr; /* 1 = barred */
- uint16_t nb_class_barr; /* bit 10 is emergency */
-};
-
-int gsm48_sysinfo_dump(struct gsm48_sysinfo *s, uint16_t arfcn,
- void (*print)(void *, const char *, ...), void *priv);
-int gsm48_decode_lai(struct gsm48_loc_area_id *lai, uint16_t *mcc,
- uint16_t *mnc, uint16_t *lac);
-int gsm48_decode_chan_h0(struct gsm48_chan_desc *cd, uint8_t *tsc,
- uint16_t *arfcn);
-int gsm48_decode_chan_h1(struct gsm48_chan_desc *cd, uint8_t *tsc,
- uint8_t *maio, uint8_t *hsn);
-int gsm48_decode_sysinfo1(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_1 *si, int len);
-int gsm48_decode_sysinfo2(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_2 *si, int len);
-int gsm48_decode_sysinfo2bis(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_2bis *si, int len);
-int gsm48_decode_sysinfo2ter(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_2ter *si, int len);
-int gsm48_decode_sysinfo3(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_3 *si, int len);
-int gsm48_decode_sysinfo4(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_4 *si, int len);
-int gsm48_decode_sysinfo5(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_5 *si, int len);
-int gsm48_decode_sysinfo5bis(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_5bis *si, int len);
-int gsm48_decode_sysinfo5ter(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_5ter *si, int len);
-int gsm48_decode_sysinfo6(struct gsm48_sysinfo *s,
- struct gsm48_system_information_type_6 *si, int len);
-int gsm48_decode_mobile_alloc(struct gsm_sysinfo_freq *freq,
- uint8_t *ma, uint8_t len, uint16_t *hopping, uint8_t *hopp_len,
- int si4);
-
-#endif /* _SYSINFO_H */