/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (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
* 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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <libnvpair.h>
#include "ses2_impl.h"
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
dip->sdci_rqst_ident = v;
dip->sdci_rqst_remove = v;
dip->sdci_rqst_insert = v;
dip->sdci_rqst_missing = v;
dip->sdci_do_not_remove = v;
dip->sdci_rqst_active = v;
dip->sdci_enable_byp_b = v;
dip->sdci_enable_byp_a = v;
dip->sdci_device_off = v;
dip->sdci_rqst_fault = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
pip->spci_rqst_ident = v;
pip->spci_rqst_on = v;
pip->spci_rqst_fail = v;
else
return (0);
}
static int
{
const char *name;
return (-1);
return (0);
}
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
tip->stci_rqst_fail = v;
tip->stci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
lip->slci_rqst_fail = v;
lip->slci_rqst_ident = v;
lip->slci_unlock = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
aip->saci_rqst_fail = v;
aip->saci_rqst_ident = v;
aip->saci_unrecov = v;
aip->saci_noncrit = v;
aip->saci_set_remind = v;
aip->saci_set_mute = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
cip->scci_rqst_fail = v;
cip->scci_rqst_ident = v;
cip->scci_select_element = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
sip->ssci_rqst_fail = v;
sip->ssci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
uip->suci_rqst_fail = v;
uip->suci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
cip->snci_rqst_fail = v;
cip->snci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
kip->skci_rqst_fail = v;
kip->skci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
return (-1);
return (0);
return (0);
}
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
pip->spci_rqst_fail = v;
pip->spci_rqst_ident = v;
pip->spci_disable = v;
else
return (0);
}
static int
{
const char *name;
return (-1);
return (0);
}
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
cip->scci_rqst_fail = v;
cip->scci_rqst_ident = v;
cip->scci_disable = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
vip->svci_rqst_fail = v;
vip->svci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
cip->scci_rqst_fail = v;
cip->scci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
iip->sici_rqst_fail = v;
iip->sici_rqst_ident = v;
iip->sici_enable = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
sip->ssci_rqst_fail = v;
sip->ssci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
aip->sadci_rqst_rr_abort = v;
aip->sadci_rqst_rebuild = v;
aip->sadci_rqst_in_crit_array = v;
aip->sadci_rqst_cons_check = v;
aip->sadci_rqst_hot_spare = v;
aip->sadci_rqst_rsvd_device = v;
aip->sadci_rqst_ident = v;
aip->sadci_rqst_remove = v;
aip->sadci_rqst_insert = v;
aip->sadci_rqst_missing = v;
aip->sadci_do_not_remove = v;
aip->sadci_rqst_active = v;
aip->sadci_enable_byp_b = v;
aip->sadci_enable_byp_a = v;
aip->sadci_device_off = v;
aip->sadci_rqst_fault = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
eip->seci_rqst_fail = v;
eip->seci_rqst_ident = v;
else
return (0);
}
static int
{
const char *name;
boolean_t v;
return (-1);
(void) nvpair_value_boolean_value(nvp, &v);
sip->ssci_rqst_ident = v;
sip->ssci_rqst_fail = v;
else
return (0);
}
static int
{
const char *name;
uint64_t v;
return (-1);
(void) nvpair_value_uint64(nvp, &v);
tip->sti_high_crit = v;
tip->sti_low_crit = v;
tip->sti_high_warn = v;
tip->sti_low_warn = v;
else
return (0);
}
#define SES_THRESHOLD_CTL_PROPS \
{ \
.scp_type = DATA_TYPE_UINT64, \
}, \
{ \
.scp_type = DATA_TYPE_UINT64, \
}, \
{ \
.scp_type = DATA_TYPE_UINT64, \
}, \
{ \
.scp_type = DATA_TYPE_UINT64, \
}
{
},
{
.scp_name = SES_PROP_RMV,
},
{
},
{
},
{
},
{
},
{
},
{
},
{
.scp_name = SES_PROP_OFF,
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
.scp_name = SES_PROP_RMV,
},
{
},
{
},
{
},
{
},
{
},
{
},
{
.scp_name = SES_PROP_OFF,
},
{
},
{
}
};
{
},
{
},
{
}
};
{
},
{
},
{
}
};
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
if (page == SES2_DIAGPAGE_THRESHOLD_IO)
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
static int
{
if (page == SES2_DIAGPAGE_THRESHOLD_IO)
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
static int
{
if (page == SES2_DIAGPAGE_THRESHOLD_IO)
return (0);
}
static int
{
if (page == SES2_DIAGPAGE_THRESHOLD_IO)
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
/*ARGSUSED*/
static int
{
return (0);
}
{ \
}
{ .scd_et = -1 }
};
int
{
return (0);
&type) == 0);
break;
return (0);
}
int
{
break;
return (0);
return (-1);
return (0);
}