RiscvProcess::RiscvProcess(ProcessParams * params,
ObjectFile *objFile) : Process(params, objFile)
{
- const Addr mem_base = 0x80000000;
- const Addr stack_base = mem_base;
+ const Addr stack_base = 0x7FFFFFFFFFFFFFFFL;
const Addr max_stack_size = PageBytes * 64;
const Addr next_thread_stack_base = stack_base - max_stack_size;
const Addr brk_point = roundUp(objFile->bssBase() + objFile->bssSize(),
PageBytes);
- const Addr mmap_end = mem_base;
+ const Addr mmap_end = 0x4000000000000000L;
memState = make_shared<MemState>(brk_point, stack_base, max_stack_size,
next_thread_stack_base, mmap_end);
}
/*
* Copyright (c) 2006 The Regents of The University of Michigan
+ * Copyright (c) 2017 The University of Virginia
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
*
* Authors: Gabe Black
* Ali Saidi
+ * Alec Roelke
*/
#ifndef __RISCV_PROCESS_HH__
using Process::getSyscallArg;
void setSyscallArg(ThreadContext *tc, int i, RiscvISA::IntReg val);
void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value);
+
+ virtual bool mmapGrowsDown() const override { return false; }
};
/* No architectural page table defined for this ISA */