Skip to content

Commit

Permalink
core: use stdint.h where possible
Browse files Browse the repository at this point in the history
Previously bc_types.h declared a lot of types itself. As of C99 the
compiler provides these types if they are available on the platform, so
we don't need any tricks for this anymore.
This patch removes most of the fixed-width integer aliasing in favor of
the standard-provided fixed-width types.
  • Loading branch information
arogge committed May 25, 2020
1 parent aa36725 commit e69ae28
Show file tree
Hide file tree
Showing 5 changed files with 2 additions and 333 deletions.
2 changes: 0 additions & 2 deletions core/CMakeLists.txt
Expand Up @@ -385,8 +385,6 @@ set(LOCALEDIR \"${CMAKE_INSTALL_LOCALEDIR}\")

set(HAVE_CRYPTO 1)

include(BareosTypeSizes)

include(TestBigEndian)
test_big_endian(IS_BIGENDIAN)
if(IS_BIGENDIAN)
Expand Down
87 changes: 0 additions & 87 deletions core/cmake/BareosTypeSizes.cmake

This file was deleted.

171 changes: 2 additions & 169 deletions core/src/include/bc_types.h
Expand Up @@ -42,24 +42,11 @@
#ifndef BAREOS_INCLUDE_BC_TYPES_H_
#define BAREOS_INCLUDE_BC_TYPES_H_

#include <stdint.h>

#ifdef HAVE_WIN32
typedef UINT64 u_int64_t;
typedef UINT64 uint64_t;
typedef INT64 int64_t;
typedef UINT32 uint32_t;
typedef INT64 intmax_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef signed short int16_t;
typedef signed char int8_t;
typedef int __daddr_t;

# if !defined(HAVE_MINGW)
typedef long int32_t;
typedef float float32_t;
typedef double float64_t;
# endif

# if !defined(_MSC_VER) || (_MSC_VER < 1400) // VC8+
# ifndef _TIME_T_DEFINED
# define _TIME_T_DEFINED
Expand All @@ -74,13 +61,6 @@ typedef __int64 ino_t;
# endif
# endif

typedef UINT32 u_int32_t;
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;

# if !defined(HAVE_MINGW)
# undef uint32_t
# endif
#endif /* HAVE_WIN32 */

/**
Expand All @@ -99,156 +79,9 @@ typedef uint32_t JobId_t;

typedef char POOLMEM;


/* Types */

/* If sys/types.h does not supply intXX_t, supply them ourselves */
/* (or die trying) */

#ifndef HAVE_U_INT
typedef unsigned int u_int;
#endif

#ifndef HAVE_INTXX_T
# if (SIZEOF_CHAR == 1)
typedef signed char int8_t;
# else
# error "8 bit int type not found."
# endif
# if (SIZEOF_SHORT_INT == 2)
typedef short int int16_t;
# else
# error "16 bit int type not found."
# endif
# if (SIZEOF_INT == 4)
typedef int int32_t;
# else
# error "32 bit int type not found."
# endif
#endif

/* If sys/types.h does not supply u_intXX_t, supply them ourselves */
#ifdef HAVE_U_INTXX_T
# if (SIZEOF_CHAR == 1)
typedef unsigned char u_int8_t;
# else
# error "8 bit int type not found. Required!"
# endif
# if (SIZEOF_SHORT_INT == 2)
typedef unsigned short int u_int16_t;
# else
# error "16 bit int type not found. Required!"
# endif
# if (SIZEOF_INT == 4)
typedef unsigned int u_int32_t;
# else
# error "32 bit int type not found. Required!"
# endif
#endif

/* 64-bit types */
#ifndef HAVE_INT64_T
# if (SIZEOF_LONG_LONG_INT == 8)
typedef long long int int64_t;
# define HAVE_INT64_T 1
# else
# if (SIZEOF_LONG_INT == 8)
typedef long int int64_t;
# define HAVE_INT64_T 1
# endif
# endif
#endif

#ifndef HAVE_INTMAX_T
# ifdef HAVE_INT64_T
typedef int64_t intmax_t;
# else
# error "64 bit type not found. Required!"
# endif
#endif

#ifndef HAVE_U_INT64_T
# if (SIZEOF_LONG_LONG_INT == 8)
typedef unsigned long long int u_int64_t;
# define HAVE_U_INT64_T 1
# else
# if (SIZEOF_LONG_INT == 8)
typedef unsigned long int u_int64_t;
# define HAVE_U_INT64_T 1
# else
# error "64 bit type not found. Required!"
# endif
# endif
#endif

#ifndef HAVE_U_INTMAX_T
# ifdef HAVE_U_INT64_T
typedef u_int64_t u_intmax_t;
# else
# error "64 bit type not found. Required!"
# endif
#endif

#ifndef HAVE_INTPTR_T
# define HAVE_INTPTR_T 1
# if (SIZEOF_INT_P == 4)
typedef int32_t intptr_t;
# else
# if (SIZEOF_INT_P == 8)
typedef int64_t intptr_t;
# else
# error "Can't find sizeof pointer. Required!"
# endif
# endif
#endif

#ifndef HAVE_UINTPTR_T
# define HAVE_UINTPTR_T 1
# if (SIZEOF_INT_P == 4)
typedef uint32_t uintptr_t;
# else
# if (SIZEOF_INT_P == 8)
typedef uint64_t uintptr_t;
# else
# error "Can't find sizeof pointer. Required!"
# endif
# endif
#endif

/* Limits for the above types. */
#undef INT8_MIN
#undef INT8_MAX
#undef UINT8_MAX
#undef INT16_MIN
#undef INT16_MAX
#undef UINT16_MAX
#undef INT32_MIN
#undef INT32_MAX
#undef UINT32_MAX

#define INT8_MIN (-127 - 1)
#define INT8_MAX (127)
#define UINT8_MAX (255u)
#define INT16_MIN (-32767 - 1)
#define INT16_MAX (32767)
#define UINT16_MAX (65535u)
#define INT32_MIN (-2147483647 - 1)
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295u)

typedef double float64_t;
typedef float float32_t;


/* Define the uint versions actually used in Bareos */
#ifndef uint8_t
# define uint8_t u_int8_t
# define uint16_t u_int16_t
# define uint32_t u_int32_t
# define uint64_t u_int64_t
# define uintmax_t u_intmax_t
#endif

/* Bareos time -- Unix time with microseconds */
#define btime_t int64_t
/* Unix time (time_t) widened to 64 bits */
Expand Down
45 changes: 0 additions & 45 deletions core/src/include/config.h.in
Expand Up @@ -273,18 +273,6 @@ extern char WIN_VERSION[];
// Define to 1 if you have the `inet_ntop' function
#cmakedefine HAVE_INET_NTOP @HAVE_INET_NTOP@

// Define to 1 if you have int64_t
#cmakedefine HAVE_INT64_T @HAVE_INT64_T@

// Define to 1 if you have intmax_t
#cmakedefine HAVE_INTMAX_T @HAVE_INTMAX_T@

// Define to 1 if the system has the type `intptr_t'
#cmakedefine HAVE_INTPTR_T @HAVE_INTPTR_T@

// Define to 1 if you have intxx_t
#cmakedefine HAVE_INTXX_T @HAVE_INTXX_T@

// Define to 1 if ioctl request is unsigned long int
#cmakedefine HAVE_IOCTL_ULINT_REQUEST @HAVE_IOCTL_ULINT_REQUEST@

Expand Down Expand Up @@ -549,9 +537,6 @@ extern char WIN_VERSION[];
// Define to 1 if you have the <ucontext.h> header file
#cmakedefine HAVE_UCONTEXT_H @HAVE_UCONTEXT_H@

// Define to 1 if the system has the type `uintptr_t'
#cmakedefine HAVE_UINTPTR_T @HAVE_UINTPTR_T@

// Define to 1 if you have the <umem.h> header file
#cmakedefine HAVE_UMEM_H @HAVE_UMEM_H@

Expand All @@ -561,18 +546,6 @@ extern char WIN_VERSION[];
// Define to 1 if you have the `utimes' function
#cmakedefine HAVE_UTIMES @HAVE_UTIMES@

// Define to 1 if you have u_int
#cmakedefine HAVE_U_INT @HAVE_U_INT@

// Define to 1 if you have u_int64_t
#cmakedefine HAVE_U_INT64_T @HAVE_U_INT64_T@

// Define to 1 if you have u_intmax_t
#cmakedefine HAVE_U_INTMAX_T @HAVE_U_INTMAX_T@

// Define to 1 if you have u_intxx_t
#cmakedefine HAVE_U_INTXX_T @HAVE_U_INTXX_T@

// Define to 1 if you have the `vsnprintf' function
#cmakedefine HAVE_VSNPRINTF @HAVE_VSNPRINTF@

Expand All @@ -591,24 +564,6 @@ extern char WIN_VERSION[];
// Define to the full name of this package
#cmakedefine PACKAGE_NAME @PACKAGE_NAME@

// The size of `char', as computed by sizeof
#cmakedefine SIZEOF_CHAR @SIZEOF_CHAR@

// The size of `int', as computed by sizeof
#cmakedefine SIZEOF_INT @SIZEOF_INT@

// The size of `int *', as computed by sizeof
#cmakedefine SIZEOF_INT_P @SIZEOF_INT_P@

// The size of `long int', as computed by sizeof
#cmakedefine SIZEOF_LONG_INT @SIZEOF_LONG_INT@

// The size of `long long int', as computed by sizeof
#cmakedefine SIZEOF_LONG_LONG_INT @SIZEOF_LONG_LONG_INT@

// The size of `short int', as computed by sizeof
#cmakedefine SIZEOF_SHORT_INT @SIZEOF_SHORT_INT@

// Where are system config files stored
#cmakedefine SYSCONFDIR @SYSCONFDIR@

Expand Down

0 comments on commit e69ae28

Please sign in to comment.