d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * CDDL HEADER START
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 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * See the License for the specific language governing permissions
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * and limitations under the License.
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 * CDDL HEADER END
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Use is subject to license terms.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#pragma ident "%Z%%M% %I% %E% SMI"
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Member Name Data Type Comments
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ----------- --------- -----------
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * version uint8 0
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * class string "asic"
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ENA uint64 ENA Format 1
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * detector fmri aggregated ID data for SC-DE
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Datapath ereport subclasses and data payloads:
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * There will be two types of ereports (error and fault) which will be
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * identified by the "type" member.
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ereport.asic.*.cds.cds-dp
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ereport.asic.*.dx.dx-dp
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ereport.asic.*.sdi.sdi-dp
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ereport.asic.*.cp.cp-dp
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ereport.asic.*.rp.rp-dp
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * Member Name Data Type Comments
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * ----------- --------- -----------
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * erptype uint16 derived from message type: error or
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * t-value uint32 SC's datapath SERD timeout threshold
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * dp-list-sz uint8 number of dp-list array elements
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * dp-list array of uint16 Safari IDs of affected cpus
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga * sn-list array of uint64 Serial numbers of affected cpus
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_FRU 23 /* maximum char length of dp FRUs */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_ASRUS 12 /* maximum number of dp ASRUs */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_CLASS 32 /* max length of dp fault class */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_BUF 16 /* max len for general purpose buffer */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_NUM_CPUS 8 /* max number of CPUs in a DP ereport */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#define DP_MAX_MCS 4 /* max # of MCs per memory page */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga/* Portion of datapath structure to be persisted */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga cmd_header_t dpp_header; /* Nodetype must be CMD_NT_DP */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint16_t dpp_erpt_type; /* ereport type (fault or error) */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint8_t dpp_err; /* CDS, DX, EX, CP (xc), RP (sg) */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint32_t dpp_t_value; /* SERD timeout threshold (seconds) */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint16_t dpp_cpuid_list[DP_MAX_NUM_CPUS]; /* array of CPU ids */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga uint64_t dpp_serid_list[DP_MAX_NUM_CPUS]; /* CPU serial #'s */
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cmd_evdisp_t cmd_dp_cds(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga const char *, cmd_errcl_t);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cmd_evdisp_t cmd_dp_dx(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga const char *, cmd_errcl_t);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cmd_evdisp_t cmd_dp_ex(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga const char *, cmd_errcl_t);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cmd_evdisp_t cmd_dp_cp(fmd_hdl_t *, fmd_event_t *, nvlist_t *,
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga const char *, cmd_errcl_t);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern cmd_dp_t *cmd_dp_lookup_fault(fmd_hdl_t *, uint32_t);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern void *cmd_dp_restore(fmd_hdl_t *, fmd_case_t *, cmd_case_ptr_t *);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznagaextern nvlist_t *cmd_dp_setasru(fmd_hdl_t *, cmd_dp_t *);
d00f0155af9a9a671eb08a0dc30f5ea0a379c36cayznaga#endif /* _CMD_DATAPATH_H */