Change table chaining layout
[linux-2.6.git] / 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         unsigned long page_link;
18         unsigned int offset;
19         unsigned int length;
20
21         /* For TCE support */
22         dma_addr_t dma_address;
23         u32 dma_length;
24 };
25
26 /*
27  * These macros should be used after a dma_map_sg call has been done
28  * to get bus addresses of each of the SG entries and their lengths.
29  * You should only work with the number of sg entries pci_map_sg
30  * returns, or alternatively stop on the first sg_dma_len(sg) which
31  * is 0.
32  */
33 #define sg_dma_address(sg)      ((sg)->dma_address)
34 #ifdef __powerpc64__
35 #define sg_dma_len(sg)          ((sg)->dma_length)
36 #else
37 #define sg_dma_len(sg)          ((sg)->length)
38 #endif
39
40 #ifdef __powerpc64__
41 #define ISA_DMA_THRESHOLD       (~0UL)
42 #endif
43
44 #define ARCH_HAS_SG_CHAIN
45
46 #endif /* __KERNEL__ */
47 #endif /* _ASM_POWERPC_SCATTERLIST_H */