60 lines · cpp
1//===-- Platform.cpp --------------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// this file is only relevant for Visual C++10#if defined(_WIN32)11 12#include <cassert>13#include <cstdlib>14#include <process.h>15 16#include "Platform.h"17#include "llvm/Support/ErrorHandling.h"18 19int ioctl(int d, int request, ...) {20 switch (request) {21 // request the console windows size22 case (TIOCGWINSZ): {23 va_list vl;24 va_start(vl, request);25 // locate the window size structure on stack26 winsize *ws = va_arg(vl, winsize *);27 // get screen buffer information28 CONSOLE_SCREEN_BUFFER_INFO info;29 if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info) ==30 TRUE)31 // fill in the columns32 ws->ws_col = info.dwMaximumWindowSize.X;33 va_end(vl);34 return 0;35 } break;36 default:37 llvm_unreachable("Not implemented!");38 }39}40 41int kill(pid_t pid, int sig) {42 // is the app trying to kill itself43 if (pid == getpid())44 exit(sig);45 //46 llvm_unreachable("Not implemented!");47}48 49int tcsetattr(int fd, int optional_actions, const struct termios *termios_p) {50 llvm_unreachable("Not implemented!");51}52 53int tcgetattr(int fildes, struct termios *termios_p) {54 // assert( !"Not implemented!" );55 // error return value (0=success)56 return -1;57}58 59#endif60