/** * \file * Common reusable definitions. * * \todo All public symbols need to be prefixed to make name clashes * more unlikely. * * \author Georg Hopp * * \copyright * Copyright © 2014 Georg Hopp * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef __TR_COMMONS_H__ #define __TR_COMMONS_H__ #define Bool char #ifdef TRUE # undef TRUE #endif #ifdef FALSE # undef FALSE #endif #define TRUE 1 #define FALSE 0 #ifndef MAX # define MAX(a,b) ((a)>(b)? (a) : (b)) #endif #ifndef MIN # define MIN(a,b) ((a)<(b)? (a) : (b)) #endif /** * XOR variant of swapping a variable */ #define SWAP_XOR(a, b) ((a)^=(b),(b)^=(a),(a)^=(b)) /** * swap two variable through an intermediate. */ #define SWAP(type, a, b) do { \ type tmp = (a); \ (a) = (b); \ (b) = tmp; \ } while(0); /** * Const STRing Argument * This makro evaluates to two function argument. * * \param char* val A NULL terminated static string. */ #define CSTRA(val) val, sizeof(val)-1 //!< Const STRing Argument #endif // __TR_COMMONS_H__ // vim: set ts=4 sw=4: