patch-2.2.19 linux/drivers/isdn/eicon/uxio.h

Next file: linux/drivers/isdn/eicon/xlog.c
Previous file: linux/drivers/isdn/eicon/sys.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/drivers/isdn/eicon/uxio.h linux/drivers/isdn/eicon/uxio.h
@@ -0,0 +1,217 @@
+
+/*
+ *
+ * Copyright (C) Eicon Technology Corporation, 2000.
+ *
+ * Eicon File Revision :    1.6  
+ *
+ * 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
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY 
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+/*
+ * Interface to Unix specific code for performing card I/O
+ */
+
+#if !defined(UXIO_H)
+#define UXIO_H
+
+#include "sys.h"
+#include "adapter.h"
+
+
+struct pt_regs;
+
+/* user callback, returns zero if interrupt was from this card */
+typedef	void		isr_fn_t(void *);
+struct ux_diva_card_s
+{
+	word	in_use;
+	int		io_base;
+	int		reset_base;
+	int		card_type;
+	byte		*mapped;
+	int		bus_num;
+	int		func_num;
+	int		slot;
+	int		irq;
+	byte		*pDRAM;
+	byte		*pDEVICES;
+	byte		*pCONFIG;
+	byte		*pSHARED;
+	byte		*pCONTROL;
+	word		features;
+	void		*user_isr_arg;
+	isr_fn_t	*user_isr;
+};
+
+void bcopy(void *pSource, void *pDest, dword dwLength);
+void bzero(void *pDataArea, dword dwLength);
+
+
+/*
+ * Get a card handle to enable card to be accessed
+ */
+
+int		UxCardHandleGet(	ux_diva_card_t	**card,
+							dia_card_t		*cfg);
+
+/*
+ * Free a card handle as no longer needed
+ */
+
+void	UxCardHandleFree(ux_diva_card_t *card);
+
+/*
+ * Lock and unlock access to a card
+ */
+
+int		UxCardLock(ux_diva_card_t *card);
+void	UxCardUnlock(ux_diva_card_t *card, int ipl);
+
+/*
+ * Set the mapping address for PCI cards
+ */
+
+int		UxCardAddrMappingSet(ux_diva_card_t	*card,
+							int				id,
+							void			*address,
+							int				size);
+
+/*
+ * Attach card to memory to enable it to be accessed
+ * Returns the mapped address
+ */
+
+void	*UxCardMemAttach(ux_diva_card_t *card, int id);
+
+/*
+ * map card out of memory after completion of access
+ */
+
+void	UxCardMemDetach(ux_diva_card_t *card, void *address);
+
+/*
+ * input functions for memory-mapped cards
+ */
+
+byte	UxCardMemIn(ux_diva_card_t *card, void *address);
+
+word	UxCardMemInW(ux_diva_card_t *card, void *address);
+
+dword	UxCardMemInD(ux_diva_card_t *card, void *address);
+
+void	UxCardMemInBuffer(	ux_diva_card_t *card,
+							void			*address,
+							void			*buffer,
+							int				length);
+
+/*
+ * output functions for memory-mapped cards
+ */
+
+void UxCardMemOut(ux_diva_card_t *card, void *address, byte data);
+
+void UxCardMemOutW(ux_diva_card_t *card, void *address, word data);
+
+void UxCardMemOutD(ux_diva_card_t *card, void *address, dword data);
+
+void UxCardMemOutBuffer(	ux_diva_card_t	*card,
+							void			*address,
+							void			*buffer,
+							int				length);
+
+/*
+ * input functions for I/O-mapped cards
+ */
+
+byte	UxCardIoIn(ux_diva_card_t *card, void *, void *address);
+
+word	UxCardIoInW(ux_diva_card_t *card, void *, void *address);
+
+dword	UxCardIoInD(ux_diva_card_t *card, void *, void *address);
+
+void	UxCardIoInBuffer(	ux_diva_card_t *card,
+							void *, void			*address,
+							void			*buffer,
+							int				length);
+
+/*
+ * output functions for I/O-mapped cards
+ */
+
+void UxCardIoOut(ux_diva_card_t *card, void *, void *address, byte data);
+
+void UxCardIoOutW(ux_diva_card_t *card, void *, void *address, word data);
+
+void UxCardIoOutD(ux_diva_card_t *card, void *, void *address, dword data);
+
+void UxCardIoOutBuffer(	ux_diva_card_t	*card,
+							void *, void			*address,
+							void			*buffer,
+							int				length);
+
+/*
+ * Get specified PCI config
+ */
+
+void	UxPciConfigRead(ux_diva_card_t	*card, 
+						int				size,
+						int				offset,
+						void			*value);
+
+/*
+ * Set specified PCI config
+ */
+
+void	UxPciConfigWrite(ux_diva_card_t	*card, 
+						int				size,
+						int				offset,
+						void			*value);
+
+/* allocate memory, returning NULL if none available */
+
+void	*UxAlloc(unsigned int size);
+
+void	UxFree(void *);
+
+/*
+ * Pause for specified number of milli-seconds 
+ */
+
+void	UxPause(long ms);
+
+/*
+ * Install an ISR for the specified card
+ */
+
+int		UxIsrInstall(ux_diva_card_t *card, isr_fn_t *isr_fn, void *isr_arg);
+
+/*
+ * Remove an ISR for the specified card
+ */
+void	UxIsrRemove(ux_diva_card_t *card, void *);
+
+/*
+ * DEBUG function to turn logging ON or OFF
+ */
+
+void	UxCardLog(int turn_on);
+
+long	UxInterlockedIncrement(ux_diva_card_t *card, long *dst);
+long	UxInterlockedDecrement(ux_diva_card_t *card, long *dst);
+
+#endif /* of UXIO_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)