xref: /freebsd-src/sys/contrib/ncsw/inc/Peripherals/crc_mac_addr_ext.h (revision c2c014f24c10f90d85126ac5fbd4d8524de32b1c)
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