Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef struct {
2
	char	*t;
3
	int	fd;
4
	int	cfd;
5
	char	*id;
6
	char	response[128];
7
	char	error[128];
8
 
9
	int	fax;
10
	char	phase;
11
	char	ftsi[128];		/* remote ID */
12
	long	fdcs[8];		/* frame information */
13
	long	fpts[8];		/* page reception response */
14
	long	fet;			/* post page message */
15
	long	fhng;			/* call termination status */
16
	int	pageno;			/* current page number */
17
	char	pageid[128];		/* current page file */
18
	int	pagefd;			/* current page fd */
19
	int	valid;			/* valid page responses */
20
	long	time;			/* timestamp */
21
	int	pid;
22
 
23
	char	ibuf[1024];		/* modem input buffering */
24
	char	*iptr;
25
	long	icount;
26
 
27
	Biobuf	*bp;			/* file input buffering */
28
 
29
	/* FDCS parameters */
30
	long	wd;			/* width */
31
	long	vr;			/* resolution */
32
	long	ln;			/* page size (length) */
33
	long	df;			/* huffman encoding */
34
} Modem;
35
 
36
enum {					/* ResultCodes */
37
	Rok		= 0,
38
	Rconnect,
39
	Rring,
40
	Rfailure,
41
	Rrerror,
42
	Rcontinue,
43
	Rhangup,
44
	Rnoise,
45
};
46
 
47
enum {					/* ErrorCodes */
48
	Eok	= 0,	/* no error */
49
	Eattn,		/* can't get modem's attention */
50
	Enoresponse,	/* no response from modem */
51
	Enoanswer,	/* no answer from other side */
52
	Enofax,		/* other side isn't a fax machine */
53
	Eincompatible,	/* transmission incompatible with receiver */
54
	Esys,		/* system call error */
55
	Eproto,		/* fax protocol botch */
56
};
57
 
58
enum {					/* things that are valid */
59
	Vfdcs		= 0x0001,	/* page responses */
60
	Vftsi		= 0x0002,
61
	Vfpts		= 0x0004,
62
	Vfet		= 0x0008,
63
	Vfhng		= 0x0010,
64
 
65
	Vwd		= 0x4000,
66
	Vtype		= 0x8000,
67
};
68
 
69
/* fax2modem.c */
70
extern int initfaxmodem(Modem*);
71
extern int fcon(Modem*);
72
extern int ftsi(Modem*);
73
extern int fdcs(Modem*);
74
extern int fcfr(Modem*);
75
extern int fpts(Modem*);
76
extern int fet(Modem*);
77
extern int fhng(Modem*);
78
 
79
/* fax2receive.c */
80
extern int faxreceive(Modem*, char*);
81
 
82
/* fax2send.c */
83
extern int faxsend(Modem*, int, char*[]);
84
 
85
/* modem.c */
86
extern int setflow(Modem*, int);
87
extern int setspeed(Modem*, int);
88
extern int rawmchar(Modem*, char*);
89
extern int getmchar(Modem*, char*, long);
90
extern int putmchar(Modem*, char*);
91
extern int command(Modem*, char*);
92
extern int response(Modem*, int);
93
extern void initmodem(Modem*, int, int, char*, char*);
94
extern void xonoff(Modem*, int);
95
 
96
/* spool.c */
97
extern void setpageid(char*, char*, long, int, int);
98
extern int createfaxfile(Modem*, char*);
99
extern int openfaxfile(Modem*, char*);
100
 
101
/* subr.c */
102
extern void verbose(char*, ...);
103
extern void error(char*, ...);
104
extern int seterror(Modem*, int);
105
extern void faxrlog(Modem*, int);
106
extern void faxxlog(Modem*, int);
107
extern int vflag;