xref: /freebsd/sys/contrib/openzfs/cmd/zfs/zfs_projectutil.h (revision 22649d4dba730d46244fd2dff4fd174903c8379f)
1 // SPDX-License-Identifier: CDDL-1.0
2 /*
3  * This file and its contents are supplied under the terms of the
4  * Common Development and Distribution License ("CDDL"), version 1.0.
5  * You may only use this file in accordance with the terms of version
6  * 1.0 of the CDDL.
7  *
8  * A full copy of the text of the CDDL should have accompanied this
9  * source.  A copy of the CDDL is also available via the Internet at
10  * https://opensource.org/license/CDDL-1.0.
11  */
12 /*
13  * Copyright (c) 2017, Intel Corporation. All rights reserved.
14  */
15 
16 #ifndef	_ZFS_PROJECTUTIL_H
17 #define	_ZFS_PROJECTUTIL_H
18 
19 typedef enum {
20 	ZFS_PROJECT_OP_DEFAULT	= 0,
21 	ZFS_PROJECT_OP_LIST	= 1,
22 	ZFS_PROJECT_OP_CHECK	= 2,
23 	ZFS_PROJECT_OP_CLEAR	= 3,
24 	ZFS_PROJECT_OP_SET	= 4,
25 } zfs_project_ops_t;
26 
27 typedef struct zfs_project_control {
28 	uint64_t		zpc_expected_projid;
29 	zfs_project_ops_t	zpc_op;
30 	boolean_t		zpc_dironly;
31 	boolean_t		zpc_ignore_noent;
32 	boolean_t		zpc_keep_projid;
33 	boolean_t		zpc_newline;
34 	boolean_t		zpc_recursive;
35 	boolean_t		zpc_set_flag;
36 } zfs_project_control_t;
37 
38 int zfs_project_handle(const char *name, zfs_project_control_t *zpc);
39 
40 #endif	/* _ZFS_PROJECTUTIL_H */
41