20c794b39650d115e17a15983b6b82e46238cf45gavinm * CDDL HEADER START
20c794b39650d115e17a15983b6b82e46238cf45gavinm * The contents of this file are subject to the terms of the
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Common Development and Distribution License (the "License").
20c794b39650d115e17a15983b6b82e46238cf45gavinm * You may not use this file except in compliance with the License.
20c794b39650d115e17a15983b6b82e46238cf45gavinm * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
20c794b39650d115e17a15983b6b82e46238cf45gavinm * See the License for the specific language governing permissions
20c794b39650d115e17a15983b6b82e46238cf45gavinm * and limitations under the License.
20c794b39650d115e17a15983b6b82e46238cf45gavinm * When distributing Covered Code, include this CDDL HEADER in each
20c794b39650d115e17a15983b6b82e46238cf45gavinm * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
20c794b39650d115e17a15983b6b82e46238cf45gavinm * If applicable, add the following below this CDDL HEADER, with the
20c794b39650d115e17a15983b6b82e46238cf45gavinm * fields enclosed by brackets "[]" replaced with your own identifying
20c794b39650d115e17a15983b6b82e46238cf45gavinm * information: Portions Copyright [yyyy] [name of copyright owner]
20c794b39650d115e17a15983b6b82e46238cf45gavinm * CDDL HEADER END
c84b7bbef5ecc2a27799422588073deefd9db715Adrian Frost * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern "C" {
8031591d3cc3c82e97f4b60ea22d671525077b15Srihari Venkatesan#define AUTHAMD_MAX_NODES 8 /* max number of nodes */
8031591d3cc3c82e97f4b60ea22d671525077b15Srihari Venkatesan#define AUTHAMD_DRAM_NCHANNEL 2 /* dram channels per node */
20c794b39650d115e17a15983b6b82e46238cf45gavinm#define AUTHAMD_DRAM_NCS 8 /* chip-selects per channel */
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Model-specific logout structure.
20c794b39650d115e17a15983b6b82e46238cf45gavinm uint8_t aal_eccerrcnt[AUTHAMD_DRAM_NCHANNEL][AUTHAMD_DRAM_NCS];
8031591d3cc3c82e97f4b60ea22d671525077b15Srihari Venkatesan * Per node shared state
5667185bc023b9742cb2480659d7673fa9ac8050Srihari Venkatesan uint32_t ans_rev; /* revision per cpuid_getchiprev */
5667185bc023b9742cb2480659d7673fa9ac8050Srihari Venkatesan volatile ulong_t ans_cfgonce; /* Config performed once per chip */
5667185bc023b9742cb2480659d7673fa9ac8050Srihari Venkatesan hrtime_t ans_poll_timestamp; /* Checks poll owner is alive */
5667185bc023b9742cb2480659d7673fa9ac8050Srihari Venkatesan cmi_hdl_t ans_pollowner; /* poller of shared resources */
5667185bc023b9742cb2480659d7673fa9ac8050Srihari Venkatesan char *ans_eccsymsz; /* DRAM ChipKill ECC Symbol Size */
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Per-CPU model-specific state
20c794b39650d115e17a15983b6b82e46238cf45gavinm * Our cms_ops operations and function prototypes for all non-NULL members.
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern uint64_t authamd_mcgctl_val(cmi_hdl_t, int, uint64_t);
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern boolean_t authamd_bankctl_skipinit(cmi_hdl_t, int);
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern uint64_t authamd_bankctl_val(cmi_hdl_t, int, uint64_t);
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern void authamd_bank_logout(cmi_hdl_t, int, uint64_t, uint64_t,
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern uint32_t authamd_error_action(cmi_hdl_t, int, int, uint64_t,
c84b7bbef5ecc2a27799422588073deefd9db715Adrian Frostextern cms_cookie_t authamd_disp_match(cmi_hdl_t, int, int, uint64_t, uint64_t,
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern void authamd_ereport_class(cmi_hdl_t, cms_cookie_t, const char **,
20c794b39650d115e17a15983b6b82e46238cf45gavinm const char **);
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern void authamd_ereport_add_logout(cmi_hdl_t, nvlist_t *,
20c794b39650d115e17a15983b6b82e46238cf45gavinm nv_alloc_t *, int, uint64_t, uint64_t, uint64_t, void *, cms_cookie_t);
20c794b39650d115e17a15983b6b82e46238cf45gavinmextern cms_errno_t authamd_msrinject(cmi_hdl_t, uint_t, uint64_t);
20c794b39650d115e17a15983b6b82e46238cf45gavinm#endif /* _KERNEL */
20c794b39650d115e17a15983b6b82e46238cf45gavinm#endif /* _AUTHAMD_H */