Load To Global with PC_cp
It is/was my understanding that a Service Provider Address Space
could issue a Load To Global for a program *and* use that program
as a Non Space Switching PC routine (PC_cp).
Is my understanding incorrect ?
In My Service Provider Address Space I issued the following Macro
R7 Has the Address Of The Name of the Program To Load...
*
LOAD EPLOC=(R7),
GLOBAL=(YES,P),ERRET=ZERR14,EOM=YES
*
STM R15,R1,SVLOADZ Save Registers From Load
*
*
I follow the previous macro with a SETDEF macro as follows:
LR R2,R0 Address Of Loaded Module
*
ETDEF TYPE=SET,ETEADR=ETD2,ROUTINE=(2),RAMODE=31,
STATE=SUPERVISOR,PC=STACKING,SSWITCH=NO,
SASN=NEW,ASCMODE=PRIMARY,
PKM=OR,
AKM=(0:15),EKM=(0:15)
The Program Call Number for this routine is X'0000DD04'.
Routines 0000DD00 thru 0000DD03 are space switching routines.
When My user program executes, It issues a PC instruction to call the Non Space
Switching PC routine. The user program Abends with a x'0D6' and interrupt code
of x'22'. Register 14 did in fact have the right PC# 0000DD04
This appears to be a Linkage Translation Exception
A linkage index (LX) translation exception occurred; the program interruption
code is X'22'
So I said To Myself - Self, What is a Linkage Translation Exception ?
Looking At Principals Of Operation (POP) I see that a Linkage Translation
Exception can occur under two conditions.
1)The linkage-table entry designated by the linkage-index part of the PC
number is beyond the end of the linkage table as designated by the
linkage-table designation used.
2)Bit 0 of the linkage-table entry is not zero.
For the first condition The Linkage-Index is 00DD00.
And I have invoked PC# 0000DD00 thru 0000DD03 as space switching routines PC_ss.
My Non Space Swithcing routine is associated with PC# 0000DD04.
So I ruled that condition out.
The second condition refers to a Non Zero Bit In the Linkage Table.
Im not understanding how my Cross Memory Setup would affect the Linkage Table
in this way.
Actually I am really courious to know How I affected The Linkage Table.
So ... Can some one Explaing why I am Abending with a 0D6 - 22
For A Non Space Switching Routine PC_cp that was loaded to common storage
via a Load To Global ?
Im not understanding this.
Should I be able to issue a Load To Global and expect it to be the
target of a Non Space Switching PC Routine from Other users.
SYSTEM COMPLETION CODE=0D6 REASON CODE=00000022
TIME=22.58.35 SEQ=04217 CPU=0000 ASID=0024
PSW AT TIME OF ERROR 078D0000 9DC00F6A ILC 4 INTC 22
ACTIVE LOAD MODULE ADDRESS=1DC003E8 OFFSET=00000B82
NAME=XMSDRIVP
DATA AT PSW 1DC00F64 - 000058E0 C3B0B218 E000D203
GR 0: 00000000 1: 1DC008E4
2: 1DC008E4 3: 1DC008E4
4: 006D09B0 5: 006FF438
6: 1DC00E80 7: 1DC00958
8: 006E2EC8 9: 006FF6F8
A: 00000000 B: 006FF438
C: 1DC003E8 D: 1DC006D4
E: 0000DD04 F: 00000000
END OF SYMPTOM DUMP
Thank You
Paul D'Angelo
---------------------------------------------------
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN