lguest: optimize by coding restore_flags and irq_enable in assembler.
[linux-2.6] / drivers / isdn / pcbit / edss1.h
1 /*
2  * DSS.1 module definitions
3  *
4  * Copyright (C) 1996 Universidade de Lisboa
5  * 
6  * Written by Pedro Roque Marques (roque@di.fc.ul.pt)
7  *
8  * This software may be used and distributed according to the terms of 
9  * the GNU General Public License, incorporated herein by reference.
10  */
11
12 #ifndef EDSS1_H
13 #define EDSS1_H
14
15 /* ISDN states */
16
17 #define ST_NULL      0
18 #define ST_CALL_INIT 1    /* Call initiated */
19 #define ST_OVER_SEND 2    /* Overlap sending - Requests More Info 4 call */
20 #define ST_CALL_PROC 3    /* Call Proceeding */
21 #define ST_CALL_DELV 4
22 #define ST_CALL_PRES 6    /* Call Present - Received CONN.IND */
23 #define ST_CALL_RECV 7    /* Alerting sent */
24 #define ST_CONN_REQ  8    /* Answered - waiting 4 CONN.CONF */
25 #define ST_INCM_PROC 9
26 #define ST_ACTIVE    10
27 #define ST_DISC_REQ  11
28 #define ST_DISC_IND  12
29 #define ST_SUSP_REQ  15
30 #define ST_RESM_REQ  17
31 #define ST_RELS_REQ  19
32 #define ST_OVER_RECV 25
33
34 #define ST_ACTIVE_SELP 26 /* Select protocol on B-Channel */
35 #define ST_ACTIVE_ACTV 27 /* Activate B-channel protocol  */
36
37 #define MAX_STATE ST_ACTIVE_ACTV
38
39 #define EV_NULL               0
40 #define EV_USR_SETUP_REQ      1
41 #define EV_USR_SETUP_RESP     2
42 #define EV_USR_PROCED_REQ     3
43 #define EV_USR_RELEASE_REQ    4
44 #define EV_USR_REJECT_REQ     4
45
46 #define EV_NET_SETUP          16
47 #define EV_NET_CALL_PROC      17
48 #define EV_NET_SETUP_ACK      18
49 #define EV_NET_CONN           19
50 #define EV_NET_CONN_ACK       20
51
52 #define EV_NET_SELP_RESP      21
53 #define EV_NET_ACTV_RESP      22
54
55 #define EV_NET_DISC           23
56 #define EV_NET_RELEASE        24
57 #define EV_NET_RELEASE_COMP   25
58
59 #define EV_TIMER              26
60 #define EV_ERROR              32
61
62 /*
63  *  Cause values
64  *  only the ones we use
65  */ 
66
67 #define CAUSE_NORMAL          0x10U 
68 #define CAUSE_NOCHAN          0x22U
69
70 struct callb_data {
71         unsigned short type;
72         union {
73                 struct ConnInfo {
74                         char *CalledPN;
75                         char *CallingPN;
76                 } setup;
77                 unsigned short cause;
78         } data;
79 };
80
81 struct fsm_entry {
82         unsigned short init;
83         unsigned short final;
84         unsigned short event;
85         void (*callb)(struct pcbit_dev *, struct pcbit_chan *, struct callb_data*);
86 };
87
88 struct fsm_timer_entry {
89         unsigned short init;
90         unsigned long timeout;          /* in seconds */
91 };
92
93 extern char * isdn_state_table[];
94
95 void pcbit_fsm_event(struct pcbit_dev *, struct pcbit_chan *,
96                      unsigned short event, struct callb_data *);
97 char * strisdnevent(ushort ev);
98
99 #endif
100
101
102