/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "Spec/e2ap-v031ex.asn"
 * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
 */

#ifndef	_UL_Total_PRB_usage_H_
#define	_UL_Total_PRB_usage_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* UL-Total-PRB-usage */
typedef long	 UL_Total_PRB_usage_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_UL_Total_PRB_usage_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_UL_Total_PRB_usage;
asn_struct_free_f UL_Total_PRB_usage_free;
asn_struct_print_f UL_Total_PRB_usage_print;
asn_constr_check_f UL_Total_PRB_usage_constraint;
ber_type_decoder_f UL_Total_PRB_usage_decode_ber;
der_type_encoder_f UL_Total_PRB_usage_encode_der;
xer_type_decoder_f UL_Total_PRB_usage_decode_xer;
xer_type_encoder_f UL_Total_PRB_usage_encode_xer;
oer_type_decoder_f UL_Total_PRB_usage_decode_oer;
oer_type_encoder_f UL_Total_PRB_usage_encode_oer;
per_type_decoder_f UL_Total_PRB_usage_decode_uper;
per_type_encoder_f UL_Total_PRB_usage_encode_uper;
per_type_decoder_f UL_Total_PRB_usage_decode_aper;
per_type_encoder_f UL_Total_PRB_usage_encode_aper;

#ifdef __cplusplus
}
#endif

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