1bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams/*
2ee7aa2e3900f807ee41bb9735da86b3eb4cc2e70Stephen Hines * Copyright (C) 2011-2012 The Android Open Source Project
3bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
4bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * you may not use this file except in compliance with the License.
6bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * You may obtain a copy of the License at
7bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
8bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
10bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Unless required by applicable law or agreed to in writing, software
11bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * See the License for the specific language governing permissions and
14bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * limitations under the License.
15bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams */
16bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
17bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifndef RSD_CORE_H
18bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#define RSD_CORE_H
19bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
20bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <rs_hal.h>
21bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
22709a0978ae141198018ca9769f8d96292a8928e6Jason Sams#include "../cpu_ref/rsd_cpu.h"
23709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
24cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams#include "rsMutex.h"
25cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams#include "rsSignal.h"
26cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams
2759f6142d7657e43b4d21e077a28387431db02edfMiao Wang#if !defined(RS_VENDOR_LIB) && !defined(RS_COMPATIBILITY_LIB)
284b3de47071d875faaa7d419d050a464b09538797Jason Sams#include "rsdGL.h"
2993eacc7ce0aad4314b4cb41a281f59ce54bb3286Jason Sams#endif
30cdfdb8f2cdf4668c476cac842212892b2505ff3fJason Sams
3183c451a4ef4388e002482e383d488ca9b7b7600dJason Samstypedef struct ScriptTLSStructRec {
3283c451a4ef4388e002482e383d488ca9b7b7600dJason Sams    android::renderscript::Context * mContext;
3383c451a4ef4388e002482e383d488ca9b7b7600dJason Sams    android::renderscript::Script * mScript;
3483c451a4ef4388e002482e383d488ca9b7b7600dJason Sams} ScriptTLSStruct;
3583c451a4ef4388e002482e383d488ca9b7b7600dJason Sams
3687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct RsdHalRec {
37bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t version_major;
38bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t version_minor;
399719bd4a0187c400ba868712612fe66da4635aacJason Sams    bool mHasGraphics;
404b3de47071d875faaa7d419d050a464b09538797Jason Sams
4183c451a4ef4388e002482e383d488ca9b7b7600dJason Sams    ScriptTLSStruct mTlsStruct;
42709a0978ae141198018ca9769f8d96292a8928e6Jason Sams    android::renderscript::RsdCpuReference *mCpuRef;
4383c451a4ef4388e002482e383d488ca9b7b7600dJason Sams
4459f6142d7657e43b4d21e077a28387431db02edfMiao Wang#if !defined(RS_VENDOR_LIB) && !defined(RS_COMPATIBILITY_LIB)
454b3de47071d875faaa7d419d050a464b09538797Jason Sams    RsdGL gl;
4693eacc7ce0aad4314b4cb41a281f59ce54bb3286Jason Sams#endif
4787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} RsdHal;
48bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
4934689388556747b52c3c2f1c894929fb44580898Tim Murrayvoid* rsdAllocRuntimeMem(size_t size, uint32_t flags);
5034689388556747b52c3c2f1c894929fb44580898Tim Murrayvoid rsdFreeRuntimeMem(void* ptr);
51bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
52bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
53