summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_mem_zone.h
blob: 3f078c2d84f30225e72983ad59a16321062006e1 (plain) (blame)
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

/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) NGINX, Inc.
 */

#ifndef _NXT_MEM_ZONE_H_INCLUDED_
#define _NXT_MEM_ZONE_H_INCLUDED_


typedef struct nxt_mem_zone_s  nxt_mem_zone_t;


NXT_EXPORT nxt_mem_zone_t *nxt_mem_zone_init(u_char *start, size_t zone_size,
    nxt_uint_t page_size);

#define                                                                       \
nxt_mem_zone_alloc(zone, size)                                                \
    nxt_mem_zone_align((zone), 1, (size))

NXT_EXPORT void *nxt_mem_zone_align(nxt_mem_zone_t *zone, size_t alignment,
    size_t size)
    NXT_MALLOC_LIKE;
NXT_EXPORT void *nxt_mem_zone_zalloc(nxt_mem_zone_t *zone, size_t size)
    NXT_MALLOC_LIKE;
NXT_EXPORT void nxt_mem_zone_free(nxt_mem_zone_t *zone, void *p);


#endif /* _NXT_MEM_ZONE_H_INCLUDED_ */