1 1.2 christos /* $NetBSD: cdefs.h,v 1.3 2022/04/03 01:10:58 christos Exp $ */ 2 1.1 christos 3 1.1 christos /* cdefs.h 4 1.1 christos 5 1.1 christos Standard C definitions... */ 6 1.1 christos 7 1.1 christos /* 8 1.1 christos * Copyright (c) 1995 RadioMail Corporation. All rights reserved. 9 1.3 christos * Copyright (C) 2004-2022 Internet Systems Consortium, Inc. ("ISC") 10 1.1 christos * Copyright (c) 1996-2003 by Internet Software Consortium 11 1.1 christos * 12 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public 13 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this 14 1.1 christos * file, You can obtain one at http://mozilla.org/MPL/2.0/. 15 1.1 christos * 16 1.1 christos * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES 17 1.1 christos * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 18 1.1 christos * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR 19 1.1 christos * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 20 1.1 christos * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 21 1.1 christos * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 22 1.1 christos * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 23 1.1 christos * 24 1.1 christos * Internet Systems Consortium, Inc. 25 1.3 christos * PO Box 360 26 1.3 christos * Newmarket, NH 03857 USA 27 1.1 christos * <info (at) isc.org> 28 1.1 christos * https://www.isc.org/ 29 1.1 christos * 30 1.1 christos * This software was written for RadioMail Corporation by Ted Lemon 31 1.1 christos * under a contract with Vixie Enterprises. Further modifications have 32 1.1 christos * been made for Internet Systems Consortium under a contract 33 1.1 christos * with Vixie Laboratories. 34 1.1 christos */ 35 1.1 christos 36 1.1 christos #if !defined (__ISC_DHCP_CDEFS_H__) 37 1.1 christos #define __ISC_DHCP_CDEFS_H__ 38 1.1 christos /* Delete attributes if not gcc or not the right version of gcc. */ 39 1.1 christos #if !defined(__GNUC__) || __GNUC__ < 2 || \ 40 1.1 christos (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || defined (darwin) 41 1.1 christos #define __attribute__(x) 42 1.1 christos #endif 43 1.1 christos 44 1.1 christos /* The following macro handles the case of unwanted return values. In 45 1.1 christos * GCC one can specify an attribute for a function to generate a warning 46 1.1 christos * if the return value of the function is ignored and one can't dispose of 47 1.1 christos * the warning by the use of void. In conjunction with the use of -Werror 48 1.1 christos * these warnings prohibit the compilation of the package. This macro 49 1.1 christos * allows us to assign the return value to a variable and then ignore it. 50 1.1 christos * 51 1.1 christos * __attribute__((unused)) is added for avoiding another warning about set, 52 1.1 christos * but unused variable. This is produced by unused-but-set-variable switch 53 1.1 christos * that is enabled by default in gcc 4.6. 54 1.1 christos */ 55 1.1 christos #if !defined(__GNUC__) || (__GNUC__ < 4) 56 1.1 christos #define IGNORE_RET(x) (void) x 57 1.1 christos #else 58 1.1 christos #define IGNORE_RET(x) \ 59 1.1 christos do { \ 60 1.1 christos int __attribute__((unused)) ignore_return ;\ 61 1.1 christos ignore_return = x; \ 62 1.1 christos } while (0) 63 1.1 christos #endif 64 1.1 christos 65 1.1 christos /* This macro is defined to avoid unused-but-set-variable warning 66 1.3 christos * that is enabled in gcc 4.6 67 1.1 christos */ 68 1.1 christos 69 1.1 christos #define IGNORE_UNUSED(x) { x = x; } 70 1.1 christos 71 1.1 christos #endif /* __ISC_DHCP_CDEFS_H__ */ 72