Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
net
irda
irnet
irnet_ppp.h
Go to the documentation of this file.
1
/*
2
* IrNET protocol module : Synchronous PPP over an IrDA socket.
3
*
4
* Jean II - HPL `00 - <
[email protected]
>
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
long
80
dev_irnet_ioctl(
struct
file
*,
81
unsigned
int
,
82
unsigned
long
);
83
/* ------------------------ PPP INTERFACE ------------------------ */
84
static
inline
struct
sk_buff
*
85
irnet_prepare_skb(
irnet_socket
*,
86
struct
sk_buff
*);
87
static
int
88
ppp_irnet_send(
struct
ppp_channel
*,
89
struct
sk_buff
*);
90
static
int
91
ppp_irnet_ioctl(
struct
ppp_channel
*,
92
unsigned
int
,
93
unsigned
long
);
94
95
/**************************** VARIABLES ****************************/
96
97
/* Filesystem callbacks (to call us) */
98
static
const
struct
file_operations
irnet_device_fops =
99
{
100
.owner =
THIS_MODULE
,
101
.read =
dev_irnet_read
,
102
.write = dev_irnet_write,
103
.poll = dev_irnet_poll,
104
.unlocked_ioctl = dev_irnet_ioctl,
105
.open = dev_irnet_open,
106
.release =
dev_irnet_close
,
107
.llseek =
noop_llseek
,
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 */
Generated on Thu Jan 10 2013 14:59:40 for Linux Kernel by
1.8.2