00001 00002 /* 00003 * The olsr.org Optimized Link-State Routing daemon(olsrd) 00004 * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file 00005 * All rights reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * * Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * * Redistributions in binary form must reproduce the above copyright 00014 * notice, this list of conditions and the following disclaimer in 00015 * the documentation and/or other materials provided with the 00016 * distribution. 00017 * * Neither the name of olsr.org, olsrd nor the names of its 00018 * contributors may be used to endorse or promote products derived 00019 * from this software without specific prior written permission. 00020 * 00021 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00022 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00023 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00024 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00025 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00026 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00027 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00028 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00029 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00030 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00031 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00032 * POSSIBILITY OF SUCH DAMAGE. 00033 * 00034 * Visit http://www.olsr.org for more information. 00035 * 00036 * If you find this software useful feel free to make a donation 00037 * to the project. For more information see the website or contact 00038 * the copyright holders. 00039 * 00040 */ 00041 00042 #ifndef _OLSR_DEFS 00043 #define _OLSR_DEFS 00044 00045 #ifdef WIN32 00046 #define IF_NAMESIZE 32 00047 #endif 00048 00049 /* Export symbol for use in plugins. See ../olsrd-exports.sh */ 00050 #ifndef EXPORT 00051 # define EXPORT(x) x 00052 #endif 00053 00054 #define MAXMESSAGESIZE 1500 /* max broadcast size */ 00055 #define UDP_IPV4_HDRSIZE 28 00056 #define UDP_IPV6_HDRSIZE 62 00057 00058 #define ARRAYSIZE(x) (sizeof(x)/sizeof(*(x))) 00059 #ifndef MAX 00060 #define MAX(x,y) ((x) > (y) ? (x) : (y)) 00061 #endif 00062 #ifndef MIN 00063 #define MIN(x,y) ((x) < (y) ? (x) : (y)) 00064 #endif 00065 00066 /* we actually want the below #define. But to easily check for "errors" because of 00067 * too large inline functions, we want to have just "inline" there. 00068 */ 00069 #ifndef INLINE 00070 #ifdef __GNUC__ 00071 #define INLINE inline __attribute__((always_inline)) 00072 #else 00073 #define INLINE inline 00074 #endif 00075 #endif 00076 00077 /* 00078 * On ARM, the compiler spits out additional warnings if called 00079 * with -Wcast-align if you cast e.g. char* -> int*. While this 00080 * is fine, most of that warnings are un-critical. Also the ARM 00081 * CPU will throw BUS_ERROR if alignment does not fit. For this, 00082 * we add an additional cast to (void *) to prevent the warning. 00083 */ 00084 #define ARM_NOWARN_ALIGN(x) ((void *)(x)) 00085 #define ARM_CONST_NOWARN_ALIGN const void * 00086 00087 #define ROUND_UP_TO_POWER_OF_2(val, pow2) (((val) + (pow2) - 1) & ~((pow2) - 1)) 00088 00089 enum app_state { 00090 STATE_INIT, 00091 STATE_RUNNING, 00092 STATE_SHUTDOWN, 00093 #ifndef WIN32 00094 STATE_RECONFIGURE, 00095 #endif 00096 }; 00097 00098 extern enum app_state app_state; 00099 00100 #endif 00101 00102 /* 00103 * Local Variables: 00104 * c-basic-offset: 2 00105 * indent-tabs-mode: nil 00106 * End: 00107 */
1.6.3