From: Pablo Neira Ayuso pablo@gnumonks.org
Hi!
With these patches, libosmocore, libosmo-sccp, openbsc and osmo-tetra does not use anymore our own copy of talloc and they rely on the standalone library that is provided by major distributors.
The osmocom-bb part is still missing, my idea is to include a copy of libtalloc in the tree in the shared/ directory via rsync. This patch will follow later since we can still rely on the outdated copy of libosmocore.
Please, apply.
From: Pablo Neira Ayuso pablo@gnumonks.org
With this patch, we check for the libtalloc version installed in the system.
This patch also replaces all references to:
#include <osmocom/core/talloc.h>
by:
#include <talloc.h>
I did this with this command: find ./ -type f -exec sed -i "s/osmocom/core/talloc.h/talloc.h/g" {} ;
Make sure you skip .git directory in this replacement, otherwise you'll get a corrupted git repository. --- configure.ac | 9 +- include/osmocom/core/Makefile.am | 4 - include/osmocom/core/talloc.h | 192 ---- src/Makefile.am | 6 +- src/gsmtap_util.c | 2 +- src/logging.c | 2 +- src/logging_syslog.c | 2 +- src/msgb.c | 2 +- src/msgfile.c | 2 +- src/rate_ctr.c | 2 +- src/signal.c | 2 +- src/statistics.c | 2 +- src/talloc.c | 1804 -------------------------------------- src/vty/buffer.c | 2 +- src/vty/command.c | 2 +- src/vty/logging_vty.c | 2 +- src/vty/telnet_interface.c | 2 +- src/vty/utils.c | 2 +- src/vty/vector.c | 2 +- src/vty/vty.c | 2 +- 20 files changed, 18 insertions(+), 2027 deletions(-) delete mode 100644 include/osmocom/core/talloc.h delete mode 100644 src/talloc.c
diff --git a/configure.ac b/configure.ac index b923a21..cf6e15c 100644 --- a/configure.ac +++ b/configure.ac @@ -34,14 +34,6 @@ AC_SUBST(SYMBOL_VISIBILITY) dnl Generate the output AM_CONFIG_HEADER(config.h)
-AC_ARG_ENABLE(talloc, - [AS_HELP_STRING( - [--disable-talloc], - [Disable building talloc memory allocator] - )], - [enable_talloc=0], [enable_talloc=1]) -AM_CONDITIONAL(ENABLE_TALLOC, test "x$enable_talloc" = "x1") - AC_ARG_ENABLE(plugin, [AS_HELP_STRING( [--disable-plugin], @@ -96,6 +88,7 @@ AC_ARG_ENABLE(msgfile, [enable_msgfile=0], [enable_msgfile=1]) AM_CONDITIONAL(ENABLE_MSGFILE, test "x$enable_msgfile" = "x1")
+PKG_CHECK_MODULES([LIBTALLOC], [talloc >= 2.0.1])
AC_OUTPUT( libosmocore.pc diff --git a/include/osmocom/core/Makefile.am b/include/osmocom/core/Makefile.am index 3c30362..f04f1d3 100644 --- a/include/osmocom/core/Makefile.am +++ b/include/osmocom/core/Makefile.am @@ -5,8 +5,4 @@ osmocore_HEADERS = signal.h linuxlist.h timer.h select.h msgb.h bits.h \ plugin.h crc16.h panic.h process.h msgfile.h \ backtrace.h conv.h application.h
-if ENABLE_TALLOC -osmocore_HEADERS += talloc.h -endif - osmocoredir = $(includedir)/osmocom/core diff --git a/include/osmocom/core/talloc.h b/include/osmocom/core/talloc.h deleted file mode 100644 index f7f7643..0000000 --- a/include/osmocom/core/talloc.h +++ /dev/null @@ -1,192 +0,0 @@ -#ifndef _TALLOC_H_ -#define _TALLOC_H_ -/* - Unix SMB/CIFS implementation. - Samba temporary memory allocation functions - - Copyright (C) Andrew Tridgell 2004-2005 - Copyright (C) Stefan Metzmacher 2006 - - ** NOTE! The following LGPL license applies to the talloc - ** library. This does NOT imply that all of Samba is released - ** under the LGPL - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, see http://www.gnu.org/licenses/. -*/ - -#include <stdlib.h> -#include <stdio.h> -#include <stdarg.h> - -#define HAVE_VA_COPY - -/* this is only needed for compatibility with the old talloc */ -typedef void TALLOC_CTX; - -/* - this uses a little trick to allow __LINE__ to be stringified -*/ -#ifndef __location__ -#define __TALLOC_STRING_LINE1__(s) #s -#define __TALLOC_STRING_LINE2__(s) __TALLOC_STRING_LINE1__(s) -#define __TALLOC_STRING_LINE3__ __TALLOC_STRING_LINE2__(__LINE__) -#define __location__ __FILE__ ":" __TALLOC_STRING_LINE3__ -#endif - -#ifndef TALLOC_DEPRECATED -#define TALLOC_DEPRECATED 0 -#endif - -#ifndef PRINTF_ATTRIBUTE -#if (__GNUC__ >= 3) -/** Use gcc attribute to check printf fns. a1 is the 1-based index of - * the parameter containing the format, and a2 the index of the first - * argument. Note that some gcc 2.x versions don't handle this - * properly **/ -#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2))) -#else -#define PRINTF_ATTRIBUTE(a1, a2) -#endif -#endif - -/* try to make talloc_set_destructor() and talloc_steal() type safe, - if we have a recent gcc */ -#if (__GNUC__ >= 3) -#define _TALLOC_TYPEOF(ptr) __typeof__(ptr) -#define talloc_set_destructor(ptr, function) \ - do { \ - int (*_talloc_destructor_fn)(_TALLOC_TYPEOF(ptr)) = (function); \ - _talloc_set_destructor((ptr), (int (*)(void *))_talloc_destructor_fn); \ - } while(0) -/* this extremely strange macro is to avoid some braindamaged warning - stupidity in gcc 4.1.x */ -#define talloc_steal(ctx, ptr) ({ _TALLOC_TYPEOF(ptr) __talloc_steal_ret = (_TALLOC_TYPEOF(ptr))_talloc_steal((ctx),(ptr)); __talloc_steal_ret; }) -#else -#define talloc_set_destructor(ptr, function) \ - _talloc_set_destructor((ptr), (int (*)(void *))(function)) -#define _TALLOC_TYPEOF(ptr) void * -#define talloc_steal(ctx, ptr) (_TALLOC_TYPEOF(ptr))_talloc_steal((ctx),(ptr)) -#endif - -#define talloc_reference(ctx, ptr) (_TALLOC_TYPEOF(ptr))_talloc_reference((ctx),(ptr)) -#define talloc_move(ctx, ptr) (_TALLOC_TYPEOF(*(ptr)))_talloc_move((ctx),(void *)(ptr)) - -/* useful macros for creating type checked pointers */ -#define talloc(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type) -#define talloc_size(ctx, size) talloc_named_const(ctx, size, __location__) -#define talloc_ptrtype(ctx, ptr) (_TALLOC_TYPEOF(ptr))talloc_size(ctx, sizeof(*(ptr))) - -#define talloc_new(ctx) talloc_named_const(ctx, 0, "talloc_new: " __location__) - -#define talloc_zero(ctx, type) (type *)_talloc_zero(ctx, sizeof(type), #type) -#define talloc_zero_size(ctx, size) _talloc_zero(ctx, size, __location__) - -#define talloc_zero_array(ctx, type, count) (type *)_talloc_zero_array(ctx, sizeof(type), count, #type) -#define talloc_array(ctx, type, count) (type *)_talloc_array(ctx, sizeof(type), count, #type) -#define talloc_array_size(ctx, size, count) _talloc_array(ctx, size, count, __location__) -#define talloc_array_ptrtype(ctx, ptr, count) (_TALLOC_TYPEOF(ptr))talloc_array_size(ctx, sizeof(*(ptr)), count) -#define talloc_array_length(ctx) (talloc_get_size(ctx)/sizeof(*ctx)) - -#define talloc_realloc(ctx, p, type, count) (type *)_talloc_realloc_array(ctx, p, sizeof(type), count, #type) -#define talloc_realloc_size(ctx, ptr, size) _talloc_realloc(ctx, ptr, size, __location__) - -#define talloc_memdup(t, p, size) _talloc_memdup(t, p, size, __location__) - -#define talloc_set_type(ptr, type) talloc_set_name_const(ptr, #type) -#define talloc_get_type(ptr, type) (type *)talloc_check_name(ptr, #type) -#define talloc_get_type_abort(ptr, type) (type *)_talloc_get_type_abort(ptr, #type, __location__) - -#define talloc_find_parent_bytype(ptr, type) (type *)talloc_find_parent_byname(ptr, #type) - -#if TALLOC_DEPRECATED -#define talloc_zero_p(ctx, type) talloc_zero(ctx, type) -#define talloc_p(ctx, type) talloc(ctx, type) -#define talloc_array_p(ctx, type, count) talloc_array(ctx, type, count) -#define talloc_realloc_p(ctx, p, type, count) talloc_realloc(ctx, p, type, count) -#define talloc_destroy(ctx) talloc_free(ctx) -#define talloc_append_string(c, s, a) (s?talloc_strdup_append(s,a):talloc_strdup(c, a)) -#endif - -#define TALLOC_FREE(ctx) do { talloc_free(ctx); ctx=NULL; } while(0) - -/* The following definitions come from talloc.c */ -void *_talloc(const void *context, size_t size); -void *talloc_pool(const void *context, size_t size); -void _talloc_set_destructor(const void *ptr, int (*_destructor)(void *)); -int talloc_increase_ref_count(const void *ptr); -size_t talloc_reference_count(const void *ptr); -void *_talloc_reference(const void *context, const void *ptr); -int talloc_unlink(const void *context, void *ptr); -const char *talloc_set_name(const void *ptr, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3); -void talloc_set_name_const(const void *ptr, const char *name); -void *talloc_named(const void *context, size_t size, - const char *fmt, ...) PRINTF_ATTRIBUTE(3,4); -void *talloc_named_const(const void *context, size_t size, const char *name); -const char *talloc_get_name(const void *ptr); -void *talloc_check_name(const void *ptr, const char *name); -void *_talloc_get_type_abort(const void *ptr, const char *name, const char *location); -void *talloc_parent(const void *ptr); -const char *talloc_parent_name(const void *ptr); -void *talloc_init(const char *fmt, ...) PRINTF_ATTRIBUTE(1,2); -int talloc_free(void *ptr); -void talloc_free_children(void *ptr); -void *_talloc_realloc(const void *context, void *ptr, size_t size, const char *name); -void *_talloc_steal(const void *new_ctx, const void *ptr); -void *_talloc_move(const void *new_ctx, const void *pptr); -size_t talloc_total_size(const void *ptr); -size_t talloc_total_blocks(const void *ptr); -void talloc_report_depth_cb(const void *ptr, int depth, int max_depth, - void (*callback)(const void *ptr, - int depth, int max_depth, - int is_ref, - void *private_data), - void *private_data); -void talloc_report_depth_file(const void *ptr, int depth, int max_depth, FILE *f); -void talloc_report_full(const void *ptr, FILE *f); -void talloc_report(const void *ptr, FILE *f); -void talloc_enable_null_tracking(void); -void talloc_disable_null_tracking(void); -void talloc_enable_leak_report(void); -void talloc_enable_leak_report_full(void); -void *_talloc_zero(const void *ctx, size_t size, const char *name); -void *_talloc_memdup(const void *t, const void *p, size_t size, const char *name); -void *_talloc_array(const void *ctx, size_t el_size, unsigned count, const char *name); -void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned count, const char *name); -void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size, unsigned count, const char *name); -void *talloc_realloc_fn(const void *context, void *ptr, size_t size); -void *talloc_autofree_context(void); -size_t talloc_get_size(const void *ctx); -void *talloc_find_parent_byname(const void *ctx, const char *name); -void talloc_show_parents(const void *context, FILE *file); -int talloc_is_parent(const void *context, const void *ptr); - -char *talloc_strdup(const void *t, const char *p); -char *talloc_strdup_append(char *s, const char *a); -char *talloc_strdup_append_buffer(char *s, const char *a); - -char *talloc_strndup(const void *t, const char *p, size_t n); -char *talloc_strndup_append(char *s, const char *a, size_t n); -char *talloc_strndup_append_buffer(char *s, const char *a, size_t n); - -char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0); -char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0); -char *talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0); - -char *talloc_asprintf(const void *t, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3); -char *talloc_asprintf_append(char *s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3); -char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3); - -void talloc_set_abort_fn(void (*abort_fn)(const char *reason)); - -#endif diff --git a/src/Makefile.am b/src/Makefile.am index 1ae3cff..251d2a5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,6 +9,8 @@ AM_CFLAGS = -fPIC -Wall
lib_LTLIBRARIES = libosmocore.la
+libosmocore_la_LIBADD = ${LIBTALLOC_LIBS} + libosmocore_la_SOURCES = timer.c select.c signal.c msgb.c bits.c \ bitvec.c statistics.c \ write_queue.c utils.c socket.c \ @@ -23,10 +25,6 @@ else libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) endif
-if ENABLE_TALLOC -libosmocore_la_SOURCES += talloc.c -endif - if ENABLE_MSGFILE libosmocore_la_SOURCES += msgfile.c endif diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c index c8c26c6..47fa37d 100644 --- a/src/gsmtap_util.c +++ b/src/gsmtap_util.c @@ -26,7 +26,7 @@ #include <osmocom/core/logging.h> #include <osmocom/core/gsmtap.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/socket.h> #include <osmocom/gsm/protocol/gsm_04_08.h> diff --git a/src/logging.c b/src/logging.c index 3c9dc03..8c4d270 100644 --- a/src/logging.c +++ b/src/logging.c @@ -34,7 +34,7 @@ #include <time.h> #include <errno.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/utils.h> #include <osmocom/core/logging.h>
diff --git a/src/logging_syslog.c b/src/logging_syslog.c index 4f043b1..9c9d91f 100644 --- a/src/logging_syslog.c +++ b/src/logging_syslog.c @@ -33,7 +33,7 @@ #include <strings.h> #endif
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/utils.h> #include <osmocom/core/logging.h>
diff --git a/src/msgb.c b/src/msgb.c index d2c167a..f22a756 100644 --- a/src/msgb.c +++ b/src/msgb.c @@ -25,7 +25,7 @@
#include <osmocom/core/msgb.h> //#include <openbsc/gsm_data.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> //#include <openbsc/debug.h>
void *tall_msgb_ctx; diff --git a/src/msgfile.c b/src/msgfile.c index d2b180d..22e0c34 100644 --- a/src/msgfile.c +++ b/src/msgfile.c @@ -22,7 +22,7 @@ */
#include <osmocom/core/msgfile.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <sys/stat.h> #include <fcntl.h> diff --git a/src/rate_ctr.c b/src/rate_ctr.c index 6d771a4..927c763 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -25,7 +25,7 @@
#include <osmocom/core/utils.h> #include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/timer.h> #include <osmocom/core/rate_ctr.h>
diff --git a/src/signal.c b/src/signal.c index bc339bb..f23d1e3 100644 --- a/src/signal.c +++ b/src/signal.c @@ -19,7 +19,7 @@ */
#include <osmocom/core/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/linuxlist.h> #include <stdlib.h> #include <string.h> diff --git a/src/statistics.c b/src/statistics.c index e28541b..0e559d8 100644 --- a/src/statistics.c +++ b/src/statistics.c @@ -23,7 +23,7 @@ #include <string.h>
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/statistics.h>
static LLIST_HEAD(counters); diff --git a/src/talloc.c b/src/talloc.c deleted file mode 100644 index d3a0690..0000000 --- a/src/talloc.c +++ /dev/null @@ -1,1804 +0,0 @@ -/* - Samba Unix SMB/CIFS implementation. - - Samba trivial allocation library - new interface - - NOTE: Please read talloc_guide.txt for full documentation - - Copyright (C) Andrew Tridgell 2004 - Copyright (C) Stefan Metzmacher 2006 - - ** NOTE! The following LGPL license applies to the talloc - ** library. This does NOT imply that all of Samba is released - ** under the LGPL - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 3 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, see http://www.gnu.org/licenses/. -*/ - -/* - inspired by http://swapped.cc/halloc/ -*/ - -#ifdef _SAMBA_BUILD_ -#include "version.h" -#if (SAMBA_VERSION_MAJOR<4) -#include "includes.h" -/* This is to circumvent SAMBA3's paranoid malloc checker. Here in this file - * we trust ourselves... */ -#ifdef malloc -#undef malloc -#endif -#ifdef realloc -#undef realloc -#endif -#define _TALLOC_SAMBA3 -#endif /* (SAMBA_VERSION_MAJOR<4) */ -#endif /* _SAMBA_BUILD_ */ - -#ifndef _TALLOC_SAMBA3 -//#include "replace.h" -#include <unistd.h> -#include <stdio.h> -#include <stdbool.h> -#define __USE_GNU -#include <string.h> -#undef __USE_GNU -#include <osmocom/core/talloc.h> -#define MIN(x,y) ((x) < (y) ? (x) : (y)) -#endif /* not _TALLOC_SAMBA3 */ - -/* use this to force every realloc to change the pointer, to stress test - code that might not cope */ -#define ALWAYS_REALLOC 0 - - -#define MAX_TALLOC_SIZE 0x10000000 -#define TALLOC_MAGIC 0xe814ec70 -#define TALLOC_FLAG_FREE 0x01 -#define TALLOC_FLAG_LOOP 0x02 -#define TALLOC_FLAG_POOL 0x04 /* This is a talloc pool */ -#define TALLOC_FLAG_POOLMEM 0x08 /* This is allocated in a pool */ -#define TALLOC_MAGIC_REFERENCE ((const char *)1) - -/* by default we abort when given a bad pointer (such as when talloc_free() is called - on a pointer that came from malloc() */ -#ifndef TALLOC_ABORT -#define TALLOC_ABORT(reason) abort() -#endif - -#ifndef discard_const_p -#if defined(__intptr_t_defined) || defined(HAVE_INTPTR_T) -# define discard_const_p(type, ptr) ((type *)((intptr_t)(ptr))) -#else -# define discard_const_p(type, ptr) ((type *)(ptr)) -#endif -#endif - -/* these macros gain us a few percent of speed on gcc */ -#if (__GNUC__ >= 3) -/* the strange !! is to ensure that __builtin_expect() takes either 0 or 1 - as its first argument */ -#ifndef likely -#define likely(x) __builtin_expect(!!(x), 1) -#endif -#ifndef unlikely -#define unlikely(x) __builtin_expect(!!(x), 0) -#endif -#else -#ifndef likely -#define likely(x) (x) -#endif -#ifndef unlikely -#define unlikely(x) (x) -#endif -#endif - -#ifdef __APPLE__ -/* taken from http://insanecoding.blogspot.com/2007/03/methods-for-safe-string-handling.ht... */ -size_t strnlen(const char *s, size_t n) -{ - const char *p = (const char *)memchr(s, 0, n); - return(p ? p-s : n); -} -#endif - -/* this null_context is only used if talloc_enable_leak_report() or - talloc_enable_leak_report_full() is called, otherwise it remains - NULL -*/ -static void *null_context; -static void *autofree_context; - -struct talloc_reference_handle { - struct talloc_reference_handle *next, *prev; - void *ptr; -}; - -typedef int (*talloc_destructor_t)(void *); - -struct talloc_chunk { - struct talloc_chunk *next, *prev; - struct talloc_chunk *parent, *child; - struct talloc_reference_handle *refs; - talloc_destructor_t destructor; - const char *name; - size_t size; - unsigned flags; - - /* - * "pool" has dual use: - * - * For the talloc pool itself (i.e. TALLOC_FLAG_POOL is set), "pool" - * marks the end of the currently allocated area. - * - * For members of the pool (i.e. TALLOC_FLAG_POOLMEM is set), "pool" - * is a pointer to the struct talloc_chunk of the pool that it was - * allocated from. This way children can quickly find the pool to chew - * from. - */ - void *pool; -}; - -/* 16 byte alignment seems to keep everyone happy */ -#define TC_HDR_SIZE ((sizeof(struct talloc_chunk)+15)&~15) -#define TC_PTR_FROM_CHUNK(tc) ((void *)(TC_HDR_SIZE + (char*)tc)) - -static void (*talloc_abort_fn)(const char *reason); - -void talloc_set_abort_fn(void (*abort_fn)(const char *reason)) -{ - talloc_abort_fn = abort_fn; -} - -static void talloc_abort(const char *reason) -{ - if (!talloc_abort_fn) { - TALLOC_ABORT(reason); - } - - talloc_abort_fn(reason); -} - -static void talloc_abort_double_free(void) -{ - talloc_abort("Bad talloc magic value - double free"); -} - -static void talloc_abort_unknown_value(void) -{ - talloc_abort("Bad talloc magic value - unknown value"); -} - -/* panic if we get a bad magic value */ -static inline struct talloc_chunk *talloc_chunk_from_ptr(const void *ptr) -{ - const char *pp = (const char *)ptr; - struct talloc_chunk *tc = discard_const_p(struct talloc_chunk, pp - TC_HDR_SIZE); - if (unlikely((tc->flags & (TALLOC_FLAG_FREE | ~0xF)) != TALLOC_MAGIC)) { - if (tc->flags & TALLOC_FLAG_FREE) { - talloc_abort_double_free(); - } else { - talloc_abort_unknown_value(); - } - } - return tc; -} - -/* hook into the front of the list */ -#define _TLIST_ADD(list, p) \ -do { \ - if (!(list)) { \ - (list) = (p); \ - (p)->next = (p)->prev = NULL; \ - } else { \ - (list)->prev = (p); \ - (p)->next = (list); \ - (p)->prev = NULL; \ - (list) = (p); \ - }\ -} while (0) - -/* remove an element from a list - element doesn't have to be in list. */ -#define _TLIST_REMOVE(list, p) \ -do { \ - if ((p) == (list)) { \ - (list) = (p)->next; \ - if (list) (list)->prev = NULL; \ - } else { \ - if ((p)->prev) (p)->prev->next = (p)->next; \ - if ((p)->next) (p)->next->prev = (p)->prev; \ - } \ - if ((p) && ((p) != (list))) (p)->next = (p)->prev = NULL; \ -} while (0) - - -/* - return the parent chunk of a pointer -*/ -static inline struct talloc_chunk *talloc_parent_chunk(const void *ptr) -{ - struct talloc_chunk *tc; - - if (unlikely(ptr == NULL)) { - return NULL; - } - - tc = talloc_chunk_from_ptr(ptr); - while (tc->prev) tc=tc->prev; - - return tc->parent; -} - -void *talloc_parent(const void *ptr) -{ - struct talloc_chunk *tc = talloc_parent_chunk(ptr); - return tc? TC_PTR_FROM_CHUNK(tc) : NULL; -} - -/* - find parents name -*/ -const char *talloc_parent_name(const void *ptr) -{ - struct talloc_chunk *tc = talloc_parent_chunk(ptr); - return tc? tc->name : NULL; -} - -/* - A pool carries an in-pool object count count in the first 16 bytes. - bytes. This is done to support talloc_steal() to a parent outside of the - pool. The count includes the pool itself, so a talloc_free() on a pool will - only destroy the pool if the count has dropped to zero. A talloc_free() of a - pool member will reduce the count, and eventually also call free(3) on the - pool memory. - - The object count is not put into "struct talloc_chunk" because it is only - relevant for talloc pools and the alignment to 16 bytes would increase the - memory footprint of each talloc chunk by those 16 bytes. -*/ - -#define TALLOC_POOL_HDR_SIZE 16 - -static unsigned int *talloc_pool_objectcount(struct talloc_chunk *tc) -{ - return (unsigned int *)((char *)tc + sizeof(struct talloc_chunk)); -} - -/* - Allocate from a pool -*/ - -static struct talloc_chunk *talloc_alloc_pool(struct talloc_chunk *parent, - size_t size) -{ - struct talloc_chunk *pool_ctx = NULL; - size_t space_left; - struct talloc_chunk *result; - size_t chunk_size; - - if (parent == NULL) { - return NULL; - } - - if (parent->flags & TALLOC_FLAG_POOL) { - pool_ctx = parent; - } - else if (parent->flags & TALLOC_FLAG_POOLMEM) { - pool_ctx = (struct talloc_chunk *)parent->pool; - } - - if (pool_ctx == NULL) { - return NULL; - } - - space_left = ((char *)pool_ctx + TC_HDR_SIZE + pool_ctx->size) - - ((char *)pool_ctx->pool); - - /* - * Align size to 16 bytes - */ - chunk_size = ((size + 15) & ~15); - - if (space_left < chunk_size) { - return NULL; - } - - result = (struct talloc_chunk *)pool_ctx->pool; - -#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_UNDEFINED) - VALGRIND_MAKE_MEM_UNDEFINED(result, size); -#endif - - pool_ctx->pool = (void *)((char *)result + chunk_size); - - result->flags = TALLOC_MAGIC | TALLOC_FLAG_POOLMEM; - result->pool = pool_ctx; - - *talloc_pool_objectcount(pool_ctx) += 1; - - return result; -} - -/* - Allocate a bit of memory as a child of an existing pointer -*/ -static inline void *__talloc(const void *context, size_t size) -{ - struct talloc_chunk *tc = NULL; - - if (unlikely(context == NULL)) { - context = null_context; - } - - if (unlikely(size >= MAX_TALLOC_SIZE)) { - return NULL; - } - - if (context != NULL) { - tc = talloc_alloc_pool(talloc_chunk_from_ptr(context), - TC_HDR_SIZE+size); - } - - if (tc == NULL) { - tc = (struct talloc_chunk *)malloc(TC_HDR_SIZE+size); - if (unlikely(tc == NULL)) return NULL; - tc->flags = TALLOC_MAGIC; - tc->pool = NULL; - } - - tc->size = size; - tc->destructor = NULL; - tc->child = NULL; - tc->name = NULL; - tc->refs = NULL; - - if (likely(context)) { - struct talloc_chunk *parent = talloc_chunk_from_ptr(context); - - if (parent->child) { - parent->child->parent = NULL; - tc->next = parent->child; - tc->next->prev = tc; - } else { - tc->next = NULL; - } - tc->parent = parent; - tc->prev = NULL; - parent->child = tc; - } else { - tc->next = tc->prev = tc->parent = NULL; - } - - return TC_PTR_FROM_CHUNK(tc); -} - -/* - * Create a talloc pool - */ - -void *talloc_pool(const void *context, size_t size) -{ - void *result = __talloc(context, size + TALLOC_POOL_HDR_SIZE); - struct talloc_chunk *tc; - - if (unlikely(result == NULL)) { - return NULL; - } - - tc = talloc_chunk_from_ptr(result); - - tc->flags |= TALLOC_FLAG_POOL; - tc->pool = (char *)result + TALLOC_POOL_HDR_SIZE; - - *talloc_pool_objectcount(tc) = 1; - -#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) - VALGRIND_MAKE_MEM_NOACCESS(tc->pool, size); -#endif - - return result; -} - -/* - setup a destructor to be called on free of a pointer - the destructor should return 0 on success, or -1 on failure. - if the destructor fails then the free is failed, and the memory can - be continued to be used -*/ -void _talloc_set_destructor(const void *ptr, int (*destructor)(void *)) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - tc->destructor = destructor; -} - -/* - increase the reference count on a piece of memory. -*/ -int talloc_increase_ref_count(const void *ptr) -{ - if (unlikely(!talloc_reference(null_context, ptr))) { - return -1; - } - return 0; -} - -/* - helper for talloc_reference() - - this is referenced by a function pointer and should not be inline -*/ -static int talloc_reference_destructor(struct talloc_reference_handle *handle) -{ - struct talloc_chunk *ptr_tc = talloc_chunk_from_ptr(handle->ptr); - _TLIST_REMOVE(ptr_tc->refs, handle); - return 0; -} - -/* - more efficient way to add a name to a pointer - the name must point to a - true string constant -*/ -static inline void _talloc_set_name_const(const void *ptr, const char *name) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - tc->name = name; -} - -/* - internal talloc_named_const() -*/ -static inline void *_talloc_named_const(const void *context, size_t size, const char *name) -{ - void *ptr; - - ptr = __talloc(context, size); - if (unlikely(ptr == NULL)) { - return NULL; - } - - _talloc_set_name_const(ptr, name); - - return ptr; -} - -/* - make a secondary reference to a pointer, hanging off the given context. - the pointer remains valid until both the original caller and this given - context are freed. - - the major use for this is when two different structures need to reference the - same underlying data, and you want to be able to free the two instances separately, - and in either order -*/ -void *_talloc_reference(const void *context, const void *ptr) -{ - struct talloc_chunk *tc; - struct talloc_reference_handle *handle; - if (unlikely(ptr == NULL)) return NULL; - - tc = talloc_chunk_from_ptr(ptr); - handle = (struct talloc_reference_handle *)_talloc_named_const(context, - sizeof(struct talloc_reference_handle), - TALLOC_MAGIC_REFERENCE); - if (unlikely(handle == NULL)) return NULL; - - /* note that we hang the destructor off the handle, not the - main context as that allows the caller to still setup their - own destructor on the context if they want to */ - talloc_set_destructor(handle, talloc_reference_destructor); - handle->ptr = discard_const_p(void, ptr); - _TLIST_ADD(tc->refs, handle); - return handle->ptr; -} - - -/* - internal talloc_free call -*/ -static inline int _talloc_free(void *ptr) -{ - struct talloc_chunk *tc; - - if (unlikely(ptr == NULL)) { - return -1; - } - - tc = talloc_chunk_from_ptr(ptr); - - if (unlikely(tc->refs)) { - int is_child; - /* check this is a reference from a child or grantchild - * back to it's parent or grantparent - * - * in that case we need to remove the reference and - * call another instance of talloc_free() on the current - * pointer. - */ - is_child = talloc_is_parent(tc->refs, ptr); - _talloc_free(tc->refs); - if (is_child) { - return _talloc_free(ptr); - } - return -1; - } - - if (unlikely(tc->flags & TALLOC_FLAG_LOOP)) { - /* we have a free loop - stop looping */ - return 0; - } - - if (unlikely(tc->destructor)) { - talloc_destructor_t d = tc->destructor; - if (d == (talloc_destructor_t)-1) { - return -1; - } - tc->destructor = (talloc_destructor_t)-1; - if (d(ptr) == -1) { - tc->destructor = d; - return -1; - } - tc->destructor = NULL; - } - - if (tc->parent) { - _TLIST_REMOVE(tc->parent->child, tc); - if (tc->parent->child) { - tc->parent->child->parent = tc->parent; - } - } else { - if (tc->prev) tc->prev->next = tc->next; - if (tc->next) tc->next->prev = tc->prev; - } - - tc->flags |= TALLOC_FLAG_LOOP; - - while (tc->child) { - /* we need to work out who will own an abandoned child - if it cannot be freed. In priority order, the first - choice is owner of any remaining reference to this - pointer, the second choice is our parent, and the - final choice is the null context. */ - void *child = TC_PTR_FROM_CHUNK(tc->child); - const void *new_parent = null_context; - if (unlikely(tc->child->refs)) { - struct talloc_chunk *p = talloc_parent_chunk(tc->child->refs); - if (p) new_parent = TC_PTR_FROM_CHUNK(p); - } - if (unlikely(_talloc_free(child) == -1)) { - if (new_parent == null_context) { - struct talloc_chunk *p = talloc_parent_chunk(ptr); - if (p) new_parent = TC_PTR_FROM_CHUNK(p); - } - talloc_steal(new_parent, child); - } - } - - tc->flags |= TALLOC_FLAG_FREE; - - if (tc->flags & (TALLOC_FLAG_POOL|TALLOC_FLAG_POOLMEM)) { - struct talloc_chunk *pool; - unsigned int *pool_object_count; - - pool = (tc->flags & TALLOC_FLAG_POOL) - ? tc : (struct talloc_chunk *)tc->pool; - - pool_object_count = talloc_pool_objectcount(pool); - - if (*pool_object_count == 0) { - talloc_abort("Pool object count zero!"); - } - - *pool_object_count -= 1; - - if (*pool_object_count == 0) { - free(pool); - } - } - else { - free(tc); - } - return 0; -} - -/* - move a lump of memory from one talloc context to another return the - ptr on success, or NULL if it could not be transferred. - passing NULL as ptr will always return NULL with no side effects. -*/ -void *_talloc_steal(const void *new_ctx, const void *ptr) -{ - struct talloc_chunk *tc, *new_tc; - - if (unlikely(!ptr)) { - return NULL; - } - - if (unlikely(new_ctx == NULL)) { - new_ctx = null_context; - } - - tc = talloc_chunk_from_ptr(ptr); - - if (unlikely(new_ctx == NULL)) { - if (tc->parent) { - _TLIST_REMOVE(tc->parent->child, tc); - if (tc->parent->child) { - tc->parent->child->parent = tc->parent; - } - } else { - if (tc->prev) tc->prev->next = tc->next; - if (tc->next) tc->next->prev = tc->prev; - } - - tc->parent = tc->next = tc->prev = NULL; - return discard_const_p(void, ptr); - } - - new_tc = talloc_chunk_from_ptr(new_ctx); - - if (unlikely(tc == new_tc || tc->parent == new_tc)) { - return discard_const_p(void, ptr); - } - - if (tc->parent) { - _TLIST_REMOVE(tc->parent->child, tc); - if (tc->parent->child) { - tc->parent->child->parent = tc->parent; - } - } else { - if (tc->prev) tc->prev->next = tc->next; - if (tc->next) tc->next->prev = tc->prev; - } - - tc->parent = new_tc; - if (new_tc->child) new_tc->child->parent = NULL; - _TLIST_ADD(new_tc->child, tc); - - return discard_const_p(void, ptr); -} - - - -/* - remove a secondary reference to a pointer. This undo's what - talloc_reference() has done. The context and pointer arguments - must match those given to a talloc_reference() -*/ -static inline int talloc_unreference(const void *context, const void *ptr) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - struct talloc_reference_handle *h; - - if (unlikely(context == NULL)) { - context = null_context; - } - - for (h=tc->refs;h;h=h->next) { - struct talloc_chunk *p = talloc_parent_chunk(h); - if (p == NULL) { - if (context == NULL) break; - } else if (TC_PTR_FROM_CHUNK(p) == context) { - break; - } - } - if (h == NULL) { - return -1; - } - - return _talloc_free(h); -} - -/* - remove a specific parent context from a pointer. This is a more - controlled varient of talloc_free() -*/ -int talloc_unlink(const void *context, void *ptr) -{ - struct talloc_chunk *tc_p, *new_p; - void *new_parent; - - if (ptr == NULL) { - return -1; - } - - if (context == NULL) { - context = null_context; - } - - if (talloc_unreference(context, ptr) == 0) { - return 0; - } - - if (context == NULL) { - if (talloc_parent_chunk(ptr) != NULL) { - return -1; - } - } else { - if (talloc_chunk_from_ptr(context) != talloc_parent_chunk(ptr)) { - return -1; - } - } - - tc_p = talloc_chunk_from_ptr(ptr); - - if (tc_p->refs == NULL) { - return _talloc_free(ptr); - } - - new_p = talloc_parent_chunk(tc_p->refs); - if (new_p) { - new_parent = TC_PTR_FROM_CHUNK(new_p); - } else { - new_parent = NULL; - } - - if (talloc_unreference(new_parent, ptr) != 0) { - return -1; - } - - talloc_steal(new_parent, ptr); - - return 0; -} - -/* - add a name to an existing pointer - va_list version -*/ -static inline const char *talloc_set_name_v(const void *ptr, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0); - -static inline const char *talloc_set_name_v(const void *ptr, const char *fmt, va_list ap) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - tc->name = talloc_vasprintf(ptr, fmt, ap); - if (likely(tc->name)) { - _talloc_set_name_const(tc->name, ".name"); - } - return tc->name; -} - -/* - add a name to an existing pointer -*/ -const char *talloc_set_name(const void *ptr, const char *fmt, ...) -{ - const char *name; - va_list ap; - va_start(ap, fmt); - name = talloc_set_name_v(ptr, fmt, ap); - va_end(ap); - return name; -} - - -/* - create a named talloc pointer. Any talloc pointer can be named, and - talloc_named() operates just like talloc() except that it allows you - to name the pointer. -*/ -void *talloc_named(const void *context, size_t size, const char *fmt, ...) -{ - va_list ap; - void *ptr; - const char *name; - - ptr = __talloc(context, size); - if (unlikely(ptr == NULL)) return NULL; - - va_start(ap, fmt); - name = talloc_set_name_v(ptr, fmt, ap); - va_end(ap); - - if (unlikely(name == NULL)) { - _talloc_free(ptr); - return NULL; - } - - return ptr; -} - -/* - return the name of a talloc ptr, or "UNNAMED" -*/ -const char *talloc_get_name(const void *ptr) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - if (unlikely(tc->name == TALLOC_MAGIC_REFERENCE)) { - return ".reference"; - } - if (likely(tc->name)) { - return tc->name; - } - return "UNNAMED"; -} - - -/* - check if a pointer has the given name. If it does, return the pointer, - otherwise return NULL -*/ -void *talloc_check_name(const void *ptr, const char *name) -{ - const char *pname; - if (unlikely(ptr == NULL)) return NULL; - pname = talloc_get_name(ptr); - if (likely(pname == name || strcmp(pname, name) == 0)) { - return discard_const_p(void, ptr); - } - return NULL; -} - -static void talloc_abort_type_missmatch(const char *location, - const char *name, - const char *expected) -{ - const char *reason; - - reason = talloc_asprintf(NULL, - "%s: Type mismatch: name[%s] expected[%s]", - location, - name?name:"NULL", - expected); - if (!reason) { - reason = "Type mismatch"; - } - - talloc_abort(reason); -} - -void *_talloc_get_type_abort(const void *ptr, const char *name, const char *location) -{ - const char *pname; - - if (unlikely(ptr == NULL)) { - talloc_abort_type_missmatch(location, NULL, name); - return NULL; - } - - pname = talloc_get_name(ptr); - if (likely(pname == name || strcmp(pname, name) == 0)) { - return discard_const_p(void, ptr); - } - - talloc_abort_type_missmatch(location, pname, name); - return NULL; -} - -/* - this is for compatibility with older versions of talloc -*/ -void *talloc_init(const char *fmt, ...) -{ - va_list ap; - void *ptr; - const char *name; - - /* - * samba3 expects talloc_report_depth_cb(NULL, ...) - * reports all talloc'ed memory, so we need to enable - * null_tracking - */ - talloc_enable_null_tracking(); - - ptr = __talloc(NULL, 0); - if (unlikely(ptr == NULL)) return NULL; - - va_start(ap, fmt); - name = talloc_set_name_v(ptr, fmt, ap); - va_end(ap); - - if (unlikely(name == NULL)) { - _talloc_free(ptr); - return NULL; - } - - return ptr; -} - -/* - this is a replacement for the Samba3 talloc_destroy_pool functionality. It - should probably not be used in new code. It's in here to keep the talloc - code consistent across Samba 3 and 4. -*/ -void talloc_free_children(void *ptr) -{ - struct talloc_chunk *tc; - - if (unlikely(ptr == NULL)) { - return; - } - - tc = talloc_chunk_from_ptr(ptr); - - while (tc->child) { - /* we need to work out who will own an abandoned child - if it cannot be freed. In priority order, the first - choice is owner of any remaining reference to this - pointer, the second choice is our parent, and the - final choice is the null context. */ - void *child = TC_PTR_FROM_CHUNK(tc->child); - const void *new_parent = null_context; - if (unlikely(tc->child->refs)) { - struct talloc_chunk *p = talloc_parent_chunk(tc->child->refs); - if (p) new_parent = TC_PTR_FROM_CHUNK(p); - } - if (unlikely(_talloc_free(child) == -1)) { - if (new_parent == null_context) { - struct talloc_chunk *p = talloc_parent_chunk(ptr); - if (p) new_parent = TC_PTR_FROM_CHUNK(p); - } - talloc_steal(new_parent, child); - } - } - - if ((tc->flags & TALLOC_FLAG_POOL) - && (*talloc_pool_objectcount(tc) == 1)) { - tc->pool = ((char *)tc + TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE); -#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS) - VALGRIND_MAKE_MEM_NOACCESS( - tc->pool, tc->size - TALLOC_POOL_HDR_SIZE); -#endif - } -} - -/* - Allocate a bit of memory as a child of an existing pointer -*/ -void *_talloc(const void *context, size_t size) -{ - return __talloc(context, size); -} - -/* - externally callable talloc_set_name_const() -*/ -void talloc_set_name_const(const void *ptr, const char *name) -{ - _talloc_set_name_const(ptr, name); -} - -/* - create a named talloc pointer. Any talloc pointer can be named, and - talloc_named() operates just like talloc() except that it allows you - to name the pointer. -*/ -void *talloc_named_const(const void *context, size_t size, const char *name) -{ - return _talloc_named_const(context, size, name); -} - -/* - free a talloc pointer. This also frees all child pointers of this - pointer recursively - - return 0 if the memory is actually freed, otherwise -1. The memory - will not be freed if the ref_count is > 1 or the destructor (if - any) returns non-zero -*/ -int talloc_free(void *ptr) -{ - return _talloc_free(ptr); -} - - - -/* - A talloc version of realloc. The context argument is only used if - ptr is NULL -*/ -void *_talloc_realloc(const void *context, void *ptr, size_t size, const char *name) -{ - struct talloc_chunk *tc; - void *new_ptr; - bool malloced = false; - - /* size zero is equivalent to free() */ - if (unlikely(size == 0)) { - _talloc_free(ptr); - return NULL; - } - - if (unlikely(size >= MAX_TALLOC_SIZE)) { - return NULL; - } - - /* realloc(NULL) is equivalent to malloc() */ - if (ptr == NULL) { - return _talloc_named_const(context, size, name); - } - - tc = talloc_chunk_from_ptr(ptr); - - /* don't allow realloc on referenced pointers */ - if (unlikely(tc->refs)) { - return NULL; - } - - /* don't let anybody try to realloc a talloc_pool */ - if (unlikely(tc->flags & TALLOC_FLAG_POOL)) { - return NULL; - } - - /* don't shrink if we have less than 1k to gain */ - if ((size < tc->size) && ((tc->size - size) < 1024)) { - tc->size = size; - return ptr; - } - - /* by resetting magic we catch users of the old memory */ - tc->flags |= TALLOC_FLAG_FREE; - -#if ALWAYS_REALLOC - new_ptr = malloc(size + TC_HDR_SIZE); - if (new_ptr) { - memcpy(new_ptr, tc, tc->size + TC_HDR_SIZE); - free(tc); - } -#else - if (tc->flags & TALLOC_FLAG_POOLMEM) { - - new_ptr = talloc_alloc_pool(tc, size + TC_HDR_SIZE); - *talloc_pool_objectcount((struct talloc_chunk *) - (tc->pool)) -= 1; - - if (new_ptr == NULL) { - new_ptr = malloc(TC_HDR_SIZE+size); - malloced = true; - } - - if (new_ptr) { - memcpy(new_ptr, tc, MIN(tc->size,size) + TC_HDR_SIZE); - } - } - else { - new_ptr = realloc(tc, size + TC_HDR_SIZE); - } -#endif - if (unlikely(!new_ptr)) { - tc->flags &= ~TALLOC_FLAG_FREE; - return NULL; - } - - tc = (struct talloc_chunk *)new_ptr; - tc->flags &= ~TALLOC_FLAG_FREE; - if (malloced) { - tc->flags &= ~TALLOC_FLAG_POOLMEM; - } - if (tc->parent) { - tc->parent->child = tc; - } - if (tc->child) { - tc->child->parent = tc; - } - - if (tc->prev) { - tc->prev->next = tc; - } - if (tc->next) { - tc->next->prev = tc; - } - - tc->size = size; - _talloc_set_name_const(TC_PTR_FROM_CHUNK(tc), name); - - return TC_PTR_FROM_CHUNK(tc); -} - -/* - a wrapper around talloc_steal() for situations where you are moving a pointer - between two structures, and want the old pointer to be set to NULL -*/ -void *_talloc_move(const void *new_ctx, const void *_pptr) -{ - const void **pptr = discard_const_p(const void *,_pptr); - void *ret = _talloc_steal(new_ctx, *pptr); - (*pptr) = NULL; - return ret; -} - -/* - return the total size of a talloc pool (subtree) -*/ -size_t talloc_total_size(const void *ptr) -{ - size_t total = 0; - struct talloc_chunk *c, *tc; - - if (ptr == NULL) { - ptr = null_context; - } - if (ptr == NULL) { - return 0; - } - - tc = talloc_chunk_from_ptr(ptr); - - if (tc->flags & TALLOC_FLAG_LOOP) { - return 0; - } - - tc->flags |= TALLOC_FLAG_LOOP; - - total = tc->size; - for (c=tc->child;c;c=c->next) { - total += talloc_total_size(TC_PTR_FROM_CHUNK(c)); - } - - tc->flags &= ~TALLOC_FLAG_LOOP; - - return total; -} - -/* - return the total number of blocks in a talloc pool (subtree) -*/ -size_t talloc_total_blocks(const void *ptr) -{ - size_t total = 0; - struct talloc_chunk *c, *tc = talloc_chunk_from_ptr(ptr); - - if (tc->flags & TALLOC_FLAG_LOOP) { - return 0; - } - - tc->flags |= TALLOC_FLAG_LOOP; - - total++; - for (c=tc->child;c;c=c->next) { - total += talloc_total_blocks(TC_PTR_FROM_CHUNK(c)); - } - - tc->flags &= ~TALLOC_FLAG_LOOP; - - return total; -} - -/* - return the number of external references to a pointer -*/ -size_t talloc_reference_count(const void *ptr) -{ - struct talloc_chunk *tc = talloc_chunk_from_ptr(ptr); - struct talloc_reference_handle *h; - size_t ret = 0; - - for (h=tc->refs;h;h=h->next) { - ret++; - } - return ret; -} - -/* - report on memory usage by all children of a pointer, giving a full tree view -*/ -void talloc_report_depth_cb(const void *ptr, int depth, int max_depth, - void (*callback)(const void *ptr, - int depth, int max_depth, - int is_ref, - void *private_data), - void *private_data) -{ - struct talloc_chunk *c, *tc; - - if (ptr == NULL) { - ptr = null_context; - } - if (ptr == NULL) return; - - tc = talloc_chunk_from_ptr(ptr); - - if (tc->flags & TALLOC_FLAG_LOOP) { - return; - } - - callback(ptr, depth, max_depth, 0, private_data); - - if (max_depth >= 0 && depth >= max_depth) { - return; - } - - tc->flags |= TALLOC_FLAG_LOOP; - for (c=tc->child;c;c=c->next) { - if (c->name == TALLOC_MAGIC_REFERENCE) { - struct talloc_reference_handle *h = (struct talloc_reference_handle *)TC_PTR_FROM_CHUNK(c); - callback(h->ptr, depth + 1, max_depth, 1, private_data); - } else { - talloc_report_depth_cb(TC_PTR_FROM_CHUNK(c), depth + 1, max_depth, callback, private_data); - } - } - tc->flags &= ~TALLOC_FLAG_LOOP; -} - -static void talloc_report_depth_FILE_helper(const void *ptr, int depth, int max_depth, int is_ref, void *_f) -{ - const char *name = talloc_get_name(ptr); - FILE *f = (FILE *)_f; - - if (is_ref) { - fprintf(f, "%*sreference to: %s\n", depth*4, "", name); - return; - } - - if (depth == 0) { - fprintf(f,"%stalloc report on '%s' (total %6lu bytes in %3lu blocks)\n", - (max_depth < 0 ? "full " :""), name, - (unsigned long)talloc_total_size(ptr), - (unsigned long)talloc_total_blocks(ptr)); - return; - } - - fprintf(f, "%*s%-30s contains %6lu bytes in %3lu blocks (ref %d) %p\n", - depth*4, "", - name, - (unsigned long)talloc_total_size(ptr), - (unsigned long)talloc_total_blocks(ptr), - (int)talloc_reference_count(ptr), ptr); - -#if 0 - fprintf(f, "content: "); - if (talloc_total_size(ptr)) { - int tot = talloc_total_size(ptr); - int i; - - for (i = 0; i < tot; i++) { - if ((((char *)ptr)[i] > 31) && (((char *)ptr)[i] < 126)) { - fprintf(f, "%c", ((char *)ptr)[i]); - } else { - fprintf(f, "~%02x", ((char *)ptr)[i]); - } - } - } - fprintf(f, "\n"); -#endif -} - -/* - report on memory usage by all children of a pointer, giving a full tree view -*/ -void talloc_report_depth_file(const void *ptr, int depth, int max_depth, FILE *f) -{ - talloc_report_depth_cb(ptr, depth, max_depth, talloc_report_depth_FILE_helper, f); - fflush(f); -} - -/* - report on memory usage by all children of a pointer, giving a full tree view -*/ -void talloc_report_full(const void *ptr, FILE *f) -{ - talloc_report_depth_file(ptr, 0, -1, f); -} - -/* - report on memory usage by all children of a pointer -*/ -void talloc_report(const void *ptr, FILE *f) -{ - talloc_report_depth_file(ptr, 0, 1, f); -} - -/* - report on any memory hanging off the null context -*/ -static void talloc_report_null(void) -{ - if (talloc_total_size(null_context) != 0) { - talloc_report(null_context, stderr); - } -} - -/* - report on any memory hanging off the null context -*/ -static void talloc_report_null_full(void) -{ - if (talloc_total_size(null_context) != 0) { - talloc_report_full(null_context, stderr); - } -} - -/* - enable tracking of the NULL context -*/ -void talloc_enable_null_tracking(void) -{ - if (null_context == NULL) { - null_context = _talloc_named_const(NULL, 0, "null_context"); - } -} - -/* - disable tracking of the NULL context -*/ -void talloc_disable_null_tracking(void) -{ - _talloc_free(null_context); - null_context = NULL; -} - -/* - enable leak reporting on exit -*/ -void talloc_enable_leak_report(void) -{ - talloc_enable_null_tracking(); - atexit(talloc_report_null); -} - -/* - enable full leak reporting on exit -*/ -void talloc_enable_leak_report_full(void) -{ - talloc_enable_null_tracking(); - atexit(talloc_report_null_full); -} - -/* - talloc and zero memory. -*/ -void *_talloc_zero(const void *ctx, size_t size, const char *name) -{ - void *p = _talloc_named_const(ctx, size, name); - - if (p) { - memset(p, '\0', size); - } - - return p; -} - -/* - memdup with a talloc. -*/ -void *_talloc_memdup(const void *t, const void *p, size_t size, const char *name) -{ - void *newp = _talloc_named_const(t, size, name); - - if (likely(newp)) { - memcpy(newp, p, size); - } - - return newp; -} - -static inline char *__talloc_strlendup(const void *t, const char *p, size_t len) -{ - char *ret; - - ret = (char *)__talloc(t, len + 1); - if (unlikely(!ret)) return NULL; - - memcpy(ret, p, len); - ret[len] = 0; - - _talloc_set_name_const(ret, ret); - return ret; -} - -/* - strdup with a talloc -*/ -char *talloc_strdup(const void *t, const char *p) -{ - if (unlikely(!p)) return NULL; - return __talloc_strlendup(t, p, strlen(p)); -} - -/* - strndup with a talloc -*/ -char *talloc_strndup(const void *t, const char *p, size_t n) -{ - if (unlikely(!p)) return NULL; - return __talloc_strlendup(t, p, strnlen(p, n)); -} - -static inline char *__talloc_strlendup_append(char *s, size_t slen, - const char *a, size_t alen) -{ - char *ret; - - ret = talloc_realloc(NULL, s, char, slen + alen + 1); - if (unlikely(!ret)) return NULL; - - /* append the string and the trailing \0 */ - memcpy(&ret[slen], a, alen); - ret[slen+alen] = 0; - - _talloc_set_name_const(ret, ret); - return ret; -} - -/* - * Appends at the end of the string. - */ -char *talloc_strdup_append(char *s, const char *a) -{ - if (unlikely(!s)) { - return talloc_strdup(NULL, a); - } - - if (unlikely(!a)) { - return s; - } - - return __talloc_strlendup_append(s, strlen(s), a, strlen(a)); -} - -/* - * Appends at the end of the talloc'ed buffer, - * not the end of the string. - */ -char *talloc_strdup_append_buffer(char *s, const char *a) -{ - size_t slen; - - if (unlikely(!s)) { - return talloc_strdup(NULL, a); - } - - if (unlikely(!a)) { - return s; - } - - slen = talloc_get_size(s); - if (likely(slen > 0)) { - slen--; - } - - return __talloc_strlendup_append(s, slen, a, strlen(a)); -} - -/* - * Appends at the end of the string. - */ -char *talloc_strndup_append(char *s, const char *a, size_t n) -{ - if (unlikely(!s)) { - return talloc_strdup(NULL, a); - } - - if (unlikely(!a)) { - return s; - } - - return __talloc_strlendup_append(s, strlen(s), a, strnlen(a, n)); -} - -/* - * Appends at the end of the talloc'ed buffer, - * not the end of the string. - */ -char *talloc_strndup_append_buffer(char *s, const char *a, size_t n) -{ - size_t slen; - - if (unlikely(!s)) { - return talloc_strdup(NULL, a); - } - - if (unlikely(!a)) { - return s; - } - - slen = talloc_get_size(s); - if (likely(slen > 0)) { - slen--; - } - - return __talloc_strlendup_append(s, slen, a, strnlen(a, n)); -} - -#ifndef HAVE_VA_COPY -#ifdef HAVE___VA_COPY -#define va_copy(dest, src) __va_copy(dest, src) -#else -#define va_copy(dest, src) (dest) = (src) -#endif -#endif - -char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) -{ - int len; - char *ret; - va_list ap2; - char c; - - /* this call looks strange, but it makes it work on older solaris boxes */ - va_copy(ap2, ap); - len = vsnprintf(&c, 1, fmt, ap2); - va_end(ap2); - if (unlikely(len < 0)) { - return NULL; - } - - ret = (char *)__talloc(t, len+1); - if (unlikely(!ret)) return NULL; - - va_copy(ap2, ap); - vsnprintf(ret, len+1, fmt, ap2); - va_end(ap2); - - _talloc_set_name_const(ret, ret); - return ret; -} - - -/* - Perform string formatting, and return a pointer to newly allocated - memory holding the result, inside a memory pool. - */ -char *talloc_asprintf(const void *t, const char *fmt, ...) -{ - va_list ap; - char *ret; - - va_start(ap, fmt); - ret = talloc_vasprintf(t, fmt, ap); - va_end(ap); - return ret; -} - -static inline char *__talloc_vaslenprintf_append(char *s, size_t slen, - const char *fmt, va_list ap) - PRINTF_ATTRIBUTE(3,0); - -static inline char *__talloc_vaslenprintf_append(char *s, size_t slen, - const char *fmt, va_list ap) -{ - ssize_t alen; - va_list ap2; - char c; - - va_copy(ap2, ap); - alen = vsnprintf(&c, 1, fmt, ap2); - va_end(ap2); - - if (alen <= 0) { - /* Either the vsnprintf failed or the format resulted in - * no characters being formatted. In the former case, we - * ought to return NULL, in the latter we ought to return - * the original string. Most current callers of this - * function expect it to never return NULL. - */ - return s; - } - - s = talloc_realloc(NULL, s, char, slen + alen + 1); - if (!s) return NULL; - - va_copy(ap2, ap); - vsnprintf(s + slen, alen + 1, fmt, ap2); - va_end(ap2); - - _talloc_set_name_const(s, s); - return s; -} - -/** - * Realloc @p s to append the formatted result of @p fmt and @p ap, - * and return @p s, which may have moved. Good for gradually - * accumulating output into a string buffer. Appends at the end - * of the string. - **/ -char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) -{ - if (unlikely(!s)) { - return talloc_vasprintf(NULL, fmt, ap); - } - - return __talloc_vaslenprintf_append(s, strlen(s), fmt, ap); -} - -/** - * Realloc @p s to append the formatted result of @p fmt and @p ap, - * and return @p s, which may have moved. Always appends at the - * end of the talloc'ed buffer, not the end of the string. - **/ -char *talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap) -{ - size_t slen; - - if (unlikely(!s)) { - return talloc_vasprintf(NULL, fmt, ap); - } - - slen = talloc_get_size(s); - if (likely(slen > 0)) { - slen--; - } - - return __talloc_vaslenprintf_append(s, slen, fmt, ap); -} - -/* - Realloc @p s to append the formatted result of @p fmt and return @p - s, which may have moved. Good for gradually accumulating output - into a string buffer. - */ -char *talloc_asprintf_append(char *s, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - s = talloc_vasprintf_append(s, fmt, ap); - va_end(ap); - return s; -} - -/* - Realloc @p s to append the formatted result of @p fmt and return @p - s, which may have moved. Good for gradually accumulating output - into a buffer. - */ -char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - s = talloc_vasprintf_append_buffer(s, fmt, ap); - va_end(ap); - return s; -} - -/* - alloc an array, checking for integer overflow in the array size -*/ -void *_talloc_array(const void *ctx, size_t el_size, unsigned count, const char *name) -{ - if (count >= MAX_TALLOC_SIZE/el_size) { - return NULL; - } - return _talloc_named_const(ctx, el_size * count, name); -} - -/* - alloc an zero array, checking for integer overflow in the array size -*/ -void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned count, const char *name) -{ - if (count >= MAX_TALLOC_SIZE/el_size) { - return NULL; - } - return _talloc_zero(ctx, el_size * count, name); -} - -/* - realloc an array, checking for integer overflow in the array size -*/ -void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size, unsigned count, const char *name) -{ - if (count >= MAX_TALLOC_SIZE/el_size) { - return NULL; - } - return _talloc_realloc(ctx, ptr, el_size * count, name); -} - -/* - a function version of talloc_realloc(), so it can be passed as a function pointer - to libraries that want a realloc function (a realloc function encapsulates - all the basic capabilities of an allocation library, which is why this is useful) -*/ -void *talloc_realloc_fn(const void *context, void *ptr, size_t size) -{ - return _talloc_realloc(context, ptr, size, NULL); -} - - -static int talloc_autofree_destructor(void *ptr) -{ - autofree_context = NULL; - return 0; -} - -static void talloc_autofree(void) -{ - _talloc_free(autofree_context); -} - -/* - return a context which will be auto-freed on exit - this is useful for reducing the noise in leak reports -*/ -void *talloc_autofree_context(void) -{ - if (autofree_context == NULL) { - autofree_context = _talloc_named_const(NULL, 0, "autofree_context"); - talloc_set_destructor(autofree_context, talloc_autofree_destructor); - atexit(talloc_autofree); - } - return autofree_context; -} - -size_t talloc_get_size(const void *context) -{ - struct talloc_chunk *tc; - - if (context == NULL) - return 0; - - tc = talloc_chunk_from_ptr(context); - - return tc->size; -} - -/* - find a parent of this context that has the given name, if any -*/ -void *talloc_find_parent_byname(const void *context, const char *name) -{ - struct talloc_chunk *tc; - - if (context == NULL) { - return NULL; - } - - tc = talloc_chunk_from_ptr(context); - while (tc) { - if (tc->name && strcmp(tc->name, name) == 0) { - return TC_PTR_FROM_CHUNK(tc); - } - while (tc && tc->prev) tc = tc->prev; - if (tc) { - tc = tc->parent; - } - } - return NULL; -} - -/* - show the parentage of a context -*/ -void talloc_show_parents(const void *context, FILE *file) -{ - struct talloc_chunk *tc; - - if (context == NULL) { - fprintf(file, "talloc no parents for NULL\n"); - return; - } - - tc = talloc_chunk_from_ptr(context); - fprintf(file, "talloc parents of '%s'\n", talloc_get_name(context)); - while (tc) { - fprintf(file, "\t'%s'\n", talloc_get_name(TC_PTR_FROM_CHUNK(tc))); - while (tc && tc->prev) tc = tc->prev; - if (tc) { - tc = tc->parent; - } - } - fflush(file); -} - -/* - return 1 if ptr is a parent of context -*/ -int talloc_is_parent(const void *context, const void *ptr) -{ - struct talloc_chunk *tc; - - if (context == NULL) { - return 0; - } - - tc = talloc_chunk_from_ptr(context); - while (tc) { - if (TC_PTR_FROM_CHUNK(tc) == ptr) return 1; - while (tc && tc->prev) tc = tc->prev; - if (tc) { - tc = tc->parent; - } - } - return 0; -} diff --git a/src/vty/buffer.c b/src/vty/buffer.c index e385f9f..ecfb961 100644 --- a/src/vty/buffer.c +++ b/src/vty/buffer.c @@ -28,7 +28,7 @@ #include <stddef.h> #include <sys/uio.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/vty/buffer.h> #include <osmocom/vty/vty.h>
diff --git a/src/vty/command.c b/src/vty/command.c index 5dc1dd4..b8ece35 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -38,7 +38,7 @@ Boston, MA 02111-1307, USA. */ #include <osmocom/vty/vty.h> #include <osmocom/vty/command.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#define CONFIGFILE_MASK 022
diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index b037a5b..753a6a5 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -24,7 +24,7 @@
#include "../../config.h"
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/logging.h> #include <osmocom/core/utils.h>
diff --git a/src/vty/telnet_interface.c b/src/vty/telnet_interface.c index c08a256..8670a27 100644 --- a/src/vty/telnet_interface.c +++ b/src/vty/telnet_interface.c @@ -26,7 +26,7 @@ #include <unistd.h>
#include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/logging.h>
#include <osmocom/vty/telnet_interface.h> diff --git a/src/vty/utils.c b/src/vty/utils.c index 7797e62..cfb60f8 100644 --- a/src/vty/utils.c +++ b/src/vty/utils.c @@ -24,7 +24,7 @@ #include <inttypes.h>
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/timer.h> #include <osmocom/core/rate_ctr.h>
diff --git a/src/vty/vector.c b/src/vty/vector.c index 4012f24..6a4f4bd 100644 --- a/src/vty/vector.c +++ b/src/vty/vector.c @@ -24,7 +24,7 @@
#include <osmocom/vty/vector.h> #include <osmocom/vty/vty.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <memory.h>
void *tall_vty_vec_ctx; diff --git a/src/vty/vty.c b/src/vty/vty.c index a1f0304..4dc0bf9 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -16,7 +16,7 @@ #include <osmocom/vty/vty.h> #include <osmocom/vty/command.h> #include <osmocom/vty/buffer.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#define SYSCONFDIR "/usr/local/etc"
From: Pablo Neira Ayuso pablo@gnumonks.org
With this patch, we check for the libtalloc version installed in the system.
This patch also replaces all references to:
#include <osmocom/core/talloc.h>
by:
#include <talloc.h>
I did this with this command: find ./ -type f -exec sed -i "s/osmocom/core/talloc.h/talloc.h/g" {} ;
Make sure you skip .git directory in this replacement, otherwise you'll get a corrupted git repository. --- configure.ac | 1 + src/Makefile.am | 4 ++++ src/m2ua_msg.c | 2 +- src/sccp.c | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac index b16b1f3..b2ae81a 100644 --- a/configure.ac +++ b/configure.ac @@ -15,6 +15,7 @@ AC_PROG_INSTALL AC_PROG_RANLIB
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.3.0) +PKG_CHECK_MODULES([LIBTALLOC], [talloc >= 2.0.1])
# The following test is taken from WebKit's webkit.m4 saved_CFLAGS="$CFLAGS" diff --git a/src/Makefile.am b/src/Makefile.am index c7451ad..59d511d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -4,6 +4,10 @@ AM_CFLAGS=-Wall $(LIBOSMOCORE_CFLAGS) sccpdir = $(libdir) sccp_LIBRARIES = libsccp.a libmtp.a libm2ua.a
+libsccp_la_LIBADD = ${LIBTALLOC_LIBS} +libmtp_la_LIBADD = ${LIBTALLOC_LIBS} +libm2ua_la_LIBADD = ${LIBTALLOC_LIBS} + libsccp_a_SOURCES = sccp.c libmtp_a_SOURCES = mtp_pcap.c libm2ua_a_SOURCES = m2ua_msg.c diff --git a/src/m2ua_msg.c b/src/m2ua_msg.c index c04586f..6156a71 100644 --- a/src/m2ua_msg.c +++ b/src/m2ua_msg.c @@ -20,7 +20,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/core/logging.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <arpa/inet.h>
diff --git a/src/sccp.c b/src/sccp.c index e061d37..9af36fb 100644 --- a/src/sccp.c +++ b/src/sccp.c @@ -25,7 +25,7 @@ #include <string.h>
#include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/logging.h> #include <osmocom/gsm/tlv.h>
From: Pablo Neira Ayuso pablo@gnumonks.org
With this patch, we check for the libtalloc version installed in the system. We don't use our own copy in libosmocore anymore.
This patch also replaces all references to:
#include <osmocom/core/talloc.h>
by:
#include <talloc.h>
I did this with this command: find ./ -type f -exec sed -i "s/osmocom/core/talloc.h/talloc.h/g" {} ;
Make sure you skip .git directory in this replacement, otherwise you'll get a corrupted git repository. --- openbsc/configure.ac | 1 + openbsc/src/gprs/gb_proxy.c | 2 +- openbsc/src/gprs/gb_proxy_main.c | 2 +- openbsc/src/gprs/gb_proxy_vty.c | 2 +- openbsc/src/gprs/gprs_gmm.c | 2 +- openbsc/src/gprs/gprs_llc.c | 2 +- openbsc/src/gprs/gprs_llc_vty.c | 2 +- openbsc/src/gprs/gprs_sgsn.c | 2 +- openbsc/src/gprs/gprs_sndcp.c | 2 +- openbsc/src/gprs/gprs_sndcp_vty.c | 2 +- openbsc/src/gprs/sgsn_libgtp.c | 2 +- openbsc/src/gprs/sgsn_main.c | 2 +- openbsc/src/gprs/sgsn_vty.c | 2 +- openbsc/src/ipaccess/ipaccess-config.c | 2 +- openbsc/src/ipaccess/ipaccess-firmware.c | 2 +- openbsc/src/ipaccess/ipaccess-proxy.c | 2 +- openbsc/src/ipaccess/network_listen.c | 2 +- openbsc/src/libabis/e1_input.c | 2 +- openbsc/src/libabis/e1_input_vty.c | 2 +- openbsc/src/libabis/input/dahdi.c | 2 +- openbsc/src/libabis/input/hsl.c | 2 +- openbsc/src/libabis/input/ipaccess.c | 2 +- openbsc/src/libabis/input/lapd.c | 2 +- openbsc/src/libabis/input/misdn.c | 2 +- openbsc/src/libbsc/abis_nm.c | 2 +- openbsc/src/libbsc/abis_nm_vty.c | 2 +- openbsc/src/libbsc/abis_om2000.c | 2 +- openbsc/src/libbsc/abis_om2000_vty.c | 2 +- openbsc/src/libbsc/abis_rsl.c | 2 +- openbsc/src/libbsc/bsc_api.c | 2 +- openbsc/src/libbsc/bsc_init.c | 2 +- openbsc/src/libbsc/bsc_msc.c | 2 +- openbsc/src/libbsc/bsc_rll.c | 2 +- openbsc/src/libbsc/bsc_vty.c | 2 +- openbsc/src/libbsc/chan_alloc.c | 2 +- openbsc/src/libbsc/e1_config.c | 2 +- openbsc/src/libbsc/gsm_subscriber_base.c | 2 +- openbsc/src/libbsc/handover_decision.c | 2 +- openbsc/src/libbsc/handover_logic.c | 2 +- openbsc/src/libbsc/meas_proc.c | 2 +- openbsc/src/libbsc/paging.c | 2 +- openbsc/src/libcommon/common_vty.c | 2 +- openbsc/src/libcommon/debug.c | 2 +- openbsc/src/libcommon/gsm_data.c | 2 +- openbsc/src/libcommon/socket.c | 2 +- openbsc/src/libcommon/talloc_ctx.c | 2 +- openbsc/src/libgb/gprs_bssgp.c | 2 +- openbsc/src/libgb/gprs_bssgp_util.c | 2 +- openbsc/src/libgb/gprs_bssgp_vty.c | 2 +- openbsc/src/libgb/gprs_ns.c | 2 +- openbsc/src/libgb/gprs_ns_frgre.c | 2 +- openbsc/src/libgb/gprs_ns_vty.c | 2 +- openbsc/src/libmgcp/mgcp_protocol.c | 2 +- openbsc/src/libmgcp/mgcp_vty.c | 2 +- openbsc/src/libmsc/db.c | 2 +- openbsc/src/libmsc/gsm_04_08.c | 2 +- openbsc/src/libmsc/gsm_04_11.c | 2 +- openbsc/src/libmsc/gsm_subscriber.c | 2 +- openbsc/src/libmsc/mncc.c | 2 +- openbsc/src/libmsc/mncc_builtin.c | 2 +- openbsc/src/libmsc/mncc_sock.c | 2 +- openbsc/src/libmsc/sms_queue.c | 2 +- openbsc/src/libmsc/token_auth.c | 2 +- openbsc/src/libmsc/transaction.c | 2 +- openbsc/src/libmsc/vty_interface_layer3.c | 2 +- openbsc/src/libtrau/rtp_proxy.c | 2 +- openbsc/src/libtrau/subchan_demux.c | 2 +- openbsc/src/libtrau/trau_mux.c | 2 +- openbsc/src/osmo-bsc/osmo_bsc_main.c | 2 +- openbsc/src/osmo-bsc/osmo_bsc_rf.c | 2 +- openbsc/src/osmo-bsc/osmo_bsc_sccp.c | 2 +- openbsc/src/osmo-bsc/osmo_bsc_vty.c | 2 +- openbsc/src/osmo-bsc_mgcp/mgcp_main.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_filter.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_nat.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_nat_utils.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_nat_vty.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_sccp.c | 2 +- openbsc/src/osmo-bsc_nat/bsc_ussd.c | 2 +- openbsc/src/osmo-nitb/bsc_hack.c | 2 +- openbsc/tests/bsc-nat/bsc_nat_test.c | 2 +- openbsc/tests/mgcp/mgcp_test.c | 2 +- 83 files changed, 83 insertions(+), 82 deletions(-)
diff --git a/openbsc/configure.ac b/openbsc/configure.ac index 74b3044..ac77d82 100644 --- a/openbsc/configure.ac +++ b/openbsc/configure.ac @@ -46,6 +46,7 @@ AM_CONDITIONAL(BUILD_BSC, test "x$osmo_ac_build_bsc" = "xyes") PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.3.0) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.3.0) PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.3.0) +PKG_CHECK_MODULES(LIBTALLOC, talloc >= 2.0.1)
dnl checks for header files AC_HEADER_STDC diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c index 1261ccc..b45dd6d 100644 --- a/openbsc/src/gprs/gb_proxy.c +++ b/openbsc/src/gprs/gb_proxy.c @@ -29,7 +29,7 @@ #include <sys/stat.h> #include <arpa/inet.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h>
#include <openbsc/signal.h> diff --git a/openbsc/src/gprs/gb_proxy_main.c b/openbsc/src/gprs/gb_proxy_main.c index 028f989..eae6300 100644 --- a/openbsc/src/gprs/gb_proxy_main.c +++ b/openbsc/src/gprs/gb_proxy_main.c @@ -33,7 +33,7 @@ #include <arpa/inet.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <osmocom/core/process.h> diff --git a/openbsc/src/gprs/gb_proxy_vty.c b/openbsc/src/gprs/gb_proxy_vty.c index 1aa4ff5..651c106 100644 --- a/openbsc/src/gprs/gb_proxy_vty.c +++ b/openbsc/src/gprs/gb_proxy_vty.c @@ -22,7 +22,7 @@ #include <netinet/in.h> #include <arpa/inet.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/debug.h> #include <openbsc/gb_proxy.h> diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index 46c4931..69f8086 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -35,7 +35,7 @@ #include <osmocom/gsm/tlv.h> #include <osmocom/gsm/gsm_utils.h> #include <osmocom/core/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/rate_ctr.h>
#include <openbsc/debug.h> diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c index f7408ef..8d0ddce 100644 --- a/openbsc/src/gprs/gprs_llc.c +++ b/openbsc/src/gprs/gprs_llc.c @@ -25,7 +25,7 @@ #include <osmocom/core/msgb.h> #include <osmocom/core/linuxlist.h> #include <osmocom/core/timer.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/gsm_data.h> #include <openbsc/debug.h> diff --git a/openbsc/src/gprs/gprs_llc_vty.c b/openbsc/src/gprs/gprs_llc_vty.c index ab52699..3a5803e 100644 --- a/openbsc/src/gprs/gprs_llc_vty.c +++ b/openbsc/src/gprs/gprs_llc_vty.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/debug.h> diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c index 85f7105..9b29a94 100644 --- a/openbsc/src/gprs/gprs_sgsn.c +++ b/openbsc/src/gprs/gprs_sgsn.c @@ -22,7 +22,7 @@ #include <stdint.h>
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/timer.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/gsm_subscriber.h> diff --git a/openbsc/src/gprs/gprs_sndcp.c b/openbsc/src/gprs/gprs_sndcp.c index 1307fe5..2404fff 100644 --- a/openbsc/src/gprs/gprs_sndcp.c +++ b/openbsc/src/gprs/gprs_sndcp.c @@ -26,7 +26,7 @@ #include <osmocom/core/msgb.h> #include <osmocom/core/linuxlist.h> #include <osmocom/core/timer.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/gsm_data.h> #include <openbsc/debug.h> diff --git a/openbsc/src/gprs/gprs_sndcp_vty.c b/openbsc/src/gprs/gprs_sndcp_vty.c index 28fdc63..58a77e8 100644 --- a/openbsc/src/gprs/gprs_sndcp_vty.c +++ b/openbsc/src/gprs/gprs_sndcp_vty.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/debug.h> diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c index f193aa3..8d99169 100644 --- a/openbsc/src/gprs/sgsn_libgtp.c +++ b/openbsc/src/gprs/sgsn_libgtp.c @@ -33,7 +33,7 @@ #include <netinet/in.h> #include <arpa/inet.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/gsm_04_08_gprs.h> diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c index bfa2e52..1d2d5b7 100644 --- a/openbsc/src/gprs/sgsn_main.c +++ b/openbsc/src/gprs/sgsn_main.c @@ -33,7 +33,7 @@ #include <arpa/inet.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <osmocom/core/logging.h> diff --git a/openbsc/src/gprs/sgsn_vty.c b/openbsc/src/gprs/sgsn_vty.c index 4c9cf28..9f4d7fe 100644 --- a/openbsc/src/gprs/sgsn_vty.c +++ b/openbsc/src/gprs/sgsn_vty.c @@ -22,7 +22,7 @@ #include <netinet/in.h> #include <arpa/inet.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/utils.h> #include <osmocom/core/rate_ctr.h>
diff --git a/openbsc/src/ipaccess/ipaccess-config.c b/openbsc/src/ipaccess/ipaccess-config.c index 9d0e2db..d34c93d 100644 --- a/openbsc/src/ipaccess/ipaccess-config.c +++ b/openbsc/src/ipaccess/ipaccess-config.c @@ -44,7 +44,7 @@ #include <openbsc/signal.h> #include <openbsc/debug.h> #include <openbsc/network_listen.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
static struct gsm_network *gsmnet;
diff --git a/openbsc/src/ipaccess/ipaccess-firmware.c b/openbsc/src/ipaccess/ipaccess-firmware.c index 6d39107..cdff22c 100644 --- a/openbsc/src/ipaccess/ipaccess-firmware.c +++ b/openbsc/src/ipaccess/ipaccess-firmware.c @@ -20,7 +20,7 @@
#include <openbsc/debug.h> #include <openbsc/ipaccess.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <stdio.h> #include <stdlib.h> diff --git a/openbsc/src/ipaccess/ipaccess-proxy.c b/openbsc/src/ipaccess/ipaccess-proxy.c index b4d17e2..3c87118 100644 --- a/openbsc/src/ipaccess/ipaccess-proxy.c +++ b/openbsc/src/ipaccess/ipaccess-proxy.c @@ -45,7 +45,7 @@ #include <openbsc/debug.h> #include <openbsc/ipaccess.h> #include <openbsc/socket.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
/* one instance of an ip.access protocol proxy */ struct ipa_proxy { diff --git a/openbsc/src/ipaccess/network_listen.c b/openbsc/src/ipaccess/network_listen.c index a719903..a887bc3 100644 --- a/openbsc/src/ipaccess/network_listen.c +++ b/openbsc/src/ipaccess/network_listen.c @@ -28,7 +28,7 @@
#include <arpa/inet.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/timer.h> #include <osmocom/gsm/rxlev_stat.h> #include <osmocom/gsm/gsm48_ie.h> diff --git a/openbsc/src/libabis/e1_input.c b/openbsc/src/libabis/e1_input.c index 97dcd33..e42a345 100644 --- a/openbsc/src/libabis/e1_input.c +++ b/openbsc/src/libabis/e1_input.c @@ -49,7 +49,7 @@ #include <openbsc/subchan_demux.h> #include <openbsc/trau_frame.h> #include <openbsc/trau_mux.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/signal.h> #include <openbsc/misdn.h>
diff --git a/openbsc/src/libabis/e1_input_vty.c b/openbsc/src/libabis/e1_input_vty.c index b211e81..1595699 100644 --- a/openbsc/src/libabis/e1_input_vty.c +++ b/openbsc/src/libabis/e1_input_vty.c @@ -31,7 +31,7 @@ #include <openbsc/e1_input.h> #include <osmocom/core/utils.h> #include <osmocom/gsm/gsm_utils.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/vty.h> #include <openbsc/debug.h>
diff --git a/openbsc/src/libabis/input/dahdi.c b/openbsc/src/libabis/input/dahdi.c index 6f89837..948615b 100644 --- a/openbsc/src/libabis/input/dahdi.c +++ b/openbsc/src/libabis/input/dahdi.c @@ -47,7 +47,7 @@ #include <openbsc/subchan_demux.h> #include <openbsc/e1_input.h> #include <openbsc/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include "lapd.h"
diff --git a/openbsc/src/libabis/input/hsl.c b/openbsc/src/libabis/input/hsl.c index c98a22c..5b49d10 100644 --- a/openbsc/src/libabis/input/hsl.c +++ b/openbsc/src/libabis/input/hsl.c @@ -54,7 +54,7 @@ #include <openbsc/ipaccess.h> #include <openbsc/socket.h> #include <openbsc/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#define HSL_TCP_PORT 2500 #define HSL_PROTO_DEBUG 0xdd diff --git a/openbsc/src/libabis/input/ipaccess.c b/openbsc/src/libabis/input/ipaccess.c index cc2a7a0..fe2b8f1 100644 --- a/openbsc/src/libabis/input/ipaccess.c +++ b/openbsc/src/libabis/input/ipaccess.c @@ -35,7 +35,7 @@ #include <osmocom/core/select.h> #include <osmocom/gsm/tlv.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h> #include <openbsc/gsm_data.h> #include <openbsc/abis_nm.h> diff --git a/openbsc/src/libabis/input/lapd.c b/openbsc/src/libabis/input/lapd.c index d0fab18..edf8c01 100644 --- a/openbsc/src/libabis/input/lapd.c +++ b/openbsc/src/libabis/input/lapd.c @@ -37,7 +37,7 @@ #include "lapd.h"
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/msgb.h> #include <osmocom/core/timer.h> #include <openbsc/debug.h> diff --git a/openbsc/src/libabis/input/misdn.c b/openbsc/src/libabis/input/misdn.c index ab92d61..02bbbd1 100644 --- a/openbsc/src/libabis/input/misdn.c +++ b/openbsc/src/libabis/input/misdn.c @@ -41,7 +41,7 @@
#include <osmocom/core/select.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h> #include <openbsc/gsm_data.h> #include <openbsc/abis_nm.h> diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c index f2220a7..1ccf083 100644 --- a/openbsc/src/libbsc/abis_nm.c +++ b/openbsc/src/libbsc/abis_nm.c @@ -39,7 +39,7 @@ #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> #include <osmocom/gsm/abis_nm.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/abis_nm.h> #include <openbsc/misdn.h> #include <openbsc/signal.h> diff --git a/openbsc/src/libbsc/abis_nm_vty.c b/openbsc/src/libbsc/abis_nm_vty.c index bcbc92d..658608d 100644 --- a/openbsc/src/libbsc/abis_nm_vty.c +++ b/openbsc/src/libbsc/abis_nm_vty.c @@ -31,7 +31,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h> #include <openbsc/signal.h> #include <openbsc/abis_nm.h> diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c index fd3cf1f..6c9832a 100644 --- a/openbsc/src/libbsc/abis_om2000.c +++ b/openbsc/src/libbsc/abis_om2000.c @@ -32,7 +32,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/utils.h>
#include <openbsc/gsm_data.h> diff --git a/openbsc/src/libbsc/abis_om2000_vty.c b/openbsc/src/libbsc/abis_om2000_vty.c index 704f955..b8bd7c9 100644 --- a/openbsc/src/libbsc/abis_om2000_vty.c +++ b/openbsc/src/libbsc/abis_om2000_vty.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h> #include <openbsc/signal.h> #include <openbsc/abis_om2000.h> diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index 1001003..78f0535 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -40,7 +40,7 @@ #include <openbsc/rtp_proxy.h> #include <osmocom/gsm/rsl.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#define RSL_ALLOC_SIZE 1024 #define RSL_ALLOC_HEADROOM 128 diff --git a/openbsc/src/libbsc/bsc_api.c b/openbsc/src/libbsc/bsc_api.c index 70d6413..0cc4e37 100644 --- a/openbsc/src/libbsc/bsc_api.c +++ b/openbsc/src/libbsc/bsc_api.c @@ -34,7 +34,7 @@
#include <osmocom/gsm/protocol/gsm_08_08.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#define GSM0808_T10_VALUE 6, 0
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 378f5ea..621fe87 100644 --- a/openbsc/src/libbsc/bsc_init.c +++ b/openbsc/src/libbsc/bsc_init.c @@ -31,7 +31,7 @@ #include <openbsc/paging.h> #include <openbsc/signal.h> #include <openbsc/chan_alloc.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/ipaccess.h>
/* global pointer to the gsm network data structure */ diff --git a/openbsc/src/libbsc/bsc_msc.c b/openbsc/src/libbsc/bsc_msc.c index e9ffce3..6b119ad 100644 --- a/openbsc/src/libbsc/bsc_msc.c +++ b/openbsc/src/libbsc/bsc_msc.c @@ -24,7 +24,7 @@ #include <openbsc/ipaccess.h>
#include <osmocom/core/write_queue.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <arpa/inet.h> #include <sys/socket.h> diff --git a/openbsc/src/libbsc/bsc_rll.c b/openbsc/src/libbsc/bsc_rll.c index d12aeee..054cbf3 100644 --- a/openbsc/src/libbsc/bsc_rll.c +++ b/openbsc/src/libbsc/bsc_rll.c @@ -23,7 +23,7 @@ #include <errno.h>
#include <openbsc/debug.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/timer.h> #include <osmocom/core/linuxlist.h> #include <openbsc/bsc_rll.h> diff --git a/openbsc/src/libbsc/bsc_vty.c b/openbsc/src/libbsc/bsc_vty.c index a72ff21..b304077 100644 --- a/openbsc/src/libbsc/bsc_vty.c +++ b/openbsc/src/libbsc/bsc_vty.c @@ -39,7 +39,7 @@ #include <openbsc/chan_alloc.h> #include <openbsc/meas_rep.h> #include <openbsc/db.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/vty.h> #include <openbsc/gprs_ns.h> #include <openbsc/system_information.h> diff --git a/openbsc/src/libbsc/chan_alloc.c b/openbsc/src/libbsc/chan_alloc.c index cfd3874..6cdc5ab 100644 --- a/openbsc/src/libbsc/chan_alloc.c +++ b/openbsc/src/libbsc/chan_alloc.c @@ -32,7 +32,7 @@ #include <openbsc/debug.h> #include <openbsc/signal.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
static int ts_is_usable(struct gsm_bts_trx_ts *ts) { diff --git a/openbsc/src/libbsc/e1_config.c b/openbsc/src/libbsc/e1_config.c index bd6ebba..3809faa 100644 --- a/openbsc/src/libbsc/e1_config.c +++ b/openbsc/src/libbsc/e1_config.c @@ -29,7 +29,7 @@ #include <openbsc/trau_mux.h> #include <openbsc/misdn.h> #include <openbsc/ipaccess.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h>
#define SAPI_L2ML 0 diff --git a/openbsc/src/libbsc/gsm_subscriber_base.c b/openbsc/src/libbsc/gsm_subscriber_base.c index 11afb35..21fd0ef 100644 --- a/openbsc/src/libbsc/gsm_subscriber_base.c +++ b/openbsc/src/libbsc/gsm_subscriber_base.c @@ -27,7 +27,7 @@ #include <string.h> #include <assert.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_subscriber.h> #include <openbsc/debug.h>
diff --git a/openbsc/src/libbsc/handover_decision.c b/openbsc/src/libbsc/handover_decision.c index 24c0f79..97326dc 100644 --- a/openbsc/src/libbsc/handover_decision.c +++ b/openbsc/src/libbsc/handover_decision.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <openbsc/meas_rep.h> #include <openbsc/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/handover.h> #include <osmocom/gsm/gsm_utils.h>
diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c index 0f1582e..ec9c06c 100644 --- a/openbsc/src/libbsc/handover_logic.c +++ b/openbsc/src/libbsc/handover_logic.c @@ -37,7 +37,7 @@ #include <openbsc/abis_rsl.h> #include <openbsc/chan_alloc.h> #include <openbsc/signal.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/transaction.h> #include <openbsc/rtp_proxy.h>
diff --git a/openbsc/src/libbsc/meas_proc.c b/openbsc/src/libbsc/meas_proc.c index 5b97e74..1a60934 100644 --- a/openbsc/src/libbsc/meas_proc.c +++ b/openbsc/src/libbsc/meas_proc.c @@ -22,7 +22,7 @@ #include <stdlib.h> #include <errno.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/msgb.h> #include <openbsc/debug.h> #include <openbsc/gsm_data.h> diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c index 2dcd3b4..349329c 100644 --- a/openbsc/src/libbsc/paging.c +++ b/openbsc/src/libbsc/paging.c @@ -39,7 +39,7 @@ #include <assert.h>
#include <openbsc/paging.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/debug.h> #include <openbsc/signal.h> #include <openbsc/abis_rsl.h> diff --git a/openbsc/src/libcommon/common_vty.c b/openbsc/src/libcommon/common_vty.c index 5b4b296..b328897 100644 --- a/openbsc/src/libcommon/common_vty.c +++ b/openbsc/src/libcommon/common_vty.c @@ -21,7 +21,7 @@ #include <stdlib.h> #include <string.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/vty.h> #include <openbsc/gsm_data.h> diff --git a/openbsc/src/libcommon/debug.c b/openbsc/src/libcommon/debug.c index 1372150..c87b77e 100644 --- a/openbsc/src/libcommon/debug.c +++ b/openbsc/src/libcommon/debug.c @@ -27,7 +27,7 @@ #include <time.h> #include <errno.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/utils.h> #include <osmocom/core/logging.h> #include <openbsc/gsm_data.h> diff --git a/openbsc/src/libcommon/gsm_data.c b/openbsc/src/libcommon/gsm_data.c index 54e7a63..bc4758d 100644 --- a/openbsc/src/libcommon/gsm_data.c +++ b/openbsc/src/libcommon/gsm_data.c @@ -27,7 +27,7 @@ #include <netinet/in.h>
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/gsm_utils.h> #include <osmocom/gsm/abis_nm.h> #include <osmocom/core/statistics.h> diff --git a/openbsc/src/libcommon/socket.c b/openbsc/src/libcommon/socket.c index ff846aa..a6ad131 100644 --- a/openbsc/src/libcommon/socket.c +++ b/openbsc/src/libcommon/socket.c @@ -37,7 +37,7 @@ #include <osmocom/core/msgb.h> #include <openbsc/debug.h> #include <openbsc/gsm_data.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
int make_sock(struct osmo_fd *bfd, int proto, uint32_t ip, uint16_t port, int priv_nr, diff --git a/openbsc/src/libcommon/talloc_ctx.c b/openbsc/src/libcommon/talloc_ctx.c index ae6a156..1a0e287 100644 --- a/openbsc/src/libcommon/talloc_ctx.c +++ b/openbsc/src/libcommon/talloc_ctx.c @@ -1,4 +1,4 @@ -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_data.h>
extern void *tall_msgb_ctx; diff --git a/openbsc/src/libgb/gprs_bssgp.c b/openbsc/src/libgb/gprs_bssgp.c index b74791c..3d3f795 100644 --- a/openbsc/src/libgb/gprs_bssgp.c +++ b/openbsc/src/libgb/gprs_bssgp.c @@ -29,7 +29,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/rate_ctr.h>
#include <openbsc/debug.h> diff --git a/openbsc/src/libgb/gprs_bssgp_util.c b/openbsc/src/libgb/gprs_bssgp_util.c index b539323..177c650 100644 --- a/openbsc/src/libgb/gprs_bssgp_util.c +++ b/openbsc/src/libgb/gprs_bssgp_util.c @@ -26,7 +26,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/debug.h> #include <openbsc/gsm_data.h> diff --git a/openbsc/src/libgb/gprs_bssgp_vty.c b/openbsc/src/libgb/gprs_bssgp_vty.c index a0d74ac..1b3600f 100644 --- a/openbsc/src/libgb/gprs_bssgp_vty.c +++ b/openbsc/src/libgb/gprs_bssgp_vty.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/debug.h> diff --git a/openbsc/src/libgb/gprs_ns.c b/openbsc/src/libgb/gprs_ns.c index dab57e6..acfc695 100644 --- a/openbsc/src/libgb/gprs_ns.c +++ b/openbsc/src/libgb/gprs_ns.c @@ -61,7 +61,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/debug.h> diff --git a/openbsc/src/libgb/gprs_ns_frgre.c b/openbsc/src/libgb/gprs_ns_frgre.c index 3662572..f1068e0 100644 --- a/openbsc/src/libgb/gprs_ns_frgre.c +++ b/openbsc/src/libgb/gprs_ns_frgre.c @@ -33,7 +33,7 @@
#include <osmocom/core/select.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/socket.h> #include <openbsc/debug.h> diff --git a/openbsc/src/libgb/gprs_ns_vty.c b/openbsc/src/libgb/gprs_ns_vty.c index 14d7691..a8d671b 100644 --- a/openbsc/src/libgb/gprs_ns_vty.c +++ b/openbsc/src/libgb/gprs_ns_vty.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/gsm/tlv.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/core/rate_ctr.h> #include <openbsc/debug.h> diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c index 1d26850..1186232 100644 --- a/openbsc/src/libmgcp/mgcp_protocol.c +++ b/openbsc/src/libmgcp/mgcp_protocol.c @@ -30,7 +30,7 @@ #include <unistd.h>
#include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h>
#include <openbsc/mgcp.h> diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c index 0b7a97e..5592f95 100644 --- a/openbsc/src/libmgcp/mgcp_vty.c +++ b/openbsc/src/libmgcp/mgcp_vty.c @@ -22,7 +22,7 @@ */
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <openbsc/mgcp.h> #include <openbsc/mgcp_internal.h> diff --git a/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c index 1ddd3fd..d6c5c19 100644 --- a/openbsc/src/libmsc/db.c +++ b/openbsc/src/libmsc/db.c @@ -34,7 +34,7 @@ #include <openbsc/db.h> #include <openbsc/debug.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/statistics.h> #include <osmocom/core/rate_ctr.h>
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index a6ed3e8..66990b0 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -55,7 +55,7 @@ #include <osmocom/gsm/gsm0480.h> #include <osmocom/gsm/gsm_utils.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/tlv.h>
void *tall_locop_ctx; diff --git a/openbsc/src/libmsc/gsm_04_11.c b/openbsc/src/libmsc/gsm_04_11.c index ba72c37..7d3f4b7 100644 --- a/openbsc/src/libmsc/gsm_04_11.c +++ b/openbsc/src/libmsc/gsm_04_11.c @@ -44,7 +44,7 @@ #include <openbsc/abis_rsl.h> #include <openbsc/signal.h> #include <openbsc/db.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/transaction.h> #include <openbsc/paging.h> #include <openbsc/bsc_rll.h> diff --git a/openbsc/src/libmsc/gsm_subscriber.c b/openbsc/src/libmsc/gsm_subscriber.c index f9eebc8..aade355 100644 --- a/openbsc/src/libmsc/gsm_subscriber.c +++ b/openbsc/src/libmsc/gsm_subscriber.c @@ -26,7 +26,7 @@ #include <string.h> #include <assert.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <osmocom/vty/vty.h>
diff --git a/openbsc/src/libmsc/mncc.c b/openbsc/src/libmsc/mncc.c index b484772..02772b0 100644 --- a/openbsc/src/libmsc/mncc.c +++ b/openbsc/src/libmsc/mncc.c @@ -29,7 +29,7 @@ #include <openbsc/gsm_04_08.h> #include <openbsc/debug.h> #include <openbsc/mncc.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_data.h> #include <openbsc/transaction.h> #include <openbsc/rtp_proxy.h> diff --git a/openbsc/src/libmsc/mncc_builtin.c b/openbsc/src/libmsc/mncc_builtin.c index 105f1dd..0653ece 100644 --- a/openbsc/src/libmsc/mncc_builtin.c +++ b/openbsc/src/libmsc/mncc_builtin.c @@ -30,7 +30,7 @@ #include <openbsc/gsm_04_08.h> #include <openbsc/debug.h> #include <openbsc/mncc.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_data.h> #include <openbsc/transaction.h> #include <openbsc/rtp_proxy.h> diff --git a/openbsc/src/libmsc/mncc_sock.c b/openbsc/src/libmsc/mncc_sock.c index 5ef9922..f77086d 100644 --- a/openbsc/src/libmsc/mncc_sock.c +++ b/openbsc/src/libmsc/mncc_sock.c @@ -29,7 +29,7 @@ #include <sys/socket.h> #include <sys/un.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/select.h> #include <osmocom/gsm/protocol/gsm_04_08.h>
diff --git a/openbsc/src/libmsc/sms_queue.c b/openbsc/src/libmsc/sms_queue.c index 30fa5f0..cd55a51 100644 --- a/openbsc/src/libmsc/sms_queue.c +++ b/openbsc/src/libmsc/sms_queue.c @@ -37,7 +37,7 @@ #include <openbsc/gsm_subscriber.h> #include <openbsc/signal.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <osmocom/vty/vty.h>
diff --git a/openbsc/src/libmsc/token_auth.c b/openbsc/src/libmsc/token_auth.c index cf26ba8..c48af92 100644 --- a/openbsc/src/libmsc/token_auth.c +++ b/openbsc/src/libmsc/token_auth.c @@ -20,7 +20,7 @@ */
#include <stdio.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/signal.h> #include <openbsc/gsm_data.h> #include <openbsc/gsm_04_11.h> diff --git a/openbsc/src/libmsc/transaction.c b/openbsc/src/libmsc/transaction.c index 8a181b7..225495a 100644 --- a/openbsc/src/libmsc/transaction.c +++ b/openbsc/src/libmsc/transaction.c @@ -22,7 +22,7 @@ #include <openbsc/gsm_data.h> #include <openbsc/mncc.h> #include <openbsc/debug.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_subscriber.h> #include <openbsc/gsm_04_08.h> #include <openbsc/mncc.h> diff --git a/openbsc/src/libmsc/vty_interface_layer3.c b/openbsc/src/libmsc/vty_interface_layer3.c index f31f05b..af224a1 100644 --- a/openbsc/src/libmsc/vty_interface_layer3.c +++ b/openbsc/src/libmsc/vty_interface_layer3.c @@ -38,7 +38,7 @@ #include <osmocom/gsm/gsm_utils.h> #include <osmocom/core/utils.h> #include <openbsc/db.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/signal.h> #include <openbsc/debug.h> #include <openbsc/vty.h> diff --git a/openbsc/src/libtrau/rtp_proxy.c b/openbsc/src/libtrau/rtp_proxy.c index 4c5f12e..877e3f6 100644 --- a/openbsc/src/libtrau/rtp_proxy.c +++ b/openbsc/src/libtrau/rtp_proxy.c @@ -28,7 +28,7 @@ #include <time.h> /* clock() */ #include <sys/utsname.h> /* uname() */
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_data.h> #include <osmocom/core/msgb.h> #include <osmocom/core/select.h> diff --git a/openbsc/src/libtrau/subchan_demux.c b/openbsc/src/libtrau/subchan_demux.c index 740d2ca..173fdb9 100644 --- a/openbsc/src/libtrau/subchan_demux.c +++ b/openbsc/src/libtrau/subchan_demux.c @@ -27,7 +27,7 @@ #include <openbsc/subchan_demux.h> #include <openbsc/trau_frame.h> #include <openbsc/debug.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/gsm_data.h>
void *tall_tqe_ctx; diff --git a/openbsc/src/libtrau/trau_mux.c b/openbsc/src/libtrau/trau_mux.c index b8b90bd..e9fa194 100644 --- a/openbsc/src/libtrau/trau_mux.c +++ b/openbsc/src/libtrau/trau_mux.c @@ -28,7 +28,7 @@ #include <openbsc/subchan_demux.h> #include <openbsc/e1_input.h> #include <openbsc/debug.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
uint8_t gsm_fr_map[] = { 6, 6, 5, 5, 4, 4, 3, 3, diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index 42c74cc..7304f35 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -27,7 +27,7 @@ #include <openbsc/vty.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/process.h>
#include <osmocom/sccp/sccp.h> diff --git a/openbsc/src/osmo-bsc/osmo_bsc_rf.c b/openbsc/src/osmo-bsc/osmo_bsc_rf.c index 11cdffe..d858304 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_rf.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_rf.c @@ -27,7 +27,7 @@ #include <openbsc/osmo_msc_data.h> #include <openbsc/ipaccess.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/protocol/gsm_12_21.h>
#include <sys/socket.h> diff --git a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c index f4cdf36..92de835 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c @@ -27,7 +27,7 @@ #include <openbsc/ipaccess.h> #include <openbsc/signal.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/gsm0808.h> #include <osmocom/gsm/protocol/gsm_08_08.h>
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c index 0b1698e..417826a 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c @@ -22,7 +22,7 @@ #include <openbsc/osmo_msc_data.h> #include <openbsc/vty.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#define IPA_STR "IP.ACCESS specific\n" diff --git a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c index 921fa09..a6bc338 100644 --- a/openbsc/src/osmo-bsc_mgcp/mgcp_main.c +++ b/openbsc/src/osmo-bsc_mgcp/mgcp_main.c @@ -39,7 +39,7 @@
#include <osmocom/core/application.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/process.h> #include <osmocom/core/select.h>
diff --git a/openbsc/src/osmo-bsc_nat/bsc_filter.c b/openbsc/src/osmo-bsc_nat/bsc_filter.c index 74a5d19..86bba35 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_filter.c +++ b/openbsc/src/osmo-bsc_nat/bsc_filter.c @@ -25,7 +25,7 @@ #include <openbsc/ipaccess.h> #include <openbsc/debug.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/protocol/gsm_08_08.h>
#include <osmocom/sccp/sccp.h> diff --git a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c index 9ac54da..e393e8a 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c @@ -28,7 +28,7 @@
#include <osmocom/sccp/sccp.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/gsm0808.h> #include <osmocom/gsm/protocol/gsm_08_08.h>
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index e0eb635..bf5d914 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -45,7 +45,7 @@ #include <openbsc/vty.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/process.h>
#include <osmocom/gsm/gsm0808.h> diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index 4834340..da7c960 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -30,7 +30,7 @@ #include <openbsc/vty.h>
#include <osmocom/core/linuxlist.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/gsm0808.h>
#include <osmocom/gsm/protocol/gsm_08_08.h> diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index b5c1cf2..5def87a 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -26,7 +26,7 @@ #include <openbsc/mgcp.h> #include <openbsc/vty.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/rate_ctr.h> #include <osmocom/core/utils.h> #include <osmocom/vty/logging.h> diff --git a/openbsc/src/osmo-bsc_nat/bsc_sccp.c b/openbsc/src/osmo-bsc_nat/bsc_sccp.c index de6b421..eac7243 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_sccp.c +++ b/openbsc/src/osmo-bsc_nat/bsc_sccp.c @@ -25,7 +25,7 @@
#include <osmocom/sccp/sccp.h>
-#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <string.h> #include <time.h> diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c index bbbeead..a46a74e 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c +++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c @@ -27,7 +27,7 @@
#include <osmocom/gsm/protocol/gsm_08_08.h> #include <osmocom/gsm/gsm0480.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/sccp/sccp.h> diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c index e548a95..157670d 100644 --- a/openbsc/src/osmo-nitb/bsc_hack.c +++ b/openbsc/src/osmo-nitb/bsc_hack.c @@ -35,7 +35,7 @@ #include <osmocom/core/process.h> #include <openbsc/debug.h> #include <openbsc/e1_input.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <openbsc/signal.h> #include <openbsc/osmo_msc.h> #include <openbsc/sms_queue.h> diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c index d198424..bbb7ad5 100644 --- a/openbsc/tests/bsc-nat/bsc_nat_test.c +++ b/openbsc/tests/bsc-nat/bsc_nat_test.c @@ -28,7 +28,7 @@ #include <openbsc/bsc_nat_sccp.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <osmocom/sccp/sccp.h> #include <osmocom/gsm/protocol/gsm_08_08.h> diff --git a/openbsc/tests/mgcp/mgcp_test.c b/openbsc/tests/mgcp/mgcp_test.c index b7273de..6ec46b4 100644 --- a/openbsc/tests/mgcp/mgcp_test.c +++ b/openbsc/tests/mgcp/mgcp_test.c @@ -21,7 +21,7 @@ #include <openbsc/mgcp_internal.h>
#include <osmocom/core/application.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <string.h>
static struct msgb *create_auep1()
From: Pablo Neira Ayuso pablo@gnumonks.org
With this patch, we check for the libtalloc version installed in the system. We don't use our own copy in libosmocore anymore.
This patch also replaces all references to:
#include <osmocom/core/talloc.h>
by:
#include <talloc.h>
I did this with this command: find ./ -type f -exec sed -i "s/osmocom/core/talloc.h/talloc.h/g" {} ;
Make sure you skip .git directory in this replacement, otherwise you'll get a corrupted git repository. --- src/Makefile | 2 +- src/lower_mac/tetra_lower_mac.c | 2 +- src/tetra-rx.c | 2 +- src/tetra_llc.c | 2 +- src/tetra_upper_mac.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/Makefile b/src/Makefile index 38263b9..424a90e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,5 +1,5 @@ CFLAGS=-g -O0 -Wall `pkg-config --cflags libosmocore 2> /dev/null` -I. -LDFLAGS=`pkg-config --libs libosmocore 2> /dev/null` -losmocore +LDFLAGS=`pkg-config --libs libosmocore 2> /dev/null` -losmocore -ltalloc
all: conv_enc_test crc_test tetra-rx float_to_bits tunctl
diff --git a/src/lower_mac/tetra_lower_mac.c b/src/lower_mac/tetra_lower_mac.c index 7b62bb4..13b3810 100644 --- a/src/lower_mac/tetra_lower_mac.c +++ b/src/lower_mac/tetra_lower_mac.c @@ -25,7 +25,7 @@
#include <osmocom/core/utils.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include <tetra_common.h> #include <tetra_tdma.h> diff --git a/src/tetra-rx.c b/src/tetra-rx.c index c751772..c9ed7f8 100644 --- a/src/tetra-rx.c +++ b/src/tetra-rx.c @@ -27,7 +27,7 @@ #include <sys/stat.h>
#include <osmocom/core/utils.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include "tetra_common.h" #include <phy/tetra_burst.h> diff --git a/src/tetra_llc.c b/src/tetra_llc.c index 432f5a7..c132c8b 100644 --- a/src/tetra_llc.c +++ b/src/tetra_llc.c @@ -24,7 +24,7 @@ #include <string.h>
#include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h> #include <osmocom/core/bits.h>
#include "tetra_llc_pdu.h" diff --git a/src/tetra_upper_mac.c b/src/tetra_upper_mac.c index 0bfc0e1..ad4e7a9 100644 --- a/src/tetra_upper_mac.c +++ b/src/tetra_upper_mac.c @@ -25,7 +25,7 @@
#include <osmocom/core/utils.h> #include <osmocom/core/msgb.h> -#include <osmocom/core/talloc.h> +#include <talloc.h>
#include "tetra_common.h" #include "tetra_prim.h"
On 14/06/11 19:14, pablo@gnumonks.org wrote:
From: Pablo Neira Ayuso pablo@gnumonks.org
Hi!
With these patches, libosmocore, libosmo-sccp, openbsc and osmo-tetra does not use anymore our own copy of talloc and they rely on the standalone library that is provided by major distributors.
The osmocom-bb part is still missing, my idea is to include a copy of libtalloc in the tree in the shared/ directory via rsync. This patch will follow later since we can still rely on the outdated copy of libosmocore.
Please, apply.
I have rebased these patches, they live under pablo/talloc in libosmocore, libosmo-sccp, openbsc and osmo-tetra.
Please, merge them.