!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/include/linux/   drwxr-xr-x
Free 318.33 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     wanpipe.h (18.41 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*****************************************************************************
* wanpipe.h    WANPIPE(tm) Multiprotocol WAN Link Driver.
*        User-level API definitions.
*
* Author:     Nenad Corbic <ncorbic@sangoma.com>
*        Gideon Hack      
*
* Copyright:    (c) 1995-2000 Sangoma Technologies Inc.
*
*        This program is free software; you can redistribute it and/or
*        modify it under the terms of the GNU General Public License
*        as published by the Free Software Foundation; either version
*        2 of the License, or (at your option) any later version.
* ============================================================================
* Nov 3,  2000  Nenad Corbic    Added config_id to sdla_t structure.
*                               Used to determine the protocol running.
* Jul 13, 2000  Nenad Corbic    Added SyncPPP Support
* Feb 24, 2000  Nenad Corbic    Added support for x25api driver
* Oct 04, 1999  Nenad Corbic    New CHDLC and FRAME RELAY code, SMP support
* Jun 02, 1999  Gideon Hack    Added 'update_call_count' for Cisco HDLC 
*                support
* Jun 26, 1998    David Fong    Added 'ip_mode' in sdla_t.u.p for dynamic IP
*                routing mode configuration
* Jun 12, 1998    David Fong    Added Cisco HDLC union member in sdla_t
* Dec 08, 1997    Jaspreet Singh  Added 'authenticator' in union of 'sdla_t' 
* Nov 26, 1997    Jaspreet Singh    Added 'load_sharing' structure.  Also added 
*                'devs_struct','dev_to_devtint_next' to 'sdla_t'    
* Nov 24, 1997    Jaspreet Singh    Added 'irq_dis_if_send_count', 
*                'irq_dis_poll_count' to 'sdla_t'.
* Nov 06, 1997    Jaspreet Singh    Added a define called 'INTR_TEST_MODE'
* Oct 20, 1997    Jaspreet Singh    Added 'buff_intr_mode_unbusy' and 
*                'dlci_intr_mode_unbusy' to 'sdla_t'
* Oct 18, 1997    Jaspreet Singh    Added structure to maintain global driver
*                statistics.
* Jan 15, 1997    Gene Kozin    Version 3.1.0
*                 o added UDP management stuff
* Jan 02, 1997    Gene Kozin    Version 3.0.0
*****************************************************************************/
#ifndef    _WANPIPE_H
#define    _WANPIPE_H

#include <linux/version.h>

#ifndef KERNEL_VERSION
  #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
 
 #define LINUX_2_4
 #define netdevice_t struct net_device

 #define FREE_READ 1
 #define FREE_WRITE 0

 #define stop_net_queue(a)     netif_stop_queue(a) 
 #define start_net_queue(a)     netif_start_queue(a)
 #define is_queue_stopped(a)    netif_queue_stopped(a)
 #define wake_net_dev(a)    netif_wake_queue(a)
 #define is_dev_running(a)    netif_running(a)
 #define wan_dev_kfree_skb(a,b)    dev_kfree_skb_any(a)


#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,0)

 #define LINUX_2_1
 #define netdevice_t struct device
 #define FREE_READ 1
 #define FREE_WRITE 0

 #define stop_net_queue(a)     (set_bit(0, &##a->tbusy)) 
 #define start_net_queue(a)     (clear_bit(0,&##a->tbusy))
 #define is_queue_stopped(a)    (##a->tbusy)
 #define wake_net_dev(a)    {clear_bit(0,&##a->tbusy);mark_bh(NET_BH);}
 #define is_dev_running(a)    (test_bit(0,&##a->start))
 #define wan_dev_kfree_skb(a,b)    dev_kfree_skb(a)

#else
 #define LINUX_2_0
 #define netdevice_t struct device

 #define test_and_set_bit set_bit
 #define net_ratelimit() 1 

 #define stop_net_queue(a)     (set_bit(0, &##a->tbusy)) 
 #define start_net_queue(a)     (clear_bit(0,&##a->tbusy))
 #define is_queue_stopped(a)    (##a->tbusy)
 #define wake_net_dev(a)    {clear_bit(0,&##a->tbusy);mark_bh(NET_BH);}
 #define is_dev_running(a)    (test_bit(0,(void*)&##a->start))
 #define wan_dev_kfree_skb(a,b) dev_kfree_skb(a,b)           
 #define spin_lock_init(a)
 #define spin_lock(a)
 #define spin_unlock(a)
#endif

#include <linux/wanrouter.h>

/* Defines */

#ifndef    PACKED
#define    PACKED    __attribute__((packed))
#endif

#define    WANPIPE_MAGIC    0x414C4453L    /* signature: 'SDLA' reversed */

/* IOCTL numbers (up to 16) */
#define    WANPIPE_DUMP    (ROUTER_USER+0)    /* dump adapter's memory */
#define    WANPIPE_EXEC    (ROUTER_USER+1)    /* execute firmware command */

#define TRACE_ALL                       0x00
#define TRACE_PROT            0x01
#define TRACE_DATA            0x02

/* values for request/reply byte */
#define UDPMGMT_REQUEST    0x01
#define UDPMGMT_REPLY    0x02
#define UDP_OFFSET    12

#define MAX_CMD_BUFF     10
#define MAX_X25_LCN     255    /* Maximum number of x25 channels */
#define MAX_LCN_NUM    4095    /* Maximum lcn number */
#define MAX_FT1_RETRY     100

#ifdef LINUX_2_4
  #ifndef AF_WANPIPE
    #define AF_WANPIPE 25
    #ifndef PF_WANPIPE
        #define PF_WANPIPE AF_WANPIPE
    #endif
  #endif

#else
  #ifndef AF_WANPIPE
    #define AF_WANPIPE 24
    #ifndef PF_WANPIPE
        #define PF_WANPIPE AF_WANPIPE
    #endif
  #endif
#endif


#define TX_TIMEOUT 5*HZ

/* General Critical Flags */
#define SEND_CRIT    0x00
#define PERI_CRIT    0x01

/* Chdlc and PPP polling critical flag */
#define POLL_CRIT    0x03

/* Frame Relay Tx IRQ send critical flag */
#define SEND_TXIRQ_CRIT 0x02

/* Frame Relay ARP critical flag */
#define ARP_CRIT    0x03

/* Bit maps for dynamic interface configuration
 * DYN_OPT_ON : turns this option on/off 
 * DEV_DOWN   : device was shutdown by the driver not
 *              by user 
 */
#define DYN_OPT_ON    0x00
#define DEV_DOWN    0x01

/*
 * Data structures for IOCTL calls.
 */

typedef struct sdla_dump    /* WANPIPE_DUMP */
{
    unsigned long magic;    /* for verification */
    unsigned long offset;    /* absolute adapter memory address */
    unsigned long length;    /* block length */
    void* ptr;        /* -> buffer */
} sdla_dump_t;

typedef struct sdla_exec    /* WANPIPE_EXEC */
{
    unsigned long magic;    /* for verification */
    void* cmd;        /* -> command structure */
    void* data;        /* -> data buffer */
} sdla_exec_t;

/* UDP management stuff */

typedef struct wum_header
{
    unsigned char signature[8];    /* 00h: signature */
    unsigned char type;        /* 08h: request/reply */
    unsigned char command;        /* 09h: commnand */
    unsigned char reserved[6];    /* 0Ah: reserved */
} wum_header_t;

/*************************************************************************
 Data Structure for global statistics
*************************************************************************/

typedef struct global_stats
{
    unsigned long isr_entry;
    unsigned long isr_already_critical;        
    unsigned long isr_rx;
    unsigned long isr_tx;
    unsigned long isr_intr_test;
    unsigned long isr_spurious;
    unsigned long isr_enable_tx_int;
    unsigned long rx_intr_corrupt_rx_bfr;
    unsigned long rx_intr_on_orphaned_DLCI;
    unsigned long rx_intr_dev_not_started;
    unsigned long tx_intr_dev_not_started;
    unsigned long poll_entry;
    unsigned long poll_already_critical;
    unsigned long poll_processed;
    unsigned long poll_tbusy_bad_status;
    unsigned long poll_host_disable_irq;
    unsigned long poll_host_enable_irq;

} global_stats_t;


typedef struct{
    unsigned short    udp_src_port        PACKED;
    unsigned short    udp_dst_port        PACKED;
    unsigned short    udp_length        PACKED;
    unsigned short    udp_checksum        PACKED;
} udp_pkt_t;


typedef struct {
    unsigned char    ver_inet_hdr_length    PACKED;
    unsigned char    service_type        PACKED;
    unsigned short    total_length        PACKED;
    unsigned short    identifier        PACKED;
    unsigned short    flags_frag_offset    PACKED;
    unsigned char    ttl            PACKED;
    unsigned char    protocol        PACKED;
    unsigned short    hdr_checksum        PACKED;
    unsigned long    ip_src_address        PACKED;
    unsigned long    ip_dst_address        PACKED;
} ip_pkt_t;


typedef struct {
        unsigned char           signature[8]    PACKED;
        unsigned char           request_reply   PACKED;
        unsigned char           id              PACKED;
        unsigned char           reserved[6]     PACKED;
} wp_mgmt_t;

/*************************************************************************
 Data Structure for if_send  statistics
*************************************************************************/  
typedef struct if_send_stat{
    unsigned long if_send_entry;
    unsigned long if_send_skb_null;
    unsigned long if_send_broadcast;
    unsigned long if_send_multicast;
    unsigned long if_send_critical_ISR;
    unsigned long if_send_critical_non_ISR;
    unsigned long if_send_tbusy;
    unsigned long if_send_tbusy_timeout;
    unsigned long if_send_PIPE_request;
    unsigned long if_send_wan_disconnected;
    unsigned long if_send_dlci_disconnected;
    unsigned long if_send_no_bfrs;
    unsigned long if_send_adptr_bfrs_full;
    unsigned long if_send_bfr_passed_to_adptr;
    unsigned long if_send_protocol_error;
           unsigned long if_send_bfr_not_passed_to_adptr;
           unsigned long if_send_tx_int_enabled;
        unsigned long if_send_consec_send_fail; 
} if_send_stat_t;

typedef struct rx_intr_stat{
    unsigned long rx_intr_no_socket;
    unsigned long rx_intr_dev_not_started;
    unsigned long rx_intr_PIPE_request;
    unsigned long rx_intr_bfr_not_passed_to_stack;
    unsigned long rx_intr_bfr_passed_to_stack;
} rx_intr_stat_t;    

typedef struct pipe_mgmt_stat{
    unsigned long UDP_PIPE_mgmt_kmalloc_err;
    unsigned long UDP_PIPE_mgmt_direction_err;
    unsigned long UDP_PIPE_mgmt_adptr_type_err;
    unsigned long UDP_PIPE_mgmt_adptr_cmnd_OK;
    unsigned long UDP_PIPE_mgmt_adptr_cmnd_timeout;
    unsigned long UDP_PIPE_mgmt_adptr_send_passed;
    unsigned long UDP_PIPE_mgmt_adptr_send_failed;
    unsigned long UDP_PIPE_mgmt_not_passed_to_stack;
    unsigned long UDP_PIPE_mgmt_passed_to_stack;
    unsigned long UDP_PIPE_mgmt_no_socket;
        unsigned long UDP_PIPE_mgmt_passed_to_adptr;
} pipe_mgmt_stat_t;


typedef struct {
    struct sk_buff *skb;
} bh_data_t, cmd_data_t;

#define MAX_LGTH_UDP_MGNT_PKT 2000
 

/* This is used for interrupt testing */
#define INTR_TEST_MODE    0x02

#define    WUM_SIGNATURE_L    0x50495046
#define    WUM_SIGNATURE_H    0x444E3845

#define    WUM_KILL    0x50
#define    WUM_EXEC    0x51

#define WANPIPE        0x00
#define API        0x01
#define BRIDGE        0x02
#define BRIDGE_NODE    0x03

#ifdef    __KERNEL__
/****** Kernel Interface ****************************************************/

#include <linux/sdladrv.h>    /* SDLA support module API definitions */
#include <linux/sdlasfm.h>    /* SDLA firmware module definitions */
#include <linux/tqueue.h>
#ifdef LINUX_2_4
  #include <linux/serial.h>
  #include <linux/serialP.h>
  #include <linux/serial_reg.h>
  #include <asm/serial.h>
#endif
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>


#define    is_digit(ch) (((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')?1:0)
#define    is_alpha(ch) ((((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'z')||\
           ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'Z'))?1:0)
#define    is_hex_digit(ch) ((((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')||\
           ((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'f')||\
           ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'F'))?1:0)


/****** Data Structures *****************************************************/

/* Adapter Data Space.
 * This structure is needed because we handle multiple cards, otherwise
 * static data would do it.
 */
typedef struct sdla
{
    char devname[WAN_DRVNAME_SZ+1];    /* card name */
    sdlahw_t hw;            /* hardware configuration */
    wan_device_t wandev;        /* WAN device data space */
    
    unsigned open_cnt;        /* number of open interfaces */
    unsigned long state_tick;    /* link state timestamp */
    unsigned intr_mode;        /* Type of Interrupt Mode */
    char in_isr;            /* interrupt-in-service flag */
    char buff_int_mode_unbusy;    /* flag for carrying out dev_tint */  
    char dlci_int_mode_unbusy;    /* flag for carrying out dev_tint */
    char configured;        /* flag for previous configurations */
    
    unsigned short irq_dis_if_send_count; /* Disabling irqs in if_send*/
    unsigned short irq_dis_poll_count;   /* Disabling irqs in poll routine*/
    unsigned short force_enable_irq;
    char TracingEnabled;        /* flag for enabling trace */
    global_stats_t statistics;    /* global statistics */
    void* mbox;            /* -> mailbox */
    void* rxmb;            /* -> receive mailbox */
    void* flags;            /* -> adapter status flags */
    void (*isr)(struct sdla* card);    /* interrupt service routine */
    void (*poll)(struct sdla* card); /* polling routine */
    int (*exec)(struct sdla* card, void* u_cmd, void* u_data);
                    /* Used by the listen() system call */        
    /* Wanpipe Socket Interface */
    int   (*func) (struct sk_buff *, struct sock *);
    struct sock *sk;

    /* Shutdown function */
    void (*disable_comm) (struct sdla *card);

    /* Secondary Port Device: Piggibacking */
    struct sdla *next;

    /* TTY driver variables */
    unsigned char tty_opt;
    struct tty_struct *tty;
    unsigned int tty_minor;
    unsigned int tty_open;
    unsigned char *tty_buf;
    unsigned char *tty_rx;
    struct tq_struct tty_task_queue;
    
    union
    {
        struct
        {            /****** X.25 specific data **********/
            u32 lo_pvc;
            u32 hi_pvc;
            u32 lo_svc;
            u32 hi_svc;
            netdevice_t *svc_to_dev_map[MAX_X25_LCN];
            netdevice_t *pvc_to_dev_map[MAX_X25_LCN];
            netdevice_t *tx_dev;
            netdevice_t *cmd_dev;
            u32 no_dev;
            volatile u8 *hdlc_buf_status;
            u32 tx_interrupts_pending;
                        u16 timer_int_enabled;
            netdevice_t *poll_device;
            atomic_t command_busy;

            u16 udp_pkt_lgth;
                        u32 udp_type;
                        u8  udp_pkt_src;
            u32 udp_lcn;
                        netdevice_t * udp_dev;
                        s8 udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];

             u8 LAPB_hdlc;        /* Option to turn off X25 and run only LAPB */
            u8 logging;        /* Option to log call messages */
            u8 oob_on_modem;    /* Option to send modem status to the api */
            u16 num_of_ch;        /* Number of channels configured by the user */

            struct tq_struct x25_poll_task;
            struct timer_list x25_timer;
        } x;
        struct
        {            /****** frame relay specific data ***/
            void* rxmb_base;    /* -> first Rx buffer */
            void* rxmb_last;    /* -> last Rx buffer */
            unsigned rx_base;    /* S508 receive buffer base */
            unsigned rx_top;    /* S508 receive buffer end */
            unsigned short node_dlci[100];
            unsigned short dlci_num;
                        netdevice_t *dlci_to_dev_map[991 + 1];
                        unsigned tx_interrupts_pending;
                        unsigned short timer_int_enabled;
                        unsigned short udp_pkt_lgth;
                        int udp_type;
                        char udp_pkt_src;
                        unsigned udp_dlci;
                        char udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];
                        void* trc_el_base;              /* first trace element */
                        void* trc_el_last;              /* last trace element */
                        void *curr_trc_el;              /* current trace element */
                        unsigned short trc_bfr_space;         /* trace buffer space */
            unsigned char  update_comms_stats;
            netdevice_t *arp_dev;
            spinlock_t if_send_lock;
        } f;
        struct            /****** PPP-specific data ***********/
        {
            char if_name[WAN_IFNAME_SZ+1];    /* interface name */
            void* txbuf;        /* -> current Tx buffer */
            void* txbuf_base;    /* -> first Tx buffer */
            void* txbuf_last;    /* -> last Tx buffer */
            void* rxbuf_base;    /* -> first Rx buffer */
            void* rxbuf_last;    /* -> last Rx buffer */
            unsigned rx_base;    /* S508 receive buffer base */
            unsigned rx_top;    /* S508 receive buffer end */
            char ip_mode;        /* STATIC/HOST/PEER IP Mode */
            char authenticator;    /* Authenticator for PAP/CHAP */
            unsigned char comm_enabled; /* Is comm enabled or not */
            unsigned char peer_route;   /* Process Peer Route */    
            unsigned long *txbuf_next;  /* Next Tx buffer to use */ 
            unsigned long *rxbuf_next;  /* Next Rx buffer to use */
        } p;
        struct            /* Cisco HDLC-specific data */
        {
            char if_name[WAN_IFNAME_SZ+1];    /* interface name */
            unsigned char comm_port;/* Communication Port O or 1 */
            unsigned char usedby;  /* Used by WANPIPE or API */
            void* rxmb;        /* Receive mail box */
            void* flags;        /* flags */
            void* tx_status;    /* Tx status element */
            void* rx_status;    /* Rx status element */
            void* txbuf;        /* -> current Tx buffer */
            void* txbuf_base;    /* -> first Tx buffer */
            void* txbuf_last;    /* -> last Tx buffer */
            void* rxbuf_base;    /* -> first Rx buffer */
            void* rxbuf_last;    /* -> last Rx buffer */
            unsigned rx_base;    /* S508 receive buffer base */
            unsigned rx_top;    /* S508 receive buffer end */
            unsigned char receive_only; /* high speed receivers */
            unsigned short protocol_options;
            unsigned short kpalv_tx;    /* Tx kpalv timer */
            unsigned short kpalv_rx;    /* Rx kpalv timer */
            unsigned short kpalv_err;    /* Error tolerance */
            unsigned short slarp_timer;    /* SLARP req timer */
            unsigned state;            /* state of the link */
            unsigned char api_status;
            unsigned char update_call_count;
            unsigned short api_options;    /* for async config */
            unsigned char  async_mode;
                unsigned short tx_bits_per_char;
                unsigned short rx_bits_per_char;
                unsigned short stop_bits;
                unsigned short parity;
            unsigned short break_timer;
                unsigned short inter_char_timer;
                unsigned short rx_complete_length;
                unsigned short xon_char;
                unsigned short xoff_char;
            unsigned char comm_enabled; /* Is comm enabled or not */
            unsigned char backup;
        } c;
        struct
        {
            void* tx_status;    /* Tx status element */
            void* rx_status;    /* Rx status element */
            void* trace_status;    /* Trace status element */
            void* txbuf;        /* -> current Tx buffer */
            void* txbuf_base;    /* -> first Tx buffer */
            void* txbuf_last;    /* -> last Tx buffer */
            void* rxbuf_base;    /* -> first Rx buffer */
            void* rxbuf_last;    /* -> last Rx buffer */
            void* tracebuf;        /* -> current Trace buffer */
            void* tracebuf_base;    /* -> current Trace buffer */
            void* tracebuf_last;    /* -> current Trace buffer */
            unsigned rx_base;    /* receive buffer base */
            unsigned rx_end;    /* receive buffer end */
            unsigned trace_base;    /* trace buffer base */
            unsigned trace_end;    /* trace buffer end */

        } h;
    } u;
} sdla_t;

/****** Public Functions ****************************************************/

void wanpipe_open      (sdla_t* card);            /* wpmain.c */
void wanpipe_close     (sdla_t* card);            /* wpmain.c */
void wanpipe_set_state (sdla_t* card, int state);    /* wpmain.c */

int wpx_init (sdla_t* card, wandev_conf_t* conf);    /* wpx.c */
int wpf_init (sdla_t* card, wandev_conf_t* conf);    /* wpf.c */
int wpp_init (sdla_t* card, wandev_conf_t* conf);    /* wpp.c */
int wpc_init (sdla_t* card, wandev_conf_t* conf); /* Cisco HDLC */
int bsc_init (sdla_t* card, wandev_conf_t* conf);    /* BSC streaming */
int hdlc_init(sdla_t* card, wandev_conf_t* conf);    /* HDLC support */
int wpft1_init (sdla_t* card, wandev_conf_t* conf);     /* FT1 Config support */
int wsppp_init (sdla_t* card, wandev_conf_t* conf);    /* Sync PPP on top of RAW CHDLC */

extern sdla_t * wanpipe_find_card(char *);
extern sdla_t * wanpipe_find_card_num (int);

extern void wanpipe_queue_tq (struct tq_struct *);
extern void wanpipe_mark_bh (void);
extern void wakeup_sk_bh (netdevice_t *);
extern int change_dev_flags (netdevice_t *, unsigned); 
extern unsigned long get_ip_address (netdevice_t *dev, int option);
extern void add_gateway(sdla_t *, netdevice_t *);


#endif    /* __KERNEL__ */
#endif    /* _WANPIPE_H */


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0263 ]--