d91236fe104c7ea63142e053b22a39c8a30d304beschrock/*
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * CDDL HEADER START
d91236fe104c7ea63142e053b22a39c8a30d304beschrock *
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * The contents of this file are subject to the terms of the
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * Common Development and Distribution License (the "License").
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * You may not use this file except in compliance with the License.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock *
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * or http://www.opensolaris.org/os/licensing.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * See the License for the specific language governing permissions
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * and limitations under the License.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock *
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * When distributing Covered Code, include this CDDL HEADER in each
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * If applicable, add the following below this CDDL HEADER, with the
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * fields enclosed by brackets "[]" replaced with your own identifying
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * information: Portions Copyright [yyyy] [name of copyright owner]
d91236fe104c7ea63142e053b22a39c8a30d304beschrock *
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * CDDL HEADER END
d91236fe104c7ea63142e053b22a39c8a30d304beschrock */
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock/*
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * Use is subject to license terms.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock */
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock#pragma ident "%Z%%M% %I% %E% SMI"
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock/*
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * This module represents the expander on the disk backplane for the X4240 and
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * other Sun platforms. Its purpose is to set a property indicating this is an
d91236fe104c7ea63142e053b22a39c8a30d304beschrock * internal enclosure.
d91236fe104c7ea63142e053b22a39c8a30d304beschrock */
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock#include <scsi/libses.h>
d91236fe104c7ea63142e053b22a39c8a30d304beschrock#include <scsi/libses_plugin.h>
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock/*ARGSUSED*/
d91236fe104c7ea63142e053b22a39c8a30d304beschrockstatic int
d91236fe104c7ea63142e053b22a39c8a30d304beschrocklsilogic_parse_node(ses_plugin_t *sp, ses_node_t *np)
d91236fe104c7ea63142e053b22a39c8a30d304beschrock{
d91236fe104c7ea63142e053b22a39c8a30d304beschrock int nverr;
d91236fe104c7ea63142e053b22a39c8a30d304beschrock nvlist_t *props;
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock if (ses_node_type(np) != SES_NODE_ENCLOSURE)
d91236fe104c7ea63142e053b22a39c8a30d304beschrock return (0);
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock props = ses_node_props(np);
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock SES_NV_ADD(boolean_value, nverr, props, LIBSES_EN_PROP_INTERNAL,
d91236fe104c7ea63142e053b22a39c8a30d304beschrock B_TRUE);
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock return (0);
d91236fe104c7ea63142e053b22a39c8a30d304beschrock}
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrockint
d91236fe104c7ea63142e053b22a39c8a30d304beschrock_ses_init(ses_plugin_t *sp)
d91236fe104c7ea63142e053b22a39c8a30d304beschrock{
d91236fe104c7ea63142e053b22a39c8a30d304beschrock ses_plugin_config_t config = {
d91236fe104c7ea63142e053b22a39c8a30d304beschrock .spc_node_parse = lsilogic_parse_node
d91236fe104c7ea63142e053b22a39c8a30d304beschrock };
d91236fe104c7ea63142e053b22a39c8a30d304beschrock
d91236fe104c7ea63142e053b22a39c8a30d304beschrock return (ses_plugin_register(sp, LIBSES_PLUGIN_VERSION,
d91236fe104c7ea63142e053b22a39c8a30d304beschrock &config) != 0);
d91236fe104c7ea63142e053b22a39c8a30d304beschrock}