summaryrefslogtreecommitdiffstats
path: root/mojo/public/go
diff options
context:
space:
mode:
authorblundell <blundell@chromium.org>2015-01-19 09:18:33 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-19 17:19:27 +0000
commit70fb54767b472a5edfb859e489beeeec7abdb0e4 (patch)
tree28e534ec774391a9f6571a1770e12a0d63ebf833 /mojo/public/go
parentba5f0233fa38f949e24f6274ba891fa652eab640 (diff)
downloadchromium_src-70fb54767b472a5edfb859e489beeeec7abdb0e4.zip
chromium_src-70fb54767b472a5edfb859e489beeeec7abdb0e4.tar.gz
chromium_src-70fb54767b472a5edfb859e489beeeec7abdb0e4.tar.bz2
Move //mojo/{public, edk} underneath //third_party
This CL move //mojo/public and //mojo/edk to live in the following locations: - //third_party/mojo/src/mojo/public - //third_party/mojo/src/mojo/edk It moves the related gypfiles from //mojo to //third_party/mojo and updates them as necessary to account for the file moves. It also updates clients of the mojo SDK and EDK targets in both GYP and GN. (Note that for GN, the mojo SDK and EDK build systems are maintained in the Mojo repo and designed to be flexible wrt the location of the SDK/EDK in a client repo, so no changes are needed. This CL does not update include paths to the code being moved to limit the number of moving parts, instead relying on the include_dirs that the SDK and EDK targets supply to their direct dependents to ensure that include paths continue to resolve correctly. NOPRESUBMIT=true Review URL: https://codereview.chromium.org/814543006 Cr-Commit-Position: refs/heads/master@{#312129}
Diffstat (limited to 'mojo/public/go')
-rw-r--r--mojo/public/go/system/core.go88
-rw-r--r--mojo/public/go/system/impl/core_impl.go129
-rw-r--r--mojo/public/go/system/impl/mojo_types.go241
3 files changed, 0 insertions, 458 deletions
diff --git a/mojo/public/go/system/core.go b/mojo/public/go/system/core.go
deleted file mode 100644
index ff6ffc1..0000000
--- a/mojo/public/go/system/core.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2014 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
-
-import (
- "unsafe"
-
- t "mojo/public/go/system/impl"
-)
-
-// Core is an interface that defines the set of Mojo system APIs.
-type Core interface {
- // GetTimeTicksNow returns a monotonically increasing platform
- // dependent tick count representing "right now". Resolution
- // depends on the system configuration.
- GetTimeTicksNow() t.MojoTimeTicks
-
- // Close closes the given handle.
- Close(handle t.MojoHandle) (result t.MojoResult)
-
- // Wait waits on the given handle until a signal indicated by signals
- // is satisfied or it becomes known that no signal indicated by
- // signals will ever be satisfied or until deadline has passed.
- // Notes about return values:
- // |state| can be nil if the signal array could not be returned. This can
- // happen with errors such as MOJO_RESULT_INVALID_ARGUMENT.
- Wait(handle t.MojoHandle, signal t.MojoHandleSignals, deadline t.MojoDeadline) (result t.MojoResult, state *t.MojoHandleSignalsState)
-
- // WaitMany behaves as if Wait were called on each handle/signal pair
- // simultaneously and completing when the first Wait would complete.
- // Notes about return values:
- // |index| can be nil if the error returned was not caused by a
- // particular handle. For example, the error MOJO_RESULT_DEADLINE_EXCEEDED
- // is not related to a particular handle.
- // |state| can be nil if the signal array could not be returned. This can
- // happen with errors such as MOJO_RESULT_INVALID_ARGUMENT.
- WaitMany(handles []t.MojoHandle, signals []t.MojoHandleSignals, deadline t.MojoDeadline) (result t.MojoResult, index *uint32, state []t.MojoHandleSignalsState)
-
- // CreateMessagePipe creates a message pipe which is a bidirectional
- // communication channel for framed data (i.e., messages). Messages
- // can contain plain data and/or Mojo handles. On success, it returns
- // handles to the two endpoints of the message pipe.
- CreateMessagePipe(opts *t.MessagePipeOptions) (result t.MojoResult, handle0 t.MojoHandle, handle1 t.MojoHandle)
-
- // WriteMessage writes message data and optional attached handles to
- // the message pipe endpoint given by handle. On success the attached
- // handles will no longer be valid (ie: the receiver will receive
- // equivalent but logically different handles).
- WriteMessage(handle t.MojoHandle, msg []byte, attached []t.MojoHandle, flags t.MojoWriteMessageFlags) (result t.MojoResult)
-
- // ReadMessage reads a message from the message pipe endpoint given
- // by handle with the specified flags. Returns the message data and
- // attached handles that were received and the number of bytes and
- // attached handles in the "next" message.
- ReadMessage(handle t.MojoHandle, flags t.MojoReadMessageFlags) (result t.MojoResult, msg []byte, attached []t.MojoHandle, numBytes uint32, numHandles uint32)
-
- // CreateDataPipe creates a data pipe which is a unidirectional
- // communication channel for unframed data. On success, returns a
- // handle to the producer and consumer of the data pipe.
- CreateDataPipe(opts *t.DataPipeOptions) (result t.MojoResult, producer t.MojoHandle, consumer t.MojoHandle)
-
- // WriteData writes data to the data pipe producer handle with the
- // given flags. On success, returns the number of bytes that were
- // actually written.
- WriteData(producer t.MojoHandle, data []byte, flags t.MojoWriteDataFlags) (result t.MojoResult, numBytes uint32)
-
- // ReadData reads data from the data pipe consumer handle with the
- // given flags. On success, returns the data that was read.
- ReadData(consumer t.MojoHandle, flags t.MojoReadDataFlags) (result t.MojoResult, data []byte)
-
- // CreateSharedBuffer creates a buffer of size numBytes that can be
- // shared between applications. One must call MapBuffer to access
- // the buffer.
- CreateSharedBuffer(opts *t.SharedBufferOptions, numBytes uint64) (result t.MojoResult, handle t.MojoHandle)
-
- // DuplicateBufferHandle duplicates the handle to a buffer.
- DuplicateBufferHandle(handle t.MojoHandle, opts *t.DuplicateBufferHandleOptions) (result t.MojoResult, duplicate t.MojoHandle)
-
- // MapBuffer maps the requested part of the shared buffer given by
- // handle into memory with specified flags. On success, it returns
- // a pointer to the requested shared buffer.
- MapBuffer(handle t.MojoHandle, offset uint64, numBytes uint64, flags t.MojoMapBufferFlags) (result t.MojoResult, buffer unsafe.Pointer)
-
- // UnmapBuffer unmaps a buffer pointer that was returned by MapBuffer.
- UnmapBuffer(buffer unsafe.Pointer) (result t.MojoResult)
-}
diff --git a/mojo/public/go/system/impl/core_impl.go b/mojo/public/go/system/impl/core_impl.go
deleted file mode 100644
index 2cce24f..0000000
--- a/mojo/public/go/system/impl/core_impl.go
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2014 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 impl
-
-//#include "mojo/public/platform/native/system_thunks.h"
-//#include "mojo/public/c/system/main.h"
-import "C"
-import "unsafe"
-
-var core *CoreImpl
-
-func init() {
- core = &CoreImpl{}
-}
-
-// CoreImpl is an implementation of the Mojo system APIs.
-type CoreImpl struct {
-}
-
-func GetCore() *CoreImpl {
- return core
-}
-
-func (c *CoreImpl) GetTimeTicksNow() MojoTimeTicks {
- return (MojoTimeTicks)(C.MojoGetTimeTicksNow())
-}
-
-func (c *CoreImpl) Close(handle MojoHandle) MojoResult {
- return (MojoResult)(C.MojoClose(handle.cType()))
-}
-
-func (c *CoreImpl) Wait(handle MojoHandle, signal MojoHandleSignals, deadline MojoDeadline) (MojoResult, *MojoHandleSignalsState) {
- var signal_states C.struct_MojoHandleSignalsState
- result := C.MojoNewWait(handle.cType(), signal.cType(), deadline.cType(), &signal_states)
- return MojoResult(result), &MojoHandleSignalsState{MojoHandleSignals(signal_states.satisfied_signals), MojoHandleSignals(signal_states.satisfiable_signals)}
-}
-
-func (c *CoreImpl) WaitMany(handles []MojoHandle, signals []MojoHandleSignals, deadline MojoDeadline) (result MojoResult, index *uint32, state []MojoHandleSignalsState) {
- // Set "-1" using the instructions from http://blog.golang.org/constants
- cindex := ^C.uint32_t(0)
- cstate := make([]C.struct_MojoHandleSignalsState, len(handles))
-
- result = (MojoResult)(C.MojoNewWaitMany(cArrayMojoHandle(handles), cArrayMojoHandleSignals(signals), (C.uint32_t)(len(handles)), deadline.cType(), &cindex, &cstate[0]))
-
- if uint32(cindex) < uint32(len(handles)) {
- temp := uint32(cindex)
- index = &temp
- }
-
- if result != MOJO_RESULT_INVALID_ARGUMENT && result != MOJO_RESULT_RESOURCE_EXHAUSTED {
- state = make([]MojoHandleSignalsState, len(cstate))
- for i, value := range cstate {
- state[i] = NewMojoHandleSignalsState(value)
- }
- }
-
- return
-}
-
-func (c *CoreImpl) CreateMessagePipe(opts *MessagePipeOptions) (MojoResult, MojoHandle, MojoHandle) {
- var handle0, handle1 C.MojoHandle
- result := C.MojoCreateMessagePipe(opts.cType(), &handle0, &handle1)
- return (MojoResult)(result), (MojoHandle)(handle0), (MojoHandle)(handle1)
-}
-
-func (c *CoreImpl) WriteMessage(handle MojoHandle, msg []byte, attached []MojoHandle, flags MojoWriteMessageFlags) MojoResult {
- return (MojoResult)(C.MojoWriteMessage(handle.cType(), cArrayBytes(msg), (C.uint32_t)(len(msg)), cArrayMojoHandle(attached), (C.uint32_t)(len(attached)), flags.cType()))
-}
-
-func (c *CoreImpl) ReadMessage(handle MojoHandle, flags MojoReadMessageFlags) (MojoResult, []byte, []MojoHandle, uint32, uint32) {
- var num_bytes, num_handles C.uint32_t
- if result := C.MojoReadMessage(handle.cType(), nil, &num_bytes, nil, &num_handles, flags.cType()); result != C.MOJO_RESULT_RESOURCE_EXHAUSTED {
- return (MojoResult)(result), nil, nil, 0, 0
- }
- msg := make([]byte, (uint32)(num_bytes))
- attached := make([]MojoHandle, (uint32)(num_handles))
- result := C.MojoReadMessage(handle.cType(), cArrayBytes(msg), &num_bytes, cArrayMojoHandle(attached), &num_handles, (C.MojoReadMessageFlags)(flags))
- return (MojoResult)(result), msg, attached, (uint32)(num_bytes), (uint32)(num_handles)
-}
-
-func (c *CoreImpl) CreateDataPipe(opts *DataPipeOptions) (MojoResult, MojoHandle, MojoHandle) {
- var producer, consumer C.MojoHandle
- result := C.MojoCreateDataPipe(opts.cType(), &producer, &consumer)
- return (MojoResult)(result), (MojoHandle)(producer), (MojoHandle)(consumer)
-}
-
-func (c *CoreImpl) WriteData(producer MojoHandle, data []byte, flags MojoWriteDataFlags) (MojoResult, uint32) {
- num_bytes := (C.uint32_t)(len(data))
- result := C.MojoWriteData(producer.cType(), cArrayBytes(data), &num_bytes, flags.cType())
- return (MojoResult)(result), (uint32)(num_bytes)
-}
-
-func (c *CoreImpl) ReadData(consumer MojoHandle, flags MojoReadDataFlags) (MojoResult, []byte) {
- var num_bytes C.uint32_t
- var result C.MojoResult
- if result = C.MojoReadData(consumer.cType(), nil, &num_bytes, C.MOJO_READ_DATA_FLAG_QUERY); result != C.MOJO_RESULT_OK {
- return (MojoResult)(result), nil
- }
- data := make([]byte, (uint32)(num_bytes))
- result = C.MojoReadData(consumer.cType(), cArrayBytes(data), &num_bytes, flags.cType())
- return (MojoResult)(result), data
-}
-
-func (c *CoreImpl) CreateSharedBuffer(opts *SharedBufferOptions, numBytes uint64) (MojoResult, MojoHandle) {
- var handle C.MojoHandle
- result := C.MojoCreateSharedBuffer(opts.cType(), (C.uint64_t)(numBytes), &handle)
- return (MojoResult)(result), (MojoHandle)(handle)
-}
-
-func (c *CoreImpl) DuplicateBufferHandle(handle MojoHandle, opts *DuplicateBufferHandleOptions) (MojoResult, MojoHandle) {
- var duplicate C.MojoHandle
- result := C.MojoDuplicateBufferHandle(handle.cType(), opts.cType(), &duplicate)
- return (MojoResult)(result), (MojoHandle)(duplicate)
-}
-
-func (c *CoreImpl) MapBuffer(handle MojoHandle, offset uint64, numBytes uint64, flags MojoMapBufferFlags) (MojoResult, unsafe.Pointer) {
- var bufPtr unsafe.Pointer
- result := C.MojoMapBuffer(handle.cType(), (C.uint64_t)(offset), (C.uint64_t)(numBytes), &bufPtr, flags.cType())
- if result != C.MOJO_RESULT_OK {
- return (MojoResult)(result), nil
- }
- return MOJO_RESULT_OK, bufPtr
-}
-
-func (c *CoreImpl) UnmapBuffer(buffer unsafe.Pointer) MojoResult {
- return (MojoResult)(C.MojoUnmapBuffer(buffer))
-}
diff --git a/mojo/public/go/system/impl/mojo_types.go b/mojo/public/go/system/impl/mojo_types.go
deleted file mode 100644
index 0218a33..0000000
--- a/mojo/public/go/system/impl/mojo_types.go
+++ /dev/null
@@ -1,241 +0,0 @@
-// Copyright 2014 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 impl
-
-//#include "mojo/public/platform/native/system_thunks.h"
-//#include "mojo/public/c/system/main.h"
-import "C"
-import (
- "math"
- "unsafe"
-)
-
-// Go equivalent definitions of the various system types defined in Mojo.
-// mojo/public/c/system/types.h
-// mojo/public/c/system/data_pipe.h
-// mojo/public/c/system/message_pipe.h
-//
-type MojoTimeTicks int64
-type MojoHandle uint32
-type MojoResult int32
-type MojoDeadline uint64
-type MojoHandleSignals uint32
-type MojoWriteMessageFlags uint32
-type MojoReadMessageFlags uint32
-type MojoWriteDataFlags uint32
-type MojoReadDataFlags uint32
-type MojoCreateDataPipeOptionsFlags uint32
-type MojoCreateMessagePipeOptionsFlags uint32
-type MojoCreateSharedBufferOptionsFlags uint32
-type MojoDuplicateBufferHandleOptionsFlags uint32
-type MojoMapBufferFlags uint32
-
-const (
- MOJO_DEADLINE_INDEFINITE MojoDeadline = math.MaxUint64
- MOJO_HANDLE_INVALID MojoHandle = 0
- MOJO_RESULT_OK MojoResult = 0
- MOJO_RESULT_CANCELLED = -1
- MOJO_RESULT_UNKNOWN = -2
- MOJO_RESULT_INVALID_ARGUMENT = -3
- MOJO_RESULT_DEADLINE_EXCEEDED = -4
- MOJO_RESULT_NOT_FOUND = -5
- MOJO_RESULT_ALREADY_EXISTS = -6
- MOJO_RESULT_PERMISSION_DENIED = -7
- MOJO_RESULT_RESOURCE_EXHAUSTED = -8
- MOJO_RESULT_FAILED_PRECONDITION = -9
- MOJO_RESULT_ABORTED = -10
- MOJO_RESULT_OUT_OF_RANGE = -11
- MOJO_RESULT_UNIMPLEMENTED = -12
- MOJO_RESULT_INTERNAL = -13
- MOJO_RESULT_UNAVAILABLE = -14
- MOJO_RESULT_DATA_LOSS = -15
- MOJO_RESULT_BUSY = -16
- MOJO_RESULT_SHOULD_WAIT = -17
-
- MOJO_HANDLE_SIGNAL_NONE MojoHandleSignals = 0
- MOJO_HANDLE_SIGNAL_READABLE = 1 << 0
- MOJO_HANDLE_SIGNAL_WRITABLE = 1 << 1
- MOJO_HANDLE_SIGNAL_PEER_CLOSED = 1 << 2
-
- MOJO_WRITE_MESSAGE_FLAG_NONE MojoWriteMessageFlags = 0
- MOJO_READ_MESSAGE_FLAG_NONE MojoReadMessageFlags = 0
- MOJO_READ_MESSAGE_FLAG_MAY_DISCARD = 1 << 0
-
- MOJO_READ_DATA_FLAG_NONE MojoReadDataFlags = 0
- MOJO_READ_DATA_FLAG_ALL_OR_NONE = 1 << 0
- MOJO_READ_DATA_FLAG_DISCARD = 1 << 1
- MOJO_READ_DATA_FLAG_QUERY = 1 << 2
- MOJO_READ_DATA_FLAG_PEEK = 1 << 3
- MOJO_WRITE_DATA_FLAG_NONE MojoWriteDataFlags = 0
- MOJO_WRITE_DATA_FLAG_ALL_OR_NONE MojoWriteDataFlags = 1 << 0
-
- MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE MojoCreateDataPipeOptionsFlags = 0
- MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_MAY_DISCARD = 1 << 0
- MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE MojoCreateMessagePipeOptionsFlags = 0
-
- MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE MojoCreateSharedBufferOptionsFlags = 0
- MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE MojoDuplicateBufferHandleOptionsFlags = 0
- MOJO_MAP_BUFFER_FLAG_NONE MojoMapBufferFlags = 0
-)
-
-// DataPipeOptions is used to specify creation parameters for a data pipe.
-type DataPipeOptions struct {
- flags MojoCreateDataPipeOptionsFlags
- // The size of an element in bytes. All transactions and buffers will
- // be an integral number of elements.
- elemSize uint32
- // The capacity of the data pipe in bytes. Must be a multiple of elemSize.
- capacity uint32
-}
-
-type MojoHandleSignalsState struct {
- SatisfiedSignals MojoHandleSignals
- SatisfiableSignals MojoHandleSignals
-}
-
-func NewMojoHandleSignalsState(cstate C.struct_MojoHandleSignalsState) MojoHandleSignalsState {
- return MojoHandleSignalsState{
- MojoHandleSignals(cstate.satisfied_signals),
- MojoHandleSignals(cstate.satisfiable_signals),
- }
-}
-
-func (opts *DataPipeOptions) cType() *C.struct_MojoCreateDataPipeOptions {
- if opts == nil {
- return nil
- }
- var cOpts C.struct_MojoCreateDataPipeOptions
- cOpts = C.struct_MojoCreateDataPipeOptions{
- (C.uint32_t)(unsafe.Sizeof(cOpts)),
- opts.flags.cType(),
- (C.uint32_t)(opts.elemSize),
- (C.uint32_t)(opts.capacity),
- }
- return &cOpts
-}
-
-// MessagePipeOptions is used to specify creation parameters for a message pipe.
-type MessagePipeOptions struct {
- flags MojoCreateMessagePipeOptionsFlags
-}
-
-func (opts *MessagePipeOptions) cType() *C.struct_MojoCreateMessagePipeOptions {
- if opts == nil {
- return nil
- }
- var cOpts C.struct_MojoCreateMessagePipeOptions
- cOpts = C.struct_MojoCreateMessagePipeOptions{
- (C.uint32_t)(unsafe.Sizeof(cOpts)),
- opts.flags.cType(),
- }
- return &cOpts
-}
-
-// SharedBufferOptions is used to specify creation parameters for a
-// shared buffer.
-type SharedBufferOptions struct {
- flags MojoCreateSharedBufferOptionsFlags
-}
-
-func (opts *SharedBufferOptions) cType() *C.struct_MojoCreateSharedBufferOptions {
- if opts == nil {
- return nil
- }
- var cOpts C.struct_MojoCreateSharedBufferOptions
- cOpts = C.struct_MojoCreateSharedBufferOptions{
- (C.uint32_t)(unsafe.Sizeof(cOpts)),
- opts.flags.cType(),
- }
- return &cOpts
-}
-
-// DuplicateBufferHandleOptions is used to specify parameters in
-// duplicating access to a shared buffer.
-type DuplicateBufferHandleOptions struct {
- flags MojoDuplicateBufferHandleOptionsFlags
-}
-
-func (opts *DuplicateBufferHandleOptions) cType() *C.struct_MojoDuplicateBufferHandleOptions {
- if opts == nil {
- return nil
- }
- var cOpts C.struct_MojoDuplicateBufferHandleOptions
- cOpts = C.struct_MojoDuplicateBufferHandleOptions{
- (C.uint32_t)(unsafe.Sizeof(cOpts)),
- opts.flags.cType(),
- }
- return &cOpts
-}
-
-func (m MojoHandleSignals) IsReadable() bool {
- return (m & MOJO_HANDLE_SIGNAL_READABLE) != 0
-}
-func (m MojoHandleSignals) IsWritable() bool {
- return (m & MOJO_HANDLE_SIGNAL_WRITABLE) != 0
-}
-func (m MojoHandleSignals) IsClosed() bool {
- return (m & MOJO_HANDLE_SIGNAL_PEER_CLOSED) != 0
-}
-
-// Convenience functions to convert Go types to their equivalent C types.
-func (m MojoHandle) cType() C.MojoHandle {
- return (C.MojoHandle)(m)
-}
-func (m MojoDeadline) cType() C.MojoDeadline {
- return (C.MojoDeadline)(m)
-}
-func (m MojoHandleSignals) cType() C.MojoHandleSignals {
- return (C.MojoHandleSignals)(m)
-}
-func (m MojoHandleSignalsState) cType() C.struct_MojoHandleSignalsState {
- return C.struct_MojoHandleSignalsState{m.SatisfiedSignals.cType(), m.SatisfiableSignals.cType()}
-}
-func (m MojoWriteMessageFlags) cType() C.MojoWriteMessageFlags {
- return (C.MojoWriteMessageFlags)(m)
-}
-func (m MojoReadMessageFlags) cType() C.MojoReadMessageFlags {
- return (C.MojoReadMessageFlags)(m)
-}
-func (m MojoWriteDataFlags) cType() C.MojoWriteDataFlags {
- return (C.MojoWriteDataFlags)(m)
-}
-func (m MojoReadDataFlags) cType() C.MojoReadDataFlags {
- return (C.MojoReadDataFlags)(m)
-}
-func (m MojoCreateDataPipeOptionsFlags) cType() C.MojoCreateDataPipeOptionsFlags {
- return (C.MojoCreateDataPipeOptionsFlags)(m)
-}
-func (m MojoCreateMessagePipeOptionsFlags) cType() C.MojoCreateMessagePipeOptionsFlags {
- return (C.MojoCreateMessagePipeOptionsFlags)(m)
-}
-func (m MojoCreateSharedBufferOptionsFlags) cType() C.MojoCreateSharedBufferOptionsFlags {
- return (C.MojoCreateSharedBufferOptionsFlags)(m)
-}
-func (m MojoDuplicateBufferHandleOptionsFlags) cType() C.MojoDuplicateBufferHandleOptionsFlags {
- return (C.MojoDuplicateBufferHandleOptionsFlags)(m)
-}
-func (m MojoMapBufferFlags) cType() C.MojoMapBufferFlags {
- return (C.MojoMapBufferFlags)(m)
-}
-
-func cArrayMojoHandle(m []MojoHandle) *C.MojoHandle {
- if len(m) == 0 {
- return nil
- }
- return (*C.MojoHandle)(&m[0])
-}
-func cArrayMojoHandleSignals(m []MojoHandleSignals) *C.MojoHandleSignals {
- if len(m) == 0 {
- return nil
- }
- return (*C.MojoHandleSignals)(&m[0])
-}
-
-func cArrayBytes(m []byte) unsafe.Pointer {
- if len(m) == 0 {
- return nil
- }
- return unsafe.Pointer(&m[0])
-}