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
drivers
isdn
isdnloop
isdnloop.h
Go to the documentation of this file.
1
/* $Id: isdnloop.h,v 1.5.6.3 2001/09/23 22:24:56 kai Exp $
2
*
3
* Loopback lowlevel module for testing of linklevel.
4
*
5
* Copyright 1997 by Fritz Elfert (
[email protected]
)
6
*
7
* This software may be used and distributed according to the terms
8
* of the GNU General Public License, incorporated herein by reference.
9
*
10
*/
11
12
#ifndef isdnloop_h
13
#define isdnloop_h
14
15
#define ISDNLOOP_IOCTL_DEBUGVAR 0
16
#define ISDNLOOP_IOCTL_ADDCARD 1
17
#define ISDNLOOP_IOCTL_LEASEDCFG 2
18
#define ISDNLOOP_IOCTL_STARTUP 3
19
20
/* Struct for adding new cards */
21
typedef
struct
isdnloop_cdef
{
22
char
id1
[10];
23
}
isdnloop_cdef
;
24
25
/* Struct for configuring cards */
26
typedef
struct
isdnloop_sdef
{
27
int
ptype
;
28
char
num
[3][20];
29
}
isdnloop_sdef
;
30
31
#if defined(__KERNEL__) || defined(__DEBUGVAR__)
32
33
#ifdef __KERNEL__
34
/* Kernel includes */
35
36
#include <linux/errno.h>
37
#include <linux/fs.h>
38
#include <
linux/major.h
>
39
#include <asm/io.h>
40
#include <linux/kernel.h>
41
#include <linux/signal.h>
42
#include <linux/slab.h>
43
#include <
linux/mm.h
>
44
#include <linux/mman.h>
45
#include <
linux/ioport.h
>
46
#include <
linux/timer.h
>
47
#include <linux/wait.h>
48
#include <linux/isdnif.h>
49
50
#endif
/* __KERNEL__ */
51
52
#define ISDNLOOP_FLAGS_B1ACTIVE 1
/* B-Channel-1 is open */
53
#define ISDNLOOP_FLAGS_B2ACTIVE 2
/* B-Channel-2 is open */
54
#define ISDNLOOP_FLAGS_RUNNING 4
/* Cards driver activated */
55
#define ISDNLOOP_FLAGS_RBTIMER 8
/* scheduling of B-Channel-poll */
56
#define ISDNLOOP_TIMER_BCREAD 1
/* B-Channel poll-cycle */
57
#define ISDNLOOP_TIMER_DCREAD (HZ/2)
/* D-Channel poll-cycle */
58
#define ISDNLOOP_TIMER_ALERTWAIT (10 * HZ)
/* Alert timeout */
59
#define ISDNLOOP_MAX_SQUEUE 65536
/* Max. outstanding send-data */
60
#define ISDNLOOP_BCH 2
/* channels per card */
61
62
/*
63
* Per card driver data
64
*/
65
typedef
struct
isdnloop_card {
66
struct
isdnloop_card *
next
;
/* Pointer to next device struct */
67
struct
isdnloop_card
68
*rcard[ISDNLOOP_BCH];
/* Pointer to 'remote' card */
69
int
rch[ISDNLOOP_BCH];
/* 'remote' channel */
70
int
myid;
/* Driver-Nr. assigned by linklevel */
71
int
leased;
/* Flag: This Adapter is connected */
72
/* to a leased line */
73
int
sil[ISDNLOOP_BCH];
/* SI's to listen for */
74
char
eazlist[ISDNLOOP_BCH][11];
75
/* EAZ's to listen for */
76
char
s0num[3][20];
/* 1TR6 base-number or MSN's */
77
unsigned
short
flags
;
/* Statusflags */
78
int
ptype;
/* Protocol type (1TR6 or Euro) */
79
struct
timer_list
st_timer;
/* Timer for Status-Polls */
80
struct
timer_list
rb_timer;
/* Timer for B-Channel-Polls */
81
struct
timer_list
82
c_timer[ISDNLOOP_BCH];
/* Timer for Alerting */
83
int
l2_proto[ISDNLOOP_BCH];
/* Current layer-2-protocol */
84
isdn_if
interface
;
/* Interface to upper layer */
85
int
iptr;
/* Index to imsg-buffer */
86
char
imsg[60];
/* Internal buf for status-parsing */
87
int
optr;
/* Index to omsg-buffer */
88
char
omsg[60];
/* Internal buf for cmd-parsing */
89
char
msg_buf
[2048];
/* Buffer for status-messages */
90
char
*msg_buf_write;
/* Writepointer for statusbuffer */
91
char
*msg_buf_read;
/* Readpointer for statusbuffer */
92
char
*msg_buf_end;
/* Pointer to end of statusbuffer */
93
int
sndcount[ISDNLOOP_BCH];
/* Byte-counters for B-Ch.-send */
94
struct
sk_buff_head
95
bqueue[ISDNLOOP_BCH];
/* B-Channel queues */
96
struct
sk_buff_head
dqueue;
/* D-Channel queue */
97
spinlock_t
isdnloop_lock;
98
} isdnloop_card;
99
100
/*
101
* Main driver data
102
*/
103
#ifdef __KERNEL__
104
static
isdnloop_card *
cards
= (isdnloop_card *) 0;
105
#endif
/* __KERNEL__ */
106
107
/* Utility-Macros */
108
109
#define CID (card->interface.id)
110
111
#endif
/* defined(__KERNEL__) || defined(__DEBUGVAR__) */
112
#endif
/* isdnloop_h */
Generated on Thu Jan 10 2013 13:42:28 for Linux Kernel by
1.8.2