Update from NeXT-ppp-2.2-0.4.6
[ppp.git] / NeXT / linedisc.h
1 /*
2  * linedisc.h -- includes for use with loadable line disciplines
3  */
4 #define KERNEL          1
5 #define KERNEL_FEATURES 1
6
7 #ifdef m68k
8 #import <machine/reg.h>
9 #endif
10
11 #import <sys/param.h>
12 /*
13 #import <sys/systm.h>
14 */
15 #import <sys/user.h>
16 #import <sys/ioctl.h>
17 #import <sys/tty.h>
18 #import <sys/proc.h>
19 /*
20 #import <sys/vnode.h>
21 #import <sys/file.h>
22 */
23 #import <sys/conf.h>
24 #import <sys/buf.h>
25 #import <sys/dk.h>
26 #import <sys/uio.h>
27 #import <sys/kernel.h>
28
29 /*
30 #import <machine/spl.h>
31 */
32 #ifdef m68k
33 #include "spl.h"
34 #endif
35
36 #if     NeXT
37 /*
38 #import <next/cons.h>
39 #import <nextdev/kmreg.h>
40 */
41 #endif  NeXT
42
43 /*
44  * Line discipline "kind"
45  * NORMAL_LDISC -- Normal line disciplines use tty struct clists in
46  *                      standard manner
47  * SPECIAL_LDISC -- Special line disciplines have private buffering
48  *                      strategy
49  */
50 #define NORMAL_LDISC    0
51 #define SPECIAL_LDISC   1
52
53 extern int tty_ld_install(
54         int ld_number,
55         int ld_kind,
56         int (*ld_open)(dev_t dev, struct tty *tp),
57         void (*ld_close)(struct tty *tp),
58         int (*ld_read)(struct tty *tp, struct uio *uiop),
59         int (*ld_write)(struct tty *tp, struct uio *uiop),
60         int (*ld_ioctl)(struct tty *tp, int command, void *dataptr, int flag),
61         void (*ld_rint)(int c, struct tty *tp),
62         void (*ld_rend)(char *cp, u_int n, struct tty *tp),
63         void (*ld_start)(struct tty *tp),
64         int (*ld_modem)(struct tty *tp, int dcd_on),
65         int (*ld_select)(struct tty *tp, int rw)
66 );
67 extern int tty_ld_remove(int ld_number);
68 extern void ttydevstart(struct tty *tp);
69 extern void ttydevstop(struct tty *tp);
70 extern void ttyselwait(struct tty *tp, int rw);
71 extern void ttselwakeup(struct tty *tp);
72