1// Copyright 2016 The SwiftShader Authors. All Rights Reserved. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15#ifndef sw_LLVMRoutine_hpp 16#define sw_LLVMRoutine_hpp 17 18#include "Routine.hpp" 19 20namespace sw 21{ 22 class LLVMRoutineManager; 23 24 class LLVMRoutine : public Routine 25 { 26 friend class LLVMRoutineManager; 27 28 public: 29 LLVMRoutine(int bufferSize); 30 //LLVMRoutine(void *memory, int bufferSize, int offset); 31 32 virtual ~LLVMRoutine(); 33 34 //void setFunctionSize(int functionSize); 35 36 //const void *getBuffer(); 37 const void *getEntry(); 38 //int getBufferSize(); 39 //int getFunctionSize(); // Includes constants before the entry point 40 int getCodeSize(); // Executable code only 41 //bool isDynamic(); 42 43 private: 44 void *buffer; 45 const void *entry; 46 int bufferSize; 47 int functionSize; 48 49 //const bool dynamic; // Generated or precompiled 50 }; 51} 52 53#endif // sw_LLVMRoutine_hpp 54