linux/include/net/irda/irlmp_event.h
<<
>>
Prefs
   1/*********************************************************************
   2 *                
   3 * Filename:      irlmp_event.h
   4 * Version:       0.1
   5 * Description:   IrDA-LMP event handling
   6 * Status:        Experimental.
   7 * Author:        Dag Brattli <dagb@cs.uit.no>
   8 * Created at:    Mon Aug  4 20:40:53 1997
   9 * Modified at:   Thu Jul  8 12:18:54 1999
  10 * Modified by:   Dag Brattli <dagb@cs.uit.no>
  11 * 
  12 *     Copyright (c) 1997, 1999 Dag Brattli <dagb@cs.uit.no>, 
  13 *     All Rights Reserved.
  14 *     Copyright (c) 2000-2002 Jean Tourrilhes <jt@hpl.hp.com>
  15 *     
  16 *     This program is free software; you can redistribute it and/or 
  17 *     modify it under the terms of the GNU General Public License as 
  18 *     published by the Free Software Foundation; either version 2 of 
  19 *     the License, or (at your option) any later version.
  20 *
  21 *     Neither Dag Brattli nor University of Tromsø admit liability nor
  22 *     provide warranty for any of this software. This material is 
  23 *     provided "AS-IS" and at no charge.
  24 *
  25 ********************************************************************/
  26
  27#ifndef IRLMP_EVENT_H
  28#define IRLMP_EVENT_H
  29
  30/* A few forward declarations (to make compiler happy) */
  31struct irlmp_cb;
  32struct lsap_cb;
  33struct lap_cb;
  34struct discovery_t;
  35
  36/* LAP states */
  37typedef enum {
  38        /* IrLAP connection control states */
  39        LAP_STANDBY,             /* No LAP connection */
  40        LAP_U_CONNECT,           /* Starting LAP connection */
  41        LAP_ACTIVE,              /* LAP connection is active */
  42} IRLMP_STATE;
  43
  44/* LSAP connection control states */
  45typedef enum {
  46        LSAP_DISCONNECTED,        /* No LSAP connection */
  47        LSAP_CONNECT,             /* Connect indication from peer */
  48        LSAP_CONNECT_PEND,        /* Connect request from service user */
  49        LSAP_DATA_TRANSFER_READY, /* LSAP connection established */          
  50        LSAP_SETUP,               /* Trying to set up LSAP connection */
  51        LSAP_SETUP_PEND,          /* Request to start LAP connection */
  52} LSAP_STATE;
  53
  54typedef enum {
  55        /* LSAP events */
  56        LM_CONNECT_REQUEST,
  57        LM_CONNECT_CONFIRM,
  58        LM_CONNECT_RESPONSE,
  59        LM_CONNECT_INDICATION,  
  60        
  61        LM_DISCONNECT_INDICATION,
  62        LM_DISCONNECT_REQUEST,
  63
  64        LM_DATA_REQUEST,
  65        LM_UDATA_REQUEST,
  66        LM_DATA_INDICATION,
  67        LM_UDATA_INDICATION,
  68
  69        LM_WATCHDOG_TIMEOUT,
  70
  71        /* IrLAP events */
  72        LM_LAP_CONNECT_REQUEST,
  73        LM_LAP_CONNECT_INDICATION, 
  74        LM_LAP_CONNECT_CONFIRM,
  75        LM_LAP_DISCONNECT_INDICATION, 
  76        LM_LAP_DISCONNECT_REQUEST,
  77        LM_LAP_DISCOVERY_REQUEST,
  78        LM_LAP_DISCOVERY_CONFIRM,
  79        LM_LAP_IDLE_TIMEOUT,
  80} IRLMP_EVENT;
  81
  82extern const char *const irlmp_state[];
  83extern const char *const irlsap_state[];
  84
  85void irlmp_watchdog_timer_expired(void *data);
  86void irlmp_discovery_timer_expired(void *data);
  87void irlmp_idle_timer_expired(void *data);
  88
  89void irlmp_do_lap_event(struct lap_cb *self, IRLMP_EVENT event, 
  90                        struct sk_buff *skb);
  91int irlmp_do_lsap_event(struct lsap_cb *self, IRLMP_EVENT event, 
  92                        struct sk_buff *skb);
  93
  94#endif /* IRLMP_EVENT_H */
  95
  96
  97
  98
  99