blob: d13c197866d627daa572c6928034e639dc2b17f2 [file] [log] [blame]
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +01001#ifndef _ASM_X86_SCATTERLIST_H
2#define _ASM_X86_SCATTERLIST_H
3
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;
14#ifdef CONFIG_X86_64
15 unsigned int dma_length;
16#endif
17};
18
19#define ARCH_HAS_SG_CHAIN
20#define ISA_DMA_THRESHOLD (0x00ffffff)
21
22/*
23 * These macros should be used after a pci_map_sg call has been done
24 * to get bus addresses of each of the SG entries and their lengths.
25 * You should only work with the number of sg entries pci_map_sg
26 * returns.
27 */
28#define sg_dma_address(sg) ((sg)->dma_address)
Thomas Gleixner96a388d2007-10-11 11:20:03 +020029#ifdef CONFIG_X86_32
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010030# define sg_dma_len(sg) ((sg)->length)
Thomas Gleixner96a388d2007-10-11 11:20:03 +020031#else
Thomas Gleixner3ebc51d2008-01-30 13:30:21 +010032# define sg_dma_len(sg) ((sg)->dma_length)
33#endif
34
Thomas Gleixner96a388d2007-10-11 11:20:03 +020035#endif