/* * Vdi contrl functions library interface (part 1) * * v_opnwk open workstation * v_clswk close workstation * v_opnvwk open virtual * v_clsvwk close virtual * * ++jrb bammi@cadence.com * modified: mj -- ntomczak@vm.ucs.ualberta.ca */ #include "common.h" #ifdef __DEF_ALL__ #define L_v_opnwk #define L_v_clswk #define L_v_opnvwk #define L_v_clsvwk #endif /* __DEF_ALL__ */ #ifdef L_v_opnwk /* open workstation -- kinda redundant * returns void */ void v_opnwk(int work_in[], int *handle, int work_out[]) { #ifndef __MSHORT__ short *iptr; int *wptr, *end; iptr = _intin; end = &work_in[11]; do { *iptr++ = *work_in++; } while (work_in < end); __vdi__(VDI_CONTRL_ENCODE(1, 0, 11, 0), 0); wptr = work_out; end = wptr + 45; iptr = _intout; do { *wptr++ = *iptr++; } while (wptr < end); end += 12; iptr = _ptsout; do { *wptr++ = *iptr++; } while (wptr < end); #else _vdiparams[1] = &work_in[0]; _vdiparams[3] = &work_out[0]; _vdiparams[4] = &work_out[45]; __vdi__(VDI_CONTRL_ENCODE(1, 0, 11, 0), 0); _vdiparams[1] = (void *)&_intin[0]; _vdiparams[3] = (void *)&_intout[0]; _vdiparams[4] = (void *)&_ptsout[0]; #endif *handle = _contrl[6]; } #endif /* L_v_opnwk */ #ifdef L_v_clswk /* close workstation * returns void */ void v_clswk(int handle) { __vdi__(VDI_CONTRL_ENCODE(2, 0, 0, 0), handle); } #endif /* L_v_clswk */ #ifdef L_v_opnvwk /* open virtual workstation * returns void */ void v_opnvwk(int work_in[], int *handle, int work_out[]) { #ifndef __MSHORT__ short *iptr; int *wptr, *end; iptr = _intin; end = &work_in[11]; do { *iptr++ = *work_in++; } while (work_in < end); __vdi__(VDI_CONTRL_ENCODE(100, 0, 11, 0), *handle); wptr = work_out; end = wptr + 45; iptr = _intout; do { *wptr++ = *iptr++; } while (wptr < end); end += 12; iptr = _ptsout; do { *wptr++ = *iptr++; } while (wptr < end); #else _vdiparams[1] = &work_in[0]; _vdiparams[3] = &work_out[0]; _vdiparams[4] = &work_out[45]; __vdi__(VDI_CONTRL_ENCODE(100, 0, 11, 0), *handle); _vdiparams[1] = (void *)&_intin[0]; _vdiparams[3] = (void *)&_intout[0]; _vdiparams[4] = (void *)&_ptsout[0]; #endif *handle = _contrl[6]; } #endif /* L_v_opnvwk */ #ifdef L_v_clsvwk /* close virtual workstation * returns void */ void v_clsvwk(int handle) { __vdi__(VDI_CONTRL_ENCODE(101, 0, 0, 0), handle); } #endif /* L_v_clsvwk */ /* -eof- */