00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ROHC_DECOMP_SCHEMES_RFC4996_H
00028 #define ROHC_DECOMP_SCHEMES_RFC4996_H
00029
00030 #include "interval.h"
00031 #include "decomp_wlsb.h"
00032
00033 #include <stdint.h>
00034
00035 struct rohc_decomp_ctxt;
00036
00037
00038 int d_static_or_irreg8(const uint8_t *const rohc_data,
00039 const size_t rohc_len,
00040 const int indicator,
00041 struct rohc_lsb_field8 *const lsb)
00042 __attribute__((warn_unused_result, nonnull(1, 4)));
00043
00044 int d_static_or_irreg16(const uint8_t *const rohc_data,
00045 const size_t rohc_len,
00046 const int indicator,
00047 struct rohc_lsb_field16 *const lsb)
00048 __attribute__((warn_unused_result, nonnull(1, 4)));
00049
00050 int variable_length_32_dec(const uint8_t *const rohc_data,
00051 const size_t rohc_len,
00052 const int indicator,
00053 struct rohc_lsb_field32 *const lsb)
00054 __attribute__((warn_unused_result, nonnull(1, 4)));
00055
00056
00057 unsigned int rsf_index_dec(const unsigned int rsf_index)
00058 __attribute__((warn_unused_result, const));
00059
00060
00061 bool d_ip_id_lsb(const struct rohc_decomp_ctxt *const context,
00062 const struct rohc_lsb_decode *const ip_id_lsb_ctxt,
00063 const uint16_t msn,
00064 const uint32_t ip_id_bits,
00065 const size_t ip_id_bits_nr,
00066 const rohc_lsb_shift_t p,
00067 uint16_t *const ip_id)
00068 __attribute__((warn_unused_result, nonnull(1, 2, 7)));
00069
00070
00071 int d_optional_ip_id_lsb(const struct rohc_decomp_ctxt *const context,
00072 const uint8_t *const rohc_data,
00073 const size_t data_len,
00074 const int behavior,
00075 const int indicator,
00076 struct rohc_lsb_field16 *const lsb)
00077 __attribute__((warn_unused_result, nonnull(1, 2, 6)));
00078
00079 #endif
00080