Joe: What are you trying to accomplish exactly so we can better assist you ? Scott
On Tue, Oct 29, 2019 at 8:52 AM Joseph Reichman <reichman...@gmail.com> wrote: > I guess I could do a series of calls to the exports things is they all > share a global area > > Thanks > > > On Oct 29, 2019, at 8:47 AM, David Crayford <dcrayf...@gmail.com> wrote: > > > > Why do you need a DLL? Can you just use PIPI to call a static program? > > > >> On 2019-10-29 8:15 PM, Joseph Reichman wrote: > >> This is add_entry I was using INIT_SUB, INIT_MAIN regardless that’s a > good idea to try to use add_entry > >> After init_sub/MAIN > >> This is the program I trying to initiate as in Assembler LE 64 bit > prolog CELQPRLG does not have a main and I cannot call a 64 C DLL I was > thinking CELQPIPI would resolve these issues > >> > >> Thanks > >> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A > >> YREGS > >> * LOAD EP=CEETEST > >> * LR R15,R0 > >> * BASR R14,R15 > >> CELQCALL opendata,(SYSADATA),WORKREG=10 > >> XR R15,R15 > >> CELQEPLG > >> SYSADATA DC CL8'SYSADATA' > >> * CEEPDDA opendata,SCOPE=IMPORT > >> PARM1 DC A(COMMANDS) > >> PARM2 DC A(FEEDBACK) > >> DS 0H > >> DC H'9' > >> COMMANDS DC C'AT ENTRY ' > >> FEEDBACK DS CL12 > >> CEEDSA SECTYPE=XPLINK PING OF THE DYNAMIC SAVE AREA > >> CEECAA MAPPING OF THE COMMON ANCHOR AREA > >> *LLPPA CEEPPA > >> WORKAREA DSECT > >> DS 0D > >> WORKSIZE EQU *-WORKAREA > >> * CEEEDB MAPPING OF THE ENCLAVE DATA BLOCK > >> END > > >> > >> > >> > >> -----Original Message----- > >> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On > Behalf Of Joe Monk > >> Sent: Tuesday, October 29, 2019 3:34 AM > >> To: IBM-MAIN@LISTSERV.UA.EDU > >> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN > >> > >> So .... according to: > >> > >> "20 The routine_name contains only blanks and the routine_entry was > zero. > >> The PreInit table was not updated." > >> > >> > https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ceeam00/ceeam141.htm > >> > >> Joe > >> > >> On Mon, Oct 28, 2019 at 8:55 PM Joseph Reichman <reichman...@gmail.com> > >> wrote: > >> > >>> The listing has the SYSSTATE set AMODE 64 The LISTPSW indicates > >>> botH the EA and BA BITS of the PSW as one indicating AMODE 64 at > >>> location F8 right before the call CELQPIPI > >>> > >>> > >>> CEEWQPIP: LOADing CELQPIPI > >>> CEEWQPIP: Doing CELQPIPI INIT_MAIN > >>> IKJ57024I AT +F6 > >>> TEST > >>> istpsw > >>> IKJ57652I PSW LOCATED AT 8BA068 > >>> XRXXXTIE KEY XMWP AS CC PROGMASK EA BA INSTR ADDR > >>> 00000111 8 1101 00 00 0000 1 1 1F7010F6 > >>> > >>> TEST > >>> t +f8 > >>> TEST > >>> o > >>> CEEWQLOD: Called to LOAD "TEST64A " > >>> IKJ57024I AT +F8 > >>> TEST > >>> > >>> The program is AMODE 64 > >>> > >>> ________ TEST64A 00000D30 0001D6 00 > 64 > >>> ANY > >>> > >>> This is a listing of the table > >>> +CEEXPTBL DC CL8'CELQPTBL' Eyecatcher > >>> + DC A(CELQPIT0058) Number of e > >>> + DC F'16' Entry size > >>> + DC F'100' Version > >>> ice routines > >>> > >>> Source Statement HLASM R6 > >>> + DC AL1(0) > >>> + DC 3X'00' > >>> CELQPITY TEST64A,0 ically load CE > >>> + DC CL8'TEST64A' Name, set t > >>> + DC AD(0) Load dblwd > >>> CELQPITS , End of CELQPIP > >>> +CELQPIT0058 EQU 1 Number of e > >>> * > >>> Here is the listing of TEST64A > >>> > >>> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A > >>> YREGS > >>> * LOAD EP=CEETEST > >>> * LR R15,R0 > >>> * BASR R14,R15 > >>> CELQCALL opendata,(SYSADATA),WORKREG=10 > >>> XR R15,R15 > >>> CELQEPLG > >>> SYSADATA DC CL8'SYSADATA' > >>> * CEEPDDA opendata,SCOPE=IMPORT > >>> PARM1 DC A(COMMANDS) > >>> PARM2 DC A(FEEDBACK) > >>> > >>> Here is the link > >>> For TEST64A > >>> > >>> //***************************************************************** > >>> //* LINK EDIT THE PROGRAM * > >>> //***************************************************************** > >>> //STEP0200 EXEC PGM=IEWL,COND=(0,LT,STEP0100), > >>> // PARM='AMODE(64),LIST,MAP,XREF,CASE=MIXED,DYNAM=DLL' > >>> //SYSPRINT DD SYSOUT=* > >>> //SYSDEFSD DD SYSOUT=* > >>> //OBJ DD DSN=&&HEXOBJ,DISP=(OLD,PASS) > >>> //SYSLIB DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB > >>> // DD DISP=SHR,DSN=CEE.SCEEBND2 > >>> // DD DISP=SHR,DSN=CEE.SCEELKED > >>> //SYSLMOD DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB > >>> //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 > >>> //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509) > >>> //SYSLIN DD * > >>> IMPORT CODE64,'SYSADATA','opendata' > >>> INCLUDE OBJ(TEST64A) > >>> ENTRY TEST64A > >>> NAME TEST64A(R) > >>> > >>> > >>> > >>> > >>> > >>> 84 * > >>> 85 > >>> ********************************************************************** > >>> 86 * > >>> 00000000 00000000 000007B0 87 CEEWQPIP CSECT , > >>> 88 CEEWQPIP AMODE 64 > >>> 89 CEEWQPIP RMODE 31 > >>> 90 SYSSTATE > >>> AMODE64=YES > >>> 91+* THE VALUE OF > >>> SYSSTATE IS NOW SET TO ASCENV=P AMODE64=YES ARCHLX01-SYSSTATE > >>> + VL=2 > >>> OSREL=00000000 > >>> 00000000 010E 92 SAM64 , > >>> 93 * > >>> 94 * > >>> 95 * Standard > 64-bit > >>> entry linkage > >>> 96 * > >>> ----------------------------- > >>> 97 * > >>> 00000002 EBEC D008 0024 00000008 98 STMG > >>> R14,R12,SAVF4SAG64RS14-SAVF4SA(R13) Save caller regs > >>> 00000008 0DB0 99 BASR > R11,0 > >>> Set up basereg > >>> R:B 0000000A 100 USING > *,R11 > >>> Addressabliity > >>> 101 GETMAIN > >>> RU,LV=DSA_L Obtain DSA > >>> 0000000A 103+ DS 0H > >>> @P5C 01-GETMAIN > >>> 0000000A 104+IHB0002C DS 0H > >>> 01-GETMAIN > >>> 0000000A 5800 B36E 00000378 105+ L > >>> 0,=A(DSA_L) LOAD LENGTH 01-GETMAIN > >>> 0000000E 58F0 B372 0000037C 106+ L > >>> 15,=AL1(B'00000000',(0),(0),B'00000010') X01-GETMAIN > >>> + > >>> LOAD GETMAIN PARMS > >>> 00000012 1B11 107+ SR 1,1 > >>> ZERO RESERVED REG 1 01-GETMAIN > >>> 00000014 0A78 108+ SVC 120 > >>> ISSUE GETMAIN SVC 01-GETMAIN > >>> 00000016 E3D0 1080 0024 00000080 109 STG > >>> R13,SAVF4SAPREV-SAVF4SA(,R1) Set backchain > >>> i0000001C E310 D088 0024 00000088 110 STG > >>> R1,SAVF4SANEXT-SAVF4SA(,R13) Set fwd chain > >>> Sample AMODE64 PreInit DRIVER with service routines > >>> Page 5 > >>> Active Usings: CEEWQPIP+X'A',R11 > >>> Loc Object Code Addr1 Addr2 Stmt Source Statement > >>> HLASM R6.0 2019/10/28 20.02 > >>> 00000022 D203 D004 B376 00000004 00000380 111 MVC > >>> SAVF4SAID-SAVF4SA(R4,R13),=A(SAVF4SAID_VALUE) "F4SA" > >>> 00000028 B904 00D1 112 LGR > >>> R13,R1 Set up DSAreg > >>> R:D 00000000 113 USING > >>> DSA,R13 Addressability > >>> 114 * > >>> 115 * > >>> 116 * Issue LOAD > for > >>> CELQPIPI (will ABEND if LOAD fails) > >>> 117 * > >>> ----------------------- > >>> 118 * > >>> 119 WTO > >>> 'CEEWQPIP: LOADing CELQPIPI',ROUTCDE=11 > >>> 0000002C 121+ CNOP 0,4 > >>> 01-WTO > >>> 0000002C A715 0013 00000052 122+ BRAS > >>> 1,IHB0004A BRANCH AROUND MESSAGE @LCC 01-WTO > >>> 00000030 001E 123+ DC > AL2(30) > >>> TEXT LENGTH @YA17152 01-WTO > >>> 00000032 8000 124+ DC > >>> B'1000000000000000' MCSFLAGS 01-WTO > >>> 00000034 C3C5C5E6D8D7C9D7 125+ DC > >>> C'CEEWQPIP: LOADing CELQPIPI' X01-WTO > >>> 0000003C 7A40D3D6C1C48995 + > >>> MESSAGE TEXT @L6C > >>> 0000004E 0000 126+ DC > >>> B'0000000000000000' DESCRIPTOR CODES 01-WTO > >>> 00000050 0020 127+ DC > >>> B'0000000000100000' ROUTING CODES 01-WTO > >>> 00000052 128+IHB0004A DS 0H > >>> 01-WTO > >>> 00000052 0A23 129+ SVC 35 > >>> ISSUE SVC 35 @L6A 01-WTO > >>> 130 * > >>> 131 LOAD > >>> EP=CELQPIPI LOAD LE main module > >>> 00000054 133+ CNOP 0,4 > >>> @L2P 01-LOAD > >>> 00000054 A7F5 0006 00000060 134+ BRAS > >>> 15,LOAD2_0006 BRANCH AROUND CONSTANT(S) 01-LOAD > >>> 00000058 135+LD2_0006 DS 0H > >>> 01-LOAD > >>> 00000058 C3C5D3D8D7C9D7C9 136+LE2_0006 DC > >>> CL8'CELQPIPI' ENTRY POINT NAME 01-LOAD > >>> 00000060 137+LOAD2_0006 DS 0H > >>> 01-LOAD > >>> 00000060 4100 F000 00000000 138+ LA > >>> 0,LE2_0006-LD2_0006(,15) ADDR OF PARAMETER 01-LOAD > >>> 00000064 1B11 139+ SR 1,1 > >>> SHOW NO DCB PRESENT 01-LOAD > >>> 00000066 0A08 140+ SVC 8 > >>> 01-LOAD > >>> 00000068 E300 B366 0080 00000370 141 NG > >>> R0,=X'00000000FFFFFFFE' Clear low (AMODE64) bit > >>> 0000006E E300 D090 0024 00000090 142 STG > >>> R0,CELQPIPI_EP Save CELQPIPI E.P. Address > >>> 143 * > >>> 144 * > >>> 145 * Set up > Service > >>> Routine Vector and parm > >>> 146 * > >>> -------------------------------------- > >>> 147 * > >>> 00000074 D24F D0E0 B696 000000E0 000006A0 148 MVC > >>> SV_DYNAMIC,SV_STATIC Copy over into DSA > >>> 0000007A 41F0 D1E8 000001E8 149 LA > >>> R15,USER_AREA Point to 1000-byte user area > >>> 0000007E E3F0 D0E8 0024 000000E8 150 STG > >>> R15,SV_UWORD SV user word -> user area > >>> 00000084 41F0 D0E0 000000E0 151 LA > >>> R15,SV_DYNAMIC Address of modifiable SV > >>> 00000088 E3F0 D0A0 0024 000000A0 152 STG > >>> R15,SERVICE_RTNS Save as parm for INIT_MAIN > >>> 153 * > >>> 154 * > >>> 155 * Do CELQPIPI > >>> INIT_MAIN > >>> 156 * > >>> --------------------- > >>> 157 * > >>> 158 WTO > >>> 'CEEWQPIP: Doing CELQPIPI INIT_MAIN',ROUTCDE=11 > >>> 0000008E 0700 160+ CNOP 0,4 > >>> 01-WTO > >>> 00000090 A715 0017 000000BE 161+ BRAS > >>> 1,IHB0008A BRANCH AROUND MESSAGE @LCC 01-WTO > >>> 00000094 0026 162+ DC > AL2(38) > >>> TEXT LENGTH @YA17152 01-WTO > >>> 00000096 8000 163+ DC > >>> B'1000000000000000' MCSFLAGS 01-WTO > >>> 00000098 C3C5C5E6D8D7C9D7 164+ DC > >>> C'CEEWQPIP: Doing CELQPIPI INIT_MAIN' X01-WTO > >>> 000000A0 7A40C49689958740 + > >>> MESSAGE TEXT @L6C > >>> 000000BA 0000 165+ DC > >>> B'0000000000000000' DESCRIPTOR CODES 01-WTO > >>> i000000BC 0020 166+ DC > >>> B'0000000000100000' ROUTING CODES 01-WTO > >>> Sample AMODE64 PreInit DRIVER with service routines > >>> Page 6 > >>> Active Usings: CEEWQPIP+X'A',R11 DSA,R13 > >>> Loc Object Code Addr1 Addr2 Stmt Source Statement > >>> HLASM R6.0 2019/10/28 20.02 > >>> 000000BE 167+IHB0008A DS 0H > >>> 01-WTO > >>> 000000BE 0A23 168+ SVC 35 > >>> ISSUE SVC 35 @L6A 01-WTO > >>> 169 * > >>> 000000C0 B982 0000 170 XGR R0,R0 > >>> 000000C4 E3F0 D090 0004 00000090 171 LG > >>> R15,CELQPIPI_EP Address of CELQPIPI E.P. > >>> 172 * > >>> 174 CALL (15), > >>> X > >>> > >>> (INIT_MAIN, CELQPIPI INIT_MAIN request X > >>> > >>> CEEXPTBL_ADDR, Address of CELQPIPI table X > >>> > >>> SERVICE_RTNS, Address of service rtn vector X > >>> > TOKEN), > >>> Token from INIT_MAIN X > >>> > >>> MF=(E,CALL_PL) > >>> 000000CA 176+ DS 0H > >>> 01-CALL > >>> 000000CA 4110 D138 00000138 181+ LA > >>> 1,CALL_PL LOAD PARAMETER REG 1 03-IHBINNRR > >>> 000000CE 4100 B386 00000390 182+ LA > >>> 0,INIT_MAIN PICKUP PARAMETER 02-IHBOPLTX > >>> 000000D2 E300 1000 0024 00000000 183+ STG > 0,0(0,1) > >>> STORE INTO PARAM. LIST 02-IHBOPLTX > >>> 000000D8 4100 B57E 00000588 184+ LA > >>> 0,CEEXPTBL_ADDR PICKUP PARAMETER 02-IHBOPLTX > >>> 000000DC E300 1008 0024 00000008 185+ STG > 0,8(0,1) > >>> STORE INTO PARAM. LIST 02-IHBOPLTX > >>> 000000E2 4100 D0A0 000000A0 186+ LA > >>> 0,SERVICE_RTNS PICKUP PARAMETER 02-IHBOPLTX > >>> 000000E6 E300 1010 0024 00000010 187+ STG > >>> 0,16(0,1) STORE INTO PARAM. LIST 02-IHBOPLTX > >>> 000000EC 4100 D098 00000098 188+ LA > 0,TOKEN > >>> PICKUP PARAMETER 02-IHBOPLTX > >>> 000000F0 E300 1018 0024 00000018 189+ STG > >>> 0,24(0,1) STORE INTO PARAM. LIST 02-IHBOPLTX > >>> 000000F6 05EF 190+ BALR 14,15 > >>> BRANCH TO ENTRY POINT 01-CALL > >>> 191 * > >>> 192 * > >>> 193 * Check > results > >>> of INIT_MAIN > >>> 194 * > >>> 000000F8 B902 002F 195 LTGR > >>> > >>> -----Original Message----- > >>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On > >>> Behalf Of Jon Perryman > >>> Sent: Monday, October 28, 2019 8:38 PM > >>> To: IBM-MAIN@LISTSERV.UA.EDU > >>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN > >>> > >>> The CALL macro supports 32 and 64 bit parm addresses. I believe it > >>> defaults to 32 bit and the SYSSTATE macro is used to change it. Does > >>> CELQPITY require 64 bit parm list? If so, make sure you have SYSSTATE > >>> prior to the call. Also make sure SYSSTATE is before the CALL MF=L. > >>> > >>> I've never used TEST so I'm not familiar with the specifics. Your > >>> listing below seems to show it running the program with AMODE=31 and > >>> the L commands only display fullwords. Did you switch to AMODE64 > before calling CELQPITY? > >>> > >>> > >>> Jon. > >>> > >>> On Monday, October 28, 2019, 05:08:58 PM PDT, Joseph Reichman < > >>> reichman...@gmail.com <mailto:reichman...@gmail.com> > wrote: > >>> > >>> Just tried it with the service_rtns parm exactly as it was in the > >>> sample with the exception That the CELQPITY points to my 64 bit > >>> assembler program TEST64A program and do X'20' DECIMAL 32 > >>> > >>> CALL (15), > >>> X > >>> (INIT_MAIN, CELQPIPI INIT_MAIN request X > >>> CEEXPTBL_ADDR, Address of CELQPIPI table X > >>> SERVICE_RTNS, Address of service rtn vector X > >>> TOKEN), Token from INIT_MAIN > >>> X > >>> MF=(E,CALL_PL) > >>> > >>> I traced the CEEWQLOAD it loaded TEST64A which had bit 63 as a one > >>> After the load > >>> > >>> IKJ57382I ENTRY POINT AT 1F790140 AMODE=31 TEST L +F6 > >>> +F6 05EFB902 TEST AT +F6 TEST AT +F8 TEST GO > >>> CEEWQPIP: LOADing CELQPIPI > >>> CEEWQPIP: Doing CELQPIPI INIT_MAIN IKJ57024I AT +F6 TEST GO > >>> CEEWQLOD: Called to LOAD "TEST64A " IKJ57024I AT +F8 TEST L 15R > >>> 15R > >>> 00000020 > >>> > >>> ---------------------------------------------------------------------- > >>> For IBM-MAIN subscribe / signoff / archive access instructions, send > >>> email to lists...@listserv.ua.edu <mailto:lists...@listserv.ua.edu> > >>> with the > >>> message: INFO IBM-MAIN > >>> > >>> ---------------------------------------------------------------------- > >>> For IBM-MAIN subscribe / signoff / archive access instructions, send > >>> email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > >>> > >> ---------------------------------------------------------------------- > >> For IBM-MAIN subscribe / signoff / archive access instructions, send > email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > >> > >> ---------------------------------------------------------------------- > >> For IBM-MAIN subscribe / signoff / archive access instructions, > >> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- *IDMWORKS * Scott Ford z/OS Dev. “By elevating a friend or Collegue you elevate yourself, by demeaning a friend or collegue you demean yourself” www.idmworks.com scott.f...@idmworks.com Blog: www.idmworks.com/blog *The information contained in this email message and any attachment may be privileged, confidential, proprietary or otherwise protected from disclosure. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, copying or use of this message and any attachment is strictly prohibited. If you have received this message in error, please notify us immediately by replying to the message and permanently delete it from your computer and destroy any printout thereof.* ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN