| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*********************************************************************
 | 
					
						
							|  |  |  |  *                 | 
					
						
							|  |  |  |  *                 | 
					
						
							|  |  |  |  * 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, write to the Free Software  | 
					
						
							|  |  |  |  *     Foundation, Inc., 59 Temple Place, Suite 330, Boston,  | 
					
						
							|  |  |  |  *     MA 02111-1307 USA | 
					
						
							|  |  |  |  *      | 
					
						
							|  |  |  |  ********************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #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; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-05 10:42:58 -07:00
										 |  |  | extern const char *const irlap_state[]; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-23 11:37:44 -07:00
										 |  |  | int irlap_qos_negotiate(struct irlap_cb *self, struct sk_buff *skb); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |