linux-bk/include/linux/wanpipe.h
<<
>>
Prefs
   1/*****************************************************************************
   2* wanpipe.h     WANPIPE(tm) Multiprotocol WAN Link Driver.
   3*               User-level API definitions.
   4*
   5* Author:       Nenad Corbic <ncorbic@sangoma.com>
   6*               Gideon Hack     
   7*
   8* Copyright:    (c) 1995-2000 Sangoma Technologies Inc.
   9*
  10*               This program is free software; you can redistribute it and/or
  11*               modify it under the terms of the GNU General Public License
  12*               as published by the Free Software Foundation; either version
  13*               2 of the License, or (at your option) any later version.
  14* ============================================================================
  15* Nov 3,  2000  Nenad Corbic    Added config_id to sdla_t structure.
  16*                               Used to determine the protocol running.
  17* Jul 13, 2000  Nenad Corbic    Added SyncPPP Support
  18* Feb 24, 2000  Nenad Corbic    Added support for x25api driver
  19* Oct 04, 1999  Nenad Corbic    New CHDLC and FRAME RELAY code, SMP support
  20* Jun 02, 1999  Gideon Hack     Added 'update_call_count' for Cisco HDLC 
  21*                               support
  22* Jun 26, 1998  David Fong      Added 'ip_mode' in sdla_t.u.p for dynamic IP
  23*                               routing mode configuration
  24* Jun 12, 1998  David Fong      Added Cisco HDLC union member in sdla_t
  25* Dec 08, 1997  Jaspreet Singh  Added 'authenticator' in union of 'sdla_t' 
  26* Nov 26, 1997  Jaspreet Singh  Added 'load_sharing' structure.  Also added 
  27*                               'devs_struct','dev_to_devtint_next' to 'sdla_t' 
  28* Nov 24, 1997  Jaspreet Singh  Added 'irq_dis_if_send_count', 
  29*                               'irq_dis_poll_count' to 'sdla_t'.
  30* Nov 06, 1997  Jaspreet Singh  Added a define called 'INTR_TEST_MODE'
  31* Oct 20, 1997  Jaspreet Singh  Added 'buff_intr_mode_unbusy' and 
  32*                               'dlci_intr_mode_unbusy' to 'sdla_t'
  33* Oct 18, 1997  Jaspreet Singh  Added structure to maintain global driver
  34*                               statistics.
  35* Jan 15, 1997  Gene Kozin      Version 3.1.0
  36*                                o added UDP management stuff
  37* Jan 02, 1997  Gene Kozin      Version 3.0.0
  38*****************************************************************************/
  39#ifndef _WANPIPE_H
  40#define _WANPIPE_H
  41
  42#include <linux/version.h>
  43
  44#ifndef KERNEL_VERSION
  45  #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
  46#endif
  47
  48#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)
  49 
  50 #define LINUX_2_4
  51 #define netdevice_t struct net_device
  52
  53 #define FREE_READ 1
  54 #define FREE_WRITE 0
  55
  56 #define stop_net_queue(a)      netif_stop_queue(a) 
  57 #define start_net_queue(a)     netif_start_queue(a)
  58 #define is_queue_stopped(a)    netif_queue_stopped(a)
  59 #define wake_net_dev(a)        netif_wake_queue(a)
  60 #define is_dev_running(a)      netif_running(a)
  61 #define wan_dev_kfree_skb(a,b) dev_kfree_skb_any(a)
  62
  63
  64#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,0)
  65
  66 #define LINUX_2_1
  67 #define netdevice_t struct device
  68 #define FREE_READ 1
  69 #define FREE_WRITE 0
  70
  71 #define stop_net_queue(a)      (set_bit(0, &##a->tbusy)) 
  72 #define start_net_queue(a)     (clear_bit(0,&##a->tbusy))
  73 #define is_queue_stopped(a)    (##a->tbusy)
  74 #define wake_net_dev(a)        {clear_bit(0,&##a->tbusy);mark_bh(NET_BH);}
  75 #define is_dev_running(a)      (test_bit(0,&##a->start))
  76 #define wan_dev_kfree_skb(a,b) dev_kfree_skb(a)
  77
  78#else
  79 #define LINUX_2_0
  80 #define netdevice_t struct device
  81
  82 #define test_and_set_bit set_bit
  83 #define net_ratelimit() 1 
  84
  85 #define stop_net_queue(a)      (set_bit(0, &##a->tbusy)) 
  86 #define start_net_queue(a)     (clear_bit(0,&##a->tbusy))
  87 #define is_queue_stopped(a)    (##a->tbusy)
  88 #define wake_net_dev(a)        {clear_bit(0,&##a->tbusy);mark_bh(NET_BH);}
  89 #define is_dev_running(a)      (test_bit(0,(void*)&##a->start))
  90 #define wan_dev_kfree_skb(a,b) dev_kfree_skb(a,b)               
  91 #define spin_lock_init(a)
  92 #define spin_lock(a)
  93 #define spin_unlock(a)
  94#endif
  95
  96#include <linux/wanrouter.h>
  97
  98/* Defines */
  99
 100#ifndef PACKED
 101#define PACKED  __attribute__((packed))
 102#endif
 103
 104#define WANPIPE_MAGIC   0x414C4453L     /* signature: 'SDLA' reversed */
 105
 106/* IOCTL numbers (up to 16) */
 107#define WANPIPE_DUMP    (ROUTER_USER+0) /* dump adapter's memory */
 108#define WANPIPE_EXEC    (ROUTER_USER+1) /* execute firmware command */
 109
 110#define TRACE_ALL                       0x00
 111#define TRACE_PROT                      0x01
 112#define TRACE_DATA                      0x02
 113
 114/* values for request/reply byte */
 115#define UDPMGMT_REQUEST 0x01
 116#define UDPMGMT_REPLY   0x02
 117#define UDP_OFFSET      12
 118
 119#define MAX_CMD_BUFF    10
 120#define MAX_X25_LCN     255     /* Maximum number of x25 channels */
 121#define MAX_LCN_NUM     4095    /* Maximum lcn number */
 122#define MAX_FT1_RETRY   100
 123
 124#ifdef LINUX_2_4
 125  #ifndef AF_WANPIPE
 126        #define AF_WANPIPE 25
 127        #ifndef PF_WANPIPE
 128                #define PF_WANPIPE AF_WANPIPE
 129        #endif
 130  #endif
 131
 132#else
 133  #ifndef AF_WANPIPE
 134        #define AF_WANPIPE 24
 135        #ifndef PF_WANPIPE
 136                #define PF_WANPIPE AF_WANPIPE
 137        #endif
 138  #endif
 139#endif
 140
 141
 142#define TX_TIMEOUT 5*HZ
 143
 144/* General Critical Flags */
 145#define SEND_CRIT       0x00
 146#define PERI_CRIT       0x01
 147
 148/* Chdlc and PPP polling critical flag */
 149#define POLL_CRIT       0x03
 150
 151/* Frame Relay Tx IRQ send critical flag */
 152#define SEND_TXIRQ_CRIT 0x02
 153
 154/* Frame Relay ARP critical flag */
 155#define ARP_CRIT        0x03
 156
 157/* Bit maps for dynamic interface configuration
 158 * DYN_OPT_ON : turns this option on/off 
 159 * DEV_DOWN   : device was shutdown by the driver not
 160 *              by user 
 161 */
 162#define DYN_OPT_ON      0x00
 163#define DEV_DOWN        0x01
 164
 165/*
 166 * Data structures for IOCTL calls.
 167 */
 168
 169typedef struct sdla_dump        /* WANPIPE_DUMP */
 170{
 171        unsigned long magic;    /* for verification */
 172        unsigned long offset;   /* absolute adapter memory address */
 173        unsigned long length;   /* block length */
 174        void* ptr;              /* -> buffer */
 175} sdla_dump_t;
 176
 177typedef struct sdla_exec        /* WANPIPE_EXEC */
 178{
 179        unsigned long magic;    /* for verification */
 180        void* cmd;              /* -> command structure */
 181        void* data;             /* -> data buffer */
 182} sdla_exec_t;
 183
 184/* UDP management stuff */
 185
 186typedef struct wum_header
 187{
 188        unsigned char signature[8];     /* 00h: signature */
 189        unsigned char type;             /* 08h: request/reply */
 190        unsigned char command;          /* 09h: commnand */
 191        unsigned char reserved[6];      /* 0Ah: reserved */
 192} wum_header_t;
 193
 194/*************************************************************************
 195 Data Structure for global statistics
 196*************************************************************************/
 197
 198typedef struct global_stats
 199{
 200        unsigned long isr_entry;
 201        unsigned long isr_already_critical;             
 202        unsigned long isr_rx;
 203        unsigned long isr_tx;
 204        unsigned long isr_intr_test;
 205        unsigned long isr_spurious;
 206        unsigned long isr_enable_tx_int;
 207        unsigned long rx_intr_corrupt_rx_bfr;
 208        unsigned long rx_intr_on_orphaned_DLCI;
 209        unsigned long rx_intr_dev_not_started;
 210        unsigned long tx_intr_dev_not_started;
 211        unsigned long poll_entry;
 212        unsigned long poll_already_critical;
 213        unsigned long poll_processed;
 214        unsigned long poll_tbusy_bad_status;
 215        unsigned long poll_host_disable_irq;
 216        unsigned long poll_host_enable_irq;
 217
 218} global_stats_t;
 219
 220
 221typedef struct{
 222        unsigned short  udp_src_port            PACKED;
 223        unsigned short  udp_dst_port            PACKED;
 224        unsigned short  udp_length              PACKED;
 225        unsigned short  udp_checksum            PACKED;
 226} udp_pkt_t;
 227
 228
 229typedef struct {
 230        unsigned char   ver_inet_hdr_length     PACKED;
 231        unsigned char   service_type            PACKED;
 232        unsigned short  total_length            PACKED;
 233        unsigned short  identifier              PACKED;
 234        unsigned short  flags_frag_offset       PACKED;
 235        unsigned char   ttl                     PACKED;
 236        unsigned char   protocol                PACKED;
 237        unsigned short  hdr_checksum            PACKED;
 238        unsigned long   ip_src_address          PACKED;
 239        unsigned long   ip_dst_address          PACKED;
 240} ip_pkt_t;
 241
 242
 243typedef struct {
 244        unsigned char           signature[8]    PACKED;
 245        unsigned char           request_reply   PACKED;
 246        unsigned char           id              PACKED;
 247        unsigned char           reserved[6]     PACKED;
 248} wp_mgmt_t;
 249
 250/*************************************************************************
 251 Data Structure for if_send  statistics
 252*************************************************************************/  
 253typedef struct if_send_stat{
 254        unsigned long if_send_entry;
 255        unsigned long if_send_skb_null;
 256        unsigned long if_send_broadcast;
 257        unsigned long if_send_multicast;
 258        unsigned long if_send_critical_ISR;
 259        unsigned long if_send_critical_non_ISR;
 260        unsigned long if_send_tbusy;
 261        unsigned long if_send_tbusy_timeout;
 262        unsigned long if_send_PIPE_request;
 263        unsigned long if_send_wan_disconnected;
 264        unsigned long if_send_dlci_disconnected;
 265        unsigned long if_send_no_bfrs;
 266        unsigned long if_send_adptr_bfrs_full;
 267        unsigned long if_send_bfr_passed_to_adptr;
 268        unsigned long if_send_protocol_error;
 269        unsigned long if_send_bfr_not_passed_to_adptr;
 270        unsigned long if_send_tx_int_enabled;
 271        unsigned long if_send_consec_send_fail; 
 272} if_send_stat_t;
 273
 274typedef struct rx_intr_stat{
 275        unsigned long rx_intr_no_socket;
 276        unsigned long rx_intr_dev_not_started;
 277        unsigned long rx_intr_PIPE_request;
 278        unsigned long rx_intr_bfr_not_passed_to_stack;
 279        unsigned long rx_intr_bfr_passed_to_stack;
 280} rx_intr_stat_t;       
 281
 282typedef struct pipe_mgmt_stat{
 283        unsigned long UDP_PIPE_mgmt_kmalloc_err;
 284        unsigned long UDP_PIPE_mgmt_direction_err;
 285        unsigned long UDP_PIPE_mgmt_adptr_type_err;
 286        unsigned long UDP_PIPE_mgmt_adptr_cmnd_OK;
 287        unsigned long UDP_PIPE_mgmt_adptr_cmnd_timeout;
 288        unsigned long UDP_PIPE_mgmt_adptr_send_passed;
 289        unsigned long UDP_PIPE_mgmt_adptr_send_failed;
 290        unsigned long UDP_PIPE_mgmt_not_passed_to_stack;
 291        unsigned long UDP_PIPE_mgmt_passed_to_stack;
 292        unsigned long UDP_PIPE_mgmt_no_socket;
 293        unsigned long UDP_PIPE_mgmt_passed_to_adptr;
 294} pipe_mgmt_stat_t;
 295
 296
 297typedef struct {
 298        struct sk_buff *skb;
 299} bh_data_t, cmd_data_t;
 300
 301#define MAX_LGTH_UDP_MGNT_PKT 2000
 302 
 303
 304/* This is used for interrupt testing */
 305#define INTR_TEST_MODE  0x02
 306
 307#define WUM_SIGNATURE_L 0x50495046
 308#define WUM_SIGNATURE_H 0x444E3845
 309
 310#define WUM_KILL        0x50
 311#define WUM_EXEC        0x51
 312
 313#define WANPIPE         0x00
 314#define API             0x01
 315#define BRIDGE          0x02
 316#define BRIDGE_NODE     0x03
 317
 318#ifdef  __KERNEL__
 319/****** Kernel Interface ****************************************************/
 320
 321#include <linux/sdladrv.h>      /* SDLA support module API definitions */
 322#include <linux/sdlasfm.h>      /* SDLA firmware module definitions */
 323#include <linux/tqueue.h>
 324#ifdef LINUX_2_4
 325  #include <linux/serial.h>
 326  #include <linux/serialP.h>
 327  #include <linux/serial_reg.h>
 328  #include <asm/serial.h>
 329#endif
 330#include <linux/tty.h>
 331#include <linux/tty_driver.h>
 332#include <linux/tty_flip.h>
 333
 334
 335#define is_digit(ch) (((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')?1:0)
 336#define is_alpha(ch) ((((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'z')||\
 337                  ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'Z'))?1:0)
 338#define is_hex_digit(ch) ((((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')||\
 339                  ((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'f')||\
 340                  ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'F'))?1:0)
 341
 342
 343/****** Data Structures *****************************************************/
 344
 345/* Adapter Data Space.
 346 * This structure is needed because we handle multiple cards, otherwise
 347 * static data would do it.
 348 */
 349typedef struct sdla
 350{
 351        char devname[WAN_DRVNAME_SZ+1]; /* card name */
 352        sdlahw_t hw;                    /* hardware configuration */
 353        wan_device_t wandev;            /* WAN device data space */
 354        
 355        unsigned open_cnt;              /* number of open interfaces */
 356        unsigned long state_tick;       /* link state timestamp */
 357        unsigned intr_mode;             /* Type of Interrupt Mode */
 358        char in_isr;                    /* interrupt-in-service flag */
 359        char buff_int_mode_unbusy;      /* flag for carrying out dev_tint */  
 360        char dlci_int_mode_unbusy;      /* flag for carrying out dev_tint */
 361        char configured;                /* flag for previous configurations */
 362        
 363        unsigned short irq_dis_if_send_count; /* Disabling irqs in if_send*/
 364        unsigned short irq_dis_poll_count;   /* Disabling irqs in poll routine*/
 365        unsigned short force_enable_irq;
 366        char TracingEnabled;            /* flag for enabling trace */
 367        global_stats_t statistics;      /* global statistics */
 368        void* mbox;                     /* -> mailbox */
 369        void* rxmb;                     /* -> receive mailbox */
 370        void* flags;                    /* -> adapter status flags */
 371        void (*isr)(struct sdla* card); /* interrupt service routine */
 372        void (*poll)(struct sdla* card); /* polling routine */
 373        int (*exec)(struct sdla* card, void* u_cmd, void* u_data);
 374                                        /* Used by the listen() system call */          
 375        /* Wanpipe Socket Interface */
 376        int   (*func) (struct sk_buff *, struct sock *);
 377        struct sock *sk;
 378
 379        /* Shutdown function */
 380        void (*disable_comm) (struct sdla *card);
 381
 382        /* Secondary Port Device: Piggibacking */
 383        struct sdla *next;
 384
 385        /* TTY driver variables */
 386        unsigned char tty_opt;
 387        struct tty_struct *tty;
 388        unsigned int tty_minor;
 389        unsigned int tty_open;
 390        unsigned char *tty_buf;
 391        unsigned char *tty_rx;
 392        struct tq_struct tty_task_queue;
 393        
 394        union
 395        {
 396                struct
 397                {                       /****** X.25 specific data **********/
 398                        u32 lo_pvc;
 399                        u32 hi_pvc;
 400                        u32 lo_svc;
 401                        u32 hi_svc;
 402                        netdevice_t *svc_to_dev_map[MAX_X25_LCN];
 403                        netdevice_t *pvc_to_dev_map[MAX_X25_LCN];
 404                        netdevice_t *tx_dev;
 405                        netdevice_t *cmd_dev;
 406                        u32 no_dev;
 407                        volatile u8 *hdlc_buf_status;
 408                        u32 tx_interrupts_pending;
 409                        u16 timer_int_enabled;
 410                        netdevice_t *poll_device;
 411                        atomic_t command_busy;
 412
 413                        u16 udp_pkt_lgth;
 414                        u32 udp_type;
 415                        u8  udp_pkt_src;
 416                        u32 udp_lcn;
 417                        netdevice_t * udp_dev;
 418                        s8 udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];
 419
 420                        u8 LAPB_hdlc;           /* Option to turn off X25 and run only LAPB */
 421                        u8 logging;             /* Option to log call messages */
 422                        u8 oob_on_modem;        /* Option to send modem status to the api */
 423                        u16 num_of_ch;          /* Number of channels configured by the user */
 424
 425                        struct tq_struct x25_poll_task;
 426                        struct timer_list x25_timer;
 427                } x;
 428                struct
 429                {                       /****** frame relay specific data ***/
 430                        void* rxmb_base;        /* -> first Rx buffer */
 431                        void* rxmb_last;        /* -> last Rx buffer */
 432                        unsigned rx_base;       /* S508 receive buffer base */
 433                        unsigned rx_top;        /* S508 receive buffer end */
 434                        unsigned short node_dlci[100];
 435                        unsigned short dlci_num;
 436                        netdevice_t *dlci_to_dev_map[991 + 1];
 437                        unsigned tx_interrupts_pending;
 438                        unsigned short timer_int_enabled;
 439                        unsigned short udp_pkt_lgth;
 440                        int udp_type;
 441                        char udp_pkt_src;
 442                        unsigned udp_dlci;
 443                        char udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];
 444                        void* trc_el_base;                      /* first trace element */
 445                        void* trc_el_last;                      /* last trace element */
 446                        void *curr_trc_el;                      /* current trace element */
 447                        unsigned short trc_bfr_space;           /* trace buffer space */
 448                        unsigned char  update_comms_stats;
 449                        netdevice_t *arp_dev;
 450                        spinlock_t if_send_lock;
 451                } f;
 452                struct                  /****** PPP-specific data ***********/
 453                {
 454                        char if_name[WAN_IFNAME_SZ+1];  /* interface name */
 455                        void* txbuf;            /* -> current Tx buffer */
 456                        void* txbuf_base;       /* -> first Tx buffer */
 457                        void* txbuf_last;       /* -> last Tx buffer */
 458                        void* rxbuf_base;       /* -> first Rx buffer */
 459                        void* rxbuf_last;       /* -> last Rx buffer */
 460                        unsigned rx_base;       /* S508 receive buffer base */
 461                        unsigned rx_top;        /* S508 receive buffer end */
 462                        char ip_mode;           /* STATIC/HOST/PEER IP Mode */
 463                        char authenticator;     /* Authenticator for PAP/CHAP */
 464                        unsigned char comm_enabled; /* Is comm enabled or not */
 465                        unsigned char peer_route;   /* Process Peer Route */    
 466                        unsigned long *txbuf_next;  /* Next Tx buffer to use */ 
 467                        unsigned long *rxbuf_next;  /* Next Rx buffer to use */
 468                } p;
 469                struct                  /* Cisco HDLC-specific data */
 470                {
 471                        char if_name[WAN_IFNAME_SZ+1];  /* interface name */
 472                        unsigned char comm_port;/* Communication Port O or 1 */
 473                        unsigned char usedby;  /* Used by WANPIPE or API */
 474                        void* rxmb;             /* Receive mail box */
 475                        void* flags;            /* flags */
 476                        void* tx_status;        /* Tx status element */
 477                        void* rx_status;        /* Rx status element */
 478                        void* txbuf;            /* -> current Tx buffer */
 479                        void* txbuf_base;       /* -> first Tx buffer */
 480                        void* txbuf_last;       /* -> last Tx buffer */
 481                        void* rxbuf_base;       /* -> first Rx buffer */
 482                        void* rxbuf_last;       /* -> last Rx buffer */
 483                        unsigned rx_base;       /* S508 receive buffer base */
 484                        unsigned rx_top;        /* S508 receive buffer end */
 485                        unsigned char receive_only; /* high speed receivers */
 486                        unsigned short protocol_options;
 487                        unsigned short kpalv_tx;        /* Tx kpalv timer */
 488                        unsigned short kpalv_rx;        /* Rx kpalv timer */
 489                        unsigned short kpalv_err;       /* Error tolerance */
 490                        unsigned short slarp_timer;     /* SLARP req timer */
 491                        unsigned state;                 /* state of the link */
 492                        unsigned char api_status;
 493                        unsigned char update_call_count;
 494                        unsigned short api_options;     /* for async config */
 495                        unsigned char  async_mode;
 496                        unsigned short tx_bits_per_char;
 497                        unsigned short rx_bits_per_char;
 498                        unsigned short stop_bits;
 499                        unsigned short parity;
 500                        unsigned short break_timer;
 501                        unsigned short inter_char_timer;
 502                        unsigned short rx_complete_length;
 503                        unsigned short xon_char;
 504                        unsigned short xoff_char;
 505                        unsigned char comm_enabled; /* Is comm enabled or not */
 506                        unsigned char backup;
 507                } c;
 508                struct
 509                {
 510                        void* tx_status;        /* Tx status element */
 511                        void* rx_status;        /* Rx status element */
 512                        void* trace_status;     /* Trace status element */
 513                        void* txbuf;            /* -> current Tx buffer */
 514                        void* txbuf_base;       /* -> first Tx buffer */
 515                        void* txbuf_last;       /* -> last Tx buffer */
 516                        void* rxbuf_base;       /* -> first Rx buffer */
 517                        void* rxbuf_last;       /* -> last Rx buffer */
 518                        void* tracebuf;         /* -> current Trace buffer */
 519                        void* tracebuf_base;    /* -> current Trace buffer */
 520                        void* tracebuf_last;    /* -> current Trace buffer */
 521                        unsigned rx_base;       /* receive buffer base */
 522                        unsigned rx_end;        /* receive buffer end */
 523                        unsigned trace_base;    /* trace buffer base */
 524                        unsigned trace_end;     /* trace buffer end */
 525
 526                } h;
 527        } u;
 528} sdla_t;
 529
 530/****** Public Functions ****************************************************/
 531
 532void wanpipe_open      (sdla_t* card);                  /* wpmain.c */
 533void wanpipe_close     (sdla_t* card);                  /* wpmain.c */
 534void wanpipe_set_state (sdla_t* card, int state);       /* wpmain.c */
 535
 536int wpx_init (sdla_t* card, wandev_conf_t* conf);       /* wpx.c */
 537int wpf_init (sdla_t* card, wandev_conf_t* conf);       /* wpf.c */
 538int wpp_init (sdla_t* card, wandev_conf_t* conf);       /* wpp.c */
 539int wpc_init (sdla_t* card, wandev_conf_t* conf); /* Cisco HDLC */
 540int bsc_init (sdla_t* card, wandev_conf_t* conf);       /* BSC streaming */
 541int hdlc_init(sdla_t* card, wandev_conf_t* conf);       /* HDLC support */
 542int wpft1_init (sdla_t* card, wandev_conf_t* conf);     /* FT1 Config support */
 543int wsppp_init (sdla_t* card, wandev_conf_t* conf);     /* Sync PPP on top of RAW CHDLC */
 544
 545extern sdla_t * wanpipe_find_card(char *);
 546extern sdla_t * wanpipe_find_card_num (int);
 547
 548extern void wanpipe_queue_tq (struct tq_struct *);
 549extern void wanpipe_mark_bh (void);
 550extern void wakeup_sk_bh (netdevice_t *);
 551extern int change_dev_flags (netdevice_t *, unsigned); 
 552extern unsigned long get_ip_address (netdevice_t *dev, int option);
 553extern void add_gateway(sdla_t *, netdevice_t *);
 554
 555
 556#endif  /* __KERNEL__ */
 557#endif  /* _WANPIPE_H */
 558
 559
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.