SIM-115: update simulator to use latest E2SM KPM version 3
[sim/e2-interface.git] / e2sim / asn1c / asn_codecs_prim.h
diff --git a/e2sim/asn1c/asn_codecs_prim.h b/e2sim/asn1c/asn_codecs_prim.h
new file mode 100644 (file)
index 0000000..5bbd9cf
--- /dev/null
@@ -0,0 +1,56 @@
+/*-
+ * Copyright (c) 2004-2017 Lev Walkin <vlm@lionet.info>. All rights reserved.
+ * Redistribution and modifications are permitted subject to BSD license.
+ */
+#ifndef        ASN_CODECS_PRIM_H
+#define        ASN_CODECS_PRIM_H
+
+#include <asn_application.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct ASN__PRIMITIVE_TYPE_s {
+    uint8_t *buf;  /* Buffer with consecutive primitive encoding bytes */
+    size_t size;   /* Size of the buffer */
+} ASN__PRIMITIVE_TYPE_t;  /* Do not use this type directly! */
+
+asn_struct_free_f ASN__PRIMITIVE_TYPE_free;
+
+#if !defined(ASN_DISABLE_BER_SUPPORT)
+ber_type_decoder_f ber_decode_primitive;
+der_type_encoder_f der_encode_primitive;
+#endif  /* !defined(ASN_DISABLE_BER_SUPPORT) */
+
+#if !defined(ASN_DISABLE_XER_SUPPORT)
+/*
+ * A callback specification for the xer_decode_primitive() function below.
+ */
+enum xer_pbd_rval {
+    XPBD_SYSTEM_FAILURE,   /* System failure (memory shortage, etc) */
+    XPBD_DECODER_LIMIT,    /* Hit some decoder limitation or deficiency */
+    XPBD_BROKEN_ENCODING,  /* Encoding of a primitive body is broken */
+    XPBD_NOT_BODY_IGNORE,  /* Not a body format, but safe to ignore */
+    XPBD_BODY_CONSUMED     /* Body is recognized and consumed */
+};
+typedef 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);
+
+/*
+ * Specific function to decode simple primitive types.
+ * Also see xer_decode_general() in xer_decoder.h
+ */
+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);
+#endif  /* !defined(ASN_DISABLE_XER_SUPPORT) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ASN_CODECS_PRIM_H */