diff options
author | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2017-06-12 17:14:12 -0400 |
---|---|---|
committer | Maoni Stephens <Maoni0@users.noreply.github.com> | 2017-06-12 14:14:12 -0700 |
commit | 0ee3b5e64a98dc71aefed2304fe4bcf7f66ca9f5 (patch) | |
tree | 8f099e2391d8990de1c7d0f4ca4c3fcae6839e4d /src/pal/src/exception/signal.cpp | |
parent | c655981474be1d3aa0165408e5c3914c5cfc35a1 (diff) | |
download | coreclr-0ee3b5e64a98dc71aefed2304fe4bcf7f66ca9f5.tar.gz coreclr-0ee3b5e64a98dc71aefed2304fe4bcf7f66ca9f5.tar.bz2 coreclr-0ee3b5e64a98dc71aefed2304fe4bcf7f66ca9f5.zip |
[Arm64/Unix] Add 64K page support (#10981)
* [Arm64/Unix] Support 64K pages
* GC move GCToOSInterface::Initialize() into InitializeGarbageCollector()
Diffstat (limited to 'src/pal/src/exception/signal.cpp')
-rw-r--r-- | src/pal/src/exception/signal.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/pal/src/exception/signal.cpp b/src/pal/src/exception/signal.cpp index 57ae62ea21..b82daca53d 100644 --- a/src/pal/src/exception/signal.cpp +++ b/src/pal/src/exception/signal.cpp @@ -152,13 +152,13 @@ BOOL EnsureSignalAlternateStack() // We include the size of the SignalHandlerWorkerReturnPoint in the alternate stack size since the // context contained in it is large and the SIGSTKSZ was not sufficient on ARM64 during testing. - int altStackSize = SIGSTKSZ + ALIGN_UP(sizeof(SignalHandlerWorkerReturnPoint), 16) + VIRTUAL_PAGE_SIZE; + int altStackSize = SIGSTKSZ + ALIGN_UP(sizeof(SignalHandlerWorkerReturnPoint), 16) + GetVirtualPageSize(); void* altStack; - int st = posix_memalign(&altStack, VIRTUAL_PAGE_SIZE, altStackSize); + int st = posix_memalign(&altStack, GetVirtualPageSize(), altStackSize); if (st == 0) { // create a guard page for the alternate stack - st = mprotect(altStack, VIRTUAL_PAGE_SIZE, PROT_NONE); + st = mprotect(altStack, GetVirtualPageSize(), PROT_NONE); if (st == 0) { stack_t ss; @@ -169,7 +169,7 @@ BOOL EnsureSignalAlternateStack() if (st != 0) { // Installation of the alternate stack failed, so revert the guard page protection - int st2 = mprotect(altStack, VIRTUAL_PAGE_SIZE, PROT_READ | PROT_WRITE); + int st2 = mprotect(altStack, GetVirtualPageSize(), PROT_READ | PROT_WRITE); _ASSERTE(st2 == 0); } } @@ -203,7 +203,7 @@ void FreeSignalAlternateStack() int st = sigaltstack(&ss, &oss); if ((st == 0) && (oss.ss_flags != SS_DISABLE)) { - int st = mprotect(oss.ss_sp, VIRTUAL_PAGE_SIZE, PROT_READ | PROT_WRITE); + int st = mprotect(oss.ss_sp, GetVirtualPageSize(), PROT_READ | PROT_WRITE); _ASSERTE(st == 0); free(oss.ss_sp); } @@ -436,7 +436,7 @@ static void sigsegv_handler(int code, siginfo_t *siginfo, void *context) // If the failure address is at most one page above or below the stack pointer, // we have a stack overflow. - if ((failureAddress - (sp - VIRTUAL_PAGE_SIZE)) < 2 * VIRTUAL_PAGE_SIZE) + if ((failureAddress - (sp - GetVirtualPageSize())) < 2 * GetVirtualPageSize()) { (void)write(STDERR_FILENO, StackOverflowMessage, sizeof(StackOverflowMessage) - 1); PROCAbort(); |