.\" -*-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-remote 3 "11 March 2024" "Straylight/Edgeware" "mLib utilities library" .SH NAME tvec-remote \- test vector framework remote invocation .\" @TVEC_REMOTEENV .\" @TVEC_FORK .\" @TVEC_EXEC .\" @tvec_fork .\" @tvec_exec . .\" @tvec_setprogress .\" @tvec_setprogress_v . .\" @tvec_remoteserver . .SH SYNOPSIS .nf .B "#include " .PP .ta \w'\fBtypedef int tvec_connectfn('u .BI "typedef int tvec_connectfn(pid_t *" kid_out ", int *" infd_out , .BI " int *" outfd_out ", int *" errfd_out , .BI " struct tvec_state *" tv , .BI " const struct tvec_remoteenv *" env ); .PP .ta 2n .B "struct tvec_remoteenv_slots {" .B " tvec_connectfn *connect;" .B " const struct tvec_env *env;" .B " unsigned dflt_reconn;" .B "};" .B "struct tvec_remoteenv {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B "};" .B "#define TVEC_REMOTEENV ..." .PP .B "#define TVXF_VALMASK ..." .B "#define TVXF_SIG ..." .B "#define TVXF_CAUSEMASK ..." .B "#define TVXST_RUN ..." .B "#define TVXST_EXIT ..." .B "#define TVXST_KILL ..." .B "#define TVXST_CONT ..." .B "#define TVXST_STOP ..." .B "#define TVXST_DISCONN ..." .B "#define TVXST_UNK ..." .B "#define TVXST_ERR ..." .PP .B "struct tvec_remotefork_slots {" .B " const struct tvec_test *tests;" .B "};" .B "struct tvec_remotefork {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B " struct tvec_remotefork_slots f;" .B "};" .B "tvec_connectfn tvec_fork;" .BI "#define TVEC_REMOTEFORK(" subenv ", " tests ") ..." .PP .B "struct tvec_remoteexec_slots {" .B " const char *const *args;" .B "};" .B "struct tvec_remoteexec {" .B " struct tvec_env _env;" .B " struct tvec_remoteenv_slots r;" .B " struct tvec_remoteexec_slots x;" .B "};" .B "tvec_connectfn tvec_exec;" .BI "#define TVEC_REMOTEEXEC(" subenv ", " args ") ..." .PP .BI "void tvec_setprogress(const char *" status ", ...);" .BI "void tvec_setprogress_v(const char *" status ", va_list *" ap ); .PP .ta \w'\fBint tvec_remoteserver('u .BI "int tvec_remoteserver(int " infd ", int " outfd , .BI " const struct tvec_config *" config ); .fi