aabeos.c 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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: Linux
  30. *
  31. * Description: OS specific Nucleus Graphics Architecture services for
  32. * the Linux operating system.
  33. *
  34. ****************************************************************************/
  35. #include "nucleus/graphics.h"
  36. #include <sys/time.h>
  37. static ibool haveRDTSC;
  38. /*-------------------------- Implementation -------------------------------*/
  39. /****************************************************************************
  40. REMARKS:
  41. Nothing special for this OS.
  42. ****************************************************************************/
  43. GA_sharedInfo * NAPI GA_getSharedInfo(
  44. int device)
  45. {
  46. (void)device;
  47. return NULL;
  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. return true;
  69. }
  70. /****************************************************************************
  71. REMARKS:
  72. This function reads the high resolution timer.
  73. ****************************************************************************/
  74. void NAPI GA_TimerRead(
  75. GA_largeInteger *value)
  76. {
  77. if (haveRDTSC)
  78. _GA_readTimeStamp(value);
  79. else {
  80. struct timeval t;
  81. gettimeofday(&t, NULL);
  82. value->low = t.tv_sec*1000000 + t.tv_usec;
  83. value->high = 0;
  84. }
  85. }