pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/libosmo-asn1-tcap/+/42219?usp=email )


Change subject: WIP: talloc
......................................................................

WIP: talloc

Change-Id: I6d885527caa5b60011b4fac341b93026ab1833d9
---
M configure.ac
M debian/control
M include/osmocom/tcap/asn_internal.h
M libosmo-asn1-tcap.pc.in
M src/Makefile.am
M src/tcap.c
M tests/parse/Makefile.am
7 files changed, 27 insertions(+), 8 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmo-asn1-tcap 
refs/changes/19/42219/1

diff --git a/configure.ac b/configure.ac
index 5082daf..28aa608 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,6 +31,8 @@
 AC_SUBST([ASN_MODULE_CFLAGS])


+PKG_CHECK_MODULES(TALLOC, [talloc >= 2.1.0])
+
 # The following test is taken from WebKit's webkit.m4
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -fvisibility=hidden "
diff --git a/debian/control b/debian/control
index 2dee434..52ffffe 100644
--- a/debian/control
+++ b/debian/control
@@ -10,6 +10,7 @@
                git,
                libtool,
                pkg-config,
+               libtalloc-dev (>= 2.1.0)
 Standards-Version: 3.9.6
 Vcs-Browser: https://gitea.osmocom.org/ss7-in-c/libosmo-asn1-tcap
 Vcs-Git: https://gitea.osmocom.org/ss7-in-c/libosmo-asn1-tcap
@@ -25,7 +26,9 @@
 Package: libosmo-asn1-tcap-dev
 Section: libdevel
 Architecture: any
-Depends: libosmo-asn1-tcap1 (= ${binary:Version}), ${misc:Depends}
+Depends: libosmo-asn1-tcap1 (= ${binary:Version}),
+         libtalloc-dev (>= 2.1.0),
+         ${misc:Depends}
 Multi-Arch: same
 Description: Development headers for utility library for ASN.1 of TCAP (SS7)

diff --git a/include/osmocom/tcap/asn_internal.h 
b/include/osmocom/tcap/asn_internal.h
index bf5b510..f4337d3 100644
--- a/include/osmocom/tcap/asn_internal.h
+++ b/include/osmocom/tcap/asn_internal.h
@@ -7,6 +7,7 @@
  */
 #ifndef        ASN_INTERNAL_H
 #define        ASN_INTERNAL_H
+#include <talloc.h>
 #ifndef __EXTENSIONS__
 #define __EXTENSIONS__          /* for Sun */
 #endif
@@ -34,10 +35,11 @@
 #define        ASN1C_ENVIRONMENT_VERSION       923     /* Compile-time version 
*/
 int get_asn1c_environment_version(void);       /* Run-time version */

-#define        CALLOC(nmemb, size)     calloc(nmemb, size)
-#define        MALLOC(size)            malloc(size)
-#define        REALLOC(oldptr, size)   realloc(oldptr, size)
-#define        FREEMEM(ptr)            free(ptr)
+extern void *tcap_talloc_asn1_ctx;
+#define        CALLOC(nmemb, size)     talloc_zero_size(tcap_talloc_asn1_ctx, 
(nmemb) * (size))
+#define        MALLOC(size)            talloc_size(tcap_talloc_asn1_ctx, size)
+#define        REALLOC(oldptr, size)   
talloc_realloc_size(tcap_talloc_asn1_ctx, oldptr, size)
+#define        FREEMEM(ptr)            talloc_free(ptr)

 #define        asn_debug_indent        0
 #define ASN_DEBUG_INDENT_ADD(i) do{}while(0)
diff --git a/libosmo-asn1-tcap.pc.in b/libosmo-asn1-tcap.pc.in
index 17971a1..80dd622 100644
--- a/libosmo-asn1-tcap.pc.in
+++ b/libosmo-asn1-tcap.pc.in
@@ -6,5 +6,6 @@
 Name: ASN.1 library for TCAP protocol (SS7)
 Description: C Utility Library
 Version: @VERSION@
+Requires.private: talloc
 Libs: -L${libdir} -losmo-asn1-tcap
 Cflags: -I${includedir}/
diff --git a/src/Makefile.am b/src/Makefile.am
index 6c2f830..42089af 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,4 +1,4 @@
-AM_CFLAGS = -I$(top_srcdir)/include/ -I$(top_srcdir)/src/skel 
$(ASN_MODULE_CFLAGS)
+AM_CFLAGS = -I$(top_srcdir)/include/ -I$(top_srcdir)/src/skel 
$(ASN_MODULE_CFLAGS) $(TALLOC_CFLAGS)

 SKEL_SRC = \
        skel/ANY.c \
@@ -201,6 +201,8 @@

 libosmo_asn1_tcap_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined 
-export-symbols-regex '^osmo_'

+libosmo_asn1_tcap_la_LIBADD = $(TALLOC_LIBS)
+
 libosmo_asn1_tcap_la_SOURCES = \
        tcap.c \
        $(ASN_MODULE_SRC)
@@ -239,6 +241,13 @@
 # #include <...> in *.c and *.h files
        cd $(top_srcdir)/src/gen && \
                ../../move-asn1-header-files.sh osmocom/tcap $(ASN_MODULE_INC)
+#Patch mem alloc defines to use talloc:
+       sed -i "s/#define\tASN_INTERNAL_H/#define\tASN_INTERNAL_H\n#include 
<talloc.h>/g" $(top_srcdir)/include/osmocom/tcap/asn_internal.h
+       sed -i "s/#define\tCALLOC/extern void 
*tcap_talloc_asn1_ctx;\n#define\tCALLOC/g" 
$(top_srcdir)/include/osmocom/tcap/asn_internal.h
+       sed -i "s/calloc(nmemb, size)/talloc_zero_size(tcap_talloc_asn1_ctx, 
(nmemb) * (size))/g" $(top_srcdir)/include/osmocom/tcap/asn_internal.h
+       sed -i "s/malloc(size)/talloc_size(tcap_talloc_asn1_ctx, size)/g" 
$(top_srcdir)/include/osmocom/tcap/asn_internal.h
+       sed -i "s/realloc(oldptr, 
size)/talloc_realloc_size(tcap_talloc_asn1_ctx, oldptr, size)/g" 
$(top_srcdir)/include/osmocom/tcap/asn_internal.h
+       sed -i "s/free(ptr)/talloc_free(ptr)/g" 
$(top_srcdir)/include/osmocom/tcap/asn_internal.h
 # Move skeleton *.c files to src/skel
        rm -rf $(top_srcdir)/src/skel
        mkdir $(top_srcdir)/src/skel
diff --git a/src/tcap.c b/src/tcap.c
index 68c7d9c..f5303ac 100644
--- a/src/tcap.c
+++ b/src/tcap.c
@@ -26,6 +26,8 @@
 #include <osmocom/tcap/asn_codecs.h>
 #include <osmocom/tcap/TCAP_TCMessage.h>

+void *tcap_talloc_asn1_ctx;
+
 int osmo_asn1_tcap_decode(struct TCAP_TCMessage *tcapmsg, const uint8_t *data, 
size_t data_len)
 {

diff --git a/tests/parse/Makefile.am b/tests/parse/Makefile.am
index 821865d..1a449fe 100644
--- a/tests/parse/Makefile.am
+++ b/tests/parse/Makefile.am
@@ -1,8 +1,8 @@
 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_srcdir)/src
-AM_CFLAGS = -Wall
+AM_CFLAGS = -Wall $(TALLOC_CFLAGS)
 AM_LDFLAGS = -no-install

-LDADD = $(top_builddir)/src/.libs/libosmo-asn1-tcap.a
+LDADD = $(top_builddir)/src/.libs/libosmo-asn1-tcap.a $(TALLOC_LIBS)

 check_PROGRAMS = \
        tcap_parse_test \

--
To view, visit https://gerrit.osmocom.org/c/libosmo-asn1-tcap/+/42219?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: libosmo-asn1-tcap
Gerrit-Branch: master
Gerrit-Change-Id: I6d885527caa5b60011b4fac341b93026ab1833d9
Gerrit-Change-Number: 42219
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to