	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_usage                          ## -- Begin function usage
	.p2align	4, 0x90
_usage:                                 ## @usage
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	leaq	L_str(%rip), %rdi
	popq	%rbp
	jmp	_puts                           ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_str:                                  ## @str
	.asciz	"usage:\n\n\tzinject\n\n\t\tList all active injection records.\n\n\tzinject -c <id|all>\n\n\t\tClear the particular record (if given a numeric ID), or\n\t\tall records if 'all' is specificed.\n\n\tzinject -p <function name> pool\n\n\t\tInject a panic fault at the specified function. Only \n\t\tfunctions which call spa_vdev_config_exit(), or \n\t\tspa_vdev_exit() will trigger a panic.\n\n\tzinject -d device [-e errno] [-L <nvlist|uber|pad1|pad2>] [-F]\n\t    [-T <read|write|free|claim|all> pool\n\n\t\tInject a fault into a particular device or the device's\n\t\tlabel.  Label injection can either be 'nvlist', 'uber',\n \t\t'pad1', or 'pad2'.\n\t\t'errno' can be 'nxio' (the default), 'io', or 'dtl'.\n\n\tzinject -d device -A <degrade|fault> pool\n\n\t\tPerform a specific action on a particular device\n\n\tzinject -d device -D latency:lanes pool\n\n\t\tAdd an artificial delay to IO requests on a particular\n\t\tdevice, such that the requests take a minimum of 'latency'\n\t\tmilliseconds to complete. Each delay has an associated\n\t\tnumber of 'lanes' which defines the number of concurrent\n\t\tIO requests that can be processed.\n\n\t\tFor example, with a single lane delay of 10 ms (-D 10:1),\n\t\tthe device will only be able to service a single IO request\n\t\tat a time with each request taking 10 ms to complete. So,\n\t\tif only a single request is submitted every 10 ms, the\n\t\taverage latency will be 10 ms; but if more than one request\n\t\tis submitted every 10 ms, the average latency will be more\n\t\tthan 10 ms.\n\n\t\tSimilarly, if a delay of 10 ms is specified to have two\n\t\tlanes (-D 10:2), then the device will be able to service\n\t\ttwo requests at a time, each with a minimum latency of\n\t\t10 ms. So, if two requests are submitted every 10 ms, then\n\t\tthe average latency will be 10 ms; but if more than two\n\t\trequests are submitted every 10 ms, the average latency\n\t\twill be more than 10 ms.\n\n\t\tAlso note, these delays are additive. So two invocations\n\t\tof '-D 10:1', is roughly equivalent to a single invocation\n\t\tof '-D 10:2'. This also means, one can specify multiple\n\t\tlanes with differing target latencies. For example, an\n\t\tinvocation of '-D 10:1' followed by '-D 25:2' will\n\t\tcreate 3 lanes on the device; one lane with a latency\n\t\tof 10 ms and two lanes with a 25 ms latency.\n\n\tzinject -I [-s <seconds> | -g <txgs>] pool\n\n\t\tCause the pool to stop writing blocks yet not\n\t\treport errors for a duration.  Simulates buggy hardware\n\t\tthat fails to honor cache flush requests.\n\t\tDefault duration is 30 seconds.  The machine is panicked\n\t\tat the end of the duration.\n\n\tzinject -b objset:object:level:blkid pool\n\n\t\tInject an error into pool 'pool' with the numeric bookmark\n\t\tspecified by the remaining tuple.  Each number is in\n\t\thexidecimal, and only one block can be specified.\n\n\tzinject [-q] <-t type> [-e errno] [-l level] [-r range]\n\t    [-a] [-m] [-u] [-f freq] <object>\n\n\t\tInject an error into the object specified by the '-t' option\n\t\tand the object descriptor.  The 'object' parameter is\n\t\tinterperted depending on the '-t' option.\n\n\t\t-q\tQuiet mode.  Only print out the handler number added.\n\t\t-e\tInject a specific error.  Must be either 'io' or\n\t\t\t'checksum'.  Default is 'io'.\n\t\t-l\tInject error at a particular block level. Default is 0.\n\t\t-m\tAutomatically remount underlying filesystem.\n\t\t-r\tInject error over a particular logical range of an\n\t\t\tobject.  Will be translated to the appropriate blkid\n\t\t\trange according to the object's properties.\n\t\t-a\tFlush the ARC cache.  Can be specified without any\n\t\t\tassociated object.\n\t\t-u\tUnload the associated pool.  Can be specified with only\n\t\t\ta pool object.\n\t\t-f\tOnly inject errors a fraction of the time.  Expressed as\n\t\t\ta percentage between 1 and 100.\n\n\t-t data\t\tInject an error into the plain file contents of a\n\t\t\tfile.  The object must be specified as a complete path\n\t\t\tto a file on a ZFS filesystem.\n\n\t-t dnode\tInject an error into the metadnode in the block\n\t\t\tcorresponding to the dnode for a file or directory.  The\n\t\t\t'-r' option is incompatible with this mode.  The object\n\t\t\tis specified as a complete path to a file or directory\n\t\t\ton a ZFS filesystem.\n\n\t-t <mos>\tInject errors into the MOS for objects of the given\n\t\t\ttype.  Valid types are: mos, mosdir, config, bpobj,\n\t\t\tspacemap, metaslab, errlog.  The only valid <object> is\n\t\t\tthe poolname."

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_usage                          ; -- Begin function usage
	.p2align	2
_usage:                                 ; @usage
	.cfi_startproc
; %bb.0:
Lloh0:
	adrp	x0, l_str@PAGE
Lloh1:
	add	x0, x0, l_str@PAGEOFF
	b	_puts
	.loh AdrpAdd	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_str:                                  ; @str
	.asciz	"usage:\n\n\tzinject\n\n\t\tList all active injection records.\n\n\tzinject -c <id|all>\n\n\t\tClear the particular record (if given a numeric ID), or\n\t\tall records if 'all' is specificed.\n\n\tzinject -p <function name> pool\n\n\t\tInject a panic fault at the specified function. Only \n\t\tfunctions which call spa_vdev_config_exit(), or \n\t\tspa_vdev_exit() will trigger a panic.\n\n\tzinject -d device [-e errno] [-L <nvlist|uber|pad1|pad2>] [-F]\n\t    [-T <read|write|free|claim|all> pool\n\n\t\tInject a fault into a particular device or the device's\n\t\tlabel.  Label injection can either be 'nvlist', 'uber',\n \t\t'pad1', or 'pad2'.\n\t\t'errno' can be 'nxio' (the default), 'io', or 'dtl'.\n\n\tzinject -d device -A <degrade|fault> pool\n\n\t\tPerform a specific action on a particular device\n\n\tzinject -d device -D latency:lanes pool\n\n\t\tAdd an artificial delay to IO requests on a particular\n\t\tdevice, such that the requests take a minimum of 'latency'\n\t\tmilliseconds to complete. Each delay has an associated\n\t\tnumber of 'lanes' which defines the number of concurrent\n\t\tIO requests that can be processed.\n\n\t\tFor example, with a single lane delay of 10 ms (-D 10:1),\n\t\tthe device will only be able to service a single IO request\n\t\tat a time with each request taking 10 ms to complete. So,\n\t\tif only a single request is submitted every 10 ms, the\n\t\taverage latency will be 10 ms; but if more than one request\n\t\tis submitted every 10 ms, the average latency will be more\n\t\tthan 10 ms.\n\n\t\tSimilarly, if a delay of 10 ms is specified to have two\n\t\tlanes (-D 10:2), then the device will be able to service\n\t\ttwo requests at a time, each with a minimum latency of\n\t\t10 ms. So, if two requests are submitted every 10 ms, then\n\t\tthe average latency will be 10 ms; but if more than two\n\t\trequests are submitted every 10 ms, the average latency\n\t\twill be more than 10 ms.\n\n\t\tAlso note, these delays are additive. So two invocations\n\t\tof '-D 10:1', is roughly equivalent to a single invocation\n\t\tof '-D 10:2'. This also means, one can specify multiple\n\t\tlanes with differing target latencies. For example, an\n\t\tinvocation of '-D 10:1' followed by '-D 25:2' will\n\t\tcreate 3 lanes on the device; one lane with a latency\n\t\tof 10 ms and two lanes with a 25 ms latency.\n\n\tzinject -I [-s <seconds> | -g <txgs>] pool\n\n\t\tCause the pool to stop writing blocks yet not\n\t\treport errors for a duration.  Simulates buggy hardware\n\t\tthat fails to honor cache flush requests.\n\t\tDefault duration is 30 seconds.  The machine is panicked\n\t\tat the end of the duration.\n\n\tzinject -b objset:object:level:blkid pool\n\n\t\tInject an error into pool 'pool' with the numeric bookmark\n\t\tspecified by the remaining tuple.  Each number is in\n\t\thexidecimal, and only one block can be specified.\n\n\tzinject [-q] <-t type> [-e errno] [-l level] [-r range]\n\t    [-a] [-m] [-u] [-f freq] <object>\n\n\t\tInject an error into the object specified by the '-t' option\n\t\tand the object descriptor.  The 'object' parameter is\n\t\tinterperted depending on the '-t' option.\n\n\t\t-q\tQuiet mode.  Only print out the handler number added.\n\t\t-e\tInject a specific error.  Must be either 'io' or\n\t\t\t'checksum'.  Default is 'io'.\n\t\t-l\tInject error at a particular block level. Default is 0.\n\t\t-m\tAutomatically remount underlying filesystem.\n\t\t-r\tInject error over a particular logical range of an\n\t\t\tobject.  Will be translated to the appropriate blkid\n\t\t\trange according to the object's properties.\n\t\t-a\tFlush the ARC cache.  Can be specified without any\n\t\t\tassociated object.\n\t\t-u\tUnload the associated pool.  Can be specified with only\n\t\t\ta pool object.\n\t\t-f\tOnly inject errors a fraction of the time.  Expressed as\n\t\t\ta percentage between 1 and 100.\n\n\t-t data\t\tInject an error into the plain file contents of a\n\t\t\tfile.  The object must be specified as a complete path\n\t\t\tto a file on a ZFS filesystem.\n\n\t-t dnode\tInject an error into the metadnode in the block\n\t\t\tcorresponding to the dnode for a file or directory.  The\n\t\t\t'-r' option is incompatible with this mode.  The object\n\t\t\tis specified as a complete path to a file or directory\n\t\t\ton a ZFS filesystem.\n\n\t-t <mos>\tInject errors into the MOS for objects of the given\n\t\t\ttype.  Valid types are: mos, mosdir, config, bpobj,\n\t\t\tspacemap, metaslab, errlog.  The only valid <object> is\n\t\t\tthe poolname."

.subsections_via_symbols
