Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / include / linux / wanrouter.h
index 3157cc1fada66f3a986c8a52f762ea54667b6157..cec4b4159767d87bfac6fcb73ba08ac9703eb1fd 100644 (file)
 * Jan 16, 1997 Gene Kozin      router_devlist made public
 * Jan 02, 1997 Gene Kozin      Initial version (based on wanpipe.h).
 *****************************************************************************/
-
 #ifndef        _ROUTER_H
 #define        _ROUTER_H
 
-#define        ROUTER_NAME     "wanrouter"     /* in case we ever change it */
-#define        ROUTER_VERSION  1               /* version number */
-#define        ROUTER_RELEASE  1               /* release (minor version) number */
-#define        ROUTER_IOCTL    'W'             /* for IOCTL calls */
-#define        ROUTER_MAGIC    0x524D4157L     /* signature: 'WANR' reversed */
-
-/* IOCTL codes for /proc/router/<device> entries (up to 255) */
-enum router_ioctls
-{
-       ROUTER_SETUP    = ROUTER_IOCTL<<8,      /* configure device */
-       ROUTER_DOWN,                            /* shut down device */
-       ROUTER_STAT,                            /* get device status */
-       ROUTER_IFNEW,                           /* add interface */
-       ROUTER_IFDEL,                           /* delete interface */
-       ROUTER_IFSTAT,                          /* get interface status */
-       ROUTER_USER     = (ROUTER_IOCTL<<8)+16, /* driver-specific calls */
-       ROUTER_USER_MAX = (ROUTER_IOCTL<<8)+31
-};
-
-/* identifiers for displaying proc file data for dual port adapters */
-#define PROC_DATA_PORT_0 0x8000        /* the data is for port 0 */
-#define PROC_DATA_PORT_1 0x8001        /* the data is for port 1 */
-
-/* NLPID for packet encapsulation (ISO/IEC TR 9577) */
-#define        NLPID_IP        0xCC    /* Internet Protocol Datagram */
-#define        NLPID_SNAP      0x80    /* IEEE Subnetwork Access Protocol */
-#define        NLPID_CLNP      0x81    /* ISO/IEC 8473 */
-#define        NLPID_ESIS      0x82    /* ISO/IEC 9542 */
-#define        NLPID_ISIS      0x83    /* ISO/IEC ISIS */
-#define        NLPID_Q933      0x08    /* CCITT Q.933 */
-
-/* Miscellaneous */
-#define        WAN_IFNAME_SZ   15      /* max length of the interface name */
-#define        WAN_DRVNAME_SZ  15      /* max length of the link driver name */
-#define        WAN_ADDRESS_SZ  31      /* max length of the WAN media address */
-#define USED_BY_FIELD  8       /* max length of the used by field */
-
-/* Defines for UDP PACKET TYPE */
-#define UDP_PTPIPE_TYPE        0x01
-#define UDP_FPIPE_TYPE         0x02
-#define UDP_CPIPE_TYPE         0x03
-#define UDP_DRVSTATS_TYPE      0x04
-#define UDP_INVALID_TYPE       0x05
-
-/* Command return code */
-#define CMD_OK         0               /* normal firmware return code */
-#define CMD_TIMEOUT    0xFF            /* firmware command timed out */
-
-/* UDP Packet Management */
-#define UDP_PKT_FRM_STACK      0x00
-#define UDP_PKT_FRM_NETWORK    0x01
-
-/* Maximum interrupt test counter */
-#define MAX_INTR_TEST_COUNTER  100
-
-/* Critical Values for RACE conditions*/
-#define CRITICAL_IN_ISR                0xA1
-#define CRITICAL_INTR_HANDLED  0xB1
-
-/****** Data Types **********************************************************/
-
-/*----------------------------------------------------------------------------
- * X.25-specific link-level configuration.
- */
-typedef struct wan_x25_conf
-{
-       unsigned lo_pvc;        /* lowest permanent circuit number */
-       unsigned hi_pvc;        /* highest permanent circuit number */
-       unsigned lo_svc;        /* lowest switched circuit number */
-       unsigned hi_svc;        /* highest switched circuit number */
-       unsigned hdlc_window;   /* HDLC window size (1..7) */
-       unsigned pkt_window;    /* X.25 packet window size (1..7) */
-       unsigned t1;            /* HDLC timer T1, sec (1..30) */
-       unsigned t2;            /* HDLC timer T2, sec (0..29) */
-       unsigned t4;            /* HDLC supervisory frame timer = T4 * T1 */
-       unsigned n2;            /* HDLC retransmission limit (1..30) */
-       unsigned t10_t20;       /* X.25 RESTART timeout, sec (1..255) */
-       unsigned t11_t21;       /* X.25 CALL timeout, sec (1..255) */
-       unsigned t12_t22;       /* X.25 RESET timeout, sec (1..255) */
-       unsigned t13_t23;       /* X.25 CLEAR timeout, sec (1..255) */
-       unsigned t16_t26;       /* X.25 INTERRUPT timeout, sec (1..255) */
-       unsigned t28;           /* X.25 REGISTRATION timeout, sec (1..255) */
-       unsigned r10_r20;       /* RESTART retransmission limit (0..250) */
-       unsigned r12_r22;       /* RESET retransmission limit (0..250) */
-       unsigned r13_r23;       /* CLEAR retransmission limit (0..250) */
-       unsigned ccitt_compat;  /* compatibility mode: 1988/1984/1980 */
-       unsigned x25_conf_opt;   /* User defined x25 config optoins */
-       unsigned char LAPB_hdlc_only; /* Run in HDLC only mode */
-       unsigned char logging;   /* Control connection logging */  
-       unsigned char oob_on_modem; /* Whether to send modem status to the user app */
-} wan_x25_conf_t;
-
-/*----------------------------------------------------------------------------
- * Frame relay specific link-level configuration.
- */
-typedef struct wan_fr_conf
-{
-       unsigned signalling;    /* local in-channel signalling type */
-       unsigned t391;          /* link integrity verification timer */
-       unsigned t392;          /* polling verification timer */
-       unsigned n391;          /* full status polling cycle counter */
-       unsigned n392;          /* error threshold counter */
-       unsigned n393;          /* monitored events counter */
-       unsigned dlci_num;      /* number of DLCs (access node) */
-       unsigned  dlci[100];    /* List of all DLCIs */
-} wan_fr_conf_t;
-
-/*----------------------------------------------------------------------------
- * PPP-specific link-level configuration.
- */
-typedef struct wan_ppp_conf
-{
-       unsigned restart_tmr;   /* restart timer */
-       unsigned auth_rsrt_tmr; /* authentication timer */
-       unsigned auth_wait_tmr; /* authentication timer */
-       unsigned mdm_fail_tmr;  /* modem failure timer */
-       unsigned dtr_drop_tmr;  /* DTR drop timer */
-       unsigned connect_tmout; /* connection timeout */
-       unsigned conf_retry;    /* max. retry */
-       unsigned term_retry;    /* max. retry */
-       unsigned fail_retry;    /* max. retry */
-       unsigned auth_retry;    /* max. retry */
-       unsigned auth_options;  /* authentication opt. */
-       unsigned ip_options;    /* IP options */
-       char    authenticator;  /* AUTHENTICATOR or not */
-       char    ip_mode;        /* Static/Host/Peer */
-} wan_ppp_conf_t;
-
-/*----------------------------------------------------------------------------
- * CHDLC-specific link-level configuration.
- */
-typedef struct wan_chdlc_conf
-{
-       unsigned char ignore_dcd;       /* Protocol options:            */
-       unsigned char ignore_cts;       /*  Ignore these to determine   */
-       unsigned char ignore_keepalive; /*  link status (Yes or No)     */
-       unsigned char hdlc_streaming;   /*  hdlc_streaming mode (Y/N) */
-       unsigned char receive_only;     /*  no transmit buffering (Y/N) */
-       unsigned keepalive_tx_tmr;      /* transmit keepalive timer */
-       unsigned keepalive_rx_tmr;      /* receive  keepalive timer */
-       unsigned keepalive_err_margin;  /* keepalive_error_tolerance */
-       unsigned slarp_timer;           /* SLARP request timer */
-} wan_chdlc_conf_t;
-
-
-/*----------------------------------------------------------------------------
- * WAN device configuration. Passed to ROUTER_SETUP IOCTL.
- */
-typedef struct wandev_conf
-{
-       unsigned magic;         /* magic number (for verification) */
-       unsigned config_id;     /* configuration structure identifier */
-                               /****** hardware configuration ******/
-       unsigned ioport;        /* adapter I/O port base */
-       unsigned long maddr;    /* dual-port memory address */
-       unsigned msize;         /* dual-port memory size */
-       int irq;                /* interrupt request level */
-       int dma;                /* DMA request level */
-        char S514_CPU_no[1];   /* S514 PCI adapter CPU number ('A' or 'B') */
-        unsigned PCI_slot_no;  /* S514 PCI adapter slot number */
-       char auto_pci_cfg;      /* S515 PCI automatic slot detection */
-       char comm_port;         /* Communication Port (PRI=0, SEC=1) */ 
-       unsigned bps;           /* data transfer rate */
-       unsigned mtu;           /* maximum transmit unit size */
-        unsigned udp_port;      /* UDP port for management */
-       unsigned char ttl;      /* Time To Live for UDP security */
-       unsigned char ft1;      /* FT1 Configurator Option */
-        char interface;                /* RS-232/V.35, etc. */
-       char clocking;          /* external/internal */
-       char line_coding;       /* NRZ/NRZI/FM0/FM1, etc. */
-       char station;           /* DTE/DCE, primary/secondary, etc. */
-       char connection;        /* permanent/switched/on-demand */
-       char read_mode;         /* read mode: Polling or interrupt */
-       char receive_only;      /* disable tx buffers */
-       char tty;               /* Create a fake tty device */
-       unsigned tty_major;     /* Major number for wanpipe tty device */
-       unsigned tty_minor;     /* Minor number for wanpipe tty device */
-       unsigned tty_mode;      /* TTY operation mode SYNC or ASYNC */
-       char backup;            /* Backup Mode */
-       unsigned hw_opt[4];     /* other hardware options */
-       unsigned reserved[4];
-                               /****** arbitrary data ***************/
-       unsigned data_size;     /* data buffer size */
-       void* data;             /* data buffer, e.g. firmware */
-       union                   /****** protocol-specific ************/
-       {
-               wan_x25_conf_t x25;     /* X.25 configuration */
-               wan_ppp_conf_t ppp;     /* PPP configuration */
-               wan_fr_conf_t fr;       /* frame relay configuration */
-               wan_chdlc_conf_t chdlc; /* Cisco HDLC configuration */
-       } u;
-} wandev_conf_t;
-
-/* 'config_id' definitions */
-#define        WANCONFIG_X25   101     /* X.25 link */
-#define        WANCONFIG_FR    102     /* frame relay link */
-#define        WANCONFIG_PPP   103     /* synchronous PPP link */
-#define WANCONFIG_CHDLC        104     /* Cisco HDLC Link */
-#define WANCONFIG_BSC  105     /* BiSync Streaming */
-#define WANCONFIG_HDLC 106     /* HDLC Support */
-#define WANCONFIG_MPPP  107    /* Multi Port PPP over RAW CHDLC */
-
-/*
- * Configuration options defines.
- */
-/* general options */
-#define        WANOPT_OFF      0
-#define        WANOPT_ON       1
-#define        WANOPT_NO       0
-#define        WANOPT_YES      1
-
-/* intercace options */
-#define        WANOPT_RS232    0
-#define        WANOPT_V35      1
-
-/* data encoding options */
-#define        WANOPT_NRZ      0
-#define        WANOPT_NRZI     1
-#define        WANOPT_FM0      2
-#define        WANOPT_FM1      3
-
-/* link type options */
-#define        WANOPT_POINTTOPOINT     0       /* RTS always active */
-#define        WANOPT_MULTIDROP        1       /* RTS is active when transmitting */
-
-/* clocking options */
-#define        WANOPT_EXTERNAL 0
-#define        WANOPT_INTERNAL 1
-
-/* station options */
-#define        WANOPT_DTE              0
-#define        WANOPT_DCE              1
-#define        WANOPT_CPE              0
-#define        WANOPT_NODE             1
-#define        WANOPT_SECONDARY        0
-#define        WANOPT_PRIMARY          1
-
-/* connection options */
-#define        WANOPT_PERMANENT        0       /* DTR always active */
-#define        WANOPT_SWITCHED         1       /* use DTR to setup link (dial-up) */
-#define        WANOPT_ONDEMAND         2       /* activate DTR only before sending */
-
-/* frame relay in-channel signalling */
-#define        WANOPT_FR_ANSI          1       /* ANSI T1.617 Annex D */
-#define        WANOPT_FR_Q933          2       /* ITU Q.933A */
-#define        WANOPT_FR_LMI           3       /* LMI */
-
-/* PPP IP Mode Options */
-#define        WANOPT_PPP_STATIC       0
-#define        WANOPT_PPP_HOST         1
-#define        WANOPT_PPP_PEER         2
-
-/* ASY Mode Options */
-#define WANOPT_ONE             1
-#define WANOPT_TWO             2
-#define WANOPT_ONE_AND_HALF    3
-
-#define WANOPT_NONE    0
-#define WANOPT_ODD      1
-#define WANOPT_EVEN    2
-
-/* CHDLC Protocol Options */
-/* DF Commented out for now.
-
-#define WANOPT_CHDLC_NO_DCD            IGNORE_DCD_FOR_LINK_STAT
-#define WANOPT_CHDLC_NO_CTS            IGNORE_CTS_FOR_LINK_STAT
-#define WANOPT_CHDLC_NO_KEEPALIVE      IGNORE_KPALV_FOR_LINK_STAT
-*/
-
-/* Port options */
-#define WANOPT_PRI 0
-#define WANOPT_SEC 1
-/* read mode */
-#define        WANOPT_INTR     0
-#define WANOPT_POLL    1
-
-
-#define WANOPT_TTY_SYNC  0
-#define WANOPT_TTY_ASYNC 1
-/*----------------------------------------------------------------------------
- * WAN Link Status Info (for ROUTER_STAT IOCTL).
- */
-typedef struct wandev_stat
-{
-       unsigned state;         /* link state */
-       unsigned ndev;          /* number of configured interfaces */
-
-       /* link/interface configuration */
-       unsigned connection;    /* permanent/switched/on-demand */
-       unsigned media_type;    /* Frame relay/PPP/X.25/SDLC, etc. */
-       unsigned mtu;           /* max. transmit unit for this device */
-
-       /* physical level statistics */
-       unsigned modem_status;  /* modem status */
-       unsigned rx_frames;     /* received frames count */
-       unsigned rx_overruns;   /* receiver overrun error count */
-       unsigned rx_crc_err;    /* receive CRC error count */
-       unsigned rx_aborts;     /* received aborted frames count */
-       unsigned rx_bad_length; /* unexpetedly long/short frames count */
-       unsigned rx_dropped;    /* frames discarded at device level */
-       unsigned tx_frames;     /* transmitted frames count */
-       unsigned tx_underruns;  /* aborted transmissions (underruns) count */
-       unsigned tx_timeouts;   /* transmission timeouts */
-       unsigned tx_rejects;    /* other transmit errors */
-
-       /* media level statistics */
-       unsigned rx_bad_format; /* frames with invalid format */
-       unsigned rx_bad_addr;   /* frames with invalid media address */
-       unsigned tx_retries;    /* frames re-transmitted */
-       unsigned reserved[16];  /* reserved for future use */
-} wandev_stat_t;
-
-/* 'state' defines */
-enum wan_states
-{
-       WAN_UNCONFIGURED,       /* link/channel is not configured */
-       WAN_DISCONNECTED,       /* link/channel is disconnected */
-       WAN_CONNECTING,         /* connection is in progress */
-       WAN_CONNECTED,          /* link/channel is operational */
-       WAN_LIMIT,              /* for verification only */
-       WAN_DUALPORT,           /* for Dual Port cards */
-       WAN_DISCONNECTING,
-       WAN_FT1_READY           /* FT1 Configurator Ready */
-};
-
-enum {
-       WAN_LOCAL_IP,
-       WAN_POINTOPOINT_IP,
-       WAN_NETMASK_IP,
-       WAN_BROADCAST_IP
-};
-
-/* 'modem_status' masks */
-#define        WAN_MODEM_CTS   0x0001  /* CTS line active */
-#define        WAN_MODEM_DCD   0x0002  /* DCD line active */
-#define        WAN_MODEM_DTR   0x0010  /* DTR line active */
-#define        WAN_MODEM_RTS   0x0020  /* RTS line active */
-
-/*----------------------------------------------------------------------------
- * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL).
- */
-typedef struct wanif_conf
-{
-       unsigned magic;                 /* magic number */
-       unsigned config_id;             /* configuration identifier */
-       char name[WAN_IFNAME_SZ+1];     /* interface name, ASCIIZ */
-       char addr[WAN_ADDRESS_SZ+1];    /* media address, ASCIIZ */
-       char usedby[USED_BY_FIELD];     /* used by API or WANPIPE */
-       unsigned idle_timeout;          /* sec, before disconnecting */
-       unsigned hold_timeout;          /* sec, before re-connecting */
-       unsigned cir;                   /* Committed Information Rate fwd,bwd*/
-       unsigned bc;                    /* Committed Burst Size fwd, bwd */
-       unsigned be;                    /* Excess Burst Size fwd, bwd */ 
-       unsigned char enable_IPX;       /* Enable or Disable IPX */
-       unsigned char inarp;            /* Send Inverse ARP requests Y/N */
-       unsigned inarp_interval;        /* sec, between InARP requests */
-       unsigned long network_number;   /* Network Number for IPX */
-       char mc;                        /* Multicast on or off */
-       char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */
-       unsigned char port;             /* board port */
-       unsigned char protocol;         /* prococol used in this channel (TCPOX25 or X25) */
-       char pap;                       /* PAP enabled or disabled */
-       char chap;                      /* CHAP enabled or disabled */
-       unsigned char userid[511];      /* List of User Id */
-       unsigned char passwd[511];      /* List of passwords */
-       unsigned char sysname[31];      /* Name of the system */
-       unsigned char ignore_dcd;       /* Protocol options: */
-       unsigned char ignore_cts;       /*  Ignore these to determine */
-       unsigned char ignore_keepalive; /*  link status (Yes or No) */
-       unsigned char hdlc_streaming;   /*  Hdlc streaming mode (Y/N) */
-       unsigned keepalive_tx_tmr;      /* transmit keepalive timer */
-       unsigned keepalive_rx_tmr;      /* receive  keepalive timer */
-       unsigned keepalive_err_margin;  /* keepalive_error_tolerance */
-       unsigned slarp_timer;           /* SLARP request timer */
-       unsigned char ttl;              /* Time To Live for UDP security */
-       char interface;                 /* RS-232/V.35, etc. */
-       char clocking;                  /* external/internal */
-       unsigned bps;                   /* data transfer rate */
-       unsigned mtu;                   /* maximum transmit unit size */
-       unsigned char if_down;          /* brind down interface when disconnected */
-       unsigned char gateway;          /* Is this interface a gateway */
-       unsigned char true_if_encoding; /* Set the dev->type to true board protocol */
-
-       unsigned char asy_data_trans;     /* async API options */
-        unsigned char rts_hs_for_receive; /* async Protocol options */
-        unsigned char xon_xoff_hs_for_receive;
-       unsigned char xon_xoff_hs_for_transmit;
-       unsigned char dcd_hs_for_transmit;
-       unsigned char cts_hs_for_transmit;
-       unsigned char async_mode;
-       unsigned tx_bits_per_char;
-       unsigned rx_bits_per_char;
-       unsigned stop_bits;  
-       unsigned char parity;
-       unsigned break_timer;
-        unsigned inter_char_timer;
-       unsigned rx_complete_length;
-       unsigned xon_char;
-       unsigned xoff_char;
-       unsigned char receive_only;     /*  no transmit buffering (Y/N) */
-} wanif_conf_t;
+#include <uapi/linux/wanrouter.h>
 
-#ifdef __KERNEL__
 /****** Kernel Interface ****************************************************/
 
 #include <linux/fs.h>          /* support for device drivers */
@@ -528,5 +126,4 @@ extern long wanrouter_ioctl(struct file *file, unsigned int cmd, unsigned long a
 /* list of registered devices */
 extern struct wan_device *wanrouter_router_devlist;
 
-#endif /* __KERNEL__ */
 #endif /* _ROUTER_H */