// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB /* Copyright (c) 2017 - 2021 Intel Corporation */ #include "osdep.h" #include "hmc.h" #include "defs.h" #include "type.h" #include "protos.h" #include "ws.h" /** * irdma_alloc_node - Allocate a WS node and init * @vsi: vsi pointer * @user_pri: user priority * @node_type: Type of node, leaf or parent * @parent: parent node pointer */ static struct irdma_ws_node *irdma_alloc_node(struct irdma_sc_vsi *vsi, u8 user_pri, enum irdma_ws_node_type node_type, struct irdma_ws_node *parent) { … } /** * irdma_free_node - Free a WS node * @vsi: VSI stricture of device * @node: Pointer to node to free */ static void irdma_free_node(struct irdma_sc_vsi *vsi, struct irdma_ws_node *node) { … } /** * irdma_ws_cqp_cmd - Post CQP work scheduler node cmd * @vsi: vsi pointer * @node: pointer to node * @cmd: add, remove or modify */ static int irdma_ws_cqp_cmd(struct irdma_sc_vsi *vsi, struct irdma_ws_node *node, u8 cmd) { … } /** * ws_find_node - Find SC WS node based on VSI id or TC * @parent: parent node of First VSI or TC node * @match_val: value to match * @type: match type VSI/TC */ static struct irdma_ws_node *ws_find_node(struct irdma_ws_node *parent, u16 match_val, enum irdma_ws_match_type type) { … } /** * irdma_tc_in_use - Checks to see if a leaf node is in use * @vsi: vsi pointer * @user_pri: user priority */ static bool irdma_tc_in_use(struct irdma_sc_vsi *vsi, u8 user_pri) { … } /** * irdma_remove_leaf - Remove leaf node unconditionally * @vsi: vsi pointer * @user_pri: user priority */ static void irdma_remove_leaf(struct irdma_sc_vsi *vsi, u8 user_pri) { … } /** * irdma_ws_add - Build work scheduler tree, set RDMA qs_handle * @vsi: vsi pointer * @user_pri: user priority */ int irdma_ws_add(struct irdma_sc_vsi *vsi, u8 user_pri) { … } /** * irdma_ws_remove - Free WS scheduler node, update WS tree * @vsi: vsi pointer * @user_pri: user priority */ void irdma_ws_remove(struct irdma_sc_vsi *vsi, u8 user_pri) { … } /** * irdma_ws_reset - Reset entire WS tree * @vsi: vsi pointer */ void irdma_ws_reset(struct irdma_sc_vsi *vsi) { … }