1 /* util.h 2 * Copyright (c) 2012 The Chromium OS Authors. All rights reserved. 3 * Use of this source code is governed by a BSD-style license that can be 4 * found in the LICENSE file. 5 * 6 * Logging and other utility functions. 7 */ 8 9 #ifndef _UTIL_H_ 10 #define _UTIL_H_ 11 12 #include <stdlib.h> 13 #include <syslog.h> 14 15 #define die(_msg, ...) do { \ 16 syslog(LOG_ERR, "libminijail: " _msg, ## __VA_ARGS__); \ 17 abort(); \ 18 } while (0) 19 20 #define pdie(_msg, ...) \ 21 die(_msg ": %m", ## __VA_ARGS__) 22 23 #define warn(_msg, ...) \ 24 syslog(LOG_WARNING, "libminijail: " _msg, ## __VA_ARGS__) 25 26 #define info(_msg, ...) \ 27 syslog(LOG_INFO, "libminijail: " _msg, ## __VA_ARGS__) 28 29 extern const char *log_syscalls[]; 30 extern const size_t log_syscalls_len; 31 32 static inline int is_android() { 33 #if defined(__ANDROID__) 34 return 1; 35 #else 36 return 0; 37 #endif 38 } 39 40 static inline int running_with_asan() { 41 #ifndef __has_feature 42 #define __has_feature(x) 0 43 #endif 44 45 #if __has_feature(address_sanitizer) 46 return 1; 47 #else 48 return 0; 49 #endif 50 } 51 52 int lookup_syscall(const char *name); 53 const char *lookup_syscall_name(int nr); 54 long int parse_constant(char *constant_str, char **endptr); 55 char *strip(char *s); 56 char *tokenize(char **stringp, const char *delim); 57 58 #endif /* _UTIL_H_ */ 59