[Kernel/Thread] Changed default stack location
This commit is contained in:
parent
e8dde519cc
commit
e9f1a534df
|
@ -226,7 +226,7 @@ void XThread::InitializeGuestObject() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool XThread::AllocateStack(uint32_t size) {
|
bool XThread::AllocateStack(uint32_t size) {
|
||||||
auto heap = memory()->LookupHeap(0x40000000);
|
auto heap = memory()->LookupHeap(kStackAddressRangeBegin);
|
||||||
|
|
||||||
auto alignment = heap->page_size();
|
auto alignment = heap->page_size();
|
||||||
auto padding = heap->page_size() * 2; // Guard page size * 2
|
auto padding = heap->page_size() * 2; // Guard page size * 2
|
||||||
|
@ -234,10 +234,10 @@ bool XThread::AllocateStack(uint32_t size) {
|
||||||
auto actual_size = size + padding;
|
auto actual_size = size + padding;
|
||||||
|
|
||||||
uint32_t address = 0;
|
uint32_t address = 0;
|
||||||
if (!heap->AllocRange(0x40000000, 0x7F000000, actual_size, alignment,
|
if (!heap->AllocRange(
|
||||||
kMemoryAllocationReserve | kMemoryAllocationCommit,
|
kStackAddressRangeBegin, kStackAddressRangeEnd, actual_size,
|
||||||
kMemoryProtectRead | kMemoryProtectWrite, false,
|
alignment, kMemoryAllocationReserve | kMemoryAllocationCommit,
|
||||||
&address)) {
|
kMemoryProtectRead | kMemoryProtectWrite, false, &address)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,7 +258,7 @@ bool XThread::AllocateStack(uint32_t size) {
|
||||||
|
|
||||||
void XThread::FreeStack() {
|
void XThread::FreeStack() {
|
||||||
if (stack_alloc_base_) {
|
if (stack_alloc_base_) {
|
||||||
auto heap = memory()->LookupHeap(0x40000000);
|
auto heap = memory()->LookupHeap(kStackAddressRangeBegin);
|
||||||
heap->Release(stack_alloc_base_);
|
heap->Release(stack_alloc_base_);
|
||||||
|
|
||||||
stack_alloc_base_ = 0;
|
stack_alloc_base_ = 0;
|
||||||
|
|
|
@ -149,6 +149,9 @@ class XThread : public XObject, public cpu::Thread {
|
||||||
public:
|
public:
|
||||||
static const XObject::Type kObjectType = XObject::Type::Thread;
|
static const XObject::Type kObjectType = XObject::Type::Thread;
|
||||||
|
|
||||||
|
static constexpr uint32_t kStackAddressRangeBegin = 0x70000000;
|
||||||
|
static constexpr uint32_t kStackAddressRangeEnd = 0x7F000000;
|
||||||
|
|
||||||
struct CreationParams {
|
struct CreationParams {
|
||||||
uint32_t stack_size;
|
uint32_t stack_size;
|
||||||
uint32_t xapi_thread_startup;
|
uint32_t xapi_thread_startup;
|
||||||
|
|
Loading…
Reference in New Issue