Print this page
de-linting of .s files
m
*** 34,72 ****
#include <sys/asm_misc.h>
#include <sys/regset.h>
#include <sys/psw.h>
#include <sys/x86_archext.h>
- #if defined(__lint)
-
- #include <sys/types.h>
- #include <sys/thread.h>
- #include <sys/systm.h>
-
- #else /* __lint */
-
#include <sys/segments.h>
#include <sys/pcb.h>
#include <sys/trap.h>
#include <sys/ftrace.h>
#include <sys/traptrace.h>
#include <sys/clock.h>
#include <sys/panic.h>
#include "assym.h"
- #endif /* lint */
-
- #if defined(__lint)
-
- void
- _interrupt(void)
- {}
-
- #else /* __lint */
-
- #if defined(__amd64)
-
/*
* Common register usage:
*
* %r12 trap trace pointer
*/
--- 34,52 ----
*** 107,148 ****
/*NOTREACHED*/
SET_SIZE(cmnint)
SET_SIZE(_interrupt)
- #elif defined(__i386)
-
- ENTRY_NP2(cmnint, _interrupt)
-
- INTR_PUSH
- INTGATE_INIT_KERNEL_FLAGS
-
- /*
- * At the end of TRACE_PTR %esi points to the current TRAPTRACE entry
- */
- TRACE_PTR(%esi, %eax, %eax, %edx, $TT_INTERRUPT)
- /* Uses labels 8 and 9 */
- TRACE_REGS(%esi, %esp, %eax, %ebx) /* Uses label 9 */
- TRACE_STAMP(%esi) /* Clobbers %eax, %edx, uses 9 */
-
- movl %esp, %ebp
-
- TRACE_STACK(%esi)
-
- pushl %esi /* pass traptrace record pointer */
- pushl %ebp /* pass struct regs pointer */
- call *do_interrupt_common /* interrupt service routine */
- addl $8, %esp /* pop args off of stack */
-
- jmp _sys_rtt_ints_disabled
- /*NOTREACHED*/
-
- SET_SIZE(cmnint)
- SET_SIZE(_interrupt)
-
- #endif /* __i386 */
-
/*
* Declare a uintptr_t which has the size of _interrupt to enable stack
* traceback code to know when a regs structure is on the stack.
*/
.globl _interrupt_size
--- 87,96 ----
*** 149,185 ****
.align CLONGSIZE
_interrupt_size:
.NWORD . - _interrupt
.type _interrupt_size, @object
- #endif /* __lint */
-
- #if defined(__lint)
-
- void
- fakesoftint(void)
- {}
-
- #else /* __lint */
-
- /
- / If we're here, we're being called from splx() to fake a soft
- / interrupt (note that interrupts are still disabled from splx()).
- / We execute this code when a soft interrupt is posted at
- / level higher than the CPU's current spl; when spl is lowered in
- / splx(), it will see the softint and jump here. We'll do exactly
- / what a trap would do: push our flags, %cs, %eip, error code
- / and trap number (T_SOFTINT). The cmnint() code will see T_SOFTINT
- / and branch to the dosoftint() code.
- /
- #if defined(__amd64)
-
/*
! * In 64-bit mode, iretq -always- pops all five regs
! * Imitate the 16-byte auto-align of the stack, and the
! * zero-ed out %ss value.
*/
ENTRY_NP(fakesoftint)
movq %rsp, %r11
andq $-16, %rsp
pushq $KDS_SEL /* %ss */
pushq %r11 /* %rsp */
--- 97,120 ----
.align CLONGSIZE
_interrupt_size:
.NWORD . - _interrupt
.type _interrupt_size, @object
/*
! * If we're here, we're being called from splx() to fake a soft
! * interrupt (note that interrupts are still disabled from
! * splx()). We execute this code when a soft interrupt is
! * posted at level higher than the CPU's current spl; when spl
! * is lowered in splx(), it will see the softint and jump here.
! * We'll do exactly what a trap would do: push our flags, %cs,
! * %rip, error code and trap number (T_SOFTINT). The cmnint()
! * code will see T_SOFTINT and branch to the dosoftint() code.
! *
! * iretq -always- pops all five regs. Imitate the 16-byte
! * auto-align of the stack, and the zero-ed out %ss value.
*/
+
ENTRY_NP(fakesoftint)
movq %rsp, %r11
andq $-16, %rsp
pushq $KDS_SEL /* %ss */
pushq %r11 /* %rsp */
*** 198,223 ****
ALTENTRY(fakesoftint_return)
ret
SET_SIZE(fakesoftint_return)
SET_SIZE(fakesoftint)
- #elif defined(__i386)
-
- ENTRY_NP(fakesoftint)
- pushfl
- #if defined(__xpv)
- popl %eax
- EVENT_MASK_TO_IE(%edx, %eax)
- pushl %eax
- #endif
- pushl %cs
- pushl $fakesoftint_return
- pushl $0
- pushl $T_SOFTINT
- jmp cmnint
- ALTENTRY(fakesoftint_return)
- ret
- SET_SIZE(fakesoftint_return)
- SET_SIZE(fakesoftint)
-
- #endif /* __i386 */
- #endif /* __lint */
--- 133,137 ----