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
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 */
46