#ifndef TTY_STRUCT_H
#define TTY_STRUCT_H
#include "tty_queue_struct.h"
#include <alarm_struct.h>
#include <mutex_struct.h>
#include <consts.h>
struct tty_struct;
struct winsize_struct {
unsigned short height;
unsigned short width;
};
struct tty_vtbl_struct {
void (*do_output)(struct tty_struct *tty, struct tty_queue_struct *tty_queue);
void (*do_stop)(struct tty_struct *tty);
void (*do_start)(struct tty_struct *tty);
int (*do_ioctl)(struct tty_struct *tty, int request, void *fs_arg);
};
struct tty_struct {
const struct tty_vtbl_struct *vptr;
unsigned long iflags;
unsigned long oflags;
unsigned long lflags;
unsigned char cc[NCCS];
int pgid;
unsigned stopped : 1;
unsigned int output_column;
unsigned int read_lines;
unsigned read_new_line : 1;
unsigned int read_current_start;
unsigned read_timeout : 1;
unsigned int echo_current_first_column;
struct alarm_struct read_alarm;
struct condition_struct started_condition;
struct condition_struct read_condition;
struct mutex_struct read_mutex;
struct mutex_struct write_mutex;
struct tty_queue_struct input_queue;
struct tty_queue_struct read_queue;
struct tty_queue_struct output_queue;
};
#endif