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) |