Hi, Paul. I hope this helps some....
On 08/27/2017 01:06 PM, Paul Gilmartin wrote: > On 2017-08-27, at 11:40, Alan Altmark wrote: > >> USS is very much separate from MVS. >> > Point of view? Yes, I suppose it depends on your point of view. MVS is made up of separate subsystems (implements as address spaces) that work together to achieve a goal. OpenVM is integrated into the structure of CMS directly; it's not something separate. > >> CSL = Callable Services (Language). Google, man, google. Same goes for >> the Pipe storage stage. >> > Getting there. Callable Services Library is an API designed by CMS development way back when that allows routines, usually written in assembler, to be called from a variety of compiled (C, PL/I, Assembler, etc.) and interpretive (Rexx, EXEC2) languages using the same interface. Quite a Good Thing to have, imho. > >> There are no stages I'm aware of that connect to an arbitrary fd, but you >> can write a stage that does that. >> > Do you mean in assembler? > >> Not sure where you're headed with this, Gil. >> > Self training. Looking at an example (one of very few for Rexx): > > https://www.ibm.com/support/knowledgecenter/SSB27U_6.2.0/com.ibm.zvm.v620.dmsp1/hcsp1c1007.htm#wq9 > > call apiload 'VMREXOVM' > /* Change the working directory */ > pathname = '/home/myfiles' > plength = length(pathname) > address OPENVM > 'BPX1CHD plength pathname return_value, > return_code reason_code' > > What's that pesky comma doing there? Does it mean: > 'BPX1CHD plength pathname return_value' , > 'return_code reason_code' > or even: > 'BPX1CHD plength pathname return_value return_code reason_code' > or: > 'BPX1CHD plength pathname return_value, return_code reason_code' OK, this is something different than the CSL; this bit of Rexx code is invoking the OpenVM routine BPX1CHD, using the Rexx OpenVM subcom interface. Following the Rexx syntax requirements, the "," is there to tell Rexx to continue the statement on the next line, so your second guess is the correct one. > RCF material? > > Elsewhere I see: > > https://www.ibm.com/support/knowledgecenter/SSB27U_6.2.0/com.ibm.zvm.v620.dmsp1/chd.htm?view=embed#chd > pathname_length > (input,INT,4) is a variable for specifying the length of the pathname > parameter. > ... so I'd expect > plength = d2c( length( pathname ), 4 ) > what don't I understand? What you are looking at there in the document is how to call the BPX1CHD OpenVM routine using the CSL for OpenVM.The syntax description is language independent, and "(input,INT,4)" means: 1) this is an input parameter 2) it's an integer 3) it's four bytes long (int 32) The example show how to specify those parameters in Assembler; if you were coding the example in PL/I, you would use the rules for PL/I to specify the parameters and call the routine. Make sense? DJ > Thanks, > gil -- ITC-email-sig *David Jones **|**Managing Director for zSystems Services **|**z/VM, Linux, and Cloud 703.237.7370 (Office) **|**281.578.7544 (Cell)* *Information Technology Company <http://www.itconline.com/>*
