at v2.6.13 153 lines 5.7 kB view raw
1/* 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 : func.h 24** SID : 1.3 25** Last Modified : 11/6/98 11:34:10 26** Retrieved : 11/6/98 11:34:21 27** 28** ident @(#)func.h 1.3 29** 30** ----------------------------------------------------------------------------- 31*/ 32 33#ifndef __func_h_def 34#define __func_h_def 35 36#include <linux/kdev_t.h> 37 38#ifdef SCCS_LABELS 39#ifndef lint 40static char *_func_h_sccs_ = "@(#)func.h 1.3"; 41#endif 42#endif 43 44/* rioboot.c */ 45int RIOBootCodeRTA(struct rio_info *, struct DownLoad *); 46int RIOBootCodeHOST(struct rio_info *, register struct DownLoad *); 47int RIOBootCodeUNKNOWN(struct rio_info *, struct DownLoad *); 48void msec_timeout(struct Host *); 49int RIOBootRup(struct rio_info *, uint, struct Host *, struct PKT *); 50int RIOBootOk(struct rio_info *,struct Host *, ulong); 51int RIORtaBound(struct rio_info *, uint); 52void FillSlot(int, int, uint, struct Host *); 53 54/* riocmd.c */ 55int RIOFoadRta(struct Host *, struct Map *); 56int RIOZombieRta(struct Host *, struct Map *); 57int RIOCommandRta(struct rio_info *, uint, int (* func)( struct Host *, 58 struct Map *)); 59int RIOIdentifyRta(struct rio_info *, caddr_t); 60int RIOKillNeighbour(struct rio_info *, caddr_t); 61int RIOSuspendBootRta(struct Host *, int, int); 62int RIOFoadWakeup(struct rio_info *); 63struct CmdBlk * RIOGetCmdBlk(void); 64void RIOFreeCmdBlk(struct CmdBlk *); 65int RIOQueueCmdBlk(struct Host *, uint, struct CmdBlk *); 66void RIOPollHostCommands(struct rio_info *, struct Host *); 67int RIOWFlushMark(int, struct CmdBlk *); 68int RIORFlushEnable(int, struct CmdBlk *); 69int RIOUnUse(int, struct CmdBlk *); 70void ShowPacket(uint, struct PKT *); 71 72/* rioctrl.c */ 73int copyin(int, caddr_t, int); 74int riocontrol(struct rio_info *, dev_t,int,caddr_t,int); 75int RIOPreemptiveCmd(struct rio_info *,struct Port *,uchar); 76 77/* rioinit.c */ 78void rioinit(struct rio_info *, struct RioHostInfo *); 79void RIOInitHosts(struct rio_info *, struct RioHostInfo *); 80void RIOISAinit(struct rio_info *,int); 81int RIODoAT(struct rio_info *, int, int); 82caddr_t RIOCheckForATCard(int); 83int RIOAssignAT(struct rio_info *, int, caddr_t, int); 84int RIOBoardTest(paddr_t, caddr_t, uchar, int); 85void RIOAllocDataStructs(struct rio_info *); 86void RIOSetupDataStructs(struct rio_info *); 87int RIODefaultName(struct rio_info *, struct Host *, uint); 88struct rioVersion * RIOVersid(void); 89int RIOMapin(paddr_t, int, caddr_t *); 90void RIOMapout(paddr_t, long, caddr_t); 91void RIOHostReset(uint, volatile struct DpRam *, uint); 92 93/* riointr.c */ 94void RIOTxEnable(char *); 95void RIOServiceHost(struct rio_info *, struct Host *, int); 96int riotproc(struct rio_info *, register struct ttystatics *, int, int); 97 98/* rioparam.c */ 99int RIOParam(struct Port *, int, int, int); 100int RIODelay(struct Port *PortP, int); 101int RIODelay_ni(struct Port *PortP, int); 102void ms_timeout(struct Port *); 103int can_add_transmit(struct PKT **, struct Port *); 104void add_transmit(struct Port *); 105void put_free_end(struct Host *, struct PKT *); 106int can_remove_receive(struct PKT **, struct Port *); 107void remove_receive(struct Port *); 108 109/* rioroute.c */ 110int RIORouteRup(struct rio_info *, uint, struct Host *, struct PKT *); 111void RIOFixPhbs(struct rio_info *, struct Host *, uint); 112uint GetUnitType(uint); 113int RIOSetChange(struct rio_info *); 114int RIOFindFreeID(struct rio_info *, struct Host *, uint *, uint *); 115 116 117/* riotty.c */ 118 119int riotopen(struct tty_struct * tty, struct file * filp); 120int riotclose(void *ptr); 121int riotioctl(struct rio_info *, struct tty_struct *, register int, register caddr_t); 122void ttyseth(struct Port *, struct ttystatics *, struct old_sgttyb *sg); 123 124/* riotable.c */ 125int RIONewTable(struct rio_info *); 126int RIOApel(struct rio_info *); 127int RIODeleteRta(struct rio_info *, struct Map *); 128int RIOAssignRta(struct rio_info *, struct Map *); 129int RIOReMapPorts(struct rio_info *, struct Host *, struct Map *); 130int RIOChangeName(struct rio_info *, struct Map*); 131 132#if 0 133/* riodrvr.c */ 134struct rio_info * rio_install(struct RioHostInfo *); 135int rio_uninstall(register struct rio_info *); 136int rio_open(struct rio_info *, int, struct file *); 137int rio_close(struct rio_info *, struct file *); 138int rio_read(struct rio_info *, struct file *, char *, int); 139int rio_write(struct rio_info *, struct file * f, char *, int); 140int rio_ioctl(struct rio_info *, struct file *, int, char *); 141int rio_select(struct rio_info *, struct file * f, int, struct sel *); 142int rio_intr(char *); 143int rio_isr_thread(char *); 144struct rio_info * rio_info_store( int cmd, struct rio_info * p); 145#endif 146 147extern int rio_pcicopy(char *src, char *dst, int n); 148extern int rio_minor (struct tty_struct *tty); 149extern int rio_ismodem (struct tty_struct *tty); 150 151extern void rio_start_card_running (struct Host * HostP); 152 153#endif /* __func_h_def */