Lines Matching +defs:t +defs:i

43 ttype_symbol(const char *basename, const Type *t)
45 return t->symbol->gen_name;
49 integer_symbol(const char *basename, const Type *t)
51 if (t->members)
53 else if (t->range == NULL)
55 else if (t->range->min < INT_MIN && t->range->max <= INT64_MAX)
57 else if (t->range->min >= 0 && t->range->max > UINT_MAX)
59 else if (t->range->min >= INT_MIN && t->range->max <= INT_MAX)
61 else if (t->range->min >= 0 && t->range->max <= UINT_MAX)
70 boolean_symbol(const char *basename, const Type *t)
77 octetstring_symbol(const char *basename, const Type *t)
83 sequence_symbol(const char *basename, const Type *t)
89 time_symbol(const char *basename, const Type *t)
95 tag_symbol(const char *basename, const Type *t)
97 return symbol_name(basename, t->subtype);
101 generalstring_symbol(const char *basename, const Type *t)
107 printablestring_symbol(const char *basename, const Type *t)
113 ia5string_symbol(const char *basename, const Type *t)
119 visiblestring_symbol(const char *basename, const Type *t)
125 utf8string_symbol(const char *basename, const Type *t)
131 bmpstring_symbol(const char *basename, const Type *t)
137 universalstring_symbol(const char *basename, const Type *t)
143 oid_symbol(const char *basename, const Type *t)
149 bitstring_symbol(const char *basename, const Type *t)
151 if (t->members)
196 is_supported_type_p(const Type *t)
198 size_t i;
200 for (i = 0; i < sizeof(types)/sizeof(types[0]); i++)
201 if (t->type == types[i].type)
213 symbol_name(const char *basename, const Type *t)
215 size_t i;
217 for (i = 0; i < sizeof(types)/sizeof(types[0]); i++)
218 if (t->type == types[i].type)
219 return (types[i].symbol_name)(basename, t);
220 printf("unknown der type: %d\n", t->type);
277 tlist_header(struct tlist *t, const char *fmt, ...)
281 if (vasprintf(&t->header, fmt, ap) < 0 || t->header == NULL)
308 unsigned int i = 1;
315 fprintf(f, "/* %lu */ %s%s\n", (unsigned long)i++, q->line, last ? "" : ",");
343 struct template *t, *q;
349 ASN1_TAILQ_FOREACH(t, &tl->template, members) {
352 if (t->ptr == NULL || q->ptr == NULL) {
353 ret = strcmp(t->line, q->line);
356 ret = strcmp(t->tt, q->tt);
359 ret = strcmp(t->offset, q->offset);
362 if ((ret = strcmp(t->ptr, q->ptr)) != 0 ||
363 (ret = tlist_cmp_name(t->ptr, q->ptr)) != 0)
393 add_line(struct templatehead *t, const char *fmt, ...)
401 ASN1_TAILQ_INSERT_TAIL(t, q, members);
406 add_line_pointer(struct templatehead *t,
421 q = add_line(t, "{ %s, %s, asn1_%s }", tt, offset, ptr);
436 is_struct(Type *t, int isstruct)
438 size_t i;
440 if (t->type == TType)
442 if (t->type == TSequence || t->type == TSet || t->type == TChoice)
444 if (t->type == TTag)
445 return is_struct(t->subtype, isstruct);
447 for (i = 0; i < sizeof(types)/sizeof(types[0]); i++) {
448 if (t->type == types[i].type) {
449 if (types[i].is_struct == 0)
460 compact_tag(const Type *t)
462 while (t->type == TTag)
463 t = t->subtype;
464 return t;
468 template_members(struct templatehead *temp, const char *basetype, const char *name, const Type *t, int optional, int isstruct, int need_offset)
472 if (optional && t->type != TTag && t->type != TType)
477 switch (t->type) {
479 if (use_extern(t->symbol)) {
482 poffset, t->symbol->gen_name);
484 add_line_pointer(temp, t->symbol->gen_name, poffset,
491 if (t->members)
493 else if (t->range == NULL)
495 else if (t->range->min < INT_MIN && t->range->max <= INT64_MAX)
497 else if (t->range->min >= 0 && t->range->max > UINT_MAX)
499 else if (t->range->min >= INT_MIN && t->range->max <= INT_MAX)
501 else if (t->range->min >= 0 && t->range->max <= UINT_MAX)
505 name, t->range->min, t->range->max);
555 size_t count = 0, i;
559 if (ASN1_TAILQ_EMPTY(t->members)) {
564 if (asprintf(&bname, "bmember_%s_%p", name ? name : "", t) < 0 || bname == NULL)
568 ASN1_TAILQ_FOREACH(m, t->members, members) {
580 i = 1;
583 fprintf(f, "/* %lu */ %s%s\n", (unsigned long)i++, q->line, last ? "" : ",");
596 ASN1_TAILQ_FOREACH(m, t->members, members) {
620 int subtype_is_struct = is_struct(t->subtype, isstruct);
625 sename = symbol_name(basetype, t->subtype);
627 if (asprintf(&tname, "tag_%s_%p", name ? name : "", t) < 0 || tname == NULL)
635 t->subtype, 0, subtype_is_struct, 0);
639 classname(t->tag.tagclass),
640 is_primitive_type(t->subtype->type) ? "PRIM" : "CONS",
641 valuename(t->tag.tagclass, t->tag.tagvalue),
653 int subtype_is_struct = is_struct(t->subtype, 0);
661 if (asprintf(&sename, "%s_val", symbol_name(basetype, t->subtype)) < 0)
668 sename = strdup(symbol_name(basetype, t->subtype));
673 if (t->type == TSetOf) type = "A1_OP_SETOF";
674 else if (t->type == TSequenceOf) type = "A1_OP_SEQOF";
677 if (asprintf(&elname, "%s_%s_%p", basetype, tname, t) < 0 || elname == NULL)
680 generate_template_type(elname, &dupname, NULL, sename, NULL, t->subtype,
690 size_t count = 0, i;
698 basetype, name ? name : "", (unsigned int)(uintptr_t)t) < 0 || tname == NULL)
701 ASN1_TAILQ_FOREACH(m, t->members, members) {
753 i = 1;
756 fprintf(f, "/* %lu */ %s%s\n", (unsigned long)i++, q->line, last ? "" : ",");
778 "\t(asn1_type_encode)encode_%s,\n"
779 "\t(asn1_type_decode)decode_%s,\n"
780 "\t(asn1_type_length)length_%s,\n"
781 "\t(asn1_type_copy)copy_%s,\n"
782 "\t(asn1_type_release)free_%s,\n"