* use 16bit for network and country code
* use aligned attribute for more data structures
* add command line arguments for operator/country code
diff --git a/include/openbsc/gsm_04_08.h b/include/openbsc/gsm_04_08.h
index 1513ade..920d84c 100644
--- a/include/openbsc/gsm_04_08.h
+++ b/include/openbsc/gsm_04_08.h
@@ -22,7 +22,7 @@
u_int8_t arfcn_low;
} h0;
};
-};
+} __attribute__ ((packed));
/* Chapter 10.5.2.30 */
struct gsm48_req_ref {
@@ -31,7 +31,7 @@
t1_:5;
u_int8_t t2:5,
t3_low:3;
-};
+} __attribute__ ((packed));
/* Chapter 9.1.18 */
struct gsm48_imm_ass {
@@ -44,7 +44,7 @@
u_int8_t timing_advance;
u_int8_t mob_alloc_len;
u_int8_t mob_alloc[0];
-};
+} __attribute__ ((packed));
/* Chapter 10.5.1.3 */
struct gsm48_loc_area_id {
diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 2d0c3c5..c0c431e 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -126,8 +126,8 @@
struct gsm_network {
/* global parameters */
- u_int8_t country_code;
- u_int8_t network_code;
+ u_int16_t country_code;
+ u_int16_t network_code;
unsigned int num_bts;
/* private lists */
@@ -136,8 +136,8 @@
struct gsm_subscriber *subscriber;
};
-struct gsm_network *gsm_network_init(unsigned int num_bts, u_int8_t country_code,
- u_int8_t network_code);
+struct gsm_network *gsm_network_init(unsigned int num_bts, u_int16_t country_code,
+ u_int16_t network_code);
enum gsm_e1_event {
EVT_E1_NONE,