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

Unified Diff: mojo/public/c/include/mojo/system/buffer.h

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « mojo/public/c/include/mojo/result.h ('k') | mojo/public/c/include/mojo/system/data_pipe.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/c/include/mojo/system/buffer.h
diff --git a/mojo/public/c/include/mojo/system/buffer.h b/mojo/public/c/include/mojo/system/buffer.h
deleted file mode 100644
index 7c9ea43f1cd7605ab93e46ec00fb02a335753a17..0000000000000000000000000000000000000000
--- a/mojo/public/c/include/mojo/system/buffer.h
+++ /dev/null
@@ -1,236 +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_INCLUDE_MOJO_SYSTEM_BUFFER_H_
-#define MOJO_PUBLIC_C_INCLUDE_MOJO_SYSTEM_BUFFER_H_
-
-#include <mojo/macros.h>
-#include <mojo/result.h>
-#include <mojo/system/handle.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;
-
-#define MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE \
- ((MojoCreateSharedBufferOptionsFlags)0)
-
-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(struct MojoCreateSharedBufferOptions) == 8,
- "MojoCreateSharedBufferOptions has wrong size");
-
-// |MojoDuplicateBufferHandleOptions|: Used to specify parameters in duplicating
-// access to a 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;
-
-#define MOJO_DUPLICATE_BUFFER_HANDLE_OPTIONS_FLAG_NONE \
- ((MojoDuplicateBufferHandleOptionsFlags)0)
-
-struct MOJO_ALIGNAS(8) MojoDuplicateBufferHandleOptions {
- uint32_t struct_size;
- MojoDuplicateBufferHandleOptionsFlags flags;
-};
-MOJO_STATIC_ASSERT(sizeof(struct MojoDuplicateBufferHandleOptions) == 8,
- "MojoDuplicateBufferHandleOptions has wrong size");
-
-// |MojoBufferInformation|: Used to provide information about a buffer (see
-// |MojoGetBufferInformation()|.
-// |uint32_t struct_size|: Set to the size of the |MojoBufferInformation|
-// struct. (Used to allow for future extensions.)
-// |MojoBufferInformationFlags flags|: Reserved for future use.
-// |uint64_t num_bytes|: Size of the buffer.
-//
-// TODO(vtl): Add flags to indicate writability, etc.? Also, type of buffer?
-
-typedef uint32_t MojoBufferInformationFlags;
-
-#define MOJO_BUFFER_INFORMATION_FLAG_NONE ((MojoBufferInformationFlags)0)
-
-struct MOJO_ALIGNAS(8) MojoBufferInformation {
- uint32_t struct_size;
- MojoBufferInformationFlags flags;
- uint64_t num_bytes;
-};
-MOJO_STATIC_ASSERT(sizeof(struct MojoBufferInformation) == 16,
- "MojoBufferInformation has wrong size");
-
-// |MojoMapBufferFlags|: Used to specify different modes to |MojoMapBuffer()|.
-// |MOJO_MAP_BUFFER_FLAG_NONE| - No flags; default mode.
-
-typedef uint32_t MojoMapBufferFlags;
-
-#define MOJO_MAP_BUFFER_FLAG_NONE ((MojoMapBufferFlags)0)
-
-MOJO_BEGIN_EXTERN_C
-
-// |MojoCreateSharedBuffer()|: 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.) The handle has (at least) the
-// following rights: |MOJO_HANDLE_RIGHT_DUPLICATE|,
-// |MOJO_HANDLE_RIGHT_TRANSFER|, |MOJO_HANDLE_RIGHT_GET_OPTIONS|,
-// |MOJO_HANDLE_RIGHT_SET_OPTIONS|, |MOJO_HANDLE_RIGHT_MAP_READABLE|,
-// |MOJO_HANDLE_RIGHT_MAP_WRITABLE|, and |MOJO_HANDLE_RIGHT_MAP_EXECUTABLE|.
-//
-// 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|.
-MojoResult MojoCreateSharedBuffer(
- const struct MojoCreateSharedBufferOptions* MOJO_RESTRICT
- options, // Optional in.
- uint64_t num_bytes, // In.
- MojoHandle* MOJO_RESTRICT shared_buffer_handle); // Out.
-
-// DEPRECATED: Use |MojoDuplicateHandle[WithReducedRights]()| instead.
-// TODO(vtl): Remove this function.
-//
-// |MojoDuplicateBufferHandle()|: Duplicates the handle |buffer_handle| (which
-// must have the |MOJO_HANDLE_RIGHT_DUPLICATE| right) 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_PERMISSION_DENIED| if |buffer_handle| does not have the
-// |MOJO_HANDLE_RIGHT_DUPLICATE| right.
-// |MOJO_RESULT_UNIMPLEMENTED| if an unsupported flag was set in |*options|.
-// |MOJO_RESULT_BUSY| if |buffer_handle| is currently in use in some
-// transaction (that, e.g., may result in it being invalidated, such as
-// being sent in a message).
-MojoResult MojoDuplicateBufferHandle(
- MojoHandle buffer_handle, // In.
- const struct MojoDuplicateBufferHandleOptions* MOJO_RESTRICT
- options, // Optional in.
- MojoHandle* MOJO_RESTRICT new_buffer_handle); // Out.
-
-// |MojoGetBufferInformation()|: Gets information about the buffer with handle
-// |buffer_handle| (which must have the |MOJO_HANDLE_RIGHT_GET_OPTIONS| right).
-// |info| should be non-null and point to a buffer of size |info_num_bytes|;
-// |info_num_bytes| should be at least 16 (the size of the first, and currently
-// only, version of |struct MojoBufferInformation|).
-//
-// On success, |*info| will be filled with information about the given buffer.
-// Note that if additional (larger) versions of |struct MojoBufferInformation|
-// are defined, the largest version permitted by |info_num_bytes| that is
-// supported by the implementation will be filled. Callers expecting more than
-// the first 16-byte version must check the resulting |info->struct_size|.
-//
-// 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, |*info| is null, or
-// |info_num_bytes| is too small).
-// |MOJO_RESULT_PERMISSION_DENIED| if |buffer_handle| does not have the
-// |MOJO_HANDLE_RIGHT_GET_OPTIONS| right.
-// |MOJO_RESULT_BUSY| if |buffer_handle| is currently in use in some
-// transaction (that, e.g., may result in it being invalidated, such as
-// being sent in a message).
-MojoResult MojoGetBufferInformation(MojoHandle buffer_handle, // In.
- struct MojoBufferInformation* info, // Out.
- uint32_t info_num_bytes); // In.
-
-// |MojoMapBuffer()|: Maps the part (at offset |offset| of length |num_bytes|)
-// of the buffer given by |buffer_handle| (which must have both the
-// |MOJO_HANDLE_RIGHT_MAP_READABLE| and |MOJO_HANDLE_RIGHT_MAP_WRITABLE| rights)
-// 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_PERMISSION_DENIED| if |buffer_handle| does not have both the
-// |MOJO_HANDLE_RIGHT_MAP_READABLE| and |MOJO_HANDLE_RIGHT_MAP_WRITABLE|
-// rights.
-// |MOJO_RESULT_RESOURCE_EXHAUSTED| if the mapping operation itself failed
-// (e.g., due to not having appropriate address space available).
-// |MOJO_RESULT_BUSY| if |buffer_handle| is currently in use in some
-// transaction (that, e.g., may result in it being invalidated, such as
-// being sent in a message).
-MojoResult MojoMapBuffer(MojoHandle buffer_handle, // In.
- uint64_t offset, // In.
- uint64_t num_bytes, // In.
- void** buffer, // Out.
- MojoMapBufferFlags flags); // In.
-
-// |MojoUnmapBuffer()|: Unmaps a buffer pointer that was mapped by
-// |MojoMapBuffer()|. |buffer| must have been the result of |MojoMapBuffer()|
-// (not some other pointer inside the mapped memory), and the entire mapping
-// will be removed (partial unmapping is not supported). A mapping may only be
-// unmapped 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).
-MojoResult MojoUnmapBuffer(void* buffer); // In.
-
-MOJO_END_EXTERN_C
-
-#endif // MOJO_PUBLIC_C_INCLUDE_MOJO_SYSTEM_BUFFER_H_
« no previous file with comments | « mojo/public/c/include/mojo/result.h ('k') | mojo/public/c/include/mojo/system/data_pipe.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698