⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 irnet_irda.h

📁 linux-2.6.15.6
💻 H
字号:
/* *	IrNET protocol module : Synchronous PPP over an IrDA socket. * *		Jean II - HPL `00 - <jt@hpl.hp.com> * * This file contains all definitions and declarations necessary for the * IRDA part of the IrNET module (dealing with IrTTP, IrIAS and co). * This file is a private header, so other modules don't want to know * what's in there... */#ifndef IRNET_IRDA_H#define IRNET_IRDA_H/***************************** INCLUDES *****************************//* Please add other headers in irnet.h */#include "irnet.h"		/* Module global include *//************************ CONSTANTS & MACROS ************************//* * Name of the service (socket name) used by IrNET *//* IAS object name (or part of it) */#define IRNET_SERVICE_NAME	"IrNetv1"/* IAS attribute */#define IRNET_IAS_VALUE		"IrDA:TinyTP:LsapSel"/* LMP notify name for client (only for /proc/net/irda/irlmp) */#define IRNET_NOTIFY_NAME	"IrNET socket"/* LMP notify name for server (only for /proc/net/irda/irlmp) */#define IRNET_NOTIFY_NAME_SERV	"IrNET server"/****************************** TYPES ******************************//* * This is the main structure where we store all the data pertaining to * the IrNET server (listen for connection requests) and the root * of the IrNET socket list */typedef struct irnet_root{  irnet_socket		s;		/* To pretend we are a client... */  /* Generic stuff */  int			magic;		/* Paranoia */  int			running;	/* Are we operational ? */  /* Link list of all IrNET instances opened */  hashbin_t *		list;  spinlock_t		spinlock;	/* Serialize access to the list */  /* Note : the way hashbin has been designed is absolutely not   * reentrant, beware... So, we blindly protect all with spinlock */  /* Handle for the hint bit advertised in IrLMP */  void *		skey;  /* Server socket part */  struct ias_object *	ias_obj;	/* Our service name + lsap in IAS */} irnet_root;/**************************** PROTOTYPES ****************************//* ----------------------- CONTROL CHANNEL ----------------------- */static void	irnet_post_event(irnet_socket *,			 irnet_event,			 __u32,			 __u32,			 char *,			 __u16);/* ----------------------- IRDA SUBROUTINES ----------------------- */static inline int	irnet_open_tsap(irnet_socket *);static inline __u8	irnet_ias_to_tsap(irnet_socket *,			  int,			  struct ias_value *);static inline int	irnet_find_lsap_sel(irnet_socket *);static inline int	irnet_connect_tsap(irnet_socket *);static inline int	irnet_discover_next_daddr(irnet_socket *);static inline int	irnet_discover_daddr_and_lsap_sel(irnet_socket *);static inline int	irnet_dname_to_daddr(irnet_socket *);/* ------------------------ SERVER SOCKET ------------------------ */static inline int	irnet_daddr_to_dname(irnet_socket *);static inline irnet_socket *	irnet_find_socket(irnet_socket *);static inline int	irnet_connect_socket(irnet_socket *,			     irnet_socket *,			     struct qos_info *,			     __u32,			     __u8);static inline void	irnet_disconnect_server(irnet_socket *,				struct sk_buff *);static inline int	irnet_setup_server(void);static inline void	irnet_destroy_server(void);/* ---------------------- IRDA-TTP CALLBACKS ---------------------- */static int	irnet_data_indication(void *,		/* instance */			      void *,		/* sap */			      struct sk_buff *);static void	irnet_disconnect_indication(void *,				    void *,				    LM_REASON,				    struct sk_buff *);static void	irnet_connect_confirm(void *,			      void *,			      struct qos_info *,			      __u32,			      __u8,			      struct sk_buff *);static void	irnet_flow_indication(void *,			      void *,			      LOCAL_FLOW);static void	irnet_status_indication(void *,				LINK_STATUS,				LOCK_STATUS);static void	irnet_connect_indication(void *,				 void *,				 struct qos_info *,				 __u32,				 __u8,				 struct sk_buff *);/* -------------------- IRDA-IAS/LMP CALLBACKS -------------------- */static void	irnet_getvalue_confirm(int,			       __u16,			       struct ias_value *,			       void *);static void	irnet_discovervalue_confirm(int,				    __u16, 				    struct ias_value *,				    void *);#ifdef DISCOVERY_EVENTSstatic void	irnet_discovery_indication(discinfo_t *,				   DISCOVERY_MODE,				   void *);static void	irnet_expiry_indication(discinfo_t *,				DISCOVERY_MODE,				void *);#endif/* -------------------------- PROC ENTRY -------------------------- */#ifdef CONFIG_PROC_FSstatic int	irnet_proc_read(char *,			char **,			off_t,			int);#endif /* CONFIG_PROC_FS *//**************************** VARIABLES ****************************//* * The IrNET server. Listen to connection requests and co... */static struct irnet_root	irnet_server;/* Control channel stuff (note : extern) */struct irnet_ctrl_channel	irnet_events;/* The /proc/net/irda directory, defined elsewhere... */#ifdef CONFIG_PROC_FSextern struct proc_dir_entry *proc_irda;#endif /* CONFIG_PROC_FS */#endif /* IRNET_IRDA_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -