Lines Matching defs:out

364 		/* First of all, break out a line */
555 static void render(FILE *out, FILE *hdr);
564 FILE *out, *hdr;
642 out = fopen(outputname, "w");
643 if (!out) {
654 render(out, hdr);
656 if (fclose(out) < 0) {
1256 static void render_element(FILE *out, struct element *e, struct element *tag);
1257 static void render_out_of_line_list(FILE *out);
1264 static void render_opcode(FILE *out, const char *fmt, ...)
1268 if (out) {
1269 fprintf(out, "\t[%4d] =%*s", nr_entries, render_depth, "");
1271 vfprintf(out, fmt, va);
1278 static void render_more(FILE *out, const char *fmt, ...)
1282 if (out) {
1284 vfprintf(out, fmt, va);
1292 static void render(FILE *out, FILE *hdr)
1312 fprintf(out, "/*\n");
1313 fprintf(out, " * Automatically generated by asn1_compiler. Do not edit\n");
1314 fprintf(out, " *\n");
1315 fprintf(out, " * ASN.1 parser for %s\n", grammar_name);
1316 fprintf(out, " */\n");
1317 fprintf(out, "#include <linux/asn1_ber_bytecode.h>\n");
1318 fprintf(out, "#include \"%s.asn1.h\"\n", grammar_name);
1319 fprintf(out, "\n");
1320 if (ferror(out)) {
1337 fprintf(out, "enum %s_actions {\n", grammar_name);
1339 fprintf(out, "\tACT_%s = %u,\n",
1341 fprintf(out, "\tNR__%s_actions = %u\n", grammar_name, nr_actions);
1342 fprintf(out, "};\n");
1344 fprintf(out, "\n");
1345 fprintf(out, "static const asn1_action_t %s_action_table[NR__%s_actions] = {\n",
1348 fprintf(out, "\t[%4u] = %s,\n", action->index, action->name);
1349 fprintf(out, "};\n");
1351 if (ferror(out)) {
1369 fprintf(out, "\n");
1370 fprintf(out, "static const unsigned char %s_machine[] = {\n",
1375 render_element(out, root->element, NULL);
1376 render_opcode(out, "ASN1_OP_COMPLETE,\n");
1377 render_out_of_line_list(out);
1379 fprintf(out, "};\n");
1381 fprintf(out, "\n");
1382 fprintf(out, "const struct asn1_decoder %s_decoder = {\n", grammar_name);
1383 fprintf(out, "\t.machine = %s_machine,\n", grammar_name);
1384 fprintf(out, "\t.machlen = sizeof(%s_machine),\n", grammar_name);
1385 fprintf(out, "\t.actions = %s_action_table,\n", grammar_name);
1386 fprintf(out, "};\n");
1390 * Render the out-of-line elements
1392 static void render_out_of_line_list(FILE *out)
1403 render_more(out, "\n");
1407 render_element(out, ce, NULL);
1413 render_opcode(out, "ASN1_OP_END_SEQ%s,\n", act);
1416 render_opcode(out, "ASN1_OP_END_SEQ_OF%s,\n", act);
1417 render_opcode(out, "_jump_target(%u),\n", entry);
1420 render_opcode(out, "ASN1_OP_END_SET%s,\n", act);
1423 render_opcode(out, "ASN1_OP_END_SET_OF%s,\n", act);
1424 render_opcode(out, "_jump_target(%u),\n", entry);
1430 render_opcode(out, "_action(ACT_%s),\n",
1432 render_opcode(out, "ASN1_OP_RETURN,\n");
1439 static void render_element(FILE *out, struct element *e, struct element *tag)
1453 if (e->type_def && out) {
1454 render_more(out, "\t// %s\n", e->type_def->name->content);
1463 render_opcode(out, "ASN1_OP_%sMATCH_ANY%s%s,",
1466 render_more(out, "\t\t// %s", e->name->content);
1467 render_more(out, "\n");
1471 render_element(out, e->children, e);
1478 render_opcode(out, "ASN1_OP_%sMATCH%s%s,",
1491 render_opcode(out, "ASN1_OP_%sMATCH%s%s,",
1499 render_more(out, "\t\t// %s", x->name->content);
1500 render_more(out, "\n");
1510 render_opcode(out, "_tag(%s, %s, %s),\n",
1515 render_opcode(out, "_tagn(%s, %s, %2u),\n",
1525 render_element(out, e->type->type->element, tag);
1527 render_opcode(out, "ASN1_OP_%sACT,\n",
1533 /* Render out-of-line for multiple use or
1535 render_opcode(out, "_jump_target(%u),", e->entry_index);
1537 render_more(out, "\t\t// --> %s",
1539 render_more(out, "\n");
1550 render_element(out, ec, NULL);
1552 render_opcode(out, "ASN1_OP_END_SEQ%s,\n", act);
1559 /* Render out-of-line for multiple use or
1561 render_opcode(out, "_jump_target(%u),", e->entry_index);
1563 render_more(out, "\t\t// --> %s",
1565 render_more(out, "\n");
1576 render_element(out, e->children, NULL);
1579 render_opcode(out, "ASN1_OP_END_SEQ_OF%s,\n", act);
1581 render_opcode(out, "ASN1_OP_END_SET_OF%s,\n", act);
1582 render_opcode(out, "_jump_target(%u),\n", entry);
1590 * elements are left out whilst not preventing optional
1591 * elements from being left out.
1598 render_element(out, ec, ec);
1600 render_opcode(out, "ASN1_OP_COND_FAIL,\n");
1602 render_opcode(out, "ASN1_OP_ACT,\n");
1610 render_opcode(out, "_action(ACT_%s),\n", e->action->name);