Blame view

kernel/linux-rt-4.4.41/include/net/irda/irlap_event.h 3.38 KB
5113f6f70   김현기   kernel add
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
  /*********************************************************************
   *                
   *                
   * Filename:      irlap_event.h
   * Version:       0.1
   * Description:   
   * Status:        Experimental.
   * Author:        Dag Brattli <dagb@cs.uit.no>
   * Created at:    Sat Aug 16 00:59:29 1997
   * Modified at:   Tue Dec 21 11:20:30 1999
   * Modified by:   Dag Brattli <dagb@cs.uit.no>
   * 
   *     Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, 
   *     All Rights Reserved.
   *     Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com>
   *     
   *     This program is free software; you can redistribute it and/or 
   *     modify it under the terms of the GNU General Public License as 
   *     published by the Free Software Foundation; either version 2 of 
   *     the License, or (at your option) any later version.
   * 
   *     This program is distributed in the hope that it will be useful,
   *     but WITHOUT ANY WARRANTY; without even the implied warranty of
   *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   *     GNU General Public License for more details.
   * 
   *     You should have received a copy of the GNU General Public License 
   *     along with this program; if not, see <http://www.gnu.org/licenses/>.
   *     
   ********************************************************************/
  
  #ifndef IRLAP_EVENT_H
  #define IRLAP_EVENT_H
  
  #include <net/irda/irda.h>
  
  /* A few forward declarations (to make compiler happy) */
  struct irlap_cb;
  struct irlap_info;
  
  /* IrLAP States */
  typedef enum {
  	LAP_NDM,         /* Normal disconnected mode */
  	LAP_QUERY,
  	LAP_REPLY,
  	LAP_CONN,        /* Connect indication */
  	LAP_SETUP,       /* Setting up connection */
  	LAP_OFFLINE,     /* A really boring state */
  	LAP_XMIT_P,
  	LAP_PCLOSE,
  	LAP_NRM_P,       /* Normal response mode as primary */
  	LAP_RESET_WAIT,
  	LAP_RESET,
  	LAP_NRM_S,       /* Normal response mode as secondary */
  	LAP_XMIT_S,
  	LAP_SCLOSE,
  	LAP_RESET_CHECK,
  } IRLAP_STATE;
  
  /* IrLAP Events */
  typedef enum {
  	/* Services events */
  	DISCOVERY_REQUEST,
  	CONNECT_REQUEST,
  	CONNECT_RESPONSE,
  	DISCONNECT_REQUEST,
  	DATA_REQUEST,
  	RESET_REQUEST,
  	RESET_RESPONSE,
  
  	/* Send events */
  	SEND_I_CMD,
  	SEND_UI_FRAME,
  
  	/* Receive events */
  	RECV_DISCOVERY_XID_CMD,
  	RECV_DISCOVERY_XID_RSP,
  	RECV_SNRM_CMD,
  	RECV_TEST_CMD,
  	RECV_TEST_RSP,
  	RECV_UA_RSP,
  	RECV_DM_RSP,
  	RECV_RD_RSP,
  	RECV_I_CMD,
  	RECV_I_RSP,
  	RECV_UI_FRAME,
  	RECV_FRMR_RSP,
  	RECV_RR_CMD,
  	RECV_RR_RSP,
  	RECV_RNR_CMD,
  	RECV_RNR_RSP,
  	RECV_REJ_CMD,
  	RECV_REJ_RSP,
  	RECV_SREJ_CMD,
  	RECV_SREJ_RSP,
  	RECV_DISC_CMD,
  
  	/* Timer events */
  	SLOT_TIMER_EXPIRED,
  	QUERY_TIMER_EXPIRED,
  	FINAL_TIMER_EXPIRED,
  	POLL_TIMER_EXPIRED,
  	DISCOVERY_TIMER_EXPIRED,
  	WD_TIMER_EXPIRED,
  	BACKOFF_TIMER_EXPIRED,
  	MEDIA_BUSY_TIMER_EXPIRED,
  } IRLAP_EVENT;
  
  /*
   * Disconnect reason code
   */
  typedef enum { /* FIXME check the two first reason codes */
  	LAP_DISC_INDICATION=1, /* Received a disconnect request from peer */
  	LAP_NO_RESPONSE,       /* To many retransmits without response */
  	LAP_RESET_INDICATION,  /* To many retransmits, or invalid nr/ns */
  	LAP_FOUND_NONE,        /* No devices were discovered */
  	LAP_MEDIA_BUSY,
  	LAP_PRIMARY_CONFLICT,
  } LAP_REASON;
  
  extern const char *const irlap_state[];
  
  void irlap_do_event(struct irlap_cb *self, IRLAP_EVENT event, 
  		    struct sk_buff *skb, struct irlap_info *info);
  void irlap_print_event(IRLAP_EVENT event);
  
  int irlap_qos_negotiate(struct irlap_cb *self, struct sk_buff *skb);
  
  #endif