static inline void set_raw_mode(void) { struct termios buf = save_termios; k_printf("KBD(raw): Setting keyboard to RAW mode\n"); ioctl(kbd_fd, KDSKBMODE, K_RAW); buf.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG); buf.c_iflag &= ~(IMAXBEL | IGNBRK | IGNCR | IGNPAR | BRKINT | INLCR | ICRNL | INPCK | ISTRIP | IXON | IUCLC | IXANY | IXOFF | IXON); buf.c_cflag &= ~(CSIZE | PARENB); buf.c_cflag |= CS8; buf.c_oflag &= ~(OCRNL | OLCUC | ONLCR | OPOST); buf.c_cc[VMIN] = 1; buf.c_cc[VTIME] = 0; k_printf("KBD(raw): Setting TERMIOS Structure.\n"); if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &buf) < 0) k_printf("KBD(raw): Setting TERMIOS structure failed.\n"); #if 0 /* debug code */ if (tcgetattr(kbd_fd, &buf) < 0) { k_printf("KBD(raw): Termios ERROR\n"); } print_termios(buf); #endif }
static inline void set_raw_mode(void) { struct termios buf = save_termios; if (config.console_keyb == KEYB_RAW) { k_printf("KBD(raw): Setting keyboard to RAW mode\n"); ioctl(kbd_fd, KDSKBMODE, K_RAW); } cfmakeraw(&buf); k_printf("KBD(raw): Setting TERMIOS Structure.\n"); if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &buf) < 0) k_printf("KBD(raw): Setting TERMIOS structure failed.\n"); #if 0 /* debug code */ if (tcgetattr(kbd_fd, &buf) < 0) { k_printf("KBD(raw): Termios ERROR\n"); } print_termios(buf); #endif }