GPLization banner introduced to *.[hc] files
[sip-router] / mem / mem.h
1 /* $Id$
2  *
3  * memory related stuff (malloc & friends)
4  * 
5  *
6  * Copyright (C) 2001-2003 Fhg Fokus
7  *
8  * This file is part of ser, a free SIP server.
9  *
10  * ser is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version
14  *
15  * For a license to use the ser software under conditions
16  * other than those described here, or to purchase support for this
17  * software, please contact iptel.org by e-mail at the following addresses:
18  *    info@iptel.org
19  *
20  * ser is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23  * GNU General Public License for more details.
24  *
25  * You should have received a copy of the GNU General Public License 
26  * along with this program; if not, write to the Free Software 
27  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28  */
29
30
31
32 #ifndef mem_h
33 #define mem_h
34 #include "../config.h"
35 #include "../dprint.h"
36
37 #ifdef PKG_MALLOC
38 #       ifdef VQ_MALLOC
39 #               include "vq_malloc.h"
40                 extern struct vqm_block* mem_block;
41 #       elif defined F_MALLOC
42 #               include "f_malloc.h"
43                 extern struct fm_block* mem_block;
44 #   else
45 #               include "q_malloc.h"
46                 extern struct qm_block* mem_block;
47 #       endif
48
49         extern char mem_pool[PKG_MEM_POOL_SIZE];
50
51
52 #       ifdef DBG_QM_MALLOC
53 #               ifdef VQ_MALLOC
54 #                       define pkg_malloc(s) vqm_malloc(mem_block, (s),__FILE__, \
55                                 __FUNCTION__, __LINE__)
56 #                       define pkg_free(p)   vqm_free(mem_block, (p), __FILE__,  \
57                                 __FUNCTION__, __LINE__)
58 #               elif defined F_MALLOC
59 #                       define pkg_malloc(s) fm_malloc(mem_block, (s),__FILE__, \
60                                 __FUNCTION__, __LINE__);
61 #                       define pkg_free(p)   fm_free(mem_block, (p), __FILE__,  \
62                                 __FUNCTION__, __LINE__);
63 #               else
64 #                       define pkg_malloc(s) qm_malloc(mem_block, (s),__FILE__, \
65                                 __FUNCTION__, __LINE__);
66 #                       define pkg_free(p)   qm_free(mem_block, (p), __FILE__,  \
67                                 __FUNCTION__, __LINE__);
68 #               endif
69 #       else
70 #               ifdef VQ_MALLOC
71 #                       define pkg_malloc(s) vqm_malloc(mem_block, (s))
72 #                       define pkg_free(p)   vqm_free(mem_block, (p))
73 #               elif defined F_MALLOC
74 #                       define pkg_malloc(s) fm_malloc(mem_block, (s))
75 #                       define pkg_free(p)   fm_free(mem_block, (p))
76 #               else
77 #                       define pkg_malloc(s) qm_malloc(mem_block, (s))
78 #                       define pkg_free(p)   qm_free(mem_block, (p))
79 #               endif
80 #       endif
81 #       ifdef VQ_MALLOC
82 #               define pkg_status()  vqm_status(mem_block)
83 #       elif defined F_MALLOC
84 #               define pkg_status()  fm_status(mem_block)
85 #       else
86 #               define pkg_status()  qm_status(mem_block)
87 #       endif
88 #elif defined(SHM_MEM) && defined(USE_SHM_MEM)
89 #       include "shm_mem.h"
90 #       define pkg_malloc(s) shm_malloc((s))
91 #       define pkg_free(p)   shm_free((p))
92 #       define pkg_status()  shm_status()
93 #else
94 #       include <stdlib.h>
95 #       define pkg_malloc(s) \
96         (  { void *v; v=malloc((s)); \
97            DBG("malloc %x size %d end %x\n", v, s, (unsigned int)v+(s));\
98            v; } )
99 #       define pkg_free(p)  do{ DBG("free %x\n", (p)); free((p)); }while(0);
100 #       define pkg_status()
101 #endif
102
103 int init_mallocs();
104
105 #endif