diff options
Diffstat (limited to 'src/lib/libc/string/ffs.c')
| -rw-r--r-- | src/lib/libc/string/ffs.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/src/lib/libc/string/ffs.c b/src/lib/libc/string/ffs.c index de4c205cd0..887ce437d4 100644 --- a/src/lib/libc/string/ffs.c +++ b/src/lib/libc/string/ffs.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ffs.c,v 1.4 2000/07/02 01:00:01 mickey Exp $ */ | 1 | /* $OpenBSD: ffs.c,v 1.5 2000/07/02 03:10:38 mickey Exp $ */ | 
| 2 | 2 | ||
| 3 | /* | 3 | /* | 
| 4 | * Public domain. | 4 | * Public domain. | 
| @@ -6,7 +6,7 @@ | |||
| 6 | */ | 6 | */ | 
| 7 | 7 | ||
| 8 | #if defined(LIBC_SCCS) && !defined(lint) | 8 | #if defined(LIBC_SCCS) && !defined(lint) | 
| 9 | static char *rcsid = "$OpenBSD: ffs.c,v 1.4 2000/07/02 01:00:01 mickey Exp $"; | 9 | static char *rcsid = "$OpenBSD: ffs.c,v 1.5 2000/07/02 03:10:38 mickey Exp $"; | 
| 10 | #endif /* LIBC_SCCS and not lint */ | 10 | #endif /* LIBC_SCCS and not lint */ | 
| 11 | 11 | ||
| 12 | #if !defined(_KERNEL) && !defined(_STANDALONE) | 12 | #if !defined(_KERNEL) && !defined(_STANDALONE) | 
| @@ -28,18 +28,19 @@ ffs(mask) | |||
| 28 | -28, 1, 2, 1, | 28 | -28, 1, 2, 1, | 
| 29 | 3, 1, 2, 1, | 29 | 3, 1, 2, 1, | 
| 30 | 4, 1, 2, 1, | 30 | 4, 1, 2, 1, | 
| 31 | 3, 1, 2, 1 }; | 31 | 3, 1, 2, 1 | 
| 32 | }; | ||
| 32 | 33 | ||
| 33 | bit = 0; | 34 | bit = 0; | 
| 34 | if (0 == (r & 0xffff)) { | 35 | if (!(r & 0xffff)) { | 
| 35 | bit += 16; | 36 | bit += 16; | 
| 36 | r >>= 16; | 37 | r >>= 16; | 
| 37 | } | 38 | } | 
| 38 | if (0 == (r & 0xff)) { | 39 | if (!(r & 0xff)) { | 
| 39 | bit += 8; | 40 | bit += 8; | 
| 40 | r >>= 8; | 41 | r >>= 8; | 
| 41 | } | 42 | } | 
| 42 | if (0 == (r & 0xf)) { | 43 | if (!(r & 0xf)) { | 
| 43 | bit += 4; | 44 | bit += 4; | 
| 44 | r >>= 4; | 45 | r >>= 4; | 
| 45 | } | 46 | } | 
