3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CDDL HEADER START
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * The contents of this file are subject to the terms of the
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Common Development and Distribution License (the "License").
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * You may not use this file except in compliance with the License.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * or http://www.opensolaris.org/os/licensing.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * See the License for the specific language governing permissions
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * and limitations under the License.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * When distributing Covered Code, include this CDDL HEADER in each
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * If applicable, add the following below this CDDL HEADER, with the
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * fields enclosed by brackets "[]" replaced with your own identifying
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * information: Portions Copyright [yyyy] [name of copyright owner]
3db86aab554edbb4244c8d1a1c90f152eee768afstevel *
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * CDDL HEADER END
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Use is subject to license terms.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifndef _SYS_RMCLOMV_IMPL_H
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define _SYS_RMCLOMV_IMPL_H
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#pragma ident "%Z%%M% %I% %E% SMI"
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifdef __cplusplus
3db86aab554edbb4244c8d1a1c90f152eee768afstevelextern "C" {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#include <sys/envmon.h>
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * local driver defines and structures
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_DEFAULT_MAX_MBOX_WAIT_TIME 10000
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MIN_LED_STATE 0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_LED_STATE 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * These are PSU flag bits that map to voltage-indicators:
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_OUTPUT_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_INPUT_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_SEC_INPUT_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_OUTPUT_VLO_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_OUTPUT_VHI_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_VI_PER_PSU 5
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Current indicators:
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_OUTPUT_AHI_STATUS
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_NR_WARNING
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_CI_PER_PSU 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Fan indicators:
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_FAN_FAULT
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_PDCT_FAN
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_FI_PER_PSU 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * Temperature indicators:
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * DP_PSU_OVERTEMP_FAULT
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_TI_PER_PSU 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_NUM_SPECIAL_FRUS 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MIN_ALARM_STATE 0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_MAX_ALARM_STATE 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * defines for various environmental detectors
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_ANY_ENV 0
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_TEMP_SENS 1
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_FAN_SENS 2
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_PSU_IND 3
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_LED_IND 4
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_VOLT_SENS 5
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_HPU_IND 6
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_AMP_IND 7
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_VOLT_IND 8
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_TEMP_IND 9
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_FAN_IND 10
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#define RMCLOMV_ALARM_IND 11
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel dp_handle_t handle;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint16_t ind_mask;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel envmon_handle_t handle_name;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} rmclomv_cache_entry_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel/*
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * section_len is used when freeing the structure.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel * It includes unused entries whereas num_entries does not.
3db86aab554edbb4244c8d1a1c90f152eee768afstevel */
3db86aab554edbb4244c8d1a1c90f152eee768afsteveltypedef struct rmclomv_cache_section {
3db86aab554edbb4244c8d1a1c90f152eee768afstevel struct rmclomv_cache_section *next_section;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel size_t section_len;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint16_t sensor_type;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel uint16_t num_entries;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel rmclomv_cache_entry_t entry[1];
3db86aab554edbb4244c8d1a1c90f152eee768afstevel} rmclomv_cache_section_t;
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#ifdef __cplusplus
3db86aab554edbb4244c8d1a1c90f152eee768afstevel}
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif
3db86aab554edbb4244c8d1a1c90f152eee768afstevel
3db86aab554edbb4244c8d1a1c90f152eee768afstevel#endif /* _SYS_RMCLOMV_IMPL_H */