4 #include "efaxos.h" /* TFILE definition */
7 #define uchar unsigned char
10 #define CMDBUFSIZE 256 /* longest possible command or response */
11 #define DLE_ETX "\020\003" /* DLE-ETX (end of data) string */
12 #define CAN_STR "\030" /* CAN (cancel reception) string */
13 #define TO_RESET 50 /* t/o for modem reset commands (>>2.6s) */
14 #define T_CMD 1 /* pause before each modem command */
15 #define MAXDCEBUF 32 /* max bytes allowed in buffer when write */
16 #define MINWRITE 64 /* minimum bytes to write() to modem */
18 enum promptcodes { /* codes for modem prompts */
19 BUSY = 'B', CONNECT = 'C', DATA='D', ERROR = 'E',
20 MODULATION='M', NO = 'N', OK = 'O', RING = 'R', VCONNECT = 'V' } ;
25 extern int c1 ; /* use class 1 */
29 extern int c20 ; /* use class 2.0 */
30 extern int c2 ; /* force class 2 */
31 extern int cmdpause ; /* delay before each init command */
32 extern int vfc ; /* virtual flow control */
33 extern uchar startchar ; /* character to start reception */
34 extern int lockpolldelay ; /* milliseconds between checks of lock files */
36 /* response detector lookup tables */
37 extern uchar rd_allowed[], rd_nexts[] ;
41 /* Modem interface routines */
43 int cmd ( TFILE *f, char *s , int t ) ;
44 int ckcmd ( TFILE *f, int *err, char *s, int t, int r ) ;
45 char *sresponse ( char *s, int *ip ) ;
46 char *strinresp ( char *s ) ;
47 int getresp ( char *s, char *buf, int len ) ;
49 int setup ( TFILE *f, char **cmds, int ignerr ) ;
51 int sendbuf ( TFILE *f, uchar *p, int n, int dcecps ) ;
53 int begin_session ( TFILE *f, char *fname, int reverse, int hwfc, char **lkfile,
54 ttymodes mode, void (*onsig) (int) ) ;
56 int end_session ( TFILE *f, char **zcmd, char **lkfile, int sync ) ;