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 20 namespace 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