Index: runtime/vm/os_fuchsia.cc |
diff --git a/runtime/vm/os_fuchsia.cc b/runtime/vm/os_fuchsia.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..10faf1c66a977f41db125a8fd0ff83ec51fc2e32 |
--- /dev/null |
+++ b/runtime/vm/os_fuchsia.cc |
@@ -0,0 +1,223 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+#include "vm/globals.h" |
+#if defined(TARGET_OS_FUCHSIA) |
+ |
+#include "vm/os.h" |
+ |
+#include <magenta/syscalls.h> |
+#include <magenta/types.h> |
+ |
+#include "platform/assert.h" |
+ |
+namespace dart { |
+ |
+const char* OS::Name() { |
+ return "fuchsia"; |
+} |
+ |
+ |
+intptr_t OS::ProcessId() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+const char* OS::GetTimeZoneName(int64_t seconds_since_epoch) { |
+ UNIMPLEMENTED(); |
+ return ""; |
+} |
+ |
+ |
+int OS::GetTimeZoneOffsetInSeconds(int64_t seconds_since_epoch) { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int OS::GetLocalTimeZoneAdjustmentInSeconds() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int64_t OS::GetCurrentTimeMillis() { |
+ return GetCurrentTimeMicros() / 1000; |
+} |
+ |
+ |
+int64_t OS::GetCurrentTimeMicros() { |
+ return _magenta_current_time() / 1000; |
+} |
+ |
+ |
+int64_t OS::GetCurrentMonotonicTicks() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int64_t OS::GetCurrentMonotonicFrequency() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int64_t OS::GetCurrentMonotonicMicros() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int64_t OS::GetCurrentThreadCPUMicros() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+void* OS::AlignedAllocate(intptr_t size, intptr_t alignment) { |
+ UNIMPLEMENTED(); |
+ return NULL; |
+} |
+ |
+ |
+void OS::AlignedFree(void* ptr) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+// TODO(5411554): May need to hoist these architecture dependent code |
+// into a architecture specific file e.g: os_ia32_linux.cc |
+intptr_t OS::ActivationFrameAlignment() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+intptr_t OS::PreferredCodeAlignment() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+bool OS::AllowStackFrameIteratorFromAnotherThread() { |
+ UNIMPLEMENTED(); |
+ return false; |
+} |
+ |
+ |
+int OS::NumberOfAvailableProcessors() { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+void OS::Sleep(int64_t millis) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void OS::SleepMicros(int64_t micros) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void OS::DebugBreak() { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+char* OS::StrNDup(const char* s, intptr_t n) { |
+ UNIMPLEMENTED(); |
+ return NULL; |
+} |
+ |
+ |
+intptr_t OS::StrNLen(const char* s, intptr_t n) { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+void OS::Print(const char* format, ...) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void OS::VFPrint(FILE* stream, const char* format, va_list args) { |
+ vfprintf(stream, format, args); |
+ fflush(stream); |
+} |
+ |
+ |
+int OS::SNPrint(char* str, size_t size, const char* format, ...) { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+int OS::VSNPrint(char* str, size_t size, const char* format, va_list args) { |
+ UNIMPLEMENTED(); |
+ return 0; |
+} |
+ |
+ |
+char* OS::SCreate(Zone* zone, const char* format, ...) { |
+ UNIMPLEMENTED(); |
+ return NULL; |
+} |
+ |
+ |
+char* OS::VSCreate(Zone* zone, const char* format, va_list args) { |
+ UNIMPLEMENTED(); |
+ return NULL; |
+} |
+ |
+ |
+bool OS::StringToInt64(const char* str, int64_t* value) { |
+ UNIMPLEMENTED(); |
+ return false; |
+} |
+ |
+ |
+void OS::RegisterCodeObservers() { |
+ UNIMPLEMENTED(); |
+} |
+ |
+ |
+void OS::PrintErr(const char* format, ...) { |
+ va_list args; |
+ va_start(args, format); |
+ VFPrint(stderr, format, args); |
+ va_end(args); |
+} |
+ |
+ |
+void OS::InitOnce() { |
+ // TODO(5411554): For now we check that initonce is called only once, |
+ // Once there is more formal mechanism to call InitOnce we can move |
+ // this check there. |
+ static bool init_once_called = false; |
+ ASSERT(init_once_called == false); |
+ init_once_called = true; |
+} |
+ |
+ |
+void OS::Shutdown() { |
+} |
+ |
+ |
+void OS::Abort() { |
+ abort(); |
+} |
+ |
+ |
+void OS::Exit(int code) { |
+ UNIMPLEMENTED(); |
+} |
+ |
+} // namespace dart |
+ |
+#endif // defined(TARGET_OS_FUCHSIA) |