|
Last week I posted a question regarding system pointers. I am trying to use
the activate bound program API which requires a system pointer. There are
other ways to activate a program but using this API allows me to retrieve an
activation mark which I am hoping will allow duplicated procedure names
within service programs to be accessed. The only way I know of to retrieve a
system pointer is via MI or C. We do not have a C compiler. I am therefore
relegated to using MI.
I no longer have access to the functional concepts manual so I have to work
backwards from a few programs I created several years ago. Here is what I
have so far. It seems to work. I get back a reasonable looking pointer that in
debug says SYP and refers to the service program name and library. It also
refers to an authority which is all zeros.
I pass this pointer value to the activate program API and get back a return
value that is supposed to be an activation mark. I receive no errors on this
call. I then pass this activation mark to the get export API with the name of
the procedure that I am trying to get a procedure pointer for. I get back a
*NULL pointer and no error in the error parameter. If I pass an invalid
procedure name I do get an error.
If anyone has any experience with these sorts of things I would really
appreciate some help. I have included the MI source that I used to return the
system pointer. It is hard coded to service programs.
ENTRY * (*ENTRY) EXT;
DCL SPCPTR P01 PARM;
DCL SPCPTR P02 PARM;
DCL OL *ENTRY (P01,P02) EXT PARM MIN(0);
DCL DD #PARM1 CHAR(10) BAS(P01);
DCL SYSPTR #PARM2 BAS(P02);
DCL DD OBJ CHAR(34) STAT BDRY(16);
DCL DD OBJTYP CHAR(01) DEF(OBJ) POS(01);
DCL DD SUBTYP CHAR(01) DEF(OBJ) POS(02);
DCL DD OBJNAM CHAR(30) DEF(OBJ) POS(03);
DCL DD RQDAUT CHAR(02) DEF(OBJ) POS(33);
DCL DD AUT CHAR(02) INIT(X'5F00');
CPYBLAP OBJNAM, #PARM1, ' ';
CPYBLA OBJTYP, X'02';
CPYBLA SUBTYP, X'03';
RSLVSP #PARM2, OBJ, *, AUT;
BRK'RTX';
RTX *;
PEND;
Thank you for any input.
David Morris
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to "MIDRANGE-L@midrange.com".
| To unsubscribe from this list send email to MAJORDOMO@midrange.com
| and specify 'unsubscribe MIDRANGE-L' in the body of your message.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.