123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /*
- * IrNET protocol module : Synchronous PPP over an IrDA socket.
- *
- * Jean II - HPL `00 - <jt@hpl.hp.com>
- *
- * This file contains all definitions and declarations necessary for the
- * PPP part of the IrNET module.
- * This file is a private header, so other modules don't want to know
- * what's in there...
- */
- #ifndef IRNET_PPP_H
- #define IRNET_PPP_H
- /***************************** INCLUDES *****************************/
- #include "irnet.h" /* Module global include */
- /************************ CONSTANTS & MACROS ************************/
- /* /dev/irnet file constants */
- #define IRNET_MAJOR 10 /* Misc range */
- #define IRNET_MINOR 187 /* Official allocation */
- /* IrNET control channel stuff */
- #define IRNET_MAX_COMMAND 256 /* Max length of a command line */
- /* PPP hardcore stuff */
- /* Bits in rbits (PPP flags in irnet struct) */
- #define SC_RCV_BITS (SC_RCV_B7_1|SC_RCV_B7_0|SC_RCV_ODDP|SC_RCV_EVNP)
- /* Bit numbers in busy */
- #define XMIT_BUSY 0
- #define RECV_BUSY 1
- #define XMIT_WAKEUP 2
- #define XMIT_FULL 3
- /* Queue management */
- #define PPPSYNC_MAX_RQLEN 32 /* arbitrary */
- /****************************** TYPES ******************************/
- /**************************** PROTOTYPES ****************************/
- /* ----------------------- CONTROL CHANNEL ----------------------- */
- static inline ssize_t
- irnet_ctrl_write(irnet_socket *,
- const char *,
- size_t);
- static inline ssize_t
- irnet_ctrl_read(irnet_socket *,
- struct file *,
- char *,
- size_t);
- static inline unsigned int
- irnet_ctrl_poll(irnet_socket *,
- struct file *,
- poll_table *);
- /* ----------------------- CHARACTER DEVICE ----------------------- */
- static int
- dev_irnet_open(struct inode *, /* fs callback : open */
- struct file *),
- dev_irnet_close(struct inode *,
- struct file *);
- static ssize_t
- dev_irnet_write(struct file *,
- const char __user *,
- size_t,
- loff_t *),
- dev_irnet_read(struct file *,
- char __user *,
- size_t,
- loff_t *);
- static unsigned int
- dev_irnet_poll(struct file *,
- poll_table *);
- static long
- dev_irnet_ioctl(struct file *,
- unsigned int,
- unsigned long);
- /* ------------------------ PPP INTERFACE ------------------------ */
- static inline struct sk_buff *
- irnet_prepare_skb(irnet_socket *,
- struct sk_buff *);
- static int
- ppp_irnet_send(struct ppp_channel *,
- struct sk_buff *);
- static int
- ppp_irnet_ioctl(struct ppp_channel *,
- unsigned int,
- unsigned long);
- /**************************** VARIABLES ****************************/
- /* Filesystem callbacks (to call us) */
- static const struct file_operations irnet_device_fops =
- {
- .owner = THIS_MODULE,
- .read = dev_irnet_read,
- .write = dev_irnet_write,
- .poll = dev_irnet_poll,
- .unlocked_ioctl = dev_irnet_ioctl,
- .open = dev_irnet_open,
- .release = dev_irnet_close,
- .llseek = noop_llseek,
- /* Also : llseek, readdir, mmap, flush, fsync, fasync, lock, readv, writev */
- };
- /* Structure so that the misc major (drivers/char/misc.c) take care of us... */
- static struct miscdevice irnet_misc_device =
- {
- IRNET_MINOR,
- "irnet",
- &irnet_device_fops
- };
- #endif /* IRNET_PPP_H */
|