source: svn/trunk/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/linux/istallion.h @ 2

Last change on this file since 2 was 2, checked in by jglee, 11 years ago

first commit

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1/*****************************************************************************/
2
3/*
4 *      istallion.h  -- stallion intelligent multiport serial driver.
5 *
6 *      Copyright (C) 1996-1998  Stallion Technologies
7 *      Copyright (C) 1994-1996  Greg Ungerer.
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
24#include <linux/version.h>
25
26/*****************************************************************************/
27#ifndef _ISTALLION_H
28#define _ISTALLION_H
29/*****************************************************************************/
30
31/*
32 *      Define important driver constants here.
33 */
34#define STL_MAXBRDS             4
35#define STL_MAXPANELS           4
36#define STL_MAXPORTS            64
37#define STL_MAXCHANS            (STL_MAXPORTS + 1)
38#define STL_MAXDEVS             (STL_MAXBRDS * STL_MAXPORTS)
39
40
41/*
42 *      Define a set of structures to hold all the board/panel/port info
43 *      for our ports. These will be dynamically allocated as required at
44 *      driver initialization time.
45 */
46
47/*
48 *      Port and board structures to hold status info about each object.
49 *      The board structure contains pointers to structures for each port
50 *      connected to it. Panels are not distinguished here, since
51 *      communication with the slave board will always be on a per port
52 *      basis.
53 */
54typedef struct {
55        unsigned long           magic;
56        int                     portnr;
57        int                     panelnr;
58        int                     brdnr;
59        unsigned long           state;
60        int                     devnr;
61        int                     flags;
62        int                     baud_base;
63        int                     custom_divisor;
64        int                     close_delay;
65        int                     closing_wait;
66        int                     refcount;
67        int                     openwaitcnt;
68        int                     rc;
69        int                     argsize;
70        void                    *argp;
71        unsigned int            rxmarkmsk;
72        struct tty_struct       *tty;
73        wait_queue_head_t       open_wait;
74        wait_queue_head_t       close_wait;
75        wait_queue_head_t       raw_wait;
76        struct work_struct      tqhangup;
77        asysigs_t               asig;
78        unsigned long           addr;
79        unsigned long           rxoffset;
80        unsigned long           txoffset;
81        unsigned long           sigs;
82        unsigned long           pflag;
83        unsigned int            rxsize;
84        unsigned int            txsize;
85        unsigned char           reqbit;
86        unsigned char           portidx;
87        unsigned char           portbit;
88} stliport_t;
89
90/*
91 *      Use a structure of function pointers to do board level operations.
92 *      These include, enable/disable, paging shared memory, interrupting, etc.
93 */
94typedef struct stlibrd {
95        unsigned long   magic;
96        int             brdnr;
97        int             brdtype;
98        int             state;
99        int             nrpanels;
100        int             nrports;
101        int             nrdevs;
102        unsigned int    iobase;
103        int             iosize;
104        unsigned long   memaddr;
105        void            *membase;
106        int             memsize;
107        int             pagesize;
108        int             hostoffset;
109        int             slaveoffset;
110        int             bitsize;
111        int             enabval;
112        int             panels[STL_MAXPANELS];
113        int             panelids[STL_MAXPANELS];
114        void            (*init)(struct stlibrd *brdp);
115        void            (*enable)(struct stlibrd *brdp);
116        void            (*reenable)(struct stlibrd *brdp);
117        void            (*disable)(struct stlibrd *brdp);
118        char            *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
119        void            (*intr)(struct stlibrd *brdp);
120        void            (*reset)(struct stlibrd *brdp);
121        stliport_t      *ports[STL_MAXPORTS];
122} stlibrd_t;
123
124
125/*
126 *      Define MAGIC numbers used for above structures.
127 */
128#define STLI_PORTMAGIC  0xe671c7a1
129#define STLI_BOARDMAGIC 0x4bc6c825
130
131/*****************************************************************************/
132#endif
Note: See TracBrowser for help on using the repository browser.