| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "content/common/child_process_sandbox_support_impl_linux.h" |
| |
| #include "base/pickle.h" |
| #include "base/posix/unix_domain_socket_linux.h" |
| #include "content/common/sandbox_linux/sandbox_linux.h" |
| |
| namespace content { |
| |
| int MakeSharedMemorySegmentViaIPC(size_t length, bool executable) { |
| Pickle request; |
| request.WriteInt(LinuxSandbox::METHOD_MAKE_SHARED_MEMORY_SEGMENT); |
| request.WriteUInt32(length); |
| request.WriteBool(executable); |
| uint8_t reply_buf[10]; |
| int result_fd; |
| ssize_t result = UnixDomainSocket::SendRecvMsg(GetSandboxFD(), |
| reply_buf, sizeof(reply_buf), |
| &result_fd, request); |
| if (result == -1) |
| return -1; |
| return result_fd; |
| } |
| |
| } // namespace content |