home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s053 / 8.ddi / usr / include / sys / pfdat.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-08  |  2.1 KB  |  67 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/pfdat.h.sl 1.1 4.0 12/08/90 51662 AT&T-USL"
  11.  
  12. typedef struct pfdat {
  13.     unsigned    pf_blkno : 24,    /* Disk block nummber.    */
  14.             pf_flags : 8;    /* page flags        */
  15.     cnt_t        pf_ndref;    /* Need ref cnt for    */
  16.                     /* shared pg stealing    */
  17.     dev_t        pf_dev;        /* Disk device code.    */
  18.     long        pf_inumber;    /* inode number of     */
  19.                     /* matching file    */
  20.     char        pf_swpi;    /* Index into swaptab.    */
  21.     char        pf_rawcnt;    /* Cnt of processes    */
  22.                     /* doing raw I/O to     */
  23.                     /* page.        */
  24.     short        pf_waitcnt;    /* Number of processes    */
  25.                     /* waiting for PG_DONE    */
  26.     struct pfdat    *pf_next;    /* Next free pfdat.    */
  27.     struct pfdat    *pf_prev;    /* Previous free pfdat.    */
  28.     struct pfdat    *pf_hchain;    /* Hash chain link.    */
  29.     ulong        pf_use;        /* dbd share use count    */
  30. } pfd_t;
  31.  
  32. #define    P_QUEUE        0x01    /* Page on free queue        */
  33. #define    P_BAD        0x02    /* Bad page (parity error, etc.)*/
  34. #define    P_HASH        0x04    /* Page on hash queue        */
  35. #define P_DONE        0x08    /* I/O to read page is done    */
  36. #define    P_SWAP        0x10    /* Page on swap (not file).    */
  37.  
  38. extern struct pfdat phead;
  39. extern struct pfdat pbad;
  40. extern struct pfdat *pfdat;
  41. extern struct pfdat **phash;
  42. extern struct pfdat ptfree;
  43. extern int phashmask;
  44. extern struct pfdat    *pfind();
  45.  
  46.  
  47. #define BLKNULL        0    /* pf_blkno null value        */
  48.  
  49. extern int    mem_lock;
  50. extern int    memlock();
  51. extern int    memunlock();
  52. extern int    memlocked();
  53.  
  54. /* DBD allocation defines */
  55. #define DBDSIZE    128
  56. #define DBDSZSHFT    7
  57. #define NDBDPP        32
  58. #define NDBDPPSHFT    5
  59. #define NPGEPDBD    32    /* Number of page entries per DBD chunk */
  60. #define PGEPDBDSHFT    5
  61. #define pgetodbd(X)    (((X) + NPGEPDBD-1) >> PGEPDBDSHFT)
  62. #define pgetodbdt(X)    ((X) >> PGEPDBDSHFT)
  63. #define dbdtopge(X)    ((X) << PGEPDBDSHFT)
  64. #define dbdtop(X)    (((X) + NDBDPP-1) >> NDBDPPSHFT)
  65. #define dbdtob(X)    ((X) << DBDSZSHFT)
  66. extern struct pfdat dbdfree;
  67.