summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/asm/bitmap.h
diff options
context:
space:
mode:
authorRichard Lowe <richlowe@richlowe.net>2011-05-15 21:34:10 +0100
committerRichard Lowe <richlowe@richlowe.net>2011-05-15 21:34:10 +0100
commit6b7143d774683daf27dfb2e93ab48d1ade1a3477 (patch)
treefd02f5632a9d915059daa631435065339fb064db /usr/src/uts/intel/asm/bitmap.h
parent9b7d742f0ee8ff89c05a8b5275d11359920ec60f (diff)
downloadillumos-gate-6b7143d774683daf27dfb2e93ab48d1ade1a3477.tar.gz
2251 kernel inlines should support gcc 4
Reviewed by: Andrew Stormont <Andrew.Stormont@nexenta.com> Reviewed by: Milan Jurik <milan.jurik@xylab.cz> Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Reviewed by: Gordon Ross <gwr@nexenta.com> Approved by: Garrett D'Amore <garrett@damore.org>
Diffstat (limited to 'usr/src/uts/intel/asm/bitmap.h')
-rw-r--r--usr/src/uts/intel/asm/bitmap.h65
1 files changed, 32 insertions, 33 deletions
diff --git a/usr/src/uts/intel/asm/bitmap.h b/usr/src/uts/intel/asm/bitmap.h
index 650fb555e6..c72f52a8e7 100644
--- a/usr/src/uts/intel/asm/bitmap.h
+++ b/usr/src/uts/intel/asm/bitmap.h
@@ -27,8 +27,7 @@
#ifndef _ASM_BITMAP_H
#define _ASM_BITMAP_H
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+#include <sys/ccompile.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -37,73 +36,73 @@ extern "C" {
#if !defined(__lint) && defined(__GNUC__)
-extern __inline__ int
+extern __GNU_INLINE int
highbit(ulong_t i)
{
long __value = -1l;
#if defined(__amd64)
__asm__(
- "bsrq %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsrq %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#elif defined(__i386)
__asm__(
- "bsrl %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsrl %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#else
#error "port me"
#endif
return ((int)(__value + 1));
}
-extern __inline__ int
+extern __GNU_INLINE int
lowbit(ulong_t i)
{
long __value = -1l;
#if defined(__amd64)
__asm__(
- "bsfq %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsfq %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#elif defined(__i386)
__asm__(
- "bsfl %1,%0"
- : "+r" (__value)
- : "r" (i)
- : "cc");
+ "bsfl %1,%0"
+ : "+r" (__value)
+ : "r" (i)
+ : "cc");
#else
#error "port me"
#endif
return ((int)(__value + 1));
}
-extern __inline__ uint_t
+extern __GNU_INLINE uint_t
atomic_btr32(uint32_t *memory, uint_t bitnum)
{
uint8_t __value;
#if defined(__amd64)
__asm__ __volatile__(
- "lock;"
- "btrl %2, (%0);"
- "setc %1"
- : "+r" (memory), "+r" (__value)
- : "ir" (bitnum)
- : "cc");
+ "lock;"
+ "btrl %2, (%0);"
+ "setc %1"
+ : "+r" (memory), "+r" (__value)
+ : "ir" (bitnum)
+ : "cc");
#elif defined(__i386)
__asm__ __volatile__(
- "lock;"
- "btrl %2, (%0);"
- "setc %1"
- : "+r" (memory), "=r" (__value)
- : "ir" (bitnum)
- : "cc");
+ "lock;"
+ "btrl %2, (%0);"
+ "setc %1"
+ : "+r" (memory), "=r" (__value)
+ : "ir" (bitnum)
+ : "cc");
#else
#error "port me"
#endif