/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "E2AP-IEs"
 * 	found in "e2ap-oran-wg3-v01.00.asn"
 * 	`asn1c -fno-include-deps -fcompound-names -findirect-choice -gen-PER -no-gen-OER`
 */

#ifndef	_RANfunctionRevision_H_
#define	_RANfunctionRevision_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeInteger.h>

#ifdef __cplusplus
extern "C" {
#endif

/* RANfunctionRevision */
typedef long	 RANfunctionRevision_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_RANfunctionRevision_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionRevision;
asn_struct_free_f RANfunctionRevision_free;
asn_struct_print_f RANfunctionRevision_print;
asn_constr_check_f RANfunctionRevision_constraint;
ber_type_decoder_f RANfunctionRevision_decode_ber;
der_type_encoder_f RANfunctionRevision_encode_der;
xer_type_decoder_f RANfunctionRevision_decode_xer;
xer_type_encoder_f RANfunctionRevision_encode_xer;
per_type_decoder_f RANfunctionRevision_decode_uper;
per_type_encoder_f RANfunctionRevision_encode_uper;
per_type_decoder_f RANfunctionRevision_decode_aper;
per_type_encoder_f RANfunctionRevision_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _RANfunctionRevision_H_ */
#include <asn_internal.h>
