• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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