/*
 * 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_RequestedLocationRelatedDataType_H_
#define	_RANAP_RequestedLocationRelatedDataType_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_RequestedLocationRelatedDataType {
	RANAP_RequestedLocationRelatedDataType_decipheringKeysUEBasedOTDOA	= 0,
	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGPS	= 1,
	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataUEBasedOTDOA	= 2,
	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGPS	= 3,
	/*
	 * Enumeration is extensible
	 */
	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGANSS	= 4,
	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGANSS	= 5,
	RANAP_RequestedLocationRelatedDataType_decipheringKeysAssistedGPSandGANSS	= 6,
	RANAP_RequestedLocationRelatedDataType_dedicatedAssistanceDataAssistedGPSandGANSS	= 7
} e_RANAP_RequestedLocationRelatedDataType;

/* RANAP_RequestedLocationRelatedDataType */
typedef long	 RANAP_RequestedLocationRelatedDataType_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_RequestedLocationRelatedDataType;
asn_struct_free_f RANAP_RequestedLocationRelatedDataType_free;
asn_struct_print_f RANAP_RequestedLocationRelatedDataType_print;
asn_constr_check_f RANAP_RequestedLocationRelatedDataType_constraint;
ber_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_ber;
der_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_der;
xer_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_xer;
xer_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_xer;
per_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_uper;
per_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_uper;
per_type_decoder_f RANAP_RequestedLocationRelatedDataType_decode_aper;
per_type_encoder_f RANAP_RequestedLocationRelatedDataType_encode_aper;

#ifdef __cplusplus
}
#endif

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