Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / drivers / isdn / sc / scioc.h
1 #ifndef __ISDN_SC_SCIOC_H__
2 #define __ISDN_SC_SCIOC_H__
3
4 /*
5  * This software may be used and distributed according to the terms
6  * of the GNU General Public License, incorporated herein by reference.
7  */
8
9 /*
10  * IOCTL Command Codes
11  */
12 #define SCIOCLOAD       0x01    /* Load a firmware record */
13 #define SCIOCRESET      0x02    /* Perform hard reset */
14 #define SCIOCDEBUG      0x03    /* Set debug level */
15 #define SCIOCREV        0x04    /* Get driver revision(s) */
16 #define SCIOCSTART      0x05    /* Start the firmware */
17 #define SCIOCGETSWITCH  0x06    /* Get switch type */
18 #define SCIOCSETSWITCH  0x07    /* Set switch type */
19 #define SCIOCGETSPID    0x08    /* Get channel SPID */
20 #define SCIOCSETSPID    0x09    /* Set channel SPID */
21 #define SCIOCGETDN      0x0A    /* Get channel DN */
22 #define SCIOCSETDN      0x0B    /* Set channel DN */
23 #define SCIOCTRACE      0x0C    /* Toggle trace mode */
24 #define SCIOCSTAT       0x0D    /* Get line status */
25 #define SCIOCGETSPEED   0x0E    /* Set channel speed */
26 #define SCIOCSETSPEED   0x0F    /* Set channel speed */
27 #define SCIOCLOOPTST    0x10    /* Perform loopback test */
28
29 typedef struct {
30         int device;
31         int channel;
32         unsigned long command;
33         void __user *dataptr;
34 } scs_ioctl;
35
36 /* Size of strings */
37 #define SCIOC_SPIDSIZE          49
38 #define SCIOC_DNSIZE            SCIOC_SPIDSIZE
39 #define SCIOC_REVSIZE           SCIOC_SPIDSIZE
40 #define SCIOC_SRECSIZE          49
41
42 typedef struct {
43         unsigned long tx_good;
44         unsigned long tx_bad;
45         unsigned long rx_good;
46         unsigned long rx_bad;
47 } ChLinkStats;
48
49 typedef struct {
50         char spid[49];
51         char dn[49];
52         char call_type;
53         char phy_stat;
54         ChLinkStats link_stats;
55 } BRIStat;
56
57 typedef BRIStat POTStat;
58
59 typedef struct {
60         char call_type;
61         char call_state;
62         char serv_state;
63         char phy_stat;
64         ChLinkStats link_stats;
65 } PRIStat;
66
67 typedef char PRIInfo;
68 typedef char BRIInfo;
69 typedef char POTInfo;
70
71
72 typedef struct {
73         char acfa_nos;
74         char acfa_ais;
75         char acfa_los;
76         char acfa_rra;
77         char acfa_slpp;
78         char acfa_slpn;
79         char acfa_fsrf;
80 } ACFAStat;
81
82 typedef struct {
83         unsigned char modelid;
84         char serial_no[13];
85         char part_no[13];
86         char load_ver[11];
87         char proc_ver[11];
88         int iobase;
89         long rambase;
90         char irq;
91         long ramsize;
92         char interface;
93         char switch_type;
94         char l1_status;
95         char l2_status;
96         ChLinkStats dch_stats;
97         ACFAStat AcfaStats;
98         union {
99                 PRIStat pristats[23];
100                 BRIStat bristats[2];
101                 POTStat potsstats[2];
102         } status;
103         union {
104                 PRIInfo priinfo;
105                 BRIInfo briinfo;
106                 POTInfo potsinfo;
107         } info;
108 } boardInfo;
109
110 #endif  /*  __ISDN_SC_SCIOC_H__  */
111