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

#ifndef	_TpduFlags_H_
#define	_TpduFlags_H_


#include <asn_application.h>

/* Including external dependencies */
#include <BOOLEAN.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* TpduFlags */
typedef struct TpduFlags {
	BOOLEAN_t	 tpduHeaderPresent;
	BOOLEAN_t	 finalPart;
	BOOLEAN_t	 procByteContinueTx;
	BOOLEAN_t	 procByteContinueRx;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} TpduFlags_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_TpduFlags;

#ifdef __cplusplus
}
#endif

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