diff options
Diffstat (limited to 'firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR')
4 files changed, 553 insertions, 0 deletions
| diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h new file mode 100644 index 0000000..41163b6 --- /dev/null +++ b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/mrepeat.h @@ -0,0 +1,328 @@ +/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ + +/*This file is prepared for Doxygen automatic documentation generation.*/ +/*! \file ********************************************************************* + * + * \brief Preprocessor macro repeating utils. + * + * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32 + * - Supported devices:  All AVR32 devices can be used. + * + * \author               Atmel Corporation: http://www.atmel.com \n + *                       Support and FAQ: http://support.atmel.no/ + * + ******************************************************************************/ + +/* Copyright (c) 2009 Atmel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an Atmel + * AVR product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + * + */ + +#ifndef _MREPEAT_H_ +#define _MREPEAT_H_ + +#include "preprocessor.h" + + +//! Maximal number of repetitions supported by MREPEAT. +#define MREPEAT_LIMIT   256 + +/*! \brief Macro repeat. + * + * This macro represents a horizontal repetition construct. + * + * \param count  The number of repetitious calls to macro. Valid values range from 0 to MREPEAT_LIMIT. + * \param macro  A binary operation of the form macro(n, data). This macro is expanded by MREPEAT with + *               the current repetition number and the auxiliary data argument. + * \param data   Auxiliary data passed to macro. + * + * \return       <tt>macro(0, data) macro(1, data) ... macro(count - 1, data)</tt> + */ +#define MREPEAT(count, macro, data)         TPASTE2(MREPEAT, count)(macro, data) + +#define MREPEAT0(  macro, data) +#define MREPEAT1(  macro, data)       MREPEAT0(  macro, data)   macro(  0, data) +#define MREPEAT2(  macro, data)       MREPEAT1(  macro, data)   macro(  1, data) +#define MREPEAT3(  macro, data)       MREPEAT2(  macro, data)   macro(  2, data) +#define MREPEAT4(  macro, data)       MREPEAT3(  macro, data)   macro(  3, data) +#define MREPEAT5(  macro, data)       MREPEAT4(  macro, data)   macro(  4, data) +#define MREPEAT6(  macro, data)       MREPEAT5(  macro, data)   macro(  5, data) +#define MREPEAT7(  macro, data)       MREPEAT6(  macro, data)   macro(  6, data) +#define MREPEAT8(  macro, data)       MREPEAT7(  macro, data)   macro(  7, data) +#define MREPEAT9(  macro, data)       MREPEAT8(  macro, data)   macro(  8, data) +#define MREPEAT10( macro, data)       MREPEAT9(  macro, data)   macro(  9, data) +#define MREPEAT11( macro, data)       MREPEAT10( macro, data)   macro( 10, data) +#define MREPEAT12( macro, data)       MREPEAT11( macro, data)   macro( 11, data) +#define MREPEAT13( macro, data)       MREPEAT12( macro, data)   macro( 12, data) +#define MREPEAT14( macro, data)       MREPEAT13( macro, data)   macro( 13, data) +#define MREPEAT15( macro, data)       MREPEAT14( macro, data)   macro( 14, data) +#define MREPEAT16( macro, data)       MREPEAT15( macro, data)   macro( 15, data) +#define MREPEAT17( macro, data)       MREPEAT16( macro, data)   macro( 16, data) +#define MREPEAT18( macro, data)       MREPEAT17( macro, data)   macro( 17, data) +#define MREPEAT19( macro, data)       MREPEAT18( macro, data)   macro( 18, data) +#define MREPEAT20( macro, data)       MREPEAT19( macro, data)   macro( 19, data) +#define MREPEAT21( macro, data)       MREPEAT20( macro, data)   macro( 20, data) +#define MREPEAT22( macro, data)       MREPEAT21( macro, data)   macro( 21, data) +#define MREPEAT23( macro, data)       MREPEAT22( macro, data)   macro( 22, data) +#define MREPEAT24( macro, data)       MREPEAT23( macro, data)   macro( 23, data) +#define MREPEAT25( macro, data)       MREPEAT24( macro, data)   macro( 24, data) +#define MREPEAT26( macro, data)       MREPEAT25( macro, data)   macro( 25, data) +#define MREPEAT27( macro, data)       MREPEAT26( macro, data)   macro( 26, data) +#define MREPEAT28( macro, data)       MREPEAT27( macro, data)   macro( 27, data) +#define MREPEAT29( macro, data)       MREPEAT28( macro, data)   macro( 28, data) +#define MREPEAT30( macro, data)       MREPEAT29( macro, data)   macro( 29, data) +#define MREPEAT31( macro, data)       MREPEAT30( macro, data)   macro( 30, data) +#define MREPEAT32( macro, data)       MREPEAT31( macro, data)   macro( 31, data) +#define MREPEAT33( macro, data)       MREPEAT32( macro, data)   macro( 32, data) +#define MREPEAT34( macro, data)       MREPEAT33( macro, data)   macro( 33, data) +#define MREPEAT35( macro, data)       MREPEAT34( macro, data)   macro( 34, data) +#define MREPEAT36( macro, data)       MREPEAT35( macro, data)   macro( 35, data) +#define MREPEAT37( macro, data)       MREPEAT36( macro, data)   macro( 36, data) +#define MREPEAT38( macro, data)       MREPEAT37( macro, data)   macro( 37, data) +#define MREPEAT39( macro, data)       MREPEAT38( macro, data)   macro( 38, data) +#define MREPEAT40( macro, data)       MREPEAT39( macro, data)   macro( 39, data) +#define MREPEAT41( macro, data)       MREPEAT40( macro, data)   macro( 40, data) +#define MREPEAT42( macro, data)       MREPEAT41( macro, data)   macro( 41, data) +#define MREPEAT43( macro, data)       MREPEAT42( macro, data)   macro( 42, data) +#define MREPEAT44( macro, data)       MREPEAT43( macro, data)   macro( 43, data) +#define MREPEAT45( macro, data)       MREPEAT44( macro, data)   macro( 44, data) +#define MREPEAT46( macro, data)       MREPEAT45( macro, data)   macro( 45, data) +#define MREPEAT47( macro, data)       MREPEAT46( macro, data)   macro( 46, data) +#define MREPEAT48( macro, data)       MREPEAT47( macro, data)   macro( 47, data) +#define MREPEAT49( macro, data)       MREPEAT48( macro, data)   macro( 48, data) +#define MREPEAT50( macro, data)       MREPEAT49( macro, data)   macro( 49, data) +#define MREPEAT51( macro, data)       MREPEAT50( macro, data)   macro( 50, data) +#define MREPEAT52( macro, data)       MREPEAT51( macro, data)   macro( 51, data) +#define MREPEAT53( macro, data)       MREPEAT52( macro, data)   macro( 52, data) +#define MREPEAT54( macro, data)       MREPEAT53( macro, data)   macro( 53, data) +#define MREPEAT55( macro, data)       MREPEAT54( macro, data)   macro( 54, data) +#define MREPEAT56( macro, data)       MREPEAT55( macro, data)   macro( 55, data) +#define MREPEAT57( macro, data)       MREPEAT56( macro, data)   macro( 56, data) +#define MREPEAT58( macro, data)       MREPEAT57( macro, data)   macro( 57, data) +#define MREPEAT59( macro, data)       MREPEAT58( macro, data)   macro( 58, data) +#define MREPEAT60( macro, data)       MREPEAT59( macro, data)   macro( 59, data) +#define MREPEAT61( macro, data)       MREPEAT60( macro, data)   macro( 60, data) +#define MREPEAT62( macro, data)       MREPEAT61( macro, data)   macro( 61, data) +#define MREPEAT63( macro, data)       MREPEAT62( macro, data)   macro( 62, data) +#define MREPEAT64( macro, data)       MREPEAT63( macro, data)   macro( 63, data) +#define MREPEAT65( macro, data)       MREPEAT64( macro, data)   macro( 64, data) +#define MREPEAT66( macro, data)       MREPEAT65( macro, data)   macro( 65, data) +#define MREPEAT67( macro, data)       MREPEAT66( macro, data)   macro( 66, data) +#define MREPEAT68( macro, data)       MREPEAT67( macro, data)   macro( 67, data) +#define MREPEAT69( macro, data)       MREPEAT68( macro, data)   macro( 68, data) +#define MREPEAT70( macro, data)       MREPEAT69( macro, data)   macro( 69, data) +#define MREPEAT71( macro, data)       MREPEAT70( macro, data)   macro( 70, data) +#define MREPEAT72( macro, data)       MREPEAT71( macro, data)   macro( 71, data) +#define MREPEAT73( macro, data)       MREPEAT72( macro, data)   macro( 72, data) +#define MREPEAT74( macro, data)       MREPEAT73( macro, data)   macro( 73, data) +#define MREPEAT75( macro, data)       MREPEAT74( macro, data)   macro( 74, data) +#define MREPEAT76( macro, data)       MREPEAT75( macro, data)   macro( 75, data) +#define MREPEAT77( macro, data)       MREPEAT76( macro, data)   macro( 76, data) +#define MREPEAT78( macro, data)       MREPEAT77( macro, data)   macro( 77, data) +#define MREPEAT79( macro, data)       MREPEAT78( macro, data)   macro( 78, data) +#define MREPEAT80( macro, data)       MREPEAT79( macro, data)   macro( 79, data) +#define MREPEAT81( macro, data)       MREPEAT80( macro, data)   macro( 80, data) +#define MREPEAT82( macro, data)       MREPEAT81( macro, data)   macro( 81, data) +#define MREPEAT83( macro, data)       MREPEAT82( macro, data)   macro( 82, data) +#define MREPEAT84( macro, data)       MREPEAT83( macro, data)   macro( 83, data) +#define MREPEAT85( macro, data)       MREPEAT84( macro, data)   macro( 84, data) +#define MREPEAT86( macro, data)       MREPEAT85( macro, data)   macro( 85, data) +#define MREPEAT87( macro, data)       MREPEAT86( macro, data)   macro( 86, data) +#define MREPEAT88( macro, data)       MREPEAT87( macro, data)   macro( 87, data) +#define MREPEAT89( macro, data)       MREPEAT88( macro, data)   macro( 88, data) +#define MREPEAT90( macro, data)       MREPEAT89( macro, data)   macro( 89, data) +#define MREPEAT91( macro, data)       MREPEAT90( macro, data)   macro( 90, data) +#define MREPEAT92( macro, data)       MREPEAT91( macro, data)   macro( 91, data) +#define MREPEAT93( macro, data)       MREPEAT92( macro, data)   macro( 92, data) +#define MREPEAT94( macro, data)       MREPEAT93( macro, data)   macro( 93, data) +#define MREPEAT95( macro, data)       MREPEAT94( macro, data)   macro( 94, data) +#define MREPEAT96( macro, data)       MREPEAT95( macro, data)   macro( 95, data) +#define MREPEAT97( macro, data)       MREPEAT96( macro, data)   macro( 96, data) +#define MREPEAT98( macro, data)       MREPEAT97( macro, data)   macro( 97, data) +#define MREPEAT99( macro, data)       MREPEAT98( macro, data)   macro( 98, data) +#define MREPEAT100(macro, data)       MREPEAT99( macro, data)   macro( 99, data) +#define MREPEAT101(macro, data)       MREPEAT100(macro, data)   macro(100, data) +#define MREPEAT102(macro, data)       MREPEAT101(macro, data)   macro(101, data) +#define MREPEAT103(macro, data)       MREPEAT102(macro, data)   macro(102, data) +#define MREPEAT104(macro, data)       MREPEAT103(macro, data)   macro(103, data) +#define MREPEAT105(macro, data)       MREPEAT104(macro, data)   macro(104, data) +#define MREPEAT106(macro, data)       MREPEAT105(macro, data)   macro(105, data) +#define MREPEAT107(macro, data)       MREPEAT106(macro, data)   macro(106, data) +#define MREPEAT108(macro, data)       MREPEAT107(macro, data)   macro(107, data) +#define MREPEAT109(macro, data)       MREPEAT108(macro, data)   macro(108, data) +#define MREPEAT110(macro, data)       MREPEAT109(macro, data)   macro(109, data) +#define MREPEAT111(macro, data)       MREPEAT110(macro, data)   macro(110, data) +#define MREPEAT112(macro, data)       MREPEAT111(macro, data)   macro(111, data) +#define MREPEAT113(macro, data)       MREPEAT112(macro, data)   macro(112, data) +#define MREPEAT114(macro, data)       MREPEAT113(macro, data)   macro(113, data) +#define MREPEAT115(macro, data)       MREPEAT114(macro, data)   macro(114, data) +#define MREPEAT116(macro, data)       MREPEAT115(macro, data)   macro(115, data) +#define MREPEAT117(macro, data)       MREPEAT116(macro, data)   macro(116, data) +#define MREPEAT118(macro, data)       MREPEAT117(macro, data)   macro(117, data) +#define MREPEAT119(macro, data)       MREPEAT118(macro, data)   macro(118, data) +#define MREPEAT120(macro, data)       MREPEAT119(macro, data)   macro(119, data) +#define MREPEAT121(macro, data)       MREPEAT120(macro, data)   macro(120, data) +#define MREPEAT122(macro, data)       MREPEAT121(macro, data)   macro(121, data) +#define MREPEAT123(macro, data)       MREPEAT122(macro, data)   macro(122, data) +#define MREPEAT124(macro, data)       MREPEAT123(macro, data)   macro(123, data) +#define MREPEAT125(macro, data)       MREPEAT124(macro, data)   macro(124, data) +#define MREPEAT126(macro, data)       MREPEAT125(macro, data)   macro(125, data) +#define MREPEAT127(macro, data)       MREPEAT126(macro, data)   macro(126, data) +#define MREPEAT128(macro, data)       MREPEAT127(macro, data)   macro(127, data) +#define MREPEAT129(macro, data)       MREPEAT128(macro, data)   macro(128, data) +#define MREPEAT130(macro, data)       MREPEAT129(macro, data)   macro(129, data) +#define MREPEAT131(macro, data)       MREPEAT130(macro, data)   macro(130, data) +#define MREPEAT132(macro, data)       MREPEAT131(macro, data)   macro(131, data) +#define MREPEAT133(macro, data)       MREPEAT132(macro, data)   macro(132, data) +#define MREPEAT134(macro, data)       MREPEAT133(macro, data)   macro(133, data) +#define MREPEAT135(macro, data)       MREPEAT134(macro, data)   macro(134, data) +#define MREPEAT136(macro, data)       MREPEAT135(macro, data)   macro(135, data) +#define MREPEAT137(macro, data)       MREPEAT136(macro, data)   macro(136, data) +#define MREPEAT138(macro, data)       MREPEAT137(macro, data)   macro(137, data) +#define MREPEAT139(macro, data)       MREPEAT138(macro, data)   macro(138, data) +#define MREPEAT140(macro, data)       MREPEAT139(macro, data)   macro(139, data) +#define MREPEAT141(macro, data)       MREPEAT140(macro, data)   macro(140, data) +#define MREPEAT142(macro, data)       MREPEAT141(macro, data)   macro(141, data) +#define MREPEAT143(macro, data)       MREPEAT142(macro, data)   macro(142, data) +#define MREPEAT144(macro, data)       MREPEAT143(macro, data)   macro(143, data) +#define MREPEAT145(macro, data)       MREPEAT144(macro, data)   macro(144, data) +#define MREPEAT146(macro, data)       MREPEAT145(macro, data)   macro(145, data) +#define MREPEAT147(macro, data)       MREPEAT146(macro, data)   macro(146, data) +#define MREPEAT148(macro, data)       MREPEAT147(macro, data)   macro(147, data) +#define MREPEAT149(macro, data)       MREPEAT148(macro, data)   macro(148, data) +#define MREPEAT150(macro, data)       MREPEAT149(macro, data)   macro(149, data) +#define MREPEAT151(macro, data)       MREPEAT150(macro, data)   macro(150, data) +#define MREPEAT152(macro, data)       MREPEAT151(macro, data)   macro(151, data) +#define MREPEAT153(macro, data)       MREPEAT152(macro, data)   macro(152, data) +#define MREPEAT154(macro, data)       MREPEAT153(macro, data)   macro(153, data) +#define MREPEAT155(macro, data)       MREPEAT154(macro, data)   macro(154, data) +#define MREPEAT156(macro, data)       MREPEAT155(macro, data)   macro(155, data) +#define MREPEAT157(macro, data)       MREPEAT156(macro, data)   macro(156, data) +#define MREPEAT158(macro, data)       MREPEAT157(macro, data)   macro(157, data) +#define MREPEAT159(macro, data)       MREPEAT158(macro, data)   macro(158, data) +#define MREPEAT160(macro, data)       MREPEAT159(macro, data)   macro(159, data) +#define MREPEAT161(macro, data)       MREPEAT160(macro, data)   macro(160, data) +#define MREPEAT162(macro, data)       MREPEAT161(macro, data)   macro(161, data) +#define MREPEAT163(macro, data)       MREPEAT162(macro, data)   macro(162, data) +#define MREPEAT164(macro, data)       MREPEAT163(macro, data)   macro(163, data) +#define MREPEAT165(macro, data)       MREPEAT164(macro, data)   macro(164, data) +#define MREPEAT166(macro, data)       MREPEAT165(macro, data)   macro(165, data) +#define MREPEAT167(macro, data)       MREPEAT166(macro, data)   macro(166, data) +#define MREPEAT168(macro, data)       MREPEAT167(macro, data)   macro(167, data) +#define MREPEAT169(macro, data)       MREPEAT168(macro, data)   macro(168, data) +#define MREPEAT170(macro, data)       MREPEAT169(macro, data)   macro(169, data) +#define MREPEAT171(macro, data)       MREPEAT170(macro, data)   macro(170, data) +#define MREPEAT172(macro, data)       MREPEAT171(macro, data)   macro(171, data) +#define MREPEAT173(macro, data)       MREPEAT172(macro, data)   macro(172, data) +#define MREPEAT174(macro, data)       MREPEAT173(macro, data)   macro(173, data) +#define MREPEAT175(macro, data)       MREPEAT174(macro, data)   macro(174, data) +#define MREPEAT176(macro, data)       MREPEAT175(macro, data)   macro(175, data) +#define MREPEAT177(macro, data)       MREPEAT176(macro, data)   macro(176, data) +#define MREPEAT178(macro, data)       MREPEAT177(macro, data)   macro(177, data) +#define MREPEAT179(macro, data)       MREPEAT178(macro, data)   macro(178, data) +#define MREPEAT180(macro, data)       MREPEAT179(macro, data)   macro(179, data) +#define MREPEAT181(macro, data)       MREPEAT180(macro, data)   macro(180, data) +#define MREPEAT182(macro, data)       MREPEAT181(macro, data)   macro(181, data) +#define MREPEAT183(macro, data)       MREPEAT182(macro, data)   macro(182, data) +#define MREPEAT184(macro, data)       MREPEAT183(macro, data)   macro(183, data) +#define MREPEAT185(macro, data)       MREPEAT184(macro, data)   macro(184, data) +#define MREPEAT186(macro, data)       MREPEAT185(macro, data)   macro(185, data) +#define MREPEAT187(macro, data)       MREPEAT186(macro, data)   macro(186, data) +#define MREPEAT188(macro, data)       MREPEAT187(macro, data)   macro(187, data) +#define MREPEAT189(macro, data)       MREPEAT188(macro, data)   macro(188, data) +#define MREPEAT190(macro, data)       MREPEAT189(macro, data)   macro(189, data) +#define MREPEAT191(macro, data)       MREPEAT190(macro, data)   macro(190, data) +#define MREPEAT192(macro, data)       MREPEAT191(macro, data)   macro(191, data) +#define MREPEAT193(macro, data)       MREPEAT192(macro, data)   macro(192, data) +#define MREPEAT194(macro, data)       MREPEAT193(macro, data)   macro(193, data) +#define MREPEAT195(macro, data)       MREPEAT194(macro, data)   macro(194, data) +#define MREPEAT196(macro, data)       MREPEAT195(macro, data)   macro(195, data) +#define MREPEAT197(macro, data)       MREPEAT196(macro, data)   macro(196, data) +#define MREPEAT198(macro, data)       MREPEAT197(macro, data)   macro(197, data) +#define MREPEAT199(macro, data)       MREPEAT198(macro, data)   macro(198, data) +#define MREPEAT200(macro, data)       MREPEAT199(macro, data)   macro(199, data) +#define MREPEAT201(macro, data)       MREPEAT200(macro, data)   macro(200, data) +#define MREPEAT202(macro, data)       MREPEAT201(macro, data)   macro(201, data) +#define MREPEAT203(macro, data)       MREPEAT202(macro, data)   macro(202, data) +#define MREPEAT204(macro, data)       MREPEAT203(macro, data)   macro(203, data) +#define MREPEAT205(macro, data)       MREPEAT204(macro, data)   macro(204, data) +#define MREPEAT206(macro, data)       MREPEAT205(macro, data)   macro(205, data) +#define MREPEAT207(macro, data)       MREPEAT206(macro, data)   macro(206, data) +#define MREPEAT208(macro, data)       MREPEAT207(macro, data)   macro(207, data) +#define MREPEAT209(macro, data)       MREPEAT208(macro, data)   macro(208, data) +#define MREPEAT210(macro, data)       MREPEAT209(macro, data)   macro(209, data) +#define MREPEAT211(macro, data)       MREPEAT210(macro, data)   macro(210, data) +#define MREPEAT212(macro, data)       MREPEAT211(macro, data)   macro(211, data) +#define MREPEAT213(macro, data)       MREPEAT212(macro, data)   macro(212, data) +#define MREPEAT214(macro, data)       MREPEAT213(macro, data)   macro(213, data) +#define MREPEAT215(macro, data)       MREPEAT214(macro, data)   macro(214, data) +#define MREPEAT216(macro, data)       MREPEAT215(macro, data)   macro(215, data) +#define MREPEAT217(macro, data)       MREPEAT216(macro, data)   macro(216, data) +#define MREPEAT218(macro, data)       MREPEAT217(macro, data)   macro(217, data) +#define MREPEAT219(macro, data)       MREPEAT218(macro, data)   macro(218, data) +#define MREPEAT220(macro, data)       MREPEAT219(macro, data)   macro(219, data) +#define MREPEAT221(macro, data)       MREPEAT220(macro, data)   macro(220, data) +#define MREPEAT222(macro, data)       MREPEAT221(macro, data)   macro(221, data) +#define MREPEAT223(macro, data)       MREPEAT222(macro, data)   macro(222, data) +#define MREPEAT224(macro, data)       MREPEAT223(macro, data)   macro(223, data) +#define MREPEAT225(macro, data)       MREPEAT224(macro, data)   macro(224, data) +#define MREPEAT226(macro, data)       MREPEAT225(macro, data)   macro(225, data) +#define MREPEAT227(macro, data)       MREPEAT226(macro, data)   macro(226, data) +#define MREPEAT228(macro, data)       MREPEAT227(macro, data)   macro(227, data) +#define MREPEAT229(macro, data)       MREPEAT228(macro, data)   macro(228, data) +#define MREPEAT230(macro, data)       MREPEAT229(macro, data)   macro(229, data) +#define MREPEAT231(macro, data)       MREPEAT230(macro, data)   macro(230, data) +#define MREPEAT232(macro, data)       MREPEAT231(macro, data)   macro(231, data) +#define MREPEAT233(macro, data)       MREPEAT232(macro, data)   macro(232, data) +#define MREPEAT234(macro, data)       MREPEAT233(macro, data)   macro(233, data) +#define MREPEAT235(macro, data)       MREPEAT234(macro, data)   macro(234, data) +#define MREPEAT236(macro, data)       MREPEAT235(macro, data)   macro(235, data) +#define MREPEAT237(macro, data)       MREPEAT236(macro, data)   macro(236, data) +#define MREPEAT238(macro, data)       MREPEAT237(macro, data)   macro(237, data) +#define MREPEAT239(macro, data)       MREPEAT238(macro, data)   macro(238, data) +#define MREPEAT240(macro, data)       MREPEAT239(macro, data)   macro(239, data) +#define MREPEAT241(macro, data)       MREPEAT240(macro, data)   macro(240, data) +#define MREPEAT242(macro, data)       MREPEAT241(macro, data)   macro(241, data) +#define MREPEAT243(macro, data)       MREPEAT242(macro, data)   macro(242, data) +#define MREPEAT244(macro, data)       MREPEAT243(macro, data)   macro(243, data) +#define MREPEAT245(macro, data)       MREPEAT244(macro, data)   macro(244, data) +#define MREPEAT246(macro, data)       MREPEAT245(macro, data)   macro(245, data) +#define MREPEAT247(macro, data)       MREPEAT246(macro, data)   macro(246, data) +#define MREPEAT248(macro, data)       MREPEAT247(macro, data)   macro(247, data) +#define MREPEAT249(macro, data)       MREPEAT248(macro, data)   macro(248, data) +#define MREPEAT250(macro, data)       MREPEAT249(macro, data)   macro(249, data) +#define MREPEAT251(macro, data)       MREPEAT250(macro, data)   macro(250, data) +#define MREPEAT252(macro, data)       MREPEAT251(macro, data)   macro(251, data) +#define MREPEAT253(macro, data)       MREPEAT252(macro, data)   macro(252, data) +#define MREPEAT254(macro, data)       MREPEAT253(macro, data)   macro(253, data) +#define MREPEAT255(macro, data)       MREPEAT254(macro, data)   macro(254, data) +#define MREPEAT256(macro, data)       MREPEAT255(macro, data)   macro(255, data) + + +#endif  // _MREPEAT_H_ diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h new file mode 100644 index 0000000..5b996ba --- /dev/null +++ b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/preprocessor.h @@ -0,0 +1,55 @@ +/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ + +/*This file is prepared for Doxygen automatic documentation generation.*/ +/*! \file ********************************************************************* + * + * \brief Preprocessor utils. + * + * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32 + * - Supported devices:  All AVR32 devices can be used. + * + * \author               Atmel Corporation: http://www.atmel.com \n + *                       Support and FAQ: http://support.atmel.no/ + * + ******************************************************************************/ + +/* Copyright (c) 2009 Atmel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an Atmel + * AVR product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + * + */ + +#ifndef _PREPROCESSOR_H_ +#define _PREPROCESSOR_H_ + +#include "tpaste.h" +#include "stringz.h" +#include "mrepeat.h" + + +#endif  // _PREPROCESSOR_H_ diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h new file mode 100644 index 0000000..3528ea0 --- /dev/null +++ b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/stringz.h @@ -0,0 +1,75 @@ +/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ + +/*This file is prepared for Doxygen automatic documentation generation.*/ +/*! \file ********************************************************************* + * + * \brief Preprocessor stringizing utils. + * + * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32 + * - Supported devices:  All AVR32 devices can be used. + * + * \author               Atmel Corporation: http://www.atmel.com \n + *                       Support and FAQ: http://support.atmel.no/ + * + ******************************************************************************/ + +/* Copyright (c) 2009 Atmel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an Atmel + * AVR product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + * + */ + +#ifndef _STRINGZ_H_ +#define _STRINGZ_H_ + + +/*! \brief Stringize. + * + * Stringize a preprocessing token, this token being allowed to be \#defined. + * + * May be used only within macros with the token passed as an argument if the token is \#defined. + * + * For example, writing STRINGZ(PIN) within a macro \#defined by PIN_NAME(PIN) + * and invoked as PIN_NAME(PIN0) with PIN0 \#defined as A0 is equivalent to + * writing "A0". + */ +#define STRINGZ(x)                                #x + +/*! \brief Absolute stringize. + * + * Stringize a preprocessing token, this token being allowed to be \#defined. + * + * No restriction of use if the token is \#defined. + * + * For example, writing ASTRINGZ(PIN0) anywhere with PIN0 \#defined as A0 is + * equivalent to writing "A0". + */ +#define ASTRINGZ(x)                               STRINGZ(x) + + +#endif  // _STRINGZ_H_ diff --git a/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h new file mode 100644 index 0000000..a5d7bee --- /dev/null +++ b/firmwares/wifishield/wifiHD/src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR/tpaste.h @@ -0,0 +1,95 @@ +/* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ + +/*This file is prepared for Doxygen automatic documentation generation.*/ +/*! \file ********************************************************************* + * + * \brief Preprocessor token pasting utils. + * + * - Compiler:           IAR EWAVR32 and GNU GCC for AVR32 + * - Supported devices:  All AVR32 devices can be used. + * + * \author               Atmel Corporation: http://www.atmel.com \n + *                       Support and FAQ: http://support.atmel.no/ + * + ******************************************************************************/ + +/* Copyright (c) 2009 Atmel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name of Atmel may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * 4. This software may only be redistributed and used in connection with an Atmel + * AVR product. + * + * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + * + */ + +#ifndef _TPASTE_H_ +#define _TPASTE_H_ + + +/*! \name Token Paste + * + * Paste N preprocessing tokens together, these tokens being allowed to be \#defined. + * + * May be used only within macros with the tokens passed as arguments if the tokens are \#defined. + * + * For example, writing TPASTE2(U, WIDTH) within a macro \#defined by + * UTYPE(WIDTH) and invoked as UTYPE(UL_WIDTH) with UL_WIDTH \#defined as 32 is + * equivalent to writing U32. + */ +//! @{ +#define TPASTE2( a, b)                            a##b +#define TPASTE3( a, b, c)                         a##b##c +#define TPASTE4( a, b, c, d)                      a##b##c##d +#define TPASTE5( a, b, c, d, e)                   a##b##c##d##e +#define TPASTE6( a, b, c, d, e, f)                a##b##c##d##e##f +#define TPASTE7( a, b, c, d, e, f, g)             a##b##c##d##e##f##g +#define TPASTE8( a, b, c, d, e, f, g, h)          a##b##c##d##e##f##g##h +#define TPASTE9( a, b, c, d, e, f, g, h, i)       a##b##c##d##e##f##g##h##i +#define TPASTE10(a, b, c, d, e, f, g, h, i, j)    a##b##c##d##e##f##g##h##i##j +//! @} + +/*! \name Absolute Token Paste + * + * Paste N preprocessing tokens together, these tokens being allowed to be \#defined. + * + * No restriction of use if the tokens are \#defined. + * + * For example, writing ATPASTE2(U, UL_WIDTH) anywhere with UL_WIDTH \#defined + * as 32 is equivalent to writing U32. + */ +//! @{ +#define ATPASTE2( a, b)                           TPASTE2( a, b) +#define ATPASTE3( a, b, c)                        TPASTE3( a, b, c) +#define ATPASTE4( a, b, c, d)                     TPASTE4( a, b, c, d) +#define ATPASTE5( a, b, c, d, e)                  TPASTE5( a, b, c, d, e) +#define ATPASTE6( a, b, c, d, e, f)               TPASTE6( a, b, c, d, e, f) +#define ATPASTE7( a, b, c, d, e, f, g)            TPASTE7( a, b, c, d, e, f, g) +#define ATPASTE8( a, b, c, d, e, f, g, h)         TPASTE8( a, b, c, d, e, f, g, h) +#define ATPASTE9( a, b, c, d, e, f, g, h, i)      TPASTE9( a, b, c, d, e, f, g, h, i) +#define ATPASTE10(a, b, c, d, e, f, g, h, i, j)   TPASTE10(a, b, c, d, e, f, g, h, i, j) +//! @} + + +#endif  // _TPASTE_H_ | 
