.\" -*-nroff-*- .\" .\" Manual for test-vector framework output drivers .\" .\" (c) 2024 Straylight/Edgeware .\" . .\"----- Licensing notice --------------------------------------------------- .\" .\" This file is part of the mLib utilities library. .\" .\" mLib is free software: you can redistribute it and/or modify it under .\" the terms of the GNU Library General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or (at .\" your option) any later version. .\" .\" mLib is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public .\" License for more details. .\" .\" You should have received a copy of the GNU Library General Public .\" License along with mLib. If not, write to the Free Software .\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, .\" USA. . .\"-------------------------------------------------------------------------- .so ../defs.man \" @@@PRE@@@ . .\"-------------------------------------------------------------------------- .TH tvec-output 3mLib "11 March 2024" "Straylight/Edgeware" "mLib utilities library" .\" @tvec_strlevel . .\"-------------------------------------------------------------------------- .SH NAME tvec-output \- test vector framework output driver interface . .\"-------------------------------------------------------------------------- .SH SYNOPSIS . .nf .B "#include " .PP .ta 2n .B "enum {" .B " TVOUT_LOSE," .B " TVOUT_SKIP," .B " TVOUT_WIN," .B " TVOUT_XFAIL," .B " TVOUT_LIMIT" .B "};" .PP .B "struct tvec_state {" .B " unsigned f;" .B " arena *a;" .B " struct tvec_config cfg;" .B " const struct tvec_test *test;" .B " unsigned curr[TVOUT_LIMIT], all[TVOUT_LIMIT], grps[TVOUT_LIMIT];" .B " ..." .B "};" .B "#define TVSF_ERROR ..." .PP .B "struct tvec_output {" .B " const struct tvec_outops *ops;" .B "};" .B "struct tvec_outops {" .BI " void (*" bsession ")(struct tvec_output *" o ", struct tvec_state *" tv ); .BI " int (*" esession ")(struct tvec_output *" o ); .BI " void (*" bgroup ")(struct tvec_output *" o ); .ta 2n +\w'\fBvoid (*\,\fIskipgroup\/\fB)('u .BI " void (*" skipgroup ")(struct tvec_output *" o , .BI " const char *" excuse ", void *" ap ); .BI " void (*" egroup ")(struct tvec_output *" o ); .BI " void (*" btest ")(struct tvec_output *" o ); .ta 2n +\w'\fBvoid (*\,\fIskip\/\fB)('u .BI " void (*" skip ")(struct tvec_output *" o , .BI " const char *" excuse ", void *" ap ); .ta 2n +\w'\fBvoid (*\,\fIfail\/\fB)('u .BI " void (*" fail ")(struct tvec_output *" o , .BI " const char *" fail ", void *" ap ); .ta 2n +\w'\fBvoid (*\,\fIdumpreg\/\fB)('u .BI " void (*" dumpreg ")(struct tvec_output *" o , .BI " unsigned " disp ", const union tvec_regval *" rv , .BI " const struct tvec_regdef *" rd ); .BI " void (*" etest ")(struct tvec_output *" o ", unsigned " outcome ); .BI " void (*" extend ")(struct tvec_output *" o ", const char *" name ); .ta 2n +\w'\fBvoid (*\,\fIreport\/\fB)('u .BI " void (*" report ")(struct tvec_output *" o ", unsigned " level , .BI " const char *" msg ", va_list *" ap ); .BI " void (*" level ")(struct tvec_output *" o ); .B "};" .PP .B "const char *tvec_strlevel(unsigned " level ); .fi