X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/38b02c13d0173fc4a1ee67d67ceefc7107eefdc0..e3217f144829a17e539eeeb076346cfac9761980:/rsync.h diff --git a/rsync.h b/rsync.h index 47943f30..8b513b2b 100644 --- a/rsync.h +++ b/rsync.h @@ -81,6 +81,9 @@ #define MAX_MAP_SIZE (256*1024) #define IO_BUFFER_SIZE (4092) +#define IOERR_GENERAL (1<<0) /* For backward compatibility, this must == 1 */ +#define IOERR_VANISHED (1<<1) + #define MAX_ARGS 1000 #define MPLEX_BASE 7 @@ -104,9 +107,7 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 }; #include "config.h" -/* The default RSYNC_RSH is always set in config.h, either to "remsh", - * "rsh", or otherwise something specified by the user. HAVE_REMSH - * controls parameter munging for HP/UX, etc. */ +/* The default RSYNC_RSH is always set in config.h. */ #include @@ -122,10 +123,10 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 }; #ifdef HAVE_STDLIB_H #include -#else -#ifdef HAVE_MALLOC_H -#include #endif + +#if defined(HAVE_MALLOC_H) && (defined(HAVE_MALLINFO) || !defined(HAVE_STDLIB_H)) +#include #endif #ifdef HAVE_SYS_SOCKET_H @@ -196,10 +197,6 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 }; #include #endif -#ifdef HAVE_MALLOC_H -# include -#endif - /* these are needed for the uid/gid mapping code */ #include #include @@ -420,15 +417,23 @@ struct sum_struct { }; struct map_struct { - char *p; - int fd,p_size,p_len; - OFF_T file_size, p_offset, p_fd_offset; + char *p; /* Window pointer */ + int fd; /* File Descriptor */ + int p_size; /* Window size at allocation */ + int p_len; /* Window size after fill */ + /* p_size and p_len could be + * consolodated by using a local + * variable in map_ptr() */ + int status; /* first errno from read errors */ + OFF_T file_size; /* File size (from stat) */ + OFF_T p_offset; /* Window start */ + OFF_T p_fd_offset; /* offset of cursor in fd ala lseek */ }; -#define MATCHFLG_WILD 0x0001 /* pattern has '*', '[', and/or '?' */ -#define MATCHFLG_WILD2 0x0002 /* pattern has '**' */ -#define MATCHFLG_WILD2_PREFIX 0x0004 /* pattern starts with '**' */ -#define MATCHFLG_ABS_PATH 0x0008 /* path-match on absolute path */ +#define MATCHFLG_WILD (1<<0) /* pattern has '*', '[', and/or '?' */ +#define MATCHFLG_WILD2 (1<<1) /* pattern has '**' */ +#define MATCHFLG_WILD2_PREFIX (1<<2) /* pattern starts with '**' */ +#define MATCHFLG_ABS_PATH (1<<3) /* path-match on absolute path */ struct exclude_struct { char *pattern; int match_flags; @@ -622,6 +627,10 @@ extern int errno; #endif +/* Convenient wrappers for malloc and realloc. Use them. */ +#define new(type) ((type *)malloc(sizeof(type))) +#define new_array(type, num) ((type *)_new_array(sizeof(type), (num))) +#define realloc_array(ptr, type, num) ((type *)_realloc_array((ptr), sizeof(type), (num))) /* use magic gcc attributes to catch format errors */ void rprintf(enum logcode , const char *, ...)