aboutsummaryrefslogtreecommitdiffstats
path: root/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'common.h')
-rw-r--r--common.h63
1 files changed, 29 insertions, 34 deletions
diff --git a/common.h b/common.h
index 2522663..fbbfc18 100644
--- a/common.h
+++ b/common.h
@@ -1,6 +1,6 @@
/*
* dhcpcd - DHCP client daemon
- * Copyright 2006-2008 Roy Marples <roy@marples.name>
+ * Copyright (c) 2006-2009 Roy Marples <roy@marples.name>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -28,53 +28,48 @@
#ifndef COMMON_H
#define COMMON_H
-/* string.h pulls in features.h so the below define checks work */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <stdint.h>
#include <stdio.h>
-#include <string.h>
+#include <time.h>
+
+#include "config.h"
+#include "defs.h"
#define UNCONST(a) ((void *)(unsigned long)(const void *)(a))
+#define timeval_to_double(tv) ((tv)->tv_sec * 1.0 + (tv)->tv_usec * 1.0e-6)
+#define timernorm(tvp) \
+ do { \
+ while ((tvp)->tv_usec >= 1000000) { \
+ (tvp)->tv_sec++; \
+ (tvp)->tv_usec -= 1000000; \
+ } \
+ } while (0 /* CONSTCOND */);
+
#if __GNUC__ > 2 || defined(__INTEL_COMPILER)
-# define _unused __attribute__((__unused__))
+# define _noreturn __attribute__((__noreturn__))
+# define _packed __attribute__((__packed__))
+# define _unused __attribute__((__unused__))
#else
+# define _noreturn
+# define _packed
# 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
+/* We don't really need this as our supported systems define __restrict
+ * automatically for us, but it is here for completeness. */
+#ifndef __restrict
+# if defined(__lint__)
+# define __restrict
+# elif __STDC_VERSION__ >= 199901L
+# define __restrict restrict
+# elif !(2 < __GNUC__ || (2 == __GNU_C && 95 <= __GNUC_VERSION__))
+# define __restrict
# 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 *);
+char *get_line(FILE * __restrict);
extern int clock_monotonic;
int get_monotonic(struct timeval *);
time_t uptime(void);