Blame view

kernel/linux-rt-4.4.41/net/irda/irnet/irnet_ppp.h 3.07 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
  /*
   *	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 */