| Index: mojo/public/c/system/buffer.h
|
| diff --git a/mojo/public/c/system/buffer.h b/mojo/public/c/system/buffer.h
|
| deleted file mode 100644
|
| index 97bc340f04b1e378d5faaadf874cc1352651545b..0000000000000000000000000000000000000000
|
| --- a/mojo/public/c/system/buffer.h
|
| +++ /dev/null
|
| @@ -1,186 +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.
|
| -
|
| -// This file contains types/constants and functions specific to buffers (and in
|
| -// particular shared buffers).
|
| -// TODO(vtl): Reorganize this file (etc.) to separate general buffer functions
|
| -// from (shared) buffer creation.
|
| -//
|
| -// Note: This header should be compilable as C.
|
| -
|
| -#ifndef MOJO_PUBLIC_C_SYSTEM_BUFFER_H_
|
| -#define MOJO_PUBLIC_C_SYSTEM_BUFFER_H_
|
| -
|
| -#include "mojo/public/c/system/macros.h"
|
| -#include "mojo/public/c/system/system_export.h"
|
| -#include "mojo/public/c/system/types.h"
|
| -
|
| -// |MojoCreateSharedBufferOptions|: Used to specify creation parameters for a
|
| -// shared buffer to |MojoCreateSharedBuffer()|.
|
| -// |uint32_t struct_size|: Set to the size of the
|
| -// |MojoCreateSharedBufferOptions| struct. (Used to allow for future
|
| -// extensions.)
|
| -// |MojoCreateSharedBufferOptionsFlags flags|: Reserved for future use.
|
| -// |MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE|: No flags; default mode.
|
| -//
|
| -// TODO(vtl): Maybe add a flag to indicate whether the memory should be
|
| -// executable or not?
|
| -// TODO(vtl): Also a flag for discardable (ashmem-style) buffers.
|
| -
|
| -typedef uint32_t MojoCreateSharedBufferOptionsFlags;
|
| -
|
| -#ifdef __cplusplus
|
| -const MojoCreateSharedBufferOptionsFlags
|
| - MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE = 0;
|
| -#else
|
| -#define MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE \
|
| - ((MojoCreateSharedBufferOptionsFlags)0)
|
| -#endif
|
| -
|
| -MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
|
| -struct MOJO_ALIGNAS(8) MojoCreateSharedBufferOptions {
|
| - uint32_t struct_size;
|
| - MojoCreateSharedBufferOptionsFlags flags;
|
| -};
|
| -MOJO_STATIC_ASSERT(sizeof(MojoCreateSharedBufferOptions) == 8,
|
| - "MojoCreateSharedBufferOptions has wrong size");
|
| -
|
| -// |MojoDuplicateBufferHandleOptions|: Used to specify parameters in duplicating
|
| -// access to a shared buffer to |MojoDuplicateBufferHandle()|.
|
| -// |uint32_t struct_size|: Set to the size of the
|
| -// |MojoDuplicateBufferHandleOptions| struct. (Used to allow for future
|
| -// extensions.)
|
| -// |MojoDuplicateBufferHandleOptionsFlags flags|: Reserved for future use.
|
| -// |MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE|: No flags; default
|
| -// mode.
|
| -//
|
| -// TODO(vtl): Add flags to remove writability (and executability)? Also, COW?
|
| -
|
| -typedef uint32_t MojoDuplicateBufferHandleOptionsFlags;
|
| -
|
| -#ifdef __cplusplus
|
| -const MojoDuplicateBufferHandleOptionsFlags
|
| - MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE = 0;
|
| -#else
|
| -#define MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE \
|
| - ((MojoDuplicateBufferHandleOptionsFlags)0)
|
| -#endif
|
| -
|
| -struct MojoDuplicateBufferHandleOptions {
|
| - uint32_t struct_size;
|
| - MojoDuplicateBufferHandleOptionsFlags flags;
|
| -};
|
| -MOJO_STATIC_ASSERT(sizeof(MojoDuplicateBufferHandleOptions) == 8,
|
| - "MojoDuplicateBufferHandleOptions has wrong size");
|
| -
|
| -// |MojoMapBufferFlags|: Used to specify different modes to |MojoMapBuffer()|.
|
| -// |MOJO_MAP_BUFFER_FLAG_NONE| - No flags; default mode.
|
| -
|
| -typedef uint32_t MojoMapBufferFlags;
|
| -
|
| -#ifdef __cplusplus
|
| -const MojoMapBufferFlags MOJO_MAP_BUFFER_FLAG_NONE = 0;
|
| -#else
|
| -#define MOJO_MAP_BUFFER_FLAG_NONE ((MojoMapBufferFlags)0)
|
| -#endif
|
| -
|
| -#ifdef __cplusplus
|
| -extern "C" {
|
| -#endif
|
| -
|
| -// Note: See the comment in functions.h about the meaning of the "optional"
|
| -// label for pointer parameters.
|
| -
|
| -// Creates a buffer of size |num_bytes| bytes that can be shared between
|
| -// applications (by duplicating the handle -- see |MojoDuplicateBufferHandle()|
|
| -// -- and passing it over a message pipe). To access the buffer, one must call
|
| -// |MojoMapBuffer()|.
|
| -//
|
| -// |options| may be set to null for a shared buffer with the default options.
|
| -//
|
| -// On success, |*shared_buffer_handle| will be set to the handle for the shared
|
| -// buffer. (On failure, it is not modified.)
|
| -//
|
| -// Note: While more than |num_bytes| bytes may apparently be
|
| -// available/visible/readable/writable, trying to use those extra bytes is
|
| -// undefined behavior.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| on success.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid (e.g.,
|
| -// |*options| is invalid).
|
| -// |MOJO_RESULT_RESOURCE_EXHAUSTED| if a process/system/quota/etc. limit has
|
| -// been reached (e.g., if the requested size was too large, or if the
|
| -// maximum number of handles was exceeded).
|
| -// |MOJO_RESULT_UNIMPLEMENTED| if an unsupported flag was set in |*options|.
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoCreateSharedBuffer(
|
| - const struct MojoCreateSharedBufferOptions* options, // Optional.
|
| - uint64_t num_bytes, // In.
|
| - MojoHandle* shared_buffer_handle); // Out.
|
| -
|
| -// Duplicates the handle |buffer_handle| to a buffer. This creates another
|
| -// handle (returned in |*new_buffer_handle| on success), which can then be sent
|
| -// to another application over a message pipe, while retaining access to the
|
| -// |buffer_handle| (and any mappings that it may have).
|
| -//
|
| -// |options| may be set to null to duplicate the buffer handle with the default
|
| -// options.
|
| -//
|
| -// On success, |*shared_buffer_handle| will be set to the handle for the new
|
| -// buffer handle. (On failure, it is not modified.)
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| on success.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid (e.g.,
|
| -// |buffer_handle| is not a valid buffer handle or |*options| is invalid).
|
| -// |MOJO_RESULT_UNIMPLEMENTED| if an unsupported flag was set in |*options|.
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoDuplicateBufferHandle(
|
| - MojoHandle buffer_handle,
|
| - const struct MojoDuplicateBufferHandleOptions* options, // Optional.
|
| - MojoHandle* new_buffer_handle); // Out.
|
| -
|
| -// Maps the part (at offset |offset| of length |num_bytes|) of the buffer given
|
| -// by |buffer_handle| into memory, with options specified by |flags|. |offset +
|
| -// num_bytes| must be less than or equal to the size of the buffer. On success,
|
| -// |*buffer| points to memory with the requested part of the buffer. (On
|
| -// failure, it is not modified.)
|
| -//
|
| -// A single buffer handle may have multiple active mappings (possibly depending
|
| -// on the buffer type). The permissions (e.g., writable or executable) of the
|
| -// returned memory may depend on the properties of the buffer and properties
|
| -// attached to the buffer handle as well as |flags|.
|
| -//
|
| -// Note: Though data outside the specified range may apparently be
|
| -// available/visible/readable/writable, trying to use those extra bytes is
|
| -// undefined behavior.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| on success.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if some argument was invalid (e.g.,
|
| -// |buffer_handle| is not a valid buffer handle or the range specified by
|
| -// |offset| and |num_bytes| is not valid).
|
| -// |MOJO_RESULT_RESOURCE_EXHAUSTED| if the mapping operation itself failed
|
| -// (e.g., due to not having appropriate address space available).
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoMapBuffer(MojoHandle buffer_handle,
|
| - uint64_t offset,
|
| - uint64_t num_bytes,
|
| - void** buffer, // Out.
|
| - MojoMapBufferFlags flags);
|
| -
|
| -// Unmaps a buffer pointer that was mapped by |MojoMapBuffer()|. |buffer| must
|
| -// have been the result of |MojoMapBuffer()| (not some pointer strictly inside
|
| -// the mapped memory), and the entire mapping will be removed (partial unmapping
|
| -// is not supported). A mapping may only be unmapped exactly once.
|
| -//
|
| -// Returns:
|
| -// |MOJO_RESULT_OK| on success.
|
| -// |MOJO_RESULT_INVALID_ARGUMENT| if |buffer| is invalid (e.g., is not the
|
| -// result of |MojoMapBuffer()| or has already been unmapped).
|
| -MOJO_SYSTEM_EXPORT MojoResult MojoUnmapBuffer(void* buffer); // In.
|
| -
|
| -#ifdef __cplusplus
|
| -} // extern "C"
|
| -#endif
|
| -
|
| -#endif // MOJO_PUBLIC_C_SYSTEM_BUFFER_H_
|
|
|