~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/net/irda/irlmp_event.h

Version: ~ [ 2.2.5 ] ~ [ 2.4.1 ] ~ [ 2.4.9 ] ~ [ 2.6.17.10 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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  *     
 15  *     This program is free software; you can redistribute it and/or 
 16  *     modify it under the terms of the GNU General Public License as 
 17  *     published by the Free Software Foundation; either version 2 of 
 18  *     the License, or (at your option) any later version.
 19  *
 20  *     Neither Dag Brattli nor University of Tromsų admit liability nor
 21  *     provide warranty for any of this software. This material is 
 22  *     provided "AS-IS" and at no charge.
 23  *
 24  ********************************************************************/
 25 
 26 #ifndef IRLMP_EVENT_H
 27 #define IRLMP_EVENT_H
 28 
 29 struct irlmp_cb;
 30 struct lsap_cb;
 31 struct lap_cb;
 32 
 33 /* LAP states */
 34 typedef enum {
 35         /* IrLAP connection control states */
 36         LAP_STANDBY,             /* No LAP connection */
 37         LAP_U_CONNECT,           /* Starting LAP connection */
 38         LAP_ACTIVE,              /* LAP connection is active */
 39 } IRLMP_STATE;
 40 
 41 /* LSAP connection control states */
 42 typedef enum {
 43         LSAP_DISCONNECTED,        /* No LSAP connection */
 44         LSAP_CONNECT,             /* Connect indication from peer */
 45         LSAP_CONNECT_PEND,        /* Connect request from service user */
 46         LSAP_DATA_TRANSFER_READY, /* LSAP connection established */          
 47         LSAP_SETUP,               /* Trying to set up LSAP connection */
 48         LSAP_SETUP_PEND,          /* Request to start LAP connection */
 49 } LSAP_STATE;
 50 
 51 typedef enum {
 52         /* LSAP events */
 53         LM_CONNECT_REQUEST,
 54         LM_CONNECT_CONFIRM,
 55         LM_CONNECT_RESPONSE,
 56         LM_CONNECT_INDICATION,  
 57         
 58         LM_DISCONNECT_INDICATION,
 59         LM_DISCONNECT_REQUEST,
 60 
 61         LM_DATA_REQUEST,
 62         LM_UDATA_REQUEST,
 63         LM_DATA_INDICATION,
 64         LM_UDATA_INDICATION,
 65 
 66         LM_WATCHDOG_TIMEOUT,
 67 
 68         /* IrLAP events */
 69         LM_LAP_CONNECT_REQUEST,
 70         LM_LAP_CONNECT_INDICATION, 
 71         LM_LAP_CONNECT_CONFIRM,
 72         LM_LAP_DISCONNECT_INDICATION, 
 73         LM_LAP_DISCONNECT_REQUEST,
 74         LM_LAP_DISCOVERY_REQUEST,
 75         LM_LAP_DISCOVERY_CONFIRM,
 76         LM_LAP_IDLE_TIMEOUT,
 77 } IRLMP_EVENT;
 78 
 79 /*
 80  *  Information which is used by the current thread, when executing in the
 81  *  state machine.
 82  */
 83 struct irlmp_event {
 84         IRLMP_EVENT *event;
 85         struct sk_buff *skb;
 86 
 87         __u8 hint;
 88         __u32 daddr;
 89         __u32 saddr;
 90 
 91         __u8 slsap;
 92         __u8 dlsap;
 93 
 94         int reason;
 95 
 96         discovery_t *discovery;
 97 };
 98 
 99 extern const char *irlmp_state[];
100 extern const char *irlsap_state[];
101 
102 void irlmp_watchdog_timer_expired(void *data);
103 void irlmp_discovery_timer_expired(void *data);
104 void irlmp_idle_timer_expired(void *data);
105 
106 void irlmp_next_station_state(IRLMP_STATE state);
107 void irlmp_next_lsap_state(struct lsap_cb *self, LSAP_STATE state);
108 void irlmp_next_lap_state(struct lap_cb *self, IRLMP_STATE state);
109 
110 void irlmp_do_lap_event(struct lap_cb *self, IRLMP_EVENT event, 
111                         struct sk_buff *skb);
112 int irlmp_do_lsap_event(struct lsap_cb *self, IRLMP_EVENT event, 
113                         struct sk_buff *skb);
114 
115 #endif /* IRLMP_EVENT_H */
116 
117 
118 
119 
120 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.