22 zoslib_config_t config;
23 init_zoslib_config(&config);
32void OS::Free(
void* address,
const size_t size) {
44void*
OS::Allocate(
void* hint,
size_t size,
size_t alignment,
45 MemoryPermission access) {
46 return __zalloc(size, alignment);
56 if (isnan(time))
return "";
57 time_t tv =
static_cast<time_t
>(std::floor(time /
msPerSecond));
59 struct tm* t = localtime_r(&tv, &tm);
60 if (t ==
nullptr)
return "";
65 time_t tv =
time(
nullptr);
67 struct tm* gmt = gmtime_r(&tv, &tmv);
68 double gm_secs = gmt->tm_sec + (gmt->tm_min * 60) + (gmt->tm_hour * 3600);
69 struct tm* localt = localtime_r(&tv, &tmv);
71 localt->tm_sec + (localt->tm_min * 60) + (localt->tm_hour * 3600);
84 return mmap(hint, size, prot, MAP_SHARED, fd,
offset);
100 return mmap(address, size, prot, MAP_SHARED | MAP_FIXED, fd,
offset) !=
106 return mmap(address, size, PROT_NONE, MAP_FIXED | MAP_PRIVATE, -1, 0) !=
111 std::vector<SharedLibraryAddress>
result;
161 void* memory() const final {
return memory_; }
178 void* memory =
nullptr;
179 if (
int fd =
::open(name, open_mode)) {
180 FILE* file = fdopen(fd, fopen_mode);
181 off_t size = lseek(fd, 0, SEEK_END);
185 int prot = PROT_READ;
186 int flags = MAP_PRIVATE;
193 memory = __zalloc_for_fd(size, name, fd, 0);
196 if (memory != MAP_FAILED)
208 size_t size,
void* initial) {
209 if (FILE* file = fopen(name,
"w+")) {
211 size_t result = fwrite(initial, 1, size, file);
212 if (
result == size && !ferror(file)) {
214 PROT_READ | PROT_WRITE, MAP_SHARED, fileno(file), 0);
215 if (memory != MAP_FAILED) {
225 if (memory_ !=
nullptr) {
229 __zfree(memory_,
size_);
bool Contains(void *region_addr, size_t region_size) const
V8_WARN_UNUSED_RESULT bool FreeShared(void *address, size_t size)
V8_WARN_UNUSED_RESULT bool AllocateShared(void *address, size_t size, OS::MemoryPermission access, PlatformSharedMemoryHandle handle, uint64_t offset)
static MemoryMappedFile * create(const char *name, size_t size, void *initial)
static MemoryMappedFile * open(const char *name, FileMode mode=FileMode::kReadWrite)
friend class PosixMemoryMappedFile
static V8_WARN_UNUSED_RESULT void * AllocateShared(size_t size, MemoryPermission access)
static void * GetRandomMmapAddr()
static void SignalCodeMovingGC()
static bool HasLazyCommits()
static V8_WARN_UNUSED_RESULT bool DiscardSystemPages(void *address, size_t size)
static size_t AllocatePageSize()
static void SetDataReadOnly(void *address, size_t size)
static void FreeShared(void *address, size_t size)
static V8_WARN_UNUSED_RESULT bool SetPermissions(void *address, size_t size, MemoryPermission access)
static V8_WARN_UNUSED_RESULT bool DecommitPages(void *address, size_t size)
static size_t CommitPageSize()
static void Release(void *address, size_t size)
static V8_WARN_UNUSED_RESULT bool RecommitPages(void *address, size_t size, MemoryPermission access)
static std::vector< SharedLibraryAddress > GetSharedLibraryAddresses()
static V8_WARN_UNUSED_RESULT void * Allocate(void *address, size_t size, size_t alignment, MemoryPermission access)
static TimezoneCache * CreateTimezoneCache()
friend class MemoryMappedFile
static void Free(void *address, size_t size)
static void AdjustSchedulingParams()
size_t size() const final
PosixMemoryMappedFile(FILE *file, void *memory, size_t size, bool ismmap)
~PosixMemoryMappedFile() final
static const int msPerSecond
const char * LocalTimezone(double time) override
double LocalTimeOffset(double time_ms, bool is_utc) override
~ZOSTimezoneCache() override
ZoneVector< RpoNumber > & result
int GetProtectionFromMemoryPermission(OS::MemoryPermission access)
__attribute__((tls_model(V8_TLS_MODEL))) extern thread_local Isolate *g_current_isolate_ V8_CONSTINIT
int FileDescriptorFromSharedMemoryHandle(PlatformSharedMemoryHandle handle)
intptr_t PlatformSharedMemoryHandle
#define CHECK_EQ(lhs, rhs)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
constexpr T RoundUp(T x, intptr_t m)