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
> >
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.