11370Sschwartz /* 21370Sschwartz * CDDL HEADER START 31370Sschwartz * 41370Sschwartz * The contents of this file are subject to the terms of the 51370Sschwartz * Common Development and Distribution License (the "License"). 61370Sschwartz * You may not use this file except in compliance with the License. 71370Sschwartz * 81370Sschwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 91370Sschwartz * or http://www.opensolaris.org/os/licensing. 101370Sschwartz * See the License for the specific language governing permissions 111370Sschwartz * and limitations under the License. 121370Sschwartz * 131370Sschwartz * When distributing Covered Code, include this CDDL HEADER in each 141370Sschwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 151370Sschwartz * If applicable, add the following below this CDDL HEADER, with the 161370Sschwartz * fields enclosed by brackets "[]" replaced with your own identifying 171370Sschwartz * information: Portions Copyright [yyyy] [name of copyright owner] 181370Sschwartz * 191370Sschwartz * CDDL HEADER END 201370Sschwartz */ 211370Sschwartz 221370Sschwartz /* 231370Sschwartz * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 241370Sschwartz * Use is subject to license terms. 251370Sschwartz */ 261370Sschwartz 271370Sschwartz #ifndef _FPC_H 281370Sschwartz #define _FPC_H 291370Sschwartz 301370Sschwartz #pragma ident "%Z%%M% %I% %E% SMI" 311370Sschwartz 321370Sschwartz #ifdef __cplusplus 331370Sschwartz extern "C" { 341370Sschwartz #endif 351370Sschwartz 361370Sschwartz #define SUCCESS 0 371370Sschwartz #define FAILURE -1 381370Sschwartz 391370Sschwartz #define NUM_LEAVES 2 401370Sschwartz 411370Sschwartz extern int fpc_debug; 421370Sschwartz #define FPC_DBG1 if (fpc_debug >= 1) printf 431370Sschwartz #define FPC_DBG2 if (fpc_debug >= 2) printf 441370Sschwartz 451370Sschwartz /* 461370Sschwartz * Defs for fpc-kstat.c. Put'em here for now even though they don't 471370Sschwartz * have to do with the lower-level implementation. 481370Sschwartz */ 491370Sschwartz extern int fpc_kstat_init(dev_info_t *dip); 501370Sschwartz extern void fpc_kstat_fini(dev_info_t *dip); 511370Sschwartz 521370Sschwartz typedef enum fire_perfcnt { 531370Sschwartz jbc = 0, 541370Sschwartz imu, 551370Sschwartz mmu, 561370Sschwartz tlu, 571370Sschwartz lpu 581370Sschwartz } fire_perfcnt_t; 591370Sschwartz 601370Sschwartz /* Set to the last entry in fire_perfcnt_t. */ 611370Sschwartz #define MAX_REG_TYPES ((int)lpu + 1) 621370Sschwartz 631370Sschwartz #define NUM_JBC_COUNTERS 2 641370Sschwartz #define NUM_IMU_COUNTERS 2 651370Sschwartz #define NUM_MMU_COUNTERS 2 661370Sschwartz #define NUM_TLU_COUNTERS 3 671370Sschwartz #define NUM_LPU_COUNTERS 2 681370Sschwartz 691370Sschwartz /* Sum of all NUM_xxx_COUNTERS above. */ 701370Sschwartz #define NUM_TOTAL_COUNTERS 11 711370Sschwartz 721370Sschwartz /* largest group of counters */ 731370Sschwartz #define NUM_MAX_COUNTERS NUM_TLU_COUNTERS 741370Sschwartz 751370Sschwartz /* Event mask related. */ 761370Sschwartz 771370Sschwartz /* How much an event for a given PIC is shifted within the event mask. */ 781370Sschwartz 791370Sschwartz #define PIC0_EVT_SEL_SHIFT 0 801370Sschwartz #define PIC1_EVT_SEL_SHIFT 8 811370Sschwartz #define PIC2_EVT_SEL_SHIFT 16 821370Sschwartz 831370Sschwartz /* Width or mask of a single event within an event mask. */ 841370Sschwartz 851370Sschwartz #define JBC01_EVT_MASK 0xFF 861370Sschwartz #define IMU01_EVT_MASK 0xFF 871370Sschwartz #define MMU01_EVT_MASK 0xFF 881370Sschwartz #define TLU01_EVT_MASK 0xFF 891370Sschwartz #define TLU2_EVT_MASK 0x3 901370Sschwartz #define LPU12_EVT_MASK 0xFFFF 911370Sschwartz 921370Sschwartz /* Positioned masks for different event fields within an event mask. */ 931370Sschwartz 941370Sschwartz #define JBC_PIC0_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 951370Sschwartz #define JBC_PIC1_EVT_MASK ((uint64_t)JBC01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 961370Sschwartz #define IMU_PIC0_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 971370Sschwartz #define IMU_PIC1_EVT_MASK ((uint64_t)IMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 981370Sschwartz #define MMU_PIC0_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 991370Sschwartz #define MMU_PIC1_EVT_MASK ((uint64_t)MMU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 1001370Sschwartz #define TLU_PIC0_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC0_EVT_SEL_SHIFT) 1011370Sschwartz #define TLU_PIC1_EVT_MASK ((uint64_t)TLU01_EVT_MASK << PIC1_EVT_SEL_SHIFT) 1021370Sschwartz #define TLU_PIC2_EVT_MASK ((uint64_t)TLU2_EVT_MASK << PIC2_EVT_SEL_SHIFT) 1031370Sschwartz #define LPU_PIC0_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC0_EVT_SEL_SHIFT) 1041370Sschwartz #define LPU_PIC1_EVT_MASK ((uint64_t)LPU12_EVT_MASK << PIC2_EVT_SEL_SHIFT) 1051370Sschwartz 1061370Sschwartz /* 1071370Sschwartz * Take a dip to define the device... 1081370Sschwartz * sun4v: can convert dip to a dev_hdl needed for hyp. perf ctr interface. 1091370Sschwartz * sun4u: can convert dip to an ldi_ident_t I can use for a layered PCItool 1101370Sschwartz * ioctl. 1111370Sschwartz * 1121370Sschwartz * Define which of JBUS, PCIE_A and PCIE_B regs are available. HW partitioning 1131370Sschwartz * may make some register sets unavailable to certain virtual nodes. 1141370Sschwartz */ 1151370Sschwartz 1161370Sschwartz #define JBUS_REGS_AVAIL 0x1 /* JBUS regs avail */ 1171370Sschwartz #define PCIE_A_REGS_AVAIL 0x2 1181370Sschwartz #define PCIE_B_REGS_AVAIL 0x4 1191370Sschwartz 120*1691Sschwartz /* For checking platform from _init before installing module */ 121*1691Sschwartz extern int fpc_init_platform_check(); 122*1691Sschwartz 123*1691Sschwartz /* Low level module initialization done at attach time. */ 1241370Sschwartz extern int fpc_perfcnt_module_init(dev_info_t *dip, int *avail); 1251370Sschwartz extern int fpc_perfcnt_module_fini(dev_info_t *dip); 1261370Sschwartz 1271370Sschwartz /* 1281370Sschwartz * Program a performance counter. 1291370Sschwartz * 1301370Sschwartz * reggroup is which type of counter. 1311370Sschwartz * counter is the counter number. 1321370Sschwartz * event is the event to program for that counter. 1331370Sschwartz */ 1341370Sschwartz extern int fpc_perfcnt_program(int devnum, fire_perfcnt_t reggroup, 1351370Sschwartz uint64_t event); 1361370Sschwartz 1371370Sschwartz /* 1381370Sschwartz * Read a performance counter. 1391370Sschwartz * 1401370Sschwartz * reggroup is which type of counter. 1411370Sschwartz * counter is the counter number. 1421370Sschwartz * event_p returns the event programmed for that counter. 1431370Sschwartz * value_p returns the counter value. 1441370Sschwartz */ 1451370Sschwartz extern int fpc_perfcnt_read(int devnum, fire_perfcnt_t reggroup, 1461370Sschwartz uint64_t *event_p, uint64_t values[NUM_MAX_COUNTERS]); 1471370Sschwartz 1481370Sschwartz /* 1491370Sschwartz * Definitions of the different types of events. 1501370Sschwartz * 1511370Sschwartz * The first part says which registers these events are for. 1521370Sschwartz * For example, JBC01 means the JBC performance counters 0 and 1 1531370Sschwartz */ 1541370Sschwartz 1551370Sschwartz #define JBC01_S_EVT_NONE "event_none" 1561370Sschwartz #define JBC01_S_EVT_CLK "clock_cyc" 1571370Sschwartz #define JBC01_S_EVT_IDLE "idle_cyc" 1581370Sschwartz #define JBC01_S_EVT_FIRE "fire_jbus_cyc" 1591370Sschwartz #define JBC01_S_EVT_READ_LATENCY "rd_latency_cyc" 1601370Sschwartz #define JBC01_S_EVT_READ_SAMPLE "rd_sample" 1611370Sschwartz #define JBC01_S_EVT_I2C_PIO "pios_i2c" 1621370Sschwartz #define JBC01_S_EVT_EBUS_PIO "pios_ebus" 1631370Sschwartz #define JBC01_S_EVT_RINGA_PIO "pios_ringA" 1641370Sschwartz #define JBC01_S_EVT_RINGB_PIO "pios_ringB" 1651370Sschwartz #define JBC01_S_EVT_PARTIAL_WR "partial_wr" 1661370Sschwartz #define JBC01_S_EVT_TOTAL_WR "total_wr" 1671370Sschwartz #define JBC01_S_EVT_TOTAL_RD "total_rd" 1681370Sschwartz #define JBC01_S_EVT_AOKOFF "aokoff" 1691370Sschwartz #define JBC01_S_EVT_DOKOFF "dokoff" 1701370Sschwartz #define JBC01_S_EVT_DAOKOFF "daokoff" 1711370Sschwartz #define JBC01_S_EVT_JBUS_COH_XACT "jbus_coh_tr" 1721370Sschwartz #define JBC01_S_EVT_FIRE_COH_XACT "fire_coh_tr" 1731370Sschwartz #define JBC01_S_EVT_JBUS_NCOH_XACT "jbus_ncoh_tr" 1741370Sschwartz #define JBC01_S_EVT_FGN_IO_HIT "fgn_pio_hit" 1751370Sschwartz #define JBC01_S_EVT_FIRE_WBS "fire_wb" 1761370Sschwartz #define JBC01_S_EVT_PCIEA_PIO_WR "pio_wr_pcieA" 1771370Sschwartz #define JBC01_S_EVT_PCIEA_PIO_RD "pio_rd_pcieA" 1781370Sschwartz #define JBC01_S_EVT_PCIEB_PIO_WR "pio_wr_pcieB" 1791370Sschwartz #define JBC01_S_EVT_PCIEB_PIO_RD "pio_rd_pcieB" 1801370Sschwartz 1811370Sschwartz #define JBC01_EVT_NONE 0x0 1821370Sschwartz #define JBC01_EVT_CLK 0x1 1831370Sschwartz #define JBC01_EVT_IDLE 0x2 1841370Sschwartz #define JBC01_EVT_FIRE 0x3 1851370Sschwartz #define JBC01_EVT_READ_LATENCY 0x4 1861370Sschwartz #define JBC01_EVT_READ_SAMPLE 0x5 1871370Sschwartz #define JBC01_EVT_I2C_PIO 0x6 1881370Sschwartz #define JBC01_EVT_EBUS_PIO 0x7 1891370Sschwartz #define JBC01_EVT_RINGA_PIO 0x8 1901370Sschwartz #define JBC01_EVT_RINGB_PIO 0x9 1911370Sschwartz #define JBC01_EVT_PARTIAL_WR 0xA 1921370Sschwartz #define JBC01_EVT_TOTAL_WR 0xB 1931370Sschwartz #define JBC01_EVT_TOTAL_RD 0xC 1941370Sschwartz #define JBC01_EVT_AOKOFF 0xD 1951370Sschwartz #define JBC01_EVT_DOKOFF 0xE 1961370Sschwartz #define JBC01_EVT_DAOKOFF 0xF 1971370Sschwartz #define JBC01_EVT_JBUS_COH_XACT 0x10 1981370Sschwartz #define JBC01_EVT_FIRE_COH_XACT 0x11 1991370Sschwartz #define JBC01_EVT_JBUS_NCOH_XACT 0x12 2001370Sschwartz #define JBC01_EVT_FGN_IO_HIT 0x13 2011370Sschwartz #define JBC01_EVT_FIRE_WBS 0x14 2021370Sschwartz #define JBC01_EVT_PCIEA_PIO_WR 0x15 2031370Sschwartz #define JBC01_EVT_PCIEA_PIO_RD 0x16 2041370Sschwartz #define JBC01_EVT_PCIEB_PIO_WR 0x17 2051370Sschwartz #define JBC01_EVT_PCIEB_PIO_RD 0x18 2061370Sschwartz 2071370Sschwartz #define IMU01_S_EVT_NONE "event_none" 2081370Sschwartz #define IMU01_S_EVT_CLK "clock_cyc" 2091370Sschwartz #define IMU01_S_EVT_MONDO "mondos_iss" 2101370Sschwartz #define IMU01_S_EVT_MSI "msi_iss" 2111370Sschwartz #define IMU01_S_EVT_MONDO_NAKS "mondos_nacks" 2121370Sschwartz #define IMU01_S_EVT_EQ_WR "eq_wr" 2131370Sschwartz #define IMU01_S_EVT_EQ_MONDO "eq_mondos" 2141370Sschwartz 2151370Sschwartz #define IMU01_EVT_NONE 0x0 2161370Sschwartz #define IMU01_EVT_CLK 0x1 2171370Sschwartz #define IMU01_EVT_MONDO 0x2 2181370Sschwartz #define IMU01_EVT_MSI 0x3 2191370Sschwartz #define IMU01_EVT_MONDO_NAKS 0x4 2201370Sschwartz #define IMU01_EVT_EQ_WR 0x5 2211370Sschwartz #define IMU01_EVT_EQ_MONDO 0x6 2221370Sschwartz 2231370Sschwartz #define MMU01_S_EVT_NONE "event_none" 2241370Sschwartz #define MMU01_S_EVT_CLK "clock_cyc" 2251370Sschwartz #define MMU01_S_EVT_TRANS "total_transl" 2261370Sschwartz #define MMU01_S_EVT_STALL "total_stall_cyc" 2271370Sschwartz #define MMU01_S_EVT_TRANSL_MISS "total_tranl_miss" 2281370Sschwartz #define MMU01_S_EVT_TBLWLK_STALL "tblwlk_stall_cyc" 2291370Sschwartz #define MMU01_S_EVT_BYPASS_TRANSL "bypass_transl" 2301370Sschwartz #define MMU01_S_EVT_TRANSL_TRANSL "transl_transl" 2311370Sschwartz #define MMU01_S_EVT_FLOW_CNTL_STALL "flow_stall_cyc" 2321370Sschwartz #define MMU01_S_EVT_FLUSH_CACHE_ENT "cache_entr_flush" 2331370Sschwartz 2341370Sschwartz #define MMU01_EVT_NONE 0x0 2351370Sschwartz #define MMU01_EVT_CLK 0x1 2361370Sschwartz #define MMU01_EVT_TRANSL 0x2 2371370Sschwartz #define MMU01_EVT_STALL 0x3 2381370Sschwartz #define MMU01_EVT_TRANSL_MISS 0x4 2391370Sschwartz #define MMU01_EVT_TBLWLK_STALL 0x5 2401370Sschwartz #define MMU01_EVT_BYPASS_TRANSL 0x6 2411370Sschwartz #define MMU01_EVT_TRANSL_TRANSL 0x7 2421370Sschwartz #define MMU01_EVT_FLOW_CNTL_STALL 0x8 2431370Sschwartz #define MMU01_EVT_FLUSH_CACHE_ENT 0x9 2441370Sschwartz 2451370Sschwartz #define TLU01_S_EVT_NONE "event_none" 2461370Sschwartz #define TLU01_S_EVT_CLK "clock_cyc" 2471370Sschwartz #define TLU01_S_EVT_COMPL "compl_recvd" 2481370Sschwartz #define TLU01_S_EVT_XMT_POST_CR_UNAV "post_cr_unav_cyc" 2491370Sschwartz #define TLU01_S_EVT_XMT_NPOST_CR_UNAV "npost_cr_unav_cyc" 2501370Sschwartz #define TLU01_S_EVT_XMT_CMPL_CR_UNAV "compl_cr_unav_cyc" 2511370Sschwartz #define TLU01_S_EVT_XMT_ANY_CR_UNAV "trans_cr_any_unav" 2521370Sschwartz #define TLU01_S_EVT_RETRY_CR_UNAV "retry_cr_unav" 2531370Sschwartz #define TLU01_S_EVT_MEMRD_PKT_RCVD "recvd_mem_rd_pkt" 2541370Sschwartz #define TLU01_S_EVT_MEMWR_PKT_RCVD "recvd_mem_wr_pkt" 2551370Sschwartz #define TLU01_S_EVT_RCV_CR_THRESH "recv_cr_thresh" 2561370Sschwartz #define TLU01_S_EVT_RCV_PST_HDR_CR_EXH "recv_hdr_cr_exh_cyc" 2571370Sschwartz #define TLU01_S_EVT_RCV_PST_DA_CR_MPS "recv_post_da_cr_mps" 2581370Sschwartz #define TLU01_S_EVT_RCV_NPST_HDR_CR_EXH "recv_npost_hdr_cr_exh" 2591370Sschwartz #define TLU01_S_EVT_RCVR_L0S "recvr_l0s_cyc" 2601370Sschwartz #define TLU01_S_EVT_RCVR_L0S_TRANS "recvr_l0s_trans" 2611370Sschwartz #define TLU01_S_EVT_XMTR_L0S "trans_l0s_cyc" 2621370Sschwartz #define TLU01_S_EVT_XMTR_L0S_TRANS "trans_l0s_trans" 2631370Sschwartz #define TLU01_S_EVT_RCVR_ERR "recvr_err" 2641370Sschwartz #define TLU01_S_EVT_BAD_TLP "bad_tlp" 2651370Sschwartz #define TLU01_S_EVT_BAD_DLLP "bad_dllp" 2661370Sschwartz #define TLU01_S_EVT_REPLAY_ROLLOVER "replay_rollover" 2671370Sschwartz #define TLU01_S_EVT_REPLAY_TMO "replay_to" 2681370Sschwartz 2691370Sschwartz #define TLU01_EVT_NONE 0x0 2701370Sschwartz #define TLU01_EVT_CLK 0x1 2711370Sschwartz #define TLU01_EVT_COMPL 0x2 2721370Sschwartz #define TLU01_EVT_XMT_POST_CR_UNAV 0x10 2731370Sschwartz #define TLU01_EVT_XMT_NPOST_CR_UNAV 0x11 2741370Sschwartz #define TLU01_EVT_XMT_CMPL_CR_UNAV 0x12 2751370Sschwartz #define TLU01_EVT_XMT_ANY_CR_UNAV 0x13 2761370Sschwartz #define TLU01_EVT_RETRY_CR_UNAV 0x14 2771370Sschwartz #define TLU01_EVT_MEMRD_PKT_RCVD 0x20 2781370Sschwartz #define TLU01_EVT_MEMWR_PKT_RCVD 0x21 2791370Sschwartz #define TLU01_EVT_RCV_CR_THRESH 0x22 2801370Sschwartz #define TLU01_EVT_RCV_PST_HDR_CR_EXH 0x23 2811370Sschwartz #define TLU01_EVT_RCV_PST_DA_CR_MPS 0x24 2821370Sschwartz #define TLU01_EVT_RCV_NPST_HDR_CR_EXH 0x25 2831370Sschwartz #define TLU01_EVT_RCVR_L0S 0x30 2841370Sschwartz #define TLU01_EVT_RCVR_L0S_TRANS 0x31 2851370Sschwartz #define TLU01_EVT_XMTR_L0S 0x32 2861370Sschwartz #define TLU01_EVT_XMTR_L0S_TRANS 0x33 2871370Sschwartz #define TLU01_EVT_RCVR_ERR 0x40 2881370Sschwartz #define TLU01_EVT_BAD_TLP 0x42 2891370Sschwartz #define TLU01_EVT_BAD_DLLP 0x43 2901370Sschwartz #define TLU01_EVT_REPLAY_ROLLOVER 0x44 2911370Sschwartz #define TLU01_EVT_REPLAY_TMO 0x47 2921370Sschwartz 2931370Sschwartz #define TLU2_S_EVT_NONE "event_none" 2941370Sschwartz #define TLU2_S_EVT_NON_POST_COMPL_TIME "non_post_compl" 2951370Sschwartz #define TLU2_S_EVT_XMT_DATA_WORD "trans_data_words" 2961370Sschwartz #define TLU2_S_EVT_RCVD_DATA_WORD "recvd_data_words" 2971370Sschwartz 2981370Sschwartz #define TLU2_EVT_NONE 0x0 2991370Sschwartz #define TLU2_EVT_NON_POST_COMPL_TIME 0x1 3001370Sschwartz #define TLU2_EVT_XMT_DATA_WORD 0x2 3011370Sschwartz #define TLU2_EVT_RCVD_DATA_WORD 0x3 3021370Sschwartz 3031370Sschwartz #define LPU12_S_EVT_RESET "event_reset" 3041370Sschwartz #define LPU12_S_EVT_TLP_RCVD "tlp_recvd" 3051370Sschwartz #define LPU12_S_EVT_DLLP_RCVD "dllp_recvd" 3061370Sschwartz #define LPU12_S_EVT_ACK_DLLP_RCVD "ack_dllp_recvd" 3071370Sschwartz #define LPU12_S_EVT_NAK_DLLP_RCVD "nak_dllp_recvd" 3081370Sschwartz #define LPU12_S_EVT_RETRY_START "retries_started" 3091370Sschwartz #define LPU12_S_EVT_REPLAY_TMO "replay_timer_to" 3101370Sschwartz #define LPU12_S_EVT_ACK_NAK_LAT_TMO "ack_nak_lat_to" 3111370Sschwartz #define LPU12_S_EVT_BAD_DLLP "bad_dllp" 3121370Sschwartz #define LPU12_S_EVT_BAD_TLP "bad_tlp" 3131370Sschwartz #define LPU12_S_EVT_NAK_DLLP_SENT "nak_dllp_sent" 3141370Sschwartz #define LPU12_S_EVT_ACK_DLLP_SENT "ack_dllp_sent" 3151370Sschwartz #define LPU12_S_EVT_RCVR_ERROR "recvr_err" 3161370Sschwartz #define LPU12_S_EVT_LTSSM_RECOV_ENTRY "ltssm_recov_entr" 3171370Sschwartz #define LPU12_S_EVT_REPLAY_IN_PROG "replay_prog_cyc" 3181370Sschwartz #define LPU12_S_EVT_TLP_XMT_IN_PROG "tlp_trans_prog_cyc" 3191370Sschwartz #define LPU12_S_EVT_CLK_CYC "clock_cyc" 3201370Sschwartz #define LPU12_S_EVT_TLP_DLLP_XMT_PROG "tlp_dllp_trans_cyc" 3211370Sschwartz #define LPU12_S_EVT_TLP_DLLP_RCV_PROG "tlp_dllp_recv_cyc" 3221370Sschwartz 3231370Sschwartz #define LPU12_EVT_RESET 0x0 3241370Sschwartz #define LPU12_EVT_TLP_RCVD 0x1 3251370Sschwartz #define LPU12_EVT_DLLP_RCVD 0x2 3261370Sschwartz #define LPU12_EVT_ACK_DLLP_RCVD 0x3 3271370Sschwartz #define LPU12_EVT_NAK_DLLP_RCVD 0x4 3281370Sschwartz #define LPU12_EVT_RETRY_START 0x5 3291370Sschwartz #define LPU12_EVT_REPLAY_TMO 0x6 3301370Sschwartz #define LPU12_EVT_ACK_NAK_LAT_TMO 0x7 3311370Sschwartz #define LPU12_EVT_BAD_DLLP 0x8 3321370Sschwartz #define LPU12_EVT_BAD_TLP 0x9 3331370Sschwartz #define LPU12_EVT_NAK_DLLP_SENT 0xA 3341370Sschwartz #define LPU12_EVT_ACK_DLLP_SENT 0xB 3351370Sschwartz #define LPU12_EVT_RCVR_ERROR 0xC 3361370Sschwartz #define LPU12_EVT_LTSSM_RECOV_ENTRY 0xD 3371370Sschwartz #define LPU12_EVT_REPLAY_IN_PROG 0xE 3381370Sschwartz #define LPU12_EVT_TLP_XMT_IN_PROG 0xF 3391370Sschwartz #define LPU12_EVT_CLK_CYC 0x10 3401370Sschwartz #define LPU12_EVT_TLP_DLLP_XMT_PROG 0x11 3411370Sschwartz #define LPU12_EVT_TLP_DLLP_RCV_PROG 0x12 3421370Sschwartz 3431370Sschwartz #define COMMON_S_CLEAR_PIC "clear_pic" 3441370Sschwartz 3451370Sschwartz #ifdef __cplusplus 3461370Sschwartz } 3471370Sschwartz #endif 3481370Sschwartz 3491370Sschwartz #endif /* _FPC_H */ 350