Index: third_party/mojo/src/mojo/public/go/system/c_allocators.h |
diff --git a/third_party/mojo/src/mojo/public/go/system/c_allocators.h b/third_party/mojo/src/mojo/public/go/system/c_allocators.h |
deleted file mode 100644 |
index 6050507ada04d49282273f4b2416f01b1d12f320..0000000000000000000000000000000000000000 |
--- a/third_party/mojo/src/mojo/public/go/system/c_allocators.h |
+++ /dev/null |
@@ -1,136 +0,0 @@ |
-// 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. |
- |
-#ifndef MOJO_PUBLIC_GO_SYSTEM_C_ALLOCATORS_H_ |
-#define MOJO_PUBLIC_GO_SYSTEM_C_ALLOCATORS_H_ |
- |
-#include <stdint.h> |
-#include "mojo/public/c/system/core.h" |
- |
-// Used by cgo: a set of helpers to make calls from Go to C code. |
-// The reason for these helpers is that you should not pass a Go pointer to |
-// C code, because Go has a moving garbage collector and passing a pointer |
-// to object allocated in Go heap to C code can create a dangling pointer: |
-// var x C.T |
-// C.Call(&x) |
-// |
-// To solve this problem you should allocate memory from C heap, so that |
-// the pointed object will not be moved go Go GC during C function call: |
-// x := C.malloc(unsafe.Sizeof(C.T{})) |
-// defer C.free(x) |
-// C.Call((*C.T)x) |
-// |
-// So these helpers should be used to allocate and free memory in C heap. |
-// Here is a set of triples: |
-// struct FunctionParams{}; |
-// struct FunctionParams MallocFunctionParams(...); |
-// void FreeFunctionParams(struct FunctionParams p); |
-// |
-// struct FunctionParams stores all pointers required by Function call, |
-// MallocFunctionParams and FreeFunctionParams allocate and free memory |
-// respectively. Use them as: |
-// ... |
-// p := C.MallocFunctionParams(...) |
-// defer C.FreeFunctionParams(p) |
-// ... (copy data to p) |
-// |
-// Allocating and freeing memory in one call is a performance optimization, |
-// as calls from Go to C are not very cheap. |
-// |
-// TODO(rogulenko): consider allocating arrays other way to avoid allocating |
-// memory for one array two times. |
- |
-struct WaitParams { |
- struct MojoHandleSignalsState* state; |
-}; |
-struct WaitParams MallocWaitParams(); |
-void FreeWaitParams(struct WaitParams p); |
- |
-struct WaitManyParams { |
- MojoHandle* handles; |
- MojoHandleSignals* signals; |
- uint32_t* index; |
- struct MojoHandleSignalsState* states; |
-}; |
-struct WaitManyParams MallocWaitManyParams(uint32_t length); |
-void FreeWaitManyParams(struct WaitManyParams p); |
- |
-struct CreateDataPipeParams { |
- MojoHandle* producer; |
- MojoHandle* consumer; |
- struct MojoCreateDataPipeOptions* opts; |
-}; |
-struct CreateDataPipeParams MallocCreateDataPipeParams(); |
-void FreeCreateDataPipeParams(struct CreateDataPipeParams p); |
- |
-struct CreateMessagePipeParams { |
- MojoHandle* handle0; |
- MojoHandle* handle1; |
- struct MojoCreateMessagePipeOptions* opts; |
-}; |
-struct CreateMessagePipeParams MallocCreateMessagePipeParams(); |
-void FreeCreateMessagePipeParams(struct CreateMessagePipeParams p); |
- |
-struct CreateSharedBufferParams { |
- MojoHandle* handle; |
- struct MojoCreateSharedBufferOptions* opts; |
-}; |
-struct CreateSharedBufferParams MallocCreateSharedBufferParams(); |
-void FreeCreateSharedBufferParams(struct CreateSharedBufferParams p); |
- |
-struct ReadMessageParams { |
- uint32_t* num_bytes; |
- uint32_t* num_handles; |
-}; |
-struct ReadMessageParams MallocReadMessageParams(); |
-void FreeReadMessageParams(struct ReadMessageParams p); |
- |
-struct MessageArrays { |
- void* bytes; |
- MojoHandle* handles; |
-}; |
-struct MessageArrays MallocMessageArrays(uint32_t num_bytes, |
- uint32_t num_handles); |
-void FreeMessageArrays(struct MessageArrays arrays); |
- |
-struct DuplicateBufferHandleParams { |
- MojoHandle* duplicate; |
- struct MojoDuplicateBufferHandleOptions* opts; |
-}; |
-struct DuplicateBufferHandleParams MallocDuplicateBufferHandleParams(); |
-void FreeDuplicateBufferHandleParams(struct DuplicateBufferHandleParams p); |
- |
-struct MapBufferParams { |
- void** buffer; |
-}; |
-struct MapBufferParams MallocMapBufferParams(); |
-void FreeMapBufferParams(struct MapBufferParams p); |
- |
-struct ReadDataParams { |
- uint32_t* num_bytes; |
-}; |
-struct ReadDataParams MallocReadDataParams(); |
-void FreeReadDataParams(struct ReadDataParams p); |
- |
-struct DataArray { |
- void* elements; |
-}; |
-struct DataArray MallocDataArray(uint32_t length); |
-void FreeDataArray(struct DataArray array); |
- |
-struct WriteDataParams { |
- uint32_t* num_bytes; |
- void* elements; |
-}; |
-struct WriteDataParams MallocWriteDataParams(uint32_t length); |
-void FreeWriteDataParams(struct WriteDataParams p); |
- |
-struct TwoPhaseActionParams { |
- void** buffer; |
- uint32_t* num_bytes; |
-}; |
-struct TwoPhaseActionParams MallocTwoPhaseActionParams(); |
-void FreeTwoPhaseActionParams(struct TwoPhaseActionParams p); |
- |
-#endif // MOJO_PUBLIC_GO_SYSTEM_C_ALLOCATORS_H_ |