4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or https://opensource.org/licenses/CDDL-1.0.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright (c) 2019 Lawrence Livermore National Security, LLC.
26 #ifndef _SYS_VDEV_TRIM_H
27 #define _SYS_VDEV_TRIM_H
35 extern unsigned int zfs_trim_metaslab_skip
;
37 extern void vdev_trim(vdev_t
*vd
, uint64_t rate
, boolean_t partial
,
39 extern void vdev_trim_stop(vdev_t
*vd
, vdev_trim_state_t tgt
, list_t
*vd_list
);
40 extern void vdev_trim_stop_all(vdev_t
*vd
, vdev_trim_state_t tgt_state
);
41 extern void vdev_trim_stop_wait(spa_t
*spa
, list_t
*vd_list
);
42 extern void vdev_trim_restart(vdev_t
*vd
);
43 extern void vdev_autotrim(spa_t
*spa
);
44 extern void vdev_autotrim_kick(spa_t
*spa
);
45 extern void vdev_autotrim_stop_all(spa_t
*spa
);
46 extern void vdev_autotrim_stop_wait(vdev_t
*vd
);
47 extern void vdev_autotrim_restart(spa_t
*spa
);
48 extern int vdev_trim_simple(vdev_t
*vd
, uint64_t start
, uint64_t size
);
49 extern void vdev_trim_l2arc(spa_t
*spa
);
55 #endif /* _SYS_VDEV_TRIM_H */