diff options
Diffstat (limited to 'gcc/m2/gm2-libs-min')
-rw-r--r-- | gcc/m2/gm2-libs-min/M2RTS.def | 26 | ||||
-rw-r--r-- | gcc/m2/gm2-libs-min/M2RTS.mod | 43 |
2 files changed, 44 insertions, 25 deletions
diff --git a/gcc/m2/gm2-libs-min/M2RTS.def b/gcc/m2/gm2-libs-min/M2RTS.def index 65ffa8c..1952d91 100644 --- a/gcc/m2/gm2-libs-min/M2RTS.def +++ b/gcc/m2/gm2-libs-min/M2RTS.def @@ -34,18 +34,36 @@ FROM SYSTEM IMPORT ADDRESS ; TYPE ArgCVEnvP = PROCEDURE (INTEGER, ADDRESS, ADDRESS) ; + (* all these procedures do nothing except satisfy the linker. *) -PROCEDURE ConstructModules (applicationmodule: ADDRESS; +PROCEDURE ConstructModules (applicationmodule, libname: ADDRESS; argc: INTEGER; argv, envp: ADDRESS) ; -PROCEDURE DeconstructModules (applicationmodule: ADDRESS; + +PROCEDURE DeconstructModules (applicationmodule, libname: ADDRESS; argc: INTEGER; argv, envp: ADDRESS) ; -PROCEDURE RegisterModule (name: ADDRESS; + + +(* + RegisterModule - adds module name to the list of outstanding + modules which need to have their dependencies + explored to determine initialization order. +*) + +PROCEDURE RegisterModule (name, libname: ADDRESS; init, fini: ArgCVEnvP; dependencies: PROC) ; -PROCEDURE RequestDependant (modulename, dependantmodule: ADDRESS) ; + +(* + RequestDependant - used to specify that modulename is dependant upon + module dependantmodule. +*) + +PROCEDURE RequestDependant (modulename, libname, + dependantmodule, dependantlibname: ADDRESS) ; + PROCEDURE ExecuteTerminationProcedures ; PROCEDURE ExecuteInitialProcedures ; PROCEDURE HALT <* noreturn *> ; diff --git a/gcc/m2/gm2-libs-min/M2RTS.mod b/gcc/m2/gm2-libs-min/M2RTS.mod index e6043bc..1765531 100644 --- a/gcc/m2/gm2-libs-min/M2RTS.mod +++ b/gcc/m2/gm2-libs-min/M2RTS.mod @@ -30,18 +30,31 @@ IMPORT libc, SYSTEM ; (* we reference these to ensure they are dragged in to the link *) -PROCEDURE ConstructModules (applicationmodule: ADDRESS; +PROCEDURE ConstructModules (applicationmodule, libname: ADDRESS; argc: INTEGER; argv, envp: ADDRESS) ; BEGIN END ConstructModules ; -PROCEDURE DeconstructModules (applicationmodule: ADDRESS; +PROCEDURE DeconstructModules (applicationmodule, libname: ADDRESS; argc: INTEGER; argv, envp: ADDRESS) ; BEGIN END DeconstructModules ; +(* + RegisterModule - adds module name to the list of outstanding + modules which need to have their dependencies + explored to determine initialization order. +*) + +PROCEDURE RegisterModule (name, libname: ADDRESS; + init, fini: ArgCVEnvP; + dependencies: PROC) ; +BEGIN +END RegisterModule ; + + (* all these procedures do nothing except satisfy the linker. *) PROCEDURE ExecuteTerminationProcedures ; @@ -65,27 +78,15 @@ BEGIN END NoException ; -PROCEDURE RequestDependant (modulename, dependantmodule: ADDRESS) ; -BEGIN -END RequestDependant ; - +(* + RequestDependant - used to specify that modulename is dependant upon + module dependantmodule. +*) -PROCEDURE ConstructModules (applicationmodule: ADDRESS; - argc: INTEGER; argv, envp: ADDRESS) ; +PROCEDURE RequestDependant (modulename, libname, + dependantmodule, dependantlibname: ADDRESS) ; BEGIN -END ConstructModules ; - - -PROCEDURE DeconstructModules (applicationmodule: ADDRESS; - argc: INTEGER; argv, envp: ADDRESS) ; -BEGIN -END DeconstructModules ; - +END RequestDependant ; -PROCEDURE RegisterModule (name: ADDRESS; - init, fini: ArgCVEnvP; - dependencies: PROC) ; -BEGIN -END RegisterModule ; END M2RTS. |