#include <sys/mman.h>
#include <errno.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "utils.h"
Go to the source code of this file.
◆ C_PTR_ALIGN
#define C_PTR_ALIGN (sizeof(size_t)) |
◆ C_PTR_MASK
◆ foreach_arg
#define foreach_arg |
( |
|
_arg, |
|
|
|
_addr, |
|
|
|
_len, |
|
|
|
_first_addr, |
|
|
|
_first_len |
|
) |
| |
Value: for (_addr = (_first_addr), _len = (_first_len); \
_addr; \
_addr = va_arg(_arg, void **), _len = _addr ? va_arg(_arg, size_t) : 0)
Definition at line 27 of file utils.c.
◆ MAP_ANONYMOUS
#define MAP_ANONYMOUS MAP_ANON |
◆ __calloc_a()
void* __calloc_a |
( |
size_t |
len, |
|
|
|
... |
|
) |
| |
Definition at line 35 of file utils.c.
51 ptr = calloc(1, alloc_len);
59 *cur_addr = &ptr[alloc_len];
#define foreach_arg(_arg, _addr, _len, _first_addr, _first_len)
◆ cbuf_alloc()
void* cbuf_alloc |
( |
unsigned int |
order | ) |
|
Definition at line 116 of file utils.c.
118 char path[] =
"/tmp/cbuf-XXXXXX";
133 #ifndef MAP_ANONYMOUS
134 #define MAP_ANONYMOUS MAP_ANON
137 ret = mmap(NULL, size * 2, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
138 if (ret == MAP_FAILED) {
143 if (mmap(ret, size, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED,
145 mmap(ret + size, size, PROT_READ | PROT_WRITE,
146 MAP_FIXED | MAP_SHARED,
fd, 0) != ret + size) {
147 munmap(ret, size * 2);
static unsigned long cbuf_size(int order)
◆ cbuf_free()
void cbuf_free |
( |
void * |
ptr, |
|
|
unsigned int |
order |
|
) |
| |
◆ mkdir_p()
int mkdir_p |
( |
char * |
dir, |
|
|
mode_t |
mask |
|
) |
| |
Definition at line 161 of file utils.c.
166 ret = mkdir(dir, mask);
167 if (!ret || errno == EEXIST)
170 if (ret && (errno != ENOENT))
173 l = strrchr(dir,
'/');
184 ret = mkdir(dir, mask);
185 if (!ret || errno == EEXIST)
int mkdir_p(char *dir, mode_t mask)