mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-13 19:14:30 +00:00
45 lines
785 B
C++
45 lines
785 B
C++
|
#pragma once
|
||
|
|
||
|
#include <cstddef>
|
||
|
#include <sys/mman.h>
|
||
|
|
||
|
#if defined(MREMAP_MAYMOVE)
|
||
|
// we already have implementation (linux)
|
||
|
#else
|
||
|
|
||
|
#define MREMAP_MAYMOVE 1
|
||
|
|
||
|
void * mremap(void * old_address,
|
||
|
size_t old_size,
|
||
|
size_t new_size,
|
||
|
int flags = 0,
|
||
|
int mmap_prot = 0,
|
||
|
int mmap_flags = 0,
|
||
|
int mmap_fd = -1,
|
||
|
off_t mmap_offset = 0);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
inline void * clickhouse_mremap(void * old_address,
|
||
|
size_t old_size,
|
||
|
size_t new_size,
|
||
|
int flags = 0,
|
||
|
int mmap_prot = 0,
|
||
|
int mmap_flags = 0,
|
||
|
int mmap_fd = -1,
|
||
|
off_t mmap_offset = 0)
|
||
|
{
|
||
|
return mremap(old_address,
|
||
|
old_size,
|
||
|
new_size,
|
||
|
flags
|
||
|
#if !defined(MREMAP_FIXED)
|
||
|
,
|
||
|
mmap_prot,
|
||
|
mmap_flags,
|
||
|
mmap_fd,
|
||
|
mmap_offset
|
||
|
#endif
|
||
|
);
|
||
|
}
|