Index: third_party/mojo/src/mojo/public/go/system/system.go |
diff --git a/third_party/mojo/src/mojo/public/go/system/system.go b/third_party/mojo/src/mojo/public/go/system/system.go |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e556268d7f57a4b6adf54441140e4fd29b8d8f16 |
--- /dev/null |
+++ b/third_party/mojo/src/mojo/public/go/system/system.go |
@@ -0,0 +1,46 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package system |
+ |
+// This interface wraps the "raw" mojo system entry points. This has no |
+// dependencies on other types in this package so it can be implemented |
+// by code that doesn't depend on this package. |
+type MojoSystem interface { |
+ // Shared buffer |
+ CreateSharedBuffer(flags uint32, numBytes uint64) (result int32, handle uint32) |
+ DuplicateBufferHandle(handle uint32, flags uint32) (result int32, dupHandle uint32) |
+ // After a successful MapBuffer call, the caller must pass the same slice value to UnmapBuffer to release |
+ // the underlying memory segment. |
+ MapBuffer(handle uint32, offset, numBytes uint64, flags uint32) (result int32, buf []byte) |
+ UnmapBuffer(buf []byte) (result int32) |
+ |
+ // Data pipe |
+ CreateDataPipe(flags, elementNumBytes, capacityNumBytes uint32) (result int32, producerHandle, consumerHandle uint32) |
+ CreateDataPipeWithDefaultOptions() (result int32, producerHandle, consumerHandle uint32) |
+ WriteData(producerHandle uint32, buf []byte, flags uint32) (result int32, bytesWritten uint32) |
+ BeginWriteData(producerHandle uint32, numBytes uint32, flags uint32) (result int32, buf []byte) |
+ EndWriteData(producerHandle uint32, numBytesWritten uint32) (result int32) |
+ |
+ ReadData(consumerHandle, flags uint32) (result int32, buf []byte) |
+ BeginReadData(consumerHandle uint32, numBytes uint32, flags uint32) (result int32, buf []byte) |
+ EndReadData(consumerHandle uint32, numBytesRead uint32) (result int32) |
+ |
+ // Time |
+ GetTimeTicksNow() (timestamp uint64) |
+ |
+ // Close a handle |
+ Close(handle uint32) (result int32) |
+ |
+ // Waiting |
+ Wait(handle uint32, signals uint32, deadline uint64) (result int32, satisfiedSignals, satisfiableSignals uint32) |
+ WaitMany(handles []uint32, signals []uint32, deadline uint64) (result int32, index int, satisfiedSignals, satisfiableSignals []uint32) |
+ |
+ // Message pipe |
+ CreateMessagePipe(flags uint32) (result int32, handle0, handle1 uint32) |
+ WriteMessage(handle uint32, bytes []byte, handles []uint32, flags uint32) (result int32) |
+ ReadMessage(handle uint32, flags uint32) (result int32, buf []byte, handles []uint32) |
+} |
+ |
+var sysImpl MojoSystem |