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

Side by Side Diff: components/nacl/loader/nacl_ipc_adapter.cc

Issue 1460133002: Allow Mach shm to be passed to NaCl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/nacl/loader/nacl_ipc_adapter.h" 5 #include "components/nacl/loader/nacl_ipc_adapter.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 return false; 534 return false;
535 535
536 // Now add any descriptors we found to rewritten_msg. |handles| is usually 536 // Now add any descriptors we found to rewritten_msg. |handles| is usually
537 // empty, unless we read a message containing a FD or handle. 537 // empty, unless we read a message containing a FD or handle.
538 for (Handles::const_iterator iter = handles.begin(); 538 for (Handles::const_iterator iter = handles.begin();
539 iter != handles.end(); 539 iter != handles.end();
540 ++iter) { 540 ++iter) {
541 scoped_ptr<NaClDescWrapper> nacl_desc; 541 scoped_ptr<NaClDescWrapper> nacl_desc;
542 switch (iter->type()) { 542 switch (iter->type()) {
543 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { 543 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: {
544 const base::SharedMemoryHandle& shm_handle = iter->shmem(); 544 const base::SharedMemoryHandle& shm_handle = iter->shmem();
Mark Seaborn 2015/11/20 18:55:54 For readability, how about splitting out this conv
erikchen 2015/11/20 21:51:12 Done.
545 uint32_t size = iter->size(); 545 uint32_t size = iter->size();
546 #if defined(OS_MACOSX) && !defined(OS_IOS)
Mark Seaborn 2015/11/20 18:55:54 This file shouldn't be getting compiled for iOS.
erikchen 2015/11/20 21:51:12 Done.
547 switch (shm_handle.GetType()) {
548 case base::SharedMemoryHandle::MACH:
549 nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMachMake(
550 shm_handle.GetMemoryObject(),
551 static_cast<size_t>(size))));
552 break;
553 case base::SharedMemoryHandle::POSIX:
554 nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMake(
Mark Seaborn 2015/11/20 18:55:54 This is the same as the code in the #else, so you
erikchen 2015/11/20 21:51:12 Done.
555 base::SharedMemory::GetFdFromSharedMemoryHandle(shm_handle),
556 static_cast<size_t>(size))));
557 break;
558 }
559 #else
546 nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMake( 560 nacl_desc.reset(new NaClDescWrapper(NaClDescImcShmMake(
547 #if defined(OS_WIN) 561 #if defined(OS_WIN)
548 shm_handle.GetHandle(), 562 shm_handle.GetHandle(),
549 #else 563 #else
550 base::SharedMemory::GetFdFromSharedMemoryHandle(shm_handle), 564 base::SharedMemory::GetFdFromSharedMemoryHandle(shm_handle),
551 #endif 565 #endif // defined(OS_WIN)
552 static_cast<size_t>(size)))); 566 static_cast<size_t>(size))));
567 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
553 break; 568 break;
554 } 569 }
555 case ppapi::proxy::SerializedHandle::SOCKET: { 570 case ppapi::proxy::SerializedHandle::SOCKET: {
556 nacl_desc.reset(new NaClDescWrapper(NaClDescSyncSocketMake( 571 nacl_desc.reset(new NaClDescWrapper(NaClDescSyncSocketMake(
557 #if defined(OS_WIN) 572 #if defined(OS_WIN)
558 iter->descriptor() 573 iter->descriptor()
559 #else 574 #else
560 iter->descriptor().fd 575 iter->descriptor().fd
561 #endif 576 #endif
562 ))); 577 )));
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 header.flags = msg.flags(); 842 header.flags = msg.flags();
828 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count()); 843 header.num_fds = static_cast<uint16>(rewritten_msg->desc_count());
829 844
830 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); 845 rewritten_msg->SetData(header, msg.payload(), msg.payload_size());
831 locked_data_.to_be_received_.push(rewritten_msg); 846 locked_data_.to_be_received_.push(rewritten_msg);
832 } 847 }
833 848
834 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { 849 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) {
835 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); 850 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags);
836 } 851 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698