DanD wrote on 10/05/2005 12:20:43 PM: > > I was wondering if anyone has used the ADPLSMAP IPCS service routine to map > a dataspace? > Any code samples would be welcome. >
Can you expand on the phrase "map a dataspace"? In my mind I'm hearing it meaning the following: 1. Somehow you or your program know that mapping hasn't been done already. 2. You have a program that, pointed at a data space owned by your code, can say which structures span which addresses within the space. 3. You want the descriptions recorded so that subsequent WHERE service requests or IPCS subcommands can relate data space addresses to the structures in the data space. If that's the question, then the answer is that it may be tricky but all of the services that you'll need are available to an HLASM program: 1. The ECT service can be used to request that something like the following subcommand be run: EVALMAP GE ADDR(0) ASID(a) DSPNAME(d) If EVALMAP can't find any records pertaining to the data space, it will produce a high return code and you'll know that you haven't gone to the effort of mapping previously. If what I'm describing is what you and others intend to do, we should add an item to the IPCS wish list that you be able to do this through the Storage Map Service (just map service henceforth). You can't do that today. 2. You'll need to supply scan routines to handle each type of structure that you want mapped. Two versions of the protocol to invoke them are supported. a. The most common one that we expected was one where all the scan routine would need is the identity of the address space and the address within the space. It would retrieve an image of the block of interest and would be able to deduce the length and category (eg. RB is a PRB or UCB is a UCBDA) from fields within the block itself. When the scan routine exits, IPCS takes care of caching the information from the BLSRSASY structure generated into the dump directory. The scan routine supplies two codes, one to indicate whether the requested validation completed and the other to indicate what it thinks of the assertion that the storage contains one of those things. b. Blocks, particularly ones designed by hardware designers, may be described by information that points to them rather than information within them, forcing the caller to supply a description but not necessarily to render an opinion regarding whether the block appears to be a valid instance of, e.g. an ASN-first-table, ASN-second-table, region table, segment table, .... There's an indication that you have a "remote" description being supplied to the scan routine. The scan routines for such blocks function a lot like the ones in the first category but expect to get a valid description of the type of block supported. The caller of the map service can use a 2nd instance of a BLSRSASY structure in its calling sequence to inform IPCS and the scan routine about which block led to the block being scanned. Note: If you have a block that can be described as an array, eg. the zArchitecture segment table, do so rather than adding separate items to the IPCS storage map for each entry. We were very generous with reserved space when IPCS storage map entries were designed, and you can use more space to describe something than the original block occupied. Bob Wright - z/OS MVS Service Aids ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

