/* 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←ExportProcSWithName (irLocal, expr, encoded, name) word irLocal, expr, encoded; char *name; { word unitsOut = encoded / (256*256*256); word unitsIn = (encoded / (256*256)) % 256; word index = (encoded / (256)) % 256; word nargs = encoded % 256; XR←ExportProcWithName(irLocal, index, expr, unitsOut, unitsIn, nargs, name); } 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)); }