Changeset 5437
- Timestamp:
- Oct 31, 2006, 2:21:42 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/ppc-exceptions.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/ppc-exceptions.c
r5366 r5437 846 846 847 847 OSStatus 848 handle_protection_violation(ExceptionInformation *xp, siginfo_t *info )848 handle_protection_violation(ExceptionInformation *xp, siginfo_t *info, TCR *tcr) 849 849 { 850 850 BytePtr addr; 851 851 protected_area_ptr area; 852 852 protection_handler *handler; 853 TCR *tcr = TCR_FROM_TSD(xpGPR(xp, rcontext));854 853 extern Boolean touch_page(void *); 855 854 extern void touch_page_end(void); 855 856 if (info) { 857 addr = (BytePtr)(info->si_addr); 858 } else { 859 addr = (BytePtr) ((natural) (xpDAR(xp))); 860 } 856 861 857 862 if (addr && (addr == tcr->safe_ref_address)) { … … 871 876 } 872 877 873 if (info) {874 addr = (BytePtr)(info->si_addr);875 } else {876 addr = (BytePtr) ((natural) (xpDAR(xp)));877 }878 878 area = find_protected_area(addr); 879 879 … … 1175 1175 } else if ((xnum == SIGSEGV) || 1176 1176 (xnum == SIGBUS)) { 1177 status = handle_protection_violation(xp, info );1177 status = handle_protection_violation(xp, info, tcr); 1178 1178 } else if (xnum == SIGFPE) { 1179 1179 status = handle_sigfpe(xp, tcr);
Note:
See TracChangeset
for help on using the changeset viewer.
