xref: /aosp_15_r20/external/intel-media-driver/cmrtlib/linux/share/cm_include.h (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
1*ba62d9d3SAndroid Build Coastguard Worker /*
2*ba62d9d3SAndroid Build Coastguard Worker * Copyright (c) 2017, Intel Corporation
3*ba62d9d3SAndroid Build Coastguard Worker *
4*ba62d9d3SAndroid Build Coastguard Worker * Permission is hereby granted, free of charge, to any person obtaining a
5*ba62d9d3SAndroid Build Coastguard Worker * copy of this software and associated documentation files (the "Software"),
6*ba62d9d3SAndroid Build Coastguard Worker * to deal in the Software without restriction, including without limitation
7*ba62d9d3SAndroid Build Coastguard Worker * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*ba62d9d3SAndroid Build Coastguard Worker * and/or sell copies of the Software, and to permit persons to whom the
9*ba62d9d3SAndroid Build Coastguard Worker * Software is furnished to do so, subject to the following conditions:
10*ba62d9d3SAndroid Build Coastguard Worker *
11*ba62d9d3SAndroid Build Coastguard Worker * The above copyright notice and this permission notice shall be included
12*ba62d9d3SAndroid Build Coastguard Worker * in all copies or substantial portions of the Software.
13*ba62d9d3SAndroid Build Coastguard Worker *
14*ba62d9d3SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15*ba62d9d3SAndroid Build Coastguard Worker * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*ba62d9d3SAndroid Build Coastguard Worker * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17*ba62d9d3SAndroid Build Coastguard Worker * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*ba62d9d3SAndroid Build Coastguard Worker * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*ba62d9d3SAndroid Build Coastguard Worker * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*ba62d9d3SAndroid Build Coastguard Worker * OTHER DEALINGS IN THE SOFTWARE.
21*ba62d9d3SAndroid Build Coastguard Worker */
22*ba62d9d3SAndroid Build Coastguard Worker // cm_include.h : include file for standard system include files,
23*ba62d9d3SAndroid Build Coastguard Worker // or project specific include files that are used frequently, but
24*ba62d9d3SAndroid Build Coastguard Worker // are changed infrequently
25*ba62d9d3SAndroid Build Coastguard Worker //
26*ba62d9d3SAndroid Build Coastguard Worker 
27*ba62d9d3SAndroid Build Coastguard Worker #ifndef CMRTLIB_LINUX_SHARE_CM_INCLUDE_H_
28*ba62d9d3SAndroid Build Coastguard Worker #define CMRTLIB_LINUX_SHARE_CM_INCLUDE_H_
29*ba62d9d3SAndroid Build Coastguard Worker 
30*ba62d9d3SAndroid Build Coastguard Worker #include <dlfcn.h>
31*ba62d9d3SAndroid Build Coastguard Worker 
32*ba62d9d3SAndroid Build Coastguard Worker #ifndef ANDROID
33*ba62d9d3SAndroid Build Coastguard Worker #include "va/va.h"
34*ba62d9d3SAndroid Build Coastguard Worker #else
35*ba62d9d3SAndroid Build Coastguard Worker #include <va/va_android.h>
36*ba62d9d3SAndroid Build Coastguard Worker #define Display unsigned int
37*ba62d9d3SAndroid Build Coastguard Worker #define ANDROID_DISPLAY 0x18c34078
38*ba62d9d3SAndroid Build Coastguard Worker #endif
39*ba62d9d3SAndroid Build Coastguard Worker 
40*ba62d9d3SAndroid Build Coastguard Worker #define sprintf_s snprintf
41*ba62d9d3SAndroid Build Coastguard Worker 
42*ba62d9d3SAndroid Build Coastguard Worker #ifdef CM_RT_EXPORTS
43*ba62d9d3SAndroid Build Coastguard Worker #define CM_RT_API __attribute__((visibility("default")))
44*ba62d9d3SAndroid Build Coastguard Worker #else
45*ba62d9d3SAndroid Build Coastguard Worker #define CM_RT_API
46*ba62d9d3SAndroid Build Coastguard Worker #endif
47*ba62d9d3SAndroid Build Coastguard Worker 
48*ba62d9d3SAndroid Build Coastguard Worker #ifndef CM_NOINLINE
49*ba62d9d3SAndroid Build Coastguard Worker   #define CM_NOINLINE __attribute__((noinline))
50*ba62d9d3SAndroid Build Coastguard Worker #endif
51*ba62d9d3SAndroid Build Coastguard Worker 
52*ba62d9d3SAndroid Build Coastguard Worker #define __cdecl
53*ba62d9d3SAndroid Build Coastguard Worker #define __stdcall  __attribute__((__stdcall__))
54*ba62d9d3SAndroid Build Coastguard Worker 
55*ba62d9d3SAndroid Build Coastguard Worker #ifdef __try
56*ba62d9d3SAndroid Build Coastguard Worker #undef __try
57*ba62d9d3SAndroid Build Coastguard Worker #endif
58*ba62d9d3SAndroid Build Coastguard Worker #define __try try
59*ba62d9d3SAndroid Build Coastguard Worker 
60*ba62d9d3SAndroid Build Coastguard Worker #ifdef __except
61*ba62d9d3SAndroid Build Coastguard Worker #undef __except
62*ba62d9d3SAndroid Build Coastguard Worker #endif
63*ba62d9d3SAndroid Build Coastguard Worker #define __except(e)  catch(e)
64*ba62d9d3SAndroid Build Coastguard Worker 
65*ba62d9d3SAndroid Build Coastguard Worker #define  EXCEPTION_EXECUTE_HANDLER std::exception const& e
66*ba62d9d3SAndroid Build Coastguard Worker 
67*ba62d9d3SAndroid Build Coastguard Worker #if NO_EXCEPTION_HANDLING || ANDROID
68*ba62d9d3SAndroid Build Coastguard Worker     #define try         if (true)
69*ba62d9d3SAndroid Build Coastguard Worker     #define catch(x)    if (false)
70*ba62d9d3SAndroid Build Coastguard Worker     #define throw(...)
71*ba62d9d3SAndroid Build Coastguard Worker #endif
72*ba62d9d3SAndroid Build Coastguard Worker 
73*ba62d9d3SAndroid Build Coastguard Worker typedef union _LARGE_INTEGER
74*ba62d9d3SAndroid Build Coastguard Worker {
75*ba62d9d3SAndroid Build Coastguard Worker     struct
76*ba62d9d3SAndroid Build Coastguard Worker     {
77*ba62d9d3SAndroid Build Coastguard Worker         unsigned int LowPart;
78*ba62d9d3SAndroid Build Coastguard Worker         int HighPart;
79*ba62d9d3SAndroid Build Coastguard Worker     } u;
80*ba62d9d3SAndroid Build Coastguard Worker     long long int QuadPart;
81*ba62d9d3SAndroid Build Coastguard Worker } LARGE_INTEGER;
82*ba62d9d3SAndroid Build Coastguard Worker 
83*ba62d9d3SAndroid Build Coastguard Worker typedef int HANDLE;
84*ba62d9d3SAndroid Build Coastguard Worker 
85*ba62d9d3SAndroid Build Coastguard Worker extern "C" int32_t QueryPerformanceFrequency(LARGE_INTEGER *frequency);
86*ba62d9d3SAndroid Build Coastguard Worker extern "C" int32_t QueryPerformanceCounter(LARGE_INTEGER *performanceCount);
87*ba62d9d3SAndroid Build Coastguard Worker 
88*ba62d9d3SAndroid Build Coastguard Worker #endif  // #ifndef CMRTLIB_LINUX_SHARE_CM_INCLUDE_H_
89