45 #include <sys/types.h>
50 #include "../../hostemu.h"
150 unsigned long ulRetc;
155 RxVarBlock.
shvname.strptr = pszVar;
156 RxVarBlock.
shvname.strlength = strlen(pszVar);
169 prxVar -> strptr = NULL;
170 prxVar -> strlength = 0;
175 if (pszTemp == NULL) {
177 prxVar -> strptr = NULL;
178 prxVar -> strlength = 0;
186 prxVar -> strptr = pszTemp;
222 unsigned long ulRetc;
226 RxVarBlock.
shvname.strptr = pszVar;
227 RxVarBlock.
shvname.strlength = strlen(pszVar);
266 unsigned short int *flags,
271 unsigned long i, rc = 0;
275 printf(
"HOSTEMU: Subcom called.\n");
296 printf(
"HOSTEMU: Parse complete, lStartRcd=%d, lRcdCnt=%d, lDirection=%d, fRW=%d, fFinis=%d\n",
301 RexxSetHalt(GetCurrentProcessId(), GetCurrentThreadId());
307 RexxSetTrace(GetCurrentProcessId(), GetCurrentThreadId());
311 printf(
"HOSTEMU: Executing execio statement.\n");
317 pll = (
PLL)malloc(
sizeof (
LL));
323 memset(pll,
'\0',
sizeof (
LL));
333 if (pll ->
pFile == NULL) {
337 if (pll ->
pFile == NULL) {
371 fclose(pll ->
pFile);
403 sprintf(retc->
strptr,
"%u", rc);
406 printf(
"HOSTEMU: Subcom return code = %u.\n", rc);
447 Index = Stem + strlen(Stem);
451 sprintf(Index,
"%u", 0);
456 elements = atoi(rxVal.
strptr);
465 fputs(
"\n", pll ->
pFile);
479 fputs(
"\n", pll ->
pFile);
484 fflush (pll ->
pFile);
533 fputs(Item, pll ->
pFile);
534 fputs(
"\n", pll ->
pFile);
550 fputs(Item, pll ->
pFile);
551 fputs(
"\n", pll ->
pFile);
562 fflush (pll ->
pFile);
593 unsigned long ulRc = 0;
609 Index = Stem + strlen(Stem);
618 sprintf(Index,
"%d", i);
633 sprintf(Index,
"%d", i);
647 sprintf(Index,
"%d", 0);
747 while (pll != NULL) {
748 if (!strcmp (SFilename, pll ->
FileName)) {
816 if (pll ->
next != NULL) {
819 if (pll ->
prev != NULL) {
851 return (
long)elements;
920 printf(
"HOSTEMU: Library loaded.\n");
921 printf(
"HOSTEMU: RexxRegisterSubcomExe retc = %d.\n", rc);
922 printf(
"HOSTEMU: CreateMutex htmxExecIO = %d.\n",
htmxExecIO);
932 while (pll != NULL) {
933 fclose (pll ->
pFile);
RexxReturnCode RexxEntry RexxVariablePool(PSHVBLOCK pshvblock)
RexxReturnCode REXXENTRY RexxResetTrace(process_id_t procid, thread_id_t threadid)
RexxReturnCode REXXENTRY RexxSetTrace(process_id_t procid, thread_id_t threadid)
RexxReturnCode REXXENTRY RexxSetHalt(process_id_t procid, thread_id_t threadid)
#define ERR_EXECIO_VAR_INVALID
#define ERR_EXECIO_NO_STORAGE
#define ERR_EXECIO_BAD_PLIST
#define REXX_INTERPRETER_4_0_0
#define STANDARD_PACKAGE_HEADER
RexxReturnCode REXXENTRY RexxRegisterSubcomExe(CONSTANT_STRING, REXXPFN, CONSTANT_STRING)
RexxReturnCode REXXENTRY RexxPullFromQueue(CONSTANT_STRING, PRXSTRING, RexxQueueTime *, size_t)
RexxReturnCode REXXENTRY RexxFreeMemory(void *)
RexxReturnCode REXXENTRY RexxAddQueue(CONSTANT_STRING, PCONSTRXSTRING, size_t)
CONSTANT_RXSTRING * PCONSTRXSTRING
RexxReturnCode REXXENTRY RexxQueryQueue(CONSTANT_STRING, size_t *)
void *REXXENTRY RexxAllocateMemory(size_t)
CONSTANT_RXSTRING shvname
struct _SHVBLOCK * shvnext
RexxReturnCode RexxEntry GrxHost(PCONSTRXSTRING command, unsigned short int *flags, PRXSTRING retc)
OOREXX_GET_PACKAGE(hostemu)
static unsigned long ExecIO_Write_From_Stem(PLL pll)
static unsigned long ExecIO_Read_To_Queue(PLL pll)
static void push(char *pushstr, long lOp)
unsigned long SetRexxVar(char *pszVar, char *pValue, size_t ulLen)
char * pszSymbol[SYMTABLESIZE]
static void Delete_LL(PLL pll)
unsigned long FetchRexxVar(char *pszVar, PRXSTRING prxVar)
RexxPackageEntry hostemu_package_entry
static void RexxEntry hostemu_unloader(RexxThreadContext *context)
static PLL Search_LL(char *SFilename)
static unsigned long ExecIO_Read_To_Stem(PLL pll)
static void RexxEntry hostemu_loader(RexxThreadContext *context)
static void Insert_LL(PLL pll)
static unsigned long ExecIO_Write_From_Queue(PLL pll)
EXECIO_OPTIONS ExecIO_Options