Go to the documentation of this file.
18 void *p =
MALLOC(min_size + 1);
34 const void *chunk_buf,
size_t chunk_size) {
40 const char *lstart = (
const char *)chunk_buf;
41 const char *lstop = lstart + chunk_size;
49 } state = ST_LEADSPACE;
50 const char *dec_value_start = 0;
51 const char *dec_value_end = 0;
54 ASN_DEBUG(
"INTEGER body %ld 0x%2x..0x%2x",
55 (
long)chunk_size, *lstart, lstop[-1]);
64 for(lp = lstart; lp < lstop; lp++) {
67 case 0x09:
case 0x0a:
case 0x0d:
case 0x20:
70 case ST_DIGITS_TRAILSPACE:
75 state = ST_DIGITS_TRAILSPACE;
82 if(state == ST_LEADSPACE) {
85 state = ST_WAITDIGITS;
91 case ST_DIGITS:
continue;
105 case 0x31:
case 0x32:
case 0x33:
case 0x34:
106 case 0x35:
case 0x36:
case 0x37:
case 0x38:
case 0x39:
108 case ST_DIGITS:
continue;
111 dec_value_start = lp;
125 ASN_DEBUG(
"INTEGER :: Found non-numeric 0x%2x at %ld",
126 lv, (
long)(lp - lstart));
127 state = ST_UNEXPECTED;
134 dec_value_end = lstop;
136 case ST_DIGITS_TRAILSPACE:
140 if(specs && specs->
field_unsigned && (uintmax_t) dec_value <= ULONG_MAX) {
142 }
else if(dec_value >= LONG_MIN && dec_value <= LONG_MAX) {
149 ASN_DEBUG(
"INTEGER exceeds long range");
153 ASN_DEBUG(
"INTEGER decode %s hit range limit", td->
name);
166 ASN_DEBUG(
"INTEGER: No useful digits (state %d)", state);
175 ASN_DEBUG(
"INTEGER decode %s conversion failed", td->
name);
186 void **sptr,
const void *buf_ptr,
size_t size) {
asn_enc_rval_t INTEGER_encode_jer(const asn_TYPE_descriptor_t *td, const asn_jer_constraints_t *constraints, const void *sptr, int ilevel, enum jer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key)
enum asn_strtox_result_e asn_strtoimax_lim(const char *str, const char **end, intmax_t *l)
#define ASN__ENCODED_OK(rval)
asn_dec_rval_t INTEGER_decode_jer(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *td, const asn_jer_constraints_t *constraints, void **sptr, const void *buf_ptr, size_t size)
ssize_t INTEGER__dump(const asn_TYPE_descriptor_t *td, const INTEGER_t *st, asn_app_consume_bytes_f *cb, void *app_key, int plainOrXER)
const asn_INTEGER_enum_map_t * vemap
#define ASN__ENCODE_FAILED
int asn_imax2INTEGER(INTEGER_t *i, intmax_t l)
asn_dec_rval_t jer_decode_primitive(const asn_codec_ctx_t *opt_codec_ctx, const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, size_t struct_size, const void *buf_ptr, size_t size, jer_primitive_body_decoder_f *prim_body_decoder)
static enum jer_pbd_rval INTEGER__jer_body_decode(const asn_TYPE_descriptor_t *td, void *sptr, const void *chunk_buf, size_t chunk_size)
int() asn_app_consume_bytes_f(const void *buffer, size_t size, void *application_specific_key)
static int INTEGER_jer_st_prealloc(INTEGER_t *st, int min_size)
const unsigned int * evmap
etsi_its_denm_coding
Author(s): Jean-Pierre Busch
, Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:23:48