home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-frv / scatterlist.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.3 KB  |  47 lines

  1. #ifndef _ASM_SCATTERLIST_H
  2. #define _ASM_SCATTERLIST_H
  3.  
  4. #include <asm/types.h>
  5.  
  6. /*
  7.  * Drivers must set either ->address or (preferred) page and ->offset
  8.  * to indicate where data must be transferred to/from.
  9.  *
  10.  * Using page is recommended since it handles highmem data as well as
  11.  * low mem. ->address is restricted to data which has a virtual mapping, and
  12.  * it will go away in the future. Updating to page can be automated very
  13.  * easily -- something like
  14.  *
  15.  * sg->address = some_ptr;
  16.  *
  17.  * can be rewritten as
  18.  *
  19.  * sg_set_buf(sg, some_ptr, length);
  20.  *
  21.  * and that's it. There's no excuse for not highmem enabling YOUR driver. /jens
  22.  */
  23. struct scatterlist {
  24. #ifdef CONFIG_DEBUG_SG
  25.     unsigned long    sg_magic;
  26. #endif
  27.     unsigned long    page_link;
  28.     unsigned int    offset;        /* for highmem, page offset */
  29.  
  30.     dma_addr_t    dma_address;
  31.     unsigned int    length;
  32. };
  33.  
  34. /*
  35.  * These macros should be used after a pci_map_sg call has been done
  36.  * to get bus addresses of each of the SG entries and their lengths.
  37.  * You should only work with the number of sg entries pci_map_sg
  38.  * returns, or alternatively stop on the first sg_dma_len(sg) which
  39.  * is 0.
  40.  */
  41. #define sg_dma_address(sg)    ((sg)->dma_address)
  42. #define sg_dma_len(sg)        ((sg)->length)
  43.  
  44. #define ISA_DMA_THRESHOLD (0xffffffffUL)
  45.  
  46. #endif /* !_ASM_SCATTERLIST_H */
  47.