| Index: nacl_bindings/mojo_syscall.cc
|
| diff --git a/nacl_bindings/mojo_syscall.cc b/nacl_bindings/mojo_syscall.cc
|
| index 4453381cb62af5f620427f7a1efe5c41116f93cf..296376366d6a7d24484c22d66822b18bb1d3210a 100644
|
| --- a/nacl_bindings/mojo_syscall.cc
|
| +++ b/nacl_bindings/mojo_syscall.cc
|
| @@ -10,12 +10,14 @@
|
| #include <stdio.h>
|
|
|
| #include "mojo/public/c/system/core.h"
|
| +#include "mojo/public/platform/native/core_system_api.h"
|
| #include "nacl_bindings/mojo_syscall_internal.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;
|
| +MojoCoreHandle g_mojo_core = nullptr;
|
|
|
| namespace {
|
|
|
| @@ -73,8 +75,8 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoCreateSharedBuffer(options, num_bytes_value,
|
| - &shared_buffer_handle_value);
|
| + result_value = MojoCoreCreateSharedBuffer(
|
| + g_mojo_core, options, num_bytes_value, &shared_buffer_handle_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -111,8 +113,8 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoDuplicateBufferHandle(buffer_handle_value, options,
|
| - &new_buffer_handle_value);
|
| + result_value = MojoCoreDuplicateBufferHandle(
|
| + g_mojo_core, buffer_handle_value, options, &new_buffer_handle_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -159,9 +161,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value =
|
| - MojoCreateDataPipe(options, &data_pipe_producer_handle_value,
|
| - &data_pipe_consumer_handle_value);
|
| + result_value = MojoCoreCreateDataPipe(g_mojo_core, options,
|
| + &data_pipe_producer_handle_value,
|
| + &data_pipe_consumer_handle_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -205,8 +207,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoWriteData(data_pipe_producer_handle_value, elements,
|
| - &num_bytes_value, flags_value);
|
| + result_value =
|
| + MojoCoreWriteData(g_mojo_core, data_pipe_producer_handle_value,
|
| + elements, &num_bytes_value, flags_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -241,8 +244,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoEndWriteData(data_pipe_producer_handle_value,
|
| - num_bytes_written_value);
|
| + result_value =
|
| + MojoCoreEndWriteData(g_mojo_core, data_pipe_producer_handle_value,
|
| + num_bytes_written_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -284,8 +288,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoReadData(data_pipe_consumer_handle_value, elements,
|
| - &num_bytes_value, flags_value);
|
| + result_value =
|
| + MojoCoreReadData(g_mojo_core, data_pipe_consumer_handle_value,
|
| + elements, &num_bytes_value, flags_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -320,8 +325,8 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoEndReadData(data_pipe_consumer_handle_value,
|
| - num_bytes_read_value);
|
| + result_value = MojoCoreEndReadData(
|
| + g_mojo_core, data_pipe_consumer_handle_value, num_bytes_read_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -343,7 +348,7 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoGetTimeTicksNow();
|
| + result_value = MojoCoreGetTimeTicksNow(g_mojo_core);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -369,7 +374,7 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoClose(handle_value);
|
| + result_value = MojoCoreClose(g_mojo_core, handle_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -408,8 +413,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoWait(handle_value, signals_value, deadline_value,
|
| - signals_state_ptr ? &signals_state_value : NULL);
|
| + result_value =
|
| + MojoCoreWait(g_mojo_core, handle_value, signals_value, deadline_value,
|
| + signals_state_ptr ? &signals_state_value : NULL);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -464,8 +470,8 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoWaitMany(
|
| - handles, signals, num_handles_value, deadline_value,
|
| + result_value = MojoCoreWaitMany(
|
| + g_mojo_core, handles, signals, num_handles_value, deadline_value,
|
| result_index_ptr ? &result_index_value : NULL, signals_states);
|
|
|
| {
|
| @@ -509,8 +515,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoCreateMessagePipe(options, &message_pipe_handle0_value,
|
| - &message_pipe_handle1_value);
|
| + result_value = MojoCoreCreateMessagePipe(g_mojo_core, options,
|
| + &message_pipe_handle0_value,
|
| + &message_pipe_handle1_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -559,9 +566,9 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value =
|
| - MojoWriteMessage(message_pipe_handle_value, bytes, num_bytes_value,
|
| - handles, num_handles_value, flags_value);
|
| + result_value = MojoCoreWriteMessage(
|
| + g_mojo_core, message_pipe_handle_value, bytes, num_bytes_value,
|
| + handles, num_handles_value, flags_value);
|
|
|
| {
|
| ScopedCopyLock copy_lock(nap);
|
| @@ -612,8 +619,8 @@ ssize_t MojoDescSendMsg(void* handle,
|
| }
|
| }
|
|
|
| - result_value = MojoReadMessage(
|
| - message_pipe_handle_value, bytes,
|
| + result_value = MojoCoreReadMessage(
|
| + g_mojo_core, message_pipe_handle_value, bytes,
|
| num_bytes_ptr ? &num_bytes_value : NULL, handles,
|
| num_handles_ptr ? &num_handles_value : NULL, flags_value);
|
|
|
| @@ -710,14 +717,12 @@ struct NaClDesc* MakeDisabledMojoDesc(struct NaClApp* nap) {
|
| // from there.
|
| #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3)
|
|
|
| -void InjectMojo(struct NaClApp* nap) {
|
| - NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap));
|
| - g_mojo_handle = MOJO_HANDLE_INVALID;
|
| -}
|
| -
|
| void InjectMojo(struct NaClApp* nap, MojoHandle handle) {
|
| NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap));
|
| - g_mojo_handle = handle;
|
| + g_mojo_core = MojoCoreCreateCore();
|
| + // TODO handle errors?
|
| + MojoCoreTransferHandle(MojoCoreGetDefaultCore(), handle, g_mojo_core,
|
| + &g_mojo_handle);
|
| }
|
|
|
| void InjectDisabledMojo(struct NaClApp* nap) {
|
|
|