/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "X2AP-15-4-0.asn1"
 * 	`asn1c -D ./asn1_n1 -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
 */

#ifndef	_PDCP_SNlength18_H_
#define	_PDCP_SNlength18_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* PDCP-SNlength18 */
typedef long	 PDCP_SNlength18_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_PDCP_SNlength18_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_PDCP_SNlength18;
asn_struct_free_f PDCP_SNlength18_free;
asn_struct_print_f PDCP_SNlength18_print;
asn_constr_check_f PDCP_SNlength18_constraint;
ber_type_decoder_f PDCP_SNlength18_decode_ber;
der_type_encoder_f PDCP_SNlength18_encode_der;
xer_type_decoder_f PDCP_SNlength18_decode_xer;
xer_type_encoder_f PDCP_SNlength18_encode_xer;
oer_type_decoder_f PDCP_SNlength18_decode_oer;
oer_type_encoder_f PDCP_SNlength18_encode_oer;
per_type_decoder_f PDCP_SNlength18_decode_uper;
per_type_encoder_f PDCP_SNlength18_encode_uper;
per_type_decoder_f PDCP_SNlength18_decode_aper;
per_type_encoder_f PDCP_SNlength18_encode_aper;

#ifdef __cplusplus
}
#endif

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