]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Common header file changes not applicable to open-vm-tools.
authorOliver Kurth <okurth@vmware.com>
Thu, 8 Feb 2018 00:39:25 +0000 (16:39 -0800)
committerOliver Kurth <okurth@vmware.com>
Thu, 8 Feb 2018 00:39:25 +0000 (16:39 -0800)
open-vm-tools/lib/include/safetime.h
open-vm-tools/lib/include/vm_basic_types.h

index fca72bc7386b74e15c5b95c40ada3b4b9d39bd8d..fd56da2b3dd2191d2b21607f8f2171dfb556f97e 100644 (file)
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (C) 2004-2016 VMware, Inc. All rights reserved.
+ * Copyright (C) 2004-2018 VMware, Inc. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as published
  *      temporary until we switch to a newer version of
  *      Visual Studio that uses the 64-bit verisions by default.
  *
- *      In Windows, the user is allowed to set the time past the
- *      32-bit overflow date (in 2038), which can cause crashes
- *      and security problems.  In Linux, the time can't be set
- *      to overflow, so we do nothing.
- *
- *      NB: We do not know if one can set the time past 2038 in
- *      64-bit versions of Linux, and, if so, what happens when
- *      one does.  This requires further investigation sometime 
- *      in the future.
- *
- *      The stat types and functions must be defined manually,
- *      since they contain time_ts, and we can't use the macro
- *      trick, since the struct stat and the function stat have
- *      the same 32 bit name (but different 64 bit names).
+ *      NB: We have switched; existence of this header is temporary
+ *      until include sites can be updated.
  *
  */
 
 
 #ifdef _WIN32
 
-#undef  FMTTIME
-#define FMTTIME FMT64"d"
-
-#if (_MSC_VER < 1400)
-
-#if (defined(_STAT_DEFINED) || defined(_INC_TIME) || defined(_INC_TYPES))
-#error Use safetime.h instead of time.h, stat.h, and types.h
-#endif
-
-#define _STAT_DEFINED
-
-#include <time.h>
-#include <sys/utime.h>
-#include <sys/timeb.h>
-
-#define time_t __time64_t
-#define time(a) _time64(a)
-#define localtime(a) _localtime64((a))
-
-#define _ctime(a) _ctime64((a))
-#define ctime(a) _ctime64((a))
-
-#define _ftime(a) _ftime64((a))
-#define ftime(a) _ftime64((a))
-#define _timeb __timeb64
-
-#define _gmtime(a) _gmtime64((a))
-#define gmtime(a) _gmtime64((a))
-
-#define _mktime(a) _mktime64((a))
-#define mktime(a) _mktime64((a))
-
-#define _utime(a,b) _utime64((a),(b))
-#define utime(a,b) _utime64((a),(b))
-#define _utimbuf __utimbuf64
-#define utimbuf __utimbuf64
-
-#define _wctime(a) _wctime64((a),(b))
-#define wctime(a) _wctime64((a),(b))
-
-#define _futime(a,b) _futime64((a),(b))
-#define futime(a,b) _futime64((a),(b))
-
-#define _wutime(a,b) _wutime64((a),(b))
-#define wutime(a,b) _wutime64((a),(b))
-
-#include <sys/types.h>
-
-#ifdef  _MSC_VER
-#pragma pack(push,8)
-#endif  
-
-struct _stat {
-        _dev_t st_dev;
-        _ino_t st_ino;
-        unsigned short st_mode;
-        short st_nlink;
-        short st_uid;
-        short st_gid;
-        _dev_t st_rdev;
-        __int64 st_size;
-        __time64_t st_atime;
-        __time64_t st_mtime;
-        __time64_t st_ctime;
-        };
-
-struct stat {
-        _dev_t st_dev;
-        _ino_t st_ino;
-        unsigned short st_mode;
-        short st_nlink;
-        short st_uid;
-        short st_gid;
-        _dev_t st_rdev;
-        __int64 st_size;
-        __time64_t st_atime;
-        __time64_t st_mtime;
-        __time64_t st_ctime;
-        };
-
-struct __stat64 {
-        _dev_t st_dev;
-        _ino_t st_ino;
-        unsigned short st_mode;
-        short st_nlink;
-        short st_uid;
-        short st_gid;
-        _dev_t st_rdev;
-        __int64 st_size;
-        __time64_t st_atime;
-        __time64_t st_mtime;
-        __time64_t st_ctime;
-        };
-
-#ifdef  _MSC_VER
-#pragma pack(pop)
-#endif  
-
-#include <sys/stat.h>
-
-#define stat(a,b) _stat64((a),(struct __stat64*)(b))
-#define _stat(a,b) _stat64((a),(struct __stat64*)(b))
-
-#define fstat(a,b) _fstat64((a),(struct __stat64*)(b))
-#define _fstat(a,b) _fstat64((a),(struct __stat64*)(b))
-
-#define wstat(a,b) _wstat64((a),(struct __stat64*)(b))
-#define _wstat(a,b) _wstat64((a),(struct __stat64*)(b))
-
-#else /* (_MSC_VER < 1400) */
-
-/* 
- * Starting with VC80, we can pick between 32-bit and 64-bit time_t
- * by defining or not defining _USE_32BIT_TIME_T.  Don't define it.
- */
-
 #include <time.h>
 #include <sys/utime.h>
 #include <sys/timeb.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 
-/* Make sure that the headers didn't revert to 32-bit. */
-#ifdef _USE_32BIT_TIME_T
-#error Refusing to use 32-bit time_t in safetime.h
-#endif
-
-#endif /* (_MSC_VER < 1400) */
-
 #else
 
 #include <sys/types.h>
index d59bc8f0666c7c7ef8c277868b9e986cfd8731e3..d27f5f8c734eae860b52bd53f41b235baf12457c 100644 (file)
@@ -777,6 +777,14 @@ typedef void * UserVA;
 #error "gcc version is too old to compile assembly, need gcc-3.3 or better"
 #endif
 
+/*
+ * Similarly, we require a compiler that is at least vc80 (vs2005).
+ * Enforce this here.
+ */
+#if defined _MSC_VER && _MSC_VER < 1400
+#error "cl.exe version is too old, need vc80 or better"
+#endif
+
 
 /*
  * Consider the following reasons functions are inlined:
@@ -1108,33 +1116,6 @@ typedef void * UserVA;
 # define FMTMODE "o"
 #endif
 
-/*
- * Format modifier for printing time_t. Most platforms define a time_t to be
- * a long int, but on FreeBSD (as of 5.0, it seems), the time_t is a signed
- * size quantity. Refer to the definition of FMTSZ to see why we need silly
- * preprocessor arithmetic.
- * Use this like this: printf("The mode is %" FMTTIME ".\n", time);
- */
-#if defined(__FreeBSD__) && (__FreeBSD__ + 0) && ((__FreeBSD__ + 0) >= 5)
-#   define FMTTIME FMTSZ"d"
-#else
-#   if defined(_MSC_VER)
-#      ifndef _SAFETIME_H_
-#         if (_MSC_VER < 1400) || defined(_USE_32BIT_TIME_T)
-#             define FMTTIME "ld"
-#         else
-#             define FMTTIME FMT64"d"
-#         endif
-#      else
-#         ifndef FMTTIME
-#            error "safetime.h did not define FMTTIME"
-#         endif
-#      endif
-#   else
-#      define FMTTIME "ld"
-#   endif
-#endif
-
 #ifdef __APPLE__
 /*
  * Format specifier for all these annoying types such as {S,U}Int32