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/* rioboot.c */ 39int RIOBootCodeRTA(struct rio_info *, struct DownLoad *); 40int RIOBootCodeHOST(struct rio_info *, struct DownLoad *); 41int RIOBootCodeUNKNOWN(struct rio_info *, struct DownLoad *); 42void msec_timeout(struct Host *); 43int RIOBootRup(struct rio_info *, unsigned int, struct Host *, struct PKT __iomem *); 44int RIOBootOk(struct rio_info *, struct Host *, unsigned long); 45int RIORtaBound(struct rio_info *, unsigned int); 46void rio_fill_host_slot(int, int, unsigned int, struct Host *); 47 48/* riocmd.c */ 49int RIOFoadRta(struct Host *, struct Map *); 50int RIOZombieRta(struct Host *, struct Map *); 51int RIOCommandRta(struct rio_info *, unsigned long, int (*func) (struct Host *, struct Map *)); 52int RIOIdentifyRta(struct rio_info *, void __user *); 53int RIOKillNeighbour(struct rio_info *, void __user *); 54int RIOSuspendBootRta(struct Host *, int, int); 55int RIOFoadWakeup(struct rio_info *); 56struct CmdBlk *RIOGetCmdBlk(void); 57void RIOFreeCmdBlk(struct CmdBlk *); 58int RIOQueueCmdBlk(struct Host *, unsigned int, struct CmdBlk *); 59void RIOPollHostCommands(struct rio_info *, struct Host *); 60int RIOWFlushMark(unsigned long, struct CmdBlk *); 61int RIORFlushEnable(unsigned long, struct CmdBlk *); 62int RIOUnUse(unsigned long, struct CmdBlk *); 63 64/* rioctrl.c */ 65int riocontrol(struct rio_info *, dev_t, int, unsigned long, int); 66 67int RIOPreemptiveCmd(struct rio_info *, struct Port *, unsigned char); 68 69/* rioinit.c */ 70void rioinit(struct rio_info *, struct RioHostInfo *); 71void RIOInitHosts(struct rio_info *, struct RioHostInfo *); 72void RIOISAinit(struct rio_info *, int); 73int RIODoAT(struct rio_info *, int, int); 74caddr_t RIOCheckForATCard(int); 75int RIOAssignAT(struct rio_info *, int, void __iomem *, int); 76int RIOBoardTest(unsigned long, void __iomem *, unsigned char, int); 77void RIOAllocDataStructs(struct rio_info *); 78void RIOSetupDataStructs(struct rio_info *); 79int RIODefaultName(struct rio_info *, struct Host *, unsigned int); 80struct rioVersion *RIOVersid(void); 81void RIOHostReset(unsigned int, struct DpRam __iomem *, unsigned int); 82 83/* riointr.c */ 84void RIOTxEnable(char *); 85void RIOServiceHost(struct rio_info *, struct Host *); 86int riotproc(struct rio_info *, struct ttystatics *, int, int); 87 88/* rioparam.c */ 89int RIOParam(struct Port *, int, int, int); 90int RIODelay(struct Port *PortP, int); 91int RIODelay_ni(struct Port *PortP, int); 92void ms_timeout(struct Port *); 93int can_add_transmit(struct PKT __iomem **, struct Port *); 94void add_transmit(struct Port *); 95void put_free_end(struct Host *, struct PKT __iomem *); 96int can_remove_receive(struct PKT __iomem **, struct Port *); 97void remove_receive(struct Port *); 98 99/* rioroute.c */ 100int RIORouteRup(struct rio_info *, unsigned int, struct Host *, struct PKT __iomem *); 101void RIOFixPhbs(struct rio_info *, struct Host *, unsigned int); 102unsigned int GetUnitType(unsigned int); 103int RIOSetChange(struct rio_info *); 104int RIOFindFreeID(struct rio_info *, struct Host *, unsigned int *, unsigned int *); 105 106 107/* riotty.c */ 108 109int riotopen(struct tty_struct *tty, struct file *filp); 110int riotclose(void *ptr); 111int riotioctl(struct rio_info *, struct tty_struct *, int, caddr_t); 112void ttyseth(struct Port *, struct ttystatics *, struct old_sgttyb *sg); 113 114/* riotable.c */ 115int RIONewTable(struct rio_info *); 116int RIOApel(struct rio_info *); 117int RIODeleteRta(struct rio_info *, struct Map *); 118int RIOAssignRta(struct rio_info *, struct Map *); 119int RIOReMapPorts(struct rio_info *, struct Host *, struct Map *); 120int RIOChangeName(struct rio_info *, struct Map *); 121 122 123extern void rio_copy_to_card(void *from, void __iomem *to, int len); 124extern int rio_minor(struct tty_struct *tty); 125extern int rio_ismodem(struct tty_struct *tty); 126 127extern void rio_start_card_running(struct Host *HostP); 128 129#endif /* __func_h_def */ 130