As a subsystem, you should have your own recovery environment, so what you do 
won't interfere with the caller's error recovery. Using a recovery routine, 
whether to handle a program check or to handle the ABEND from an unhandled 
program check, has two advantages:

 1. It works when the data were paged out

 2. It solves the time-of-check to time-of-use problem.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List [[email protected]] on behalf 
of Tony Thigpen [[email protected]]
Sent: Saturday, March 5, 2022 5:11 PM
To: [email protected]
Subject: Re: Testing address validity

My thoughts.

Since I support software that is called by any number of users, I would
like to validate that they provided valid parms. As a called subsystem,
I can't be messing with the callers error handling routines that may
already be handling SOC4s. I don't want to know if it's 'in storage',
just that it is accessible even if a page-fault is needed.

I wish there was a simple:
TEST MEMORY AND BRANCH INVALID
operands R1 is a register pair with R1=address and R1+1=length to
validate. (Like an MVCL.)

Instead of a SOC4, just branch to the address provided as the second
operand where I have placed an error handler.



Tony Thigpen

Paul Gilmartin wrote on 3/5/22 16:48:
> On Mar 5, 2022, at 05:44:41, João Reginato wrote:
>>
>> Which is the best instruction to test if a virtual address is still valid to
>> avoid an unexpected S0C4?
>>
> How is that information useful?
>
> Is its usefulness diminished by "an unexpected S0C4"?
>
> --
> gil

Reply via email to