blob: 263d397d2eefec625804871ddf7163d951bbc869 [file] [log] [blame]
H. Peter Anvin1965aae2008-10-22 22:26:29 -07001#ifndef _ASM_X86_SCATTERLIST_H
2#define _ASM_X86_SCATTERLIST_H
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +01003
4#include <asm/types.h>
5
6struct scatterlist {
7#ifdef CONFIG_DEBUG_SG
8 unsigned long sg_magic;
9#endif
10 unsigned long page_link;
11 unsigned int offset;
12 unsigned int length;
13 dma_addr_t dma_address;
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010014 unsigned int dma_length;
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010015};
16
17#define ARCH_HAS_SG_CHAIN
18#define ISA_DMA_THRESHOLD (0x00ffffff)
19
20/*
21 * These macros should be used after a pci_map_sg call has been done
22 * to get bus addresses of each of the SG entries and their lengths.
23 * You should only work with the number of sg entries pci_map_sg
24 * returns.
25 */
26#define sg_dma_address(sg) ((sg)->dma_address)
Thomas Gleixner96a388d2007-10-11 11:20:03 +020027#ifdef CONFIG_X86_32
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010028# define sg_dma_len(sg) ((sg)->length)
Thomas Gleixner96a388d2007-10-11 11:20:03 +020029#else
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010030# define sg_dma_len(sg) ((sg)->dma_length)
31#endif
32
H. Peter Anvin1965aae2008-10-22 22:26:29 -070033#endif /* _ASM_X86_SCATTERLIST_H */