| Index: mojo/edk/system/core.cc
|
| diff --git a/mojo/edk/system/core.cc b/mojo/edk/system/core.cc
|
| index d43630711c5bfa9cf561668af5104c2ef0731803..ad6c4c55013a21b34cec28ef723b318e8647970e 100644
|
| --- a/mojo/edk/system/core.cc
|
| +++ b/mojo/edk/system/core.cc
|
| @@ -51,9 +51,10 @@ const uint64_t kUnknownPipeIdForDebug = 0x7f7f7f7f7f7f7f7fUL;
|
| void CallWatchCallback(MojoWatchCallback callback,
|
| uintptr_t context,
|
| MojoResult result,
|
| - const HandleSignalsState& signals_state) {
|
| - callback(context, result,
|
| - static_cast<MojoHandleSignalsState>(signals_state));
|
| + const HandleSignalsState& signals_state,
|
| + MojoWatchNotificationFlags flags) {
|
| + callback(context, result, static_cast<MojoHandleSignalsState>(signals_state),
|
| + flags);
|
| }
|
|
|
| } // namespace
|
| @@ -277,7 +278,7 @@ MojoTimeTicks Core::GetTimeTicksNow() {
|
| }
|
|
|
| MojoResult Core::Close(MojoHandle handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher;
|
| {
|
| base::AutoLock lock(handles_lock_);
|
| @@ -293,7 +294,7 @@ MojoResult Core::Wait(MojoHandle handle,
|
| MojoHandleSignals signals,
|
| MojoDeadline deadline,
|
| MojoHandleSignalsState* signals_state) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| uint32_t unused = static_cast<uint32_t>(-1);
|
| HandleSignalsState hss;
|
| MojoResult rv = WaitManyInternal(&handle, &signals, 1, deadline, &unused,
|
| @@ -309,7 +310,7 @@ MojoResult Core::WaitMany(const MojoHandle* handles,
|
| MojoDeadline deadline,
|
| uint32_t* result_index,
|
| MojoHandleSignalsState* signals_state) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| if (num_handles < 1)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| if (num_handles > GetConfiguration().max_wait_many_num_handles)
|
| @@ -335,7 +336,7 @@ MojoResult Core::Watch(MojoHandle handle,
|
| MojoHandleSignals signals,
|
| MojoWatchCallback callback,
|
| uintptr_t context) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher = GetDispatcher(handle);
|
| if (!dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -344,7 +345,7 @@ MojoResult Core::Watch(MojoHandle handle,
|
| }
|
|
|
| MojoResult Core::CancelWatch(MojoHandle handle, uintptr_t context) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher = GetDispatcher(handle);
|
| if (!dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -352,7 +353,7 @@ MojoResult Core::CancelWatch(MojoHandle handle, uintptr_t context) {
|
| }
|
|
|
| MojoResult Core::CreateWaitSet(MojoHandle* wait_set_handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| if (!wait_set_handle)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
|
|
| @@ -371,7 +372,7 @@ MojoResult Core::CreateWaitSet(MojoHandle* wait_set_handle) {
|
| MojoResult Core::AddHandle(MojoHandle wait_set_handle,
|
| MojoHandle handle,
|
| MojoHandleSignals signals) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> wait_set_dispatcher(GetDispatcher(wait_set_handle));
|
| if (!wait_set_dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -385,7 +386,7 @@ MojoResult Core::AddHandle(MojoHandle wait_set_handle,
|
|
|
| MojoResult Core::RemoveHandle(MojoHandle wait_set_handle,
|
| MojoHandle handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> wait_set_dispatcher(GetDispatcher(wait_set_handle));
|
| if (!wait_set_dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -402,7 +403,7 @@ MojoResult Core::GetReadyHandles(MojoHandle wait_set_handle,
|
| MojoHandle* handles,
|
| MojoResult* results,
|
| MojoHandleSignalsState* signals_states) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| if (!handles || !count || !(*count) || !results)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
|
|
| @@ -432,7 +433,7 @@ MojoResult Core::CreateMessagePipe(
|
| const MojoCreateMessagePipeOptions* options,
|
| MojoHandle* message_pipe_handle0,
|
| MojoHandle* message_pipe_handle1) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| ports::PortRef port0, port1;
|
| GetNodeController()->node()->CreatePortPair(&port0, &port1);
|
|
|
| @@ -466,7 +467,7 @@ MojoResult Core::WriteMessage(MojoHandle message_pipe_handle,
|
| const MojoHandle* handles,
|
| uint32_t num_handles,
|
| MojoWriteMessageFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| auto dispatcher = GetDispatcher(message_pipe_handle);
|
| if (!dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -516,7 +517,7 @@ MojoResult Core::ReadMessage(MojoHandle message_pipe_handle,
|
| MojoHandle* handles,
|
| uint32_t* num_handles,
|
| MojoReadMessageFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| CHECK((!num_handles || !*num_handles || handles) &&
|
| (!num_bytes || !*num_bytes || bytes));
|
| auto dispatcher = GetDispatcher(message_pipe_handle);
|
| @@ -526,7 +527,7 @@ MojoResult Core::ReadMessage(MojoHandle message_pipe_handle,
|
| }
|
|
|
| MojoResult Core::FuseMessagePipes(MojoHandle handle0, MojoHandle handle1) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher0;
|
| scoped_refptr<Dispatcher> dispatcher1;
|
|
|
| @@ -564,7 +565,7 @@ MojoResult Core::CreateDataPipe(
|
| const MojoCreateDataPipeOptions* options,
|
| MojoHandle* data_pipe_producer_handle,
|
| MojoHandle* data_pipe_consumer_handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| if (options && options->struct_size != sizeof(MojoCreateDataPipeOptions))
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
|
|
| @@ -620,7 +621,7 @@ MojoResult Core::WriteData(MojoHandle data_pipe_producer_handle,
|
| const void* elements,
|
| uint32_t* num_bytes,
|
| MojoWriteDataFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_producer_handle));
|
| if (!dispatcher)
|
| @@ -633,7 +634,7 @@ MojoResult Core::BeginWriteData(MojoHandle data_pipe_producer_handle,
|
| void** buffer,
|
| uint32_t* buffer_num_bytes,
|
| MojoWriteDataFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_producer_handle));
|
| if (!dispatcher)
|
| @@ -644,7 +645,7 @@ MojoResult Core::BeginWriteData(MojoHandle data_pipe_producer_handle,
|
|
|
| MojoResult Core::EndWriteData(MojoHandle data_pipe_producer_handle,
|
| uint32_t num_bytes_written) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_producer_handle));
|
| if (!dispatcher)
|
| @@ -657,7 +658,7 @@ MojoResult Core::ReadData(MojoHandle data_pipe_consumer_handle,
|
| void* elements,
|
| uint32_t* num_bytes,
|
| MojoReadDataFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_consumer_handle));
|
| if (!dispatcher)
|
| @@ -670,7 +671,7 @@ MojoResult Core::BeginReadData(MojoHandle data_pipe_consumer_handle,
|
| const void** buffer,
|
| uint32_t* buffer_num_bytes,
|
| MojoReadDataFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_consumer_handle));
|
| if (!dispatcher)
|
| @@ -681,7 +682,7 @@ MojoResult Core::BeginReadData(MojoHandle data_pipe_consumer_handle,
|
|
|
| MojoResult Core::EndReadData(MojoHandle data_pipe_consumer_handle,
|
| uint32_t num_bytes_read) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(
|
| GetDispatcher(data_pipe_consumer_handle));
|
| if (!dispatcher)
|
| @@ -694,7 +695,7 @@ MojoResult Core::CreateSharedBuffer(
|
| const MojoCreateSharedBufferOptions* options,
|
| uint64_t num_bytes,
|
| MojoHandle* shared_buffer_handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| MojoCreateSharedBufferOptions validated_options = {};
|
| MojoResult result = SharedBufferDispatcher::ValidateCreateOptions(
|
| options, &validated_options);
|
| @@ -723,7 +724,7 @@ MojoResult Core::DuplicateBufferHandle(
|
| MojoHandle buffer_handle,
|
| const MojoDuplicateBufferHandleOptions* options,
|
| MojoHandle* new_buffer_handle) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(GetDispatcher(buffer_handle));
|
| if (!dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -750,7 +751,7 @@ MojoResult Core::MapBuffer(MojoHandle buffer_handle,
|
| uint64_t num_bytes,
|
| void** buffer,
|
| MojoMapBufferFlags flags) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| scoped_refptr<Dispatcher> dispatcher(GetDispatcher(buffer_handle));
|
| if (!dispatcher)
|
| return MOJO_RESULT_INVALID_ARGUMENT;
|
| @@ -774,7 +775,7 @@ MojoResult Core::MapBuffer(MojoHandle buffer_handle,
|
| }
|
|
|
| MojoResult Core::UnmapBuffer(void* buffer) {
|
| - RequestContext request_context;
|
| + RequestContext request_context(RequestContext::Source::LOCAL_API_CALL);
|
| base::AutoLock lock(mapping_table_lock_);
|
| return mapping_table_.RemoveMapping(buffer);
|
| }
|
|
|