aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/tty.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/tty.h')
-rw-r--r--include/linux/tty.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 57449704a47b..3787102e4b12 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -51,16 +51,22 @@
51 */ 51 */
52#define TTY_FLIPBUF_SIZE 512 52#define TTY_FLIPBUF_SIZE 512
53 53
54struct tty_flip_buffer { 54struct tty_buffer {
55 struct tty_buffer *next;
56 char *char_buf_ptr;
57 unsigned char *flag_buf_ptr;
58 int used;
59 int size;
60 /* Data points here */
61 unsigned long data[0];
62};
63
64struct tty_bufhead {
55 struct work_struct work; 65 struct work_struct work;
56 struct semaphore pty_sem; 66 struct semaphore pty_sem;
57 char *char_buf_ptr; 67 struct tty_buffer *head; /* Queue head */
58 unsigned char *flag_buf_ptr; 68 struct tty_buffer *tail; /* Active buffer */
59 int count; 69 struct tty_buffer *free; /* Free queue head */
60 int buf_num;
61 unsigned char char_buf[2*TTY_FLIPBUF_SIZE];
62 char flag_buf[2*TTY_FLIPBUF_SIZE];
63 unsigned char slop[4]; /* N.B. bug overwrites buffer by 1 */
64}; 70};
65/* 71/*
66 * The pty uses char_buf and flag_buf as a contiguous buffer 72 * The pty uses char_buf and flag_buf as a contiguous buffer
@@ -186,10 +192,11 @@ struct tty_struct {
186 unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1; 192 unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1;
187 unsigned char low_latency:1, warned:1; 193 unsigned char low_latency:1, warned:1;
188 unsigned char ctrl_status; 194 unsigned char ctrl_status;
195 unsigned int receive_room; /* Bytes free for queue */
189 196
190 struct tty_struct *link; 197 struct tty_struct *link;
191 struct fasync_struct *fasync; 198 struct fasync_struct *fasync;
192 struct tty_flip_buffer flip; 199 struct tty_bufhead buf;
193 int max_flip_cnt; 200 int max_flip_cnt;
194 int alt_speed; /* For magic substitution of 38400 bps */ 201 int alt_speed; /* For magic substitution of 38400 bps */
195 wait_queue_head_t write_wait; 202 wait_queue_head_t write_wait;