git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
30b7a8c03b9de7f495c02406ba35c8ef28d7301b blob 1608 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
#ifndef MEM_POOL_H
#define MEM_POOL_H

struct mp_block {
	struct mp_block *next_block;
	char *next_free;
	char *end;
	uintmax_t space[FLEX_ARRAY]; /* more */
};

struct mem_pool {
	struct mp_block *mp_block;

	/*
	 * The amount of available memory to grow the pool by.
	 * This size does not include the overhead for the mp_block.
	 */
	size_t block_alloc;

	/* The total amount of memory allocated by the pool. */
	size_t pool_alloc;
};

/*
 * Initialize mem_pool with specified initial size.
 */
void mem_pool_init(struct mem_pool *mem_pool, size_t initial_size);

/*
 * Discard all the memory the memory pool is responsible for.
 */
void mem_pool_discard(struct mem_pool *mem_pool, int invalidate_memory);

/*
 * Alloc memory from the mem_pool.
 */
void *mem_pool_alloc(struct mem_pool *pool, size_t len);

/*
 * Allocate and zero memory from the memory pool.
 */
void *mem_pool_calloc(struct mem_pool *pool, size_t count, size_t size);

/*
 * Allocate memory from the memory pool and copy str into it.
 */
char *mem_pool_xstrdup(struct mem_pool *pool, const char *str);
char *mem_pool_xstrndup(struct mem_pool *pool, const char *str, size_t len);

/*
 * Move the memory associated with the 'src' pool to the 'dst' pool. The 'src'
 * pool will be empty and not contain any memory. It still needs to be free'd
 * with a call to `mem_pool_discard`.
 */
void mem_pool_combine(struct mem_pool *dst, struct mem_pool *src);

/*
 * Check if a memory pointed at by 'mem' is part of the range of
 * memory managed by the specified mem_pool.
 */
int mem_pool_contains(struct mem_pool *mem_pool, void *mem);

#endif
debug log:

solving 30b7a8c03b ...
found 30b7a8c03b in https://public-inbox.org/git/f13a52055cd975d457e0593cbabb70897e78024b.1597374135.git.gitgitgadget@gmail.com/
found fcaa2d462b in https://public-inbox.org/git/eae8b2923f7834f3b1d030f6eb4dc093b94da91b.1597374135.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/6d679c5b46541208f5fa714174555ff0dc756b9a.1597384820.git.gitgitgadget@gmail.com/
found 999d3c3a52 in git.git.git
preparing index
index prepared:
100644 999d3c3a52cc49b6dec896fc1e6b31ea8ac078d5	mem-pool.h

applying [1/3] https://public-inbox.org/git/eae8b2923f7834f3b1d030f6eb4dc093b94da91b.1597374135.git.gitgitgadget@gmail.com/
diff --git a/mem-pool.h b/mem-pool.h
index 999d3c3a52..fcaa2d462b 100644

Checking patch mem-pool.h...
Applied patch mem-pool.h cleanly.

skipping https://public-inbox.org/git/6d679c5b46541208f5fa714174555ff0dc756b9a.1597384820.git.gitgitgadget@gmail.com/ for fcaa2d462b
index at:
100644 fcaa2d462ba38d28205aba5fc834226d9eeb3f3d	mem-pool.h

applying [2/3] https://public-inbox.org/git/f13a52055cd975d457e0593cbabb70897e78024b.1597374135.git.gitgitgadget@gmail.com/
diff --git a/mem-pool.h b/mem-pool.h
index fcaa2d462b..30b7a8c03b 100644

Checking patch mem-pool.h...
Applied patch mem-pool.h cleanly.

index at:
100644 30b7a8c03b9de7f495c02406ba35c8ef28d7301b	mem-pool.h

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).