summaryrefslogtreecommitdiffstats
path: root/lldb/tools/driver/Platform.cpp
blob: b1b7de8e8a2287f155947ebb44efbf04377fd71a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//===-- Platform.cpp --------------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// 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
OpenPOWER on IntegriCloud