/*
 * 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_Old_Serial_Number_H_
#define	_SABP_Old_Serial_Number_H_


#include <asn_application.h>

/* Including external dependencies */
#include <osmocom/sabp/SABP_Serial-Number.h>
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* SABP_Old-Serial-Number */
typedef SABP_Serial_Number_t	 SABP_Old_Serial_Number_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SABP_Old_Serial_Number;
asn_struct_free_f SABP_Old_Serial_Number_free;
asn_struct_print_f SABP_Old_Serial_Number_print;
asn_constr_check_f SABP_Old_Serial_Number_constraint;
ber_type_decoder_f SABP_Old_Serial_Number_decode_ber;
der_type_encoder_f SABP_Old_Serial_Number_encode_der;
xer_type_decoder_f SABP_Old_Serial_Number_decode_xer;
xer_type_encoder_f SABP_Old_Serial_Number_encode_xer;
per_type_decoder_f SABP_Old_Serial_Number_decode_uper;
per_type_encoder_f SABP_Old_Serial_Number_encode_uper;
per_type_decoder_f SABP_Old_Serial_Number_decode_aper;
per_type_encoder_f SABP_Old_Serial_Number_encode_aper;

#ifdef __cplusplus
}
#endif

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