1e7cbe64fSgw25295 /*
2e7cbe64fSgw25295 * CDDL HEADER START
3e7cbe64fSgw25295 *
4e7cbe64fSgw25295 * The contents of this file are subject to the terms of the
5e7cbe64fSgw25295 * Common Development and Distribution License (the "License").
6e7cbe64fSgw25295 * You may not use this file except in compliance with the License.
7e7cbe64fSgw25295 *
8e7cbe64fSgw25295 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9e7cbe64fSgw25295 * or http://www.opensolaris.org/os/licensing.
10e7cbe64fSgw25295 * See the License for the specific language governing permissions
11e7cbe64fSgw25295 * and limitations under the License.
12e7cbe64fSgw25295 *
13e7cbe64fSgw25295 * When distributing Covered Code, include this CDDL HEADER in each
14e7cbe64fSgw25295 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15e7cbe64fSgw25295 * If applicable, add the following below this CDDL HEADER, with the
16e7cbe64fSgw25295 * fields enclosed by brackets "[]" replaced with your own identifying
17e7cbe64fSgw25295 * information: Portions Copyright [yyyy] [name of copyright owner]
18e7cbe64fSgw25295 *
19e7cbe64fSgw25295 * CDDL HEADER END
20e7cbe64fSgw25295 */
21e7cbe64fSgw25295
22e7cbe64fSgw25295 /*
23b24ab676SJeff Bonwick * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24e7cbe64fSgw25295 * Use is subject to license terms.
25e7cbe64fSgw25295 */
26e7cbe64fSgw25295
27*283b8460SGeorge.Wilson /*
28*283b8460SGeorge.Wilson * Copyright (c) 2012 by Delphix. All rights reserved.
29*283b8460SGeorge.Wilson */
30*283b8460SGeorge.Wilson
31b24ab676SJeff Bonwick #include <sys/zio.h>
32e7cbe64fSgw25295 #include <sys/spa.h>
33e7cbe64fSgw25295 #include <sys/bootconf.h>
34e7cbe64fSgw25295
35*283b8460SGeorge.Wilson extern int zfs_deadman_enabled;
36*283b8460SGeorge.Wilson
37e7cbe64fSgw25295 char *
spa_get_bootprop(char * propname)38051aabe6Staylor spa_get_bootprop(char *propname)
39e7cbe64fSgw25295 {
40e7cbe64fSgw25295 int proplen;
41051aabe6Staylor char *value;
42e7cbe64fSgw25295
43051aabe6Staylor proplen = BOP_GETPROPLEN(bootops, propname);
44051aabe6Staylor if (proplen <= 0)
45e7cbe64fSgw25295 return (NULL);
46e7cbe64fSgw25295
47051aabe6Staylor value = kmem_zalloc(proplen, KM_SLEEP);
48051aabe6Staylor if (BOP_GETPROP(bootops, propname, value) == -1) {
49051aabe6Staylor kmem_free(value, proplen);
50e7cbe64fSgw25295 return (NULL);
51e7cbe64fSgw25295 }
52e7cbe64fSgw25295
53051aabe6Staylor return (value);
54e7cbe64fSgw25295 }
55e7cbe64fSgw25295
56e7cbe64fSgw25295 void
spa_free_bootprop(char * propname)57051aabe6Staylor spa_free_bootprop(char *propname)
58e7cbe64fSgw25295 {
59051aabe6Staylor kmem_free(propname, strlen(propname) + 1);
60e7cbe64fSgw25295 }
61*283b8460SGeorge.Wilson
62*283b8460SGeorge.Wilson void
spa_arch_init(void)63*283b8460SGeorge.Wilson spa_arch_init(void)
64*283b8460SGeorge.Wilson {
65*283b8460SGeorge.Wilson /*
66*283b8460SGeorge.Wilson * The deadman is disabled by default on sparc.
67*283b8460SGeorge.Wilson */
68*283b8460SGeorge.Wilson if (zfs_deadman_enabled == -1)
69*283b8460SGeorge.Wilson zfs_deadman_enabled = 0;
70*283b8460SGeorge.Wilson }
71