_schedPxLib.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* _schedPxLib.c - kernel support for the POSIX scheduling library */
  2. /* Copyright 1984-2000 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01a,12sep00,jgn  written
  8. */
  9. /*
  10. DESCRIPTION: 
  11. Provides support routines for the POSIX scheduler library that can be accessed
  12. from outside the kernel (to cope with deficiencies in the core kernel API).
  13. */
  14. /* INCLUDES */
  15. #include "vxWorks.h"
  16. /* externs */
  17. extern BOOL roundRobinOn; /* round robin enabled? */
  18. extern ULONG roundRobinSlice; /* period if it is */
  19. /*******************************************************************************
  20. *
  21. * _schedPxKernelIsTimeSlicing - return current state of timeslicing & period
  22. *
  23. * This routine allows tasks to determine the current state of time slicing in
  24. * the system, including the current period if time slicing is enabled. The
  25. * parameter <pPeriod> may be passed as NULL if this information is not
  26. * required. The value stored in <pPeriod> is only valid if the function
  27. * returns TRUE.
  28. *
  29. * RETURNS: TRUE if time slicing enabled, FALSE otherwise. Also returns current
  30. * time slice period via <pPeriod> if it is non-NULL and time slicing is enabled.
  31. *
  32. * SEE ALSO: kernelTimeSlice()
  33. *
  34. * NOMANUAL
  35. */
  36.  
  37. BOOL _schedPxKernelIsTimeSlicing
  38.     (
  39.     ULONG * pPeriod                 /* place to store period, or NULL */
  40.     )
  41.     {
  42.     if ((roundRobinOn) && (pPeriod != NULL))
  43.         {
  44.         *pPeriod = roundRobinSlice;
  45.         }
  46.  
  47.     return roundRobinOn;
  48.     }