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

#ifndef	_SABP_Recovery_Indication_H_
#define	_SABP_Recovery_Indication_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum SABP_Recovery_Indication {
	SABP_Recovery_Indication_data_lost	= 0,
	SABP_Recovery_Indication_data_available	= 1
} e_SABP_Recovery_Indication;

/* SABP_Recovery-Indication */
typedef long	 SABP_Recovery_Indication_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SABP_Recovery_Indication;
asn_struct_free_f SABP_Recovery_Indication_free;
asn_struct_print_f SABP_Recovery_Indication_print;
asn_constr_check_f SABP_Recovery_Indication_constraint;
ber_type_decoder_f SABP_Recovery_Indication_decode_ber;
der_type_encoder_f SABP_Recovery_Indication_encode_der;
xer_type_decoder_f SABP_Recovery_Indication_decode_xer;
xer_type_encoder_f SABP_Recovery_Indication_encode_xer;
per_type_decoder_f SABP_Recovery_Indication_decode_uper;
per_type_encoder_f SABP_Recovery_Indication_encode_uper;
per_type_decoder_f SABP_Recovery_Indication_decode_aper;
per_type_encoder_f SABP_Recovery_Indication_encode_aper;

#ifdef __cplusplus
}
#endif

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