cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

term.c (728B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include "term.h"
      3#include <stdlib.h>
      4#include <termios.h>
      5#include <unistd.h>
      6#include <sys/ioctl.h>
      7
      8void get_term_dimensions(struct winsize *ws)
      9{
     10	char *s = getenv("LINES");
     11
     12	if (s != NULL) {
     13		ws->ws_row = atoi(s);
     14		s = getenv("COLUMNS");
     15		if (s != NULL) {
     16			ws->ws_col = atoi(s);
     17			if (ws->ws_row && ws->ws_col)
     18				return;
     19		}
     20	}
     21#ifdef TIOCGWINSZ
     22	if (ioctl(1, TIOCGWINSZ, ws) == 0 &&
     23	    ws->ws_row && ws->ws_col)
     24		return;
     25#endif
     26	ws->ws_row = 25;
     27	ws->ws_col = 80;
     28}
     29
     30void set_term_quiet_input(struct termios *old)
     31{
     32	struct termios tc;
     33
     34	tcgetattr(0, old);
     35	tc = *old;
     36	tc.c_lflag &= ~(ICANON | ECHO);
     37	tc.c_cc[VMIN] = 0;
     38	tc.c_cc[VTIME] = 0;
     39	tcsetattr(0, TCSANOW, &tc);
     40}