1 /* 2 * Copyright (c) 2015-2018 Red Hat, Inc. 3 * 4 * All rights reserved. 5 * 6 * Author: Jan Friesse (jfriesse@redhat.com) 7 * 8 * This software licensed under BSD license, the text of which follows: 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions are met: 12 * 13 * - Redistributions of source code must retain the above copyright notice, 14 * this list of conditions and the following disclaimer. 15 * - Redistributions in binary form must reproduce the above copyright notice, 16 * this list of conditions and the following disclaimer in the documentation 17 * and/or other materials provided with the distribution. 18 * - Neither the name of the Red Hat, Inc. nor the names of its 19 * contributors may be used to endorse or promote products derived from this 20 * software without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 32 * THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 35 #ifndef _UTILS_H_ 36 #define _UTILS_H_ 37 38 #include <sys/types.h> 39 #include <inttypes.h> 40 41 #define UTILS_PRI_NODE_ID "%" PRIu32 42 #define UTILS_PRI_DATACENTER_ID "%" PRIu32 43 /* 44 #define UTILS_PRI_NODE_ID "0x%" PRIx32 45 #define UTILS_PRI_DATACENTER_ID "0x%" PRIx32 46 */ 47 #define UTILS_PRI_MSG_SEQ "%" PRIu32 48 #define UTILS_PRI_RING_ID "%" PRIx32 ".%" PRIx64 49 #define UTILS_PRI_CONFIG_VERSION "%" PRIu64 50 #define UTILS_PRI_EXPECTED_VOTES "%" PRIu32 51 52 #ifdef __cplusplus 53 extern "C" { 54 #endif 55 56 extern int utils_parse_bool_str(const char *str); 57 58 extern int utils_flock(const char *lockfile, pid_t pid, 59 int *another_instance_running); 60 61 extern void utils_tty_detach(void); 62 63 extern int utils_fd_set_non_blocking(int fd); 64 65 extern int utils_strtonum(const char *str, long long int min_val, 66 long long int max_val, long long int *res); 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif /* _UTILS_H_ */ 73