Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/alpha Add alpha_pal_wtint(), which invokes the WTIN...



details:   https://anonhg.NetBSD.org/src/rev/e9b981c79baa
branches:  trunk
changeset: 939744:e9b981c79baa
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Tue Sep 29 01:17:22 2020 +0000

description:
Add alpha_pal_wtint(), which invokes the WTINT PALcode call.

diffstat:

 sys/arch/alpha/alpha/pal.s         |  27 +++++++++++++++++++++++++--
 sys/arch/alpha/include/alpha_cpu.h |   3 ++-
 2 files changed, 27 insertions(+), 3 deletions(-)

diffs (62 lines):

diff -r 1507a4e63308 -r e9b981c79baa sys/arch/alpha/alpha/pal.s
--- a/sys/arch/alpha/alpha/pal.s        Tue Sep 29 00:13:12 2020 +0000
+++ b/sys/arch/alpha/alpha/pal.s        Tue Sep 29 01:17:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pal.s,v 1.15 2002/05/13 21:38:30 thorpej Exp $ */
+/* $NetBSD: pal.s,v 1.16 2020/09/29 01:17:22 thorpej Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -39,7 +39,7 @@
  * and Richard T. Witek.
  */
 
-__KERNEL_RCSID(1, "$NetBSD: pal.s,v 1.15 2002/05/13 21:38:30 thorpej Exp $");
+__KERNEL_RCSID(1, "$NetBSD: pal.s,v 1.16 2020/09/29 01:17:22 thorpej Exp $");
 
 inc2:  .stabs  __FILE__,132,0,0,inc2; .loc     1 __LINE__
 /*
@@ -155,3 +155,26 @@
        call_pal PAL_OSF1_wrvptptr
        RET
        END(alpha_pal_wrvptptr)
+
+/*
+ * alpha_pal_wtint: Wait for interrupt. [PRIVILEGED]
+ *
+ * Arguments:
+ *     a0      maximum number of clock interrupts to skip
+ *
+ * Return value:
+ *     v0      actual number of clock interrupts skipped
+ *
+ * WTINT waits, in a low power mode, for either any device interrupt or
+ * for the next clock interrupt (a0 == 0) or up to the specified number
+ * of clock interrupts to pass.  Note that the PCC may slow or stop
+ * while waiting.
+ *
+ * Not all PALcode versions support WTINT.  If it is not supported,
+ * an OPDEC fault will occur.
+ */
+       .text
+LEAF_NOPROFILE(alpha_pal_wtint,1)
+       call_pal PAL_wtint
+       RET
+       END(alpha_pal_wtint)
diff -r 1507a4e63308 -r e9b981c79baa sys/arch/alpha/include/alpha_cpu.h
--- a/sys/arch/alpha/include/alpha_cpu.h        Tue Sep 29 00:13:12 2020 +0000
+++ b/sys/arch/alpha/include/alpha_cpu.h        Tue Sep 29 01:17:22 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: alpha_cpu.h,v 1.51 2020/09/05 16:29:08 thorpej Exp $ */
+/* $NetBSD: alpha_cpu.h,v 1.52 2020/09/29 01:17:22 thorpej Exp $ */
 
 /*
  * Copyright (c) 1996 Carnegie-Mellon University.
@@ -378,6 +378,7 @@
 unsigned long  _alpha_pal_swpipl(unsigned long);       /* for profiling */
 void           alpha_pal_wrent(void *, unsigned long);
 void           alpha_pal_wrvptptr(unsigned long);
+unsigned long  alpha_pal_wtint(unsigned long);
 
 #define        alpha_pal_draina() __asm volatile("call_pal %0 # PAL_draina"    \
                                : : "i" (PAL_draina) : "memory")



Home | Main Index | Thread Index | Old Index