1    | /***************************************
2    |   $Revision: 1.12 $
3    | 
4    |   Utilities (ut). memwrap.h - header file for memory allocation wrappers. 
5    | 
6    |   Status: NOT REVUED, TESTED, 
7    | 
8    |   Design and implementation by: Marek Bukowy
9    | 
10   |   ******************/ /******************
11   |   Copyright (c) 1999,2000,2001,2002               RIPE NCC
12   |  
13   |   All Rights Reserved
14   |   
15   |   Permission to use, copy, modify, and distribute this software and its
16   |   documentation for any purpose and without fee is hereby granted,
17   |   provided that the above copyright notice appear in all copies and that
18   |   both that copyright notice and this permission notice appear in
19   |   supporting documentation, and that the name of the author not be
20   |   used in advertising or publicity pertaining to distribution of the
21   |   software without specific, written prior permission.
22   |   
23   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
24   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
25   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
26   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
27   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
28   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
29   |   ***************************************/
30   | 
31   | #ifndef _MEMWRAP_H
32   | #define _MEMWRAP_H
33   | 
34   | #include <erroutines.h>
35   | #include <glib.h>
36   | 
37   | #ifdef __cplusplus
38   | extern "C" {
39   | #endif
40   | 
41   | void UT_memory_log(int active);
42   | 
43   | void *UT_malloc_real(size_t size, const char *file, int line);
44   | void *UT_calloc_real(size_t num, size_t size, const char *file, int line);
45   | void *UT_realloc_real(void *ptr, size_t size, const char *file, int line);
46   | void UT_free_real(void *ptr, const char *file, int line);
47   | char *UT_strdup_real(const char *str, const char *file, int line);
48   | 
49   | #define UT_malloc(size)       UT_malloc_real((size),        __FILE__, __LINE__)
50   | #define UT_calloc(num,size)   UT_calloc_real((num),(size),  __FILE__, __LINE__)
51   | #define UT_realloc(ptr,size)  UT_realloc_real((ptr),(size), __FILE__, __LINE__)
52   | #define UT_free(ptr)          UT_free_real((ptr),           __FILE__, __LINE__)
53   | #define UT_strdup(str)        UT_strdup_real((str),         __FILE__, __LINE__)
54   | 
55   | void wr_log_set(int value);
56   | 
57   | er_ret_t wr_real_malloc(void **ptr, size_t size, const char *file, int line);
58   | er_ret_t wr_real_calloc(void **ptr, size_t num, size_t size, const char *file, 
59   |                         int line);
60   | er_ret_t wr_real_realloc(void **ptr, size_t size, const char *file, int line);
61   | er_ret_t wr_real_free(void *ptr, const char *file, int line) ;
62   | char *wr_real_string(const char *text, const char *file, int line);
63   | 
64   | #define wr_malloc(a,b)    wr_real_malloc((a),(b),     __FILE__ ,__LINE__)
65   | #define wr_calloc(a,b,c)  wr_real_calloc((a),(b),(c), __FILE__ ,__LINE__)
66   | #define wr_realloc(a,b)   wr_real_realloc((a),(b),    __FILE__ ,__LINE__)
67   | #define wr_free(a)        wr_real_free((a),           __FILE__ ,__LINE__)
68   | #define wr_string(s)      wr_real_string((s),         __FILE__, __LINE__)
69   | 
70   | void wr_real_clear_list(GList **list, const char *file, int line);
71   | 
72   | #define wr_clear_list(a)  wr_real_clear_list(a,   __FILE__ ,__LINE__)
73   | 
74   | #ifdef __cplusplus
75   | }
76   | #endif
77   | 
78   | #endif /* _MEMWRAP_H */