00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef IRCOMM_EVENT_H
00032 #define IRCOMM_EVENT_H
00033
00034 typedef enum {
00035 IRCOMM_IDLE,
00036 IRCOMM_WAITI,
00037 IRCOMM_WAITR,
00038 IRCOMM_CONN,
00039 } IRCOMM_STATE;
00040
00041
00042 typedef enum {
00043 IRCOMM_CONNECT_REQUEST,
00044 IRCOMM_CONNECT_RESPONSE,
00045 IRCOMM_TTP_CONNECT_INDICATION,
00046 IRCOMM_LMP_CONNECT_INDICATION,
00047 IRCOMM_TTP_CONNECT_CONFIRM,
00048 IRCOMM_LMP_CONNECT_CONFIRM,
00049
00050 IRCOMM_LMP_DISCONNECT_INDICATION,
00051 IRCOMM_TTP_DISCONNECT_INDICATION,
00052 IRCOMM_DISCONNECT_REQUEST,
00053
00054 IRCOMM_TTP_DATA_INDICATION,
00055 IRCOMM_LMP_DATA_INDICATION,
00056 IRCOMM_DATA_REQUEST,
00057 IRCOMM_CONTROL_REQUEST,
00058 IRCOMM_CONTROL_INDICATION,
00059 } IRCOMM_EVENT;
00060
00061
00062
00063
00064 struct ircomm_info {
00065 __u32 saddr;
00066 __u32 daddr;
00067 __u8 dlsap_sel;
00068 LM_REASON reason;
00069 __u32 max_data_size;
00070 __u32 max_header_size;
00071
00072 struct qos_info *qos;
00073 };
00074
00075 extern char *ircomm_state[];
00076 extern char *ircomm_event[];
00077
00078 struct ircomm_cb;
00079
00080 int ircomm_do_event(struct ircomm_cb *self, IRCOMM_EVENT event,
00081 struct sk_buff *skb, struct ircomm_info *info);
00082 void ircomm_next_state(struct ircomm_cb *self, IRCOMM_STATE state);
00083
00084 #endif