26 #ifndef ROHC_COMMON_LIST_H    27 #define ROHC_COMMON_LIST_H    36 #define ROHC_LIST_MAX_ITEM  16U    37 #if ROHC_LIST_MAX_ITEM <= 7    38 #  error "translation table must be larger enough for indexes stored on 3 bits"    54 #define ROHC_LIST_GEN_ID_MAX   0xffU    55 #define ROHC_LIST_GEN_ID_ANON  (ROHC_LIST_GEN_ID_MAX + 1)    56 #define ROHC_LIST_GEN_ID_NONE  (ROHC_LIST_GEN_ID_MAX + 2)    65 #define ROHC_LIST_ITEMS_MAX  15U    77 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \    78      (defined(__GNUC__) && defined(__GNUC_MINOR__) && \    79       (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))))    80 _Static_assert((
sizeof(
struct rohc_list) % 8) == 0,
    81                "struct rohc_list length should be multiple of 8 bytes");
   104 #define ROHC_LIST_ITEM_DATA_MAX  IPV6_OPT_HDR_LEN_MAX   113 #if ((defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \   114      (defined(__GNUC__) && defined(__GNUC_MINOR__) && \   115       (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))))   117                "data in struct rohc_list_item should be aligned on 8 bytes");
   119                "struct rohc_list_item length should be multiple of 8 bytes");
   125                                     const uint8_t ext_type,
   126                                     const uint8_t *
const ext_data,
   127                                     const size_t ext_len)
   128         __attribute__((warn_unused_result, 
nonnull(1, 3)));
   141         __attribute__((warn_unused_result, 
nonnull(1, 2), pure));
   145         __attribute__((warn_unused_result, 
nonnull(1, 2), pure));
   152                                      const uint8_t item_type,
   153                                      const uint8_t *
const item_data,
   154                                      const size_t item_len)
   155         __attribute__((warn_unused_result, 
nonnull(2, 4)));
 Definition: ip_numbers.h:62
 
Definition: ip_numbers.h:70
 
uint16_t length
Definition: rohc_list.h:107
 
uint8_t counter
Definition: rohc_list.h:96
 
bool known
Definition: rohc_list.h:94
 
void rohc_list_reset(struct rohc_list *const list)
Reset the state of the given compressed list. 
Definition: rohc_list.c:45
 
Definition: rohc_list.h:46
 
uint8_t counter
Definition: rohc_list.h:73
 
bool rohc_list_supersede(const struct rohc_list *const large, const struct rohc_list *const small)
Does the first list contains the second list? 
Definition: rohc_list.c:86
 
struct rohc_list_item * items[ROHC_LIST_ITEMS_MAX]
Definition: rohc_list.h:67
 
Definition: rohc_list.h:48
 
ext_header_version type
Definition: rohc_list.h:91
 
bool rohc_list_equal(const struct rohc_list *const list1, const struct rohc_list *const list2)
Are the two given lists equal? 
Definition: rohc_list.c:66
 
uint8_t data[ROHC_LIST_ITEM_DATA_MAX]
Definition: rohc_list.h:109
 
bool(* rohc_list_item_cmp)(const struct rohc_list_item *const item, const uint8_t ext_type, const uint8_t *const ext_data, const size_t ext_len)
Definition: rohc_list.h:124
 
int rohc_list_item_update_if_changed(rohc_list_item_cmp cmp_item, struct rohc_list_item *const list_item, const uint8_t item_type, const uint8_t *const item_data, const size_t item_len)
Update the content of the given compressed item if it changed. 
Definition: rohc_list.c:143
 
#define ROHC_LIST_ITEMS_MAX
Definition: rohc_list.h:65
 
Definition: ip_numbers.h:74
 
void rohc_list_item_reset(struct rohc_list_item *const list_item)
Reset the given list item. 
Definition: rohc_list.c:120
 
Definition: rohc_list.h:45
 
Definition: ip_numbers.h:52
 
#define ROHC_LIST_ITEM_DATA_MAX
The maximum length (in bytes) of item data. 
Definition: rohc_list.h:104
 
ext_header_version
Header version. 
Definition: rohc_list.h:43
 
A list item. 
Definition: rohc_list.h:88
 
Define a list for compression. 
Definition: rohc_list.h:62
 
Definition: rohc_list.h:47
 
uint16_t id
Definition: rohc_list.h:69
 
uint8_t items_nr
Definition: rohc_list.h:71
 
Defines the IPv4 protocol numbers.