11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# distutils: language = c++
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport PyBUF_CONTIG
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport PyBUF_CONTIG_RO
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport Py_buffer
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport PyBuffer_FillInfo
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport PyBuffer_Release
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.buffer cimport PyObject_GetBuffer
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom cpython.mem cimport PyMem_Malloc, PyMem_Free
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom libc.stdint cimport int32_t, int64_t, uint32_t, uint64_t, uintptr_t
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "third_party/cython/python_export.h":
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  pass
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/platform/native/system_thunks.h" nogil:
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef struct MojoSystemThunks:
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    pass
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern size_t MojoSetSystemThunks(const MojoSystemThunks* system_thunks)
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicdef extern from "mojo/public/c/system/core.h" nogil:
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  # types.h
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef int64_t MojoTimeTicks
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoHandle
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoHandle MOJO_HANDLE_INVALID
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef int32_t MojoResult
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_OK
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_CANCELLED
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_UNKNOWN
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_INVALID_ARGUMENT
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_DEADLINE_EXCEEDED
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_NOT_FOUND
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_ALREADY_EXISTS
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_PERMISSION_DENIED
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_RESOURCE_EXHAUSTED
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_FAILED_PRECONDITION
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_ABORTED
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_OUT_OF_RANGE
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_UNIMPLEMENTED
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_INTERNAL
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_UNAVAILABLE
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_DATA_LOSS
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_BUSY
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoResult MOJO_RESULT_SHOULD_WAIT
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint64_t MojoDeadline
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoDeadline MOJO_DEADLINE_INDEFINITE
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoHandleSignals
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoHandleSignals MOJO_HANDLE_SIGNAL_NONE
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoHandleSignals MOJO_HANDLE_SIGNAL_READABLE
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoHandleSignals MOJO_HANDLE_SIGNAL_WRITABLE
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  # functions.h
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoTimeTicks MojoGetTimeTicksNow()
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoClose(MojoHandle handle)
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoWait(MojoHandle handle,
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                      MojoHandleSignals signals,
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                      MojoDeadline deadline)
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoWaitMany(const MojoHandle* handles,
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                          const MojoHandleSignals* signals,
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                          uint32_t num_handles,
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                          MojoDeadline deadline)
701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  # message_pipe.h
721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoCreateMessagePipeOptionsFlags
731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoCreateMessagePipeOptionsFlags MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE
741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoWriteMessageFlags
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoWriteMessageFlags MOJO_WRITE_MESSAGE_FLAG_NONE
771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoReadMessageFlags
791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadMessageFlags MOJO_READ_MESSAGE_FLAG_NONE
801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadMessageFlags MOJO_READ_MESSAGE_FLAG_MAY_DISCARD
811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef struct MojoCreateMessagePipeOptions:
831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t struct_size
841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MojoCreateMessagePipeOptionsFlags flags
851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoCreateMessagePipe(
871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const MojoCreateMessagePipeOptions* options,
881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* message_pipe_handle0,
891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* message_pipe_handle1)
901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoWriteMessage(
921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle message_pipe_handle,
931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const void* bytes,
941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t num_bytes,
951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const MojoHandle* handles,
961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t num_handles,
971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoWriteMessageFlags flags)
981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoReadMessage(
1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle message_pipe_handle,
1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      void* bytes,
1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* num_bytes,
1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* handles,
1041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* num_handles,
1051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoReadMessageFlags flags)
1061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  # data_pipe.h
1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoCreateDataPipeOptionsFlags
1091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoCreateDataPipeOptionsFlags MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE
1101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoCreateDataPipeOptionsFlags MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_MAY_DISCARD
1111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef struct MojoCreateDataPipeOptions:
1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t struct_size
1141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MojoCreateDataPipeOptionsFlags flags
1151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t element_num_bytes
1161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t capacity_num_bytes
1171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoWriteDataFlags
1191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoWriteDataFlags MOJO_WRITE_DATA_FLAG_NONE
1211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoWriteDataFlags MOJO_WRITE_DATA_FLAG_ALL_OR_NONE
1221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoReadDataFlags
1241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadDataFlags MOJO_READ_DATA_FLAG_NONE
1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadDataFlags MOJO_READ_DATA_FLAG_ALL_OR_NONE
1271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadDataFlags MOJO_READ_DATA_FLAG_DISCARD
1281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoReadDataFlags MOJO_READ_DATA_FLAG_QUERY
1291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoCreateDataPipe(
1311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const MojoCreateDataPipeOptions* options,
1321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* data_pipe_producer_handle,
1331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* data_pipe_consumer_handle)
1341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoWriteData(
1361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_producer_handle,
1371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const void* elements,
1381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* num_bytes,
1391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoWriteDataFlags flags)
1401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoBeginWriteData(
1421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_producer_handle,
1431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      void** buffer,
1441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* buffer_num_bytes,
1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoWriteDataFlags flags)
1461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoEndWriteData(
1481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_producer_handle,
1491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t num_bytes_written)
1501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoReadData(
1521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_consumer_handle,
1531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      void* elements,
1541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* num_bytes,
1551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoReadDataFlags flags)
1561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoBeginReadData(
1581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_consumer_handle,
1591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const void** buffer,
1601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t* buffer_num_bytes,
1611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoReadDataFlags flags)
1621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoEndReadData(
1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle data_pipe_consumer_handle,
1651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint32_t num_bytes_read)
1661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  # buffer.h
1681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoCreateSharedBufferOptionsFlags
1691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoCreateSharedBufferOptionsFlags MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE
1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef struct MojoCreateSharedBufferOptions:
1721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t struct_size
1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MojoCreateSharedBufferOptionsFlags flags
1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoDuplicateBufferHandleOptionsFlags
1761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoDuplicateBufferHandleOptionsFlags MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE
1771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  cdef struct MojoDuplicateBufferHandleOptions:
1791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    uint32_t struct_size
1801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MojoDuplicateBufferHandleOptionsFlags flags
1811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ctypedef uint32_t MojoMapBufferFlags
1831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const MojoMapBufferFlags MOJO_MAP_BUFFER_FLAG_NONE
1841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoCreateSharedBuffer(
1861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const MojoCreateSharedBufferOptions* options,
1871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      uint64_t num_bytes,
1881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* shared_buffer_handle)
1891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoDuplicateBufferHandle(
1911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle buffer_handle,
1921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const MojoDuplicateBufferHandleOptions* options,
1931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      MojoHandle* new_buffer_handle)
1941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoMapBuffer(MojoHandle buffer_handle,
1961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           uint64_t offset,
1971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           uint64_t num_bytes,
1981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           void** buffer,
1991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                           MojoMapBufferFlags flags)
2001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
2011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MojoResult MojoUnmapBuffer(void* buffer)
202