1//===-- ConnectionMachPort.h --------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#if defined(__APPLE__) 10 11#ifndef liblldb_ConnectionMachPort_h_ 12#define liblldb_ConnectionMachPort_h_ 13 14// C Includes 15#include <mach/mach.h> 16 17// C++ Includes 18#include <string> 19 20// Other libraries and framework includes 21// Project includes 22#include "lldb/Core/Connection.h" 23 24class ConnectionMachPort : 25 public lldb_private::Connection 26{ 27public: 28 ConnectionMachPort (); 29 30 virtual 31 ~ConnectionMachPort (); 32 33 virtual bool 34 IsConnected () const; 35 36 virtual lldb::ConnectionStatus 37 BytesAvailable (uint32_t timeout_usec, lldb_private::Error *error_ptr); 38 39 virtual lldb::ConnectionStatus 40 Connect (const char *s, lldb_private::Error *error_ptr); 41 42 virtual lldb::ConnectionStatus 43 Disconnect (lldb_private::Error *error_ptr); 44 45 virtual size_t 46 Read (void *dst, 47 size_t dst_len, 48 uint32_t timeout_usec, 49 lldb::ConnectionStatus &status, 50 lldb_private::Error *error_ptr); 51 52 virtual size_t 53 Write (const void *src, 54 size_t src_len, 55 lldb::ConnectionStatus &status, 56 lldb_private::Error *error_ptr); 57 58 lldb::ConnectionStatus 59 BootstrapCheckIn (const char *port_name, 60 lldb_private::Error *error_ptr); 61 62 lldb::ConnectionStatus 63 BootstrapLookup (const char *port_name, 64 lldb_private::Error *error_ptr); 65 66 struct PayloadType 67 { 68 uint32_t command; 69 uint32_t data_length; 70 uint8_t data[32]; 71 }; 72 73 kern_return_t 74 Send (const PayloadType &payload); 75 76 kern_return_t 77 Receive (PayloadType &payload); 78 79 80protected: 81 mach_port_t m_task; 82 mach_port_t m_port; 83 84private: 85 86 87 DISALLOW_COPY_AND_ASSIGN (ConnectionMachPort); 88}; 89 90#endif // liblldb_ConnectionMachPort_h_ 91 92#endif // #if defined(__APPLE__) 93