BOOLEAN.c
Go to the documentation of this file.
1 /*-
2  * Copyright (c) 2003, 2005 Lev Walkin <vlm@lionet.info>. All rights reserved.
3  * Redistribution and modifications are permitted subject to BSD license.
4  */
7 
8 /*
9  * BOOLEAN basic type description.
10  */
12  (ASN_TAG_CLASS_UNIVERSAL | (1 << 2))
13 };
16 #if !defined(ASN_DISABLE_PRINT_SUPPORT)
18 #else
19  0,
20 #endif /* !defined(ASN_DISABLE_PRINT_SUPPORT) */
23 #if !defined(ASN_DISABLE_BER_SUPPORT)
26 #else
27  0,
28  0,
29 #endif /* !defined(ASN_DISABLE_BER_SUPPORT) */
30 #if !defined(ASN_DISABLE_XER_SUPPORT)
33 #else
34  0,
35  0,
36 #endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
37 #if !defined(ASN_DISABLE_JER_SUPPORT)
40 #else
41  0,
42  0,
43 #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
44 #if !defined(ASN_DISABLE_OER_SUPPORT)
47 #else
48  0,
49  0,
50 #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
51 #if !defined(ASN_DISABLE_UPER_SUPPORT)
52  BOOLEAN_decode_uper, /* Unaligned PER decoder */
53  BOOLEAN_encode_uper, /* Unaligned PER encoder */
54 #else
55  0,
56  0,
57 #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) */
58 #if !defined(ASN_DISABLE_APER_SUPPORT)
59  BOOLEAN_decode_aper, /* Aligned PER decoder */
60  BOOLEAN_encode_aper, /* Aligned PER encoder */
61 #else
62  0,
63  0,
64 #endif /* !defined(ASN_DISABLE_APER_SUPPORT) */
65 #if !defined(ASN_DISABLE_RFILL_SUPPORT)
67 #else
68  0,
69 #endif /* !defined(ASN_DISABLE_RFILL_SUPPORT) */
70  0 /* Use generic outmost tag fetcher */
71 };
73  "BOOLEAN",
74  "BOOLEAN",
77  sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
78  asn_DEF_BOOLEAN_tags, /* Same as above */
79  sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]),
80  {
81 #if !defined(ASN_DISABLE_OER_SUPPORT)
82  0,
83 #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */
84 #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
85  0,
86 #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
87 #if !defined(ASN_DISABLE_JER_SUPPORT)
88  0,
89 #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
91  },
92  0, 0, /* No members */
93  0 /* No specifics */
94 };
95 
96 void
97 BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr,
98  enum asn_struct_free_method method) {
99  if(td && ptr) {
100  switch(method) {
102  FREEMEM(ptr);
103  break;
105  break;
107  memset(ptr, 0, sizeof(BOOLEAN_t));
108  break;
109  }
110  }
111 }
112 
113 int
114 BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr,
115  const void *bptr) {
116  const BOOLEAN_t *a = aptr;
117  const BOOLEAN_t *b = bptr;
118 
119  (void)td;
120 
121  if(a && b) {
122  if(!*a == !*b) { /* TRUE can be encoded by any non-zero byte. */
123  return 0;
124  } else if(!*a) {
125  return -1;
126  } else {
127  return 1;
128  }
129  } else if(!a) {
130  return -1;
131  } else {
132  return 1;
133  }
134 }
135 
136 int
137 BOOLEAN_copy(const asn_TYPE_descriptor_t *td, void **aptr,
138  const void *bptr) {
139  BOOLEAN_t *a = *aptr;
140  const BOOLEAN_t *b = bptr;
141 
142  (void)td;
143 
144  if(!b) {
145  if(a) {
146  FREEMEM(a);
147  *aptr = 0;
148  }
149  return 0;
150  }
151 
152  if(!a) {
153  a = *aptr = MALLOC(sizeof(BOOLEAN_t));
154  if(!a) return -1;
155  }
156 
157  *a = *b;
158 
159  return 0;
160 }
asn_TYPE_operation_s
Definition: constr_TYPE.h:184
BOOLEAN_encode_aper
per_type_encoder_f BOOLEAN_encode_aper
Definition: BOOLEAN.h:61
ASFM_FREE_UNDERLYING
@ ASFM_FREE_UNDERLYING
Definition: constr_TYPE.h:92
BOOLEAN_encode_oer
oer_type_encoder_f BOOLEAN_encode_oer
Definition: BOOLEAN.h:52
BOOLEAN.h
ber_tlv_tag_t
unsigned ber_tlv_tag_t
Definition: ber_tlv_tag.h:18
ASN_TAG_CLASS_UNIVERSAL
@ ASN_TAG_CLASS_UNIVERSAL
Definition: ber_tlv_tag.h:13
BOOLEAN_print
asn_struct_print_f BOOLEAN_print
Definition: BOOLEAN.h:27
asn_DEF_BOOLEAN_tags
static const ber_tlv_tag_t asn_DEF_BOOLEAN_tags[]
Definition: BOOLEAN.c:11
BOOLEAN_encode_der
der_type_encoder_f BOOLEAN_encode_der
Definition: BOOLEAN.h:37
BOOLEAN_decode_aper
per_type_decoder_f BOOLEAN_decode_aper
Definition: BOOLEAN.h:60
ASFM_FREE_UNDERLYING_AND_RESET
@ ASFM_FREE_UNDERLYING_AND_RESET
Definition: constr_TYPE.h:93
ASFM_FREE_EVERYTHING
@ ASFM_FREE_EVERYTHING
Definition: constr_TYPE.h:91
FREEMEM
#define FREEMEM(ptr)
Definition: asn_internal.h:40
BOOLEAN_decode_uper
per_type_decoder_f BOOLEAN_decode_uper
Definition: BOOLEAN.h:56
asn_TYPE_descriptor_s
Definition: constr_TYPE.h:224
BOOLEAN_decode_xer
xer_type_decoder_f BOOLEAN_decode_xer
Definition: BOOLEAN.h:41
asn_generic_no_constraint
asn_constr_check_f asn_generic_no_constraint
Definition: constraints.h:51
asn_struct_free_method
asn_struct_free_method
Definition: constr_TYPE.h:90
asn_OP_BOOLEAN
asn_TYPE_operation_t asn_OP_BOOLEAN
Definition: BOOLEAN.c:14
MALLOC
#define MALLOC(size)
Definition: asn_internal.h:38
asn_internal.h
BOOLEAN_decode_jer
jer_type_decoder_f BOOLEAN_decode_jer
Definition: BOOLEAN.h:46
BOOLEAN_encode_xer
xer_type_encoder_f BOOLEAN_encode_xer
Definition: BOOLEAN.h:42
BOOLEAN_encode_jer
jer_type_encoder_f BOOLEAN_encode_jer
Definition: BOOLEAN.h:47
BOOLEAN_encode_uper
per_type_encoder_f BOOLEAN_encode_uper
Definition: BOOLEAN.h:57
BOOLEAN_t
unsigned BOOLEAN_t
Definition: BOOLEAN.h:19
BOOLEAN_copy
int BOOLEAN_copy(const asn_TYPE_descriptor_t *td, void **aptr, const void *bptr)
Definition: BOOLEAN.c:137
asn_DEF_BOOLEAN
asn_TYPE_descriptor_t asn_DEF_BOOLEAN
Definition: BOOLEAN.c:72
BOOLEAN_decode_ber
ber_type_decoder_f BOOLEAN_decode_ber
Definition: BOOLEAN.h:36
BOOLEAN_random_fill
asn_random_fill_f BOOLEAN_random_fill
Definition: BOOLEAN.h:65
BOOLEAN_decode_oer
oer_type_decoder_f BOOLEAN_decode_oer
Definition: BOOLEAN.h:51
BOOLEAN_compare
int BOOLEAN_compare(const asn_TYPE_descriptor_t *td, const void *aptr, const void *bptr)
Definition: BOOLEAN.c:114
BOOLEAN_free
void BOOLEAN_free(const asn_TYPE_descriptor_t *td, void *ptr, enum asn_struct_free_method method)
Definition: BOOLEAN.c:97


etsi_its_denm_coding
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:23:47