Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: third_party/mojo/src/mojo/public/go/system/c_allocators.h

Issue 1019173002: Update mojo sdk to rev 7214b7ec7d27563b2666afad86cf1c5895c56c18 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Keep permission service alive if embedder drops requests Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « third_party/mojo/src/mojo/public/go/bindings/util.go ('k') | third_party/mojo/src/mojo/public/go/system/c_allocators.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698