Home | History | Annotate | Download | only in message_lib
      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 
     44 namespace ipc_fuzzer {
     45 
     46 struct 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 
     56 struct 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