OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [net/] [skfp/] [h/] [targetos.h] - Blame information for rev 62

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.