2017-11-16 19:17:09 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstddef>
|
2018-03-23 16:05:14 +00:00
|
|
|
#include <sys/types.h>
|
|
|
|
#if !_MSC_VER
|
2017-11-16 19:17:09 +00:00
|
|
|
#include <sys/mman.h>
|
2018-03-23 16:05:14 +00:00
|
|
|
#endif
|
2017-11-16 19:17:09 +00:00
|
|
|
|
|
|
|
#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,
|
2017-12-01 18:36:55 +00:00
|
|
|
[[maybe_unused]] int mmap_prot = 0,
|
|
|
|
[[maybe_unused]] int mmap_flags = 0,
|
|
|
|
[[maybe_unused]] int mmap_fd = -1,
|
|
|
|
[[maybe_unused]] off_t mmap_offset = 0)
|
2017-11-16 19:17:09 +00:00
|
|
|
{
|
|
|
|
return mremap(old_address,
|
|
|
|
old_size,
|
|
|
|
new_size,
|
|
|
|
flags
|
|
|
|
#if !defined(MREMAP_FIXED)
|
|
|
|
,
|
|
|
|
mmap_prot,
|
|
|
|
mmap_flags,
|
|
|
|
mmap_fd,
|
|
|
|
mmap_offset
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
}
|