It cannot know directly because this information is not present in the control blocks passed to the exit by endevor. However, some alternate methods could be used. Here are some ideas.
If there is an ENUXSITE exit that returns the name of the C1DEFLTS table to be used, depending on its design, it might work if called again from other user exits. If so, other exits could use the returned name to determine the 'endevor' under which they are executing.
ACMROOT and ACMXREF files (if used onsite) will always be dynamically allocated during an endevor run. For this reason, user exits could interrogate MVS to see which of the site's ACMROOT files is allocated to the job or TSO session. In order to do that:
- An assembler exit can use the INFO function of DYNALLOC macro to see whether a dataset name is allocated
- A High-Level Language exit can use the BPXWDYN service documented in IBM manual "Using REXX and z/OS UNIX System Services"
Since both ENUXSITE and the user exits are written by customer, they can agree on some mechanism to pass this information from ENUXSITE to the user exits. A very simple way would be that ENUXSITE writes the name into a specific ddname (allocated to a work dataset) which is later read by the user exits.