DESCNAME
#define DEFFNTYPE(DESCNAME, CTYPENAME, ENCFN) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
#define DEFFNXTYPE(DESCNAME, CTYPENAME, ENCFN) \
aux_encfn_##DESCNAME(asn1buf *buf, const void *val, \
(const aux_typedefname_##DESCNAME *)val, \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
atype_fn, sizeof(CTYPENAME), aux_encfn_##DESCNAME, \
#define DEFFNLENTYPE(DESCNAME, CTYPENAME, ENCFN) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
#define DEFFNLENTYPE(DESCNAME, CTYPENAME, ENCFN) \
static const void *loadptr_for_##DESCNAME(const void *pv) \
const aux_typedefname_##DESCNAME *p = pv; \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
loadptr_for_##DESCNAME \
#define DEFSEQTYPE(DESCNAME, CTYPENAME, FIELDS, OPT) \
static const struct seq_info aux_seqinfo_##DESCNAME = { \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
&aux_seqinfo_##DESCNAME, \
#define DEFINTTYPE(DESCNAME, CTYPENAME) \
static asn1_intmax loadint_##DESCNAME(const void *p) \
return *(const aux_typedefname_##DESCNAME *)p; \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
loadint_##DESCNAME, 0, \
#define DEFUINTTYPE(DESCNAME, CTYPENAME) \
static asn1_uintmax loaduint_##DESCNAME(const void *p) \
return *(const aux_typedefname_##DESCNAME *)p; \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
0, loaduint_##DESCNAME, \
#define DEFPTRTYPE(DESCNAME,BASEDESCNAME) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
atype_ptr, sizeof(aux_typedefname_##DESCNAME), 0, 0, 0, \
#define DEFPTRTYPE(DESCNAME,BASEDESCNAME) \
loadptr_for_##BASEDESCNAME##_from_##DESCNAME(const void *p) \
const aux_typedefname_##DESCNAME *inptr = p; \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
atype_ptr, sizeof(aux_typedefname_##DESCNAME), 0, 0, \
loadptr_for_##BASEDESCNAME##_from_##DESCNAME, \
#define DEFNULLTERMSEQOFTYPE(DESCNAME,BASEDESCNAME) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
atype_nullterm_sequence_of, sizeof(aux_typedefname_##DESCNAME), \
#define DEFNONEMPTYNULLTERMSEQOFTYPE(DESCNAME,BASEDESCNAME) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
sizeof(aux_typedefname_##DESCNAME), \
#define DEFFIELDTYPE(DESCNAME, CTYPENAME, FIELDINFO) \
static const struct field_info aux_fieldinfo_##DESCNAME = FIELDINFO; \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
&aux_fieldinfo_##DESCNAME \
#define DEFAPPTAGGEDTYPE(DESCNAME, TAG, BASEDESC) \
const struct atype_info krb5int_asn1type_##DESCNAME = { \
atype_tagged_thing, sizeof(aux_typedefname_##DESCNAME), \
#define IMPORT_TYPE(DESCNAME, CTYPENAME) \
extern const struct atype_info krb5int_asn1type_##DESCNAME