1 | /* This header file is part of the ATMEL AVR-UC3-SoftwareFramework-1.7.0 Release */ |
---|
2 | |
---|
3 | /*This file is prepared for Doxygen automatic documentation generation.*/ |
---|
4 | /*! \file ********************************************************************* |
---|
5 | * |
---|
6 | * \brief Preprocessor stringizing utils. |
---|
7 | * |
---|
8 | * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 |
---|
9 | * - Supported devices: All AVR32 devices can be used. |
---|
10 | * |
---|
11 | * \author Atmel Corporation: http://www.atmel.com \n |
---|
12 | * Support and FAQ: http://support.atmel.no/ |
---|
13 | * |
---|
14 | ******************************************************************************/ |
---|
15 | |
---|
16 | /* Copyright (c) 2009 Atmel Corporation. All rights reserved. |
---|
17 | * |
---|
18 | * Redistribution and use in source and binary forms, with or without |
---|
19 | * modification, are permitted provided that the following conditions are met: |
---|
20 | * |
---|
21 | * 1. Redistributions of source code must retain the above copyright notice, this |
---|
22 | * list of conditions and the following disclaimer. |
---|
23 | * |
---|
24 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
---|
25 | * this list of conditions and the following disclaimer in the documentation |
---|
26 | * and/or other materials provided with the distribution. |
---|
27 | * |
---|
28 | * 3. The name of Atmel may not be used to endorse or promote products derived |
---|
29 | * from this software without specific prior written permission. |
---|
30 | * |
---|
31 | * 4. This software may only be redistributed and used in connection with an Atmel |
---|
32 | * AVR product. |
---|
33 | * |
---|
34 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED |
---|
35 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
---|
36 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE |
---|
37 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR |
---|
38 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
---|
39 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
---|
40 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
---|
41 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
---|
42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
---|
43 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE |
---|
44 | * |
---|
45 | */ |
---|
46 | |
---|
47 | #ifndef _STRINGZ_H_ |
---|
48 | #define _STRINGZ_H_ |
---|
49 | |
---|
50 | |
---|
51 | /*! \brief Stringize. |
---|
52 | * |
---|
53 | * Stringize a preprocessing token, this token being allowed to be \#defined. |
---|
54 | * |
---|
55 | * May be used only within macros with the token passed as an argument if the token is \#defined. |
---|
56 | * |
---|
57 | * For example, writing STRINGZ(PIN) within a macro \#defined by PIN_NAME(PIN) |
---|
58 | * and invoked as PIN_NAME(PIN0) with PIN0 \#defined as A0 is equivalent to |
---|
59 | * writing "A0". |
---|
60 | */ |
---|
61 | #define STRINGZ(x) #x |
---|
62 | |
---|
63 | /*! \brief Absolute stringize. |
---|
64 | * |
---|
65 | * Stringize a preprocessing token, this token being allowed to be \#defined. |
---|
66 | * |
---|
67 | * No restriction of use if the token is \#defined. |
---|
68 | * |
---|
69 | * For example, writing ASTRINGZ(PIN0) anywhere with PIN0 \#defined as A0 is |
---|
70 | * equivalent to writing "A0". |
---|
71 | */ |
---|
72 | #define ASTRINGZ(x) STRINGZ(x) |
---|
73 | |
---|
74 | |
---|
75 | #endif // _STRINGZ_H_ |
---|