wanpipe-kernel-sources/kdrivers/include/wanpipe_iface.h

110 lines
2.6 KiB
C

#ifndef __WANPIPE_IFACE_H
# define __WANPIPE_IFACE_H
#if defined(__LINUX__)
# include <linux/hdlc.h>
#endif
#define WAN_IFACE_NETDEV 0x01
#define WAN_IFACE_SPPP 0x02
#if defined(__NetBSD__) || defined (__FreeBSD__) || defined(__OpenBSD__)
# define IF_IFACE_V35 0x1001
# define IF_IFACE_T1 0x1002
# define IF_IFACE_E1 0x1003
# define IF_IFACE_SYNC_SERIAL 0x1004
# define IF_PROTO_HDLC 0x2001
# define IF_PROTO_PPP 0x2002
# define IF_PROTO_CISCO 0x2003
# define IF_PROTO_FR 0x2004
# define IF_PROTO_FR_ADD_PVC 0x2005
# define IF_PROTO_FR_DEL_PVC 0x2006
# define IF_PROTO_X25 0x2007
# define WAN_PROTO_X25 0x2007
# define IF_GET_PROTO 0x3001
# define te1_settings void
# define sync_serial_settings void
#elif defined(__LINUX__)
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
//# define ifs_size data_length
//# define SIOCWANDEV SIOCDEVICE
# elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
//# define ifs_size size
# else
//# define ifs_size data_length
#ifndef SIOCWANDEV
# define SIOCWANDEV SIOCDEVICE
#endif
# endif
#endif
#if defined(OLD_IFSETTINGS_STRUCT)
# define ifs_size data_length
# define ifs_te1 data
# define ifs_sync data
# define ifs_cisco data
# define ifs_fr data
# define ifs_fr_pvc data
# define ifs_fr_pvc_info data
#else
# define ifs_size size
# define ifs_te1 ifs_ifsu.te1
# define ifs_sync ifs_ifsu.sync
# define ifs_cisco ifs_ifsu.cisco
# define ifs_fr ifs_ifsu.fr
# define ifs_fr_pvc ifs_ifsu.fr_pvc
# define ifs_fr_pvc_info ifs_ifsu.fr_pvc_info
#endif
#define WANHDLC_CONF_INTERFACE 0x0001
#define WANHDLC_CONF_CLOCKING 0x0002
#define WANHDLC_CONF_MTU 0x0004
#define WANHDLC_CONF_UDPPORT 0x0008
#define WANHDLC_CONF_TTL 0x0010
typedef struct {
unsigned long mask;
char interface;
unsigned bps;
unsigned mtu;
unsigned udp_port;
unsigned ttl;
} wan_dev_conf_t;
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
typedef struct { int dummy; } cisco_proto, fr_proto, fr_proto_pvc;
struct if_settings
{
unsigned int type;
unsigned int data_length;
void* data;
};
#endif
/* WANPIPE Generic function interface */
# if defined(WAN_KERNEL)
typedef struct
{
netdevice_t*(*alloc)(int, int ifType);
void(*free)(netdevice_t*);
int(*attach)(netdevice_t*, char*, int);
void(*detach)(netdevice_t*, int);
int(*input)(netdevice_t*, netskb_t*);
int(*set_proto)(netdevice_t*, struct ifreq*);
int(*attach_eth)(netdevice_t*, char*, int);
} wan_iface_t;
# endif
#endif /* __WANPIPE_IFACE_H */