root/drivers/net/fddi/skfp/h/targetos.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /******************************************************************************
   3  *
   4  *      (C)Copyright 1998,1999 SysKonnect,
   5  *      a business unit of Schneider & Koch & Co. Datensysteme GmbH.
   6  *
   7  *      The information in this file is provided "AS IS" without warranty.
   8  *
   9  ******************************************************************************/
  10 
  11 /*
  12  *      Operating system specific definitions for driver and
  13  *      hardware module.
  14  */
  15 
  16 #ifndef TARGETOS_H
  17 #define TARGETOS_H
  18 
  19 
  20 //-------- those should go into include/linux/pci.h
  21 #define PCI_VENDOR_ID_SK                0x1148
  22 #define PCI_DEVICE_ID_SK_FP             0x4000
  23 //--------
  24 
  25 
  26 
  27 //-------- those should go into include/linux/if_fddi.h
  28 #define FDDI_MAC_HDR_LEN 13
  29 
  30 #define FDDI_RII        0x01 /* routing information bit */
  31 #define FDDI_RCF_DIR_BIT 0x80
  32 #define FDDI_RCF_LEN_MASK 0x1f
  33 #define FDDI_RCF_BROADCAST 0x8000
  34 #define FDDI_RCF_LIMITED_BROADCAST 0xA000
  35 #define FDDI_RCF_FRAME2K 0x20
  36 #define FDDI_RCF_FRAME4K 0x30
  37 //--------
  38 
  39 
  40 #undef ADDR
  41 
  42 #include <asm/io.h>
  43 #include <linux/netdevice.h>
  44 #include <linux/fddidevice.h>
  45 #include <linux/skbuff.h>
  46 #include <linux/pci.h>
  47 
  48 // is redefined by linux, but we need our definition
  49 #undef ADDR
  50 #ifdef MEM_MAPPED_IO
  51 #define ADDR(a) (smc->hw.iop+(a))
  52 #else
  53 #define ADDR(a) (((a)>>7) ? (outp(smc->hw.iop+B0_RAP,(a)>>7), (smc->hw.iop+( ((a)&0x7F) | ((a)>>7 ? 0x80:0)) )) : (smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0))))
  54 #endif
  55 
  56 #include "hwmtm.h"
  57 
  58 #define TRUE  1
  59 #define FALSE 0
  60 
  61 // HWM Definitions
  62 // -----------------------
  63 #define FDDI_TRACE(string, arg1, arg2, arg3)    // Performance analysis.
  64 #ifdef PCI
  65 #define NDD_TRACE(string, arg1, arg2, arg3)     // Performance analysis.
  66 #endif  // PCI
  67 #define SMT_PAGESIZE    PAGE_SIZE       // Size of a memory page (power of 2).
  68 // -----------------------
  69 
  70 
  71 // SMT Definitions
  72 // -----------------------
  73 #define TICKS_PER_SECOND        HZ
  74 #define SMC_VERSION             1
  75 // -----------------------
  76 
  77 
  78 // OS-Driver Definitions
  79 // -----------------------
  80 #define NO_ADDRESS 0xffe0       /* No Device (I/O) Address */
  81 #define SKFP_MAX_NUM_BOARDS 8   /* maximum number of PCI boards */
  82 
  83 #define SK_BUS_TYPE_PCI         0
  84 #define SK_BUS_TYPE_EISA        1
  85 
  86 #define FP_IO_LEN               256     /* length of IO area used */
  87 
  88 #define u8      unsigned char
  89 #define u16     unsigned short
  90 #define u32     unsigned int
  91 
  92 #define MAX_TX_QUEUE_LEN        20 // number of packets queued by driver
  93 #define MAX_FRAME_SIZE          4550
  94 
  95 #define RX_LOW_WATERMARK        NUM_RECEIVE_BUFFERS  / 2
  96 #define TX_LOW_WATERMARK        NUM_TRANSMIT_BUFFERS - 2
  97 
  98 /*
  99 ** Include the IOCTL stuff
 100 */
 101 #include <linux/sockios.h>
 102 
 103 #define SKFPIOCTL       SIOCDEVPRIVATE
 104 
 105 struct s_skfp_ioctl {
 106         unsigned short cmd;                /* Command to run */
 107         unsigned short len;                /* Length of the data buffer */
 108         unsigned char __user *data;        /* Pointer to the data buffer */
 109 };
 110 
 111 /* 
 112 ** Recognised ioctl commands for the driver 
 113 */
 114 #define SKFP_GET_STATS          0x05 /* Get the driver statistics */
 115 #define SKFP_CLR_STATS          0x06 /* Zero out the driver statistics */
 116 
 117 // The per-adapter driver structure
 118 struct s_smt_os {
 119         struct net_device *dev;
 120         struct net_device *next_module;
 121         u32     bus_type;               /* bus type (0 == PCI, 1 == EISA) */
 122         struct pci_dev  pdev;           /* PCI device structure */
 123         
 124         unsigned long base_addr;
 125         unsigned char factory_mac_addr[8];
 126         ulong   SharedMemSize;
 127         ulong   SharedMemHeap;
 128         void*   SharedMemAddr;
 129         dma_addr_t SharedMemDMA;
 130 
 131         ulong   QueueSkb;
 132         struct  sk_buff_head SendSkbQueue;
 133 
 134         ulong   MaxFrameSize;
 135         u8      ResetRequested;
 136 
 137         // MAC statistics structure
 138         struct fddi_statistics MacStat;
 139 
 140         // receive into this local buffer if no skb available
 141         // data will be not valid, because multiple RxDs can
 142         // point here at the same time, it must be at least
 143         // MAX_FRAME_SIZE bytes in size
 144         unsigned char *LocalRxBuffer;
 145         dma_addr_t LocalRxBufferDMA;
 146         
 147         // Version (required by SMT module).
 148         u_long smc_version ;
 149 
 150         // Required by Hardware Module (HWM).
 151         struct hw_modul hwm ;
 152         
 153         // For SMP-savety
 154         spinlock_t DriverLock;
 155         
 156 };
 157 
 158 typedef struct s_smt_os skfddi_priv;
 159 
 160 #endif   // _TARGETOS_

/* [<][>][^][v][top][bottom][index][help] */