00001 /* Copyright (C) 2005-2010, Axis Communications AB, LUND, SWEDEN 00002 * 00003 * This file is part of RAPP. 00004 * 00005 * RAPP is free software: you can redistribute it and/or modify 00006 * it under the terms of the GNU Lesser General Public License as published 00007 * by the Free Software Foundation, either version 3 of the License, or 00008 * (at your option) any later version. 00009 * You can use the comments under either the terms of the GNU Lesser General 00010 * Public License version 3 as published by the Free Software Foundation, 00011 * either version 3 of the License or (at your option) any later version, or 00012 * the GNU Free Documentation License version 1.3 or any later version 00013 * published by the Free Software Foundation; with no Invariant Sections, no 00014 * Front-Cover Texts, and no Back-Cover Texts. 00015 * A copy of the license is included in the documentation section entitled 00016 * "GNU Free Documentation License". 00017 * 00018 * RAPP is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU Lesser General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public 00024 * License and a copy of the GNU Free Documentation License along 00025 * with RAPP. If not, see <http://www.gnu.org/licenses/>. 00026 */ 00027 00033 #ifndef RC_UTIL_H 00034 #define RC_UTIL_H 00035 00036 #include "rc_platform.h" /* RC_ALIGNMENT */ 00037 00038 /* 00039 * ------------------------------------------------------------- 00040 * Macros 00041 * ------------------------------------------------------------- 00042 */ 00043 00047 #undef MIN 00048 #define MIN(a, b) ((a) < (b) ? (a) : (b)) 00049 00053 #undef MAX 00054 #define MAX(a, b) ((a) > (b) ? (a) : (b)) 00055 00059 #undef CLAMP 00060 #define CLAMP(val, lo, hi) \ 00061 ((val) < (lo) ? (lo) : (val) > (hi) ? (hi) : (val)) 00062 00066 #define RC_DIV_CEIL(num, den) \ 00067 (((num) + (den) - 1) / (den)) 00068 00072 #define RC_ALIGN(value) \ 00073 (RC_ALIGNMENT*RC_DIV_CEIL(value, RC_ALIGNMENT)) 00074 00075 #endif /* RC_UTIL_H */