Print this page
de-linting of .s files

*** 20,35 **** */ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. */ - #if defined(lint) - #include <sys/types.h> - #include <sys/thread.h> - #else /* lint */ #include "assym.h" - #endif /* lint */ #include <sys/cmn_err.h> #include <sys/ftrace.h> #include <sys/asm_linkage.h> #include <sys/machthread.h> --- 20,30 ----
*** 39,58 **** #ifdef TRAPTRACE #include <sys/traptrace.h> #endif /* TRAPTRACE */ - #if defined(lint) - /* ARGSUSED */ - void - pil_interrupt(int level) - {} - - #else /* lint */ - - /* * (TT 0x40..0x4F, TL>0) Interrupt Level N Handler (N == 1..15) * Register passed from LEVEL_INTERRUPT(level) * %g4 - interrupt request level */ --- 34,44 ----
*** 158,171 **** ba,pt %xcc, sys_trap or %g1, %lo(current_thread), %g1 SET_SIZE(pil_interrupt_common) SET_SIZE(pil_interrupt) - #endif /* lint */ - - #ifndef lint _spurious: .asciz "!interrupt 0x%x at level %d not serviced" /* * SERVE_INTR_PRE is called once, just before the first invocation --- 144,154 ----
*** 327,347 **** wrpr %g0, os4, %pstate #else /* TRAPTRACE */ #define SERVE_INTR_TRACE2(inum, os1, os2, os3, os4) #endif /* TRAPTRACE */ - #endif /* lint */ - - #if defined(lint) - - /*ARGSUSED*/ - void - intr_thread(struct regs *regs, uint64_t iv_p, uint_t pil) - {} - - #else /* lint */ - #define INTRCNT_LIMIT 16 /* * Handle an interrupt in a new thread. * Entry: --- 310,319 ----
*** 890,932 **** intr_thread_exit_actv_bit_set: .asciz "intr_thread_exit(): cpu_intr_actv bit erroneously set for PIL" intr_thread_t_intr_start_zero: .asciz "intr_thread(): t_intr_start zero upon handler return" #endif /* DEBUG */ - #endif /* lint */ - #if defined(lint) - - /* - * Handle an interrupt in the current thread - * Entry: - * %o0 = pointer to regs structure - * %o1 = pointer to current intr_vec_t (iv) to be processed - * %o2 = pil - * %sp = on current thread's kernel stack - * %o7 = return linkage to trap code - * %g7 = current thread - * %pstate = normal globals, interrupts enabled, - * privileged, fp disabled - * %pil = PIL_MAX - * - * Register Usage - * %l0 = return linkage - * %l1 = old stack - * %l2 - %l3 = scratch - * %l4 - %l7 = reserved for sys_trap - * %o3 = cpu - * %o0 = scratch - * %o4 - %o5 = scratch - */ - /* ARGSUSED */ - void - current_thread(struct regs *regs, uint64_t iv_p, uint_t pil) - {} - - #else /* lint */ - ENTRY_NP(current_thread) mov %o7, %l0 ldn [THREAD_REG + T_CPU], %o3 --- 862,872 ----
*** 1396,1406 **** current_thread_timestamp_zero: .asciz "current_thread(): timestamp zero upon handler return" current_thread_nested_PIL_not_found: .asciz "current_thread: couldn't find nested high-level PIL" #endif /* DEBUG */ - #endif /* lint */ /* * Return a thread's interrupt level. * Since this isn't saved anywhere but in %l4 on interrupt entry, we * must dig it out of the save area. --- 1336,1345 ----
*** 1410,1510 **** * int * intr_level(t) * kthread_id_t t; */ - #if defined(lint) - - /* ARGSUSED */ - int - intr_level(kthread_id_t t) - { return (0); } - - #else /* lint */ - ENTRY_NP(intr_level) retl ldub [%o0 + T_PIL], %o0 ! return saved pil SET_SIZE(intr_level) - #endif /* lint */ - - #if defined(lint) - - /* ARGSUSED */ - int - disable_pil_intr() - { return (0); } - - #else /* lint */ - ENTRY_NP(disable_pil_intr) rdpr %pil, %o0 retl wrpr %g0, PIL_MAX, %pil ! disable interrupts (1-15) SET_SIZE(disable_pil_intr) - #endif /* lint */ - - #if defined(lint) - - /* ARGSUSED */ - void - enable_pil_intr(int pil_save) - {} - - #else /* lint */ - ENTRY_NP(enable_pil_intr) retl wrpr %o0, %pil SET_SIZE(enable_pil_intr) - #endif /* lint */ - - #if defined(lint) - - /* ARGSUSED */ - uint_t - disable_vec_intr(void) - { return (0); } - - #else /* lint */ - ENTRY_NP(disable_vec_intr) rdpr %pstate, %o0 andn %o0, PSTATE_IE, %g1 retl wrpr %g0, %g1, %pstate ! disable interrupt SET_SIZE(disable_vec_intr) - #endif /* lint */ - - #if defined(lint) - - /* ARGSUSED */ - void - enable_vec_intr(uint_t pstate_save) - {} - - #else /* lint */ - ENTRY_NP(enable_vec_intr) retl wrpr %g0, %o0, %pstate SET_SIZE(enable_vec_intr) - #endif /* lint */ - - #if defined(lint) - - void - cbe_level14(void) - {} - - #else /* lint */ - ENTRY_NP(cbe_level14) save %sp, -SA(MINFRAME), %sp ! get a new window ! ! Make sure that this is from TICK_COMPARE; if not just return ! --- 1349,1386 ----
*** 1520,1541 **** 2: ret restore %g0, 1, %o0 SET_SIZE(cbe_level14) - #endif /* lint */ - - #if defined(lint) - - /* ARGSUSED */ - void - kdi_setsoftint(uint64_t iv_p) - {} - - #else /* lint */ - ENTRY_NP(kdi_setsoftint) save %sp, -SA(MINFRAME), %sp ! get a new window rdpr %pstate, %l5 andn %l5, PSTATE_IE, %l1 wrpr %l1, %pstate ! disable interrupt --- 1396,1406 ----
*** 1605,1625 **** wrpr %g0, %l5, %pstate ! %pstate = saved %pstate (in %l5) ret restore SET_SIZE(kdi_setsoftint) - #endif /* lint */ - - #if defined(lint) - - /*ARGSUSED*/ - void - setsoftint_tl1(uint64_t iv_p, uint64_t dummy) - {} - - #else /* lint */ - ! ! Register usage ! Arguments: ! %g1 - Pointer to intr_vec_t (iv) ! --- 1470,1479 ----
*** 1700,1720 **** sll %g5, %g2, %g5 ! %g5 = 1 << pil wr %g5, SET_SOFTINT ! trigger required pil softint retry SET_SIZE(setsoftint_tl1) - #endif /* lint */ - - #if defined(lint) - - /*ARGSUSED*/ - void - setvecint_tl1(uint64_t inum, uint64_t dummy) - {} - - #else /* lint */ - ! ! Register usage ! Arguments: ! %g1 - inumber ! --- 1554,1563 ----
*** 1843,1879 **** set no_ivintr, %g1 ba,pt %xcc, sys_trap mov PIL_15, %g4 SET_SIZE(setvecint_tl1) - #endif /* lint */ - - #if defined(lint) - - /*ARGSUSED*/ - void - wr_clr_softint(uint_t value) - {} - - #else - ENTRY_NP(wr_clr_softint) retl wr %o0, CLEAR_SOFTINT SET_SIZE(wr_clr_softint) - #endif /* lint */ - - #if defined(lint) - - /*ARGSUSED*/ - void - intr_enqueue_req(uint_t pil, uint64_t inum) - {} - - #else /* lint */ - /* * intr_enqueue_req * * %o0 - pil * %o1 - pointer to intr_vec_t (iv) --- 1686,1700 ----
*** 1919,1943 **** 3: retl nop SET_SIZE(intr_enqueue_req) - #endif /* lint */ - /* * Set CPU's base SPL level, based on which interrupt levels are active. * Called at spl7 or above. */ - #if defined(lint) - - void - set_base_spl(void) - {} - - #else /* lint */ - ENTRY_NP(set_base_spl) ldn [THREAD_REG + T_CPU], %o2 ! load CPU pointer ld [%o2 + CPU_INTR_ACTV], %o5 ! load active interrupts mask /* --- 1740,1754 ----
*** 1984,2011 **** _intr_flag_table: .byte 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4 .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 .align 4 - #endif /* lint */ - /* * int * intr_passivate(from, to) * kthread_id_t from; interrupt thread * kthread_id_t to; interrupted thread */ - #if defined(lint) - - /* ARGSUSED */ - int - intr_passivate(kthread_id_t from, kthread_id_t to) - { return (0); } - - #else /* lint */ - ENTRY_NP(intr_passivate) save %sp, -SA(MINFRAME), %sp ! get a new window flushw ! force register windows to stack ! --- 1795,1811 ----
*** 2058,2138 **** ldub [%i0 + T_PIL], %i0 ret restore SET_SIZE(intr_passivate) - #endif /* lint */ - - #if defined(lint) - - /* - * intr_get_time() is a resource for interrupt handlers to determine how - * much time has been spent handling the current interrupt. Such a function - * is needed because higher level interrupts can arrive during the - * processing of an interrupt, thus making direct comparisons of %tick by - * the handler inaccurate. intr_get_time() only returns time spent in the - * current interrupt handler. - * - * The caller must be calling from an interrupt handler running at a pil - * below or at lock level. Timings are not provided for high-level - * interrupts. - * - * The first time intr_get_time() is called while handling an interrupt, - * it returns the time since the interrupt handler was invoked. Subsequent - * calls will return the time since the prior call to intr_get_time(). Time - * is returned as ticks, adjusted for any clock divisor due to power - * management. Use tick2ns() to convert ticks to nsec. Warning: ticks may - * not be the same across CPUs. - * - * Theory Of Intrstat[][]: - * - * uint64_t intrstat[pil][0..1] is an array indexed by pil level, with two - * uint64_ts per pil. - * - * intrstat[pil][0] is a cumulative count of the number of ticks spent - * handling all interrupts at the specified pil on this CPU. It is - * exported via kstats to the user. - * - * intrstat[pil][1] is always a count of ticks less than or equal to the - * value in [0]. The difference between [1] and [0] is the value returned - * by a call to intr_get_time(). At the start of interrupt processing, - * [0] and [1] will be equal (or nearly so). As the interrupt consumes - * time, [0] will increase, but [1] will remain the same. A call to - * intr_get_time() will return the difference, then update [1] to be the - * same as [0]. Future calls will return the time since the last call. - * Finally, when the interrupt completes, [1] is updated to the same as [0]. - * - * Implementation: - * - * intr_get_time() works much like a higher level interrupt arriving. It - * "checkpoints" the timing information by incrementing intrstat[pil][0] - * to include elapsed running time, and by setting t_intr_start to %tick. - * It then sets the return value to intrstat[pil][0] - intrstat[pil][1], - * and updates intrstat[pil][1] to be the same as the new value of - * intrstat[pil][0]. - * - * In the normal handling of interrupts, after an interrupt handler returns - * and the code in intr_thread() updates intrstat[pil][0], it then sets - * intrstat[pil][1] to the new value of intrstat[pil][0]. When [0] == [1], - * the timings are reset, i.e. intr_get_time() will return [0] - [1] which - * is 0. - * - * Whenever interrupts arrive on a CPU which is handling a lower pil - * interrupt, they update the lower pil's [0] to show time spent in the - * handler that they've interrupted. This results in a growing discrepancy - * between [0] and [1], which is returned the next time intr_get_time() is - * called. Time spent in the higher-pil interrupt will not be returned in - * the next intr_get_time() call from the original interrupt, because - * the higher-pil interrupt's time is accumulated in intrstat[higherpil][]. - */ - - /*ARGSUSED*/ - uint64_t - intr_get_time(void) - { return 0; } - #else /* lint */ - ENTRY_NP(intr_get_time) #ifdef DEBUG ! ! Lots of asserts, but just check panic_quiesce first. ! Don't bother with lots of tests if we're just ignoring them. --- 1858,1867 ----
*** 2237,2242 **** intr_get_time_not_intr: .asciz "intr_get_time(): not called from an interrupt thread" intr_get_time_no_start_time: .asciz "intr_get_time(): t_intr_start == 0" #endif /* DEBUG */ - #endif /* lint */ --- 1966,1970 ----