dmamap.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
- /* $Id$
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
- * Copyright (C) 2000 by Colin Ngam
- */
- #ifndef _ASM_SN_DMAMAP_H
- #define _ASM_SN_DMAMAP_H
- #include <asm/sn/sv.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Definitions for allocating, freeing, and using DMA maps
- */
- /*
- * DMA map types
- */
- #define DMA_SCSI 0
- #define DMA_A24VME 1 /* Challenge/Onyx only */
- #define DMA_A32VME 2 /* Challenge/Onyx only */
- #define DMA_A64VME 3 /* SN0/Racer */
- #define DMA_EISA 4
- #define DMA_PCI32 5 /* SN0/Racer */
- #define DMA_PCI64 6 /* SN0/Racer */
- /*
- * DMA map structure as returned by dma_mapalloc()
- */
- typedef struct dmamap {
- int dma_type; /* Map type (see above) */
- int dma_adap; /* I/O adapter */
- int dma_index; /* Beginning map register to use */
- int dma_size; /* Number of map registers to use */
- paddr_t dma_addr; /* Corresponding bus addr for A24/A32 */
- caddr_t dma_virtaddr; /* Beginning virtual address that is mapped */
- } dmamap_t;
- struct alenlist_s;
- /*
- * Prototypes of exported functions
- */
- extern dmamap_t *dma_mapalloc(int, int, int, int);
- extern void dma_mapfree(dmamap_t *);
- extern int dma_map(dmamap_t *, caddr_t, int);
- extern int dma_map2(dmamap_t *, caddr_t, caddr_t, int);
- extern paddr_t dma_mapaddr(dmamap_t *, caddr_t);
- #ifdef LATER
- extern int dma_mapbp(dmamap_t *, buf_t *, int);
- #endif
- extern int dma_map_alenlist(dmamap_t *, struct alenlist_s *, size_t);
- extern uint ev_kvtoiopnum(caddr_t);
- /*
- * These variables are defined in master.d/kernel
- */
- extern struct map *a24map[];
- extern struct map *a32map[];
- extern int a24_mapsize;
- extern int a32_mapsize;
- extern lock_t dmamaplock;
- extern sv_t dmamapout;
- #ifdef __cplusplus
- }
- #endif
- /* standard flags values for pio_map routines,
- * including {xtalk,pciio}_dmamap calls.
- * NOTE: try to keep these in step with PIOMAP flags.
- */
- #define DMAMAP_FIXED 0x1
- #define DMAMAP_NOSLEEP 0x2
- #define DMAMAP_INPLACE 0x4
- #define DMAMAP_FLAGS 0x7
- #endif /* _ASM_SN_DMAMAP_H */