xref: /dflybsd-src/sys/vfs/hammer/hammer_mount.h (revision 46137e17a8da872430785836fc270a05649a93ce)
18750964dSMatthew Dillon /*
28750964dSMatthew Dillon  * Copyright (c) 2007 The DragonFly Project.  All rights reserved.
38750964dSMatthew Dillon  *
48750964dSMatthew Dillon  * This code is derived from software contributed to The DragonFly Project
58750964dSMatthew Dillon  * by Matthew Dillon <dillon@backplane.com>
68750964dSMatthew Dillon  *
78750964dSMatthew Dillon  * Redistribution and use in source and binary forms, with or without
88750964dSMatthew Dillon  * modification, are permitted provided that the following conditions
98750964dSMatthew Dillon  * are met:
108750964dSMatthew Dillon  *
118750964dSMatthew Dillon  * 1. Redistributions of source code must retain the above copyright
128750964dSMatthew Dillon  *    notice, this list of conditions and the following disclaimer.
138750964dSMatthew Dillon  * 2. Redistributions in binary form must reproduce the above copyright
148750964dSMatthew Dillon  *    notice, this list of conditions and the following disclaimer in
158750964dSMatthew Dillon  *    the documentation and/or other materials provided with the
168750964dSMatthew Dillon  *    distribution.
178750964dSMatthew Dillon  * 3. Neither the name of The DragonFly Project nor the names of its
188750964dSMatthew Dillon  *    contributors may be used to endorse or promote products derived
198750964dSMatthew Dillon  *    from this software without specific, prior written permission.
208750964dSMatthew Dillon  *
218750964dSMatthew Dillon  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
228750964dSMatthew Dillon  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
238750964dSMatthew Dillon  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
248750964dSMatthew Dillon  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
258750964dSMatthew Dillon  * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
268750964dSMatthew Dillon  * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
278750964dSMatthew Dillon  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
288750964dSMatthew Dillon  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
298750964dSMatthew Dillon  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
308750964dSMatthew Dillon  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
318750964dSMatthew Dillon  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
328750964dSMatthew Dillon  * SUCH DAMAGE.
338750964dSMatthew Dillon  *
3467863d04SMatthew Dillon  * $DragonFly: src/sys/vfs/hammer/hammer_mount.h,v 1.11 2008/09/17 21:44:20 dillon Exp $
358750964dSMatthew Dillon  */
368750964dSMatthew Dillon 
37964cb30dSTomohiro Kusumi #ifndef VFS_HAMMER_MOUNT_H_
38964cb30dSTomohiro Kusumi #define VFS_HAMMER_MOUNT_H_
39964cb30dSTomohiro Kusumi 
408750964dSMatthew Dillon #ifndef _SYS_TYPES_H_
418750964dSMatthew Dillon #include <sys/types.h>
428750964dSMatthew Dillon #endif
438750964dSMatthew Dillon #ifndef _SYS_MOUNT_H_
448750964dSMatthew Dillon #include <sys/mount.h>
458750964dSMatthew Dillon #endif
468750964dSMatthew Dillon 
478750964dSMatthew Dillon /*
488750964dSMatthew Dillon  * This structure is passed from userland to the kernel during the mount
498750964dSMatthew Dillon  * system call.
508750964dSMatthew Dillon  */
518750964dSMatthew Dillon struct hammer_mount_info {
52e73c3403STomohiro Kusumi 	char		**volumes;	/* array of pointers to device names */
538750964dSMatthew Dillon 	int		nvolumes;	/* number of devices */
54195c19a1SMatthew Dillon 	int		hflags;		/* extended hammer mount flags */
55732a1697SMatthew Dillon 	int		master_id;	/* -1=no-mirror mode, or 0-15 */
56*46137e17STomohiro Kusumi 	uint64_t	asof;		/* asof - HAMMER_MAX_TID is current */
5767863d04SMatthew Dillon 	char		reserved1[136];	/* was struct export_args */
58*46137e17STomohiro Kusumi 	uint64_t	reserved2[15];
598750964dSMatthew Dillon };
608750964dSMatthew Dillon 
61195c19a1SMatthew Dillon #define HMNT_NOHISTORY	0x00000001
62732a1697SMatthew Dillon #define HMNT_MASTERID	0x00000002	/* master_id field set */
6387b8f936STomohiro Kusumi #define HMNT_NOMIRROR	0x00000004	/* master_id field set to -1 */
641b0ab2c3SMatthew Dillon #define HMNT_UNDO_DIRTY	0x00000008
65195c19a1SMatthew Dillon 
6687b8f936STomohiro Kusumi #define HMNT_USERFLAGS	(HMNT_NOHISTORY | HMNT_MASTERID | HMNT_NOMIRROR)
6751c35492SMatthew Dillon 
68964cb30dSTomohiro Kusumi #endif /* !VFS_HAMMER_MOUNT_H_ */
69