summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/tools/driver/Platform.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 14:33:06 +0000
commit061da546b983eb767bad15e67af1174fb0bcf31c (patch)
tree83c78b820819d70aa40c36d90447978b300078c5 /gnu/llvm/lldb/tools/driver/Platform.cpp
parentImport LLVM 10.0.0 release including clang, lld and lldb. (diff)
downloadwireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.tar.xz
wireguard-openbsd-061da546b983eb767bad15e67af1174fb0bcf31c.zip
Import LLVM 10.0.0 release including clang, lld and lldb.
ok hackroom tested by plenty
Diffstat (limited to 'gnu/llvm/lldb/tools/driver/Platform.cpp')
-rw-r--r--gnu/llvm/lldb/tools/driver/Platform.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/tools/driver/Platform.cpp b/gnu/llvm/lldb/tools/driver/Platform.cpp
new file mode 100644
index 00000000000..f3a71eb79de
--- /dev/null
+++ b/gnu/llvm/lldb/tools/driver/Platform.cpp
@@ -0,0 +1,59 @@
+//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// this file is only relevant for Visual C++
+#if defined(_WIN32)
+
+#include <assert.h>
+#include <process.h>
+#include <stdlib.h>
+
+#include "Platform.h"
+#include "llvm/Support/ErrorHandling.h"
+
+int ioctl(int d, int request, ...) {
+ switch (request) {
+ // request the console windows size
+ case (TIOCGWINSZ): {
+ va_list vl;
+ va_start(vl, request);
+ // locate the window size structure on stack
+ winsize *ws = va_arg(vl, winsize *);
+ // get screen buffer information
+ CONSOLE_SCREEN_BUFFER_INFO info;
+ if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info) ==
+ TRUE)
+ // fill in the columns
+ ws->ws_col = info.dwMaximumWindowSize.X;
+ va_end(vl);
+ return 0;
+ } break;
+ default:
+ llvm_unreachable("Not implemented!");
+ }
+}
+
+int kill(pid_t pid, int sig) {
+ // is the app trying to kill itself
+ if (pid == getpid())
+ exit(sig);
+ //
+ llvm_unreachable("Not implemented!");
+}
+
+int tcsetattr(int fd, int optional_actions, const struct termios *termios_p) {
+ llvm_unreachable("Not implemented!");
+}
+
+int tcgetattr(int fildes, struct termios *termios_p) {
+ // assert( !"Not implemented!" );
+ // error return value (0=success)
+ return -1;
+}
+
+#endif