13345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Use of this source code is governed by a BSD-style license that can be 306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// found in the LICENSE file. 406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Defines messages between the browser and NaCl process. 606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Multiply-included message file, no traditional include guard. 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/process.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/nacl_types.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ipc/ipc_message_macros.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 1206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#ifndef CHROME_COMMON_NACL_MESSAGES_H_ 1306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#define CHROME_COMMON_NACL_MESSAGES_H_ 1406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch 1506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#endif // CHROME_COMMON_NACL_MESSAGES_H_ 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define IPC_MESSAGE_START NaClMsgStart 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen//----------------------------------------------------------------------------- 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// NaClProcess messages 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// These are messages sent from the browser to the NaCl process. 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Tells the NaCl process to start. 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenIPC_MESSAGE_CONTROL1(NaClProcessMsg_Start, 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::vector<nacl::FileDescriptor> /* sockets */) 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Tells the NaCl broker to launch a NaCl loader process. 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenIPC_MESSAGE_CONTROL1(NaClProcessMsg_LaunchLoaderThroughBroker, 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::wstring /* channel ID for the loader */) 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Notify the browser process that the loader was launched successfully. 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenIPC_MESSAGE_CONTROL2(NaClProcessMsg_LoaderLaunched, 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::wstring, /* channel ID for the loader */ 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen base::ProcessHandle /* loader process handle */) 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Notify the broker that all loader processes have been terminated and it 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// should shutdown. 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenIPC_MESSAGE_CONTROL0(NaClProcessMsg_StopBroker) 38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 39