/*
- Bacula® - The Network Backup Solution
-
- Copyright (C) 2000-2008 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 Kern Sibbald.
- 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;
# 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
#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 */