945b88b0f2f7e39df6269ab22ddb4c596c28a25e
[osmocom-bb.git] / src / host / layer23 / src / networks.c
1 #include <string.h>
2 #include <stdint.h>
3 #include <stdio.h>
4
5 #include <osmocom/networks.h>
6
7 /* list of networks */
8
9 struct gsm_networks gsm_networks[] = {
10         { 1, 0,         "Test" },
11         { 1, 1,                 "Test" },
12         { 262, 0,       "Germany" },
13         { 262, 1,               "T-Mobile" },
14         { 262, 2,               "Vodafone" },
15         { 262, 3,               "E-Plus" },
16         { 262, 7,               "O2" },
17         { 262, 10,              "DB Systel GSM-R" },
18         { 262, 42,              "OpenBSC" },
19         { 238, 0,       "Denmark" },
20         { 238, 1,               "TDC Mobil" },
21         { 238, 2,               "Sonofon" },
22         { 238, 3,               "MIGway A/S" },
23         { 238, 6,               "HiG3" },
24         { 238, 7,               "Barablue Mobile Ltd." },
25         { 238, 10,              "TDC Mobil" },
26         { 238, 12,              "Lycamobile Denmark" },
27         { 238, 20,              "Telia" },
28         { 238, 30,              "Telia Mobile" },
29         { 238, 77,              "Tele2" },
30         { 0, 0, NULL }
31 };
32
33 const char *gsm_get_mcc(uint16_t mcc)
34 {
35         int i;
36         static char unknown[4] = "000";
37
38         for (i = 0; gsm_networks[i].name; i++)
39                 if (!gsm_networks[i].mnc && gsm_networks[i].mcc == mcc)
40                         return gsm_networks[i].name;
41
42         snprintf(unknown, 3, "%03d", mcc);
43         return unknown;
44 }
45
46 const char *gsm_get_mnc(uint16_t mcc, uint16_t mnc)
47 {
48         int i;
49         static char unknown[4] = "000";
50
51         for (i = 0; gsm_networks[i].name; i++)
52                 if (gsm_networks[i].mcc == mcc && gsm_networks[i].mnc == mnc)
53                         return gsm_networks[i].name;
54
55         snprintf(unknown, 3, "%02d", mnc);
56         return unknown;
57 }
58
59