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

#ifndef	_PortNumber_H_
#define	_PortNumber_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* PortNumber */
typedef long	 PortNumber_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_PortNumber;
asn_struct_free_f PortNumber_free;
asn_struct_print_f PortNumber_print;
asn_constr_check_f PortNumber_constraint;
ber_type_decoder_f PortNumber_decode_ber;
der_type_encoder_f PortNumber_encode_der;
xer_type_decoder_f PortNumber_decode_xer;
xer_type_encoder_f PortNumber_encode_xer;

#ifdef __cplusplus
}
#endif

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