The sample EVAL command for displaying system and space pointers presented in Figure 76 is based on the source shown in the following figure:
Figure 81. Source for Sample EVAL Commands for Displaying System and Space Pointers
#include <iostream.h> #include <mispace.h> #include <pointer.h> #include <mispcobj.h> #include <except.h> #include <lecond.h> #include <leenv.h> #include <qtedbgs.h> // From qsysinc // Link up the Create User Space API #pragma linkage(CreateUserSpace,OS) #pragma map(CreateUserSpace,"QUSCRTUS") void CreateUserSpace(char[20], char[10], long int, char, char[10], char[50], char[10], _TE_ERROR_CODE_T * ); // Link up the Delete User Space API #pragma linkage(DeleteUserSpace,OS) #pragma map(DeleteUserSpace,"QUSDLTUS") void DeleteUserSpace(char[20], _TE_ERROR_CODE_T * ); // Link up the Retrieve Pointer to User Space API #pragma linkage(RetrievePointerToUserSpace,OS) #pragma map(RetrievePointerToUserSpace,"QUSPTRUS") void RetrievePointerToUserSpace(char[20], char **, _TE_ERROR_CODE_T * ); int main (int argc, char *argv[]) { char *pBuffer; _SYSPTR pSYSptr; _TE_ERROR_CODE_T errorCode; errorCode.BytesProvided = 0; CreateUserSpace("QTEUSERSPCQTEMP ", "QTESSPC ", 10, 0, "*ALL ", " ", "*YES ", &errorCode ); //! call RetrievePointerToUserSpace - Retrieve Pointer to User Space //!! (pass: Name and library of user space, pointer variable //!! return: nothing (pointer variable is left pointing to start //!! of user space) RetrievePointerToUserSpace("QTEUSERSPCQTEMP ", &pBuffer, &errorCode); // convert the space pointer to a system pointer pSYSptr = _SETSPFP(pBuffer); cout << "Space pointer: " << pBuffer << endl; cout << "System pointer: " << pSYSptr << endl; return 0; } |
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.