1 /* @(#)diff.h	1.18 19/11/02 Copyright 1993-2019 J. Schilling */
2 /*
3  *	Definitions for the taylorable diff command
4  *
5  *	Copyright (c) 1993-2019 J. Schilling
6  */
7 /*
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License, Version 1.0 only
10  * (the "License").  You may not use this file except in compliance
11  * with the License.
12  *
13  * See the file CDDL.Schily.txt in this distribution for details.
14  * A copy of the CDDL is also available via the Internet at
15  * http://www.opensource.org/licenses/cddl1.txt
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file CDDL.Schily.txt from this distribution.
19  */
20 
21 #ifndef	_DIFF_H
22 #define	_DIFF_H
23 
24 #ifdef	__cplusplus
25 extern "C" {
26 #endif
27 
28 #define	D_PERM		0x000001
29 #define	D_TYPE		0x000002
30 #define	D_NLINK		0x000004
31 #define	D_SYMPERM	0x000008
32 #define	D_UID		0x000010
33 #define	D_GID		0x000020
34 #define	D_UNAME		0x000040
35 #define	D_GNAME		0x000080
36 #define	D_ID	(D_UID|D_GID|D_UNAME|D_GNAME)
37 #define	D_SIZE		0x000100
38 #define	D_DATA		0x000200
39 #define	D_RDEV		0x000400
40 
41 #define	D_UNUSED1	0x000800
42 
43 #define	D_HLINK		0x001000
44 #define	D_SLINK		0x002000
45 #define	D_SLPATH	0x004000
46 #define	D_SPARS		0x008000
47 #define	D_ATIME		0x010000
48 #define	D_MTIME		0x020000
49 #define	D_CTIME		0x040000
50 #define	D_TIMES	(D_ATIME|D_MTIME|D_CTIME)
51 #define	D_LMTIME	0x080000
52 #define	D_XTIMES	(D_ATIME|D_MTIME|D_CTIME|D_LMTIME)
53 #define	D_DIR		0x100000
54 #define	D_ACL		0x200000
55 #define	D_XATTR		0x400000
56 #define	D_FFLAGS	0x800000
57 #define	D_ANTIME	0x1000000
58 #define	D_MNTIME	0x2000000
59 #define	D_CNTIME	0x4000000
60 #define	D_DNLINK	0x8000000
61 #define	D_MAX		0x80000000
62 
63 /*
64  * Atime frequently changes, it makes no sense to check it by default.
65  * Mtime on symlinks cannot be copies, so do not check it too.
66  */
67 #define	D_DEFLT	(~(D_SYMPERM|D_ATIME|D_LMTIME))
68 #define	D_ALL	(~0L);
69 
70 extern	long	diffopts;
71 
72 typedef struct diffs {
73 	int	d_perm;
74 	int	d_type;
75 	int	d_nlink;
76 	int	d_dnlink;
77 	int	d_symperm;
78 	int	d_uid;
79 	int	d_gid;
80 	int	d_uname;
81 	int	d_gname;
82 	int	d_size;
83 	int	d_data;
84 	int	d_rdev;
85 	int	d_hlink;
86 	int	d_slink;
87 	int	d_slpath;
88 	int	d_sparse;
89 	int	d_atime;
90 	int	d_mtime;
91 	int	d_ctime;
92 	int	d_antime;
93 	int	d_mntime;
94 	int	d_cntime;
95 	int	d_lmtime;
96 	int	d_dir;
97 	int	d_acl;
98 	int	d_xattr;
99 	int	d_fflags;
100 } diffs_t;
101 
102 #ifdef	__cplusplus
103 }
104 #endif
105 
106 #endif	/* _DIFF_H */
107