/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "E2SM-gNB-X2-IEs"
 * 	found in "Spec/e2_and_x2-combined-and-minimized.asn1"
 * 	`asn1c -pdu=auto -fincludes-quoted -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example`
 */

#include "CallProcess-ID.h"

/*
 * This type is implemented using NativeInteger,
 * so here we adjust the DEF accordingly.
 */
static const ber_tlv_tag_t asn_DEF_CallProcess_ID_tags_1[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
};
asn_TYPE_descriptor_t asn_DEF_CallProcess_ID = {
	"CallProcess-ID",
	"CallProcess-ID",
	&asn_OP_NativeInteger,
	asn_DEF_CallProcess_ID_tags_1,
	sizeof(asn_DEF_CallProcess_ID_tags_1)
		/sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */
	asn_DEF_CallProcess_ID_tags_1,	/* Same as above */
	sizeof(asn_DEF_CallProcess_ID_tags_1)
		/sizeof(asn_DEF_CallProcess_ID_tags_1[0]), /* 1 */
	{ 0, 0, NativeInteger_constraint },
	0, 0,	/* No members */
	0	/* No specifics */
};

