// Copyright (c) 2011 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. #ifndef CHROME_COMMON_NACL_HELPER_LINUX_H_ #define CHROME_COMMON_NACL_HELPER_LINUX_H_ #pragma once // A mini-zygote specifically for Native Client. This file defines // constants used to implement communication between the nacl_helper // process and the Chrome zygote. // Used by Helper to tell Zygote it has started successfully. #define kNaClHelperStartupAck "NACLHELPER_OK" // Used by Zygote to ask Helper to fork a new NaCl loader. #define kNaClForkRequest "NACLFORK" // The next set of constants define global Linux file descriptors. // For communications between NaCl loader and browser. // See also content/common/zygote_main_linux.cc and // http://code.google.com/p/chromium/wiki/LinuxZygote #define kNaClBrowserDescriptor 3 // For communications between NaCl loader and zygote. // We put the kNaClZygoteDescriptor on 3 together with the // kNaClBrowserDescriptor. They are never used at the same // time, and this prevents /dev/urandom from using the fd. #define kNaClZygoteDescriptor 3 // For communications between the NaCl loader process and // the SUID sandbox. #define kNaClSandboxDescriptor 5 // NOTE: kNaClBrowserDescriptor and kNaClSandboxDescriptor must match // content/browser/zygote_main_linux.cc kBrowserDescriptor and // kMagicSandboxIPCDescriptor. // A fork request from the Zygote to the helper includes an array // of three file descriptors. These constants are used as indicies // into the array. // Used to pass in the descriptor for talking to the Browser #define kNaClBrowserFDIndex 0 // The next two are used in the protocol for discovering the // child processes real PID from within the SUID sandbox. See // http://code.google.com/p/chromium/wiki/LinuxZygote #define kNaClDummyFDIndex 1 #define kNaClParentFDIndex 2 #endif // CHROME_COMMON_NACL_HELPER_LINUX_H_