Zycore
1.5.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
Allocator.h
Go to the documentation of this file.
1
/***************************************************************************************************
2
3
Zyan Core Library (Zycore-C)
4
5
Original Author : Florian Bernd
6
7
* Permission is hereby granted, free of charge, to any person obtaining a copy
8
* of this software and associated documentation files (the "Software"), to deal
9
* in the Software without restriction, including without limitation the rights
10
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
* copies of the Software, and to permit persons to whom the Software is
12
* furnished to do so, subject to the following conditions:
13
*
14
* The above copyright notice and this permission notice shall be included in all
15
* copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
* SOFTWARE.
24
25
***************************************************************************************************/
26
31
32
#ifndef ZYCORE_ALLOCATOR_H
33
#define ZYCORE_ALLOCATOR_H
34
35
#include <
Zycore/Status.h
>
36
#include <
Zycore/Types.h
>
37
38
#ifdef __cplusplus
39
extern
"C"
{
40
#endif
41
42
/* ============================================================================================== */
43
/* Enums and types */
44
/* ============================================================================================== */
45
46
struct
ZyanAllocator_
;
47
64
typedef
ZyanStatus
(*
ZyanAllocatorAllocate
)(
struct
ZyanAllocator_
* allocator,
void
** p,
65
ZyanUSize element_size, ZyanUSize n);
66
77
typedef
ZyanStatus
(*
ZyanAllocatorDeallocate
)(
struct
ZyanAllocator_
* allocator,
void
* p,
78
ZyanUSize element_size, ZyanUSize n);
79
88
typedef
struct
ZyanAllocator_
89
{
93
ZyanAllocatorAllocate
allocate
;
97
ZyanAllocatorAllocate
reallocate
;
101
ZyanAllocatorDeallocate
deallocate
;
102
}
ZyanAllocator
;
103
104
/* ============================================================================================== */
105
/* Exported functions */
106
/* ============================================================================================== */
107
118
ZYCORE_EXPORT
ZyanStatus
ZyanAllocatorInit
(
ZyanAllocator
* allocator,
ZyanAllocatorAllocate
allocate,
119
ZyanAllocatorAllocate
reallocate,
ZyanAllocatorDeallocate
deallocate);
120
121
#ifndef ZYAN_NO_LIBC
122
132
ZYCORE_EXPORT
ZYAN_REQUIRES_LIBC
ZyanAllocator
*
ZyanAllocatorDefault
(
void
);
133
134
#endif
// ZYAN_NO_LIBC
135
136
/* ============================================================================================== */
137
138
#ifdef __cplusplus
139
}
140
#endif
141
142
#endif
/* ZYCORE_ALLOCATOR_H */
ZyanAllocatorDefault
ZYCORE_EXPORT ZYAN_REQUIRES_LIBC ZyanAllocator * ZyanAllocatorDefault(void)
ZyanAllocatorAllocate
ZyanStatus(* ZyanAllocatorAllocate)(struct ZyanAllocator_ *allocator, void **p, ZyanUSize element_size, ZyanUSize n)
Definition
Allocator.h:64
ZyanAllocatorDeallocate
ZyanStatus(* ZyanAllocatorDeallocate)(struct ZyanAllocator_ *allocator, void *p, ZyanUSize element_size, ZyanUSize n)
Definition
Allocator.h:77
ZyanAllocatorInit
ZYCORE_EXPORT ZyanStatus ZyanAllocatorInit(ZyanAllocator *allocator, ZyanAllocatorAllocate allocate, ZyanAllocatorAllocate reallocate, ZyanAllocatorDeallocate deallocate)
ZyanAllocator
struct ZyanAllocator_ ZyanAllocator
ZYAN_REQUIRES_LIBC
#define ZYAN_REQUIRES_LIBC
Definition
Defines.h:366
ZYCORE_EXPORT
#define ZYCORE_EXPORT
Definition
Defines.h:235
Status.h
ZyanStatus
ZyanU32 ZyanStatus
Definition
Status.h:48
Types.h
ZyanAllocator_
Definition
Allocator.h:89
ZyanAllocator_::reallocate
ZyanAllocatorAllocate reallocate
Definition
Allocator.h:97
ZyanAllocator_::deallocate
ZyanAllocatorDeallocate deallocate
Definition
Allocator.h:101
ZyanAllocator_::allocate
ZyanAllocatorAllocate allocate
Definition
Allocator.h:93
include
Zycore
Allocator.h
Generated by
1.17.0