68 #define empty_isect ((intersection_get)(void (*)(void))xt_idxempty_new)
102 INSTR_DEF(instr_fallback,
"xt_idxlist_get_intersection.fallback")
107 int num_indices_src, num_indices_dst;
112 if (num_indices_src == 0 || num_indices_dst == 0)
119 =
xmalloc(((
size_t)num_indices_src + (
size_t)num_indices_dst)
120 *
sizeof (indices_src[0])),
121 *indices_dst = indices_src + num_indices_src;
136 int num_stripes_src, num_stripes_dst;
137 struct Xt_stripe *stripes_src, *stripes_dst;
add versions of standard API functions not returning on error
const struct xt_idxlist_vtable * vtable
base definitions header file
struct Xt_idxlist_ * Xt_idxlist
Xt_idxlist xt_idxempty_new(void)
int xt_idxlist_get_num_indices(Xt_idxlist idxlist)
void xt_idxlist_get_indices(Xt_idxlist idxlist, Xt_int *indices)
void xt_idxlist_get_index_stripes(Xt_idxlist idxlist, struct Xt_stripe **stripes, int *num_stripes)
void xt_idxlist_delete(Xt_idxlist idxlist)
Provide non-public declarations common to all index lists.
static const intersection_get intersection_get_matrix[num_idxlist_classes][num_idxlist_classes]
Xt_idxlist xt_default_isect(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)
void xt_idxlist_intersection_init(void)
Xt_idxlist xt_idxlist_get_intersection(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)
Xt_idxlist(* intersection_get)(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)
Xt_idxlist xt_idxsection_get_intersection_with_other_idxlist(Xt_idxlist src_idxsection, Xt_idxlist dst_idxlist)
Xt_idxlist xt_idxsection_get_intersection(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)
Xt_idxlist xt_idxstripes_prealloc_new(const struct Xt_stripe *stripes, int num_stripes)
Xt_idxlist xt_idxstripes_get_intersection(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)
Xt_idxlist xt_idxvec_prealloc_new(const Xt_int *idxvec, int num_indices)
Xt_idxlist xt_idxvec_get_intersection(Xt_idxlist idxlist_src, Xt_idxlist idxlist_dst)