~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/istallion.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.