]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/bc_types.h
Big backport from Enterprise
[bacula/bacula] / bacula / src / bc_types.h
index cb289f2319d0dfc3b1627ebf4a2d5eaec93c06f5..f1cfacc9aa950b038fae0b13b015abb4829bdbb6 100644 (file)
@@ -1,29 +1,20 @@
 /*
-   Bacula® - The Network Backup Solution
-
-   Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
-
-   The main author of Bacula is Kern Sibbald, with contributions from
-   many others, a complete list can be found in the file AUTHORS.
-   This program is Free Software; you can redistribute it and/or
-   modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation and included
-   in the file LICENSE.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.
-
-   Bacula® is a registered trademark of John Walker.
-   The licensor of Bacula is the Free Software Foundation Europe
-   (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
-   Switzerland, email:ftf@fsfeurope.org.
+   Bacula(R) - The Network Backup Solution
+
+   Copyright (C) 2000-2017 Kern Sibbald
+
+   The original author of Bacula is Kern Sibbald, with contributions
+   from many others, a complete list can be found in the file AUTHORS.
+
+   You may use this file and others of this release according to the
+   license defined in the LICENSE file, which includes the Affero General
+   Public License, v3.0 ("AGPLv3") and some additional permissions and
+   terms pursuant to its AGPLv3 Section 7.
+
+   This notice must be preserved when any source code is
+   conveyed and/or propagated.
+
+   Bacula(R) is a registered trademark of Kern Sibbald.
 */
 /*
     Define integer types for Bacula -- Kern Sibbald
     uint8_t, uint16_t, uint32_t, uint64_t
 
     Also, we define types such as file address lengths.
-
-    Version $Id$
-
  */
 
 
 #ifndef __bc_types_INCLUDED
 #define __bc_types_INCLUDED
 
+/*
+ * These are the sizes of the current definitions of database
+ *  Ids.  In general, FileId_t can be set to uint64_t and it
+ *  *should* work.  Users have reported back that it does work
+ *  for PostgreSQL.  For the other types, all places in Bacula
+ *  have been converted, but no one has actually tested it.
+ * In principle, the only field that really should need to be
+ *  64 bits is the FileId_t
+ */
+typedef uint64_t FileId_t;
+typedef uint32_t DBId_t;              /* general DB id type */
+typedef uint32_t JobId_t;
+
+
 typedef char POOLMEM;
 
 
@@ -62,7 +64,7 @@ typedef unsigned int u_int;
 
 #ifndef HAVE_INTXX_T
 # if (SIZEOF_CHAR == 1)
-typedef char int8_t;
+typedef signed char int8_t;
 # else
 #  error "8 bit int type not found."
 # endif
@@ -147,6 +149,31 @@ typedef u_int64_t u_intmax_t;
 # 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
@@ -172,7 +199,6 @@ typedef u_int64_t u_intmax_t;
 typedef double            float64_t;
 typedef float             float32_t;
 
-#endif /* __bc_types_INCLUDED */
 
 /* Define the uint versions actually used in Bacula */
 #ifndef uint8_t
@@ -192,8 +218,35 @@ typedef float             float32_t;
 #define socklen_t int
 #endif
 
+#ifndef HAVE_WIN32
+#ifndef SOCKET_ERROR
+#define SOCKET_ERROR (-1)
+#endif
+#endif
+
 #ifdef HAVE_OLD_SOCKOPT
 #define sockopt_val_t char *
 #else
 #define sockopt_val_t void *
 #endif
+
+/*
+ * Status codes returned by create_file()
+ *   Used in findlib, filed, and plugins
+ */
+enum {
+   CF_SKIP = 1,                   /* skip file (not newer or something) */
+   CF_ERROR,                      /* error creating file */
+   CF_EXTRACT,                    /* file created, data to extract */
+   CF_CREATED,                    /* file created, no data to extract */
+   CF_CORE                        /* let bacula core handle the file creation */
+};
+
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+#endif /* __bc_types_INCLUDED */