diff --git a/ocat b/ocat index 9e0aaf3f..e86cb7a8 100755 Binary files a/ocat and b/ocat differ diff --git a/showdef b/showdef index 3c9d1b61..e6a78d19 100755 Binary files a/showdef and b/showdef differ diff --git a/src/lib/system/gnuc/x86_64/Unix.Mod b/src/lib/system/gnuc/x86_64/Unix.Mod index 2539dbd9..da06e96a 100644 --- a/src/lib/system/gnuc/x86_64/Unix.Mod +++ b/src/lib/system/gnuc/x86_64/Unix.Mod @@ -206,8 +206,8 @@ typedef struct Status* = RECORD (* struct stat *) dev* : LONGINT; (* dev_t 8 *) ino* : LONGINT; (* ino 8 *) - nlink* : LONGINT; - mode* : INTEGER; + mode*(*nlink**) : LONGINT; + nlink*(*mode**) : INTEGER; uid*, gid*: INTEGER; rdev* : LONGINT; size* : LONGINT; diff --git a/src/lib/ulm/ulmSysTypes.Mod b/src/lib/ulm/armv6j/ulmSysTypes.Mod similarity index 100% rename from src/lib/ulm/ulmSysTypes.Mod rename to src/lib/ulm/armv6j/ulmSysTypes.Mod diff --git a/src/lib/ulm/armv6j_hardfp/ulmSysTypes.Mod b/src/lib/ulm/armv6j_hardfp/ulmSysTypes.Mod new file mode 100644 index 00000000..a614c67b --- /dev/null +++ b/src/lib/ulm/armv6j_hardfp/ulmSysTypes.Mod @@ -0,0 +1,70 @@ +(* Ulm's Oberon Library + Copyright (C) 1989-1994 by University of Ulm, SAI, D-89069 Ulm, Germany + ---------------------------------------------------------------------------- + Ulm's Oberon Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. + + Ulm's Oberon Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty + of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + ---------------------------------------------------------------------------- + E-mail contact: oberon@mathematik.uni-ulm.de + ---------------------------------------------------------------------------- + $Id: SysTypes.om,v 1.1 1994/02/23 08:01:38 borchert Exp $ + ---------------------------------------------------------------------------- + $Log: SysTypes.om,v $ + Revision 1.1 1994/02/23 08:01:38 borchert + Initial revision + + ---------------------------------------------------------------------------- + AFB 9/89 + ---------------------------------------------------------------------------- +*) + +MODULE ulmSysTypes; + + IMPORT Types := ulmTypes; + + TYPE + Address* = Types.Address; + UntracedAddress* = Types.UntracedAddress; + Count* = Types.Count; + Size* = Types.Size; + Byte* = Types.Byte; + + File* = (*INTEGER*)LONGINT; (* in ulm's system both INTEGER and LONGINT are 4 bytes long *) + Offset* = LONGINT; + Device* = INTEGER; + Inode* = LONGINT; + Time* = LONGINT; + + Word* = INTEGER; (* must have the size of C's int-type *) + + (* Note: linux supports wait4 but not waitid, i.e. these + * constants aren't needed. *) + (* + CONST + (* possible values of the idtype parameter (4 bytes), + see + *) + idPid = 0; (* a process identifier *) + idPpid = 1; (* a parent process identifier *) + idPgid = 2; (* a process group (job control group) identifier *) + idSid = 3; (* a session identifier *) + idCid = 4; (* a scheduling class identifier *) + idUid = 5; (* a user identifier *) + idGid = 6; (* a group identifier *) + idAll = 7; (* all processes *) + idLwpid = 8; (* an LWP identifier *) + TYPE + IdType = INTEGER; (* idPid .. idLwpid *) + *) + +END ulmSysTypes. diff --git a/src/lib/ulm/armv7a_hardfp/ulmSysTypes.Mod b/src/lib/ulm/armv7a_hardfp/ulmSysTypes.Mod new file mode 100644 index 00000000..a614c67b --- /dev/null +++ b/src/lib/ulm/armv7a_hardfp/ulmSysTypes.Mod @@ -0,0 +1,70 @@ +(* Ulm's Oberon Library + Copyright (C) 1989-1994 by University of Ulm, SAI, D-89069 Ulm, Germany + ---------------------------------------------------------------------------- + Ulm's Oberon Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. + + Ulm's Oberon Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty + of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + ---------------------------------------------------------------------------- + E-mail contact: oberon@mathematik.uni-ulm.de + ---------------------------------------------------------------------------- + $Id: SysTypes.om,v 1.1 1994/02/23 08:01:38 borchert Exp $ + ---------------------------------------------------------------------------- + $Log: SysTypes.om,v $ + Revision 1.1 1994/02/23 08:01:38 borchert + Initial revision + + ---------------------------------------------------------------------------- + AFB 9/89 + ---------------------------------------------------------------------------- +*) + +MODULE ulmSysTypes; + + IMPORT Types := ulmTypes; + + TYPE + Address* = Types.Address; + UntracedAddress* = Types.UntracedAddress; + Count* = Types.Count; + Size* = Types.Size; + Byte* = Types.Byte; + + File* = (*INTEGER*)LONGINT; (* in ulm's system both INTEGER and LONGINT are 4 bytes long *) + Offset* = LONGINT; + Device* = INTEGER; + Inode* = LONGINT; + Time* = LONGINT; + + Word* = INTEGER; (* must have the size of C's int-type *) + + (* Note: linux supports wait4 but not waitid, i.e. these + * constants aren't needed. *) + (* + CONST + (* possible values of the idtype parameter (4 bytes), + see + *) + idPid = 0; (* a process identifier *) + idPpid = 1; (* a parent process identifier *) + idPgid = 2; (* a process group (job control group) identifier *) + idSid = 3; (* a session identifier *) + idCid = 4; (* a scheduling class identifier *) + idUid = 5; (* a user identifier *) + idGid = 6; (* a group identifier *) + idAll = 7; (* all processes *) + idLwpid = 8; (* an LWP identifier *) + TYPE + IdType = INTEGER; (* idPid .. idLwpid *) + *) + +END ulmSysTypes. diff --git a/src/lib/ulm/ulmSYSTEM.Mod b/src/lib/ulm/ulmSYSTEM.Mod index b55043e2..da4c49cc 100644 --- a/src/lib/ulm/ulmSYSTEM.Mod +++ b/src/lib/ulm/ulmSYSTEM.Mod @@ -102,6 +102,9 @@ TYPE pchar = POINTER TO ARRAY 1 OF CHAR; ELSIF syscall = Sys.pipe THEN d0 := Unix.Pipe(arg1); RETURN d0 >= 0; + ELSIF syscall = Sys.newstat THEN + d0 := Unix.Stat(arg1, arg2); + RETURN d0 >= 0; END END UNIXCALL; diff --git a/src/lib/ulm/ulmSysConversions.Mod b/src/lib/ulm/ulmSysConversions.Mod index 0710aeac..f8ea3fbb 100644 --- a/src/lib/ulm/ulmSysConversions.Mod +++ b/src/lib/ulm/ulmSysConversions.Mod @@ -139,7 +139,7 @@ MODULE ulmSysConversions; size1, size2: Address; elementsleft: INTEGER; flags: Flags; END; - Format = POINTER TO FormatRec; + Format* = POINTER TO FormatRec; FormatRec* = RECORD (Objects.ObjectRec) diff --git a/src/lib/ulm/x86/ulmSysTypes.Mod b/src/lib/ulm/x86/ulmSysTypes.Mod new file mode 100644 index 00000000..174140e7 --- /dev/null +++ b/src/lib/ulm/x86/ulmSysTypes.Mod @@ -0,0 +1,70 @@ +(* Ulm's Oberon Library + Copyright (C) 1989-1994 by University of Ulm, SAI, D-89069 Ulm, Germany + ---------------------------------------------------------------------------- + Ulm's Oberon Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. + + Ulm's Oberon Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty + of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + ---------------------------------------------------------------------------- + E-mail contact: oberon@mathematik.uni-ulm.de + ---------------------------------------------------------------------------- + $Id: SysTypes.om,v 1.1 1994/02/23 08:01:38 borchert Exp $ + ---------------------------------------------------------------------------- + $Log: SysTypes.om,v $ + Revision 1.1 1994/02/23 08:01:38 borchert + Initial revision + + ---------------------------------------------------------------------------- + AFB 9/89 + ---------------------------------------------------------------------------- +*) + +MODULE ulmSysTypes; + + IMPORT Types := ulmTypes; + + TYPE + Address* = Types.Address; + UntracedAddress* = Types.UntracedAddress; + Count* = Types.Count; + Size* = Types.Size; + Byte* = Types.Byte; + + File* = (*INTEGER*)LONGINT; (* in ulm's system both INTEGER and LONGINT are 4 bytes long *) + Offset* = LONGINT; + Device* = LONGINT; + Inode* = LONGINT; + Time* = LONGINT; + + Word* = INTEGER; (* must have the size of C's int-type *) + + (* Note: linux supports wait4 but not waitid, i.e. these + * constants aren't needed. *) + (* + CONST + (* possible values of the idtype parameter (4 bytes), + see + *) + idPid = 0; (* a process identifier *) + idPpid = 1; (* a parent process identifier *) + idPgid = 2; (* a process group (job control group) identifier *) + idSid = 3; (* a session identifier *) + idCid = 4; (* a scheduling class identifier *) + idUid = 5; (* a user identifier *) + idGid = 6; (* a group identifier *) + idAll = 7; (* all processes *) + idLwpid = 8; (* an LWP identifier *) + TYPE + IdType = INTEGER; (* idPid .. idLwpid *) + *) + +END ulmSysTypes. diff --git a/src/lib/ulm/x86_64/ulmSysTypes.Mod b/src/lib/ulm/x86_64/ulmSysTypes.Mod new file mode 100644 index 00000000..174140e7 --- /dev/null +++ b/src/lib/ulm/x86_64/ulmSysTypes.Mod @@ -0,0 +1,70 @@ +(* Ulm's Oberon Library + Copyright (C) 1989-1994 by University of Ulm, SAI, D-89069 Ulm, Germany + ---------------------------------------------------------------------------- + Ulm's Oberon Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. + + Ulm's Oberon Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty + of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + ---------------------------------------------------------------------------- + E-mail contact: oberon@mathematik.uni-ulm.de + ---------------------------------------------------------------------------- + $Id: SysTypes.om,v 1.1 1994/02/23 08:01:38 borchert Exp $ + ---------------------------------------------------------------------------- + $Log: SysTypes.om,v $ + Revision 1.1 1994/02/23 08:01:38 borchert + Initial revision + + ---------------------------------------------------------------------------- + AFB 9/89 + ---------------------------------------------------------------------------- +*) + +MODULE ulmSysTypes; + + IMPORT Types := ulmTypes; + + TYPE + Address* = Types.Address; + UntracedAddress* = Types.UntracedAddress; + Count* = Types.Count; + Size* = Types.Size; + Byte* = Types.Byte; + + File* = (*INTEGER*)LONGINT; (* in ulm's system both INTEGER and LONGINT are 4 bytes long *) + Offset* = LONGINT; + Device* = LONGINT; + Inode* = LONGINT; + Time* = LONGINT; + + Word* = INTEGER; (* must have the size of C's int-type *) + + (* Note: linux supports wait4 but not waitid, i.e. these + * constants aren't needed. *) + (* + CONST + (* possible values of the idtype parameter (4 bytes), + see + *) + idPid = 0; (* a process identifier *) + idPpid = 1; (* a parent process identifier *) + idPgid = 2; (* a process group (job control group) identifier *) + idSid = 3; (* a session identifier *) + idCid = 4; (* a scheduling class identifier *) + idUid = 5; (* a user identifier *) + idGid = 6; (* a group identifier *) + idAll = 7; (* all processes *) + idLwpid = 8; (* an LWP identifier *) + TYPE + IdType = INTEGER; (* idPid .. idLwpid *) + *) + +END ulmSysTypes. diff --git a/voc b/voc index 57cd5fe4..e4550a2b 100755 Binary files a/voc and b/voc differ diff --git a/vocstatic b/vocstatic index 57cd5fe4..e4550a2b 100755 Binary files a/vocstatic and b/vocstatic differ diff --git a/vocstatic.linux.gnuc.x86 b/vocstatic.linux.gnuc.x86 index 5ff6a53f..e4550a2b 100755 Binary files a/vocstatic.linux.gnuc.x86 and b/vocstatic.linux.gnuc.x86 differ diff --git a/vocstatic.linux.gnuc.x86_64 b/vocstatic.linux.gnuc.x86_64 index 57cd5fe4..e4550a2b 100755 Binary files a/vocstatic.linux.gnuc.x86_64 and b/vocstatic.linux.gnuc.x86_64 differ