brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 0891cfa Raw
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