Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
  1/*********************************************************************
  2 *                
  3 *                
  4 * Filename:      irlap_event.h
  5 * Version:       0.1
  6 * Description:   
  7 * Status:        Experimental.
  8 * Author:        Dag Brattli <dagb@cs.uit.no>
  9 * Created at:    Sat Aug 16 00:59:29 1997
 10 * Modified at:   Tue Dec 21 11:20:30 1999
 11 * Modified by:   Dag Brattli <dagb@cs.uit.no>
 12 * 
 13 *     Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, 
 14 *     All Rights Reserved.
 15 *     Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com>
 16 *     
 17 *     This program is free software; you can redistribute it and/or 
 18 *     modify it under the terms of the GNU General Public License as 
 19 *     published by the Free Software Foundation; either version 2 of 
 20 *     the License, or (at your option) any later version.
 21 * 
 22 *     This program is distributed in the hope that it will be useful,
 23 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 24 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 25 *     GNU General Public License for more details.
 26 * 
 27 *     You should have received a copy of the GNU General Public License 
 28 *     along with this program; if not, see <http://www.gnu.org/licenses/>.
 29 *     
 30 ********************************************************************/
 31
 32#ifndef IRLAP_EVENT_H
 33#define IRLAP_EVENT_H
 34
 35#include <net/irda/irda.h>
 36
 37/* A few forward declarations (to make compiler happy) */
 38struct irlap_cb;
 39struct irlap_info;
 40
 41/* IrLAP States */
 42typedef enum {
 43	LAP_NDM,         /* Normal disconnected mode */
 44	LAP_QUERY,
 45	LAP_REPLY,
 46	LAP_CONN,        /* Connect indication */
 47	LAP_SETUP,       /* Setting up connection */
 48	LAP_OFFLINE,     /* A really boring state */
 49	LAP_XMIT_P,
 50	LAP_PCLOSE,
 51	LAP_NRM_P,       /* Normal response mode as primary */
 52	LAP_RESET_WAIT,
 53	LAP_RESET,
 54	LAP_NRM_S,       /* Normal response mode as secondary */
 55	LAP_XMIT_S,
 56	LAP_SCLOSE,
 57	LAP_RESET_CHECK,
 58} IRLAP_STATE;
 59
 60/* IrLAP Events */
 61typedef enum {
 62	/* Services events */
 63	DISCOVERY_REQUEST,
 64	CONNECT_REQUEST,
 65	CONNECT_RESPONSE,
 66	DISCONNECT_REQUEST,
 67	DATA_REQUEST,
 68	RESET_REQUEST,
 69	RESET_RESPONSE,
 70
 71	/* Send events */
 72	SEND_I_CMD,
 73	SEND_UI_FRAME,
 74
 75	/* Receive events */
 76	RECV_DISCOVERY_XID_CMD,
 77	RECV_DISCOVERY_XID_RSP,
 78	RECV_SNRM_CMD,
 79	RECV_TEST_CMD,
 80	RECV_TEST_RSP,
 81	RECV_UA_RSP,
 82	RECV_DM_RSP,
 83	RECV_RD_RSP,
 84	RECV_I_CMD,
 85	RECV_I_RSP,
 86	RECV_UI_FRAME,
 87	RECV_FRMR_RSP,
 88	RECV_RR_CMD,
 89	RECV_RR_RSP,
 90	RECV_RNR_CMD,
 91	RECV_RNR_RSP,
 92	RECV_REJ_CMD,
 93	RECV_REJ_RSP,
 94	RECV_SREJ_CMD,
 95	RECV_SREJ_RSP,
 96	RECV_DISC_CMD,
 97
 98	/* Timer events */
 99	SLOT_TIMER_EXPIRED,
100	QUERY_TIMER_EXPIRED,
101	FINAL_TIMER_EXPIRED,
102	POLL_TIMER_EXPIRED,
103	DISCOVERY_TIMER_EXPIRED,
104	WD_TIMER_EXPIRED,
105	BACKOFF_TIMER_EXPIRED,
106	MEDIA_BUSY_TIMER_EXPIRED,
107} IRLAP_EVENT;
108
109/*
110 * Disconnect reason code
111 */
112typedef enum { /* FIXME check the two first reason codes */
113	LAP_DISC_INDICATION=1, /* Received a disconnect request from peer */
114	LAP_NO_RESPONSE,       /* To many retransmits without response */
115	LAP_RESET_INDICATION,  /* To many retransmits, or invalid nr/ns */
116	LAP_FOUND_NONE,        /* No devices were discovered */
117	LAP_MEDIA_BUSY,
118	LAP_PRIMARY_CONFLICT,
119} LAP_REASON;
120
121extern const char *const irlap_state[];
122
123void irlap_do_event(struct irlap_cb *self, IRLAP_EVENT event, 
124		    struct sk_buff *skb, struct irlap_info *info);
125void irlap_print_event(IRLAP_EVENT event);
126
127int irlap_qos_negotiate(struct irlap_cb *self, struct sk_buff *skb);
128
129#endif