blob: fcf7d55afe4599e3049713156145997fa066e1e3 [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 {
Jens Axboed6ec0842007-10-22 20:01:06 +020017#ifdef CONFIG_DEBUG_SG
18 unsigned long sg_magic;
19#endif
Jens Axboe18dabf42007-10-22 19:57:20 +020020 unsigned long page_link;
Stephen Rothwell89edce02005-10-25 16:59:03 +100021 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
Jens Axboe78bdc312007-10-12 13:44:12 +020047#define ARCH_HAS_SG_CHAIN
48
Stephen Rothwell89edce02005-10-25 16:59:03 +100049#endif /* __KERNEL__ */
50#endif /* _ASM_POWERPC_SCATTERLIST_H */