#ifndef DAV1D_SRC_MSAC_H
#define DAV1D_SRC_MSAC_H
#include <stdint.h>
#include <stdlib.h>
#include "common/intops.h"
ec_win;
MsacContext;
#if HAVE_ASM
#if ARCH_AARCH64 || ARCH_ARM
#include "src/arm/msac.h"
#elif ARCH_LOONGARCH64
#include "src/loongarch/msac.h"
#elif ARCH_X86
#include "src/x86/msac.h"
#endif
#endif
void dav1d_msac_init(MsacContext *s, const uint8_t *data, size_t sz,
int disable_cdf_update_flag);
unsigned dav1d_msac_decode_symbol_adapt_c(MsacContext *s, uint16_t *cdf,
size_t n_symbols);
unsigned dav1d_msac_decode_bool_adapt_c(MsacContext *s, uint16_t *cdf);
unsigned dav1d_msac_decode_bool_equi_c(MsacContext *s);
unsigned dav1d_msac_decode_bool_c(MsacContext *s, unsigned f);
unsigned dav1d_msac_decode_hi_tok_c(MsacContext *s, uint16_t *cdf);
int dav1d_msac_decode_subexp(MsacContext *s, int ref, int n, unsigned k);
#ifndef dav1d_msac_decode_symbol_adapt4
#define dav1d_msac_decode_symbol_adapt4 …
#endif
#ifndef dav1d_msac_decode_symbol_adapt8
#define dav1d_msac_decode_symbol_adapt8 …
#endif
#ifndef dav1d_msac_decode_symbol_adapt16
#define dav1d_msac_decode_symbol_adapt16 …
#endif
#ifndef dav1d_msac_decode_bool_adapt
#define dav1d_msac_decode_bool_adapt …
#endif
#ifndef dav1d_msac_decode_bool_equi
#define dav1d_msac_decode_bool_equi …
#endif
#ifndef dav1d_msac_decode_bool
#define dav1d_msac_decode_bool …
#endif
#ifndef dav1d_msac_decode_hi_tok
#define dav1d_msac_decode_hi_tok …
#endif
static inline unsigned dav1d_msac_decode_bools(MsacContext *const s, unsigned n) { … }
static inline int dav1d_msac_decode_uniform(MsacContext *const s, const unsigned n) { … }
#endif