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

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [linux/] [istallion.h] - Diff between revs 1765 and 1782

Only display areas with differences | Details | Blame | View Log

Rev 1765 Rev 1782
/*****************************************************************************/
/*****************************************************************************/
 
 
/*
/*
 *      istallion.h  -- stallion intelligent multiport serial driver.
 *      istallion.h  -- stallion intelligent multiport serial driver.
 *
 *
 *      Copyright (C) 1996-1998  Stallion Technologies (support@stallion.oz.au).
 *      Copyright (C) 1996-1998  Stallion Technologies (support@stallion.oz.au).
 *      Copyright (C) 1994-1996  Greg Ungerer (gerg@stallion.oz.au).
 *      Copyright (C) 1994-1996  Greg Ungerer (gerg@stallion.oz.au).
 *
 *
 *      This program is free software; you can redistribute it and/or modify
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      (at your option) any later version.
 *
 *
 *      This program is distributed in the hope that it will be useful,
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      GNU General Public License for more details.
 *
 *
 *      You should have received a copy of the GNU General Public License
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 */
 
 
/*****************************************************************************/
/*****************************************************************************/
#ifndef _ISTALLION_H
#ifndef _ISTALLION_H
#define _ISTALLION_H
#define _ISTALLION_H
/*****************************************************************************/
/*****************************************************************************/
 
 
/*
/*
 *      Define important driver constants here.
 *      Define important driver constants here.
 */
 */
#define STL_MAXBRDS             4
#define STL_MAXBRDS             4
#define STL_MAXPANELS           4
#define STL_MAXPANELS           4
#define STL_MAXPORTS            64
#define STL_MAXPORTS            64
#define STL_MAXCHANS            (STL_MAXPORTS + 1)
#define STL_MAXCHANS            (STL_MAXPORTS + 1)
#define STL_MAXDEVS             (STL_MAXBRDS * STL_MAXPORTS)
#define STL_MAXDEVS             (STL_MAXBRDS * STL_MAXPORTS)
 
 
 
 
/*
/*
 *      Define a set of structures to hold all the board/panel/port info
 *      Define a set of structures to hold all the board/panel/port info
 *      for our ports. These will be dynamically allocated as required at
 *      for our ports. These will be dynamically allocated as required at
 *      driver initialization time.
 *      driver initialization time.
 */
 */
 
 
/*
/*
 *      Port and board structures to hold status info about each object.
 *      Port and board structures to hold status info about each object.
 *      The board structure contains pointers to structures for each port
 *      The board structure contains pointers to structures for each port
 *      connected to it. Panels are not distinguished here, since
 *      connected to it. Panels are not distinguished here, since
 *      communication with the slave board will always be on a per port
 *      communication with the slave board will always be on a per port
 *      basis.
 *      basis.
 */
 */
typedef struct {
typedef struct {
        unsigned long           magic;
        unsigned long           magic;
        int                     portnr;
        int                     portnr;
        int                     panelnr;
        int                     panelnr;
        int                     brdnr;
        int                     brdnr;
        unsigned long           state;
        unsigned long           state;
        int                     devnr;
        int                     devnr;
        int                     flags;
        int                     flags;
        int                     baud_base;
        int                     baud_base;
        int                     custom_divisor;
        int                     custom_divisor;
        int                     close_delay;
        int                     close_delay;
        int                     closing_wait;
        int                     closing_wait;
        int                     refcount;
        int                     refcount;
        int                     openwaitcnt;
        int                     openwaitcnt;
        int                     rc;
        int                     rc;
        int                     argsize;
        int                     argsize;
        void                    *argp;
        void                    *argp;
        long                    session;
        long                    session;
        long                    pgrp;
        long                    pgrp;
        unsigned int            rxmarkmsk;
        unsigned int            rxmarkmsk;
        struct tty_struct       *tty;
        struct tty_struct       *tty;
        struct wait_queue       *open_wait;
        struct wait_queue       *open_wait;
        struct wait_queue       *close_wait;
        struct wait_queue       *close_wait;
        struct wait_queue       *raw_wait;
        struct wait_queue       *raw_wait;
        struct tq_struct        tqhangup;
        struct tq_struct        tqhangup;
        struct termios          normaltermios;
        struct termios          normaltermios;
        struct termios          callouttermios;
        struct termios          callouttermios;
        asysigs_t               asig;
        asysigs_t               asig;
        unsigned long           addr;
        unsigned long           addr;
        unsigned long           rxoffset;
        unsigned long           rxoffset;
        unsigned long           txoffset;
        unsigned long           txoffset;
        unsigned long           sigs;
        unsigned long           sigs;
        unsigned long           pflag;
        unsigned long           pflag;
        unsigned int            rxsize;
        unsigned int            rxsize;
        unsigned int            txsize;
        unsigned int            txsize;
        unsigned char           reqbit;
        unsigned char           reqbit;
        unsigned char           portidx;
        unsigned char           portidx;
        unsigned char           portbit;
        unsigned char           portbit;
} stliport_t;
} stliport_t;
 
 
/*
/*
 *      Use a structure of function pointers to do board level operations.
 *      Use a structure of function pointers to do board level operations.
 *      These include, enable/disable, paging shared memory, interrupting, etc.
 *      These include, enable/disable, paging shared memory, interrupting, etc.
 */
 */
typedef struct stlibrd {
typedef struct stlibrd {
        unsigned long   magic;
        unsigned long   magic;
        int             brdnr;
        int             brdnr;
        int             brdtype;
        int             brdtype;
        int             state;
        int             state;
        int             nrpanels;
        int             nrpanels;
        int             nrports;
        int             nrports;
        int             nrdevs;
        int             nrdevs;
        unsigned int    iobase;
        unsigned int    iobase;
        int             iosize;
        int             iosize;
        unsigned long   memaddr;
        unsigned long   memaddr;
        void            *membase;
        void            *membase;
        int             memsize;
        int             memsize;
        int             pagesize;
        int             pagesize;
        int             hostoffset;
        int             hostoffset;
        int             slaveoffset;
        int             slaveoffset;
        int             bitsize;
        int             bitsize;
        int             enabval;
        int             enabval;
        int             panels[STL_MAXPANELS];
        int             panels[STL_MAXPANELS];
        int             panelids[STL_MAXPANELS];
        int             panelids[STL_MAXPANELS];
        void            (*init)(struct stlibrd *brdp);
        void            (*init)(struct stlibrd *brdp);
        void            (*enable)(struct stlibrd *brdp);
        void            (*enable)(struct stlibrd *brdp);
        void            (*reenable)(struct stlibrd *brdp);
        void            (*reenable)(struct stlibrd *brdp);
        void            (*disable)(struct stlibrd *brdp);
        void            (*disable)(struct stlibrd *brdp);
        char            *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
        char            *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
        void            (*intr)(struct stlibrd *brdp);
        void            (*intr)(struct stlibrd *brdp);
        void            (*reset)(struct stlibrd *brdp);
        void            (*reset)(struct stlibrd *brdp);
        stliport_t      *ports[STL_MAXPORTS];
        stliport_t      *ports[STL_MAXPORTS];
} stlibrd_t;
} stlibrd_t;
 
 
 
 
/*
/*
 *      Define MAGIC numbers used for above structures.
 *      Define MAGIC numbers used for above structures.
 */
 */
#define STLI_PORTMAGIC  0xe671c7a1
#define STLI_PORTMAGIC  0xe671c7a1
#define STLI_BOARDMAGIC 0x4bc6c825
#define STLI_BOARDMAGIC 0x4bc6c825
 
 
/*****************************************************************************/
/*****************************************************************************/
#endif
#endif
 
 

powered by: WebSVN 2.1.0

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