xref: /illumos-gate/usr/src/uts/sparc/zfs/spa_boot.c (revision 051aabe6136ff13e81542a427e9693ffe1503525)
1e7cbe64fSgw /*
2e7cbe64fSgw  * CDDL HEADER START
3e7cbe64fSgw  *
4e7cbe64fSgw  * The contents of this file are subject to the terms of the
5e7cbe64fSgw  * Common Development and Distribution License (the "License").
6e7cbe64fSgw  * You may not use this file except in compliance with the License.
7e7cbe64fSgw  *
8e7cbe64fSgw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9e7cbe64fSgw  * or http://www.opensolaris.org/os/licensing.
10e7cbe64fSgw  * See the License for the specific language governing permissions
11e7cbe64fSgw  * and limitations under the License.
12e7cbe64fSgw  *
13e7cbe64fSgw  * When distributing Covered Code, include this CDDL HEADER in each
14e7cbe64fSgw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15e7cbe64fSgw  * If applicable, add the following below this CDDL HEADER, with the
16e7cbe64fSgw  * fields enclosed by brackets "[]" replaced with your own identifying
17e7cbe64fSgw  * information: Portions Copyright [yyyy] [name of copyright owner]
18e7cbe64fSgw  *
19e7cbe64fSgw  * CDDL HEADER END
20e7cbe64fSgw  */
21e7cbe64fSgw 
22e7cbe64fSgw /*
23e7cbe64fSgw  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24e7cbe64fSgw  * Use is subject to license terms.
25e7cbe64fSgw  */
26e7cbe64fSgw 
27e7cbe64fSgw #pragma ident	"%Z%%M%	%I%	%E% SMI"
28e7cbe64fSgw 
29e7cbe64fSgw #include <sys/spa.h>
30e7cbe64fSgw #include <sys/bootconf.h>
31e7cbe64fSgw 
32e7cbe64fSgw char *
33*051aabe6Staylor spa_get_bootprop(char *propname)
34e7cbe64fSgw {
35e7cbe64fSgw 	int proplen;
36*051aabe6Staylor 	char *value;
37e7cbe64fSgw 
38*051aabe6Staylor 	proplen = BOP_GETPROPLEN(bootops, propname);
39*051aabe6Staylor 	if (proplen <= 0)
40e7cbe64fSgw 		return (NULL);
41e7cbe64fSgw 
42*051aabe6Staylor 	value = kmem_zalloc(proplen, KM_SLEEP);
43*051aabe6Staylor 	if (BOP_GETPROP(bootops, propname, value) == -1) {
44*051aabe6Staylor 		kmem_free(value, proplen);
45e7cbe64fSgw 		return (NULL);
46e7cbe64fSgw 	}
47e7cbe64fSgw 
48*051aabe6Staylor 	return (value);
49e7cbe64fSgw }
50e7cbe64fSgw 
51e7cbe64fSgw void
52*051aabe6Staylor spa_free_bootprop(char *propname)
53e7cbe64fSgw {
54*051aabe6Staylor 	kmem_free(propname, strlen(propname) + 1);
55e7cbe64fSgw }
56