| Index: runtime/vm/os_openbsd.cc
|
| diff --git a/runtime/vm/os_linux.cc b/runtime/vm/os_openbsd.cc
|
| similarity index 98%
|
| copy from runtime/vm/os_linux.cc
|
| copy to runtime/vm/os_openbsd.cc
|
| index 7924be1cfcd7460c55309f25096ddd8021c0ecc7..a4da949a8d16b2d229f8f83ab6344b14ef3371f2 100644
|
| --- a/runtime/vm/os_linux.cc
|
| +++ b/runtime/vm/os_openbsd.cc
|
| @@ -3,18 +3,17 @@
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| #include "vm/globals.h"
|
| -#if defined(TARGET_OS_LINUX)
|
| +#if defined(TARGET_OS_OPENBSD)
|
|
|
| #include "vm/os.h"
|
|
|
| #include <errno.h> // NOLINT
|
| #include <limits.h> // NOLINT
|
| -#include <malloc.h> // NOLINT
|
| +#include <stdlib.h> // NOLINT
|
| #include <time.h> // NOLINT
|
| #include <sys/resource.h> // NOLINT
|
| #include <sys/time.h> // NOLINT
|
| #include <sys/types.h> // NOLINT
|
| -#include <sys/syscall.h> // NOLINT
|
| #include <sys/stat.h> // NOLINT
|
| #include <fcntl.h> // NOLINT
|
| #include <unistd.h> // NOLINT
|
| @@ -259,9 +258,8 @@ class JitdumpCodeObserver : public CodeObserver {
|
| }
|
|
|
| pid_t gettid() {
|
| - // libc doesn't wrap the Linux-specific gettid system call.
|
| // Note that this thread id is not the same as the posix thread id.
|
| - return syscall(SYS_gettid);
|
| + return getthrid();
|
| }
|
|
|
| uint64_t GetKernelTimeNanos() {
|
| @@ -337,7 +335,7 @@ class JitdumpCodeObserver : public CodeObserver {
|
|
|
|
|
| const char* OS::Name() {
|
| - return "linux";
|
| + return "openbsd";
|
| }
|
|
|
|
|
| @@ -395,7 +393,6 @@ int64_t OS::GetCurrentTimeMicros() {
|
| return (static_cast<int64_t>(tv.tv_sec) * 1000000) + tv.tv_usec;
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentMonotonicMicros() {
|
| struct timespec ts;
|
| if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) {
|
| @@ -409,13 +406,12 @@ int64_t OS::GetCurrentMonotonicMicros() {
|
| return result;
|
| }
|
|
|
| -
|
| void* OS::AlignedAllocate(intptr_t size, intptr_t alignment) {
|
| const int kMinimumAlignment = 16;
|
| ASSERT(Utils::IsPowerOfTwo(alignment));
|
| ASSERT(alignment >= kMinimumAlignment);
|
| - void* p = memalign(alignment, size);
|
| - if (p == NULL) {
|
| + void* p = NULL;
|
| + if (posix_memalign(&p, alignment, size)) {
|
| UNREACHABLE();
|
| }
|
| return p;
|
| @@ -551,7 +547,6 @@ int OS::VSNPrint(char* str, size_t size, const char* format, va_list args) {
|
| return retval;
|
| }
|
|
|
| -
|
| char* OS::SCreate(Zone* zone, const char* format, ...) {
|
| va_list args;
|
| va_start(args, format);
|
| @@ -560,7 +555,6 @@ char* OS::SCreate(Zone* zone, const char* format, ...) {
|
| return buffer;
|
| }
|
|
|
| -
|
| char* OS::VSCreate(Zone* zone, const char* format, va_list args) {
|
| // Measure.
|
| va_list measure_args;
|
| @@ -584,7 +578,6 @@ char* OS::VSCreate(Zone* zone, const char* format, va_list args) {
|
| return buffer;
|
| }
|
|
|
| -
|
| bool OS::StringToInt64(const char* str, int64_t* value) {
|
| ASSERT(str != NULL && strlen(str) > 0 && value != NULL);
|
| int32_t base = 10;
|
| @@ -653,4 +646,4 @@ void OS::Exit(int code) {
|
|
|
| } // namespace dart
|
|
|
| -#endif // defined(TARGET_OS_LINUX)
|
| +#endif // defined(TARGET_OS_OPENBSD)
|
|
|