blob: 48f3f891b2f96157b47a8e4bee054f9558c2aef3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef LLC_C_ST_H
2#define LLC_C_ST_H
3/*
4 * Copyright (c) 1997 by Procom Technology,Inc.
5 * 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
6 *
7 * This program can be redistributed or modified under the terms of the
8 * GNU General Public License as published by the Free Software Foundation.
9 * This program is distributed without any warranty or implied warranty
10 * of merchantability or fitness for a particular purpose.
11 *
12 * See the GNU General Public License for more details.
13 */
14/* Connection component state management */
15/* connection states */
16#define LLC_CONN_OUT_OF_SVC 0 /* prior to allocation */
17
18#define LLC_CONN_STATE_ADM 1 /* disc, initial state */
19#define LLC_CONN_STATE_SETUP 2 /* disconnected state */
20#define LLC_CONN_STATE_NORMAL 3 /* connected state */
21#define LLC_CONN_STATE_BUSY 4 /* connected state */
22#define LLC_CONN_STATE_REJ 5 /* connected state */
23#define LLC_CONN_STATE_AWAIT 6 /* connected state */
24#define LLC_CONN_STATE_AWAIT_BUSY 7 /* connected state */
25#define LLC_CONN_STATE_AWAIT_REJ 8 /* connected state */
26#define LLC_CONN_STATE_D_CONN 9 /* disconnected state */
27#define LLC_CONN_STATE_RESET 10 /* disconnected state */
28#define LLC_CONN_STATE_ERROR 11 /* disconnected state */
29#define LLC_CONN_STATE_TEMP 12 /* disconnected state */
30
31#define NBR_CONN_STATES 12 /* size of state table */
32#define NO_STATE_CHANGE 100
33
34/* Connection state table structure */
35struct llc_conn_state_trans {
36 llc_conn_ev_t ev;
37 u8 next_state;
Joe Perches9b373062014-12-10 09:43:57 -080038 const llc_conn_ev_qfyr_t *ev_qualifiers;
Joe Perches14b7d952014-12-10 08:18:50 -080039 const llc_conn_action_t *ev_actions;
Linus Torvalds1da177e2005-04-16 15:20:36 -070040};
41
42struct llc_conn_state {
43 u8 current_state;
44 struct llc_conn_state_trans **transitions;
45};
46
47extern struct llc_conn_state llc_conn_state_table[];
48#endif /* LLC_C_ST_H */