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