Symbol: parman
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
117
parman_item_remove(tcam_region->parman,
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
15
struct parman *parman;
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
243
struct parman *parman;
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
254
parman = parman_create(&mlxsw_sp1_mr_tcam_region_parman_ops,
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
256
if (!parman) {
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
260
mr_tcam_region->parman = parman;
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
271
parman_prio_init(mr_tcam_region->parman,
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
276
parman_destroy(parman);
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
290
parman_destroy(mr_tcam_region->parman);
drivers/net/ethernet/mellanox/mlxsw/spectrum1_mr_tcam.c
99
err = parman_item_add(tcam_region->parman,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
164
cregion->parman = parman_create(&mlxsw_sp_acl_ctcam_region_parman_ops,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
166
if (!cregion->parman)
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
173
parman_destroy(cregion->parman);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
180
parman_prio_init(cregion->parman, &cchunk->parman_prio, priority);
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
197
err = parman_item_add(cregion->parman, &cchunk->parman_prio,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
209
parman_item_remove(cregion->parman, &cchunk->parman_prio,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c
220
parman_item_remove(cregion->parman, &cchunk->parman_prio,
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h
91
struct parman *parman;
include/linux/parman.h
64
struct parman;
include/linux/parman.h
66
struct parman *parman_create(const struct parman_ops *ops, void *priv);
include/linux/parman.h
67
void parman_destroy(struct parman *parman);
include/linux/parman.h
68
void parman_prio_init(struct parman *parman, struct parman_prio *prio,
include/linux/parman.h
71
int parman_item_add(struct parman *parman, struct parman_prio *prio,
include/linux/parman.h
73
void parman_item_remove(struct parman *parman, struct parman_prio *prio,
lib/parman.c
114
static unsigned long parman_lsort_new_index_find(struct parman *parman,
lib/parman.c
117
list_for_each_entry_from_reverse(prio, &parman->prio_list, list) {
lib/parman.c
125
static void __parman_prio_move(struct parman *parman, struct parman_prio *prio,
lib/parman.c
129
parman->ops->move(parman->priv, item->index, to_index, count);
lib/parman.c
132
static void parman_prio_shift_down(struct parman *parman,
lib/parman.c
142
__parman_prio_move(parman, prio, item, to_index, 1);
lib/parman.c
147
static void parman_prio_shift_up(struct parman *parman,
lib/parman.c
157
__parman_prio_move(parman, prio, item, to_index, 1);
lib/parman.c
162
static void parman_prio_item_remove(struct parman *parman,
lib/parman.c
175
__parman_prio_move(parman, prio, last_item, to_index, 1);
lib/parman.c
181
static int parman_lsort_item_add(struct parman *parman,
lib/parman.c
189
if (parman->count + 1 > parman->limit_count) {
lib/parman.c
190
err = parman_enlarge(parman);
lib/parman.c
195
new_index = parman_lsort_new_index_find(parman, prio);
lib/parman.c
196
list_for_each_entry_reverse(prio2, &parman->prio_list, list) {
lib/parman.c
199
parman_prio_shift_down(parman, prio2);
lib/parman.c
203
parman->count++;
lib/parman.c
207
static void parman_lsort_item_remove(struct parman *parman,
lib/parman.c
211
parman_prio_item_remove(parman, prio, item);
lib/parman.c
212
list_for_each_entry_continue(prio, &parman->prio_list, list)
lib/parman.c
213
parman_prio_shift_up(parman, prio);
lib/parman.c
214
parman->count--;
lib/parman.c
215
if (parman->limit_count - parman->count >= parman->ops->resize_step)
lib/parman.c
216
parman_shrink(parman);
lib/parman.c
267
struct parman *parman_create(const struct parman_ops *ops, void *priv)
lib/parman.c
269
struct parman *parman;
lib/parman.c
271
parman = kzalloc_obj(*parman);
lib/parman.c
272
if (!parman)
lib/parman.c
274
INIT_LIST_HEAD(&parman->prio_list);
lib/parman.c
275
parman->ops = ops;
lib/parman.c
276
parman->priv = priv;
lib/parman.c
277
parman->limit_count = ops->base_count;
lib/parman.c
278
parman->algo = parman_algos[ops->algo];
lib/parman.c
279
return parman;
lib/parman.c
289
void parman_destroy(struct parman *parman)
lib/parman.c
291
WARN_ON(!list_empty(&parman->prio_list));
lib/parman.c
292
kfree(parman);
lib/parman.c
307
void parman_prio_init(struct parman *parman, struct parman_prio *prio,
lib/parman.c
317
list_for_each(pos, &parman->prio_list) {
lib/parman.c
351
int parman_item_add(struct parman *parman, struct parman_prio *prio,
lib/parman.c
354
return parman->algo->item_add(parman, prio, item);
lib/parman.c
366
void parman_item_remove(struct parman *parman, struct parman_prio *prio,
lib/parman.c
369
parman->algo->item_remove(parman, prio, item);
lib/parman.c
44
int (*item_add)(struct parman *parman, struct parman_prio *prio,
lib/parman.c
46
void (*item_remove)(struct parman *parman, struct parman_prio *prio,
lib/parman.c
59
static int parman_enlarge(struct parman *parman)
lib/parman.c
61
unsigned long new_count = parman->limit_count +
lib/parman.c
62
parman->ops->resize_step;
lib/parman.c
65
err = parman->ops->resize(parman->priv, new_count);
lib/parman.c
68
parman->limit_count = new_count;
lib/parman.c
72
static int parman_shrink(struct parman *parman)
lib/parman.c
74
unsigned long new_count = parman->limit_count -
lib/parman.c
75
parman->ops->resize_step;
lib/parman.c
78
if (new_count < parman->ops->base_count)
lib/parman.c
80
err = parman->ops->resize(parman->priv, new_count);
lib/parman.c
83
parman->limit_count = new_count;
lib/test_parman.c
172
parman_prio_init(test_parman->parman, &prio->parman_prio,
lib/test_parman.c
211
parman_item_remove(test_parman->parman,
lib/test_parman.c
228
test_parman->parman = parman_create(ops, test_parman);
lib/test_parman.c
229
if (!test_parman->parman) {
lib/test_parman.c
250
parman_destroy(test_parman->parman);
lib/test_parman.c
281
err = parman_item_add(test_parman->parman,
lib/test_parman.c
290
parman_item_remove(test_parman->parman,
lib/test_parman.c
78
struct parman *parman;