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
23extern "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 */
30typedef 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