[MINOR] tools: add two macros MID_RANGE and MAX_RANGE

Those will be used later, they return the largest and middle integer
possible for a given variable or type.
This commit is contained in:
Willy Tarreau 2011-03-28 15:55:43 +02:00
parent 26f0f17200
commit d3db94399f

View File

@ -1,22 +1,22 @@
/*
include/common/tools.h
Trivial macros needed everywhere.
Copyright (C) 2000-2006 Willy Tarreau - w@1wt.eu
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation, version 2.1
exclusively.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* include/common/tools.h
* Trivial macros needed everywhere.
*
* Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, version 2.1
* exclusively.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _COMMON_TOOLS_H
@ -33,6 +33,14 @@
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
/* return an integer of type <ret> with only the highest bit set. <ret> may be
* both a variable or a type.
*/
#define MID_RANGE(ret) ((typeof(ret))1 << (8*sizeof(ret) - 1))
/* return the largest possible integer of type <ret>, with all bits set */
#define MAX_RANGE(ret) (~(typeof(ret))0)
#endif /* _COMMON_TOOLS_H */
/*