d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga/*
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * CDDL HEADER START
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga *
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * The contents of this file are subject to the terms of the
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Common Development and Distribution License, Version 1.0 only
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * (the "License"). You may not use this file except in compliance
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * with the License.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga *
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * or http://www.opensolaris.org/os/licensing.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * See the License for the specific language governing permissions
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * and limitations under the License.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga *
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * When distributing Covered Code, include this CDDL HEADER in each
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * If applicable, add the following below this CDDL HEADER, with the
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * fields enclosed by brackets "[]" replaced with your own identifying
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * information: Portions Copyright [yyyy] [name of copyright owner]
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga *
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * CDDL HEADER END
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga/*
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Use is subject to license terms.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#ifndef _CDA_H
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define _CDA_H
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#pragma ident "%Z%%M% %I% %E% SMI"
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#include <fm/fmd_api.h>
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#include <sys/types.h>
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_BUF 16 /* max len of general purpose buffer */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#ifdef __cplusplus
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern "C" {
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#endif
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagatypedef struct cda {
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga struct timespec cda_cpu_delay; /* CPU offline retry interval */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint_t cda_cpu_tries; /* Number of CPU offline retries */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint_t cda_cpu_dooffline; /* Whether to offline CPUs */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint_t cda_cpu_forcedoffline; /* Whether to do forced CPU offline */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga} cda_t;
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagatypedef struct cda_stats {
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga fmd_stat_t dp_offs; /* Successful offlines */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga fmd_stat_t dp_fails; /* Failed offlines */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga fmd_stat_t dp_supp; /* Suppressed offlines */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga fmd_stat_t bad_flts; /* Malformed faults */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga fmd_stat_t nop_flts; /* Inapplicable faults */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga} cda_stats_t;
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cda_stats_t cda_stats;
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cda_t cda;
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern void cda_dp_retire(fmd_hdl_t *, nvlist_t *, nvlist_t *, const char *);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#ifdef __cplusplus
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga}
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#endif
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#endif /* _CDA_H */