43 void **bool_value,
const void *buf_ptr,
size_t size,
59 ASN_DEBUG(
"Decoding %s as BOOLEAN (tm=%d)",
66 tag_mode, 0, &length, 0);
70 ASN_DEBUG(
"Boolean length is %d bytes", (
int)length);
72 buf_ptr = ((
const char *)buf_ptr) + rval.
consumed;
83 for(*st = 0, lidx = 0;
84 (lidx < length) && *st == 0; lidx++) {
90 *st |= ((
const uint8_t *)buf_ptr)[lidx];
96 ASN_DEBUG(
"Took %ld/%ld bytes to encode %s, value=%d",
120 bool_value = *st ? 0xff : 0;
122 if(cb(&bool_value, 1, app_key) < 0) {
142 const char *p = (
const char *)chunk_buf;
146 if(chunk_size && p[0] == 0x3c ) {
172 const void *buf_ptr,
size_t size) {
175 sptr,
sizeof(
BOOLEAN_t), opt_mname, buf_ptr, size,
227 return (cb(buf, buflen, app_key) < 0) ? -1 : 0;
232 if(td && ptr && !contents_only) {
255 case 1: *st = 1;
break;
256 case 0: *st = 0;
break;
260 ASN_DEBUG(
"%s decoded as %s", td->
name, *st ?
"TRUE" :
"FALSE");
static enum xer_pbd_rval BOOLEAN__xer_body_decode(asn_TYPE_descriptor_t *td, void *sptr, const void *chunk_buf, size_t chunk_size)
ssize_t der_write_tags(struct asn_TYPE_descriptor_s *type_descriptor, size_t struct_length, int tag_mode, int last_tag_form, ber_tlv_tag_t tag, asn_app_consume_bytes_f *consume_bytes_cb, void *app_key)
int BOOLEAN_print(asn_TYPE_descriptor_t *td, const void *sptr, int ilevel, asn_app_consume_bytes_f *cb, void *app_key)
struct asn_TYPE_descriptor_s * failed_type
asn_enc_rval_t BOOLEAN_encode_xer(asn_TYPE_descriptor_t *td, void *sptr, int ilevel, enum xer_encoder_flags_e flags, asn_app_consume_bytes_f *cb, void *app_key)
asn_dec_rval_t xer_decode_primitive(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr, size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size, xer_primitive_body_decoder_f *prim_body_decoder)
asn_dec_rval_t BOOLEAN_decode_ber(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, void **bool_value, const void *buf_ptr, size_t size, int tag_mode)
#define _ASN_DECODE_STARVED
asn_dec_rval_t BOOLEAN_decode_uper(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, asn_per_constraints_t *constraints, void **sptr, asn_per_data_t *pd)
int per_put_few_bits(asn_per_outp_t *per_data, uint32_t bits, int obits)
static ber_tlv_tag_t asn_DEF_BOOLEAN_tags[]
asn_constr_check_f asn_generic_no_constraint
#define CALLOC(nmemb, size)
asn_TYPE_descriptor_t asn_DEF_BOOLEAN
#define _ASN_CALLBACK(buf, size)
#define _ASN_ENCODED_OK(rval)
asn_dec_rval_t ber_check_tags(struct asn_codec_ctx_s *opt_codec_ctx, struct asn_TYPE_descriptor_s *type_descriptor, asn_struct_ctx_t *opt_ctx, const void *ptr, size_t size, int tag_mode, int last_tag_form, ber_tlv_len_t *last_length, int *opt_tlv_form)
#define _ASN_ENCODE_FAILED
asn_enc_rval_t BOOLEAN_encode_der(asn_TYPE_descriptor_t *td, void *sptr, int tag_mode, ber_tlv_tag_t tag, asn_app_consume_bytes_f *cb, void *app_key)
void BOOLEAN_free(asn_TYPE_descriptor_t *td, void *ptr, int contents_only)
int() asn_app_consume_bytes_f(const void *buffer, size_t size, void *application_specific_key)
int32_t per_get_few_bits(asn_per_data_t *per_data, int get_nbits)
enum asn_dec_rval_code_e code
static void ASN_DEBUG(const char *fmt,...)
asn_dec_rval_t BOOLEAN_decode_xer(asn_codec_ctx_t *opt_codec_ctx, asn_TYPE_descriptor_t *td, void **sptr, const char *opt_mname, const void *buf_ptr, size_t size)
asn_enc_rval_t BOOLEAN_encode_uper(asn_TYPE_descriptor_t *td, asn_per_constraints_t *constraints, void *sptr, asn_per_outp_t *po)
#define _ASN_DECODE_FAILED