/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RANAP-IEs"
 * 	found in "../../asn1/ranap/RANAP-IEs.asn"
 */

#ifndef	_RANAP_SAPI_H_
#define	_RANAP_SAPI_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_SAPI {
	RANAP_SAPI_sapi_0	= 0,
	RANAP_SAPI_sapi_3	= 1
	/*
	 * Enumeration is extensible
	 */
} e_RANAP_SAPI;

/* RANAP_SAPI */
typedef long	 RANAP_SAPI_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_SAPI;
asn_struct_free_f RANAP_SAPI_free;
asn_struct_print_f RANAP_SAPI_print;
asn_constr_check_f RANAP_SAPI_constraint;
ber_type_decoder_f RANAP_SAPI_decode_ber;
der_type_encoder_f RANAP_SAPI_encode_der;
xer_type_decoder_f RANAP_SAPI_decode_xer;
xer_type_encoder_f RANAP_SAPI_encode_xer;
per_type_decoder_f RANAP_SAPI_decode_uper;
per_type_encoder_f RANAP_SAPI_encode_uper;
per_type_decoder_f RANAP_SAPI_decode_aper;
per_type_encoder_f RANAP_SAPI_encode_aper;

#ifdef __cplusplus
}
#endif

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