common.h revision 116680a4aac90f2aa7413d9095a592090648e557
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef MOJO_SPY_COMMON_H_ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define MOJO_SPY_COMMON_H_ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <stdint.h> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace mojo { 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#pragma pack(push, 1) 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Mojo message header structures. These are based off the Mojo spec. 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdochenum { 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch kMessageExpectsResponse = 1 << 0, 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch kMessageIsResponse = 1 << 1 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct MojoCommonHeader { 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint32_t num_bytes; 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint32_t num_fields; 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct MojoMessageHeader : public MojoCommonHeader { 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint32_t name; 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint32_t flags; 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct MojoRequestHeader : public MojoMessageHeader { 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch uint64_t request_id; 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct MojoMessageData { 36116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch MojoRequestHeader header; 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#pragma pack(pop) 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace mojo 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // MOJO_SPY_COMMON_H_ 44