|
|
1.1 root 1: /*
2: * File: tty_raw.c
3: *
4: * Purpose: put a tty device into raw mode, and restore its old mode later
5: *
6: * $Log: tty_raw.c,v $
7: * Revision 1.2 92/06/15 10:04:59 bin
8: * *** empty log message ***
9: *
10: */
11:
12: /*
13: * Includes.
14: */
15: #include <sgtty.h>
16:
17: /*
18: * Definitions.
19: * Constants.
20: * Macros with argument lists.
21: * Typedefs.
22: * Enums.
23: */
24: typedef unsigned char uchar;
25: typedef unsigned int uint;
26: typedef unsigned long ulong;
27:
28: /*
29: * Functions.
30: * Import Functions.
31: * Export Functions.
32: * Local Functions.
33: */
34: int tty_raw();
35: int tty_reset();
36:
37: /*
38: * Global Data.
39: * Import Variables.
40: * Export Variables.
41: * Local Variables.
42: */
43: static struct sgttyb save_mode;
44:
45: /*
46: * tty_raw()
47: *
48: * Given a file descriptor, put the device into raw mode.
49: * Return 0 on success, -1 on failure.
50: */
51: int
52: tty_raw(fd)
53: int fd;
54: {
55: struct sgttyb temp_mode;
56:
57: if (ioctl(fd, TIOCGETP, &temp_mode) < 0)
58: return -1;
59: save_mode = temp_mode;
60: temp_mode.sg_flags |= RAW;
61: temp_mode.sg_flags &= ~ECHO;
62: if (ioctl(fd, TIOCSETP, &temp_mode) < 0)
63: return -1;
64: return 0;
65: }
66:
67: /*
68: * tty_reset()
69: *
70: * Given a file descriptor, restore the old mode.
71: * Return 0 on success, -1 on failure.
72: */
73: int
74: tty_reset(fd)
75: int fd;
76: {
77: if (ioctl(fd, TIOCSETP, &save_mode) < 0)
78: return -1;
79: return 0;
80: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.