Pull bugzilla-9535 into release branch
[linux-2.6] / include / asm-powerpc / scatterlist.h
1 #ifndef _ASM_POWERPC_SCATTERLIST_H
2 #define _ASM_POWERPC_SCATTERLIST_H
3 /*
4  * Copyright (C) 2001 PPC64 Team, IBM Corp
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version
9  * 2 of the License, or (at your option) any later version.
10  */
11
12 #ifdef __KERNEL__
13 #include <linux/types.h>
14 #include <asm/dma.h>
15
16 struct scatterlist {
17 #ifdef CONFIG_DEBUG_SG
18         unsigned long sg_magic;
19 #endif
20         unsigned long page_link;
21         unsigned int offset;
22         unsigned int length;
23
24         /* For TCE support */
25         dma_addr_t dma_address;
26         u32 dma_length;
27 };
28
29 /*
30  * These macros should be used after a dma_map_sg call has been done
31  * to get bus addresses of each of the SG entries and their lengths.
32  * You should only work with the number of sg entries pci_map_sg
33  * returns, or alternatively stop on the first sg_dma_len(sg) which
34  * is 0.
35  */
36 #define sg_dma_address(sg)      ((sg)->dma_address)
37 #ifdef __powerpc64__
38 #define sg_dma_len(sg)          ((sg)->dma_length)
39 #else
40 #define sg_dma_len(sg)          ((sg)->length)
41 #endif
42
43 #ifdef __powerpc64__
44 #define ISA_DMA_THRESHOLD       (~0UL)
45 #endif
46
47 #define ARCH_HAS_SG_CHAIN
48
49 #endif /* __KERNEL__ */
50 #endif /* _ASM_POWERPC_SCATTERLIST_H */