| Index: mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc
|
| diff --git a/mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc b/mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc
|
| deleted file mode 100644
|
| index acbd8ea8523d42ce9ab14914b66cd3a4a52ec958..0000000000000000000000000000000000000000
|
| --- a/mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc
|
| +++ /dev/null
|
| @@ -1,1018 +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.
|
| -
|
| -// WARNING this file was generated by generate_nacl_bindings.py
|
| -// Do not edit by hand.
|
| -
|
| -#include "mojo/nacl/sfi/nacl_bindings/mojo_syscall.h"
|
| -
|
| -#include <stdio.h>
|
| -
|
| -#include "mojo/nacl/sfi/nacl_bindings/mojo_syscall_internal.h"
|
| -#include "mojo/public/c/system/buffer.h"
|
| -#include "mojo/public/c/system/data_pipe.h"
|
| -#include "mojo/public/c/system/handle.h"
|
| -#include "mojo/public/c/system/message_pipe.h"
|
| -#include "mojo/public/c/system/result.h"
|
| -#include "mojo/public/c/system/time.h"
|
| -#include "mojo/public/platform/native/system_impl_private.h"
|
| -#include "native_client/src/public/chrome_main.h"
|
| -#include "native_client/src/public/nacl_app.h"
|
| -#include "native_client/src/trusted/desc/nacl_desc_custom.h"
|
| -
|
| -MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID;
|
| -MojoSystemImpl g_mojo_system = nullptr;
|
| -
|
| -namespace {
|
| -
|
| -MojoResult _MojoGetInitialHandle(MojoHandle* handle) {
|
| - *handle = g_mojo_handle;
|
| - return MOJO_RESULT_OK;
|
| -}
|
| -
|
| -void MojoDescDestroy(void* handle) {
|
| -}
|
| -
|
| -ssize_t MojoDescSendMsg(void* handle,
|
| - const struct NaClImcTypedMsgHdr* msg,
|
| - int flags) {
|
| - struct NaClApp* nap = static_cast<struct NaClApp*>(handle);
|
| -
|
| - if (msg->iov_length != 1 || msg->ndesc_length != 0) {
|
| - return -1;
|
| - }
|
| -
|
| - uint32_t volatile* params = static_cast<uint32_t volatile*>(msg->iov[0].base);
|
| - size_t num_params = msg->iov[0].length / sizeof(*params);
|
| -
|
| - if (num_params < 1) {
|
| - return -1;
|
| - }
|
| -
|
| - uint32_t msg_type = params[0];
|
| - switch (msg_type) {
|
| - case 0: {
|
| - if (num_params != 3) {
|
| - return -1;
|
| - }
|
| - MojoHandle volatile* handle_ptr;
|
| - MojoHandle handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInOut(nap, params[1], false, &handle_value,
|
| - &handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = _MojoGetInitialHandle(&handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *handle_ptr = handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 1: {
|
| - if (num_params != 2) {
|
| - return -1;
|
| - }
|
| - MojoTimeTicks volatile* result_ptr;
|
| - MojoTimeTicks result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarOutput(nap, params[1], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplGetTimeTicksNow(g_mojo_system);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 2: {
|
| - if (num_params != 3) {
|
| - return -1;
|
| - }
|
| - MojoHandle handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplClose(g_mojo_system, handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 3: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle handle_value;
|
| - MojoHandleRights volatile* rights_ptr;
|
| - MojoHandleRights rights_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[2], false, &rights_value,
|
| - &rights_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value =
|
| - MojoSystemImplGetRights(g_mojo_system, handle_value, &rights_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *rights_ptr = rights_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 4: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - MojoHandle handle_value;
|
| - MojoHandleRights rights_to_remove_value;
|
| - MojoHandle volatile* new_handle_ptr;
|
| - MojoHandle new_handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[2], &rights_to_remove_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false, &new_handle_value,
|
| - &new_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplDuplicateHandleWithReducedRights(
|
| - g_mojo_system, handle_value, rights_to_remove_value,
|
| - &new_handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *new_handle_ptr = new_handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 5: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle handle_value;
|
| - MojoHandle volatile* new_handle_ptr;
|
| - MojoHandle new_handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[2], false, &new_handle_value,
|
| - &new_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplDuplicateHandle(g_mojo_system, handle_value,
|
| - &new_handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *new_handle_ptr = new_handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 6: {
|
| - if (num_params != 6) {
|
| - return -1;
|
| - }
|
| - MojoHandle handle_value;
|
| - MojoHandleSignals signals_value;
|
| - MojoDeadline deadline_value;
|
| - MojoHandleSignalsState volatile* signals_state_ptr;
|
| - MojoHandleSignalsState signals_state_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[2], &signals_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[3], &deadline_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], true, &signals_state_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplWait(
|
| - g_mojo_system, handle_value, signals_value, deadline_value,
|
| - signals_state_ptr ? &signals_state_value : nullptr);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (signals_state_ptr) {
|
| - memcpy_volatile_out(signals_state_ptr, &signals_state_value,
|
| - sizeof(MojoHandleSignalsState));
|
| - }
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 7: {
|
| - if (num_params != 8) {
|
| - return -1;
|
| - }
|
| - const MojoHandle* handles;
|
| - const MojoHandleSignals* signals;
|
| - uint32_t num_handles_value;
|
| - MojoDeadline deadline_value;
|
| - uint32_t volatile* result_index_ptr;
|
| - uint32_t result_index_value;
|
| - struct MojoHandleSignalsState* signals_states;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[3], &num_handles_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[4], &deadline_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[5], true, &result_index_value,
|
| - &result_index_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[1], num_handles_value, sizeof(*handles),
|
| - false, &handles)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], num_handles_value, sizeof(*signals),
|
| - false, &signals)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[6], num_handles_value,
|
| - sizeof(*signals_states), true, &signals_states)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplWaitMany(
|
| - g_mojo_system, handles, signals, num_handles_value, deadline_value,
|
| - result_index_ptr ? &result_index_value : nullptr, signals_states);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (result_index_ptr) {
|
| - *result_index_ptr = result_index_value;
|
| - }
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 8: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - const struct MojoCreateMessagePipeOptions* options;
|
| - MojoHandle volatile* message_pipe_handle0_ptr;
|
| - MojoHandle message_pipe_handle0_value;
|
| - MojoHandle volatile* message_pipe_handle1_ptr;
|
| - MojoHandle message_pipe_handle1_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[2], false,
|
| - &message_pipe_handle0_value,
|
| - &message_pipe_handle0_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false,
|
| - &message_pipe_handle1_value,
|
| - &message_pipe_handle1_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplCreateMessagePipe(
|
| - g_mojo_system, options, &message_pipe_handle0_value,
|
| - &message_pipe_handle1_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *message_pipe_handle0_ptr = message_pipe_handle0_value;
|
| - *message_pipe_handle1_ptr = message_pipe_handle1_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 9: {
|
| - if (num_params != 8) {
|
| - return -1;
|
| - }
|
| - MojoHandle message_pipe_handle_value;
|
| - const void* bytes;
|
| - uint32_t num_bytes_value;
|
| - const MojoHandle* handles;
|
| - uint32_t num_handles_value;
|
| - MojoWriteMessageFlags flags_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[3], &num_bytes_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[5], &num_handles_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[6], &flags_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles),
|
| - true, &handles)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplWriteMessage(
|
| - g_mojo_system, message_pipe_handle_value, bytes, num_bytes_value,
|
| - handles, num_handles_value, flags_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 10: {
|
| - if (num_params != 8) {
|
| - return -1;
|
| - }
|
| - MojoHandle message_pipe_handle_value;
|
| - void* bytes;
|
| - uint32_t volatile* num_bytes_ptr;
|
| - uint32_t num_bytes_value;
|
| - MojoHandle* handles;
|
| - uint32_t volatile* num_handles_ptr;
|
| - uint32_t num_handles_value;
|
| - MojoReadMessageFlags flags_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], true, &num_bytes_value,
|
| - &num_bytes_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[5], true, &num_handles_value,
|
| - &num_handles_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[6], &flags_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles),
|
| - true, &handles)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplReadMessage(
|
| - g_mojo_system, message_pipe_handle_value, bytes,
|
| - num_bytes_ptr ? &num_bytes_value : nullptr, handles,
|
| - num_handles_ptr ? &num_handles_value : nullptr, flags_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (num_bytes_ptr) {
|
| - *num_bytes_ptr = num_bytes_value;
|
| - }
|
| - if (num_handles_ptr) {
|
| - *num_handles_ptr = num_handles_value;
|
| - }
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 11: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - const struct MojoCreateDataPipeOptions* options;
|
| - MojoHandle volatile* data_pipe_producer_handle_ptr;
|
| - MojoHandle data_pipe_producer_handle_value;
|
| - MojoHandle volatile* data_pipe_consumer_handle_ptr;
|
| - MojoHandle data_pipe_consumer_handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[2], false,
|
| - &data_pipe_producer_handle_value,
|
| - &data_pipe_producer_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false,
|
| - &data_pipe_consumer_handle_value,
|
| - &data_pipe_consumer_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplCreateDataPipe(
|
| - g_mojo_system, options, &data_pipe_producer_handle_value,
|
| - &data_pipe_consumer_handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value;
|
| - *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 12: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_producer_handle_value;
|
| - const struct MojoDataPipeProducerOptions* options;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_producer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertExtensibleStructInput(nap, params[2], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplSetDataPipeProducerOptions(
|
| - g_mojo_system, data_pipe_producer_handle_value, options);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 13: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_producer_handle_value;
|
| - struct MojoDataPipeProducerOptions* options;
|
| - uint32_t options_num_bytes_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_producer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[3], &options_num_bytes_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], options_num_bytes_value, 1, false,
|
| - &options)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplGetDataPipeProducerOptions(
|
| - g_mojo_system, data_pipe_producer_handle_value, options,
|
| - options_num_bytes_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 14: {
|
| - if (num_params != 6) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_producer_handle_value;
|
| - const void* elements;
|
| - uint32_t volatile* num_bytes_ptr;
|
| - uint32_t num_bytes_value;
|
| - MojoWriteDataFlags flags_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_producer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value,
|
| - &num_bytes_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[4], &flags_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], num_bytes_value, 1, false,
|
| - &elements)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplWriteData(
|
| - g_mojo_system, data_pipe_producer_handle_value, elements,
|
| - &num_bytes_value, flags_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *num_bytes_ptr = num_bytes_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 15:
|
| - fprintf(stderr, "MojoBeginWriteData not implemented\n");
|
| - return -1;
|
| - case 16: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_producer_handle_value;
|
| - uint32_t num_bytes_written_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_producer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplEndWriteData(g_mojo_system,
|
| - data_pipe_producer_handle_value,
|
| - num_bytes_written_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 17: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_consumer_handle_value;
|
| - const struct MojoDataPipeConsumerOptions* options;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_consumer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertExtensibleStructInput(nap, params[2], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplSetDataPipeConsumerOptions(
|
| - g_mojo_system, data_pipe_consumer_handle_value, options);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 18: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_consumer_handle_value;
|
| - struct MojoDataPipeConsumerOptions* options;
|
| - uint32_t options_num_bytes_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_consumer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[3], &options_num_bytes_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], options_num_bytes_value, 1, false,
|
| - &options)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplGetDataPipeConsumerOptions(
|
| - g_mojo_system, data_pipe_consumer_handle_value, options,
|
| - options_num_bytes_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 19: {
|
| - if (num_params != 6) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_consumer_handle_value;
|
| - void* elements;
|
| - uint32_t volatile* num_bytes_ptr;
|
| - uint32_t num_bytes_value;
|
| - MojoReadDataFlags flags_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_consumer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value,
|
| - &num_bytes_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[4], &flags_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], num_bytes_value, 1, false,
|
| - &elements)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value =
|
| - MojoSystemImplReadData(g_mojo_system, data_pipe_consumer_handle_value,
|
| - elements, &num_bytes_value, flags_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *num_bytes_ptr = num_bytes_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 20:
|
| - fprintf(stderr, "MojoBeginReadData not implemented\n");
|
| - return -1;
|
| - case 21: {
|
| - if (num_params != 4) {
|
| - return -1;
|
| - }
|
| - MojoHandle data_pipe_consumer_handle_value;
|
| - uint32_t num_bytes_read_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1],
|
| - &data_pipe_consumer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplEndReadData(
|
| - g_mojo_system, data_pipe_consumer_handle_value, num_bytes_read_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 22: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - const struct MojoCreateSharedBufferOptions* options;
|
| - uint64_t num_bytes_value;
|
| - MojoHandle volatile* shared_buffer_handle_ptr;
|
| - MojoHandle shared_buffer_handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[2], &num_bytes_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false,
|
| - &shared_buffer_handle_value,
|
| - &shared_buffer_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplCreateSharedBuffer(
|
| - g_mojo_system, options, num_bytes_value, &shared_buffer_handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *shared_buffer_handle_ptr = shared_buffer_handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 23: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - MojoHandle buffer_handle_value;
|
| - const struct MojoDuplicateBufferHandleOptions* options;
|
| - MojoHandle volatile* new_buffer_handle_ptr;
|
| - MojoHandle new_buffer_handle_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertExtensibleStructInput(nap, params[2], true, &options)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInOut(nap, params[3], false, &new_buffer_handle_value,
|
| - &new_buffer_handle_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplDuplicateBufferHandle(
|
| - g_mojo_system, buffer_handle_value, options,
|
| - &new_buffer_handle_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *new_buffer_handle_ptr = new_buffer_handle_value;
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 24: {
|
| - if (num_params != 5) {
|
| - return -1;
|
| - }
|
| - MojoHandle buffer_handle_value;
|
| - struct MojoBufferInformation* info;
|
| - uint32_t info_num_bytes_value;
|
| - MojoResult volatile* result_ptr;
|
| - MojoResult result_value;
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarInput(nap, params[3], &info_num_bytes_value)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) {
|
| - return -1;
|
| - }
|
| - if (!ConvertArray(nap, params[2], info_num_bytes_value, 1, false,
|
| - &info)) {
|
| - return -1;
|
| - }
|
| - }
|
| -
|
| - result_value = MojoSystemImplGetBufferInformation(
|
| - g_mojo_system, buffer_handle_value, info, info_num_bytes_value);
|
| -
|
| - {
|
| - ScopedCopyLock copy_lock(nap);
|
| - *result_ptr = result_value;
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| - case 25:
|
| - fprintf(stderr, "MojoMapBuffer not implemented\n");
|
| - return -1;
|
| - case 26:
|
| - fprintf(stderr, "MojoUnmapBuffer not implemented\n");
|
| - return -1;
|
| - }
|
| -
|
| - return -1;
|
| -}
|
| -
|
| -ssize_t MojoDescRecvMsg(void* handle,
|
| - struct NaClImcTypedMsgHdr* msg,
|
| - int flags) {
|
| - return -1;
|
| -}
|
| -
|
| -struct NaClDesc* MakeMojoDesc(struct NaClApp* nap) {
|
| - struct NaClDescCustomFuncs funcs = NACL_DESC_CUSTOM_FUNCS_INITIALIZER;
|
| - funcs.Destroy = MojoDescDestroy;
|
| - funcs.SendMsg = MojoDescSendMsg;
|
| - funcs.RecvMsg = MojoDescRecvMsg;
|
| - return NaClDescMakeCustomDesc(nap, &funcs);
|
| -}
|
| -
|
| -void MojoDisabledDescDestroy(void* handle) {
|
| -}
|
| -
|
| -ssize_t MojoDisabledDescSendMsg(void* handle,
|
| - const struct NaClImcTypedMsgHdr* msg,
|
| - int flags) {
|
| - fprintf(stderr, "Mojo is not currently supported.");
|
| - abort();
|
| -}
|
| -
|
| -ssize_t MojoDisabledDescRecvMsg(void* handle,
|
| - struct NaClImcTypedMsgHdr* msg,
|
| - int flags) {
|
| - fprintf(stderr, "Mojo is not currently supported.");
|
| - abort();
|
| -}
|
| -
|
| -struct NaClDesc* MakeDisabledMojoDesc(struct NaClApp* nap) {
|
| - struct NaClDescCustomFuncs funcs = NACL_DESC_CUSTOM_FUNCS_INITIALIZER;
|
| - funcs.Destroy = MojoDisabledDescDestroy;
|
| - funcs.SendMsg = MojoDisabledDescSendMsg;
|
| - funcs.RecvMsg = MojoDisabledDescRecvMsg;
|
| - return NaClDescMakeCustomDesc(nap, &funcs);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -// The value for this FD must not conflict with uses inside Chromium. However,
|
| -// mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define
|
| -// from there.
|
| -#define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3)
|
| -
|
| -MojoResult InjectMojo(struct NaClApp* nap, MojoHandle handle) {
|
| - NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap));
|
| - g_mojo_system = MojoSystemImplCreateImpl();
|
| - return MojoSystemImplTransferHandle(MojoSystemImplGetDefaultImpl(), handle,
|
| - g_mojo_system, &g_mojo_handle);
|
| -}
|
| -
|
| -void InjectDisabledMojo(struct NaClApp* nap) {
|
| - NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap));
|
| -}
|
|
|