1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_FILE_FORMAT_H_ 6#define TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_FILE_FORMAT_H_ 7 8#include "base/basictypes.h" 9 10// Message file contains IPC messages and message names. Each message type 11// has a NameTableEntry mapping the type to a name. 12// 13// |========================| 14// | FileHeader | 15// |========================| 16// | Message | 17// |------------------------| 18// | Message | 19// |------------------------| 20// | ... | 21// |========================| 22// | NameTableEntry | 23// |------------------------| 24// | NameTableEntry | 25// |------------------------| 26// | ... | 27// |------------------------| 28// | type = 0x0002070f | 29// | string_table_offset = ----+ 30// |------------------------| | 31// | ... | | 32// |========================| | 33// | message name | | 34// |------------------------| | 35// | message name | | 36// |------------------------| | 37// | ... | | 38// |------------------------| | 39// | "FrameHostMsg_OpenURL" <--+ 40// |------------------------| 41// | ... | 42// |========================| 43 44namespace ipc_fuzzer { 45 46struct FileHeader { 47 static const uint32 kMagicValue = 0x1bcf11ee; 48 static const uint32 kCurrentVersion = 1; 49 50 uint32 magic; 51 uint32 version; 52 uint32 message_count; 53 uint32 name_count; 54}; 55 56struct NameTableEntry { 57 uint32 type; 58 uint32 string_table_offset; 59}; 60 61} // namespace ipc_fuzzer 62 63#endif // TOOLS_IPC_FUZZER_MESSAGE_LIB_MESSAGE_FILE_FORMAT_H_ 64