History

qed: introduce qed_chain_get_elem_used{,u32}()

Add reverse-variants of qed_chain_get_elem_left{,u32}() to be able to know current chain occupation. They will be used in the upcoming qede XDP_REDIRECT code. They share most of the logics with the mentioned ones, so were reused to collapse the latters.

Alexander Lobakin committed 6 years ago

Commit be0cec61 parent f2aefd21 file · +14 −4Browse files

Showing the changes to include/linux (1 of 1 file). Show all

Unified · Split

include/linux/qed/qed_chain.h+14−4
@@ -203,7 +203,7 @@ static inline u32 qed_chain_get_cons_idx_u32(const struct qed_chain *chain) · 202 unmodified lines
203 return chain->u.chain32.cons_idx;203 return chain->u.chain32.cons_idx;
204}204}
205 205
206static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain)206static inline u16 qed_chain_get_elem_used(const struct qed_chain *chain)
207{207{
208 u32 prod = qed_chain_get_prod_idx(chain);208 u32 prod = qed_chain_get_prod_idx(chain);
209 u32 cons = qed_chain_get_cons_idx(chain);209 u32 cons = qed_chain_get_cons_idx(chain);
@@ -217,10 +217,15 @@ static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain) · 7 unmodified lines
217 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)217 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)
218 used -= (u16)(prod / elem_per_page - cons / elem_per_page);218 used -= (u16)(prod / elem_per_page - cons / elem_per_page);
219 219
220 return (u16)(chain->capacity - used);220 return used;
221}221}
222 222
223static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain)223static inline u16 qed_chain_get_elem_left(const struct qed_chain *chain)
224{
225 return (u16)(chain->capacity - qed_chain_get_elem_used(chain));
226}
227
228static inline u32 qed_chain_get_elem_used_u32(const struct qed_chain *chain)
224{229{
225 u64 prod = qed_chain_get_prod_idx_u32(chain);230 u64 prod = qed_chain_get_prod_idx_u32(chain);
226 u64 cons = qed_chain_get_cons_idx_u32(chain);231 u64 cons = qed_chain_get_cons_idx_u32(chain);
@@ -234,7 +239,12 @@ static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain) · 7 unmodified lines
234 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)239 if (chain->mode == QED_CHAIN_MODE_NEXT_PTR)
235 used -= (u32)(prod / elem_per_page - cons / elem_per_page);240 used -= (u32)(prod / elem_per_page - cons / elem_per_page);
236 241
237 return chain->capacity - used;242 return used;
243}
244
245static inline u32 qed_chain_get_elem_left_u32(const struct qed_chain *chain)
246{
247 return chain->capacity - qed_chain_get_elem_used_u32(chain);
238}248}
239 249
240static inline u16 qed_chain_get_usable_per_page(const struct qed_chain *chain)250static inline u16 qed_chain_get_usable_per_page(const struct qed_chain *chain)