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

VxWorks

开发平台:

C/C++

  1. /* comSysLib.c - vxcom OS abstraction layer  */
  2. /* Copyright (c) 2001 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,29jun01,nel  Add wrapper function to call time function from either ntp of
  7.                  system time module.
  8. 01c,27jun01,dbs  add realloc function
  9. 01b,22jun01,dbs  add alloc/free funcs
  10. 01a,20jun01,nel  created
  11. */
  12. /*
  13. DESCRIPTION
  14. This library provides an OS abstraction layer to VxCOM. This allows VxCOM
  15. to be executed on a number of different host OS whilst still using the 
  16. standard VxWorks library functions.
  17. This library also includes a number of system wide generic functions that
  18. need to be run in kernel mode on VxWorks.
  19. */
  20. /* includes */
  21. #include <stdlib.h>
  22. #include "private/comSysLib.h"
  23. #include "time.h"
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. /* locals */
  28. unsigned long (*pSysTimeGet)(void) = NULL;
  29. /* OS specific support */
  30. #ifdef VXDCOM_PLATFORM_VXWORKS
  31. #include "VxWorks/comVxWorksSupport.c"
  32. #endif
  33. #ifdef VXDCOM_PLATFORM_SOLARIS
  34. #include "sun4-solaris2/comUnixSupport.c"
  35. #endif
  36. #ifdef VXDCOM_PLATFORM_LINUX
  37. #include "x86-linux2/comUnixSupport.c"
  38. #endif
  39. /* Generic functions */
  40. #include "generic/comGuidLib.c"
  41. #include "generic/comTrackLib.c"
  42. /**************************************************************************
  43. *
  44. * comSysAlloc - generic memory allocation function
  45. */
  46.     
  47. void * comSysAlloc (unsigned long nb)
  48.     {
  49.     return malloc (nb);
  50.     }
  51. /**************************************************************************
  52. *
  53. * comSysRealloc - generic memory re-allocation function
  54. */
  55.     
  56. void * comSysRealloc (void* pv, unsigned long nb)
  57.     {
  58.     return realloc (pv, nb);
  59.     }
  60. /**************************************************************************
  61. *
  62. * comSysFree - generic memory free function
  63. */
  64. void comSysFree (void* pv)
  65.     {
  66.     free (pv);
  67.     }
  68. /**************************************************************************
  69. *
  70. * comSysSetTimeGetPtr - Set's an alternate time handler routine.
  71. *
  72. * This method installs an alternative time handlering routine to replace
  73. * the simple call to time, i.e. The NTP module.
  74. *
  75. * RETURNS: N/A
  76. *.NOMANUAL
  77. */
  78. void comSysSetTimeGetPtr (unsigned long (*pPtr)(void))
  79.     {
  80.     pSysTimeGet = pPtr;
  81.     }
  82. /**************************************************************************
  83. *
  84. * comSysTimeGet - returns the time in seconds since Jan 1, 1970
  85. *
  86. * This function returns the time in seconds since Jan 1, 1970. 
  87. *
  88. * RETURNS: the time in seconds since Jan 1, 1970.
  89. *
  90. */
  91. unsigned long comSysTimeGet (void)
  92.     {
  93.     if (NULL != pSysTimeGet)
  94.         {
  95.         return pSysTimeGet ();
  96.         }
  97.     return (unsigned long)time (NULL);
  98.     }
  99. #ifdef __cplusplus
  100. }
  101. #endif