blob: 8c992d1491d420c8ab452291752900dd146dd2b0 [file] [log] [blame]
Stephen Rothwell89edce02005-10-25 16:59:03 +10001#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
16struct scatterlist {
17 struct page *page;
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#endif /* __KERNEL__ */
45#endif /* _ASM_POWERPC_SCATTERLIST_H */