Article View: bit.listserv.asm370
Article #369Re: IEANTRT troubles
From: Ing user
Date: Tue, 20 Sep 2005 17:40
Date: Tue, 20 Sep 2005 17:40
92 lines
4774 bytes
4774 bytes
Chris, when you say "if you're going to be reentrant, you also have to make the CALL macro reentrant" - do you mean like this : call ieantrt,(level,name,token,retcode),mf=l getmain and copy this over and later invoke as: call ieantrt,mf=(e,<address>) If so, for my future reference where is this documented? I didn't see this in the auth assembler guide Thanks Ing On Tue, 20 Sep 2005 09:47:56 -0500, Craddock, Chris <Chris_Craddock@bmc.com> wrote: >> >> I have a service provider that places some data in SP 227 >> and later puts the address of the above location in a N/T >> pair: >> >> CALL IEANTCR,(LLEVEL,LNAME,LTOKEN,LPERSOPT,LRETCODE) >> >> LLEVEL DC A(IEANT_SYSTEM_LEVEL) >> LPERSOPT DC A(IEANT_NOPERSIST) >> LNAME DC CL16'SP00001' >> LRETCODE DS F >> LTOKEN DS 0XL16 >> DS1ADDR DS A >> DS XL12 > >Are you sure? This would be a non-reentrant call. That may work, but it >can also fail in surprising ways. > >> In the client I am trying to obtain the address through: >> CALL IEANTRT,(LLEVEL,LNAME,TOKEN,RETCODE) > ^^^^^ >> Initially I defined all parms in absolute storage. But I got an >0C4-11. > >Did the IEANTRT call get the S0C4, or did you get it in your own code? >S0C4-11 is a reference to an invalid address. Presumably you specified >an invalid address in a parameter. Based on the DC's above, I would >guess you meant to specify LTOKEN, not TOKEN. Maybe TOKEN was a valid >symbol in your program, but just not the thing you wanted. > >If you had got a S0C4-4 that would mean the storage address could not be >fetched or stored into and I might suspect a different problem. Or not. >Chances are you're just passing a bad address and the system is getting >a program check when it tries to reference it. > >> later I placed just LLEVEL & LNAME in absolute storage while token & >> retcode >> are defined through a DSECT mapping to a storage obtained as follows: >> GETMAIN R,LV=LOCMLEN,SP=0 > >Making your program reentrant is a good idea, but it's probably not the >root cause of your problem in this case. Anyway, using the "R" form of >GETMAIN is a bad idea because it expands as an SVC 10 - which only gets >you 24-bit storage no matter what AMODE you are in. It's probably no big >deal, but I would use "RU" instead of "R". That way you get SVC 120. > >> But the assembly fails with: >> >> 000080 00000000 67+ DC A(TOKEN) >> PR >> ** ASMA032E Relocatable value found when absolute value required - >TOKEN >> ** ASMA435I Record 176 in SYS1.MACLIB(IHBOPLTX) > >You're suffering the initial pains of getting comfortable with reentrant >coding. Reentrancy, like pregnancy, is an all or nothing deal. You have >to put the data into the working storage by using instructions like; > > LA R0,TOKEN -> TOKEN > ST R0,PARMAREA Save in parm area > >Also, if you're going to be reentrant, you also have to make the CALL >macro reentrant. That means using the MF=L form to reserve storage for >the parameter list and then using the MF=(E,...) form to point to the >storage you reserved for the parameters and complete the parmlist and >make the call. You can read about it in the assembly language services >guide. But back to the problem at hand... why are you calling the symbol >"LTOKEN" in one place and "TOKEN" in another? > >CC
Technical Details
Message-ID:
<200509201740.j8KGHOvb029564@malibu.cc.uga.edu>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!newspeer.tds.net!sn-xit-03!sn-xit-10!sn-xit-08!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!YAHOO.COM!inguser2005Show Full Headers
Complete Article Headers
X-Google-Thread: fcdcb,72645f6509f487f6
X-Google-Attributes: gidfcdcb,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!newspeer.tds.net!sn-xit-03!sn-xit-10!sn-xit-08!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!YAHOO.COM!inguser2005
From: Ing user <inguser2005@YAHOO.COM>
Newsgroups: bit.listserv.asm370
Subject: Re: IEANTRT troubles
Date: Tue, 20 Sep 2005 13:40:53 -0400
Organization: SAS Inc.
Lines: 92
Sender: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>
Message-ID: <200509201740.j8KGHOvb029564@malibu.cc.uga.edu>
NNTP-Posting-Host: mozart.unx.sas.com
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
X-Trace: foggy.unx.sas.com 1127238284 30885 10.19.150.41 (20 Sep 2005 17:44:44 GMT)
X-Complaints-To: usenet@unx.sas.com
NNTP-Posting-Date: Tue, 20 Sep 2005 17:44:44 +0000 (UTC)
Comments: Gated by NETNEWS@VM.SAS.COM
Return-Path: <owner-assembler-list@LISTSERV.UGA.EDU>
Return-Path: owner-assembler-list@LISTSERV.UGA.EDU
X-OriginalArrivalTime: 20 Sep 2005 17:44:43.0287 (UTC)
FILETIME=[FBC50270:01C5BE0A]
Originator: daemon@mozart.unx.sas.com