]> git.ipfire.org Git - u-boot.git/blame - board/MAI/bios_emulator/scitech/src/common/gabeos.c
* Code cleanup:
[u-boot.git] / board / MAI / bios_emulator / scitech / src / common / gabeos.c
CommitLineData
c7de829c
WD
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
36#include "nucleus/graphics.h"
37#include <sys/time.h>
38
39static ibool haveRDTSC;
40
41/*-------------------------- Implementation -------------------------------*/
42
43/****************************************************************************
44PARAMETERS:
45path - Local path to the Nucleus driver files.
46
47REMARKS:
48This function is used by the application program to override the location
49of the Nucleus driver files that are loaded. Normally the loader code
50will look in the system Nucleus directories first, then in the 'drivers'
51directory relative to the current working directory, and finally relative
52to the MGL_ROOT environment variable.
53****************************************************************************/
54void NAPI GA_setLocalPath(
55 const char *path)
56{
57 PM_setLocalBPDPath(path);
58}
59
60/****************************************************************************
61RETURNS:
62Pointer to the system wide PM library imports, or the internal version if none
63
64REMARKS:
65In order to support deploying new Nucleus drivers that may require updated
66PM library functions, we check here to see if there is a system wide version
67of the PM functions available. If so we return those functions for use with
68the system wide Nucleus drivers, otherwise the compiled in version of the PM
69library is used with the application local version of Nucleus.
70****************************************************************************/
71PM_imports * NAPI GA_getSystemPMImports(void)
72{
8bde7f77
WD
73 /* TODO: We may very well want to provide a system shared library */
74 /* that eports the PM functions required by the Nucleus library */
75 /* for BeOS here. That will eliminate fatal errors loading new */
76 /* drivers on BeOS! */
c7de829c
WD
77 return &_PM_imports;
78}
79
80/****************************************************************************
81REMARKS:
82Nothing special for this OS.
83****************************************************************************/
84ibool NAPI GA_getSharedExports(
85 GA_exports *gaExp,
86 ibool shared)
87{
88 (void)gaExp;
89 (void)shared;
90 return false;
91}
92
93#ifndef TEST_HARNESS
94/****************************************************************************
95REMARKS:
96Nothing special for this OS
97****************************************************************************/
98ibool NAPI GA_queryFunctions(
99 GA_devCtx *dc,
100 N_uint32 id,
101 void _FAR_ *funcs)
102{
103 return __GA_exports.GA_queryFunctions(dc,id,funcs);
104}
105
106/****************************************************************************
107REMARKS:
108Nothing special for this OS
109****************************************************************************/
110ibool NAPI REF2D_queryFunctions(
111 REF2D_driver *ref2d,
112 N_uint32 id,
113 void _FAR_ *funcs)
114{
115 return __GA_exports.REF2D_queryFunctions(ref2d,id,funcs);
116}
117#endif
118
119/****************************************************************************
120REMARKS:
121This function initialises the high precision timing functions for the
122Nucleus loader library.
123****************************************************************************/
124ibool NAPI GA_TimerInit(void)
125{
126 if (_GA_haveCPUID() && (_GA_getCPUIDFeatures() & CPU_HaveRDTSC) != 0)
8bde7f77 127 haveRDTSC = true;
c7de829c
WD
128 return true;
129}
130
131/****************************************************************************
132REMARKS:
133This function reads the high resolution timer.
134****************************************************************************/
135void NAPI GA_TimerRead(
136 GA_largeInteger *value)
137{
138 if (haveRDTSC)
8bde7f77 139 _GA_readTimeStamp(value);
c7de829c 140 else {
8bde7f77
WD
141 struct timeval t;
142 gettimeofday(&t, NULL);
143 value->low = t.tv_sec*1000000 + t.tv_usec;
144 value->high = 0;
145 }
c7de829c 146}