From f7c5421560640d23fc10803b9d59a9ff1d83e467 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 3 Mar 2009 19:29:22 -0800 Subject: auto import from //depot/cupcake/@135843 --- common.h | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 common.h (limited to 'common.h') diff --git a/common.h b/common.h new file mode 100644 index 0000000..2522663 --- /dev/null +++ b/common.h @@ -0,0 +1,87 @@ +/* + * dhcpcd - DHCP client daemon + * Copyright 2006-2008 Roy Marples + * All rights reserved + + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef COMMON_H +#define COMMON_H + +/* string.h pulls in features.h so the below define checks work */ +#include +#include +#include +#include +#include + +#define UNCONST(a) ((void *)(unsigned long)(const void *)(a)) + +#if __GNUC__ > 2 || defined(__INTEL_COMPILER) +# define _unused __attribute__((__unused__)) +#else +# define _unused +#endif + +#ifndef HAVE_ARC4RANDOM +# ifdef __GLIBC__ +uint32_t arc4random(void); +#else +# define HAVE_ARC4RANDOM +# endif +#endif + +#ifndef HAVE_STRLCPY +# define HAVE_STRLCPY 1 +#endif +/* Only GLIBC doesn't support strlcpy */ +#ifdef __GLIBC__ +# if !defined(__UCLIBC__) && !defined (__dietlibc__) +# undef HAVE_STRLCPY +size_t strlcpy(char *, const char *, size_t); +# endif +#endif + +#ifndef HAVE_CLOSEFROM +# if defined(__NetBSD__) || defined(__OpenBSD__) +# define HAVE_CLOSEFROM 1 +# endif +#endif +#ifndef HAVE_CLOSEFROM +int closefrom(int); +#endif + +int close_fds(void); +int set_cloexec(int); +int set_nonblock(int); +ssize_t get_line(char **, size_t *, FILE *); +extern int clock_monotonic; +int get_monotonic(struct timeval *); +time_t uptime(void); +int writepid(int, pid_t); +void *xrealloc(void *, size_t); +void *xmalloc(size_t); +void *xzalloc(size_t); +char *xstrdup(const char *); + +#endif -- cgit v1.1