Print this page
Bring back LX zones.

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/i86pc/ml/syscall_asm.s
          +++ new/usr/src/uts/i86pc/ml/syscall_asm.s
↓ open down ↓ 623 lines elided ↑ open up ↑
 624  624          SYSCALL_POP
 625  625  
 626  626          popl    %edx                    / sysexit: %edx -> %eip
 627  627          addl    $4, %esp                / get CS off the stack
 628  628          popfl                           / EFL
 629  629          popl    %ecx                    / sysexit: %ecx -> %esp
 630  630          sti
 631  631          sysexit
 632  632          SET_SIZE(sys_sysenter)
 633  633          SET_SIZE(brand_sys_sysenter)
      634 +#endif  /* __lint */
      635 +
      636 +#if defined(__lint)
      637 +/*
      638 + * System call via an int80.  This entry point is only used by the Linux
      639 + * application environment.  Unlike the sysenter path, there is no default
      640 + * action to take if no callback is registered for this process.
      641 + */
      642 +void
      643 +sys_int80()
      644 +{}
      645 +
      646 +#else   /* __lint */
      647 +
      648 +        ENTRY_NP(brand_sys_int80)
      649 +        BRAND_CALLBACK(BRAND_CB_INT80)
      650 +
      651 +        ALTENTRY(sys_int80)
      652 +        /*
      653 +         * We hit an int80, but this process isn't of a brand with an int80
      654 +         * handler.  Bad process!  Make it look as if the INT failed.
      655 +         * Modify %eip to point before the INT, push the expected error
      656 +         * code and fake a GP fault.
      657 +         * 
      658 +         */
      659 +        subl    $2, (%esp)      /* int insn 2-bytes */
      660 +        pushl   $_CONST(_MUL(T_INT80, GATE_DESC_SIZE) + 2)
      661 +        jmp     gptrap                  / GP fault
      662 +        SET_SIZE(sys_int80)
      663 +        SET_SIZE(brand_sys_int80)
 634  664  
 635  665  /*
 636  666   * Declare a uintptr_t which covers the entire pc range of syscall
 637  667   * handlers for the stack walkers that need this.
 638  668   */
 639  669          .align  CPTRSIZE
 640  670          .globl  _allsyscalls_size
 641  671          .type   _allsyscalls_size, @object
 642  672  _allsyscalls_size:
 643  673          .NWORD  . - _allsyscalls
↓ open down ↓ 70 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX