Arrow / Mbed OS DAPLink Reset
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers compiler.h Source File

compiler.h

Go to the documentation of this file.
00001 /**
00002  * @file    compiler.h
00003  * @brief   Special asserts and macros
00004  *
00005  * DAPLink Interface Firmware
00006  * Copyright (c) 2009-2016, ARM Limited, All Rights Reserved
00007  * SPDX-License-Identifier: Apache-2.0
00008  *
00009  * Licensed under the Apache License, Version 2.0 (the "License"); you may
00010  * not use this file except in compliance with the License.
00011  * You may obtain a copy of the License at
00012  *
00013  * http://www.apache.org/licenses/LICENSE-2.0
00014  *
00015  * Unless required by applicable law or agreed to in writing, software
00016  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00017  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00018  * See the License for the specific language governing permissions and
00019  * limitations under the License.
00020  */
00021 
00022 #ifndef COMPILER_H
00023 #define COMPILER_H
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 #define COMPILER_CONCAT_(a, b) a##b
00030 #define COMPILER_CONCAT(a, b) COMPILER_CONCAT_(a, b)
00031 
00032 // Divide by zero if the the expression is false.  This
00033 // causes an error at compile time.
00034 //
00035 // The special value '__COUNTER__' is used to create a unique value to
00036 // append to 'compiler_assert_' to create a unique token.  This prevents
00037 // conflicts resulting from the same enum being declared multiple times.
00038 #define COMPILER_ASSERT(e) enum { COMPILER_CONCAT(compiler_assert_, __COUNTER__) = 1/((e) ? 1 : 0) }
00039 
00040 #define __at(_addr) __attribute__ ((at(_addr)))
00041 
00042 #ifdef __cplusplus
00043 }
00044 #endif
00045 
00046 #endif