I think you were referring to the CEEPIPI functions named "call_sub" and
"call_sub_addr". "call_sub" is the CEEPIPI subfunction which calls a LE
enabled routine by symbolic name (like LINK does). Where "call_sub_addr" is
the CEEPIPI subfunction which calls an LE enabled routine by its load point
address (like SYNC does).

In either case, REXX itself will "somehow" (LINKPGM or otherwise) give
control over to my routine which will set up things, then invoke the PCRE
appropriate subroutine(s) as needed, and finally "somehow" pass back the
results (likely via REXX variables the way ISPF does) back to the REXX
program.

On Wed, Jul 10, 2013 at 12:00 PM, Sam Siegel <[email protected]> wrote:

> On Wed, Jul 10, 2013 at 8:32 AM, Farley, Peter x23353 <
> [email protected]> wrote:
>
> > Sam, what do you mean by "call sub addr" vs "call sub" from the Rexx
> point
> > of view?  AFAIK there is no capability in z/OS Rexx to call a subroutine
> by
> > address.
> >
>
> I'm clearly showing off my deep and extensive REXX knowledge. ;-)
>
> >
> > John, I strongly suspect that the efficiency of a CEEPIPI setup will more
> > than pay you back for the complexity of the setup for all but a very few
> > calls to the PCRE subroutines, i.e. in all but the very simplest of use
> > cases.
> >
> > I would set up the CEEPIPI environment and store the returned token in a
> > suitably "obscure" named Rexx variable (like ___C_E_E_P_I_P_I___) and
> > retrieve that variable on each call to the PCRE functions.  Use the token
> > value if it is there and set up CEEPIPI if it is not yet there.
> >
> > Or you could require a Rexx variable to be passed as the first argument
> to
> > all functions in which you store the CEEPIPI token value, putting the
> > burden on the programmer to keep it intact and pass you the right value
> > every time.
> >
> > Peter
> >
> > -----Original Message-----
> > From: IBM Mainframe Discussion List [mailto:[email protected]] On
> > Behalf Of Sam Siegel
> > Sent: Wednesday, July 10, 2013 10:00 AM
> > To: [email protected]
> > Subject: Re: REXX and CEEPIPI questions.
> >
> > On Wed, Jul 10, 2013 at 6:30 AM, John McKown
> > <[email protected]>wrote:
> >
> > > I am trying to look at how to use the PCRE from Ze'ev Atlas in a REXX
> > > program in a "REXXish" way. PCRE is written in C and is basically
> > > implemented as a bunch of subroutines. Being in C means this requires
> > LE. I
> > > could just write my code to be LE compliant and then invoke it from
> REXX
> > > via a LINKPGM, or similar, method. I could pass the results back by
> > having
> > > my routine use IRXEXCOM to create specific REXX variables which could
> > then
> > > be used in the rest of the script. Yes, there are better ways, but I'm
> > just
> > > thinking out loud right now.
> > >
> > > I was also looking at using CEEPIPI somehow to establish an LE
> > environment
> > > which would last across calls to my PCRE functions. I have been reading
> > the
> > > books. But I can't find the answer to my first question. Which is: "If
> I
> > > call an HLASM routine which: (1) is not LE compliant; (2)  uses CEEPIPI
> > > function "init_sub" to set up LE environment for calling subroutines;
> (3)
> > > returns to REXX. Will the LE environment stay around? If it does, could
> > it
> > > cause problems with REXX or even TSO itself? Could it cause problems if
> > the
> > > user were to invoke an LE enabled main routine (written in C, COBOL,
> ...)
> > > via a TSO CALL or ADDRESS LINK type invocation? If the user does invoke
> > an
> > > LE program, will that affect the CEEPIPI set up environment (as in
> > > terminate it)? Instead of "init_sub", should I use "init_sub_dp"? It
> > seems
> > > to have some advantages, but is more restrictive. Mainly it seems to
> be a
> > > way to avoid the possible "problems" of leaving an LE environment
> active.
> >
> > CEEPIPI init sub creates an LE environment and returns a token to the
> same.
> >  The token is passed to the ceepipi call sub function along with other
> > parms.  The LE environment represented by the token is usable on that tcb
> > until destroyed by using ceepipi term function.
> >
> > init sub dp allows you to create multiple LE independent environments
> under
> > the same tcb.  verify your need before using this.
> >
> > best performance in calling the subroutine is to use is to use call sub
> > addr.  This called the subroutine by address instead of name.  if you are
> > going rexx->pipi->subroutine in high volume, call sub addr is worthwhile.
> >
> > If you are going rexx->pipi->subroutine just once or twice then call sub
> is
> > fine.
> >
> > init sub dp has other characteristics that are useful in a multi-tcb
> > environment.
> >
> > > Also, I am not totally sold on having an LE environment "hang around".
> I
> > do
> > > know that it saves on start up and shut down time. But I don't know if
> it
> > > is worth the effort because I don't really have a handle on how many
> PCRE
> > > invocations are going to be done in a single execution of a REXX
> program.
> > >
> > --
> >
> > This message and any attachments are intended only for the use of the
> > addressee and may contain information that is privileged and
> confidential.
> > If the reader of the message is not the intended recipient or an
> authorized
> > representative of the intended recipient, you are hereby notified that
> any
> > dissemination of this communication is strictly prohibited. If you have
> > received this communication in error, please notify us immediately by
> > e-mail and delete the message and any attachments from your system.
> >
> > ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access instructions,
> > send email to [email protected] with the message: INFO IBM-MAIN
> >
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>



-- 
This is a test of the Emergency Broadcast System. If this had been an
actual emergency, do you really think we'd stick around to tell you?

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to