1 //===-- Platform.cpp --------------------------------------------*- 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 
10 // this file is only relevant for Visual C++
11 #if defined(_WIN32)
12 
13 #include <assert.h>
14 #include <process.h>
15 #include <stdlib.h>
16 
17 #include "Platform.h"
18 
19 int ioctl(int d, int request, ...) {
20   switch (request) {
21   // request the console windows size
22   case (TIOCGWINSZ): {
23     va_list vl;
24     va_start(vl, request);
25     // locate the window size structure on stack
26     winsize *ws = va_arg(vl, winsize *);
27     // get screen buffer information
28     CONSOLE_SCREEN_BUFFER_INFO info;
29     if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info) ==
30         TRUE)
31       // fill in the columns
32       ws->ws_col = info.dwMaximumWindowSize.X;
33     va_end(vl);
34     return 0;
35   } break;
36   default:
37     assert(!"Not implemented!");
38   }
39   return -1;
40 }
41 
42 int kill(pid_t pid, int sig) {
43   // is the app trying to kill itself
44   if (pid == getpid())
45     exit(sig);
46   //
47   assert(!"Not implemented!");
48   return -1;
49 }
50 
51 int tcsetattr(int fd, int optional_actions, const struct termios *termios_p) {
52   assert(!"Not implemented!");
53   return -1;
54 }
55 
56 int tcgetattr(int fildes, struct termios *termios_p) {
57   //  assert( !"Not implemented!" );
58   // error return value (0=success)
59   return -1;
60 }
61 
62 #endif
63