X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fbc_types.h;h=bd08067dd67121186cd968f66c37b40db82ecc48;hb=9f228d77cc529f23211673b7d9270b546e639b20;hp=a73546bace97bc80f4405c4717507c0b02fba55d;hpb=2411307fe342ad522c8b196605bb83f365d287c4;p=bacula%2Fbacula diff --git a/bacula/src/bc_types.h b/bacula/src/bc_types.h index a73546bace..bd08067dd6 100644 --- a/bacula/src/bc_types.h +++ b/bacula/src/bc_types.h @@ -1,4 +1,33 @@ /* + 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. +*/ +/* + Define integer types for Bacula -- Kern Sibbald + Integer types. These types should be be used in all contexts in which the length of an integer stored on removable media must be known regardless of the @@ -8,39 +37,34 @@ int8_t, int16_t, int32_t, int64_t uint8_t, uint16_t, uint32_t, uint64_t - float32_t, float64_t Also, we define types such as file address lengths. Version $Id$ */ -/* - Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - 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., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. +#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; -#ifndef __bc_types_INCLUDED -#define __bc_types_INCLUDED - typedef char POOLMEM; + /* Types */ /* If sys/types.h does not supply intXX_t, supply them ourselves */ @@ -52,7 +76,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 @@ -137,16 +161,41 @@ 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 -#undef INT8_MAX -#undef UINT8_MAX -#undef INT16_MIN -#undef INT16_MAX +#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 INT32_MIN +#undef INT32_MAX #undef UINT32_MAX #define INT8_MIN (-127-1) @@ -162,26 +211,23 @@ 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 #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 /* Bacula time -- Unix time with microseconds */ -#define btime_t uint64_t +#define btime_t int64_t /* Unix time (time_t) widened to 64 bits */ #define utime_t int64_t -#ifdef HAVE_CYGWIN -#define int_least16_t int32_t -#endif - #ifndef HAVE_SOCKLEN_T -#define socklen_t unsigned int +#define socklen_t int #endif #ifdef HAVE_OLD_SOCKOPT @@ -189,3 +235,23 @@ typedef float float32_t; #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 */ +}; + +#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 */