Home | History | Annotate | Download | only in Reactor
      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