ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid-7.2/include/memory.h
Revision: 912
Committed: Wed Nov 7 22:47:44 2007 UTC (16 years, 5 months ago) by michael
Content type: text/x-chdr
File size: 2149 byte(s)
Log Message:
- Implemented libtool-ltdl. Only shared modules are supported currently
- Several build fixes and cleanups. ircd now builds and runs without any problems
- Added back all files to SVN that are needed to built the daemon
  I really don't want to force other people that want to test the snapshots
  or svn versions to install yyacc, lex, automake, autoconf and libtool...
  No problem having required files in svn
- Removed some automake maintainer stuff which is kinda useless for us

File Contents

# Content
1 /*
2 * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
3 * memory.h: A header for the memory functions.
4 *
5 * Copyright (C) 2002 by the past and present ircd coders, and others.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 * USA
21 *
22 * $Id$
23 */
24
25 #ifndef _I_MEMORY_H
26 #define _I_MEMORY_H
27
28 #include "ircd_defs.h"
29 #include "config.h"
30 #include "balloc.h"
31
32 /* Needed to use uintptr_t for some pointer manipulation. */
33
34 #ifdef HAVE_INTTYPES_H
35 # include <inttypes.h>
36 #else /* No inttypes.h */
37 # ifndef HAVE_UINTPTR_T
38 typedef unsigned long uintptr_t;
39 # endif
40 #endif
41
42 extern void outofmemory(void);
43
44 extern void *MyMalloc(size_t size);
45 extern void *MyRealloc(void *x, size_t y);
46 extern void MyFree(void *x);
47 extern void _DupString(char **x, const char *y);
48
49 /* forte (and maybe others) don't like double declarations,
50 * so we don't declare the inlines unless GNUC
51 */
52 #ifdef __GNUC__
53 extern inline void *
54 MyMalloc(size_t size)
55 {
56 void *ret = calloc(1, size);
57
58 if (ret == NULL)
59 outofmemory();
60 return(ret);
61 }
62
63 extern inline void *
64 MyRealloc(void *x, size_t y)
65 {
66 void *ret = realloc(x, y);
67
68 if (ret == NULL)
69 outofmemory();
70 return(ret);
71 }
72
73 extern inline void
74 MyFree(void *x)
75 {
76 if (x != NULL)
77 free(x);
78 }
79
80 extern inline void
81 _DupString(char **x, const char *y)
82 {
83 (*x) = malloc(strlen(y) + 1);
84
85 if (x == NULL)
86 outofmemory();
87 strcpy((*x), y);
88 }
89 #endif /* __GNUC__ */
90
91 #define DupString(x,y) _DupString(&x, y)
92 #endif /* _I_MEMORY_H */

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision