tlds
Transactional Operations for Linked Data Structures
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
memory.h
Go to the documentation of this file.
1
/* =============================================================================
2
*
3
* memory.h
4
* -- Very simple pseudo thread-local memory allocator
5
*
6
* =============================================================================
7
*
8
* Copyright (C) Stanford University, 2006. All Rights Reserved.
9
* Author: Chi Cao Minh
10
*
11
* =============================================================================
12
*
13
* For the license of bayes/sort.h and bayes/sort.c, please see the header
14
* of the files.
15
*
16
* ------------------------------------------------------------------------
17
*
18
* For the license of kmeans, please see kmeans/LICENSE.kmeans
19
*
20
* ------------------------------------------------------------------------
21
*
22
* For the license of ssca2, please see ssca2/COPYRIGHT
23
*
24
* ------------------------------------------------------------------------
25
*
26
* For the license of lib/mt19937ar.c and lib/mt19937ar.h, please see the
27
* header of the files.
28
*
29
* ------------------------------------------------------------------------
30
*
31
* For the license of lib/rbtree.h and lib/rbtree.c, please see
32
* lib/LEGALNOTICE.rbtree and lib/LICENSE.rbtree
33
*
34
* ------------------------------------------------------------------------
35
*
36
* Unless otherwise noted, the following license applies to STAMP files:
37
*
38
* Copyright (c) 2007, Stanford University
39
* All rights reserved.
40
*
41
* Redistribution and use in source and binary forms, with or without
42
* modification, are permitted provided that the following conditions are
43
* met:
44
*
45
* * Redistributions of source code must retain the above copyright
46
* notice, this list of conditions and the following disclaimer.
47
*
48
* * Redistributions in binary form must reproduce the above copyright
49
* notice, this list of conditions and the following disclaimer in
50
* the documentation and/or other materials provided with the
51
* distribution.
52
*
53
* * Neither the name of Stanford University nor the names of its
54
* contributors may be used to endorse or promote products derived
55
* from this software without specific prior written permission.
56
*
57
* THIS SOFTWARE IS PROVIDED BY STANFORD UNIVERSITY ``AS IS'' AND ANY
58
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
59
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
60
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL STANFORD UNIVERSITY BE LIABLE
61
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
62
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
63
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
64
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
65
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
66
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
67
* THE POSSIBILITY OF SUCH DAMAGE.
68
*
69
* =============================================================================
70
*/
71
72
73
#ifndef MEMORY_H
74
#define MEMORY_H 1
75
76
#include <stddef.h>
77
#include "
types.h
"
78
79
#ifdef __cplusplus
80
extern
"C"
{
81
#endif
82
83
84
enum
{
85
DEFAULT_INIT_BLOCK_CAPACITY
= 16,
86
DEFAULT_BLOCK_GROWTH_FACTOR
= 2,
87
};
88
89
typedef
struct
memory
memory_t
;
90
91
92
/* =============================================================================
93
* memory_init
94
* -- Returns FALSE on failure
95
* =============================================================================
96
*/
97
bool_t
98
memory_init
(
long
numThread
,
size_t
initBlockCapacity,
long
blockGrowthFactor);
99
100
101
/* =============================================================================
102
* memory_destroy
103
* =============================================================================
104
*/
105
void
106
memory_destroy
();
107
108
109
/* =============================================================================
110
* memory_get
111
* -- Reserves memory
112
* =============================================================================
113
*/
114
void
*
115
memory_get
(
long
threadId,
size_t
numByte);
116
117
118
#ifdef __cplusplus
119
}
120
#endif
121
122
123
#endif
/* MEMORY_H */
124
125
126
/* =============================================================================
127
*
128
* End of memory.h
129
*
130
* =============================================================================
131
*/
memory::numThread
long numThread
Definition:
memory.c:106
DEFAULT_BLOCK_GROWTH_FACTOR
Definition:
memory.h:86
types.h
memory_get
void * memory_get(long threadId, size_t numByte)
Definition:
memory.c:341
bool_t
int bool_t
Definition:
portable_defns.h:32
memory_init
bool_t memory_init(long numThread, size_t initBlockCapacity, long blockGrowthFactor)
Definition:
memory.c:217
DEFAULT_INIT_BLOCK_CAPACITY
Definition:
memory.h:85
memory
Definition:
memory.c:104
memory_destroy
void memory_destroy()
Definition:
memory.c:251
rstm
rstm-dev
stamp-0.9.10
lib
memory.h
Generated on Thu Sep 8 2016 13:28:39 for tlds by
1.8.6