> The fly in that ointment would be PL/S constructs like this one in 
> the DCBD macro:
> 
> %DCBD: MACRO KEYS(DATASET_ORG,DEVICE_TYPE,BASED_VALUE); 
> ANS('?' || MACLABEL || ' DCBDP ' || MACKEYS || ';') SKIP;
> %END DCBD; 
> 
> Or this one in DCBE:
> 
>   DCBE:  MACRO KEYS(END_OF_DATA_NAME,GET_SIZE, 
>                BLOCK_TOKEN_SIZE, 
>                EA_DSCB, 
>                CAPACITY_MODE, 
>                NCP_MULTIPLIER,ACCUM_MULTIPLIER, 
>                VERIFY_STRIPES,READ_PAST_EOD, 
>                BLOCK_SIZE,BUFFER_RMODE,SYNAD_NAME, 
>                LOC, 
>                SYNC); 
> ANS('?' || MACLABEL || ' DCBEP ' || MACKEYS || ';') SKIP 
>      COL(5); 
>   %END DCBE; 
> 
> What is any sane conversion program supposed to make out of that?  I
> would think that the DSECT conversion program would have to use the 
> PL/S preprocessor code under the covers to translate that into 
> something that could be used to convert to C.  Plus have the PL/S 
> unique macros like "DCBDP" and "DCBEP" in those two examples (yeah, 
> fat chance of that...).
> 
> At one point I actually thought of trying to use the PL/S parts to 
> translate DSECT macros to C as an interesting side project but gave 
> up when I saw that stuff.
> 
> I have found that using the EDCDSECT options 'NOLC,EQU
> (DEF,BIT,BITL)' produces reasonable results that don't need too much
> manual tweaking to be useful.  The results are consistent enough 
> that you can write pre- and post-processors to automate some of the 
> most common tweaks needed (like converting "CHAR[8]" to "void * 
> __ptr64" where appropriate or converting generated struct's to 
> typedef struct's).

  The PL/X structure and Assembler DSECT for the DCBE are in
SYS1.MACLIB(IHADCBE)   . 



Jim Mulder   z/OS System Test   IBM Corp.  Poughkeepsie,  NY

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

Reply via email to