Replaced MISSING_OK, MISSING_FATAL, ADD_INCLUDE, and ADD_EXCLUDE with
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 633189d..973840a 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -27,7 +27,7 @@
 #define RSYNC_RSH_IO_ENV "RSYNC_RSH_IO"
 
 #define RSYNC_NAME "rsync"
-#define RSYNCD_SYSCONF "/etc/rsyncd.conf"
+/* RSYNCD_SYSCONF is now set in config.h */
 #define RSYNCD_USERCONF "rsyncd.conf"
 
 #define DEFAULT_LOCK_FILE "/var/run/rsyncd.lock"
 #define XMIT_SAME_NAME (1<<5)
 #define XMIT_LONG_NAME (1<<6)
 #define XMIT_SAME_TIME (1<<7)
-#define XMIT_SAME_HIGH_RDEV (1<<8)
+#define XMIT_SAME_RDEV_MAJOR (1<<8)
 #define XMIT_HAS_IDEV_DATA (1<<9)
 #define XMIT_SAME_DEV (1<<10)
+#define XMIT_RDEV_MINOR_IS_SMALL (1<<11)
 
 /* These flags are used in the live flist data. */
 
 #define SERVER_EXCLUDES        1
 #define ALL_EXCLUDES   2
 
-#define MISSING_OK    0
-#define MISSING_FATAL 1
-
-#define ADD_INCLUDE 1
-#define ADD_EXCLUDE 0
+#define XFLG_FATAL_ERRORS      (1<<0)
+#define XFLG_DEF_INCLUDE       (1<<1)
+#define XFLG_NO_PREFIXES       (1<<2)
+#define XFLG_WORD_SPLIT        (1<<3)
 
 #define FULL_FLUSH     1
 #define NORMAL_FLUSH   0
@@ -246,6 +246,12 @@ enum msgcode {
 # endif
 #endif
 
+#if MAJOR_IN_MKDEV
+#include <sys/mkdev.h>
+#elif MAJOR_IN_SYSMACROS
+#include <sys/sysmacros.h>
+#endif
+
 #ifdef HAVE_COMPAT_H
 #include <compat.h>
 #endif
@@ -339,17 +345,11 @@ enum msgcode {
  * device numbers will be truncated.  But it's a kind of silly thing
  * to do anyhow.
  *
- * FIXME: In future, we should probable split the device number into
- * major/minor, and transfer the two parts as 32-bit ints.  That gives
- * you somewhat more of a chance that they'll come from a big machine
- * to a little one in a useful way.
- *
  * FIXME: Really we need an unsigned type, and we perhaps ought to
  * cope with platforms on which this is an unsigned int or even a
  * struct.  Later.
  */ 
 #define INO64_T uint64
-#define DEV64_T uint64
 
 #ifndef MIN
 #define MIN(a,b) ((a)<(b)?(a):(b))
@@ -397,7 +397,7 @@ struct hlink {
 
 struct idev {
        INO64_T inode;
-       DEV64_T dev;
+       dev_t dev;
 };
 
 #define F_DEV  link_u.idev->dev
@@ -407,23 +407,23 @@ struct idev {
 #define F_NEXT link_u.links->next
 
 struct file_struct {
-       time_t modtime;
-       OFF_T length;
-       mode_t mode;
        union {
-               DEV64_T rdev;   /* The device number, if this is a device */
+               dev_t rdev;     /* The device number, if this is a device */
                char *sum;      /* Only a normal file can have a checksum */
-               char *link;     /* Holds symlink string, if a symlink */
+               char *link;     /* Points to symlink string, if a symlink */
        } u;
+       OFF_T length;
+       char *basename;
+       char *dirname;
+       char *basedir;
        union {
                struct idev *idev;
                struct hlink *links;
        } link_u;
-       char *basename;
-       char *dirname;
-       char *basedir;
+       time_t modtime;
        uid_t uid;
        gid_t gid;
+       mode_t mode;
        uchar flags;    /* this item MUST remain last */
 };
 
@@ -433,6 +433,7 @@ struct file_struct {
  */
 #define FLIST_START    (32 * 1024)
 #define FLIST_LINEAR   (FLIST_START * 512)
+
 /*
  * Extent size for allocation pools A minimum size of 128KB
  * is needed to mmap them so that freeing will release the
@@ -442,7 +443,6 @@ struct file_struct {
  * (when they happen) Smaller sizes increase the chance of
  * freed allocations freeing whole extents.
  */
-
 #define FILE_EXTENT    (256 * 1024)
 #define HLINK_EXTENT   (128 * 1024)
 
@@ -593,6 +593,10 @@ extern int errno;
 #define STDERR_FILENO 2
 #endif
 
+#ifndef S_IRUSR
+#define S_IRUSR 0400
+#endif
+
 #ifndef S_IWUSR
 #define S_IWUSR 0200
 #endif
@@ -752,6 +756,10 @@ int inet_pton(int af, const char *src, void *dst);
 const char *get_panic_action(void);
 #endif
 
+#if !(defined(__hpux) || defined(_hpux) || defined (hpux))
 #define UNUSED(x) x __attribute__((__unused__))
+#else
+#define UNUSED(x) x
+#endif
 
 extern const char *io_write_phase, *io_read_phase;