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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [isdn/] [eicon/] [uxio.h] - Rev 1275

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 * Interface to Unix specific code for performing card I/O
 *
 * Copyright (C) Eicon Technology Corporation, 2000.
 *
 * Eicon File Revision :    1.6  
 *
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 */
 
#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;
};
 
/*
 * 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
 */
 
long		UxCardLock(ux_diva_card_t *card);
void	UxCardUnlock(ux_diva_card_t *card, long 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 */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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