1*852ba100SJustin Hibbits /*
2*852ba100SJustin Hibbits * Copyright 2008-2012 Freescale Semiconductor Inc.
30aeed3e9SJustin Hibbits *
40aeed3e9SJustin Hibbits * Redistribution and use in source and binary forms, with or without
50aeed3e9SJustin Hibbits * modification, are permitted provided that the following conditions are met:
60aeed3e9SJustin Hibbits * * Redistributions of source code must retain the above copyright
70aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer.
80aeed3e9SJustin Hibbits * * Redistributions in binary form must reproduce the above copyright
90aeed3e9SJustin Hibbits * notice, this list of conditions and the following disclaimer in the
100aeed3e9SJustin Hibbits * documentation and/or other materials provided with the distribution.
110aeed3e9SJustin Hibbits * * Neither the name of Freescale Semiconductor nor the
120aeed3e9SJustin Hibbits * names of its contributors may be used to endorse or promote products
130aeed3e9SJustin Hibbits * derived from this software without specific prior written permission.
140aeed3e9SJustin Hibbits *
150aeed3e9SJustin Hibbits *
160aeed3e9SJustin Hibbits * ALTERNATIVELY, this software may be distributed under the terms of the
170aeed3e9SJustin Hibbits * GNU General Public License ("GPL") as published by the Free Software
180aeed3e9SJustin Hibbits * Foundation, either version 2 of that License or (at your option) any
190aeed3e9SJustin Hibbits * later version.
200aeed3e9SJustin Hibbits *
210aeed3e9SJustin Hibbits * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
220aeed3e9SJustin Hibbits * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
230aeed3e9SJustin Hibbits * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
240aeed3e9SJustin Hibbits * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
250aeed3e9SJustin Hibbits * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
260aeed3e9SJustin Hibbits * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
270aeed3e9SJustin Hibbits * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
280aeed3e9SJustin Hibbits * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
290aeed3e9SJustin Hibbits * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
300aeed3e9SJustin Hibbits * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
310aeed3e9SJustin Hibbits */
320aeed3e9SJustin Hibbits
33*852ba100SJustin Hibbits
340aeed3e9SJustin Hibbits /*------------------------------------------------------*/
350aeed3e9SJustin Hibbits /* */
360aeed3e9SJustin Hibbits /* File: crc_mac_addr_ext.h */
370aeed3e9SJustin Hibbits /* */
380aeed3e9SJustin Hibbits /* Description: */
390aeed3e9SJustin Hibbits /* Define a macro that calculate the crc value of */
400aeed3e9SJustin Hibbits /* an Ethernet MAC address (48 bitd address */
410aeed3e9SJustin Hibbits /*------------------------------------------------------*/
420aeed3e9SJustin Hibbits
430aeed3e9SJustin Hibbits #ifndef __crc_mac_addr_ext_h
440aeed3e9SJustin Hibbits #define __crc_mac_addr_ext_h
450aeed3e9SJustin Hibbits
460aeed3e9SJustin Hibbits #include "std_ext.h"
470aeed3e9SJustin Hibbits
480aeed3e9SJustin Hibbits
490aeed3e9SJustin Hibbits static uint32_t crc_table[256] =
500aeed3e9SJustin Hibbits {
510aeed3e9SJustin Hibbits 0x00000000,
520aeed3e9SJustin Hibbits 0x77073096,
530aeed3e9SJustin Hibbits 0xee0e612c,
540aeed3e9SJustin Hibbits 0x990951ba,
550aeed3e9SJustin Hibbits 0x076dc419,
560aeed3e9SJustin Hibbits 0x706af48f,
570aeed3e9SJustin Hibbits 0xe963a535,
580aeed3e9SJustin Hibbits 0x9e6495a3,
590aeed3e9SJustin Hibbits 0x0edb8832,
600aeed3e9SJustin Hibbits 0x79dcb8a4,
610aeed3e9SJustin Hibbits 0xe0d5e91e,
620aeed3e9SJustin Hibbits 0x97d2d988,
630aeed3e9SJustin Hibbits 0x09b64c2b,
640aeed3e9SJustin Hibbits 0x7eb17cbd,
650aeed3e9SJustin Hibbits 0xe7b82d07,
660aeed3e9SJustin Hibbits 0x90bf1d91,
670aeed3e9SJustin Hibbits 0x1db71064,
680aeed3e9SJustin Hibbits 0x6ab020f2,
690aeed3e9SJustin Hibbits 0xf3b97148,
700aeed3e9SJustin Hibbits 0x84be41de,
710aeed3e9SJustin Hibbits 0x1adad47d,
720aeed3e9SJustin Hibbits 0x6ddde4eb,
730aeed3e9SJustin Hibbits 0xf4d4b551,
740aeed3e9SJustin Hibbits 0x83d385c7,
750aeed3e9SJustin Hibbits 0x136c9856,
760aeed3e9SJustin Hibbits 0x646ba8c0,
770aeed3e9SJustin Hibbits 0xfd62f97a,
780aeed3e9SJustin Hibbits 0x8a65c9ec,
790aeed3e9SJustin Hibbits 0x14015c4f,
800aeed3e9SJustin Hibbits 0x63066cd9,
810aeed3e9SJustin Hibbits 0xfa0f3d63,
820aeed3e9SJustin Hibbits 0x8d080df5,
830aeed3e9SJustin Hibbits 0x3b6e20c8,
840aeed3e9SJustin Hibbits 0x4c69105e,
850aeed3e9SJustin Hibbits 0xd56041e4,
860aeed3e9SJustin Hibbits 0xa2677172,
870aeed3e9SJustin Hibbits 0x3c03e4d1,
880aeed3e9SJustin Hibbits 0x4b04d447,
890aeed3e9SJustin Hibbits 0xd20d85fd,
900aeed3e9SJustin Hibbits 0xa50ab56b,
910aeed3e9SJustin Hibbits 0x35b5a8fa,
920aeed3e9SJustin Hibbits 0x42b2986c,
930aeed3e9SJustin Hibbits 0xdbbbc9d6,
940aeed3e9SJustin Hibbits 0xacbcf940,
950aeed3e9SJustin Hibbits 0x32d86ce3,
960aeed3e9SJustin Hibbits 0x45df5c75,
970aeed3e9SJustin Hibbits 0xdcd60dcf,
980aeed3e9SJustin Hibbits 0xabd13d59,
990aeed3e9SJustin Hibbits 0x26d930ac,
1000aeed3e9SJustin Hibbits 0x51de003a,
1010aeed3e9SJustin Hibbits 0xc8d75180,
1020aeed3e9SJustin Hibbits 0xbfd06116,
1030aeed3e9SJustin Hibbits 0x21b4f4b5,
1040aeed3e9SJustin Hibbits 0x56b3c423,
1050aeed3e9SJustin Hibbits 0xcfba9599,
1060aeed3e9SJustin Hibbits 0xb8bda50f,
1070aeed3e9SJustin Hibbits 0x2802b89e,
1080aeed3e9SJustin Hibbits 0x5f058808,
1090aeed3e9SJustin Hibbits 0xc60cd9b2,
1100aeed3e9SJustin Hibbits 0xb10be924,
1110aeed3e9SJustin Hibbits 0x2f6f7c87,
1120aeed3e9SJustin Hibbits 0x58684c11,
1130aeed3e9SJustin Hibbits 0xc1611dab,
1140aeed3e9SJustin Hibbits 0xb6662d3d,
1150aeed3e9SJustin Hibbits 0x76dc4190,
1160aeed3e9SJustin Hibbits 0x01db7106,
1170aeed3e9SJustin Hibbits 0x98d220bc,
1180aeed3e9SJustin Hibbits 0xefd5102a,
1190aeed3e9SJustin Hibbits 0x71b18589,
1200aeed3e9SJustin Hibbits 0x06b6b51f,
1210aeed3e9SJustin Hibbits 0x9fbfe4a5,
1220aeed3e9SJustin Hibbits 0xe8b8d433,
1230aeed3e9SJustin Hibbits 0x7807c9a2,
1240aeed3e9SJustin Hibbits 0x0f00f934,
1250aeed3e9SJustin Hibbits 0x9609a88e,
1260aeed3e9SJustin Hibbits 0xe10e9818,
1270aeed3e9SJustin Hibbits 0x7f6a0dbb,
1280aeed3e9SJustin Hibbits 0x086d3d2d,
1290aeed3e9SJustin Hibbits 0x91646c97,
1300aeed3e9SJustin Hibbits 0xe6635c01,
1310aeed3e9SJustin Hibbits 0x6b6b51f4,
1320aeed3e9SJustin Hibbits 0x1c6c6162,
1330aeed3e9SJustin Hibbits 0x856530d8,
1340aeed3e9SJustin Hibbits 0xf262004e,
1350aeed3e9SJustin Hibbits 0x6c0695ed,
1360aeed3e9SJustin Hibbits 0x1b01a57b,
1370aeed3e9SJustin Hibbits 0x8208f4c1,
1380aeed3e9SJustin Hibbits 0xf50fc457,
1390aeed3e9SJustin Hibbits 0x65b0d9c6,
1400aeed3e9SJustin Hibbits 0x12b7e950,
1410aeed3e9SJustin Hibbits 0x8bbeb8ea,
1420aeed3e9SJustin Hibbits 0xfcb9887c,
1430aeed3e9SJustin Hibbits 0x62dd1ddf,
1440aeed3e9SJustin Hibbits 0x15da2d49,
1450aeed3e9SJustin Hibbits 0x8cd37cf3,
1460aeed3e9SJustin Hibbits 0xfbd44c65,
1470aeed3e9SJustin Hibbits 0x4db26158,
1480aeed3e9SJustin Hibbits 0x3ab551ce,
1490aeed3e9SJustin Hibbits 0xa3bc0074,
1500aeed3e9SJustin Hibbits 0xd4bb30e2,
1510aeed3e9SJustin Hibbits 0x4adfa541,
1520aeed3e9SJustin Hibbits 0x3dd895d7,
1530aeed3e9SJustin Hibbits 0xa4d1c46d,
1540aeed3e9SJustin Hibbits 0xd3d6f4fb,
1550aeed3e9SJustin Hibbits 0x4369e96a,
1560aeed3e9SJustin Hibbits 0x346ed9fc,
1570aeed3e9SJustin Hibbits 0xad678846,
1580aeed3e9SJustin Hibbits 0xda60b8d0,
1590aeed3e9SJustin Hibbits 0x44042d73,
1600aeed3e9SJustin Hibbits 0x33031de5,
1610aeed3e9SJustin Hibbits 0xaa0a4c5f,
1620aeed3e9SJustin Hibbits 0xdd0d7cc9,
1630aeed3e9SJustin Hibbits 0x5005713c,
1640aeed3e9SJustin Hibbits 0x270241aa,
1650aeed3e9SJustin Hibbits 0xbe0b1010,
1660aeed3e9SJustin Hibbits 0xc90c2086,
1670aeed3e9SJustin Hibbits 0x5768b525,
1680aeed3e9SJustin Hibbits 0x206f85b3,
1690aeed3e9SJustin Hibbits 0xb966d409,
1700aeed3e9SJustin Hibbits 0xce61e49f,
1710aeed3e9SJustin Hibbits 0x5edef90e,
1720aeed3e9SJustin Hibbits 0x29d9c998,
1730aeed3e9SJustin Hibbits 0xb0d09822,
1740aeed3e9SJustin Hibbits 0xc7d7a8b4,
1750aeed3e9SJustin Hibbits 0x59b33d17,
1760aeed3e9SJustin Hibbits 0x2eb40d81,
1770aeed3e9SJustin Hibbits 0xb7bd5c3b,
1780aeed3e9SJustin Hibbits 0xc0ba6cad,
1790aeed3e9SJustin Hibbits 0xedb88320,
1800aeed3e9SJustin Hibbits 0x9abfb3b6,
1810aeed3e9SJustin Hibbits 0x03b6e20c,
1820aeed3e9SJustin Hibbits 0x74b1d29a,
1830aeed3e9SJustin Hibbits 0xead54739,
1840aeed3e9SJustin Hibbits 0x9dd277af,
1850aeed3e9SJustin Hibbits 0x04db2615,
1860aeed3e9SJustin Hibbits 0x73dc1683,
1870aeed3e9SJustin Hibbits 0xe3630b12,
1880aeed3e9SJustin Hibbits 0x94643b84,
1890aeed3e9SJustin Hibbits 0x0d6d6a3e,
1900aeed3e9SJustin Hibbits 0x7a6a5aa8,
1910aeed3e9SJustin Hibbits 0xe40ecf0b,
1920aeed3e9SJustin Hibbits 0x9309ff9d,
1930aeed3e9SJustin Hibbits 0x0a00ae27,
1940aeed3e9SJustin Hibbits 0x7d079eb1,
1950aeed3e9SJustin Hibbits 0xf00f9344,
1960aeed3e9SJustin Hibbits 0x8708a3d2,
1970aeed3e9SJustin Hibbits 0x1e01f268,
1980aeed3e9SJustin Hibbits 0x6906c2fe,
1990aeed3e9SJustin Hibbits 0xf762575d,
2000aeed3e9SJustin Hibbits 0x806567cb,
2010aeed3e9SJustin Hibbits 0x196c3671,
2020aeed3e9SJustin Hibbits 0x6e6b06e7,
2030aeed3e9SJustin Hibbits 0xfed41b76,
2040aeed3e9SJustin Hibbits 0x89d32be0,
2050aeed3e9SJustin Hibbits 0x10da7a5a,
2060aeed3e9SJustin Hibbits 0x67dd4acc,
2070aeed3e9SJustin Hibbits 0xf9b9df6f,
2080aeed3e9SJustin Hibbits 0x8ebeeff9,
2090aeed3e9SJustin Hibbits 0x17b7be43,
2100aeed3e9SJustin Hibbits 0x60b08ed5,
2110aeed3e9SJustin Hibbits 0xd6d6a3e8,
2120aeed3e9SJustin Hibbits 0xa1d1937e,
2130aeed3e9SJustin Hibbits 0x38d8c2c4,
2140aeed3e9SJustin Hibbits 0x4fdff252,
2150aeed3e9SJustin Hibbits 0xd1bb67f1,
2160aeed3e9SJustin Hibbits 0xa6bc5767,
2170aeed3e9SJustin Hibbits 0x3fb506dd,
2180aeed3e9SJustin Hibbits 0x48b2364b,
2190aeed3e9SJustin Hibbits 0xd80d2bda,
2200aeed3e9SJustin Hibbits 0xaf0a1b4c,
2210aeed3e9SJustin Hibbits 0x36034af6,
2220aeed3e9SJustin Hibbits 0x41047a60,
2230aeed3e9SJustin Hibbits 0xdf60efc3,
2240aeed3e9SJustin Hibbits 0xa867df55,
2250aeed3e9SJustin Hibbits 0x316e8eef,
2260aeed3e9SJustin Hibbits 0x4669be79,
2270aeed3e9SJustin Hibbits 0xcb61b38c,
2280aeed3e9SJustin Hibbits 0xbc66831a,
2290aeed3e9SJustin Hibbits 0x256fd2a0,
2300aeed3e9SJustin Hibbits 0x5268e236,
2310aeed3e9SJustin Hibbits 0xcc0c7795,
2320aeed3e9SJustin Hibbits 0xbb0b4703,
2330aeed3e9SJustin Hibbits 0x220216b9,
2340aeed3e9SJustin Hibbits 0x5505262f,
2350aeed3e9SJustin Hibbits 0xc5ba3bbe,
2360aeed3e9SJustin Hibbits 0xb2bd0b28,
2370aeed3e9SJustin Hibbits 0x2bb45a92,
2380aeed3e9SJustin Hibbits 0x5cb36a04,
2390aeed3e9SJustin Hibbits 0xc2d7ffa7,
2400aeed3e9SJustin Hibbits 0xb5d0cf31,
2410aeed3e9SJustin Hibbits 0x2cd99e8b,
2420aeed3e9SJustin Hibbits 0x5bdeae1d,
2430aeed3e9SJustin Hibbits 0x9b64c2b0,
2440aeed3e9SJustin Hibbits 0xec63f226,
2450aeed3e9SJustin Hibbits 0x756aa39c,
2460aeed3e9SJustin Hibbits 0x026d930a,
2470aeed3e9SJustin Hibbits 0x9c0906a9,
2480aeed3e9SJustin Hibbits 0xeb0e363f,
2490aeed3e9SJustin Hibbits 0x72076785,
2500aeed3e9SJustin Hibbits 0x05005713,
2510aeed3e9SJustin Hibbits 0x95bf4a82,
2520aeed3e9SJustin Hibbits 0xe2b87a14,
2530aeed3e9SJustin Hibbits 0x7bb12bae,
2540aeed3e9SJustin Hibbits 0x0cb61b38,
2550aeed3e9SJustin Hibbits 0x92d28e9b,
2560aeed3e9SJustin Hibbits 0xe5d5be0d,
2570aeed3e9SJustin Hibbits 0x7cdcefb7,
2580aeed3e9SJustin Hibbits 0x0bdbdf21,
2590aeed3e9SJustin Hibbits 0x86d3d2d4,
2600aeed3e9SJustin Hibbits 0xf1d4e242,
2610aeed3e9SJustin Hibbits 0x68ddb3f8,
2620aeed3e9SJustin Hibbits 0x1fda836e,
2630aeed3e9SJustin Hibbits 0x81be16cd,
2640aeed3e9SJustin Hibbits 0xf6b9265b,
2650aeed3e9SJustin Hibbits 0x6fb077e1,
2660aeed3e9SJustin Hibbits 0x18b74777,
2670aeed3e9SJustin Hibbits 0x88085ae6,
2680aeed3e9SJustin Hibbits 0xff0f6a70,
2690aeed3e9SJustin Hibbits 0x66063bca,
2700aeed3e9SJustin Hibbits 0x11010b5c,
2710aeed3e9SJustin Hibbits 0x8f659eff,
2720aeed3e9SJustin Hibbits 0xf862ae69,
2730aeed3e9SJustin Hibbits 0x616bffd3,
2740aeed3e9SJustin Hibbits 0x166ccf45,
2750aeed3e9SJustin Hibbits 0xa00ae278,
2760aeed3e9SJustin Hibbits 0xd70dd2ee,
2770aeed3e9SJustin Hibbits 0x4e048354,
2780aeed3e9SJustin Hibbits 0x3903b3c2,
2790aeed3e9SJustin Hibbits 0xa7672661,
2800aeed3e9SJustin Hibbits 0xd06016f7,
2810aeed3e9SJustin Hibbits 0x4969474d,
2820aeed3e9SJustin Hibbits 0x3e6e77db,
2830aeed3e9SJustin Hibbits 0xaed16a4a,
2840aeed3e9SJustin Hibbits 0xd9d65adc,
2850aeed3e9SJustin Hibbits 0x40df0b66,
2860aeed3e9SJustin Hibbits 0x37d83bf0,
2870aeed3e9SJustin Hibbits 0xa9bcae53,
2880aeed3e9SJustin Hibbits 0xdebb9ec5,
2890aeed3e9SJustin Hibbits 0x47b2cf7f,
2900aeed3e9SJustin Hibbits 0x30b5ffe9,
2910aeed3e9SJustin Hibbits 0xbdbdf21c,
2920aeed3e9SJustin Hibbits 0xcabac28a,
2930aeed3e9SJustin Hibbits 0x53b39330,
2940aeed3e9SJustin Hibbits 0x24b4a3a6,
2950aeed3e9SJustin Hibbits 0xbad03605,
2960aeed3e9SJustin Hibbits 0xcdd70693,
2970aeed3e9SJustin Hibbits 0x54de5729,
2980aeed3e9SJustin Hibbits 0x23d967bf,
2990aeed3e9SJustin Hibbits 0xb3667a2e,
3000aeed3e9SJustin Hibbits 0xc4614ab8,
3010aeed3e9SJustin Hibbits 0x5d681b02,
3020aeed3e9SJustin Hibbits 0x2a6f2b94,
3030aeed3e9SJustin Hibbits 0xb40bbe37,
3040aeed3e9SJustin Hibbits 0xc30c8ea1,
3050aeed3e9SJustin Hibbits 0x5a05df1b,
3060aeed3e9SJustin Hibbits 0x2d02ef8d
3070aeed3e9SJustin Hibbits };
3080aeed3e9SJustin Hibbits
3090aeed3e9SJustin Hibbits
3100aeed3e9SJustin Hibbits #define GET_MAC_ADDR_CRC(addr, crc) \
3110aeed3e9SJustin Hibbits { \
3120aeed3e9SJustin Hibbits uint32_t i; \
3130aeed3e9SJustin Hibbits uint8_t data; \
3140aeed3e9SJustin Hibbits \
3150aeed3e9SJustin Hibbits /* CRC calculation */ \
3160aeed3e9SJustin Hibbits crc = 0xffffffff; \
3170aeed3e9SJustin Hibbits for (i=0; i < 6; i++) \
3180aeed3e9SJustin Hibbits { \
3190aeed3e9SJustin Hibbits data = (uint8_t)(addr >> ((5-i)*8)); \
3200aeed3e9SJustin Hibbits crc = crc^data; \
3210aeed3e9SJustin Hibbits crc = crc_table[crc&0xff] ^ (crc>>8); \
3220aeed3e9SJustin Hibbits } \
3230aeed3e9SJustin Hibbits } \
3240aeed3e9SJustin Hibbits
3250aeed3e9SJustin Hibbits /* Define a macro for getting the mirrored value of */
3260aeed3e9SJustin Hibbits /* a byte size number. (0x11010011 --> 0x11001011) */
3270aeed3e9SJustin Hibbits /* Sometimes the mirrored value of the CRC is required */
GetMirror(uint8_t n)3280aeed3e9SJustin Hibbits static __inline__ uint8_t GetMirror(uint8_t n)
3290aeed3e9SJustin Hibbits {
3300aeed3e9SJustin Hibbits uint8_t mirror[16] =
3310aeed3e9SJustin Hibbits {
3320aeed3e9SJustin Hibbits 0x00,
3330aeed3e9SJustin Hibbits 0x08,
3340aeed3e9SJustin Hibbits 0x04,
3350aeed3e9SJustin Hibbits 0x0c,
3360aeed3e9SJustin Hibbits 0x02,
3370aeed3e9SJustin Hibbits 0x0a,
3380aeed3e9SJustin Hibbits 0x06,
3390aeed3e9SJustin Hibbits 0x0e,
3400aeed3e9SJustin Hibbits 0x01,
3410aeed3e9SJustin Hibbits 0x09,
3420aeed3e9SJustin Hibbits 0x05,
3430aeed3e9SJustin Hibbits 0x0d,
3440aeed3e9SJustin Hibbits 0x03,
3450aeed3e9SJustin Hibbits 0x0b,
3460aeed3e9SJustin Hibbits 0x07,
3470aeed3e9SJustin Hibbits 0x0f
3480aeed3e9SJustin Hibbits };
3490aeed3e9SJustin Hibbits return ((uint8_t)(((mirror[n & 0x0f] << 4) | (mirror[n >> 4]))));
3500aeed3e9SJustin Hibbits }
3510aeed3e9SJustin Hibbits
GetMirror32(uint32_t n)3520aeed3e9SJustin Hibbits static __inline__ uint32_t GetMirror32(uint32_t n)
3530aeed3e9SJustin Hibbits {
3540aeed3e9SJustin Hibbits return (((uint32_t)GetMirror((uint8_t)(n))<<24) |
3550aeed3e9SJustin Hibbits ((uint32_t)GetMirror((uint8_t)(n>>8))<<16) |
3560aeed3e9SJustin Hibbits ((uint32_t)GetMirror((uint8_t)(n>>16))<<8) |
3570aeed3e9SJustin Hibbits ((uint32_t)GetMirror((uint8_t)(n>>24))));
3580aeed3e9SJustin Hibbits }
3590aeed3e9SJustin Hibbits
3600aeed3e9SJustin Hibbits #define MIRROR GetMirror
3610aeed3e9SJustin Hibbits #define MIRROR_32 GetMirror32
3620aeed3e9SJustin Hibbits
3630aeed3e9SJustin Hibbits
3640aeed3e9SJustin Hibbits #endif /* __crc_mac_addr_ext_h */
365