Blame view

kernel/linux-imx6_3.14.28/drivers/isdn/isdnloop/isdnloop.h 3.96 KB
6b13f685e   김민수   BSP 최초 추가
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
  /* $Id: isdnloop.h,v 1.5.6.3 2001/09/23 22:24:56 kai Exp $
   *
   * Loopback lowlevel module for testing of linklevel.
   *
   * Copyright 1997 by Fritz Elfert (fritz@isdn4linux.de)
   *
   * This software may be used and distributed according to the terms
   * of the GNU General Public License, incorporated herein by reference.
   *
   */
  
  #ifndef isdnloop_h
  #define isdnloop_h
  
  #define ISDNLOOP_IOCTL_DEBUGVAR  0
  #define ISDNLOOP_IOCTL_ADDCARD   1
  #define ISDNLOOP_IOCTL_LEASEDCFG 2
  #define ISDNLOOP_IOCTL_STARTUP   3
  
  /* Struct for adding new cards */
  typedef struct isdnloop_cdef {
  	char id1[10];
  } isdnloop_cdef;
  
  /* Struct for configuring cards */
  typedef struct isdnloop_sdef {
  	int ptype;
  	char num[3][20];
  } isdnloop_sdef;
  
  #if defined(__KERNEL__) || defined(__DEBUGVAR__)
  
  #ifdef __KERNEL__
  /* Kernel includes */
  
  #include <linux/errno.h>
  #include <linux/fs.h>
  #include <linux/major.h>
  #include <asm/io.h>
  #include <linux/kernel.h>
  #include <linux/signal.h>
  #include <linux/slab.h>
  #include <linux/mm.h>
  #include <linux/mman.h>
  #include <linux/ioport.h>
  #include <linux/timer.h>
  #include <linux/wait.h>
  #include <linux/isdnif.h>
  
  #endif                          /* __KERNEL__ */
  
  #define ISDNLOOP_FLAGS_B1ACTIVE 1	/* B-Channel-1 is open           */
  #define ISDNLOOP_FLAGS_B2ACTIVE 2	/* B-Channel-2 is open           */
  #define ISDNLOOP_FLAGS_RUNNING  4	/* Cards driver activated        */
  #define ISDNLOOP_FLAGS_RBTIMER  8	/* scheduling of B-Channel-poll  */
  #define ISDNLOOP_TIMER_BCREAD 1 /* B-Channel poll-cycle          */
  #define ISDNLOOP_TIMER_DCREAD (HZ/2)	/* D-Channel poll-cycle          */
  #define ISDNLOOP_TIMER_ALERTWAIT (10 * HZ)	/* Alert timeout                 */
  #define ISDNLOOP_MAX_SQUEUE 65536	/* Max. outstanding send-data    */
  #define ISDNLOOP_BCH 2          /* channels per card             */
  
  /*
   * Per card driver data
   */
  typedef struct isdnloop_card {
  	struct isdnloop_card *next;	/* Pointer to next device struct    */
  	struct isdnloop_card
  	*rcard[ISDNLOOP_BCH];   /* Pointer to 'remote' card         */
  	int rch[ISDNLOOP_BCH];  /* 'remote' channel                 */
  	int myid;               /* Driver-Nr. assigned by linklevel */
  	int leased;             /* Flag: This Adapter is connected  */
  	/*       to a leased line           */
  	int sil[ISDNLOOP_BCH];  /* SI's to listen for               */
  	char eazlist[ISDNLOOP_BCH][11];
  	/* EAZ's to listen for              */
  	char s0num[3][20];      /* 1TR6 base-number or MSN's        */
  	unsigned short flags;   /* Statusflags                      */
  	int ptype;              /* Protocol type (1TR6 or Euro)     */
  	struct timer_list st_timer;	/* Timer for Status-Polls           */
  	struct timer_list rb_timer;	/* Timer for B-Channel-Polls        */
  	struct timer_list
  	c_timer[ISDNLOOP_BCH]; /* Timer for Alerting               */
  	int l2_proto[ISDNLOOP_BCH];	/* Current layer-2-protocol         */
  	isdn_if interface;      /* Interface to upper layer         */
  	int iptr;               /* Index to imsg-buffer             */
  	char imsg[60];          /* Internal buf for status-parsing  */
  	int optr;               /* Index to omsg-buffer             */
  	char omsg[60];          /* Internal buf for cmd-parsing     */
  	char msg_buf[2048];     /* Buffer for status-messages       */
  	char *msg_buf_write;    /* Writepointer for statusbuffer    */
  	char *msg_buf_read;     /* Readpointer for statusbuffer     */
  	char *msg_buf_end;      /* Pointer to end of statusbuffer   */
  	int sndcount[ISDNLOOP_BCH];	/* Byte-counters for B-Ch.-send     */
  	struct sk_buff_head
  	bqueue[ISDNLOOP_BCH];  /* B-Channel queues                 */
  	struct sk_buff_head dqueue;	/* D-Channel queue                  */
  	spinlock_t isdnloop_lock;
  } isdnloop_card;
  
  /*
   * Main driver data
   */
  #ifdef __KERNEL__
  static isdnloop_card *cards = (isdnloop_card *) 0;
  #endif                          /* __KERNEL__ */
  
  /* Utility-Macros */
  
  #define CID (card->interface.id)
  
  #endif                          /* defined(__KERNEL__) || defined(__DEBUGVAR__) */
  #endif                          /* isdnloop_h */