On Fri, 31 Mar 2023 01:42:20 +0200, Bernd Oppolzer wrote:
>
>Am 31.03.2023 um 01:23 schrieb Paul Gilmartin:
>>>
>> Hmmm.  In 
>> <https://www.ibm.com/docs/en/zos/2.5.0?topic=programs-calling-c-code-from-assembler-c-example>
>>     ...
>This @PRINTF4 cannot be the same as normal PRINTF;
>it must be a glue function or similar to allow an ASSEMBLER function to
>call normal PRINTF.
>
That comes fron:
z/OS 2.5  XL C/C++ Programming Guide  (SC14-7315-50)

Figure 52. Calling an intermediate XL C/C++ function
    from Assembler using OS linkage

Yes, "intermediate" isa key word; akin to your "glue".
And printf is a particular challenge because it supports
a variable-length list of parameters of mixed types.
A moore general approach might be an assembler macro
that takes a list of (type,value) pairs ahd builds the
static reg1 PL.

A typical call might look like:
LABEL    CCALL X(fprintf),(FILE*,stdout),(char*,FMTSTR),(long,INTVAL),..,
(punctuation is left as an exercise for the student,
who knows HLASM and C better than I)

Perhaps such a macro already exists; perhaps on CBTTAPE.ORG.

-- 
gil

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

Reply via email to