1*d00f0155Sayznaga /* 2*d00f0155Sayznaga * CDDL HEADER START 3*d00f0155Sayznaga * 4*d00f0155Sayznaga * The contents of this file are subject to the terms of the 5*d00f0155Sayznaga * Common Development and Distribution License, Version 1.0 only 6*d00f0155Sayznaga * (the "License"). You may not use this file except in compliance 7*d00f0155Sayznaga * with the License. 8*d00f0155Sayznaga * 9*d00f0155Sayznaga * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*d00f0155Sayznaga * or http://www.opensolaris.org/os/licensing. 11*d00f0155Sayznaga * See the License for the specific language governing permissions 12*d00f0155Sayznaga * and limitations under the License. 13*d00f0155Sayznaga * 14*d00f0155Sayznaga * When distributing Covered Code, include this CDDL HEADER in each 15*d00f0155Sayznaga * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*d00f0155Sayznaga * If applicable, add the following below this CDDL HEADER, with the 17*d00f0155Sayznaga * fields enclosed by brackets "[]" replaced with your own identifying 18*d00f0155Sayznaga * information: Portions Copyright [yyyy] [name of copyright owner] 19*d00f0155Sayznaga * 20*d00f0155Sayznaga * CDDL HEADER END 21*d00f0155Sayznaga */ 22*d00f0155Sayznaga /* 23*d00f0155Sayznaga * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 24*d00f0155Sayznaga * Use is subject to license terms. 25*d00f0155Sayznaga */ 26*d00f0155Sayznaga 27*d00f0155Sayznaga #ifndef _CDA_H 28*d00f0155Sayznaga #define _CDA_H 29*d00f0155Sayznaga 30*d00f0155Sayznaga #pragma ident "%Z%%M% %I% %E% SMI" 31*d00f0155Sayznaga 32*d00f0155Sayznaga #include <fm/fmd_api.h> 33*d00f0155Sayznaga 34*d00f0155Sayznaga #include <sys/types.h> 35*d00f0155Sayznaga 36*d00f0155Sayznaga #define DP_MAX_BUF 16 /* max len of general purpose buffer */ 37*d00f0155Sayznaga 38*d00f0155Sayznaga #ifdef __cplusplus 39*d00f0155Sayznaga extern "C" { 40*d00f0155Sayznaga #endif 41*d00f0155Sayznaga 42*d00f0155Sayznaga typedef struct cda { 43*d00f0155Sayznaga struct timespec cda_cpu_delay; /* CPU offline retry interval */ 44*d00f0155Sayznaga uint_t cda_cpu_tries; /* Number of CPU offline retries */ 45*d00f0155Sayznaga uint_t cda_cpu_dooffline; /* Whether to offline CPUs */ 46*d00f0155Sayznaga uint_t cda_cpu_forcedoffline; /* Whether to do forced CPU offline */ 47*d00f0155Sayznaga } cda_t; 48*d00f0155Sayznaga 49*d00f0155Sayznaga typedef struct cda_stats { 50*d00f0155Sayznaga fmd_stat_t dp_offs; /* Successful offlines */ 51*d00f0155Sayznaga fmd_stat_t dp_fails; /* Failed offlines */ 52*d00f0155Sayznaga fmd_stat_t dp_supp; /* Suppressed offlines */ 53*d00f0155Sayznaga fmd_stat_t bad_flts; /* Malformed faults */ 54*d00f0155Sayznaga fmd_stat_t nop_flts; /* Inapplicable faults */ 55*d00f0155Sayznaga } cda_stats_t; 56*d00f0155Sayznaga 57*d00f0155Sayznaga extern cda_stats_t cda_stats; 58*d00f0155Sayznaga extern cda_t cda; 59*d00f0155Sayznaga 60*d00f0155Sayznaga extern void cda_dp_retire(fmd_hdl_t *, nvlist_t *, nvlist_t *, const char *); 61*d00f0155Sayznaga 62*d00f0155Sayznaga #ifdef __cplusplus 63*d00f0155Sayznaga } 64*d00f0155Sayznaga #endif 65*d00f0155Sayznaga 66*d00f0155Sayznaga #endif /* _CDA_H */ 67