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

#ifndef	_SlotNumber_H_
#define	_SlotNumber_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* SlotNumber */
typedef long	 SlotNumber_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SlotNumber;
asn_struct_free_f SlotNumber_free;
asn_struct_print_f SlotNumber_print;
asn_constr_check_f SlotNumber_constraint;
ber_type_decoder_f SlotNumber_decode_ber;
der_type_encoder_f SlotNumber_encode_der;
xer_type_decoder_f SlotNumber_decode_xer;
xer_type_encoder_f SlotNumber_encode_xer;

#ifdef __cplusplus
}
#endif

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