gtpc2m15C/C++ Language Support User's Guide

cremc, __CREMC-Create an Immediate Entry

This macro creates an independent ECB for immediate 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 ready 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       cremc(int length, const void *parm, void (*segname)());
void       __CREMC(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 cremc, a pointer to the external function being called. For __CREMC, 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 DLM name.
Migration to ISO-C consideration

The TARGET(TPF) cremc function can handle segment names that are #pragma mapped. The ISO-C cremc 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 an ECB dispatched from the ready list for program COT0, passing the string VPH as input to the program.

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

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

Related Information