summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/ConnectionSharedMemory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core/ConnectionSharedMemory.cpp')
-rw-r--r--lldb/source/Core/ConnectionSharedMemory.cpp193
1 files changed, 84 insertions, 109 deletions
diff --git a/lldb/source/Core/ConnectionSharedMemory.cpp b/lldb/source/Core/ConnectionSharedMemory.cpp
index 46948b842e0..74487b017e4 100644
--- a/lldb/source/Core/ConnectionSharedMemory.cpp
+++ b/lldb/source/Core/ConnectionSharedMemory.cpp
@@ -15,10 +15,10 @@
#ifdef _WIN32
#include "lldb/Host/windows/windows.h"
#else
+#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <fcntl.h>
#endif
// C++ Includes
@@ -26,8 +26,8 @@
#include <cstdlib>
// Other libraries and framework includes
-#include "llvm/Support/MathExtras.h"
#include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/MathExtras.h"
// Project includes
#include "lldb/Core/Communication.h"
@@ -37,135 +37,110 @@
using namespace lldb;
using namespace lldb_private;
-ConnectionSharedMemory::ConnectionSharedMemory () :
- Connection(),
- m_name(),
- m_fd (-1),
- m_mmap()
-{
-}
-
-ConnectionSharedMemory::~ConnectionSharedMemory ()
-{
- Disconnect(nullptr);
-}
-
-bool
-ConnectionSharedMemory::IsConnected () const
-{
- return m_fd >= 0;
-}
-
-ConnectionStatus
-ConnectionSharedMemory::Connect (const char *s, Error *error_ptr)
-{
-// if (s && s[0])
-// {
-// if (strstr(s, "shm-create://"))
-// {
-// }
-// else if (strstr(s, "shm-connect://"))
-// {
-// }
-// if (error_ptr)
-// error_ptr->SetErrorStringWithFormat ("unsupported connection URL: '%s'", s);
-// return eConnectionStatusError;
-// }
- if (error_ptr)
- error_ptr->SetErrorString("invalid connect arguments");
- return eConnectionStatusError;
+ConnectionSharedMemory::ConnectionSharedMemory()
+ : Connection(), m_name(), m_fd(-1), m_mmap() {}
+
+ConnectionSharedMemory::~ConnectionSharedMemory() { Disconnect(nullptr); }
+
+bool ConnectionSharedMemory::IsConnected() const { return m_fd >= 0; }
+
+ConnectionStatus ConnectionSharedMemory::Connect(const char *s,
+ Error *error_ptr) {
+ // if (s && s[0])
+ // {
+ // if (strstr(s, "shm-create://"))
+ // {
+ // }
+ // else if (strstr(s, "shm-connect://"))
+ // {
+ // }
+ // if (error_ptr)
+ // error_ptr->SetErrorStringWithFormat ("unsupported connection
+ // URL: '%s'", s);
+ // return eConnectionStatusError;
+ // }
+ if (error_ptr)
+ error_ptr->SetErrorString("invalid connect arguments");
+ return eConnectionStatusError;
}
-ConnectionStatus
-ConnectionSharedMemory::Disconnect (Error *error_ptr)
-{
- m_mmap.Clear();
- if (!m_name.empty())
- {
+ConnectionStatus ConnectionSharedMemory::Disconnect(Error *error_ptr) {
+ m_mmap.Clear();
+ if (!m_name.empty()) {
#ifdef _WIN32
- close(m_fd);
- m_fd = -1;
+ close(m_fd);
+ m_fd = -1;
#else
- shm_unlink (m_name.c_str());
+ shm_unlink(m_name.c_str());
#endif
- m_name.clear();
- }
- return eConnectionStatusSuccess;
+ m_name.clear();
+ }
+ return eConnectionStatusSuccess;
}
-size_t
-ConnectionSharedMemory::Read (void *dst,
- size_t dst_len,
- uint32_t timeout_usec,
- ConnectionStatus &status,
- Error *error_ptr)
-{
- status = eConnectionStatusSuccess;
- return 0;
+size_t ConnectionSharedMemory::Read(void *dst, size_t dst_len,
+ uint32_t timeout_usec,
+ ConnectionStatus &status,
+ Error *error_ptr) {
+ status = eConnectionStatusSuccess;
+ return 0;
}
-size_t
-ConnectionSharedMemory::Write (const void *src, size_t src_len, ConnectionStatus &status, Error *error_ptr)
-{
- status = eConnectionStatusSuccess;
- return 0;
+size_t ConnectionSharedMemory::Write(const void *src, size_t src_len,
+ ConnectionStatus &status,
+ Error *error_ptr) {
+ status = eConnectionStatusSuccess;
+ return 0;
}
-std::string
-ConnectionSharedMemory::GetURI()
-{
- // TODO: fix when Connect is fixed?
- return "";
+std::string ConnectionSharedMemory::GetURI() {
+ // TODO: fix when Connect is fixed?
+ return "";
}
-ConnectionStatus
-ConnectionSharedMemory::BytesAvailable (uint32_t timeout_usec, Error *error_ptr)
-{
- return eConnectionStatusLostConnection;
+ConnectionStatus ConnectionSharedMemory::BytesAvailable(uint32_t timeout_usec,
+ Error *error_ptr) {
+ return eConnectionStatusLostConnection;
}
-ConnectionStatus
-ConnectionSharedMemory::Open (bool create, const char *name, size_t size, Error *error_ptr)
-{
- if (m_fd != -1)
- {
- if (error_ptr)
- error_ptr->SetErrorString("already open");
- return eConnectionStatusError;
- }
-
- m_name.assign (name);
+ConnectionStatus ConnectionSharedMemory::Open(bool create, const char *name,
+ size_t size, Error *error_ptr) {
+ if (m_fd != -1) {
+ if (error_ptr)
+ error_ptr->SetErrorString("already open");
+ return eConnectionStatusError;
+ }
+
+ m_name.assign(name);
#ifdef _WIN32
- HANDLE handle = INVALID_HANDLE_VALUE;
- std::wstring wname;
- if (llvm::ConvertUTF8toWide(name, wname))
- {
- if (create)
- {
- handle = CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, llvm::Hi_32(size),
- llvm::Lo_32(size), wname.c_str());
- }
- else
- handle = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, wname.c_str());
- }
-
- m_fd = _open_osfhandle((intptr_t)handle, 0);
+ HANDLE handle = INVALID_HANDLE_VALUE;
+ std::wstring wname;
+ if (llvm::ConvertUTF8toWide(name, wname)) {
+ if (create) {
+ handle = CreateFileMappingW(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE,
+ llvm::Hi_32(size), llvm::Lo_32(size),
+ wname.c_str());
+ } else
+ handle = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, wname.c_str());
+ }
+
+ m_fd = _open_osfhandle((intptr_t)handle, 0);
#else
- int oflag = O_RDWR;
- if (create)
- oflag |= O_CREAT;
- m_fd = ::shm_open (m_name.c_str(), oflag, S_IRUSR|S_IWUSR);
+ int oflag = O_RDWR;
+ if (create)
+ oflag |= O_CREAT;
+ m_fd = ::shm_open(m_name.c_str(), oflag, S_IRUSR | S_IWUSR);
- if (create)
- ::ftruncate (m_fd, size);
+ if (create)
+ ::ftruncate(m_fd, size);
#endif
- if (m_mmap.MemoryMapFromFileDescriptor(m_fd, 0, size, true, false) == size)
- return eConnectionStatusSuccess;
+ if (m_mmap.MemoryMapFromFileDescriptor(m_fd, 0, size, true, false) == size)
+ return eConnectionStatusSuccess;
- Disconnect(nullptr);
- return eConnectionStatusError;
+ Disconnect(nullptr);
+ return eConnectionStatusError;
}
#endif // __ANDROID_NDK__
OpenPOWER on IntegriCloud