Ignore:
Timestamp:
Jun 27, 2006, 10:46:18 AM (13 years ago)
Author:
gb
Message:

FreeBSD changes (at least enough to recognize UUOs, which generate
SIGBUS vice SIGSEGV.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/x86-exceptions.c

    r4763 r4837  
    576576
    577577  switch (signum) {
    578   case SIGSEGV:
    579     if (((info->si_code) &0x7f) == 0) {
    580       /* Something mapped to SIGSEGV that has nothing to do with
    581          a memory fault */
     578  case SIGNUM_FOR_INTN_TRAP:
     579    if (IS_MAYBE_INT_TRAP(info,context)) {
     580      /* Something mapped to SIGSEGV/SIGBUS that has nothing to do with
     581         a memory fault.  On x86, an "int n" instruction that's
     582         not otherwise implemented causes a "protecton fault".  Of
     583         course that has nothing to do with accessing protected
     584         memory; of course, most Unices act as if it did.*/
    582585      if (*program_counter == INTN_OPCODE) {
    583586        program_counter++;
     
    746749  exit_signal_handler(tcr, old_valence);
    747750  /* raise_pending_interrupt(tcr); */
     751  SIGRETURN(context);
    748752}
    749753
     
    875879    }
    876880  }
     881  SIGRETURN(context);
    877882}
    878883
Note: See TracChangeset for help on using the changeset viewer.