wanpipe/patches/kdrivers/include/sdla_adsl.h

151 lines
4.4 KiB
C

/*
* Copyright (c) 2002
* Alex Feldman <al.feldman@sangoma.com>. All rights reserved.
*
* $Id: sdla_adsl.h,v 1.9 2008/01/09 17:45:29 sangoma Exp $
*/
/*************************************************************************
* sdla_adsl.h WANPIPE(tm)
*
* Author: Alex Feldman <al.feldman@sangoma.com>
*
*
* ========================================================================
* Jun 17, 2002 Alex Feldman Initial version.
* ========================================================================
*
**************************************************************************
*/
#ifndef __SDLA_ADSL_H
# define __SDLA_ADSL_H
#if defined(__FreeBSD__) || defined(__OpenBSD__)
# include <sdla_adsl_iface.h>
#elif defined(__WINDOWS__)
# include <sdla_adsl_iface.h>
#elif defined(__LINUX__) || defined(__KERNEL__)
# include <linux/sdla_adsl_iface.h>
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
# include <sdla_adsl_iface.h>
#else
# error "Unsuported OS!"
#endif
#define ADSL_TEST_DRIVER_RESPONSE 0x01
#define ADSL_READ_DRIVER_VERSION 0x02
#define ADSL_ROUTER_UP_TIME 0x03
#define ADSL_ENABLE_TRACING 0x06
#define ADSL_DISABLE_TRACING 0x07
#define ADSL_GET_TRACE_INFO 0x08
#define MAX_TRACE_TIMEOUT (HZ*10)
typedef struct adsl_cfg {
unsigned char adsl_framing;
unsigned char adsl_trellis;
unsigned char adsl_as0;
unsigned char adsl_as0_latency;
unsigned char adsl_as1;
unsigned char adsl_as1_latency;
unsigned char adsl_ls0;
unsigned char adsl_ls0_latency;
unsigned char adsl_ls1;
unsigned char adsl_ls1_latency;
unsigned char adsl_redundant_bytes;
unsigned char adsl_interleave_s_up;
unsigned char adsl_interleave_d_up;
unsigned char adsl_interleave_r_up;
unsigned char adsl_fast_r_up;
unsigned char adsl_interleave_s_down;
unsigned char adsl_interleave_d_down;
unsigned char adsl_interleave_r_down;
unsigned char adsl_selected_standard;
} adsl_cfg_t;
#if !defined(__WINDOWS__)
#undef wan_udphdr_data
#define wan_udphdr_data wan_udphdr_adsl_data
#undef wan_udp_data
#define wan_udp_data wan_udp_hdr.wan_udphdr_adsl_data
#endif
#ifdef WAN_KERNEL
typedef struct adsl_private_area
{
wanpipe_common_t common;
void* pAdapter;
char if_name[IFNAMSIZ];
u_char macAddr[6];
atomic_t udp_pkt_len;
unsigned char udp_pkt_data[sizeof(wan_udp_pkt_t)];
unsigned char udp_pkt_src;
unsigned char remote_eth_addr[6];
unsigned long router_start_time;
unsigned long router_up_time;
unsigned long trace_timeout;
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
struct ifmedia media; /* media information */
#endif
#if defined(__WINDOWS__)
void *sdla_net_dev;
void *card;
struct net_device_stats if_stats;
wan_tasklet_t adsl_if_send_task; /* Immediate BH handler task */
wan_trace_t trace_info;
#endif
} adsl_private_area_t;
typedef struct adsl_trace_info
{
unsigned long tracing_enabled;
wan_skb_queue_t trace_queue;
unsigned long trace_timeout;
unsigned int max_trace_queue;
} adsl_trace_info_t;
#endif /* WAN_KERNEL */
/*extern void* adsl_create(void* dsl_cfg, void* card, void* virt_addr, char* devname);
extern void* adsl_new_if(void*, u_char*, void*);
extern int adsl_del_if(void*);
extern int adsl_can_tx(void*);
extern int adsl_send(void*, void* tx_skb,unsigned int);
extern void adsl_timeout(void*);
extern void adsl_isr(void*);
extern void adsl_udp_cmd(void*, unsigned char, unsigned char*, unsigned short*);
extern void adsl_disable_comm(void*);
*/
extern void adsl_lan_multicast(void*, short,char*,int);
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
extern void adsl_atm_tasklet(void*, int);
#else
extern void adsl_atm_tasklet(unsigned long);
#endif
/*
extern void adsl_task_schedule(void*);
extern void adsl_task_kill(void*);
extern void adsl_lan_rx(void*,void*,u_int32_t,unsigned char*, int);
extern int adsl_tracing_enabled(void*);
extern void adsl_tx_complete(void*, int, int);
extern void adsl_rx_complete(void*);
extern int GpWanWriteRoom(void *pChan_ptr);
extern int GpWanOpen(void *pAdapter_ptr, unsigned char line, void *tty, void **data);
extern void GpWanClose(void *pAdapter_ptr, void *pChan_ptr);
extern int GpWanTx(void *pChan_ptr, int fromUser, const unsigned char *buffer, int bufferLen);
extern void* adsl_get_trace_ptr(void *pAdapter_ptr);
extern int adsl_wan_interface_type(void *);
*/
extern int adsl_queue_trace(void*, void*);
#endif /* __SDLA_ADSL_H_ */