xref: /dflybsd-src/usr.sbin/makefs/hammer2.h (revision fc4148fe6433963760fb77515a762ce076e70282)
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