> 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