Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
regional.h
Go to the documentation of this file.
1
/*
2
* regional.h -- region based memory allocator.
3
*
4
* Copyright (c) 2007, NLnet Labs. All rights reserved.
5
*
6
* This software is open source.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* Neither the name of the NLNET LABS nor the names of its contributors may
20
* be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
50
51
#ifndef UTIL_REGIONAL_H_
52
#define UTIL_REGIONAL_H_
53
59
struct
regional
60
{
66
char
*
next
;
68
char
*
large_list
;
70
size_t
total_large
;
72
size_t
first_size
;
74
size_t
available
;
76
char
*
data
;
77
};
78
83
struct
regional
*
regional_create
(
void
);
84
90
struct
regional
*
regional_create_custom
(
size_t
size);
91
97
void
regional_free_all
(
struct
regional
*r);
98
104
void
regional_destroy
(
struct
regional
*r);
105
113
void
*
regional_alloc
(
struct
regional
*r,
size_t
size);
114
124
void
*
regional_alloc_init
(
struct
regional
* r,
const
void
*init,
size_t
size);
125
134
void
*
regional_alloc_zero
(
struct
regional
*r,
size_t
size);
135
142
char
*
regional_strdup
(
struct
regional
*r,
const
char
*
string
);
143
145
void
regional_log_stats
(
struct
regional
*r);
146
148
size_t
regional_get_mem
(
struct
regional
* r);
149
150
#endif
/* UTIL_REGIONAL_H_ */
regional_free_all
void regional_free_all(struct regional *r)
regional_alloc
void * regional_alloc(struct regional *r, size_t size)
regional_strdup
char * regional_strdup(struct regional *r, const char *string)
regional_get_mem
size_t regional_get_mem(struct regional *r)
regional_alloc_zero
void * regional_alloc_zero(struct regional *r, size_t size)
regional_alloc_init
void * regional_alloc_init(struct regional *r, const void *init, size_t size)
regional_create
struct regional * regional_create(void)
regional_destroy
void regional_destroy(struct regional *r)
regional_log_stats
void regional_log_stats(struct regional *r)
regional_create_custom
struct regional * regional_create_custom(size_t size)
regional
Definition
regional.h:60
regional::large_list
char * large_list
Definition
regional.h:68
regional::data
char * data
Definition
regional.h:76
regional::available
size_t available
Definition
regional.h:74
regional::first_size
size_t first_size
Definition
regional.h:72
regional::next
char * next
Definition
regional.h:66
regional::total_large
size_t total_large
Definition
regional.h:70
external
unbound
util
regional.h
Generated on
for Electroneum by
1.17.0