106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton//===-- ConnectionSharedMemory.h --------------------------------*- C++ -*-===// 206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// 306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// The LLVM Compiler Infrastructure 406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// 506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// This file is distributed under the University of Illinois Open Source 606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// License. See LICENSE.TXT for details. 706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// 806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton//===----------------------------------------------------------------------===// 906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 1006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#ifndef liblldb_ConnectionSharedMemory_h_ 1106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#define liblldb_ConnectionSharedMemory_h_ 1206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 1306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// C Includes 1406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// C++ Includes 1506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#include <string> 1606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 1706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// Other libraries and framework includes 1806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton// Project includes 1906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#include "lldb/Core/Connection.h" 2006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#include "lldb/Core/DataBufferMemoryMap.h" 2106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 2206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Claytonnamespace lldb_private { 2306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 2406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Claytonclass ConnectionSharedMemory : 2506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton public Connection 2606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton{ 2706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Claytonpublic: 2806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 2906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton ConnectionSharedMemory (); 3006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 3106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual 3206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton ~ConnectionSharedMemory (); 3306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 3406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual bool 3506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton IsConnected () const; 3606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 3706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual lldb::ConnectionStatus 3806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton BytesAvailable (uint32_t timeout_usec, Error *error_ptr); 3906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 4006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual lldb::ConnectionStatus 4106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton Connect (const char *s, Error *error_ptr); 4206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 4306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual lldb::ConnectionStatus 4406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton Disconnect (Error *error_ptr); 4506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 4606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual size_t 4763afdb07641f04aa7b60d895120b056124d3469bGreg Clayton Read (void *dst, 4863afdb07641f04aa7b60d895120b056124d3469bGreg Clayton size_t dst_len, 4963afdb07641f04aa7b60d895120b056124d3469bGreg Clayton uint32_t timeout_usec, 5063afdb07641f04aa7b60d895120b056124d3469bGreg Clayton lldb::ConnectionStatus &status, 5163afdb07641f04aa7b60d895120b056124d3469bGreg Clayton Error *error_ptr); 5206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 5306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton virtual size_t 5406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton Write (const void *src, size_t src_len, lldb::ConnectionStatus &status, Error *error_ptr); 5506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 5606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton lldb::ConnectionStatus 5706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton Open (bool create, const char *name, size_t size, Error *error_ptr); 5806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 5906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Claytonprotected: 6006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 6106d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton std::string m_name; 6206d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton int m_fd; // One buffer that contains all we need 6306d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton DataBufferMemoryMap m_mmap; 6406d7cc86937caca0acf2b990a02a641dc9c7579aGreg Claytonprivate: 6506d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton DISALLOW_COPY_AND_ASSIGN (ConnectionSharedMemory); 6606d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton}; 6706d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 6806d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton} // namespace lldb_private 6906d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton 7006d7cc86937caca0acf2b990a02a641dc9c7579aGreg Clayton#endif // liblldb_ConnectionSharedMemory_h_ 71