Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _ASM_SCATTERLIST_H |
2 | #define _ASM_SCATTERLIST_H | |
3 | ||
4 | /* | |
5 | * Drivers must set either ->address or (preferred) ->page and ->offset | |
6 | * to indicate where data must be transferred to/from. | |
7 | * | |
8 | * Using ->page is recommended since it handles highmem data as well as | |
9 | * low mem. ->address is restricted to data which has a virtual mapping, and | |
10 | * it will go away in the future. Updating to ->page can be automated very | |
11 | * easily -- something like | |
12 | * | |
13 | * sg->address = some_ptr; | |
14 | * | |
15 | * can be rewritten as | |
16 | * | |
17 | * sg->page = virt_to_page(some_ptr); | |
18 | * sg->offset = (unsigned long) some_ptr & ~PAGE_MASK; | |
19 | * | |
20 | * and that's it. There's no excuse for not highmem enabling YOUR driver. /jens | |
21 | */ | |
22 | struct scatterlist { | |
23 | struct page *page; /* Location for highmem page, if any */ | |
24 | unsigned int offset; /* for highmem, page offset */ | |
25 | ||
26 | dma_addr_t dma_address; | |
27 | unsigned int length; | |
28 | }; | |
29 | ||
30 | #define ISA_DMA_THRESHOLD (0xffffffffUL) | |
31 | ||
32 | #endif /* !_ASM_SCATTERLIST_H */ |