Index: kernel/arch/sparc64/include/mm/sun4u/km.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4u/km.h	(revision 0e783940f8c24e4197821e3691f722c9d01c5cc3)
+++ kernel/arch/sparc64/include/mm/sun4u/km.h	(revision c868e2d76f25a71fcfed3d81a934a16b64b0ce81)
@@ -36,4 +36,6 @@
 #define KERN_sparc64_sun4u_KM_H_
 
+#include <typedefs.h>
+
 /*
  * Be conservative and assume the 44-bit virtual address width as found
@@ -53,4 +55,5 @@
 extern void km_identity_arch_init(void);
 extern void km_non_identity_arch_init(void);
+extern bool km_is_non_identity_arch(uintptr_t);
 
 #endif
Index: kernel/arch/sparc64/include/mm/sun4v/km.h
===================================================================
--- kernel/arch/sparc64/include/mm/sun4v/km.h	(revision 0e783940f8c24e4197821e3691f722c9d01c5cc3)
+++ kernel/arch/sparc64/include/mm/sun4v/km.h	(revision c868e2d76f25a71fcfed3d81a934a16b64b0ce81)
@@ -36,4 +36,6 @@
 #define KERN_sparc64_sun4v_KM_H_
 
+#include <typedefs.h>
+
 /*
  * Do not use the 4 GiB area on either side of the VA hole to meet the
@@ -49,4 +51,5 @@
 extern void km_identity_arch_init(void);
 extern void km_non_identity_arch_init(void);
+extern bool km_is_non_identity_arch(uintptr_t);
 
 #endif
Index: kernel/arch/sparc64/src/mm/sun4u/km.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4u/km.c	(revision 0e783940f8c24e4197821e3691f722c9d01c5cc3)
+++ kernel/arch/sparc64/src/mm/sun4u/km.c	(revision c868e2d76f25a71fcfed3d81a934a16b64b0ce81)
@@ -34,4 +34,6 @@
 #include <mm/km.h>
 #include <config.h>
+#include <typedefs.h>
+#include <macros.h>
 
 void km_identity_arch_init(void)
@@ -47,4 +49,10 @@
 }
 
+bool km_is_non_identity_arch(uintptr_t addr)
+{
+	return iswithin(KM_SPARC64_US_NON_IDENTITY_START,
+	    KM_SPARC64_US_NON_IDENTITY_SIZE, addr, 1);
+}
+
 /** @}
  */
Index: kernel/arch/sparc64/src/mm/sun4v/km.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4v/km.c	(revision 0e783940f8c24e4197821e3691f722c9d01c5cc3)
+++ kernel/arch/sparc64/src/mm/sun4v/km.c	(revision c868e2d76f25a71fcfed3d81a934a16b64b0ce81)
@@ -34,4 +34,6 @@
 #include <mm/km.h>
 #include <config.h>
+#include <typedefs.h>
+#include <macros.h>
 
 void km_identity_arch_init(void)
@@ -47,4 +49,10 @@
 }
 
+bool km_is_non_identity_arch(uintptr_t addr)
+{
+	return iswithin(KM_SPARC64_T1_NON_IDENTITY_START,
+	    KM_SPARC64_T1_NON_IDENTITY_SIZE, addr, 1);
+}
+
 /** @}
  */
