]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Changes in shared code that don't affect open-vm-tools functionality.
authorVMware, Inc <>
Wed, 20 Jan 2010 21:31:08 +0000 (13:31 -0800)
committerMarcelo Vanzin <mvanzin@vmware.com>
Wed, 20 Jan 2010 21:31:08 +0000 (13:31 -0800)
Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
open-vm-tools/lib/include/loglevel_user.h
open-vm-tools/lib/include/vm_basic_asm.h

index c5d93f1cf8abdbc526e3ef7bb99c63f29eeb2001..d8c791e0dafdca564f21cec3ce731fda1f69469d 100644 (file)
    LOGLEVEL_VAR(largepage), \
    LOGLEVEL_VAR(guestAppMonitor), \
    LOGLEVEL_VAR(syncWaitQ), \
+   LOGLEVEL_VAR(sg), /* lib/sg */ \
 
 LOGLEVEL_EXTENSION_DECLARE(LOGLEVEL_USER);
 
index c8c026ea089ea2514ca26467b6d46c55e049b0ab..9e19843440716d35d88917586d352bcf415079e0 100644 (file)
@@ -110,8 +110,9 @@ void             __stosd(unsigned long*, unsigned long, size_t);
  * compilers (13.01.2035 for _BitScanForward).
  */
 unsigned char  _BitScanForward(unsigned long*, unsigned long);
+unsigned char  _BitScanReverse(unsigned long*, unsigned long);
 void           _mm_pause(void);
-#pragma intrinsic(_BitScanForward, _mm_pause)
+#pragma intrinsic(_BitScanForward, _BitScanReverse, _mm_pause)
 #endif /* VM_X86_64 */
 
 #ifdef __cplusplus
@@ -247,7 +248,23 @@ ffs(uint32 bitVector)
 #endif
    return idx+1;
 }
-#endif // _MSC_VER
+
+static INLINE int
+fls(uint32 bitVector)
+{
+   int idx;
+   if (!bitVector) {
+      return 0;
+   }
+#ifdef VM_X86_64
+   _BitScanReverse((unsigned long*)&idx, (unsigned long)bitVector);
+#else
+   __asm bsr eax, bitVector
+   __asm mov idx, eax
+#endif
+   return idx+1;
+}
+#endif
 
 #ifdef __GNUC__
 #if defined(__i386__) || defined(__x86_64__)