X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Furcu-utils.h;h=407f42e07e6fd078d247e707a3058f3aa6cb9dff;hb=HEAD;hp=3c3c7a166198a20026f3f6e303215c6111415aac;hpb=ce28e67a534dcf0b68ccad2218e5a2e552e6e469;p=userspace-rcu.git diff --git a/src/urcu-utils.h b/src/urcu-utils.h index 3c3c7a1..face655 100644 --- a/src/urcu-utils.h +++ b/src/urcu-utils.h @@ -1,36 +1,31 @@ +// SPDX-FileCopyrightText: 2018 Michael Jeanson +// +// SPDX-License-Identifier: LGPL-2.1-or-later + #ifndef _URCU_UTILS_H #define _URCU_UTILS_H /* - * urcu-utils.h - * * Userspace RCU library internal utils - * - * Copyright (c) 2018 Michael Jeanson - * - * 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; either - * version 2.1 of the License, or (at your option) any later version. - * - * 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 + #define urcu_stringify(a) _urcu_stringify(a) #define _urcu_stringify(a) #a -/* There is no concept of symbol aliases on MacOS */ -#ifdef __APPLE__ -#define URCU_ATTR_ALIAS(x) -#else -#define URCU_ATTR_ALIAS(x) __attribute__((alias(x))) -#endif +#define max_t(type, x, y) \ + ({ \ + type __max1 = (x); \ + type __max2 = (y); \ + __max1 > __max2 ? __max1: __max2; \ + }) + +#define min_t(type, x, y) \ + ({ \ + type __min1 = (x); \ + type __min2 = (y); \ + __min1 <= __min2 ? __min1: __min2; \ + }) #endif /* _URCU_UTILS_H */