Thank-you Mr. Relson!

Oddly enough, in rerunning my test, it seems that it fails considerably
less than half the time.  That is, it usually aligns on a 16-byte
boundary.  This test version is configured to allocate the cpool anchor and
extent, plus four 160-byte buffers.  This is to stress-test buffer
exhaustion logic.  The production version uses 4091* buffers, making the
total space just under 640KB (which as we all know, should be enough for
anybody).  That has never failed to align correctly.

* The idea is to *avoid* buffer exhaustion, and presently, this seems to be
enough.

Re specification of rounding mask:  I do think -16, -8, etc. are an elegant
way to specify these, particularly as they correlate to 16-byte, 8-byte,
etc. boundaries.   I sure wish they were usable with NILL and NILF.

Well, I decided to check before complaining... and (surprise!):

0000028C 0000 0000               00000000    481          NILL
R15,-4
** ASMA031E Invalid immediate or mask
field
00000290 C0FB FFFF FFF0          00000000    482          NILF
R15,-16
                                             483
*

Sigh.

sas


On Thu, Jul 19, 2018 at 8:01 AM, Peter Relson <[email protected]> wrote:

> > Problems:
> > 1. Undocumented requirement to quad-word align CPOOL anchor and/or
> extent
> > in 64-bit mode (and actually undocumented alignment requirements for
> all).
> > 2. Unable to guarantee quad-word alignment with malloc.
>
> I will get the first taken care of. The anchor does not need to be
> quad-word aligned.
>
> For the second, as has been pointed out in C syntax but I think not in
> words, you would do what everyone used to do prior to STARTBDY keyword of
> GETMAIN / STORAGE OBTAIN -- round the start address up to the necessary
> boundary, having gotten an additional 8 if you need the length to be some
> specific value (or 15 if you do are not guaranteed that the area will at
> least be on a doubleword boundary).
>
> The rounding is typically "Add 15, AND with -16".
>
> Peter Relson
> z/OS Core Technology Design

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to