#ifndef _HFI1_MAD_H
#define _HFI1_MAD_H
#include <rdma/ib_pma.h>
#include <rdma/opa_smi.h>
#include <rdma/opa_port_info.h>
#include "opa_compat.h"
#define OPA_TRAP_GID_NOW_IN_SERVICE …
#define OPA_TRAP_GID_OUT_OF_SERVICE …
#define OPA_TRAP_ADD_MULTICAST_GROUP …
#define OPA_TRAL_DEL_MULTICAST_GROUP …
#define OPA_TRAP_UNPATH …
#define OPA_TRAP_REPATH …
#define OPA_TRAP_PORT_CHANGE_STATE …
#define OPA_TRAP_LINK_INTEGRITY …
#define OPA_TRAP_EXCESSIVE_BUFFER_OVERRUN …
#define OPA_TRAP_FLOW_WATCHDOG …
#define OPA_TRAP_CHANGE_CAPABILITY …
#define OPA_TRAP_CHANGE_SYSGUID …
#define OPA_TRAP_BAD_M_KEY …
#define OPA_TRAP_BAD_P_KEY …
#define OPA_TRAP_BAD_Q_KEY …
#define OPA_TRAP_SWITCH_BAD_PKEY …
#define OPA_SMA_TRAP_DATA_LINK_WIDTH …
#define OPA_NOTICE_TRAP_LWDE_CHG …
#define OPA_NOTICE_TRAP_LSE_CHG …
#define OPA_NOTICE_TRAP_LWE_CHG …
#define OPA_NOTICE_TRAP_NODE_DESC_CHG …
struct opa_mad_notice_attr { … };
#define IB_VLARB_LOWPRI_0_31 …
#define IB_VLARB_LOWPRI_32_63 …
#define IB_VLARB_HIGHPRI_0_31 …
#define IB_VLARB_HIGHPRI_32_63 …
#define OPA_MAX_PREEMPT_CAP …
#define OPA_VLARB_LOW_ELEMENTS …
#define OPA_VLARB_HIGH_ELEMENTS …
#define OPA_VLARB_PREEMPT_ELEMENTS …
#define OPA_VLARB_PREEMPT_MATRIX …
#define IB_PMA_PORT_COUNTERS_CONG …
#define LINK_SPEED_25G …
#define LINK_SPEED_12_5G …
#define LINK_WIDTH_DEFAULT …
#define DECIMAL_FACTORING …
#define FACTOR_LINK_WIDTH …
struct ib_pma_portcounters_cong { … } __packed;
#define IB_SMP_UNSUP_VERSION …
#define IB_SMP_UNSUP_METHOD …
#define IB_SMP_UNSUP_METH_ATTR …
#define IB_SMP_INVALID_FIELD …
#define OPA_MAX_PREEMPT_CAP …
#define OPA_VLARB_LOW_ELEMENTS …
#define OPA_VLARB_HIGH_ELEMENTS …
#define OPA_VLARB_PREEMPT_ELEMENTS …
#define OPA_VLARB_PREEMPT_MATRIX …
#define HFI1_XMIT_RATE_UNSUPPORTED …
#define HFI1_XMIT_RATE_PICO …
#define HFI1_CONG_TIMER_PSINTERVAL …
#define IB_CC_SVCTYPE_RC …
#define IB_CC_SVCTYPE_UC …
#define IB_CC_SVCTYPE_RD …
#define IB_CC_SVCTYPE_UD …
#define OPA_CC_LOG_TYPE_HFI …
struct opa_hfi1_cong_log_event_internal { … };
struct opa_hfi1_cong_log_event { … } __packed;
#define OPA_CONG_LOG_ELEMS …
struct opa_hfi1_cong_log { … } __packed;
#define IB_CC_TABLE_CAP_DEFAULT …
#define IB_CC_CCS_PC_SL_BASED …
struct opa_congestion_setting_entry { … } __packed;
struct opa_congestion_setting_entry_shadow { … } __packed;
struct opa_congestion_setting_attr { … } __packed;
struct opa_congestion_setting_attr_shadow { … } __packed;
#define IB_CC_TABLE_ENTRY_INCREASE_DEFAULT …
#define IB_CC_TABLE_ENTRY_TIMER_DEFAULT …
#define IB_CCT_ENTRIES …
#define IB_CCT_MIN_ENTRIES …
struct ib_cc_table_entry { … };
struct ib_cc_table_entry_shadow { … };
struct ib_cc_table_attr { … } __packed;
struct ib_cc_table_attr_shadow { … } __packed;
#define CC_TABLE_SHADOW_MAX …
struct cc_table_shadow { … } __packed;
struct cc_state { … };
#define OPA_AM_NPORT_SHIFT …
#define OPA_AM_NPORT_MASK …
#define OPA_AM_NPORT_SMASK …
#define OPA_AM_NPORT(am) …
#define OPA_AM_NBLK_SHIFT …
#define OPA_AM_NBLK_MASK …
#define OPA_AM_NBLK_SMASK …
#define OPA_AM_NBLK(am) …
#define OPA_AM_START_BLK_SHIFT …
#define OPA_AM_START_BLK_MASK …
#define OPA_AM_START_BLK_SMASK …
#define OPA_AM_START_BLK(am) …
#define OPA_AM_PORTNUM_SHIFT …
#define OPA_AM_PORTNUM_MASK …
#define OPA_AM_PORTNUM_SMASK …
#define OPA_AM_PORTNUM(am) …
#define OPA_AM_ASYNC_SHIFT …
#define OPA_AM_ASYNC_MASK …
#define OPA_AM_ASYNC_SMASK …
#define OPA_AM_ASYNC(am) …
#define OPA_AM_START_SM_CFG_SHIFT …
#define OPA_AM_START_SM_CFG_MASK …
#define OPA_AM_START_SM_CFG_SMASK …
#define OPA_AM_START_SM_CFG(am) …
#define OPA_AM_CI_ADDR_SHIFT …
#define OPA_AM_CI_ADDR_MASK …
#define OPA_AM_CI_ADDR_SMASK …
#define OPA_AM_CI_ADDR(am) …
#define OPA_AM_CI_LEN_SHIFT …
#define OPA_AM_CI_LEN_MASK …
#define OPA_AM_CI_LEN_SMASK …
#define OPA_AM_CI_LEN(am) …
#define OPA_EI_STATUS_SMASK …
#define OPA_EI_CODE_SMASK …
struct vl_limit { … };
struct buffer_control { … };
struct sc2vlnt { … };
#define COUNTER_MASK(q, n) …
#define COUNTER_MASK0_9 …
void hfi1_event_pkey_change(struct hfi1_devdata *dd, u32 port);
void hfi1_handle_trap_timer(struct timer_list *t);
u16 tx_link_width(u16 link_width);
u64 get_xmit_wait_counters(struct hfi1_pportdata *ppd, u16 link_width,
u16 link_speed, int vl);
static inline u16 get_link_speed(u16 link_speed)
{ … }
static inline u64 convert_xmit_counter(u64 xmit_wait_val, u16 link_width,
u16 link_speed)
{ … }
#endif