summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2011-03-23 18:08:08 +0100
committerHarald Welte <laforge@gnumonks.org>2011-03-23 18:08:08 +0100
commitfba495e5f6084800c076e0ecae990ed9e6483530 (patch)
tree0f9513f0f54bd01ccfdceb172b4fe14b3cabd16b
parent04139f14b6197e3ec996133a945af3fa8a68fb7a (diff)
This patch moves the GSM-specific functions to the new library
libosmogsm which is provided by libosmocore. I have also moved generate_backtrace() to backtrace.c instead of gsm_utils.c, otherwise the timer and msgfile tests depend on libosmogsm. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
-rw-r--r--Makefile.am2
-rw-r--r--configure.in2
-rw-r--r--include/osmocore/Makefile.am3
-rw-r--r--include/osmocore/backtrace.h6
-rw-r--r--include/osmocore/gsm_utils.h1
-rw-r--r--libosmogsm.pc.in11
-rw-r--r--src/Makefile.am14
-rw-r--r--src/backtrace.c50
-rw-r--r--src/gsm/Makefile.am13
-rw-r--r--src/gsm/comp128.c (renamed from src/comp128.c)0
-rw-r--r--src/gsm/gprs_cipher_core.c (renamed from src/gprs_cipher_core.c)0
-rw-r--r--src/gsm/gsm0480.c (renamed from src/gsm0480.c)0
-rw-r--r--src/gsm/gsm0808.c (renamed from src/gsm0808.c)0
-rw-r--r--src/gsm/gsm48.c (renamed from src/gsm48.c)0
-rw-r--r--src/gsm/gsm48_ie.c (renamed from src/gsm48_ie.c)0
-rw-r--r--src/gsm/gsm_utils.c (renamed from src/gsm_utils.c)23
-rw-r--r--src/gsm/rsl.c (renamed from src/rsl.c)0
-rw-r--r--src/gsm/rxlev_stat.c (renamed from src/rxlev_stat.c)0
-rw-r--r--src/gsm/tlv_parser.c (renamed from src/tlv_parser.c)0
-rw-r--r--src/panic.c1
-rw-r--r--tests/sms/Makefile.am2
-rw-r--r--tests/smscb/Makefile.am2
-rw-r--r--tests/ussd/Makefile.am2
23 files changed, 96 insertions, 36 deletions
diff --git a/Makefile.am b/Makefile.am
index 93254e81..e391de89 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,7 @@ INCLUDES = $(all_includes) -I$(top_srcdir)/include
SUBDIRS = include src tests
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libosmocore.pc libosmocodec.pc libosmovty.pc
+pkgconfig_DATA = libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
diff --git a/configure.in b/configure.in
index 165cecb7..b572bf4c 100644
--- a/configure.in
+++ b/configure.in
@@ -101,6 +101,7 @@ AC_OUTPUT(
libosmocore.pc
libosmocodec.pc
libosmovty.pc
+ libosmogsm.pc
include/osmocom/Makefile
include/osmocom/vty/Makefile
include/osmocom/codec/Makefile
@@ -111,6 +112,7 @@ AC_OUTPUT(
src/Makefile
src/vty/Makefile
src/codec/Makefile
+ src/gsm/Makefile
tests/Makefile
tests/timer/Makefile
tests/sms/Makefile
diff --git a/include/osmocore/Makefile.am b/include/osmocore/Makefile.am
index a3b12ef4..b65589a6 100644
--- a/include/osmocore/Makefile.am
+++ b/include/osmocore/Makefile.am
@@ -2,7 +2,8 @@ osmocore_HEADERS = signal.h linuxlist.h timer.h select.h msgb.h bits.h \
tlv.h bitvec.h comp128.h statistics.h gsm_utils.h utils.h \
gsmtap.h write_queue.h rsl.h gsm48.h rxlev_stat.h mncc.h \
gsm48_ie.h logging.h gsm0808.h rate_ctr.h gsmtap_util.h \
- plugin.h crc16.h panic.h process.h gsm0480.h msgfile.h
+ plugin.h crc16.h panic.h process.h gsm0480.h msgfile.h \
+ backtrace.h
if ENABLE_TALLOC
osmocore_HEADERS += talloc.h
diff --git a/include/osmocore/backtrace.h b/include/osmocore/backtrace.h
new file mode 100644
index 00000000..bbbb2c28
--- /dev/null
+++ b/include/osmocore/backtrace.h
@@ -0,0 +1,6 @@
+#ifndef _OSMO_BACKTRACE_H_
+#define _OSMO_BACKTRACE_H_
+
+void generate_backtrace();
+
+#endif
diff --git a/include/osmocore/gsm_utils.h b/include/osmocore/gsm_utils.h
index 0aadd2e4..19adb70a 100644
--- a/include/osmocore/gsm_utils.h
+++ b/include/osmocore/gsm_utils.h
@@ -114,5 +114,4 @@ int gprs_tlli_type(uint32_t tlli);
uint32_t gprs_tmsi2tlli(uint32_t p_tmsi, enum gprs_tlli_type type);
-void generate_backtrace();
#endif
diff --git a/libosmogsm.pc.in b/libosmogsm.pc.in
new file mode 100644
index 00000000..753bb3a1
--- /dev/null
+++ b/libosmogsm.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: Osmocom GSM Core Library
+Description: GSM Core Library
+Version: @VERSION@
+Libs: -L${libdir} -losmogsm
+Cflags: -I${includedir}/
+
diff --git a/src/Makefile.am b/src/Makefile.am
index 94492c53..c5c8a21d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS=. vty codec
+SUBDIRS=. vty codec gsm
# This is _NOT_ the library release version, it's an API version.
# Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification
@@ -9,12 +9,12 @@ AM_CFLAGS = -fPIC -Wall
lib_LTLIBRARIES = libosmocore.la
-libosmocore_la_SOURCES = timer.c select.c signal.c msgb.c rxlev_stat.c bits.c \
- tlv_parser.c bitvec.c comp128.c gsm_utils.c statistics.c \
- write_queue.c utils.c rsl.c gsm48.c gsm48_ie.c \
- logging.c logging_syslog.c gsm0808.c rate_ctr.c \
- gsmtap_util.c gprs_cipher_core.c crc16.c panic.c \
- process.c gsm0480.c
+libosmocore_la_SOURCES = timer.c select.c signal.c msgb.c bits.c \
+ bitvec.c statistics.c \
+ write_queue.c utils.c \
+ logging.c logging_syslog.c rate_ctr.c \
+ gsmtap_util.c crc16.c panic.c backtrace.c \
+ process.c
if ENABLE_PLUGIN
libosmocore_la_SOURCES += plugin.c
diff --git a/src/backtrace.c b/src/backtrace.c
new file mode 100644
index 00000000..42394453
--- /dev/null
+++ b/src/backtrace.c
@@ -0,0 +1,50 @@
+/*
+ * (C) 2008 by Daniel Willmann <daniel@totalueberwachung.de>
+ * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009-2010 by Harald Welte <laforge@gnumonks.org>
+ * (C) 2010 by Nico Golde <nico@ngolde.de>
+ *
+ * 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.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <osmocore/utils.h>
+#include "config.h"
+
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+void generate_backtrace()
+{
+ int i, nptrs;
+ void *buffer[100];
+ char **strings;
+
+ nptrs = backtrace(buffer, ARRAY_SIZE(buffer));
+ printf("backtrace() returned %d addresses\n", nptrs);
+
+ strings = backtrace_symbols(buffer, nptrs);
+ if (!strings)
+ return;
+
+ for (i = 1; i < nptrs; i++)
+ printf("%s\n", strings[i]);
+
+ free(strings);
+}
+#endif
diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am
new file mode 100644
index 00000000..a8c2e569
--- /dev/null
+++ b/src/gsm/Makefile.am
@@ -0,0 +1,13 @@
+# This is _NOT_ the library release version, it's an API version.
+# Please read Chapter 6 "Library interface versions" of the libtool documentation before making any modification
+LIBVERSION=0:0:0
+
+INCLUDES = $(all_includes) -I$(top_srcdir)/include
+AM_CFLAGS = -fPIC -Wall
+
+lib_LTLIBRARIES = libosmogsm.la
+
+libosmogsm_la_SOURCES = rxlev_stat.c tlv_parser.c comp128.c gsm_utils.c \
+ rsl.c gsm48.c gsm48_ie.c gsm0808.c \
+ gprs_cipher_core.c gsm0480.c
+libosmogsm_la_LIBADD = $(top_builddir)/src/libosmocore.la
diff --git a/src/comp128.c b/src/gsm/comp128.c
index 5d5680c7..5d5680c7 100644
--- a/src/comp128.c
+++ b/src/gsm/comp128.c
diff --git a/src/gprs_cipher_core.c b/src/gsm/gprs_cipher_core.c
index 6174bd72..6174bd72 100644
--- a/src/gprs_cipher_core.c
+++ b/src/gsm/gprs_cipher_core.c
diff --git a/src/gsm0480.c b/src/gsm/gsm0480.c
index b6b345cb..b6b345cb 100644
--- a/src/gsm0480.c
+++ b/src/gsm/gsm0480.c
diff --git a/src/gsm0808.c b/src/gsm/gsm0808.c
index dc450cc4..dc450cc4 100644
--- a/src/gsm0808.c
+++ b/src/gsm/gsm0808.c
diff --git a/src/gsm48.c b/src/gsm/gsm48.c
index daec4f39..daec4f39 100644
--- a/src/gsm48.c
+++ b/src/gsm/gsm48.c
diff --git a/src/gsm48_ie.c b/src/gsm/gsm48_ie.c
index 0e270881..0e270881 100644
--- a/src/gsm48_ie.c
+++ b/src/gsm/gsm48_ie.c
diff --git a/src/gsm_utils.c b/src/gsm/gsm_utils.c
index 31e3cd69..54a13ad8 100644
--- a/src/gsm_utils.c
+++ b/src/gsm/gsm_utils.c
@@ -334,29 +334,6 @@ enum gsm_band gsm_band_parse(const char* mhz)
}
}
-
-#ifdef HAVE_EXECINFO_H
-#include <execinfo.h>
-void generate_backtrace()
-{
- int i, nptrs;
- void *buffer[100];
- char **strings;
-
- nptrs = backtrace(buffer, ARRAY_SIZE(buffer));
- printf("backtrace() returned %d addresses\n", nptrs);
-
- strings = backtrace_symbols(buffer, nptrs);
- if (!strings)
- return;
-
- for (i = 1; i < nptrs; i++)
- printf("%s\n", strings[i]);
-
- free(strings);
-}
-#endif
-
enum gsm_band gsm_arfcn2band(uint16_t arfcn)
{
int is_pcs = arfcn & ARFCN_PCS;
diff --git a/src/rsl.c b/src/gsm/rsl.c
index 3bfeffb9..3bfeffb9 100644
--- a/src/rsl.c
+++ b/src/gsm/rsl.c
diff --git a/src/rxlev_stat.c b/src/gsm/rxlev_stat.c
index b474aaa8..b474aaa8 100644
--- a/src/rxlev_stat.c
+++ b/src/gsm/rxlev_stat.c
diff --git a/src/tlv_parser.c b/src/gsm/tlv_parser.c
index bbef7a9a..bbef7a9a 100644
--- a/src/tlv_parser.c
+++ b/src/gsm/tlv_parser.c
diff --git a/src/panic.c b/src/panic.c
index 5fb7b565..21e8fd56 100644
--- a/src/panic.c
+++ b/src/panic.c
@@ -22,6 +22,7 @@
#include <osmocore/gsm_utils.h>
#include <osmocore/panic.h>
+#include <osmocore/backtrace.h>
#include "../config.h"
diff --git a/tests/sms/Makefile.am b/tests/sms/Makefile.am
index a8f1ff6a..fa4e387f 100644
--- a/tests/sms/Makefile.am
+++ b/tests/sms/Makefile.am
@@ -2,4 +2,4 @@ INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = sms_test
sms_test_SOURCES = sms_test.c
-sms_test_LDADD = $(top_builddir)/src/libosmocore.la
+sms_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
diff --git a/tests/smscb/Makefile.am b/tests/smscb/Makefile.am
index 1d0e5384..9a6fb4fd 100644
--- a/tests/smscb/Makefile.am
+++ b/tests/smscb/Makefile.am
@@ -2,4 +2,4 @@ INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = smscb_test
smscb_test_SOURCES = smscb_test.c
-smscb_test_LDADD = $(top_builddir)/src/libosmocore.la
+smscb_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la
diff --git a/tests/ussd/Makefile.am b/tests/ussd/Makefile.am
index d29506cc..ef9aa492 100644
--- a/tests/ussd/Makefile.am
+++ b/tests/ussd/Makefile.am
@@ -2,4 +2,4 @@ INCLUDES = $(all_includes) -I$(top_srcdir)/include
noinst_PROGRAMS = ussd_test
ussd_test_SOURCES = ussd_test.c
-ussd_test_LDADD = $(top_builddir)/src/libosmocore.la
+ussd_test_LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la