1121054Semax/* This program is free software; you can redistribute it and/or modify
2121054Semax   it under the terms of the GNU General Public License as published by
3121054Semax   the Free Software Foundation; either version 2, or (at your option)
4121054Semax   any later version.
5121054Semax
6121054Semax   This program is distributed in the hope that it will be useful,
7121054Semax   but WITHOUT ANY WARRANTY; without even the implied warranty of
8121054Semax   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9121054Semax   GNU General Public License for more details.  */
10121054Semax
11121054Semax/* Data type definitions and declarations for hardlink management.  */
12121054Semax
13121054Semax/* This file should be #included in CVS source files after cvs.h
14121054Semax   since it relies on types and macros defined there. */
15121054Semax
16121054Semax/* The `checked_out' member of a hardlink_info struct is used only
17121054Semax   when files are being checked out or updated.  It is used only when
18121054Semax   hardlinked files are being checked out. */
19121054Semax
20121054Semax#ifdef PRESERVE_PERMISSIONS_SUPPORT
21121054Semaxstruct hardlink_info
22121054Semax{
23121054Semax    Ctype status;		/* as returned from Classify_File() */
24121054Semax    int checked_out;		/* has this file been checked out lately? */
25121054Semax};
26121054Semax
27121054Semaxextern List *hardlist;
28121054Semaxextern char *working_dir;
29121054Semax
30121054SemaxNode *lookup_file_by_inode (const char *);
31121054Semaxvoid update_hardlink_info (const char *);
32121054SemaxList *list_linked_files_on_disk (char *);
33121054Semaxint compare_linkage_lists (List *, List *);
34121054Semaxint find_checkedout_proc (Node *, void *);
35121054Semax#endif /* PRESERVE_PERMISSIONS_SUPPORT */
36121054Semax