home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / cmds / root.3 / usr / include / sys / fc.h / fc
Text File  |  1998-08-19  |  3KB  |  96 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. #ifndef _PROC_CLASS_FC_H    /* wrapper symbol for kernel use */
  12. #define _PROC_CLASS_FC_H    /* subject to change without notice */
  13.  
  14. #ident    "@(#)kern:proc/class/fc.h    1.3"
  15. #ident    "$Header: $"
  16.  
  17. #if defined(__cplusplus)
  18. extern "C" {
  19. #endif
  20.  
  21. #ifdef _KERNEL_HEADERS
  22.  
  23. #include <util/types.h>    /* REQUIRED */
  24. #include <proc/priocntl.h>
  25. #include <util/list.h>
  26. #include <util/ksynch.h>
  27.  
  28. #elif defined(_KERNEL) || defined(_KMEMUSER)
  29.  
  30. #include <sys/types.h>    /* REQUIRED */
  31. #include <sys/priocntl.h>
  32. #include <sys/list.h>
  33. #include <sys/ksynch.h>
  34.  
  35. #endif /* _KERNEL_HEADERS */
  36.  
  37. /*
  38.  * fixed class dispatcher parameter table entry
  39.  */
  40. typedef struct fcdpent {
  41.     int    fc_globpri;    /* global (class independent) priority */
  42.     long    fc_quantum;    /* time quantum given to lwp's at this level */
  43. } fcdpent_t;
  44.  
  45.  
  46. #if defined(_KERNEL) || defined(_KMEMUSER)
  47.  
  48. /*
  49.  * fixed class specific lwp structure
  50.  */
  51. typedef struct fclwp {
  52.     list_t    fc_qlink;    /* forward/backward links on hash list */
  53. #define fc_flink fc_qlink.flink    /* forward link */
  54. #define fc_rlink fc_qlink.rlink    /* reverse link */
  55.     long    fc_timeleft;    /* time remaining in lwp's quantum */
  56.     short    fc_cpupri;    /* system controlled component of fc_umdpri */
  57.     short    fc_uprilim;    /* user priority limit */
  58.     short    fc_upri;    /* user priority */
  59.     short    fc_umdpri;    /* user mode priority within fc class */
  60.     char    fc_nice;    /* nice value for compatibility */
  61.     unsigned char fc_flags;    /* flags defined below */
  62.                 /*   of quantum (not reset upon preemption) */
  63.     struct lwp *fc_lwpp;    /* pointer to class independent lwp */
  64.     lwpstat_t *fc_lstatp;    /* pointer to l_stat */
  65.     int    *fc_lprip;    /* pointer to l_pri */
  66.     uint    *fc_lflagp;    /* pointer to l_flag */
  67.     qpcparms_t fc_qpcparms;    /* buffer to store queued parameters */
  68. } fclwp_t;
  69.  
  70.  
  71. /* flags */
  72. #define    FCKPRI    0x01        /* lwp at kernel mode priority */
  73. #define    FCBACKQ    0x02        /* lwp goes to back of disp q when preempted */
  74. #define FCFORK    0x04        /* lwp has forked, do not restore full quantum */
  75.  
  76.  
  77. /*
  78.  * fixed class lwp hash list
  79.  */
  80. typedef struct fchash {
  81.     list_t        fh_qlink;    /* forward/backward links */
  82. #define fh_first    fh_qlink.flink    /* forward link */
  83. #define fh_last        fh_qlink.rlink    /* backward link */
  84.     lock_t        fh_lock;    /* hash bucket spin lock */
  85. } fchash_t;
  86.  
  87. #define    FCHASHSZ    64 
  88.  
  89. #endif /* _KERNEL || _KMEMUSER */
  90.  
  91. #if defined(__cplusplus)
  92.     }
  93. #endif
  94.  
  95. #endif /* _PROC_CLASS_FC_H */
  96.