+++ /dev/null
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at * usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
-#include <sys/nvpair.h>
-#include <sys/kmem.h>
-#include <sys/vmem.h>
-
-static void *
-nv_alloc_sleep_spl(nv_alloc_t *nva, size_t size)
-{
- return (vmem_alloc(size, KM_SLEEP));
-}
-
-static void *
-nv_alloc_pushpage_spl(nv_alloc_t *nva, size_t size)
-{
- return (vmem_alloc(size, KM_PUSHPAGE));
-}
-
-static void *
-nv_alloc_nosleep_spl(nv_alloc_t *nva, size_t size)
-{
- return (kmem_alloc(size, KM_NOSLEEP));
-}
-
-static void
-nv_free_spl(nv_alloc_t *nva, void *buf, size_t size)
-{
- kmem_free(buf, size);
-}
-
-const nv_alloc_ops_t spl_sleep_ops_def = {
- .nv_ao_init = NULL,
- .nv_ao_fini = NULL,
- .nv_ao_alloc = nv_alloc_sleep_spl,
- .nv_ao_free = nv_free_spl,
- .nv_ao_reset = NULL
-};
-
-const nv_alloc_ops_t spl_pushpage_ops_def = {
- .nv_ao_init = NULL,
- .nv_ao_fini = NULL,
- .nv_ao_alloc = nv_alloc_pushpage_spl,
- .nv_ao_free = nv_free_spl,
- .nv_ao_reset = NULL
-};
-
-const nv_alloc_ops_t spl_nosleep_ops_def = {
- .nv_ao_init = NULL,
- .nv_ao_fini = NULL,
- .nv_ao_alloc = nv_alloc_nosleep_spl,
- .nv_ao_free = nv_free_spl,
- .nv_ao_reset = NULL
-};
-
-nv_alloc_t nv_alloc_sleep_def = {
- &spl_sleep_ops_def,
- NULL
-};
-
-nv_alloc_t nv_alloc_pushpage_def = {
- &spl_pushpage_ops_def,
- NULL
-};
-
-nv_alloc_t nv_alloc_nosleep_def = {
- &spl_nosleep_ops_def,
- NULL
-};
-
-nv_alloc_t *nv_alloc_sleep = &nv_alloc_sleep_def;
-nv_alloc_t *nv_alloc_pushpage = &nv_alloc_pushpage_def;
-nv_alloc_t *nv_alloc_nosleep = &nv_alloc_nosleep_def;