3 .\" Manual for test-vector framework output drivers
5 .\" (c) 2024 Straylight/Edgeware
8 .\"----- Licensing notice ---------------------------------------------------
10 .\" This file is part of the mLib utilities library.
12 .\" mLib is free software: you can redistribute it and/or modify it under
13 .\" the terms of the GNU Library General Public License as published by
14 .\" the Free Software Foundation; either version 2 of the License, or (at
15 .\" your option) any later version.
17 .\" mLib is distributed in the hope that it will be useful, but WITHOUT
18 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
20 .\" License for more details.
22 .\" You should have received a copy of the GNU Library General Public
23 .\" License along with mLib. If not, write to the Free Software
24 .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
27 .\"--------------------------------------------------------------------------
28 .so ../defs.man \" @@@PRE@@@
30 .\"--------------------------------------------------------------------------
31 .TH tvec-output 3mLib "11 March 2024" "Straylight/Edgeware" "mLib utilities library"
34 .\"--------------------------------------------------------------------------
36 tvec-output \- test vector framework output driver interface
38 .\"--------------------------------------------------------------------------
42 .B "#include <mLib/tvec.h>"
53 .B "struct tvec_state {"
55 .B " const struct tvec_test *test;"
56 .B " unsigned curr[TVOUT_LIMIT], all[TVOUT_LIMIT], grps[TVOUT_LIMIT];"
59 .B "#define TVSF_ERROR ..."
61 .B "struct tvec_output {"
62 .B " const struct tvec_outops *ops;"
64 .B "struct tvec_outops {"
65 .BI " void (*" bsession ")(struct tvec_output *" o ", struct tvec_state *" tv );
66 .BI " int (*" esession ")(struct tvec_output *" o );
67 .BI " void (*" bgroup ")(struct tvec_output *" o );
68 .ta 2n +\w'\fBvoid (*\,\fIskipgroup\/\fB)('u
69 .BI " void (*" skipgroup ")(struct tvec_output *" o ,
70 .BI " const char *" excuse ", void *" ap );
71 .BI " void (*" egroup ")(struct tvec_output *" o );
72 .BI " void (*" btest ")(struct tvec_output *" o );
73 .ta 2n +\w'\fBvoid (*\,\fIskip\/\fB)('u
74 .BI " void (*" skip ")(struct tvec_output *" o ,
75 .BI " const char *" excuse ", void *" ap );
76 .ta 2n +\w'\fBvoid (*\,\fIfail\/\fB)('u
77 .BI " void (*" fail ")(struct tvec_output *" o ,
78 .BI " const char *" fail ", void *" ap );
79 .ta 2n +\w'\fBvoid (*\,\fIdumpreg\/\fB)('u
80 .BI " void (*" dumpreg ")(struct tvec_output *" o ,
81 .BI " unsigned " disp ", const union tvec_regval *" rv ,
82 .BI " const struct tvec_regdef *" rd );
83 .BI " void (*" etest ")(struct tvec_output *" o ", unsigned " outcome );
84 .BI " void (*" bbench ")(struct tvec_output *" o ", unsigned " unit );
85 .ta 2n +\w'\fBvoid (*\,\fIebench\/\fB)('u
86 .BI " void (*" ebench ")(struct tvec_output *" o ", unsigned " unit ,
87 .BI " const struct bench_timing *" tm );
88 .ta 2n +\w'\fBvoid (*\,\fIreport\/\fB)('u
89 .BI " void (*" report ")(struct tvec_output *" o ", unsigned " level ,
90 .BI " const char *" msg ", va_list *" ap );
91 .BI " void (*" level ")(struct tvec_output *" o );
94 .B "const char *tvec_strlevel(unsigned " level );