summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpirofti <pirofti@openbsd.org>2014-07-09 18:31:34 +0000
committerpirofti <pirofti@openbsd.org>2014-07-09 18:31:34 +0000
commitcc12d4dd3d100f4d6c4da33b65b7df9927f5b01e (patch)
tree1091d0af977366067f08380dd8dad5f9bb899d31
parentMinor cleanups (diff)
downloadwireguard-openbsd-cc12d4dd3d100f4d6c4da33b65b7df9927f5b01e.tar.xz
wireguard-openbsd-cc12d4dd3d100f4d6c4da33b65b7df9927f5b01e.zip
Add ffs routine needed for upcoming octhci interrupt routine.
Okay miod@
-rw-r--r--sys/arch/octeon/include/octeonvar.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/arch/octeon/include/octeonvar.h b/sys/arch/octeon/include/octeonvar.h
index 06192de024e..7457466f6f6 100644
--- a/sys/arch/octeon/include/octeonvar.h
+++ b/sys/arch/octeon/include/octeonvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: octeonvar.h,v 1.17 2014/06/17 01:33:04 jmatthew Exp $ */
+/* $OpenBSD: octeonvar.h,v 1.18 2014/07/09 18:31:34 pirofti Exp $ */
/* $NetBSD: maltavar.h,v 1.3 2002/03/18 10:10:16 simonb Exp $ */
/*-
@@ -308,6 +308,19 @@ ffs64(uint64_t val)
return 64 - ret;
}
+static inline int
+ffs32(uint32_t val)
+{
+ int ret;
+
+ __asm __volatile ( \
+ _ASM_PROLOGUE_MIPS64
+ " clz %0, %1 \n"
+ _ASM_EPILOGUE
+ : "=r"(ret) : "r"(val));
+ return 32 - ret;
+}
+
static inline uint64_t
octeon_xkphys_read_8(paddr_t address)
{