xref: /linux/arch/alpha/lib/fls.c (revision e21f9e2e862e9eb3dd64eaddb6256b3e5098660f)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * arch/alpha/lib/fls.c
4  */
5 
6 #include <linux/module.h>
7 #include <linux/bitops.h>
8 
9 /* This is fls(x)-1, except zero is held to zero.  This allows most
10    efficient input into extbl, plus it allows easy handling of fls(0)=0.  */
11 
12 const unsigned char __flsm1_tab[256] =
13 {
14   0,
15   0,
16   1, 1,
17   2, 2, 2, 2,
18   3, 3, 3, 3, 3, 3, 3, 3,
19   4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
20 
21   5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
22   5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
23 
24   6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
25   6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
26   6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
27   6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
28 
29   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
30   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
31   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
32   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
33   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
34   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
35   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
36   7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
37 };
38 
39 EXPORT_SYMBOL(__flsm1_tab);
40