blob: 503306de4dd3d79636b91fc85748db66d3c01b82 [file] [log] [blame]
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_BASE_PLATFORM_WRAPPERS_H_
#define V8_BASE_PLATFORM_WRAPPERS_H_
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "src/base/base-export.h"
#if defined(V8_OS_STARBOARD)
#include "starboard/memory.h"
#endif
namespace v8 {
namespace base {
#if !defined(V8_OS_STARBOARD)
// Common libstd implementations.
// inline implementations are preferred here due to performance concerns.
inline void* Malloc(size_t size) { return malloc(size); }
inline void* Realloc(void* memory, size_t size) {
return realloc(memory, size);
}
inline void Free(void* memory) { return free(memory); }
inline void* Calloc(size_t count, size_t size) { return calloc(count, size); }
inline void* Memcpy(void* dest, const void* source, size_t count) {
return memcpy(dest, source, count);
}
inline FILE* Fopen(const char* filename, const char* mode) {
return fopen(filename, mode);
}
inline int Fclose(FILE* stream) { return fclose(stream); }
#else // V8_OS_STARBOARD
inline void* Malloc(size_t size) { return SbMemoryAllocate(size); }
inline void* Realloc(void* memory, size_t size) {
return SbMemoryReallocate(memory, size);
}
inline void Free(void* memory) { return SbMemoryDeallocate(memory); }
inline void* Calloc(size_t count, size_t size) {
return SbMemoryCalloc(count, size);
}
inline void* Memcpy(void* dest, const void* source, size_t count) {
return SbMemoryCopy(dest, source, count);
}
inline FILE* Fopen(const char* filename, const char* mode) { return NULL; }
inline int Fclose(FILE* stream) { return -1; }
#endif // V8_OS_STARBOARD
} // namespace base
} // namespace v8
#endif // V8_BASE_PLATFORM_WRAPPERS_H_