1*09c434b8SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 2556d2f05SYalin Wang #ifndef CONFIG_HAVE_ARCH_BITREVERSE 3a5cfc1ecSAkinobu Mita #include <linux/types.h> 4a5cfc1ecSAkinobu Mita #include <linux/module.h> 5a5cfc1ecSAkinobu Mita #include <linux/bitrev.h> 6a5cfc1ecSAkinobu Mita 70258736aSCal Peake MODULE_AUTHOR("Akinobu Mita <akinobu.mita@gmail.com>"); 80258736aSCal Peake MODULE_DESCRIPTION("Bit ordering reversal functions"); 90258736aSCal Peake MODULE_LICENSE("GPL"); 100258736aSCal Peake 11a5cfc1ecSAkinobu Mita const u8 byte_rev_table[256] = { 12a5cfc1ecSAkinobu Mita 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 13a5cfc1ecSAkinobu Mita 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, 14a5cfc1ecSAkinobu Mita 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 15a5cfc1ecSAkinobu Mita 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, 16a5cfc1ecSAkinobu Mita 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 17a5cfc1ecSAkinobu Mita 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, 18a5cfc1ecSAkinobu Mita 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 19a5cfc1ecSAkinobu Mita 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, 20a5cfc1ecSAkinobu Mita 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 21a5cfc1ecSAkinobu Mita 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, 22a5cfc1ecSAkinobu Mita 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 23a5cfc1ecSAkinobu Mita 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, 24a5cfc1ecSAkinobu Mita 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 25a5cfc1ecSAkinobu Mita 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, 26a5cfc1ecSAkinobu Mita 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 27a5cfc1ecSAkinobu Mita 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, 28a5cfc1ecSAkinobu Mita 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 29a5cfc1ecSAkinobu Mita 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, 30a5cfc1ecSAkinobu Mita 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 31a5cfc1ecSAkinobu Mita 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, 32a5cfc1ecSAkinobu Mita 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 33a5cfc1ecSAkinobu Mita 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, 34a5cfc1ecSAkinobu Mita 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 35a5cfc1ecSAkinobu Mita 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, 36a5cfc1ecSAkinobu Mita 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 37a5cfc1ecSAkinobu Mita 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, 38a5cfc1ecSAkinobu Mita 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 39a5cfc1ecSAkinobu Mita 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, 40a5cfc1ecSAkinobu Mita 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 41a5cfc1ecSAkinobu Mita 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, 42a5cfc1ecSAkinobu Mita 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 43a5cfc1ecSAkinobu Mita 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, 44a5cfc1ecSAkinobu Mita }; 45a5cfc1ecSAkinobu Mita EXPORT_SYMBOL_GPL(byte_rev_table); 46a5cfc1ecSAkinobu Mita 47556d2f05SYalin Wang #endif /* CONFIG_HAVE_ARCH_BITREVERSE */ 48