| Index: mojo/nacl/sfi/nacl_bindings/mojo_irt.c
|
| diff --git a/mojo/nacl/sfi/nacl_bindings/mojo_irt.c b/mojo/nacl/sfi/nacl_bindings/mojo_irt.c
|
| index 4da9e63d38f015e3af7df9de38b367b27ad34f24..41c8c49509ad8aa6e94fd49a5b1385db63d88467 100644
|
| --- a/mojo/nacl/sfi/nacl_bindings/mojo_irt.c
|
| +++ b/mojo/nacl/sfi/nacl_bindings/mojo_irt.c
|
| @@ -57,6 +57,19 @@ static MojoResult irt_MojoClose(MojoHandle handle) {
|
| return result;
|
| };
|
|
|
| +static MojoResult irt_MojoGetRights(
|
| + MojoHandle handle,
|
| + MojoHandleRights* rights) {
|
| + uint32_t params[4];
|
| + MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| + params[0] = 3;
|
| + params[1] = (uint32_t)(&handle);
|
| + params[2] = (uint32_t)(rights);
|
| + params[3] = (uint32_t)(&result);
|
| + DoMojoCall(params, sizeof(params));
|
| + return result;
|
| +};
|
| +
|
| static MojoResult irt_MojoWait(
|
| MojoHandle handle,
|
| MojoHandleSignals signals,
|
| @@ -64,7 +77,7 @@ static MojoResult irt_MojoWait(
|
| struct MojoHandleSignalsState* signals_state) {
|
| uint32_t params[6];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 3;
|
| + params[0] = 4;
|
| params[1] = (uint32_t)(&handle);
|
| params[2] = (uint32_t)(&signals);
|
| params[3] = (uint32_t)(&deadline);
|
| @@ -83,7 +96,7 @@ static MojoResult irt_MojoWaitMany(
|
| struct MojoHandleSignalsState* signals_states) {
|
| uint32_t params[8];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 4;
|
| + params[0] = 5;
|
| params[1] = (uint32_t)(handles);
|
| params[2] = (uint32_t)(signals);
|
| params[3] = (uint32_t)(&num_handles);
|
| @@ -101,7 +114,7 @@ static MojoResult irt_MojoCreateMessagePipe(
|
| MojoHandle* message_pipe_handle1) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 5;
|
| + params[0] = 6;
|
| params[1] = (uint32_t)(options);
|
| params[2] = (uint32_t)(message_pipe_handle0);
|
| params[3] = (uint32_t)(message_pipe_handle1);
|
| @@ -119,7 +132,7 @@ static MojoResult irt_MojoWriteMessage(
|
| MojoWriteMessageFlags flags) {
|
| uint32_t params[8];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 6;
|
| + params[0] = 7;
|
| params[1] = (uint32_t)(&message_pipe_handle);
|
| params[2] = (uint32_t)(bytes);
|
| params[3] = (uint32_t)(&num_bytes);
|
| @@ -140,7 +153,7 @@ static MojoResult irt_MojoReadMessage(
|
| MojoReadMessageFlags flags) {
|
| uint32_t params[8];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 7;
|
| + params[0] = 8;
|
| params[1] = (uint32_t)(&message_pipe_handle);
|
| params[2] = (uint32_t)(bytes);
|
| params[3] = (uint32_t)(num_bytes);
|
| @@ -158,7 +171,7 @@ static MojoResult irt_MojoCreateDataPipe(
|
| MojoHandle* data_pipe_consumer_handle) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 8;
|
| + params[0] = 9;
|
| params[1] = (uint32_t)(options);
|
| params[2] = (uint32_t)(data_pipe_producer_handle);
|
| params[3] = (uint32_t)(data_pipe_consumer_handle);
|
| @@ -172,7 +185,7 @@ static MojoResult irt_MojoSetDataPipeProducerOptions(
|
| const struct MojoDataPipeProducerOptions* options) {
|
| uint32_t params[4];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 9;
|
| + params[0] = 10;
|
| params[1] = (uint32_t)(&data_pipe_producer_handle);
|
| params[2] = (uint32_t)(options);
|
| params[3] = (uint32_t)(&result);
|
| @@ -186,7 +199,7 @@ static MojoResult irt_MojoGetDataPipeProducerOptions(
|
| uint32_t options_num_bytes) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 10;
|
| + params[0] = 11;
|
| params[1] = (uint32_t)(&data_pipe_producer_handle);
|
| params[2] = (uint32_t)(options);
|
| params[3] = (uint32_t)(&options_num_bytes);
|
| @@ -202,7 +215,7 @@ static MojoResult irt_MojoWriteData(
|
| MojoWriteDataFlags flags) {
|
| uint32_t params[6];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 11;
|
| + params[0] = 12;
|
| params[1] = (uint32_t)(&data_pipe_producer_handle);
|
| params[2] = (uint32_t)(elements);
|
| params[3] = (uint32_t)(num_bytes);
|
| @@ -219,7 +232,7 @@ static MojoResult irt_MojoBeginWriteData(
|
| MojoWriteDataFlags flags) {
|
| uint32_t params[6];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 12;
|
| + params[0] = 13;
|
| params[1] = (uint32_t)(&data_pipe_producer_handle);
|
| params[2] = (uint32_t)(buffer);
|
| params[3] = (uint32_t)(buffer_num_bytes);
|
| @@ -234,7 +247,7 @@ static MojoResult irt_MojoEndWriteData(
|
| uint32_t num_bytes_written) {
|
| uint32_t params[4];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 13;
|
| + params[0] = 14;
|
| params[1] = (uint32_t)(&data_pipe_producer_handle);
|
| params[2] = (uint32_t)(&num_bytes_written);
|
| params[3] = (uint32_t)(&result);
|
| @@ -247,7 +260,7 @@ static MojoResult irt_MojoSetDataPipeConsumerOptions(
|
| const struct MojoDataPipeConsumerOptions* options) {
|
| uint32_t params[4];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 14;
|
| + params[0] = 15;
|
| params[1] = (uint32_t)(&data_pipe_consumer_handle);
|
| params[2] = (uint32_t)(options);
|
| params[3] = (uint32_t)(&result);
|
| @@ -261,7 +274,7 @@ static MojoResult irt_MojoGetDataPipeConsumerOptions(
|
| uint32_t options_num_bytes) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 15;
|
| + params[0] = 16;
|
| params[1] = (uint32_t)(&data_pipe_consumer_handle);
|
| params[2] = (uint32_t)(options);
|
| params[3] = (uint32_t)(&options_num_bytes);
|
| @@ -277,7 +290,7 @@ static MojoResult irt_MojoReadData(
|
| MojoReadDataFlags flags) {
|
| uint32_t params[6];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 16;
|
| + params[0] = 17;
|
| params[1] = (uint32_t)(&data_pipe_consumer_handle);
|
| params[2] = (uint32_t)(elements);
|
| params[3] = (uint32_t)(num_bytes);
|
| @@ -294,7 +307,7 @@ static MojoResult irt_MojoBeginReadData(
|
| MojoReadDataFlags flags) {
|
| uint32_t params[6];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 17;
|
| + params[0] = 18;
|
| params[1] = (uint32_t)(&data_pipe_consumer_handle);
|
| params[2] = (uint32_t)(buffer);
|
| params[3] = (uint32_t)(buffer_num_bytes);
|
| @@ -309,7 +322,7 @@ static MojoResult irt_MojoEndReadData(
|
| uint32_t num_bytes_read) {
|
| uint32_t params[4];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 18;
|
| + params[0] = 19;
|
| params[1] = (uint32_t)(&data_pipe_consumer_handle);
|
| params[2] = (uint32_t)(&num_bytes_read);
|
| params[3] = (uint32_t)(&result);
|
| @@ -323,7 +336,7 @@ static MojoResult irt_MojoCreateSharedBuffer(
|
| MojoHandle* shared_buffer_handle) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 19;
|
| + params[0] = 20;
|
| params[1] = (uint32_t)(options);
|
| params[2] = (uint32_t)(&num_bytes);
|
| params[3] = (uint32_t)(shared_buffer_handle);
|
| @@ -338,7 +351,7 @@ static MojoResult irt_MojoDuplicateBufferHandle(
|
| MojoHandle* new_buffer_handle) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 20;
|
| + params[0] = 21;
|
| params[1] = (uint32_t)(&buffer_handle);
|
| params[2] = (uint32_t)(options);
|
| params[3] = (uint32_t)(new_buffer_handle);
|
| @@ -353,7 +366,7 @@ static MojoResult irt_MojoGetBufferInformation(
|
| uint32_t info_num_bytes) {
|
| uint32_t params[5];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 21;
|
| + params[0] = 22;
|
| params[1] = (uint32_t)(&buffer_handle);
|
| params[2] = (uint32_t)(info);
|
| params[3] = (uint32_t)(&info_num_bytes);
|
| @@ -370,7 +383,7 @@ static MojoResult irt_MojoMapBuffer(
|
| MojoMapBufferFlags flags) {
|
| uint32_t params[7];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 22;
|
| + params[0] = 23;
|
| params[1] = (uint32_t)(&buffer_handle);
|
| params[2] = (uint32_t)(&offset);
|
| params[3] = (uint32_t)(&num_bytes);
|
| @@ -384,7 +397,7 @@ static MojoResult irt_MojoMapBuffer(
|
| static MojoResult irt_MojoUnmapBuffer(void* buffer) {
|
| uint32_t params[3];
|
| MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
|
| - params[0] = 23;
|
| + params[0] = 24;
|
| params[1] = (uint32_t)(&buffer);
|
| params[2] = (uint32_t)(&result);
|
| DoMojoCall(params, sizeof(params));
|
| @@ -395,6 +408,7 @@ struct nacl_irt_mojo kIrtMojo = {
|
| &irt__MojoGetInitialHandle,
|
| &irt_MojoGetTimeTicksNow,
|
| &irt_MojoClose,
|
| + &irt_MojoGetRights,
|
| &irt_MojoWait,
|
| &irt_MojoWaitMany,
|
| &irt_MojoCreateMessagePipe,
|
|
|