aavxd.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /****************************************************************************
  2. *
  3. * SciTech Nucleus Graphics Architecture
  4. *
  5. * Copyright (C) 1991-1998 SciTech Software, Inc.
  6. * All rights reserved.
  7. *
  8. * ======================================================================
  9. * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
  10. * | |
  11. * |This copyrighted computer code contains proprietary technology |
  12. * |owned by SciTech Software, Inc., located at 505 Wall Street, |
  13. * |Chico, CA 95928 USA (http://www.scitechsoft.com). |
  14. * | |
  15. * |The contents of this file are subject to the SciTech Nucleus |
  16. * |License; you may *not* use this file or related software except in |
  17. * |compliance with the License. You may obtain a copy of the License |
  18. * |at http://www.scitechsoft.com/nucleus-license.txt |
  19. * | |
  20. * |Software distributed under the License is distributed on an |
  21. * |"AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
  22. * |implied. See the License for the specific language governing |
  23. * |rights and limitations under the License. |
  24. * | |
  25. * |REMOVAL OR MODIFICATION OF THIS HEADER IS STRICTLY PROHIBITED BY LAW|
  26. * ======================================================================
  27. *
  28. * Language: ANSI C
  29. * Environment: Win32 VxD
  30. *
  31. * Description: OS specific Nucleus Graphics Architecture services for
  32. * the Win32 VxD's.
  33. *
  34. ****************************************************************************/
  35. #include "sdd/sddhelp.h"
  36. /*------------------------- Global Variables ------------------------------*/
  37. static ibool haveRDTSC;
  38. /*-------------------------- Implementation -------------------------------*/
  39. /****************************************************************************
  40. REMARKS:
  41. Return the internal shared info structure.
  42. ****************************************************************************/
  43. GA_sharedInfo * NAPI GA_getSharedInfo(
  44. int device)
  45. {
  46. static GA_sharedInfo shared = {0,-1};
  47. return &shared;
  48. }
  49. /****************************************************************************
  50. REMARKS:
  51. Nothing special for this OS.
  52. ****************************************************************************/
  53. ibool NAPI GA_getSharedExports(
  54. GA_exports *gaExp)
  55. {
  56. (void)gaExp;
  57. return false;
  58. }
  59. /****************************************************************************
  60. REMARKS:
  61. This function initialises the high precision timing functions for the
  62. Nucleus loader library.
  63. ****************************************************************************/
  64. ibool NAPI GA_TimerInit(void)
  65. {
  66. if (_GA_haveCPUID() && (_GA_getCPUIDFeatures() & CPU_HaveRDTSC) != 0) {
  67. haveRDTSC = true;
  68. }
  69. return true;
  70. }
  71. /****************************************************************************
  72. REMARKS:
  73. This function reads the high resolution timer.
  74. ****************************************************************************/
  75. void NAPI GA_TimerRead(
  76. GA_largeInteger *value)
  77. {
  78. if (haveRDTSC)
  79. _GA_readTimeStamp(value);
  80. else
  81. VTD_Get_Real_Time(&value->high,&value->low);
  82. }