/* InstallationSupportExtras.c */ /* Copyright (C) 1991 by Xerox Corporation. All rights reserved. */ /* Russ Atkinson, March 20, 1991 1:12:52 am PST */ typedef unsigned word; typedef struct {word x,y;} pair; typedef struct {word x,y,z;} triple; typedef word (*procDesc)(); extern void XR_ImportProc(); extern void XR_ExportProc(); extern word XR_GetTypeIndex(); extern void XR_RaiseSignal(); extern void XR_RaiseError(); extern void XR_TypeIndex(); extern void XR_ImportInterfaceX (formal, actual, type, slots) word formal, actual, type, slots; { /* DUMMY for now until we can use actual */ XR_ImportInterface(formal, type, slots); } extern void XR_ImportProgramX (formal, actual, type, link) word formal, actual, type, link; { /* DUMMY for now until we can use actual */ XR_ImportInterface(formal, type, link); } extern void XR_ExportInterfaceX (formal, actual, type, slots) word formal, actual, type, slots; { /* DUMMY for now until we can use actual */ XR_ExportInterface(formal, type, slots); } extern void XR_ImportProcS (irLocal, encoded) word irLocal, encoded; { word unitsOut = encoded / (256*256*256); word unitsIn = (encoded / (256*256)) % 256; word index = (encoded / (256)) % 256; word nargs = encoded % 256; XR_ImportProc(irLocal, index, unitsOut, unitsIn, nargs); } extern void XR_ExportProcS (irLocal, expr, encoded) word irLocal, expr, encoded; { word unitsOut = encoded / (256*256*256); word unitsIn = (encoded / (256*256)) % 256; word index = (encoded / (256)) % 256; word nargs = encoded % 256; XR_ExportProc(irLocal, index, expr, unitsOut, unitsIn, nargs); } extern void XR_RaiseSignal0 (sig) word sig; { XR_RaiseSignal(sig, 0, 0); } extern void XR_RaiseSignal1 (sig, arg1) word sig, arg1; { word v = arg1; XR_RaiseSignal(sig, 0, &v); } extern void XR_RaiseSignal2 (sig, arg1, arg2) word sig, arg1, arg2; { pair v; v.x = arg1; v.y = arg2; XR_RaiseSignal(sig, 0, &v); } extern void XR_RaiseSignal3 (sig, arg1, arg2, arg3) word sig, arg1, arg2; { triple v; v.x = arg1; v.y = arg2; v.z = arg3; XR_RaiseSignal(sig, 0, &v); } extern void XR_RaiseError0 (err) word err; { XR_RaiseError(err, 0); } extern void XR_RaiseError1 (err, arg1) word err, arg1; { word v = arg1; XR_RaiseError(err, &v); } extern void XR_RaiseError2 (err, arg1, arg2) word err, arg1, arg2; { pair v; v.x = arg1; v.y = arg2; XR_RaiseError(err, &v); } extern void XR_RaiseError3 (err, arg1, arg2, arg3) word err, arg1, arg2, arg3; { triple v; v.x = arg1; v.y = arg2; v.z = arg3; XR_RaiseError(err, &v); } extern word XR_CallProc0 (pd) procDesc pd; { return ((*pd)(pd)); } extern word XR_CallProc1 (arg1, pd) procDesc pd; word arg1; { return ((*pd)(arg1, pd)); } extern word XR_CallProc2 (arg1, arg2, pd) procDesc pd; word arg1, arg2; { return ((*pd)(arg1, arg2, pd)); } extern word XR_CallProc3 (arg1, arg2, arg3, pd) procDesc pd; word arg1, arg2, arg3; { return ((*pd)(arg1, arg2, arg3, pd)); } extern word XR_CallProc4 (arg1, arg2, arg3, arg4, pd) procDesc pd; word arg1, arg2, arg3, arg4; { return ((*pd)(arg1, arg2, arg3, arg4, pd)); } extern word XR_CallProc5 (arg1, arg2, arg3, arg4, arg5, pd) procDesc pd; word arg1, arg2, arg3, arg4, arg5; { return ((*pd)(arg1, arg2, arg3, arg4, arg5, pd)); } extern word XR_GetTypeIndexS (ts) word ts; { return (XR_GetTypeIndex(ts, 0, 0)); }