linux/drivers/net/skfp/h/osdef1st.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 *      (C)Copyright 1998,1999 SysKonnect,
   4 *      a business unit of Schneider & Koch & Co. Datensysteme GmbH.
   5 *
   6 *      This program is free software; you can redistribute it and/or modify
   7 *      it under the terms of the GNU General Public License as published by
   8 *      the Free Software Foundation; either version 2 of the License, or
   9 *      (at your option) any later version.
  10 *
  11 *      The information in this file is provided "AS IS" without warranty.
  12 *
  13 ******************************************************************************/
  14
  15/* 
  16 * Operating system-dependent definitions that have to be defined
  17 * before any other header files are included.
  18 */
  19
  20// HWM (HardWare Module) Definitions
  21// -----------------------
  22
  23#include <asm/byteorder.h>
  24
  25#ifdef __LITTLE_ENDIAN
  26#define LITTLE_ENDIAN
  27#else
  28#define BIG_ENDIAN
  29#endif
  30
  31// this is set in the makefile
  32// #define PCI                  /* only PCI adapters supported by this driver */
  33// #define MEM_MAPPED_IO        /* use memory mapped I/O */
  34
  35
  36#define USE_CAN_ADDR            /* DA and SA in MAC header are canonical. */
  37
  38#define MB_OUTSIDE_SMC          /* SMT Mbufs outside of smc struct. */
  39
  40// -----------------------
  41
  42
  43// SMT Definitions 
  44// -----------------------
  45#define SYNC                    /* allow synchronous frames */
  46
  47// #define SBA                  /* Synchronous Bandwidth Allocator support */
  48                                /* not available as free source */
  49
  50#define ESS                     /* SBA End Station Support */
  51
  52#define SMT_PANIC(smc, nr, msg) printk(KERN_INFO "SMT PANIC: code: %d, msg: %s\n",nr,msg)
  53
  54
  55#ifdef DEBUG
  56#define printf(s,args...) printk(KERN_INFO s, ## args)
  57#endif
  58
  59// #define HW_PTR       u_long
  60// -----------------------
  61
  62
  63
  64// HWM and OS-specific buffer definitions
  65// -----------------------
  66
  67// default number of receive buffers.
  68#define NUM_RECEIVE_BUFFERS             10
  69
  70// default number of transmit buffers.
  71#define NUM_TRANSMIT_BUFFERS            10
  72
  73// Number of SMT buffers (Mbufs).
  74#define NUM_SMT_BUF     4
  75
  76// Number of TXDs for asynchronous transmit queue.
  77#define HWM_ASYNC_TXD_COUNT     (NUM_TRANSMIT_BUFFERS + NUM_SMT_BUF)
  78
  79// Number of TXDs for synchronous transmit queue.
  80#define HWM_SYNC_TXD_COUNT      HWM_ASYNC_TXD_COUNT
  81
  82
  83// Number of RXDs for receive queue #1.
  84// Note: Workaround for ASIC Errata #7: One extra RXD is required.
  85#if (NUM_RECEIVE_BUFFERS > 100)
  86#define SMT_R1_RXD_COUNT        (1 + 100)
  87#else
  88#define SMT_R1_RXD_COUNT        (1 + NUM_RECEIVE_BUFFERS)
  89#endif
  90
  91// Number of RXDs for receive queue #2.
  92#define SMT_R2_RXD_COUNT        0       // Not used.
  93// -----------------------
  94
  95
  96
  97/*
  98 * OS-specific part of the transmit/receive descriptor structure (TXD/RXD).
  99 *
 100 * Note: The size of these structures must follow this rule:
 101 *
 102 *      sizeof(struct) + 2*sizeof(void*) == n * 16, n >= 1
 103 *
 104 * We use the dma_addr fields under Linux to keep track of the
 105 * DMA address of the packet data, for later pci_unmap_single. -DaveM
 106 */
 107
 108struct s_txd_os {       // os-specific part of transmit descriptor
 109        struct sk_buff *skb;
 110        dma_addr_t dma_addr;
 111} ;
 112
 113struct s_rxd_os {       // os-specific part of receive descriptor
 114        struct sk_buff *skb;
 115        dma_addr_t dma_addr;
 116} ;
 117
 118
 119/*
 120 * So we do not need to make too many modifications to the generic driver
 121 * parts, we take advantage of the AIX byte swapping macro interface.
 122 */
 123
 124#define AIX_REVERSE(x)          ((u32)le32_to_cpu((u32)(x)))
 125#define MDR_REVERSE(x)          ((u32)le32_to_cpu((u32)(x)))
 126