00001 /* src_experimental/drivers/tty/ttyio.h 00002 CubeOS Version 0.4.90 experimental 00003 Copyright (C) 1999,2000 Holger Kenn 00004 00005 CubeOS is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or any later version. 00009 00010 CubeOS is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 */ 00016 #ifndef _TTYIO_H 00017 #define _TTYIO_H 00018 00019 #define TTY_HS_NONE 0 00020 #define TTY_HS_XONXOFF 1 00021 #define TTY_HS_RTSCTS 2 00022 #define TTY_HS_RTSCTSHW 3 00023 00024 #define TTY_MODE_RXBLOCKING 1 00025 #define TTY_MODE_TXBLOCKING 2 00026 #define TTY_MODE_TXUNBUF 4 00027 #define TTY_MODE_RSM 8 00028 00029 00030 #define TTY_STATE_RXEMPTY 1 00031 #define TTY_STATE_TXFULL 2 00032 00033 #define TTY_RTS_TRESHOLD 8 00034 00035 struct TTY_tty_dev { 00036 struct iobuf * inq; 00037 struct iobuf * outq; 00038 // char (*rxchar) (); 00039 void (*txchar) (char c); 00040 void (*en_tx_irq) (); 00041 void (*dis_tx_irq) (); 00042 void (*en_rx_irq) (); 00043 void (*dis_rx_irq) (); 00044 void (*setrts) (); 00045 void (*char_process) (char c); 00046 void (*break_process) (); 00047 int (*sethandshake) (char handshake); 00048 int (*setbps) (int bpsrate); 00049 char hsmode; /* handshake mode */ 00050 char mode; /* io-mode */ 00051 char state; /* io-state */ 00052 }; 00053 00054 00055 extern char _TTY_console_echo; 00056 void TTY_conecho_on(); 00057 void TTY_conecho_off(); 00058 char TTY_inchar(void); 00059 void TTY_outchar(char byte); 00060 void TTY_init(void); 00061 void TTY_setcontty(int contty); 00062 00063 extern struct TTY_tty_dev TTY_tty[3]; 00064 extern int _TTY_contty; 00065 00066 #endif 00067