12d60b848STomohiro Kusumi /* 22d60b848STomohiro Kusumi * SPDX-License-Identifier: BSD-3-Clause 32d60b848STomohiro Kusumi * 42d60b848STomohiro Kusumi * Copyright (c) 2022 Tomohiro Kusumi <tkusumi@netbsd.org> 52d60b848STomohiro Kusumi * Copyright (c) 2011-2022 The DragonFly Project. All rights reserved. 62d60b848STomohiro Kusumi * 72d60b848STomohiro Kusumi * Redistribution and use in source and binary forms, with or without 82d60b848STomohiro Kusumi * modification, are permitted provided that the following conditions 92d60b848STomohiro Kusumi * are met: 102d60b848STomohiro Kusumi * 112d60b848STomohiro Kusumi * 1. Redistributions of source code must retain the above copyright 122d60b848STomohiro Kusumi * notice, this list of conditions and the following disclaimer. 132d60b848STomohiro Kusumi * 2. Redistributions in binary form must reproduce the above copyright 142d60b848STomohiro Kusumi * notice, this list of conditions and the following disclaimer in 152d60b848STomohiro Kusumi * the documentation and/or other materials provided with the 162d60b848STomohiro Kusumi * distribution. 172d60b848STomohiro Kusumi * 3. Neither the name of The DragonFly Project nor the names of its 182d60b848STomohiro Kusumi * contributors may be used to endorse or promote products derived 192d60b848STomohiro Kusumi * from this software without specific, prior written permission. 202d60b848STomohiro Kusumi * 212d60b848STomohiro Kusumi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 222d60b848STomohiro Kusumi * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 232d60b848STomohiro Kusumi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 242d60b848STomohiro Kusumi * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 252d60b848STomohiro Kusumi * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 262d60b848STomohiro Kusumi * INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 272d60b848STomohiro Kusumi * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 282d60b848STomohiro Kusumi * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 292d60b848STomohiro Kusumi * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 302d60b848STomohiro Kusumi * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 312d60b848STomohiro Kusumi * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 322d60b848STomohiro Kusumi * SUCH DAMAGE. 332d60b848STomohiro Kusumi */ 342d60b848STomohiro Kusumi 352d60b848STomohiro Kusumi #ifndef _HAMMER2_H 362d60b848STomohiro Kusumi #define _HAMMER2_H 372d60b848STomohiro Kusumi 38*fc4148feSTomohiro Kusumi #include <sys/ioccom.h> 39917508cdSTomohiro Kusumi #include <limits.h> 40917508cdSTomohiro Kusumi 412d60b848STomohiro Kusumi #include "hammer2/hammer2.h" 422d60b848STomohiro Kusumi 43*fc4148feSTomohiro Kusumi #define HAMMER2IOC_READ _IOWR('h', 999, int) 44*fc4148feSTomohiro Kusumi 452d60b848STomohiro Kusumi typedef struct { 462d60b848STomohiro Kusumi hammer2_mkfs_options_t mkfs_options; 472d60b848STomohiro Kusumi int label_specified; 482d60b848STomohiro Kusumi char mount_label[HAMMER2_INODE_MAXNAME]; 492d60b848STomohiro Kusumi int num_volhdr; 50917508cdSTomohiro Kusumi 519a149651STomohiro Kusumi /* HAMMER2IOC_xxx */ 529a149651STomohiro Kusumi long ioctl_cmd; 539a149651STomohiro Kusumi 543999233bSTomohiro Kusumi /* HAMMER2IOC_EMERG_MODE */ 5548ed4577STomohiro Kusumi bool emergency_mode; 569a149651STomohiro Kusumi 573999233bSTomohiro Kusumi /* HAMMER2IOC_PFS_xxx */ 583999233bSTomohiro Kusumi char pfs_cmd_name[NAME_MAX+1]; 593999233bSTomohiro Kusumi char pfs_name[NAME_MAX+1]; 609a149651STomohiro Kusumi 61f804c425STomohiro Kusumi /* HAMMER2IOC_INODE_xxx */ 62465e1141STomohiro Kusumi char inode_cmd_name[NAME_MAX]; 63f804c425STomohiro Kusumi char inode_path[PATH_MAX]; 64f804c425STomohiro Kusumi 653999233bSTomohiro Kusumi /* HAMMER2IOC_DESTROY */ 66917508cdSTomohiro Kusumi char destroy_path[PATH_MAX]; 67917508cdSTomohiro Kusumi hammer2_tid_t destroy_inum; 68917508cdSTomohiro Kusumi 69*fc4148feSTomohiro Kusumi /* HAMMER2IOC_READ */ 70*fc4148feSTomohiro Kusumi char read_path[PATH_MAX]; 71*fc4148feSTomohiro Kusumi 722d60b848STomohiro Kusumi hammer2_off_t image_size; 732d60b848STomohiro Kusumi } hammer2_makefs_options_t; 742d60b848STomohiro Kusumi 752d60b848STomohiro Kusumi #endif /* _HAMMER2_H */ 76