Re: VMFPLC2 DUMP malfunction in sixpack 1.2 environment
"kerravon86" <kerravon86-/[email protected]>
| Newsgroups | gmane.comp.emulators.hercules390.vm |
|---|---|
| Message-ID | <[email protected]> |
This message attracted me to look closer at the
forumala. Perhaps there's a better way of defining
the "filler" variable at the end of this struct?
typedef struct {
#if defined(S380) || defined(S390) || SEG_64K
#if SEG_64K
SEG_ENTRY segtable[MAXASIZE*16]; /* needs 4096-byte alignment */
PAGE_ENTRY pagetable[MAXASIZE*16][MAXPAGE]; /* needs 64-byte alignment */
#else
SEG_ENTRY segtable[MAXASIZE]; /* needs 4096-byte alignment */
/* segments are in blocks of 64, so will remain 64-byte aligned */
PAGE_ENTRY pagetable[MAXASIZE][MAXPAGE]; /* needs 64-byte alignment */
#endif
#endif
#if defined(S370) || defined(S380)
#if SEG_64K
SEG_ENT370 seg370[S370_MAXMB*16]; /* needs 64-byte alignment */
PAGE_ENT370 page370[S370_MAXMB*16][MAXPAGE]; /* needs 8-byte alignment */
#else
SEG_ENT370 seg370[S370_MAXMB]; /* needs 64-byte alignment */
PAGE_ENT370 page370[S370_MAXMB][MAXPAGE]; /* needs 8-byte alignment */
#endif
#endif
int cregs[NUM_CR];
#if defined(S380) && !BTL_XA
char filler[4096 * 2 -
(( MAXASIZE*sizeof(SEG_ENTRY)
+ MAXASIZE * MAXPAGE * sizeof(PAGE_ENTRY)
+ S370_MAXMB * sizeof(SEG_ENT370)
+ S370_MAXMB * MAXPAGE * sizeof(PAGE_ENT370)
+ NUM_CR * sizeof(int)
) % 4096)];
#endif
} ASPACE;
Perhaps using offsetof? Is that allowed to be
self-referencing?
Getting the other variables to be 4096-aligned
is not a problem, but the miscellaneous stuff
I need to add at the end is a problem. I was
wondering if I should use a union to overcome
the problem.
BFN. Paul.
--- In [email protected], "Wolfgang Schmidt" <W.Schmidt_Celle@...> wrote:
>
> Thx, every day is a day to learn something new :-). I didn't know that formula before.
>
> Wolf
>
> --- In [email protected], Ivan Warren <ivan@> wrote:
> >
> > On 8/24/2010 11:49 PM, Wolfgang Schmidt wrote:
> > > @ Dave,
> > >
> > > - Herc 3.07 64 bit
> > > - Not yet other files affected
> > > - I didn't try other 6pack versions
> > > - I saw the error inspecting the AWS file with Tiny Hexer AND my ooREXX routine :-)
> > >
> > > Wolf
> > >
> >
> > Oh...
> >
> > You may be misinterpreting the VMFPLC2 file !
> >
> > All VMFPLC2 "PLCD" record length are 5+((size/800)+(size%800?0:1))*800
> > byte long - that is, they MUST align on a 800 byte boundary
> > (notwithstanding the header).
> >
> > So :
> >
> > 0805
> > 1605
> > 2405
> > 3605
> > 4005
> >
> > are the only valid record length for PLCD tape blocks. The actual file
> > contents are then determined by the FST block in the PLCH record.
> >
> > --Ivan
> >
>