cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rvu_devlink.h (2077B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* Marvell RVU Admin Function Devlink
      3 *
      4 * Copyright (C) 2020 Marvell.
      5 *
      6 */
      7
      8#ifndef RVU_DEVLINK_H
      9#define  RVU_DEVLINK_H
     10
     11#define RVU_REPORTERS(_name)  \
     12static const struct devlink_health_reporter_ops  rvu_ ## _name ## _reporter_ops =  { \
     13	.name = #_name, \
     14	.recover = rvu_ ## _name ## _recover, \
     15	.dump = rvu_ ## _name ## _dump, \
     16}
     17
     18enum npa_af_rvu_health {
     19	NPA_AF_RVU_INTR,
     20	NPA_AF_RVU_GEN,
     21	NPA_AF_RVU_ERR,
     22	NPA_AF_RVU_RAS,
     23};
     24
     25struct rvu_npa_event_ctx {
     26	u64 npa_af_rvu_int;
     27	u64 npa_af_rvu_gen;
     28	u64 npa_af_rvu_err;
     29	u64 npa_af_rvu_ras;
     30};
     31
     32struct rvu_npa_health_reporters {
     33	struct rvu_npa_event_ctx *npa_event_ctx;
     34	struct devlink_health_reporter *rvu_hw_npa_intr_reporter;
     35	struct work_struct              intr_work;
     36	struct devlink_health_reporter *rvu_hw_npa_gen_reporter;
     37	struct work_struct              gen_work;
     38	struct devlink_health_reporter *rvu_hw_npa_err_reporter;
     39	struct work_struct             err_work;
     40	struct devlink_health_reporter *rvu_hw_npa_ras_reporter;
     41	struct work_struct              ras_work;
     42};
     43
     44enum nix_af_rvu_health {
     45	NIX_AF_RVU_INTR,
     46	NIX_AF_RVU_GEN,
     47	NIX_AF_RVU_ERR,
     48	NIX_AF_RVU_RAS,
     49};
     50
     51struct rvu_nix_event_ctx {
     52	u64 nix_af_rvu_int;
     53	u64 nix_af_rvu_gen;
     54	u64 nix_af_rvu_err;
     55	u64 nix_af_rvu_ras;
     56};
     57
     58struct rvu_nix_health_reporters {
     59	struct rvu_nix_event_ctx *nix_event_ctx;
     60	struct devlink_health_reporter *rvu_hw_nix_intr_reporter;
     61	struct work_struct		intr_work;
     62	struct devlink_health_reporter *rvu_hw_nix_gen_reporter;
     63	struct work_struct		gen_work;
     64	struct devlink_health_reporter *rvu_hw_nix_err_reporter;
     65	struct work_struct		err_work;
     66	struct devlink_health_reporter *rvu_hw_nix_ras_reporter;
     67	struct work_struct		ras_work;
     68};
     69
     70struct rvu_devlink {
     71	struct devlink *dl;
     72	struct rvu *rvu;
     73	struct workqueue_struct *devlink_wq;
     74	struct rvu_npa_health_reporters *rvu_npa_health_reporter;
     75	struct rvu_nix_health_reporters *rvu_nix_health_reporter;
     76};
     77
     78/* Devlink APIs */
     79int rvu_register_dl(struct rvu *rvu);
     80void rvu_unregister_dl(struct rvu *rvu);
     81
     82#endif /* RVU_DEVLINK_H */