gtpc2m13C/C++ Language Support User's Guide

credc, __CREDC-Create a Deferred Entry

This macro creates an independent ECB for deferred processing.

A variable number of bytes may be passed to the created ECB's work area starting at EBW000. The TPF system moves the parameters into an interim block of available storage and adds this block to the deferred processing CPU loop list. Operational program zero (OPZERO) initializes an ECB with the parameters in the work area, releases the interim block, and activates the specified program.

Format

#include   <tpfapi.h>
void       credc(int length, const void *parm, void (*segname)());
void       __CREDC(int length, const void *parm, const char *segname);

length
An integer containing the number of bytes to be passed to the created ECB. A value of zero indicates that no parameters will be passed. A maximum of 104 bytes may be passed.

parm
A pointer of type void to the parameters to be passed.

segname
For credc, a pointer to the external function to be called. For __CREDC, a pointer to the name of the segment to be called. segname must map to an assembler segment name, a TARGET(TPF) segment name (or transfer vector), or a TPF ISO-C dynamic load module (DLM) name.
Migration to ISO-C consideration

The TARGET(TPF) credc function can handle segment names that are #pragma mapped. The ISO-C credc function only handles #pragma mapped names if the first 4 characters are the same as the program name.

TARGET(TPF) restriction

Only calls to certain TPF API functions permit the use of function pointers. Pointers to functions are not supported in TARGET(TPF); their use normally results in a compiler error.

Normal Return

Void.

Error Return

Not applicable.

Programming Considerations

Examples

The following example creates a deferred entry for program COT0, passing string VPH as input data to the program.

#include <tpfapi.h>
void COT0();
char *parmstring = "VPH";

  ·
  ·
  ·
credc(strlen(parmstring),parmstring,COT0);

Related Information