4 /* Functions for manipulating dynamic arrays */
6 /* Frees array data and reset array num_entries */
7 void array_clear(void **arr_data
, int32_t *arr_num_entries
);
9 /* Initializes dst array with src array data. dst array is cleared first */
10 bool array_clone(void **src_arr_data
, int32_t *src_arr_num_entries
, uint32_t entry_size
, void **dst_arr_data
, int32_t *dst_arr_num_entries
);
12 /* Add element at the end of array */
13 bool array_add(void **arr_data
, int32_t *arr_num_entries
, uint32_t entry_size
, void *new_entry
);
15 /* Array functions for different types */
16 #define DECLARE_ARRAY_FUNCS(NAME, BASE_TYPE, DATA_TYPE, DATA_FIELD, NUM_FIELD) \
17 void NAME##_clear(BASE_TYPE *in); \
18 bool NAME##_clone(BASE_TYPE *src, BASE_TYPE *dst); \
19 bool NAME##_add(BASE_TYPE *in, DATA_TYPE *td); \
21 DECLARE_ARRAY_FUNCS(ftab, FTAB, FILTER, filts, nfilts); // Declare ftab_clear(), ftab_clone(), ftab_add()
22 DECLARE_ARRAY_FUNCS(tuntab
, TUNTAB
, TUNTAB_DATA
, ttdata
, ttnum
); // Declare tuntab_clear(), tuntab_clone(), tuntab_add()
23 DECLARE_ARRAY_FUNCS(ecm_whitelist
, ECM_WHITELIST
, ECM_WHITELIST_DATA
, ewdata
, ewnum
); // Declare ecm_whitelist_clear(), ecm_whitelist_clone(), ecm_whitelist_add()
24 DECLARE_ARRAY_FUNCS(ecm_hdr_whitelist
, ECM_HDR_WHITELIST
, ECM_HDR_WHITELIST_DATA
, ehdata
, ehnum
); // Declare ecm_hdr_whitelist_clear(), ecm_hdr_whitelist_clone(), ecm_hdr_whitelist_add()
25 DECLARE_ARRAY_FUNCS(caidvaluetab
, CAIDVALUETAB
, CAIDVALUETAB_DATA
, cvdata
, cvnum
); // Declare caidvaluetab_clear(), caidvaluetab_clone(), caidvaluetab_add()
26 DECLARE_ARRAY_FUNCS(caidtab
, CAIDTAB
, CAIDTAB_DATA
, ctdata
, ctnum
); // Declare caidtab_clear(), caidtab_clone(), caidtab_add()
27 DECLARE_ARRAY_FUNCS(cecspvaluetab
, CECSPVALUETAB
, CECSPVALUETAB_DATA
, cevdata
, cevnum
); // Declare cecspvaluetab_clear(), cecspvaluetab_clone(), cecspvaluetab_add()
28 DECLARE_ARRAY_FUNCS(cwcheckvaluetab
, CWCHECKTAB
, CWCHECKTAB_DATA
, cwcheckdata
, cwchecknum
); // Declare cwcheckvaluetab_clear(), cwcheckvaluetab_clone(), cwcheckvaluetab_add()
30 #undef DECLARE_ARRAY_FUNCS