backup_thread_state = thread_state;
open_stack_allocation(&thread_state);
+ /* Reserve a 256 byte zone for signal handlers
+ * to use on the interrupted thread stack.
+ */
+ stack_allocate(&thread_state, 256);
/* Save thread state */
target_thread_state =
addr < undefined_alien_address + os_vm_page_size) {
backup_thread_state = thread_state;
open_stack_allocation(&thread_state);
+ stack_allocate(&thread_state, 256);
/* Save thread state */
target_thread_state =
backup_thread_state = thread_state;
open_stack_allocation(&thread_state);
+ stack_allocate(&thread_state, 256);
/* Save thread state */
target_thread_state =
backup_thread_state = thread_state;
open_stack_allocation(&thread_state);
+ stack_allocate(&thread_state, 256);
/* Save thread state */
target_thread_state =
/* Initialize the new state */
new_state = *thread_state;
open_stack_allocation(&new_state);
+ stack_allocate(&new_state, 256);
/* Save old state */
save_thread_state = (x86_thread_state32_t *)stack_allocate(&new_state, sizeof(*save_thread_state));
*save_thread_state = *thread_state;
protect_control_stack_return_guard_page_thread(0, th);
break;
}
- /* Get vm_region info */
- region_addr = (vm_address_t)code_vector[1];
- info_count = VM_REGION_BASIC_INFO_COUNT;
- if ((ret = vm_region(mach_task_self(),
- ®ion_addr,
- ®ion_size,
- VM_REGION_BASIC_INFO,
- (vm_region_info_t)®ion_info,
- &info_count,
- ®ion_name)))
- lose("vm_region (VM_REGION_BASIC_INFO) failed failed %d\n", ret);
- /* Check if still protected */
- if ((region_info.protection & OS_VM_PROT_ALL) == 0) {
- /* KLUDGE:
- * If two threads fault on the same page, the protection
- * is cleared as the first thread runs memory_fault_handler.
- * Grep for "not marked as write-protected" in gencgc.c
- */
- ret = KERN_SUCCESS;
- break;
- }
/* Regular memory fault */
handler = memory_fault_handler;
break;
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.19.32"
+"1.0.19.33"