Annotation of embedaddon/smartmontools/int64.h, revision 1.1
1.1 ! misho 1: /*
! 2: * int64.h
! 3: *
! 4: * Home page of code is: http://smartmontools.sourceforge.net
! 5: *
! 6: * Copyright (C) 2002-11 Bruce Allen <smartmontools-support@lists.sourceforge.net>
! 7: * Copyright (C) 2004-11 Christian Franke
! 8: *
! 9: * This program is free software; you can redistribute it and/or modify
! 10: * it under the terms of the GNU General Public License as published by
! 11: * the Free Software Foundation; either version 2, or (at your option)
! 12: * any later version.
! 13: *
! 14: * You should have received a copy of the GNU General Public License
! 15: * (for example COPYING); if not, write to the Free
! 16: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
! 17: *
! 18: */
! 19:
! 20: #ifndef INT64_H_
! 21: #define INT64_H_
! 22:
! 23: #define INT64_H_CVSID "$Id: int64.h 3393 2011-06-29 19:24:55Z chrfranke $"
! 24:
! 25: // 64 bit integer typedefs and format strings
! 26:
! 27: #ifdef HAVE_INTTYPES_H
! 28: // The ISO C99 standard specifies that in C++ implementations the PRI* macros
! 29: // from <inttypes.h> should only be defined if explicitly requested
! 30: #define __STDC_FORMAT_MACROS 1
! 31: #include <inttypes.h> // PRId64, PRIu64, PRIx64 (also includes <stdint.h>)
! 32: #else
! 33: #ifdef HAVE_STDINT_H
! 34: #include <stdint.h> // int64_t, uint64_t (usually included above)
! 35: #else
! 36: #ifdef HAVE_SYS_INTTYPES_H
! 37: #include <sys/inttypes.h>
! 38: #else
! 39: #ifdef HAVE_SYS_INT_TYPES_H
! 40: #include <sys/int_types.h>
! 41: #else
! 42: #if defined(_WIN32) && defined(_MSC_VER)
! 43: // for MSVC 6.0
! 44: typedef __int64 int64_t;
! 45: typedef unsigned __int64 uint64_t;
! 46: #else
! 47: // for systems with above includes missing (like ix86-pc-linux-gnulibc1),
! 48: // default to GCC if types are undefined in types.h
! 49: #include <sys/types.h>
! 50: #ifndef HAVE_INT64_T
! 51: typedef long long int64_t;
! 52: #endif
! 53: #ifndef HAVE_UINT64_T
! 54: typedef unsigned long long uint64_t;
! 55: #endif
! 56: #endif // _WIN32 && _MSC_VER
! 57: #endif // HAVE_SYS_INT_TYPES_H
! 58: #endif // HAVE_SYS_INTTYPES_H
! 59: #endif // HAVE_STDINT_H
! 60: #endif // HAVE_INTTYPES_H
! 61:
! 62: #ifdef _WIN32
! 63: // for MSVCRT.DLL (used by both MSVC 6.0 and MinGW)
! 64: #define PRId64 "I64d"
! 65: #define PRIu64 "I64u"
! 66: #define PRIx64 "I64x"
! 67: #endif // _WIN32
! 68:
! 69: // If macros not defined in inttypes.h, fix here. Default is GCC
! 70: // style
! 71: #ifndef PRId64
! 72: #define PRId64 "lld"
! 73: #endif // ndef PRId64
! 74:
! 75: #ifndef PRIu64
! 76: #define PRIu64 "llu"
! 77: #endif // ndef PRIu64
! 78:
! 79: #ifndef PRIx64
! 80: #define PRIx64 "llx"
! 81: #endif // ndef PRIx64
! 82:
! 83: #endif // INT64_H
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>