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