ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/memory.c
Revision: 1011
Committed: Fri Sep 18 10:14:09 2009 UTC (14 years, 7 months ago) by michael
Content type: text/x-csrc
Original Path: ircd-hybrid-7.2/src/memory.c
File size: 2248 byte(s)
Log Message:
- move list manipulation routines from tools.c to list.c
- mem_frob() goes to memory.c
- sort out redundant/unneeded header includes

File Contents

# User Rev Content
1 adx 30 /*
2     * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
3     * memory.c: Memory utilities.
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 knight 31 * $Id$
23 adx 30 */
24    
25    
26     #include "stdinc.h"
27     #include "ircd_defs.h"
28     #include "irc_string.h"
29     #include "memory.h"
30     #include "s_log.h"
31     #include "restart.h"
32    
33    
34     /*
35     * MyMalloc - allocate memory, call outofmemory on failure
36     */
37     void *
38     MyMalloc(size_t size)
39     {
40     void *ret = calloc(1, size);
41    
42     if (ret == NULL)
43     outofmemory();
44 michael 1011
45     return ret;
46 adx 30 }
47    
48     /*
49     * MyRealloc - reallocate memory, call outofmemory on failure
50     */
51     void *
52     MyRealloc(void *x, size_t y)
53     {
54     void *ret = realloc(x, y);
55    
56     if (ret == NULL)
57     outofmemory();
58 michael 1011
59     return ret;
60 adx 30 }
61    
62     void
63     MyFree(void *x)
64     {
65     if (x)
66     free(x);
67     }
68    
69     void
70     _DupString(char **x, const char *y)
71     {
72     (*x) = malloc(strlen(y) + 1);
73     strcpy((*x), y);
74     }
75    
76     /* outofmemory()
77     *
78     * input - NONE
79     * output - NONE
80     * side effects - simply try to report there is a problem.
81     * Abort if it was called more than once
82     */
83     void
84     outofmemory(void)
85     {
86     static int was_here = 0;
87    
88 michael 1011 if (was_here++)
89 adx 30 abort();
90    
91     ilog(L_CRIT, "Out of memory: restarting server...");
92     restart("Out of Memory");
93     }
94 michael 1011
95     #ifndef NDEBUG
96     /*
97     * frob some memory. debugging time.
98     * -- adrian
99     */
100     void
101     mem_frob(void *data, int len)
102     {
103     /* correct for Intel only! little endian */
104     unsigned char b[4] = { 0xef, 0xbe, 0xad, 0xde };
105     int i;
106     char *cdata = data;
107    
108     for (i = 0; i < len; i++)
109     {
110     *cdata = b[i % 4];
111     cdata++;
112     }
113     }
114     #endif

Properties

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