common/cnxk: add NPC init and fini
[dpdk.git] / drivers / common / cnxk / roc_npc.h
index c841240..996739e 100644 (file)
@@ -126,4 +126,44 @@ struct roc_npc {
        uint8_t reserved[ROC_NPC_MEM_SZ];
 } __plt_cache_aligned;
 
+int __roc_api roc_npc_init(struct roc_npc *roc_npc);
+int __roc_api roc_npc_fini(struct roc_npc *roc_npc);
+const char *__roc_api roc_npc_profile_name_get(struct roc_npc *roc_npc);
+
+struct roc_npc_flow *__roc_api
+roc_npc_flow_create(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,
+                   const struct roc_npc_item_info pattern[],
+                   const struct roc_npc_action actions[], int *errcode);
+int __roc_api roc_npc_flow_destroy(struct roc_npc *roc_npc,
+                                  struct roc_npc_flow *flow);
+int __roc_api roc_npc_mcam_free_entry(struct roc_npc *roc_npc, uint32_t entry);
+int __roc_api roc_npc_mcam_alloc_entry(struct roc_npc *roc_npc,
+                                      struct roc_npc_flow *mcam,
+                                      struct roc_npc_flow *ref_mcam, int prio,
+                                      int *resp_count);
+int __roc_api roc_npc_mcam_alloc_entries(struct roc_npc *roc_npc, int ref_entry,
+                                        int *alloc_entry, int req_count,
+                                        int priority, int *resp_count);
+int __roc_api roc_npc_mcam_ena_dis_entry(struct roc_npc *roc_npc,
+                                        struct roc_npc_flow *mcam,
+                                        bool enable);
+int __roc_api roc_npc_mcam_write_entry(struct roc_npc *roc_npc,
+                                      struct roc_npc_flow *mcam);
+int __roc_api roc_npc_flow_parse(struct roc_npc *roc_npc,
+                                const struct roc_npc_attr *attr,
+                                const struct roc_npc_item_info pattern[],
+                                const struct roc_npc_action actions[],
+                                struct roc_npc_flow *flow);
+int __roc_api roc_npc_get_low_priority_mcam(struct roc_npc *roc_npc);
+
+int __roc_api roc_npc_mcam_free_counter(struct roc_npc *roc_npc,
+                                       uint16_t ctr_id);
+
+int __roc_api roc_npc_mcam_read_counter(struct roc_npc *roc_npc,
+                                       uint32_t ctr_id, uint64_t *count);
+int __roc_api roc_npc_mcam_clear_counter(struct roc_npc *roc_npc,
+                                        uint32_t ctr_id);
+
+int __roc_api roc_npc_mcam_free_all_resources(struct roc_npc *roc_npc);
+
 #endif /* _ROC_NPC_H_ */