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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [char/] [rio/] [riodrvr.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
** -----------------------------------------------------------------------------
3
**
4
**  Perle Specialix driver for Linux
5
**  Ported from existing RIO Driver for SCO sources.
6
 *
7
 *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
8
 *
9
 *      This program is free software; you can redistribute it and/or modify
10
 *      it under the terms of the GNU General Public License as published by
11
 *      the Free Software Foundation; either version 2 of the License, or
12
 *      (at your option) any later version.
13
 *
14
 *      This program is distributed in the hope that it will be useful,
15
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *      GNU General Public License for more details.
18
 *
19
 *      You should have received a copy of the GNU General Public License
20
 *      along with this program; if not, write to the Free Software
21
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22
**
23
**      Module          : riodrvr.h
24
**      SID             : 1.3
25
**      Last Modified   : 11/6/98 09:22:46
26
**      Retrieved       : 11/6/98 09:22:46
27
**
28
**  ident @(#)riodrvr.h 1.3
29
**
30
** -----------------------------------------------------------------------------
31
*/
32
 
33
#ifndef __riodrvr_h
34
#define __riodrvr_h
35
 
36
#include <asm/param.h>  /* for HZ */
37
 
38
#ifdef SCCS_LABELS
39
static char *_riodrvr_h_sccs_ = "@(#)riodrvr.h  1.3";
40
#endif
41
 
42
#define MEMDUMP_SIZE    32
43
#define MOD_DISABLE     (RIO_NOREAD|RIO_NOWRITE|RIO_NOXPRINT)
44
 
45
 
46
struct rio_info {
47
        int                     mode;                   /* Intr or polled, word/byte */
48
        spinlock_t              RIOIntrSem;             /* Interrupt thread sem */
49
        int                     current_chan;           /* current channel */
50
        int                     RIOFailed;              /* Not initialised ? */
51
        int                     RIOInstallAttempts;     /* no. of rio-install() calls */
52
        int                     RIOLastPCISearch;       /* status of last search */
53
        int                     RIONumHosts;            /* Number of RIO Hosts */
54
        struct Host             * RIOHosts;             /* RIO Host values */
55
        struct Port             **RIOPortp;             /* RIO port values */
56
/*
57
** 02.03.1999 ARG - ESIL 0820 fix
58
** We no longer use RIOBootMode
59
**
60
        int                     RIOBootMode;            * RIO boot mode *
61
**
62
*/
63
        int                     RIOPrintDisabled;       /* RIO printing disabled ? */
64
        int                     RIOPrintLogState;       /* RIO printing state ? */
65
        int                     RIOPolling;             /* Polling ? */
66
/*
67
** 09.12.1998 ARG - ESIL 0776 part fix
68
** The 'RIO_QUICK_CHECK' ioctl was using RIOHalted.
69
** The fix for this ESIL introduces another member (RIORtaDisCons) here to be
70
** updated in RIOConCon() - to keep track of RTA connections/disconnections.
71
** 'RIO_QUICK_CHECK' now returns the value of RIORtaDisCons.
72
*/
73
        int                     RIOHalted;              /* halted ? */
74
        int                     RIORtaDisCons;          /* RTA connections/disconnections */
75
        uint                    RIOReadCheck;           /* Rio read check */
76
        uint                    RIONoMessage;           /* To display message or not */
77
        uint                    RIONumBootPkts;         /* how many packets for an RTA */
78
        uint                    RIOBootCount;           /* size of RTA code */
79
        uint                    RIOBooting;             /* count of outstanding boots */
80
        uint                    RIOSystemUp;            /* Booted ?? */
81
        uint                    RIOCounting;            /* for counting interrupts */
82
        uint                    RIOIntCount;            /* # of intr since last check */
83
        uint                    RIOTxCount;             /* number of xmit intrs  */
84
        uint                    RIORxCount;             /* number of rx intrs */
85
        uint                    RIORupCount;            /* number of rup intrs */
86
        int                     RIXTimer;
87
        int                     RIOBufferSize;          /* Buffersize */
88
        int                     RIOBufferMask;          /* Buffersize */
89
 
90
        int                     RIOFirstMajor;          /* First host card's major no */
91
 
92
        uint                    RIOLastPortsMapped;     /* highest port number known */
93
        uint                    RIOFirstPortsMapped;    /* lowest port number known */
94
 
95
        uint                    RIOLastPortsBooted;     /* highest port number running */
96
        uint                    RIOFirstPortsBooted;    /* lowest port number running */
97
 
98
        uint                    RIOLastPortsOpened;     /* highest port number running */
99
        uint                    RIOFirstPortsOpened;    /* lowest port number running */
100
 
101
        /* Flag to say that the topology information has been changed. */
102
        uint                    RIOQuickCheck;
103
        uint                    CdRegister;             /* ??? */
104
        int                     RIOSignalProcess;       /* Signalling process */
105
        int                     rio_debug;              /* To debug ... */
106
        int                     RIODebugWait;           /* For what ??? */
107
        int                     tpri;                   /* Thread prio */
108
        int                     tid;                    /* Thread id */
109
        uint                    _RIO_Polled;            /* Counter for polling */
110
        uint                    _RIO_Interrupted;       /* Counter for interrupt */
111
        int                     intr_tid;               /* iointset return value */
112
        int                     TxEnSem;                /* TxEnable Semaphore */
113
 
114
 
115
        struct Error            RIOError;               /* to Identify what went wrong */
116
        struct Conf             RIOConf;                /* Configuration ??? */
117
        struct ttystatics       channel[RIO_PORTS];     /* channel information */
118
        char                    RIOBootPackets[1+(SIXTY_FOUR_K/RTA_BOOT_DATA_SIZE)]
119
                                                                [RTA_BOOT_DATA_SIZE];
120
        struct Map              RIOConnectTable[TOTAL_MAP_ENTRIES];
121
        struct Map              RIOSavedTable[TOTAL_MAP_ENTRIES];
122
 
123
        /* RTA to host binding table for master/slave operation */
124
        ulong                   RIOBindTab[MAX_RTA_BINDINGS];
125
        /* RTA memory dump variable */
126
        uchar                   RIOMemDump[MEMDUMP_SIZE];
127
        struct ModuleInfo       RIOModuleTypes[MAX_MODULE_TYPES];
128
 
129
};
130
 
131
 
132
#ifdef linux
133
#define debug(x)        printk x
134
#else
135
#define debug(x)        kkprintf x
136
#endif
137
 
138
 
139
 
140
#define RIO_RESET_INT   0x7d80
141
#define WRBYTE(x,y)             *(volatile unsigned char *)((x)) = \
142
                                        (unsigned char)(y)
143
 
144
#endif  /* __riodrvr.h */

powered by: WebSVN 2.1.0

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