| // Copyright 2018 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef SRC_DEVELOPER_DEBUG_IPC_CLIENT_PROTOCOL_H_ | |
| #define SRC_DEVELOPER_DEBUG_IPC_CLIENT_PROTOCOL_H_ | |
| #include "src/developer/debug/ipc/protocol.h" | |
| namespace debug_ipc { | |
| class MessageReader; | |
| class MessageWriter; | |
| // Hello. | |
| void WriteRequest(const HelloRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, HelloReply* reply, uint32_t* transaction_id); | |
| // Status. | |
| void WriteRequest(const StatusRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, StatusReply* reply, uint32_t* transaction_id); | |
| // Launch. | |
| void WriteRequest(const LaunchRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, LaunchReply* reply, uint32_t* transaction_id); | |
| // Stop. | |
| void WriteRequest(const KillRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, KillReply* reply, uint32_t* transaction_id); | |
| // Attach. | |
| void WriteRequest(const AttachRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, AttachReply* reply, uint32_t* transaction_id); | |
| // Detach. | |
| void WriteRequest(const DetachRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, DetachReply* reply, uint32_t* transaction_id); | |
| // Pause. | |
| void WriteRequest(const PauseRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, PauseReply* reply, uint32_t* transaction_id); | |
| // QuitAgent. | |
| void WriteRequest(const QuitAgentRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, QuitAgentReply* reply, uint32_t* transaction_id); | |
| // Resume. | |
| void WriteRequest(const ResumeRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ResumeReply* reply, uint32_t* transaction_id); | |
| // ProcessTree. | |
| void WriteRequest(const ProcessTreeRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ProcessTreeReply* reply, uint32_t* transaction_id); | |
| // Threads. | |
| void WriteRequest(const ThreadsRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ThreadsReply* reply, uint32_t* transaction_id); | |
| // ReadMemory. | |
| void WriteRequest(const ReadMemoryRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ReadMemoryReply* reply, uint32_t* transaction_id); | |
| // ReadRegisters | |
| void WriteRequest(const ReadRegistersRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ReadRegistersReply* reply, uint32_t* transaction_id); | |
| // WriteRegisters | |
| void WriteRequest(const WriteRegistersRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, WriteRegistersReply* reply, uint32_t* transaction_id); | |
| // AddOrChangeBreakpoint. | |
| void WriteRequest(const AddOrChangeBreakpointRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, AddOrChangeBreakpointReply* reply, uint32_t* transaction_id); | |
| // RemoveBreakpoint. | |
| void WriteRequest(const RemoveBreakpointRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, RemoveBreakpointReply* reply, uint32_t* transaction_id); | |
| // SysInfo | |
| void WriteRequest(const SysInfoRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, SysInfoReply* reply, uint32_t* transaction_id); | |
| // ProcessStatus. | |
| void WriteRequest(const ProcessStatusRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ProcessStatusReply* reply, uint32_t* transaction_id); | |
| // ThreadStatus. | |
| void WriteRequest(const ThreadStatusRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ThreadStatusReply* reply, uint32_t* transaction_id); | |
| // Modules. | |
| void WriteRequest(const ModulesRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ModulesReply* reply, uint32_t* transaction_id); | |
| // Address space. | |
| void WriteRequest(const AddressSpaceRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, AddressSpaceReply* reply, uint32_t* transaction_id); | |
| // JobFilter. | |
| void WriteRequest(const JobFilterRequest& request, uint32_t transaction_id, MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, JobFilterReply* reply, uint32_t* transaction_id); | |
| // WriteMemory. | |
| void WriteRequest(const WriteMemoryRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, WriteMemoryReply* reply, uint32_t* transaction_id); | |
| // LoadInfoHandleTable. | |
| void WriteRequest(const LoadInfoHandleTableRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, LoadInfoHandleTableReply* reply, uint32_t* transaction_id); | |
| // UpdateGlobalSettings. | |
| void WriteRequest(const UpdateGlobalSettingsRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, UpdateGlobalSettingsReply* reply, uint32_t* transaction_id); | |
| // ConfigAgent. | |
| void WriteRequest(const ConfigAgentRequest& request, uint32_t transaction_id, | |
| MessageWriter* writer); | |
| bool ReadReply(MessageReader* reader, ConfigAgentReply* reply, uint32_t* transaction_id); | |
| // Notifications --------------------------------------------------------------- | |
| // | |
| // (These don't have a "request"/"reply".) | |
| bool ReadNotifyProcessExiting(MessageReader*, NotifyProcessExiting*); | |
| bool ReadNotifyProcessStarting(MessageReader*, NotifyProcessStarting*); | |
| bool ReadNotifyThread(MessageReader*, NotifyThread*); | |
| bool ReadNotifyException(MessageReader*, NotifyException*); | |
| bool ReadNotifyModules(MessageReader*, NotifyModules*); | |
| bool ReadNotifyIO(MessageReader*, NotifyIO*); | |
| } // namespace debug_ipc | |
| #endif // SRC_DEVELOPER_DEBUG_IPC_CLIENT_PROTOCOL_H_ |