asn_codecs_prim.h
Go to the documentation of this file.
1 /*-
2  * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
3  * Redistribution and modifications are permitted subject to BSD license.
4  */
5 #ifndef ASN_CODECS_PRIM_H
6 #define ASN_CODECS_PRIM_H
7 
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 typedef struct ASN__PRIMITIVE_TYPE_s {
15  uint8_t *buf; /* Buffer with consecutive primitive encoding bytes */
16  size_t size; /* Size of the buffer */
17 } ASN__PRIMITIVE_TYPE_t; /* Do not use this type directly! */
18 
20 
21 #if !defined(ASN_DISABLE_BER_SUPPORT)
22 ber_type_decoder_f ber_decode_primitive;
23 der_type_encoder_f der_encode_primitive;
24 #endif /* !defined(ASN_DISABLE_BER_SUPPORT) */
25 
26 #if !defined(ASN_DISABLE_XER_SUPPORT)
27 /*
28  * A callback specification for the xer_decode_primitive() function below.
29  */
31  XPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */
32  XPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */
33  XPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
34  XPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
35  XPBD_BODY_CONSUMED /* Body is recognized and consumed */
36 };
38  const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf,
39  size_t chunk_size);
40 
41 /*
42  * Specific function to decode simple primitive types.
43  * Also see xer_decode_general() in xer_decoder.h
44  */
46  const asn_codec_ctx_t *opt_codec_ctx,
47  const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
48  size_t struct_size, const char *opt_mname, const void *buf_ptr, size_t size,
49  xer_primitive_body_decoder_f *prim_body_decoder);
50 #endif /* !defined(ASN_DISABLE_XER_SUPPORT) */
51 
52 #if !defined(ASN_DISABLE_JER_SUPPORT)
53 /*
54  * A callback specification for the jer_decode_primitive() function below.
55  */
57  JPBD_SYSTEM_FAILURE, /* System failure (memory shortage, etc) */
58  JPBD_DECODER_LIMIT, /* Hit some decoder limitation or deficiency */
59  JPBD_BROKEN_ENCODING, /* Encoding of a primitive body is broken */
60  JPBD_NOT_BODY_IGNORE, /* Not a body format, but safe to ignore */
61  JPBD_BODY_CONSUMED /* Body is recognized and consumed */
62 };
64  const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf,
65  size_t chunk_size);
66 
67 /*
68  * Specific function to decode simple primitive types.
69  * Also see jer_decode_general() in jer_decoder.h
70  */
72  const asn_codec_ctx_t *opt_codec_ctx,
73  const asn_TYPE_descriptor_t *type_descriptor, void **struct_ptr,
74  size_t struct_size, const void *buf_ptr, size_t size,
75  jer_primitive_body_decoder_f *prim_body_decoder);
76 #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */
77 
78 #ifdef __cplusplus
79 }
80 #endif
81 
82 #endif /* ASN_CODECS_PRIM_H */
JPBD_BODY_CONSUMED
@ JPBD_BODY_CONSUMED
Definition: asn_codecs_prim.h:61
ASN__PRIMITIVE_TYPE_s
Definition: asn_codecs_prim.h:14
jer_pbd_rval
jer_pbd_rval
Definition: asn_codecs_prim.h:56
XPBD_NOT_BODY_IGNORE
@ XPBD_NOT_BODY_IGNORE
Definition: asn_codecs_prim.h:34
JPBD_SYSTEM_FAILURE
@ JPBD_SYSTEM_FAILURE
Definition: asn_codecs_prim.h:57
ASN__PRIMITIVE_TYPE_s::size
size_t size
Definition: asn_codecs_prim.h:16
JPBD_NOT_BODY_IGNORE
@ JPBD_NOT_BODY_IGNORE
Definition: asn_codecs_prim.h:60
ber_decode_primitive
ber_type_decoder_f ber_decode_primitive
Definition: asn_codecs_prim.h:22
xer_pbd_rval
xer_pbd_rval
Definition: asn_codecs_prim.h:30
XPBD_BROKEN_ENCODING
@ XPBD_BROKEN_ENCODING
Definition: asn_codecs_prim.h:33
asn_TYPE_descriptor_s
Definition: constr_TYPE.h:224
ASN__PRIMITIVE_TYPE_t
struct ASN__PRIMITIVE_TYPE_s ASN__PRIMITIVE_TYPE_t
ASN__PRIMITIVE_TYPE_s::buf
uint8_t * buf
Definition: asn_codecs_prim.h:15
XPBD_DECODER_LIMIT
@ XPBD_DECODER_LIMIT
Definition: asn_codecs_prim.h:32
jer_decode_primitive
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)
Definition: asn_codecs_prim_jer.c:118
jer_primitive_body_decoder_f
enum jer_pbd_rval() jer_primitive_body_decoder_f(const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, size_t chunk_size)
xer_decode_primitive
asn_dec_rval_t xer_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 char *opt_mname, const void *buf_ptr, size_t size, xer_primitive_body_decoder_f *prim_body_decoder)
xer_primitive_body_decoder_f
enum xer_pbd_rval() xer_primitive_body_decoder_f(const asn_TYPE_descriptor_t *td, void *struct_ptr, const void *chunk_buf, size_t chunk_size)
der_encode_primitive
der_type_encoder_f der_encode_primitive
Definition: asn_codecs_prim.h:23
JPBD_DECODER_LIMIT
@ JPBD_DECODER_LIMIT
Definition: asn_codecs_prim.h:58
XPBD_BODY_CONSUMED
@ XPBD_BODY_CONSUMED
Definition: asn_codecs_prim.h:35
JPBD_BROKEN_ENCODING
@ JPBD_BROKEN_ENCODING
Definition: asn_codecs_prim.h:59
asn_codec_ctx_s
Definition: asn_codecs.h:23
asn_dec_rval_s
Definition: asn_codecs.h:86
ASN__PRIMITIVE_TYPE_free
asn_struct_free_f ASN__PRIMITIVE_TYPE_free
Definition: asn_codecs_prim.h:19
asn_application.h
XPBD_SYSTEM_FAILURE
@ XPBD_SYSTEM_FAILURE
Definition: asn_codecs_prim.h:31
asn_struct_free_f
void() asn_struct_free_f(const struct asn_TYPE_descriptor_s *type_descriptor, void *struct_ptr, enum asn_struct_free_method)
Definition: constr_TYPE.h:95


etsi_its_vam_ts_coding
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:30:55