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