1 /* 2 ** OSSP uuid - Universally Unique Identifier 3 ** Copyright (c) 2004-2008 Ralf S. Engelschall <rse@engelschall.com> 4 ** Copyright (c) 2004-2008 The OSSP Project <http://www.ossp.org/> 5 ** 6 ** This file is part of OSSP uuid, a library for the generation 7 ** of UUIDs which can found at http://www.ossp.org/pkg/lib/uuid/ 8 ** 9 ** Permission to use, copy, modify, and distribute this software for 10 ** any purpose with or without fee is hereby granted, provided that 11 ** the above copyright notice and this permission notice appear in all 12 ** copies. 13 ** 14 ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 15 ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16 ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 ** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR 18 ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 20 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 21 ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23 ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 24 ** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 ** SUCH DAMAGE. 26 ** 27 ** uuid_time.h: Time Management API 28 */ 29 30 #ifndef __UUID_TIME_H__ 31 #define __UUID_TIME_H__ 32 33 #include "uuid_ac.h" 34 35 #if defined(WIN32) 36 #define WIN32_LEAN_AND_MEAN 37 #include <windows.h> 38 #endif 39 #include <time.h> 40 #ifdef HAVE_SYS_TIME_H 41 #include <sys/time.h> 42 #endif 43 #ifdef HAVE_SYS_TYPES_H 44 #include <sys/types.h> 45 #endif 46 47 #define TIME_PREFIX uuid_ 48 49 /* embedding support */ 50 #ifdef TIME_PREFIX 51 #if defined(__STDC__) || defined(__cplusplus) 52 #define __TIME_CONCAT(x,y) x ## y 53 #define TIME_CONCAT(x,y) __TIME_CONCAT(x,y) 54 #else 55 #define __TIME_CONCAT(x) x 56 #define TIME_CONCAT(x,y) __TIME_CONCAT(x)y 57 #endif 58 #define time_gettimeofday TIME_CONCAT(TIME_PREFIX,time_gettimeofday) 59 #define time_usleep TIME_CONCAT(TIME_PREFIX,time_usleep) 60 #endif 61 62 /* minimum C++ support */ 63 #ifdef __cplusplus 64 #define DECLARATION_BEGIN extern "C" { 65 #define DECLARATION_END } 66 #else 67 #define DECLARATION_BEGIN 68 #define DECLARATION_END 69 #endif 70 71 DECLARATION_BEGIN 72 73 #ifndef HAVE_STRUCT_TIMEVAL 74 struct timeval { long tv_sec; long tv_usec; }; 75 #endif 76 77 extern int time_gettimeofday(struct timeval *); 78 extern int time_usleep(long usec); 79 80 DECLARATION_END 81 82 #endif /* __UUID_TIME_H__ */ 83 84