home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 8.ddi / usr / include / sys / dmaable.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-08  |  1.9 KB  |  58 lines

  1. /*    Copyright (c) 1990 UNIX System Laboratories, Inc.    */
  2. /*    Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T    */
  3. /*      All Rights Reserved      */
  4.  
  5. /*    THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF         */
  6. /*    UNIX System Laboratories, Inc.                         */
  7. /*    The copyright notice above does not evidence any       */
  8. /*    actual or intended publication of such source code.    */
  9.  
  10. #ident    "@(#)/usr/include/sys/dmaable.h.sl 1.1 4.0 12/08/90 32678 AT&T-USL"
  11.  
  12. #define    DMAABLESZ    4096        /* DMA boundary - in clicks - only on 386 */
  13.  
  14. #define    DO_DMA_CHECK        (tune.t_dmalimit > 0)
  15. #define    DMA_CHECK_ENABLED    (tune.t_dmalimit > 0 && tune.t_dmalimit < pages_end)
  16.  
  17. #define    DMAABLE_PFN(pfn)    ((pfn) < tune.t_dmalimit)
  18. #define    LAST_DMAABLE_PFN    (tune.t_dmalimit)
  19.  
  20. extern    u_int    dma_freemem;    /* currently free dmaable memory */
  21. extern    u_int    dma_limit_pfn;    /* Last dmaable click (inclusive) */
  22. extern    int    dma_check_on;    /* Tuneable set and memory exceeds DMA capacity */
  23. extern    page_t    *dma_limit_pp;    /* Last dmaable page structure (inclusive) */
  24.  
  25. extern    page_t    *dma_freelist;    /* Freelist pointer for DMA pages for remapping */
  26. extern    u_int    dmaable_pages;    /* Total free pages on this free list */
  27. extern  u_int    dmaable_free;    /* Current free pages on this free list */
  28. extern    int    dmaable_sleep;    /* Processes sleep on this flag for DMA pages */
  29. extern    mon_t    dma_pagelock;    /* multiprocessor sempahore lock for this freelist */
  30.  
  31. #define    DMA_PFN(pfn)    ((pfn) <= dma_limit_pfn)
  32. #define    DMA_PP(pp)    ((pp) <= dma_limit_pp)
  33. #define    DMA_BYTE(b)    (btoct(b) <= dma_limit_pfn)
  34.  
  35.  
  36. extern    int    dmaable_rawio();
  37. extern    int    dma_check_strategy();
  38. extern    int    dma_stub_strategy();
  39.  
  40. struct    dma_checksw {
  41.     int    (*d_strategy)();
  42.     int    d_flags;
  43. };
  44.  
  45. extern struct dma_checksw    *dma_checksw;
  46.  
  47. /*
  48.  *    flag values
  49.  */
  50.  
  51. #define    DMA_NOFLAGS    0x000
  52. #define    DMA_OLDSTYLE    0x001
  53. #define    DMA_NEWSTYLE    0x002
  54. #define    DMA_GENSTRAT    0x004
  55. #define    DMA_BREAKUP    0x008
  56.  
  57. #define    REASONABLE_DMA_PAGES    100
  58.