18c2ecf20Sopenharmony_ci#ifndef LLC_S_EV_H
28c2ecf20Sopenharmony_ci#define LLC_S_EV_H
38c2ecf20Sopenharmony_ci/*
48c2ecf20Sopenharmony_ci * Copyright (c) 1997 by Procom Technology,Inc.
58c2ecf20Sopenharmony_ci * 		 2001 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * This program can be redistributed or modified under the terms of the
88c2ecf20Sopenharmony_ci * GNU General Public License as published by the Free Software Foundation.
98c2ecf20Sopenharmony_ci * This program is distributed without any warranty or implied warranty
108c2ecf20Sopenharmony_ci * of merchantability or fitness for a particular purpose.
118c2ecf20Sopenharmony_ci *
128c2ecf20Sopenharmony_ci * See the GNU General Public License for more details.
138c2ecf20Sopenharmony_ci */
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#include <linux/skbuff.h>
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci/* Defines SAP component events */
188c2ecf20Sopenharmony_ci/* Types of events (possible values in 'ev->type') */
198c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_SIMPLE		1
208c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_CONDITION	2
218c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_PRIM		3
228c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_PDU		4   /* command/response PDU */
238c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_ACK_TMR		5
248c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TYPE_RPT_STATUS	6
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#define LLC_SAP_EV_ACTIVATION_REQ	 1
278c2ecf20Sopenharmony_ci#define LLC_SAP_EV_RX_UI		 2
288c2ecf20Sopenharmony_ci#define LLC_SAP_EV_UNITDATA_REQ		 3
298c2ecf20Sopenharmony_ci#define LLC_SAP_EV_XID_REQ		 4
308c2ecf20Sopenharmony_ci#define LLC_SAP_EV_RX_XID_C		 5
318c2ecf20Sopenharmony_ci#define LLC_SAP_EV_RX_XID_R		 6
328c2ecf20Sopenharmony_ci#define LLC_SAP_EV_TEST_REQ		 7
338c2ecf20Sopenharmony_ci#define LLC_SAP_EV_RX_TEST_C		 8
348c2ecf20Sopenharmony_ci#define LLC_SAP_EV_RX_TEST_R		 9
358c2ecf20Sopenharmony_ci#define LLC_SAP_EV_DEACTIVATION_REQ	10
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_cistruct llc_sap_state_ev {
388c2ecf20Sopenharmony_ci	u8		prim;
398c2ecf20Sopenharmony_ci	u8		prim_type;
408c2ecf20Sopenharmony_ci	u8		type;
418c2ecf20Sopenharmony_ci	u8		reason;
428c2ecf20Sopenharmony_ci	u8		ind_cfm_flag;
438c2ecf20Sopenharmony_ci	struct llc_addr saddr;
448c2ecf20Sopenharmony_ci	struct llc_addr daddr;
458c2ecf20Sopenharmony_ci};
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_cistatic __inline__ struct llc_sap_state_ev *llc_sap_ev(struct sk_buff *skb)
488c2ecf20Sopenharmony_ci{
498c2ecf20Sopenharmony_ci	return (struct llc_sap_state_ev *)skb->cb;
508c2ecf20Sopenharmony_ci}
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_cistruct llc_sap;
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_citypedef int (*llc_sap_ev_t)(struct llc_sap *sap, struct sk_buff *skb);
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciint llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb);
578c2ecf20Sopenharmony_ciint llc_sap_ev_rx_ui(struct llc_sap *sap, struct sk_buff *skb);
588c2ecf20Sopenharmony_ciint llc_sap_ev_unitdata_req(struct llc_sap *sap, struct sk_buff *skb);
598c2ecf20Sopenharmony_ciint llc_sap_ev_xid_req(struct llc_sap *sap, struct sk_buff *skb);
608c2ecf20Sopenharmony_ciint llc_sap_ev_rx_xid_c(struct llc_sap *sap, struct sk_buff *skb);
618c2ecf20Sopenharmony_ciint llc_sap_ev_rx_xid_r(struct llc_sap *sap, struct sk_buff *skb);
628c2ecf20Sopenharmony_ciint llc_sap_ev_test_req(struct llc_sap *sap, struct sk_buff *skb);
638c2ecf20Sopenharmony_ciint llc_sap_ev_rx_test_c(struct llc_sap *sap, struct sk_buff *skb);
648c2ecf20Sopenharmony_ciint llc_sap_ev_rx_test_r(struct llc_sap *sap, struct sk_buff *skb);
658c2ecf20Sopenharmony_ciint llc_sap_ev_deactivation_req(struct llc_sap *sap, struct sk_buff *skb);
668c2ecf20Sopenharmony_ci#endif /* LLC_S_EV_H */
67