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

#ifndef	_SlotPhysStatus_H_
#define	_SlotPhysStatus_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* SlotPhysStatus */
typedef struct SlotPhysStatus {
	BOOLEAN_t	 resetActive;
	BOOLEAN_t	*vccPresent	/* OPTIONAL */;
	BOOLEAN_t	*clkActive	/* OPTIONAL */;
	BOOLEAN_t	*cardPresent	/* OPTIONAL */;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SlotPhysStatus_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SlotPhysStatus;

#ifdef __cplusplus
}
#endif

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