1/**************************************************************************** 2 * * 3 * GNAT COMPILER COMPONENTS * 4 * * 5 * C A L * 6 * * 7 * C Implementation File * 8 * * 9 * Copyright (C) 1992-2014, Free Software Foundation, Inc. * 10 * * 11 * GNAT is free software; you can redistribute it and/or modify it under * 12 * terms of the GNU General Public License as published by the Free Soft- * 13 * ware Foundation; either version 3, or (at your option) any later ver- * 14 * sion. GNAT is distributed in the hope that it will be useful, but WITH- * 15 * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * 16 * or FITNESS FOR A PARTICULAR PURPOSE. * 17 * * 18 * As a special exception under Section 7 of GPL version 3, you are granted * 19 * additional permissions described in the GCC Runtime Library Exception, * 20 * version 3.1, as published by the Free Software Foundation. * 21 * * 22 * You should have received a copy of the GNU General Public License and * 23 * a copy of the GCC Runtime Library Exception along with this program; * 24 * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see * 25 * <http://www.gnu.org/licenses/>. * 26 * * 27 * GNAT was originally developed by the GNAT team at New York University. * 28 * Extensive contributions were provided by Ada Core Technologies Inc. * 29 * * 30 ****************************************************************************/ 31 32/* This file contains those routines named by Import pragmas in package */ 33/* GNAT.Calendar. It is used to do Duration to timeval conversion. */ 34/* These are simple wrappers function to abstract the fact that the C */ 35/* struct timeval fields type are not normalized (they are generally */ 36/* defined as int or long values). */ 37 38#if defined (__vxworks) 39#ifdef __RTP__ 40#include <time.h> 41#include <version.h> 42#if (_WRS_VXWORKS_MAJOR == 7) || (_WRS_VXWORKS_MINOR != 0) 43#include <sys/time.h> 44#endif 45#else 46#include <sys/times.h> 47#endif 48#elif defined (__nucleus__) 49#include <time.h> 50#else 51#include <sys/time.h> 52#endif 53 54#ifdef __MINGW32__ 55#include "mingw32.h" 56#if STD_MINGW 57#include <winsock.h> 58#endif 59#endif 60 61void 62__gnat_timeval_to_duration (struct timeval *t, long long *sec, long *usec) 63{ 64 *sec = (long long) t->tv_sec; 65 *usec = (long) t->tv_usec; 66} 67 68void 69__gnat_duration_to_timeval (long long sec, long usec, struct timeval *t) 70{ 71 /* here we are doing implicit conversion to the struct timeval 72 fields types. */ 73 74 t->tv_sec = sec; 75 t->tv_usec = usec; 76} 77