.\" -*-nroff-*- .de VS .sp 1 .RS .nf .ft B .. .de VE .ft R .fi .RE .sp 1 .. .de hP .IP .ft B \h'-\w'\\$1\ 'u'\\$1\ \c .ft P .. .ie t \{\ . ds o \(bu . de VP . sp .4v .. \} .el \{\ . ds o o . de VP . sp .. \} .. .TH tvec-output 3 "11 March 2024" "Straylight/Edgeware" "mLib utilities library" .SH NAME tvec-output \- test vector framework output driver interface .\" @tvec_strlevel . .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 " 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 ); .ta 2n +\w'\fBvoid (*\,\fIbbench\/\fB)('u .BI " void (*" bbench ")(struct tvec_output *" o , .BI " const char *" ident ", unsigned " unit ); .ta 2n +\w'\fBvoid (*\,\fIebench\/\fB)('u .BI " void (*" ebench ")(struct tvec_output *" o , .BI " const char *" ident ", unsigned " unit , .BI " const struct bench_timing *" tm ); .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