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

Unified Diff: mojo/nacl/sfi/nacl_bindings/mojo_irt.c

Issue 2000253002: Add thunks for MojoDuplicateHandle[WithReducedRights](). (Closed) Base URL: https://github.com/domokit/mojo.git@work792_dup_handle_1
Patch Set: Created 4 years, 7 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/nacl/nonsfi/irt_mojo_nonsfi.cc ('k') | mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 41c8c49509ad8aa6e94fd49a5b1385db63d88467..9e653ce3140c3df4d3865f3f65d33bacc58ad6c0 100644
--- a/mojo/nacl/sfi/nacl_bindings/mojo_irt.c
+++ b/mojo/nacl/sfi/nacl_bindings/mojo_irt.c
@@ -70,6 +70,34 @@ static MojoResult irt_MojoGetRights(
return result;
};
+static MojoResult irt_MojoDuplicateHandleWithReducedRights(
+ MojoHandle handle,
+ MojoHandleRights rights_to_remove,
+ MojoHandle* new_handle) {
+ uint32_t params[5];
+ MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
+ params[0] = 4;
+ params[1] = (uint32_t)(&handle);
+ params[2] = (uint32_t)(&rights_to_remove);
+ params[3] = (uint32_t)(new_handle);
+ params[4] = (uint32_t)(&result);
+ DoMojoCall(params, sizeof(params));
+ return result;
+};
+
+static MojoResult irt_MojoDuplicateHandle(
+ MojoHandle handle,
+ MojoHandle* new_handle) {
+ uint32_t params[4];
+ MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
+ params[0] = 5;
+ params[1] = (uint32_t)(&handle);
+ params[2] = (uint32_t)(new_handle);
+ params[3] = (uint32_t)(&result);
+ DoMojoCall(params, sizeof(params));
+ return result;
+};
+
static MojoResult irt_MojoWait(
MojoHandle handle,
MojoHandleSignals signals,
@@ -77,7 +105,7 @@ static MojoResult irt_MojoWait(
struct MojoHandleSignalsState* signals_state) {
uint32_t params[6];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 4;
+ params[0] = 6;
params[1] = (uint32_t)(&handle);
params[2] = (uint32_t)(&signals);
params[3] = (uint32_t)(&deadline);
@@ -96,7 +124,7 @@ static MojoResult irt_MojoWaitMany(
struct MojoHandleSignalsState* signals_states) {
uint32_t params[8];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 5;
+ params[0] = 7;
params[1] = (uint32_t)(handles);
params[2] = (uint32_t)(signals);
params[3] = (uint32_t)(&num_handles);
@@ -114,7 +142,7 @@ static MojoResult irt_MojoCreateMessagePipe(
MojoHandle* message_pipe_handle1) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 6;
+ params[0] = 8;
params[1] = (uint32_t)(options);
params[2] = (uint32_t)(message_pipe_handle0);
params[3] = (uint32_t)(message_pipe_handle1);
@@ -132,7 +160,7 @@ static MojoResult irt_MojoWriteMessage(
MojoWriteMessageFlags flags) {
uint32_t params[8];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 7;
+ params[0] = 9;
params[1] = (uint32_t)(&message_pipe_handle);
params[2] = (uint32_t)(bytes);
params[3] = (uint32_t)(&num_bytes);
@@ -153,7 +181,7 @@ static MojoResult irt_MojoReadMessage(
MojoReadMessageFlags flags) {
uint32_t params[8];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 8;
+ params[0] = 10;
params[1] = (uint32_t)(&message_pipe_handle);
params[2] = (uint32_t)(bytes);
params[3] = (uint32_t)(num_bytes);
@@ -171,7 +199,7 @@ static MojoResult irt_MojoCreateDataPipe(
MojoHandle* data_pipe_consumer_handle) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 9;
+ params[0] = 11;
params[1] = (uint32_t)(options);
params[2] = (uint32_t)(data_pipe_producer_handle);
params[3] = (uint32_t)(data_pipe_consumer_handle);
@@ -185,7 +213,7 @@ static MojoResult irt_MojoSetDataPipeProducerOptions(
const struct MojoDataPipeProducerOptions* options) {
uint32_t params[4];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 10;
+ params[0] = 12;
params[1] = (uint32_t)(&data_pipe_producer_handle);
params[2] = (uint32_t)(options);
params[3] = (uint32_t)(&result);
@@ -199,7 +227,7 @@ static MojoResult irt_MojoGetDataPipeProducerOptions(
uint32_t options_num_bytes) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 11;
+ params[0] = 13;
params[1] = (uint32_t)(&data_pipe_producer_handle);
params[2] = (uint32_t)(options);
params[3] = (uint32_t)(&options_num_bytes);
@@ -215,7 +243,7 @@ static MojoResult irt_MojoWriteData(
MojoWriteDataFlags flags) {
uint32_t params[6];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 12;
+ params[0] = 14;
params[1] = (uint32_t)(&data_pipe_producer_handle);
params[2] = (uint32_t)(elements);
params[3] = (uint32_t)(num_bytes);
@@ -232,7 +260,7 @@ static MojoResult irt_MojoBeginWriteData(
MojoWriteDataFlags flags) {
uint32_t params[6];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 13;
+ params[0] = 15;
params[1] = (uint32_t)(&data_pipe_producer_handle);
params[2] = (uint32_t)(buffer);
params[3] = (uint32_t)(buffer_num_bytes);
@@ -247,7 +275,7 @@ static MojoResult irt_MojoEndWriteData(
uint32_t num_bytes_written) {
uint32_t params[4];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 14;
+ params[0] = 16;
params[1] = (uint32_t)(&data_pipe_producer_handle);
params[2] = (uint32_t)(&num_bytes_written);
params[3] = (uint32_t)(&result);
@@ -260,7 +288,7 @@ static MojoResult irt_MojoSetDataPipeConsumerOptions(
const struct MojoDataPipeConsumerOptions* options) {
uint32_t params[4];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 15;
+ params[0] = 17;
params[1] = (uint32_t)(&data_pipe_consumer_handle);
params[2] = (uint32_t)(options);
params[3] = (uint32_t)(&result);
@@ -274,7 +302,7 @@ static MojoResult irt_MojoGetDataPipeConsumerOptions(
uint32_t options_num_bytes) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 16;
+ params[0] = 18;
params[1] = (uint32_t)(&data_pipe_consumer_handle);
params[2] = (uint32_t)(options);
params[3] = (uint32_t)(&options_num_bytes);
@@ -290,7 +318,7 @@ static MojoResult irt_MojoReadData(
MojoReadDataFlags flags) {
uint32_t params[6];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 17;
+ params[0] = 19;
params[1] = (uint32_t)(&data_pipe_consumer_handle);
params[2] = (uint32_t)(elements);
params[3] = (uint32_t)(num_bytes);
@@ -307,7 +335,7 @@ static MojoResult irt_MojoBeginReadData(
MojoReadDataFlags flags) {
uint32_t params[6];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 18;
+ params[0] = 20;
params[1] = (uint32_t)(&data_pipe_consumer_handle);
params[2] = (uint32_t)(buffer);
params[3] = (uint32_t)(buffer_num_bytes);
@@ -322,7 +350,7 @@ static MojoResult irt_MojoEndReadData(
uint32_t num_bytes_read) {
uint32_t params[4];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 19;
+ params[0] = 21;
params[1] = (uint32_t)(&data_pipe_consumer_handle);
params[2] = (uint32_t)(&num_bytes_read);
params[3] = (uint32_t)(&result);
@@ -336,7 +364,7 @@ static MojoResult irt_MojoCreateSharedBuffer(
MojoHandle* shared_buffer_handle) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 20;
+ params[0] = 22;
params[1] = (uint32_t)(options);
params[2] = (uint32_t)(&num_bytes);
params[3] = (uint32_t)(shared_buffer_handle);
@@ -351,7 +379,7 @@ static MojoResult irt_MojoDuplicateBufferHandle(
MojoHandle* new_buffer_handle) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 21;
+ params[0] = 23;
params[1] = (uint32_t)(&buffer_handle);
params[2] = (uint32_t)(options);
params[3] = (uint32_t)(new_buffer_handle);
@@ -366,7 +394,7 @@ static MojoResult irt_MojoGetBufferInformation(
uint32_t info_num_bytes) {
uint32_t params[5];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 22;
+ params[0] = 24;
params[1] = (uint32_t)(&buffer_handle);
params[2] = (uint32_t)(info);
params[3] = (uint32_t)(&info_num_bytes);
@@ -383,7 +411,7 @@ static MojoResult irt_MojoMapBuffer(
MojoMapBufferFlags flags) {
uint32_t params[7];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 23;
+ params[0] = 25;
params[1] = (uint32_t)(&buffer_handle);
params[2] = (uint32_t)(&offset);
params[3] = (uint32_t)(&num_bytes);
@@ -397,7 +425,7 @@ static MojoResult irt_MojoMapBuffer(
static MojoResult irt_MojoUnmapBuffer(void* buffer) {
uint32_t params[3];
MojoResult result = MOJO_RESULT_INVALID_ARGUMENT;
- params[0] = 24;
+ params[0] = 26;
params[1] = (uint32_t)(&buffer);
params[2] = (uint32_t)(&result);
DoMojoCall(params, sizeof(params));
@@ -409,6 +437,8 @@ struct nacl_irt_mojo kIrtMojo = {
&irt_MojoGetTimeTicksNow,
&irt_MojoClose,
&irt_MojoGetRights,
+ &irt_MojoDuplicateHandleWithReducedRights,
+ &irt_MojoDuplicateHandle,
&irt_MojoWait,
&irt_MojoWaitMany,
&irt_MojoCreateMessagePipe,
« no previous file with comments | « mojo/nacl/nonsfi/irt_mojo_nonsfi.cc ('k') | mojo/nacl/sfi/nacl_bindings/mojo_syscall.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698