14 rval =
uper_decode(opt_codec_ctx, td, sptr, buffer, size, 0, 0);
24 if(((
const uint8_t *)buffer)[0] == 0) {
27 ASN_DEBUG(
"Expecting single zeroed byte");
45 if(skip_bits < 0 || skip_bits > 7
46 || unused_bits < 0 || unused_bits > 7
47 || (unused_bits > 0 && !size))
56 s_codec_ctx = *opt_codec_ctx;
57 opt_codec_ctx = &s_codec_ctx;
61 memset(&s_codec_ctx, 0,
sizeof(s_codec_ctx));
63 opt_codec_ctx = &s_codec_ctx;
67 memset(&pd, 0,
sizeof(pd));
68 pd.
buffer = (
const uint8_t *)buffer;
70 pd.
nbits = 8 * size - unused_bits;
79 rval = td->
uper_decoder(opt_codec_ctx, td, 0, sptr, &pd);
83 + pd.
nboff - skip_bits;
84 ASN_DEBUG(
"PER decoding consumed %ld, counted %ld",
#define _ASN_DEFAULT_STACK_MAX
asn_dec_rval_t uper_decode_complete(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, size_t size)
asn_dec_rval_t uper_decode(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, void **sptr, const void *buffer, size_t size, int skip_bits, int unused_bits)
enum asn_dec_rval_code_e code
static void ASN_DEBUG(const char *fmt,...)
per_type_decoder_f * uper_decoder
#define _ASN_DECODE_FAILED