#include <vector>
#include "base/basictypes.h"
+#include "base/memory/shared_memory.h"
#include "base/process/process_handle.h"
#include "build/build_config.h"
#include "ipc/ipc_channel.h"
}
#endif
+// We allocate a page of shared memory for sharing crash information from
+// trusted code in the NaCl process to the renderer.
+static const int kNaClCrashInfoShmemSize = 4096;
+static const int kNaClCrashInfoMaxLogSize = 1024;
// Parameters sent to the NaCl process when we start it.
struct NaClStartParams {
bool uses_irt;
bool enable_dyncode_syscalls;
+ // For NaCl <-> renderer crash information reporting.
+ base::SharedMemoryHandle crash_info_shmem_handle;
+
// NOTE: Any new fields added here must also be added to the IPC
// serialization in nacl_messages.h and (for POD fields) the constructor
// in nacl_types.cc.
const IPC::ChannelHandle& trusted_ipc_channel_handle,
const IPC::ChannelHandle& manifest_service_ipc_channel_handle,
base::ProcessId plugin_pid,
- int plugin_child_id);
+ int plugin_child_id,
+ base::SharedMemoryHandle crash_info_shmem_handle);
~NaClLaunchResult();
// For plugin loader <-> renderer IMC communication.
base::ProcessId plugin_pid;
int plugin_child_id;
+
+ // For NaCl <-> renderer crash information reporting.
+ base::SharedMemoryHandle crash_info_shmem_handle;
};
} // namespace nacl