mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
Cleanup of dead code + example documentation for two functions.
This commit is contained in:
parent
602b1445e3
commit
ff95080f92
@ -619,6 +619,23 @@ i_same(struct f_inst *f1, struct f_inst *f2)
|
||||
return i_same(f1->next, f2->next);
|
||||
}
|
||||
|
||||
/**
|
||||
* f_run - external entry point to filters
|
||||
* @filter: pointer to filter to run
|
||||
* @rte: pointer to pointer to rte being filtered. When route is modified, this is changed with rte_cow.
|
||||
* @tmp_pool: all filter allocations go from this pool
|
||||
*
|
||||
* Filter consists of tree of &f_inst structures, one structure per
|
||||
* "instruction". Each &f_inst contains code, aux value which is
|
||||
* usually type of data this instruction operates on, and two generic
|
||||
* arguments (a1, a2). Some instructinos contain pointer(s) to other
|
||||
* instructions in their (a1, a2) fields.
|
||||
*
|
||||
* Filters use structure &f_val for its variables. Each &f_val contains
|
||||
* type and value. Types are constants prefixed with %T_. Few of types
|
||||
* are special; %T_RETURN can be or-ed with type to indicate that return
|
||||
* from function/from whole filter should be forced.
|
||||
*/
|
||||
int
|
||||
f_run(struct filter *filter, struct rte **rte, struct ea_list **tmp_attrs, struct linpool *tmp_pool, int flags)
|
||||
{
|
||||
@ -659,6 +676,16 @@ filters_postconfig(void)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* filter_same - compare two filters
|
||||
* @new: first filter to be compared
|
||||
* @old: second filter to be compared, notice that this filter is
|
||||
* damaged while comparing.
|
||||
*
|
||||
* Returns 1 in case filters are same, otherwise 0. If there are
|
||||
* underlying bugs, it will rather say 0 on same filters than say
|
||||
* 1 on different.
|
||||
*/
|
||||
int
|
||||
filter_same(struct filter *new, struct filter *old)
|
||||
{
|
||||
@ -670,51 +697,6 @@ filter_same(struct filter *new, struct filter *old)
|
||||
return i_same(new->root, old->root);
|
||||
}
|
||||
|
||||
/* This should end up far away from here!
|
||||
*/
|
||||
struct adata *
|
||||
comlist_add(struct linpool *pool, struct adata *list, u32 val)
|
||||
{
|
||||
struct adata *res = lp_alloc(pool, list->length + sizeof(struct adata) + 4);
|
||||
res->length = list->length+4;
|
||||
* (u32 *) res->data = val;
|
||||
memcpy((char *) res->data + 4, list->data, list->length);
|
||||
return res;
|
||||
}
|
||||
|
||||
struct adata *
|
||||
comlist_contains(struct adata *list, u32 val)
|
||||
{
|
||||
u32 *l = &(list->data);
|
||||
int i;
|
||||
for (i=0; i<list->length/4; i++)
|
||||
if (*l++ == val)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct adata *
|
||||
comlist_del(struct linpool *pool, struct adata *list, u32 val)
|
||||
{
|
||||
struct adata *res;
|
||||
u32 *l, *k;
|
||||
int i;
|
||||
|
||||
if (!comlist_contains(list, val))
|
||||
return list;
|
||||
|
||||
res = lp_alloc(pool, list->length + sizeof(struct adata) - 4);
|
||||
res->length = list->length-4;
|
||||
|
||||
l = &(list->data);
|
||||
k = &(res->data);
|
||||
for (i=0; i<list->length/4; i++)
|
||||
if (l[i] != val)
|
||||
*k++ = l[i];
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
struct adata *
|
||||
adata_empty(struct linpool *pool)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user