1 /*
2  * CDDL HEADER START
3  *
4  * This file and its contents are supplied under the terms of the
5  * Common Development and Distribution License ("CDDL"), version 1.0.
6  * You may only use this file in accordance with the terms of version
7  * 1.0 of the CDDL.
8  *
9  * A full copy of the text of the CDDL should have accompanied this
10  * source.  A copy of the CDDL is also available via the Internet at
11  * http://www.illumos.org/license/CDDL.
12  *
13  * CDDL HEADER END
14  */
15 /*
16  * Copyright (c) 2014, 2016 by Delphix. All rights reserved.
17  * Copyright 2020 Joyent, Inc.
18  */
19 #ifndef	_ZIO_PRIORITY_H
20 #define	_ZIO_PRIORITY_H
21 
22 #ifdef	__cplusplus
23 extern "C" {
24 #endif
25 
26 /*
27  * NOTE: If ZIO_PRIORITY_NUM_QUEUEABLE changes, update ZIO_PRIORITY_N_QUEUEABLE
28  * in uts/common/sys/fs/zfs.h to match.
29  */
30 typedef enum zio_priority {
31 	ZIO_PRIORITY_SYNC_READ,
32 	ZIO_PRIORITY_SYNC_WRITE,	/* ZIL */
33 	ZIO_PRIORITY_ASYNC_READ,	/* prefetch */
34 	ZIO_PRIORITY_ASYNC_WRITE,	/* spa_sync() */
35 	ZIO_PRIORITY_SCRUB,		/* asynchronous scrub/resilver reads */
36 	ZIO_PRIORITY_REMOVAL,		/* reads/writes for vdev removal */
37 	ZIO_PRIORITY_INITIALIZING,	/* initializing I/O */
38 	ZIO_PRIORITY_TRIM,		/* trim I/O (discard) */
39 	ZIO_PRIORITY_NUM_QUEUEABLE,
40 	ZIO_PRIORITY_NOW		/* non-queued i/os (e.g. free) */
41 } zio_priority_t;
42 
43 #ifdef	__cplusplus
44 }
45 #endif
46 
47 #endif	/* _ZIO_PRIORITY_H */
48