mirror of
https://github.com/wownero/RandomX.git
synced 2026-10-24 10:48:38 +02:00
Optional W^X policy for JIT pages (#112)
This commit is contained in:
+10
-5
@@ -37,7 +37,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
namespace randomx {
|
||||
|
||||
template<class Allocator, bool softAes>
|
||||
template<class Allocator, bool softAes, bool secureJit>
|
||||
class CompiledVm : public VmBase<Allocator, softAes> {
|
||||
public:
|
||||
void* operator new(size_t size) {
|
||||
@@ -49,6 +49,7 @@ namespace randomx {
|
||||
void operator delete(void* ptr) {
|
||||
AlignedAllocator<CacheLineSize>::freeMemory(ptr, sizeof(CompiledVm));
|
||||
}
|
||||
CompiledVm();
|
||||
void setDataset(randomx_dataset* dataset) override;
|
||||
void run(void* seed) override;
|
||||
|
||||
@@ -65,8 +66,12 @@ namespace randomx {
|
||||
JitCompiler compiler;
|
||||
};
|
||||
|
||||
using CompiledVmDefault = CompiledVm<AlignedAllocator<CacheLineSize>, true>;
|
||||
using CompiledVmHardAes = CompiledVm<AlignedAllocator<CacheLineSize>, false>;
|
||||
using CompiledVmLargePage = CompiledVm<LargePageAllocator, true>;
|
||||
using CompiledVmLargePageHardAes = CompiledVm<LargePageAllocator, false>;
|
||||
using CompiledVmDefault = CompiledVm<AlignedAllocator<CacheLineSize>, true, false>;
|
||||
using CompiledVmHardAes = CompiledVm<AlignedAllocator<CacheLineSize>, false, false>;
|
||||
using CompiledVmLargePage = CompiledVm<LargePageAllocator, true, false>;
|
||||
using CompiledVmLargePageHardAes = CompiledVm<LargePageAllocator, false, false>;
|
||||
using CompiledVmDefaultSecure = CompiledVm<AlignedAllocator<CacheLineSize>, true, true>;
|
||||
using CompiledVmHardAesSecure = CompiledVm<AlignedAllocator<CacheLineSize>, false, true>;
|
||||
using CompiledVmLargePageSecure = CompiledVm<LargePageAllocator, true, true>;
|
||||
using CompiledVmLargePageHardAesSecure = CompiledVm<LargePageAllocator, false, true>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user