]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/time.h
xnu-3248.60.10.tar.gz
[apple/xnu.git] / bsd / sys / time.h
index 6f3d264cbba2912315c29396ba19eb1c32bb6273..da5e4d784a1a057f43de3ec9376f44b5ca1da769 100644 (file)
 #include <sys/_types.h>
 #ifdef KERNEL
 #include <machine/types.h>     /* user_time_t */
+#include <stdint.h>            /* uint64_t */
+#else /* !KERNEL */
+#include <Availability.h>
 #endif /* KERNEL */
 
 /*
  * [XSI] The fd_set type shall be defined as described in <sys/select.h>.
  * The timespec structure shall be defined as described in <time.h>
  */
-#define __need_fd_set
-#define __need_struct_timespec
-#define __need_struct_timeval
+#include <sys/_types/_fd_def.h>
+#include <sys/_types/_timespec.h>
+#include <sys/_types/_timeval.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#include <sys/_types/_timeval64.h>
+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
+
 #ifdef KERNEL
-#define __need_struct_user_timespec
+#include <sys/_types/_user_timespec.h>
+#include <sys/_types/_user32_timespec.h>
+#include <sys/_types/_user64_timespec.h>
+#include <sys/_types/_user_timeval.h>
+#include <sys/_types/_user32_timeval.h>
+#include <sys/_types/_user64_timeval.h>
+#include <sys/_types/_user32_itimerval.h>
+#include <sys/_types/_user64_itimerval.h>
 #endif /* KERNEL */
-#include <sys/_structs.h>
 
-#ifndef        _TIME_T
-#define        _TIME_T
-typedef        __darwin_time_t time_t;
-#endif
-
-#ifndef _SUSECONDS_T
-#define _SUSECONDS_T
-typedef __darwin_suseconds_t   suseconds_t;
-#endif
+#include <sys/_types/_time_t.h>
+#include <sys/_types/_suseconds_t.h>
 
 /*
  * Structure used as a parameter by getitimer(2) and setitimer(2) system
@@ -115,51 +122,15 @@ struct    itimerval {
  * extra protection here is to permit application redefinition above
  * the default size.
  */
-#ifndef        FD_SETSIZE
-#define        FD_SETSIZE      __DARWIN_FD_SETSIZE
-#endif /* FD_SETSIZE */
-#ifndef FD_SET
-#define        FD_SET(n, p)    __DARWIN_FD_SET(n, p)
-#endif /* FD_SET */
-#ifndef        FD_CLR
-#define        FD_CLR(n,p)     __DARWIN_FD_CLR(n, p)
-#endif /* FD_CLR */
-#ifndef FD_ISSET
-#define        FD_ISSET(n, p)  __DARWIN_FD_ISSET(n, p)
-#endif /* FD_ISSET */
-#ifndef FD_ZERO
-#define        FD_ZERO(p)      __DARWIN_FD_ZERO(p)
-#endif /* FD_ZERO */
+#include <sys/_types/_fd_setsize.h>
+#include <sys/_types/_fd_set.h>
+#include <sys/_types/_fd_clr.h>
+#include <sys/_types/_fd_isset.h>
+#include <sys/_types/_fd_zero.h>
 
 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 
-#ifndef FD_COPY
-#define        FD_COPY(f, t)   __DARWIN_FD_COPY(f, t)
-#endif /* FD_COPY */
-
-#ifdef KERNEL
-#ifndef _USERTIMEVAL
-#define _USERTIMEVAL
-
-#include <machine/types.h>     /* user_time_t */
-/*
- * LP64 version of struct timeval.  time_t is a long and must grow when 
- * we're dealing with a 64-bit process.
- * WARNING - keep in sync with struct timeval
- */
-
-struct user_timeval {
-       user_time_t     tv_sec;         /* seconds */
-       suseconds_t     tv_usec __attribute((aligned(8)));      /* and microseconds */
-};     
-
-struct user_itimerval {
-       struct  user_timeval it_interval;       /* timer interval */
-       struct  user_timeval it_value;          /* current value */
-};
-
-#endif /* _USERTIMEVAL */
-#endif /* KERNEL */
+#include <sys/_types/_fd_copy.h>
 
 #define        TIMEVAL_TO_TIMESPEC(tv, ts) {                                   \
        (ts)->tv_sec = (tv)->tv_sec;                                    \
@@ -227,6 +198,7 @@ struct clockinfo {
 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 __BEGIN_DECLS
 void   microtime(struct timeval *tv);
+void   microtime_with_abstime(struct timeval *tv, uint64_t *abstime);
 void   microuptime(struct timeval *tv);
 #define getmicrotime(a)                microtime(a)
 #define getmicrouptime(a)      microuptime(a)
@@ -239,7 +211,9 @@ void        timevalsub(struct timeval *t1, struct timeval *t2);
 void   timevalfix(struct timeval *t1);
 #ifdef BSD_KERNEL_PRIVATE
 time_t boottime_sec(void);
-void   inittodr(time_t base) __attribute__((section("__TEXT, initcode")));
+void   inittodr(time_t base);
+int    ratecheck(struct timeval *lasttime, const struct timeval *mininterval);
+int    ppsratecheck(struct timeval *lasttime, int *curpps, int maxpps);
 #endif /* BSD_KERNEL_PRIVATE */
 
 __END_DECLS
@@ -257,7 +231,7 @@ __BEGIN_DECLS
 #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 int    adjtime(const struct timeval *, struct timeval *);
 int    futimes(int, const struct timeval *);
-int    lutimes(const char *, const struct timeval *);
+int    lutimes(const char *, const struct timeval *) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
 int    settimeofday(const struct timeval *, const struct timezone *);
 #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */