System i: Programming i5/OS PASE - IBM
System i: Programming i5/OS PASE - IBM
System i: Programming i5/OS PASE - IBM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
/* rcvr is the output parameter 1 from QSZRTVPR */<br />
char rcvr[108];<br />
/* rcvrlen is input parameter 2 to QSZRTVPR */<br />
int rcvrlen = sizeof(rcvr);<br />
/* errcode is input parameter 5 to QSZRTVPR */<br />
struct {<br />
int bytes_provided;<br />
int bytes_available;<br />
char msgid[7];<br />
} errcode;<br />
/* qszrtvpr_pointer will contain the <strong>i5</strong>/<strong>OS</strong> 16-byte tagged system<br />
pointer to QSZRTVPR */<br />
ILEpointer qszrtvpr_pointer;<br />
/* qszrtvpr_argv6 is the array of argument pointers to QSZRTVPR */<br />
void *qszrtvpr_argv[6];<br />
/* return code from _RSLOBJ2 and _PGMCALL functions */<br />
int rc;<br />
/* Set the <strong>i5</strong>/<strong>OS</strong> pointer to the QSYS/QSZRTVPR *PGM object */<br />
rc = _RSLOBJ2(&qszrtvpr_pointer,<br />
RSLOBJ_TS_PGM,<br />
"QSZRTVPR",<br />
"QSYS");<br />
/* initialize the QSZRTVPR returned info structure */<br />
memset(rcvr, 0, sizeof(rcvr));<br />
/* initialize the QSZRTVPR error code structure */<br />
memset(&errcode, 0, sizeof(errcode));<br />
errcode.bytes_provided = sizeof(errcode);<br />
/* initialize the array of argument pointers for the QSZRTVPR API */<br />
qszrtvpr_argv[0] = &rcvr;<br />
qszrtvpr_argv[1] = &rcvrlen;<br />
qszrtvpr_argv[2] = &format;<br />
qszrtvpr_argv[3] = &prodinfo;<br />
qszrtvpr_argv[4] = &errcode;<br />
qszrtvpr_argv[5] = NULL;<br />
/* Call the <strong>i5</strong>/<strong>OS</strong> QSZRTVPR API from <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> */<br />
rc = _PGMCALL(&qszrtvpr_pointer,<br />
(void*)&qszrtvpr_argv,<br />
0);<br />
/* Check the contents of bytes 63-64 of the returned information.<br />
If they are not '90' (in EBCDIC), the code load is NOT correctly<br />
installed */<br />
if (memcmp(&rcvr[63], &installed, 2) != 0)<br />
printf("<strong>i5</strong>/<strong>OS</strong> Option 33 is NOT installed\n");<br />
else<br />
printf("<strong>i5</strong>/<strong>OS</strong> Option 33 IS installed\n");<br />
return(0);<br />
Running <strong>i5</strong>/<strong>OS</strong> commands from <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong><br />
You can extend the capabilities of your <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> program by running control language (CL)<br />
commands that use <strong>i5</strong>/<strong>OS</strong> functions.<br />
Use the systemCL runtime function to run an <strong>i5</strong>/<strong>OS</strong> command from within an <strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> program.<br />
<strong>i5</strong>/<strong>OS</strong> <strong>PASE</strong> 39