/*-
 * Copyright (c) 2003 Lev Walkin <vlm@lionet.info>. All rights reserved.
 * Redistribution and modifications are permitted subject to BSD license.
 */
#include <VideotexString.h>

/*
 * VideotexString basic type description.
 */
static ber_tlv_tag_t asn1_DEF_VideotexString_tags[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (21 << 2)),	/* [UNIVERSAL 21] IMPLICIT */
	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))	/* ... OCTET STRING */
};
asn1_TYPE_descriptor_t asn1_DEF_VideotexString = {
	"VideotexString",
	asn_generic_unknown_constraint,
	OCTET_STRING_decode_ber,    /* Implemented in terms of OCTET STRING */
	OCTET_STRING_encode_der,    /* Implemented in terms of OCTET STRING */
	OCTET_STRING_print,         /* non-ascii string */
	OCTET_STRING_free,
	0, /* Use generic outmost tag fetcher */
	asn1_DEF_VideotexString_tags,
	sizeof(asn1_DEF_VideotexString_tags)
	  / sizeof(asn1_DEF_VideotexString_tags[0]) - 1,
	asn1_DEF_VideotexString_tags,
	sizeof(asn1_DEF_VideotexString_tags)
	  / sizeof(asn1_DEF_VideotexString_tags[0]),
	-1,	/* Both ways are fine */
	0, 0,	/* No members */
	0	/* No specifics */
};

