common.h revision 116680a4aac90f2aa7413d9095a592090648e557
1// Copyright 2014 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 MOJO_SPY_COMMON_H_
6#define MOJO_SPY_COMMON_H_
7
8#include <stdint.h>
9
10namespace mojo {
11
12#pragma pack(push, 1)
13
14// Mojo message header structures. These are based off the Mojo spec.
15
16enum {
17  kMessageExpectsResponse = 1 << 0,
18  kMessageIsResponse      = 1 << 1
19};
20
21struct MojoCommonHeader {
22  uint32_t num_bytes;
23  uint32_t num_fields;
24};
25
26struct MojoMessageHeader : public MojoCommonHeader {
27  uint32_t name;
28  uint32_t flags;
29};
30
31struct MojoRequestHeader : public MojoMessageHeader {
32  uint64_t request_id;
33};
34
35struct MojoMessageData  {
36  MojoRequestHeader header;
37};
38
39#pragma pack(pop)
40
41}  // namespace mojo
42
43#endif  // MOJO_SPY_COMMON_H_
44