|
CS318 - Pintos
Pintos source browser for JHU CS318 course
|
#include <errno.h>#include <fcntl.h>#include <signal.h>#include <stdarg.h>#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/ioctl.h>#include <sys/stat.h>#include <sys/time.h>#include <sys/types.h>#include <sys/wait.h>#include <termios.h>#include <unistd.h>
Go to the source code of this file.
Macros | |
| #define | _GNU_SOURCE 1 |
Functions | |
| static void | fail_io (const char *msg,...) |
| Prints MSG, formatting as with printf(), plus an error message based on errno, and exits. More... | |
| static void | make_noncanon (int fd, int vmin, int vtime) |
| If FD is a terminal, configures it for noncanonical input mode with VMIN and VTIME set as indicated. More... | |
| static void | make_nonblocking (int fd, bool nonblocking) |
| Make FD non-blocking if NONBLOCKING is true, or blocking if NONBLOCKING is false. More... | |
| static void | handle_error (ssize_t retval, int *fd, bool fd_is_pty, const char *call) |
| Handle a read or write on *FD, which is the pty if FD_IS_PTY is true, that returned end-of-file or error indication RETVAL. More... | |
| static void | relay (int pty, int dead_child_fd) |
| Copies data from stdin to PTY and from PTY to stdout until no more data can be read or written. More... | |
| static void | sigchld_handler (int signo __attribute__((unused))) |
| int | main (int argc __attribute__((unused)), char *argv[]) |
Variables | |
| static int | dead_child_fd |
| #define _GNU_SOURCE 1 |
Definition at line 1 of file squish-pty.c.
|
static |
Prints MSG, formatting as with printf(), plus an error message based on errno, and exits.
Definition at line 28 of file squish-pty.c.
References exit(), EXIT_FAILURE, msg(), va_end, and va_start.
Referenced by handle_error(), main(), make_nonblocking(), make_noncanon(), and relay().


|
static |
Handle a read or write on *FD, which is the pty if FD_IS_PTY is true, that returned end-of-file or error indication RETVAL.
The system call is named CALL, for use in error messages. Sets *FD to -1 if the fd is no longer readable or writable.
Definition at line 82 of file squish-pty.c.
References close(), and fail_io().
Referenced by relay().


| int main | ( | int argc | __attribute__(unused), |
| char * | argv[] | ||
| ) |
Definition at line 251 of file squish-pty.c.
References close(), dead_child_fd, EXIT_FAILURE, fail_io(), memset(), name, NULL, open(), relay(), sigchld_handler(), and STDOUT_FILENO.

|
static |
Make FD non-blocking if NONBLOCKING is true, or blocking if NONBLOCKING is false.
Definition at line 64 of file squish-pty.c.
References fail_io().
Referenced by relay().


|
static |
If FD is a terminal, configures it for noncanonical input mode with VMIN and VTIME set as indicated.
If FD is not a terminal, has no effect.
Definition at line 46 of file squish-pty.c.
References fail_io().
Referenced by relay().


|
static |
Copies data from stdin to PTY and from PTY to stdout until no more data can be read or written.
Definition at line 112 of file squish-pty.c.
References buf, dead_child_fd, fail_io(), handle_error(), make_nonblocking(), make_noncanon(), memmove(), memset(), NULL, read(), STDIN_FILENO, STDOUT_FILENO, and write().
Referenced by main().


|
static |
Definition at line 244 of file squish-pty.c.
References dead_child_fd, and write().
Referenced by main().


|
static |
Definition at line 241 of file squish-pty.c.
Referenced by main(), relay(), and sigchld_handler().
1.8.16