From e61405acd5cb3036d379732c6960f63c3bcf6225 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 2 Feb 2004 13:34:01 +0000 Subject: [PATCH] Implement RtlFindLeastSignificantBit() and RtlFindMostSignificantBit(). svn path=/trunk/; revision=7991 --- reactos/lib/ntdll/rtl/bitmap.c | 44 +++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/reactos/lib/ntdll/rtl/bitmap.c b/reactos/lib/ntdll/rtl/bitmap.c index 485a6ca17c9..3ece1b631a4 100644 --- a/reactos/lib/ntdll/rtl/bitmap.c +++ b/reactos/lib/ntdll/rtl/bitmap.c @@ -1,4 +1,4 @@ -/* $Id: bitmap.c,v 1.6 2004/02/01 20:48:06 ekohl Exp $ +/* $Id: bitmap.c,v 1.7 2004/02/02 13:34:01 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -743,4 +743,46 @@ RtlSetBits ( } } + +/* + * @implemented + */ +CCHAR STDCALL +RtlFindLeastSignificantBit (IN ULONGLONG Set) +{ + int i; + + if (Set == 0ULL) + return -1; + + for (i = 0; i < 64; i++) + { + if (Set & (1 << i)) + return (CCHAR)i; + } + + return -1; +} + + +/* + * @implemented + */ +CCHAR STDCALL +RtlFindMostSignificantBit (IN ULONGLONG Set) +{ + int i; + + if (Set == 0ULL) + return -1; + + for (i = 63; i >= 0; i--) + { + if (Set & (1 << i)) + return (CCHAR)i; + } + + return -1; +} + /* EOF */