diff options
Diffstat (limited to 'net/irda/irnet/irnet_ppp.h')
-rw-r--r-- | net/irda/irnet/irnet_ppp.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/net/irda/irnet/irnet_ppp.h b/net/irda/irnet/irnet_ppp.h new file mode 100644 index 000000000000..d2beb7df8f7f --- /dev/null +++ b/net/irda/irnet/irnet_ppp.h | |||
@@ -0,0 +1,119 @@ | |||
1 | /* | ||
2 | * IrNET protocol module : Synchronous PPP over an IrDA socket. | ||
3 | * | ||
4 | * Jean II - HPL `00 - <jt@hpl.hp.com> | ||
5 | * | ||
6 | * This file contains all definitions and declarations necessary for the | ||
7 | * PPP part of the IrNET module. | ||
8 | * This file is a private header, so other modules don't want to know | ||
9 | * what's in there... | ||
10 | */ | ||
11 | |||
12 | #ifndef IRNET_PPP_H | ||
13 | #define IRNET_PPP_H | ||
14 | |||
15 | /***************************** INCLUDES *****************************/ | ||
16 | |||
17 | #include "irnet.h" /* Module global include */ | ||
18 | |||
19 | /************************ CONSTANTS & MACROS ************************/ | ||
20 | |||
21 | /* /dev/irnet file constants */ | ||
22 | #define IRNET_MAJOR 10 /* Misc range */ | ||
23 | #define IRNET_MINOR 187 /* Official allocation */ | ||
24 | |||
25 | /* IrNET control channel stuff */ | ||
26 | #define IRNET_MAX_COMMAND 256 /* Max length of a command line */ | ||
27 | |||
28 | /* PPP hardcore stuff */ | ||
29 | |||
30 | /* Bits in rbits (PPP flags in irnet struct) */ | ||
31 | #define SC_RCV_BITS (SC_RCV_B7_1|SC_RCV_B7_0|SC_RCV_ODDP|SC_RCV_EVNP) | ||
32 | |||
33 | /* Bit numbers in busy */ | ||
34 | #define XMIT_BUSY 0 | ||
35 | #define RECV_BUSY 1 | ||
36 | #define XMIT_WAKEUP 2 | ||
37 | #define XMIT_FULL 3 | ||
38 | |||
39 | /* Queue management */ | ||
40 | #define PPPSYNC_MAX_RQLEN 32 /* arbitrary */ | ||
41 | |||
42 | /****************************** TYPES ******************************/ | ||
43 | |||
44 | |||
45 | /**************************** PROTOTYPES ****************************/ | ||
46 | |||
47 | /* ----------------------- CONTROL CHANNEL ----------------------- */ | ||
48 | static inline ssize_t | ||
49 | irnet_ctrl_write(irnet_socket *, | ||
50 | const char *, | ||
51 | size_t); | ||
52 | static inline ssize_t | ||
53 | irnet_ctrl_read(irnet_socket *, | ||
54 | struct file *, | ||
55 | char *, | ||
56 | size_t); | ||
57 | static inline unsigned int | ||
58 | irnet_ctrl_poll(irnet_socket *, | ||
59 | struct file *, | ||
60 | poll_table *); | ||
61 | /* ----------------------- CHARACTER DEVICE ----------------------- */ | ||
62 | static int | ||
63 | dev_irnet_open(struct inode *, /* fs callback : open */ | ||
64 | struct file *), | ||
65 | dev_irnet_close(struct inode *, | ||
66 | struct file *); | ||
67 | static ssize_t | ||
68 | dev_irnet_write(struct file *, | ||
69 | const char __user *, | ||
70 | size_t, | ||
71 | loff_t *), | ||
72 | dev_irnet_read(struct file *, | ||
73 | char __user *, | ||
74 | size_t, | ||
75 | loff_t *); | ||
76 | static unsigned int | ||
77 | dev_irnet_poll(struct file *, | ||
78 | poll_table *); | ||
79 | static int | ||
80 | dev_irnet_ioctl(struct inode *, | ||
81 | struct file *, | ||
82 | unsigned int, | ||
83 | unsigned long); | ||
84 | /* ------------------------ PPP INTERFACE ------------------------ */ | ||
85 | static inline struct sk_buff * | ||
86 | irnet_prepare_skb(irnet_socket *, | ||
87 | struct sk_buff *); | ||
88 | static int | ||
89 | ppp_irnet_send(struct ppp_channel *, | ||
90 | struct sk_buff *); | ||
91 | static int | ||
92 | ppp_irnet_ioctl(struct ppp_channel *, | ||
93 | unsigned int, | ||
94 | unsigned long); | ||
95 | |||
96 | /**************************** VARIABLES ****************************/ | ||
97 | |||
98 | /* Filesystem callbacks (to call us) */ | ||
99 | static struct file_operations irnet_device_fops = | ||
100 | { | ||
101 | .owner = THIS_MODULE, | ||
102 | .read = dev_irnet_read, | ||
103 | .write = dev_irnet_write, | ||
104 | .poll = dev_irnet_poll, | ||
105 | .ioctl = dev_irnet_ioctl, | ||
106 | .open = dev_irnet_open, | ||
107 | .release = dev_irnet_close | ||
108 | /* Also : llseek, readdir, mmap, flush, fsync, fasync, lock, readv, writev */ | ||
109 | }; | ||
110 | |||
111 | /* Structure so that the misc major (drivers/char/misc.c) take care of us... */ | ||
112 | static struct miscdevice irnet_misc_device = | ||
113 | { | ||
114 | IRNET_MINOR, | ||
115 | "irnet", | ||
116 | &irnet_device_fops | ||
117 | }; | ||
118 | |||
119 | #endif /* IRNET_PPP_H */ | ||