File: [Development] / xfs-cmds / xfsdump / restore / tree.h (download)
Revision 1.7, Wed Nov 9 05:04:17 2005 UTC (11 years, 11 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.6: +14 -28
lines
Update copyright annotations and license boilerplates to correspond with SGI Legals preferences.
Merge of master-melb:xfs-cmds:24334a by kenmcd.
|
/*
* Copyright (c) 2000-2001 Silicon Graphics, Inc.
* All Rights Reserved.
*
* 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.
*
* This program is distributed in the hope that it would 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 the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef TREE_H
#define TREE_H
/* tree_init - creates a new tree abstraction.
*/
extern bool_t tree_init( char *hkdir,
char *dstdir,
bool_t toconlypr,
bool_t ownerpr,
xfs_ino_t rootino,
xfs_ino_t firstino,
xfs_ino_t lastino,
size64_t dircnt,
size64_t nondircnt,
size64_t vmsz,
bool_t fullpr,
bool_t restoredmpr,
bool_t largewindowpr,
bool_t dstdirisxfspr );
/* tree_sync - synchronizes with an existing tree abstraction
*/
extern bool_t tree_sync( char *hkdir,
char *dstdir,
bool_t toconlypr,
bool_t fullpr,
bool_t dstdirisxfspr );
/* tree_begindir - begins application of dumped directory to tree.
* returns handle to dir node. returns by reference the dirattr
* handle if new. caller must pre-zero (DAH_NULL).
*/
extern nh_t tree_begindir( filehdr_t *fhdrp, dah_t *dahp );
/* tree_addent - adds a directory entry; takes dirh from above call
*/
extern rv_t tree_addent( nh_t dirh,
xfs_ino_t ino,
size_t gen,
char *name,
size_t namelen );
/* ends application of dir
*/
extern void tree_enddir( nh_t dirh );
#ifdef TREE_CHK
/* tree_chk - do a sanity check of the tree prior to post-processing and
* non-dir restoral. returns FALSE if corruption detected.
*/
extern bool_t tree_chk( void );
#endif /* TREE_CHK */
/* tree_marknoref - mark all nodes as no reference, not dumped dirs, and
* clear all directory attribute handles. done at the beginning
* of the restoral of a dump session, in order to detect directory entries
* no longer needed.
*/
extern void tree_marknoref( void );
/* mark all nodes in tree as either selected or unselected, depending on sense
*/
extern void tree_markallsubtree( bool_t sensepr );
extern bool_t tree_subtree_parse( bool_t sensepr, char *path );
extern bool_t tree_post( char *path1, char *path2 );
extern rv_t tree_cb_links( xfs_ino_t ino,
u_int32_t biggen,
int32_t ctime,
int32_t mtime,
bool_t ( * funcp )( void *contextp,
bool_t linkpr,
char *path1,
char *path2 ),
void *contextp,
char *path1,
char *path2 );
/* called after all dirs have been restored. adjusts the ref flags,
* by noting that dirents not refed because their parents were not dumped
* are virtually reffed if their parents are refed.
*/
extern bool_t tree_adjref( void );
extern bool_t tree_setattr( char *path );
extern bool_t tree_delorph( void );
extern bool_t tree_subtree_inter( void );
#ifdef EXTATTR
extern bool_t tree_extattr( bool_t ( * cbfunc )( char *path, dah_t dah ),
char *path );
/* does a depthwise bottom-up traversal of the tree, calling
* the supplied callback for all directories with a non-NULL dirattr
* handle. The callback will get called with the directory's pathname
* and it dirattr handle. the traversal will be aborted if the
* callback returns FALSE. returns FALSE if operator requests
* an interrupt.
*/
#endif /* EXTATTR */
#endif /* TREE_H */