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_COMP_SCHEMES_WLSB_H
00028 #define ROHC_COMP_SCHEMES_WLSB_H
00029
00030 #include "interval.h"
00031
00032 #include <stdlib.h>
00033 #include <stdint.h>
00034 #include <stdbool.h>
00035
00036
00037
00038 struct c_wlsb;
00039
00040
00041
00042
00043
00044
00045 struct c_wlsb * c_create_wlsb(const size_t bits,
00046 const size_t window_width,
00047 const rohc_lsb_shift_t p)
00048 __attribute__((warn_unused_result));
00049 void c_destroy_wlsb(struct c_wlsb *s);
00050
00051 void c_add_wlsb(struct c_wlsb *const wlsb,
00052 const uint32_t sn,
00053 const uint32_t value);
00054
00055 size_t wlsb_get_k_8bits(const struct c_wlsb *const wlsb,
00056 const uint8_t value)
00057 __attribute__((warn_unused_result, nonnull(1)));
00058 size_t wlsb_get_kp_8bits(const struct c_wlsb *const wlsb,
00059 const uint8_t value,
00060 const rohc_lsb_shift_t p)
00061 __attribute__((warn_unused_result, nonnull(1)));
00062
00063 size_t wlsb_get_k_16bits(const struct c_wlsb *const wlsb,
00064 const uint16_t value)
00065 __attribute__((warn_unused_result, nonnull(1)));
00066 size_t wlsb_get_mink_16bits(const struct c_wlsb *const wlsb,
00067 const uint16_t value,
00068 const size_t min_k)
00069 __attribute__((warn_unused_result, nonnull(1)));
00070 size_t wlsb_get_kp_16bits(const struct c_wlsb *const wlsb,
00071 const uint16_t value,
00072 const rohc_lsb_shift_t p)
00073 __attribute__((warn_unused_result, nonnull(1)));
00074 size_t wlsb_get_minkp_16bits(const struct c_wlsb *const wlsb,
00075 const uint16_t value,
00076 const size_t min_k,
00077 const rohc_lsb_shift_t p)
00078 __attribute__((warn_unused_result, nonnull(1)));
00079
00080 size_t wlsb_get_k_32bits(const struct c_wlsb *const wlsb,
00081 const uint32_t value)
00082 __attribute__((warn_unused_result, nonnull(1)));
00083 size_t wlsb_get_mink_32bits(const struct c_wlsb *const wlsb,
00084 const uint32_t value,
00085 const size_t min_k)
00086 __attribute__((warn_unused_result, nonnull(1)));
00087 size_t wlsb_get_kp_32bits(const struct c_wlsb *const wlsb,
00088 const uint32_t value,
00089 const rohc_lsb_shift_t p)
00090 __attribute__((warn_unused_result, nonnull(1)));
00091 size_t wlsb_get_minkp_32bits(const struct c_wlsb *const wlsb,
00092 const uint32_t value,
00093 const size_t min_k,
00094 const rohc_lsb_shift_t p)
00095 __attribute__((warn_unused_result, nonnull(1)));
00096
00097 size_t wlsb_ack(struct c_wlsb *const wlsb,
00098 const uint32_t sn_bits,
00099 const size_t sn_bits_nr)
00100 __attribute__((warn_unused_result, nonnull(1)));
00101
00102 #endif
00103