;; microsecond but also has a range of years.
;; CLH: Note that tv-usec used to be a time-t, but that this seems
;; problematic on Darwin x86-64 (and wrong). Trying suseconds-t.
-#!-(or win32 openbsd)
+#!-(or win32 openbsd netbsd)
(define-alien-type nil
(struct timeval
(tv-sec time-t) ; seconds
;; The above definition doesn't work on 64-bit OpenBSD platforms.
;; Both tv_sec and tv_usec are declared as long instead of time_t, and
;; time_t is a typedef for int.
-#!+openbsd
+#!+(or openbsd netbsd)
(define-alien-type nil
(struct timeval
(tv-sec long) ; seconds
;; the POSIX.4 structure for a time value. This is like a "struct
;; timeval" but has nanoseconds instead of microseconds.
-#!-openbsd
+#!-(or openbsd netbsd)
(define-alien-type nil
(struct timespec
(tv-sec long) ; seconds
;; Just as with struct timeval, 64-bit OpenBSD has problems with the
;; above definition. tv_sec is declared as time_t instead of long,
;; and time_t is a typedef for int.
-#!+openbsd
+#!+(or openbsd netbsd)
(define-alien-type nil
(struct timespec
(tv-sec time-t) ; seconds
(tm-zone c-string))) ; Timezone abbreviation.
(define-alien-routine get-timezone sb!alien:void
- (when sb!alien:long :in)
+ (when time-t :in)
(seconds-west sb!alien:int :out)
(daylight-savings-p sb!alien:boolean :out))