a180a41bba1d50822df23fff0099e90b86638b89vboxsync System-specific declarations and macros related to time.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
a180a41bba1d50822df23fff0099e90b86638b89vboxsync This program and the accompanying materials are licensed and made available under
a180a41bba1d50822df23fff0099e90b86638b89vboxsync the terms and conditions of the BSD License that accompanies this distribution.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync The full text of the license may be found at
a180a41bba1d50822df23fff0099e90b86638b89vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Copyright (c) 1982, 1986, 1993
a180a41bba1d50822df23fff0099e90b86638b89vboxsync The Regents of the University of California. All rights reserved.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Redistribution and use in source and binary forms, with or without
a180a41bba1d50822df23fff0099e90b86638b89vboxsync modification, are permitted provided that the following conditions
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 1. Redistributions of source code must retain the above copyright
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync notice, this list of conditions and the following disclaimer.
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync 2. Redistributions in binary form must reproduce the above copyright
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync notice, this list of conditions and the following disclaimer in the
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync documentation and/or other materials provided with the distribution.
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync 3. Neither the name of the University nor the names of its contributors
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync may be used to endorse or promote products derived from this software
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync without specific prior written permission.
6e9aa255e3376b2da5824c09c4c62bc233463bfevboxsync THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
a180a41bba1d50822df23fff0099e90b86638b89vboxsync ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
a180a41bba1d50822df23fff0099e90b86638b89vboxsync IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
a180a41bba1d50822df23fff0099e90b86638b89vboxsync ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
a180a41bba1d50822df23fff0099e90b86638b89vboxsync FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
a180a41bba1d50822df23fff0099e90b86638b89vboxsync DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
a180a41bba1d50822df23fff0099e90b86638b89vboxsync OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
a180a41bba1d50822df23fff0099e90b86638b89vboxsync LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
a180a41bba1d50822df23fff0099e90b86638b89vboxsync OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
a180a41bba1d50822df23fff0099e90b86638b89vboxsync SUCH DAMAGE.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync time.h 8.5 (Berkeley) 5/4/95
a180a41bba1d50822df23fff0099e90b86638b89vboxsync NetBSD: time.h,v 1.56 2006/06/18 21:09:24 uwe Exp
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * Traditional *nix structure returned by gettimeofday(2) system call,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * and used in other calls.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * Structure defined by POSIX.1b to be like a timeval.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * This works within EFI since the times really are time_t.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync} while (/*CONSTCOND*/0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync} while (/*CONSTCOND*/0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Operations on timevals. */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \
a180a41bba1d50822df23fff0099e90b86638b89vboxsync } while (/* CONSTCOND */ 0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \
a180a41bba1d50822df23fff0099e90b86638b89vboxsync } while (/* CONSTCOND */ 0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Operations on timespecs. */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define timespecclear(tsp) (tsp)->tv_sec = (tsp)->tv_nsec = 0
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define timespecisset(tsp) ((tsp)->tv_sec || (tsp)->tv_nsec)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \
a180a41bba1d50822df23fff0099e90b86638b89vboxsync } while (/* CONSTCOND */ 0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \
a180a41bba1d50822df23fff0099e90b86638b89vboxsync } while (/* CONSTCOND */ 0)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * Names of the interval timers, and structure
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * defining a timer setting.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * Structure defined by POSIX.1b to be like a itimerval, but with
a180a41bba1d50822df23fff0099e90b86638b89vboxsync * timespecs. Used in the timer_*() system calls.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
a180a41bba1d50822df23fff0099e90b86638b89vboxsync (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#endif /* if 0 */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Functions useful for dealing with EFI */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Convert an EFI_TIME structure into a time_t value. */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Convert a time_t value into an EFI_TIME structure.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync It is the caller's responsibility to free the returned structure.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Convert an EFI_TIME structure into a C Standard tm structure. */
a180a41bba1d50822df23fff0099e90b86638b89vboxsyncvoid Efi2Tm( EFI_TIME *EfiBDtime, struct tm *NewTime);
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* BSD compatibility functions */
a180a41bba1d50822df23fff0099e90b86638b89vboxsyncint gettimeofday (struct timeval *tp, void *ignore);
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* POSIX compatibility functions */
a180a41bba1d50822df23fff0099e90b86638b89vboxsyncint setitimer (int which, const struct itimerval *value, struct itimerval *ovalue);
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#endif /* !_SYS_TIME_H_ */