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