Explorar o código

* fixed compilation of sparc system unit

florian %!s(int64=22) %!d(string=hai) anos
pai
achega
2348799448
Modificáronse 3 ficheiros con 114 adicións e 24 borrados
  1. 65 0
      rtl/linux/sparc/stat.inc
  2. 43 18
      rtl/linux/sparc/syscall.inc
  3. 6 6
      rtl/linux/sparc/syscallh.inc

+ 65 - 0
rtl/linux/sparc/stat.inc

@@ -0,0 +1,65 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 1999-2003 by Jonas Maebe,
+    member of the Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program 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.
+
+ **********************************************************************}
+
+ {$warning CHECK ME and FIX ME !!!!!!!!!!!}
+  Stat = packed Record  // No unix typing because of differences
+    case byte of
+      0: (st_dev    : cardinal;
+          st_ino,
+          st_mode   : cardinal;
+          nlink     : word;
+          __pad1    : word;
+          uid,
+          gid,
+          rdev      : cardinal;
+          st_size   : longint;
+          st_blksize,
+          st_blocks,
+          st_atime,
+          __unused1,
+          st_mtime,
+          __unused2,
+          st_ctime,
+          __unused3,
+          __unused4,
+          __unused5  : cardinal;
+         );
+      1: (dev    : cardinal;
+          ino,
+          mode   : cardinal;
+          nlink_dummy     : word;
+          __pad2    : word;
+          uid_dummy,
+          gid_dummy,
+          rdev_dummy      : cardinal;
+          size   : longint;
+          blksize,
+          blocks,
+          atime,
+          __unused1_dummy,
+          mtime,
+          __unused2_dummy,
+          ctime,
+          __unused3_dummy,
+          __unused4_dummy,
+          __unused5_dummy  : cardinal;
+         );
+  end;
+
+{
+  $Log$
+  Revision 1.1  2003-05-23 22:36:39  florian
+    * fixed compilation of sparc system unit
+}

+ 43 - 18
rtl/linux/sparc/syscall.inc

@@ -22,7 +22,7 @@
                      --- Main:The System Call Self ---
 *****************************************************************************}
 
-function Do_SysCall(sysnr:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL1'];
+function FpSysCall(sysnr:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL1'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
@@ -37,14 +37,14 @@ begin{asm}
   li    r3,-1}
 end;
 
-function Do_SysCall(sysnr,param1:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL1'];
+function FpSysCall(sysnr,param1:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL1'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
 }
 begin{asm}
 {  mr  r0,r3
-  mr  r3,r4   
+  mr  r3,r4
   sc
   bnslr
   neg   r3, r3
@@ -54,14 +54,14 @@ begin{asm}
 end;
 
 
-function Do_SysCall(sysnr,param1,param2:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL2'];
+function FpSysCall(sysnr,param1,param2:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL2'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
 }
 begin{asm}
 {  mr  r0,r3
-  mr  r3,r4   
+  mr  r3,r4
   mr  r4,r5
   sc
    bnslr
@@ -71,17 +71,17 @@ begin{asm}
    li    r3,-1}
 end;
 
-function Do_SysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL3'];
+function FpSysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL3'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
 }
 begin{asm}
 {  mr  r0,r3
-  mr  r3,r4   
+  mr  r3,r4
   mr  r4,r5
   mr  r5,r6
-  sc 
+  sc
    bnslr
    neg   r3, r3
    lis   r4,Errno@ha
@@ -91,18 +91,18 @@ begin{asm}
 end;
 
 
-function Do_SysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL4'];
+function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL4'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
 }
 begin{asm}
 {  mr  r0,r3
-  mr  r3,r4   
+  mr  r3,r4
   mr  r4,r5
   mr  r5,r6
   mr  r6,r7
-  sc 
+  sc
    bnslr
    neg   r3, r3
    lis   r4,Errno@ha
@@ -110,19 +110,19 @@ begin{asm}
    li    r3,-1}
 end;
 
-function Do_SysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL5'];
+function FpSysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL5'];
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
 }
 begin{asm}
 {  mr  r0,r3
-  mr  r3,r4   
+  mr  r3,r4
   mr  r4,r5
   mr  r5,r6
   mr  r6,r7
   mr  r7,r8
-  sc 
+  sc
    bnslr
    neg   r3, r3
    lis   r4,Errno@ha
@@ -130,10 +130,32 @@ begin{asm}
    li    r3,-1}
 end;
 
+
+function FpSysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult; {assembler;}[public,alias:'FPC_SYSCALL5'];
+{
+  This function puts the registers in place, does the call, and then
+  copies back the registers as they are after the SysCall.
+}
+begin{asm}
+{  mr  r0,r3
+  mr  r3,r4
+  mr  r4,r5
+  mr  r5,r6
+  mr  r6,r7
+  mr  r7,r8
+  sc
+   bnslr
+   neg   r3, r3
+   lis   r4,Errno@ha
+   stw   r3,Errno@l(r4)
+   li    r3,-1}
+end;
+
+
 // Old style syscall:
 // Better use ktrace/strace/gdb for debugging.
 
-Procedure Do_SysCall( callnr:longint;var regs : SysCallregs );{assembler;}
+Procedure FpSysCall( callnr:longint;var regs : SysCallregs );{assembler;}
 {
   This function puts the registers in place, does the call, and then
   copies back the registers as they are after the SysCall.
@@ -177,7 +199,7 @@ Function SysCall( callnr:longint;var regs : SysCallregs ):longint;
   SysCall result in errno. Otherwise, it returns the SysCall return value
 }
 begin
-  do_SysCall(callnr,regs);
+  FpSysCall(callnr,regs);
   if regs.reg1<0 then
    begin
 {$IFDEF SYSCALL_DEBUG}
@@ -215,7 +237,10 @@ end;
 
 {
   $Log$
-  Revision 1.3  2003-01-05 21:32:35  mazen
+  Revision 1.4  2003-05-23 22:36:39  florian
+    * fixed compilation of sparc system unit
+
+  Revision 1.3  2003/01/05 21:32:35  mazen
   * fixing several bugs compiling the RTL
 
   Revision 1.2  2002/12/24 21:30:20  mazen
@@ -233,4 +258,4 @@ end;
     * syscall moved into seperate include
 
 }
- 
+

+ 6 - 6
rtl/linux/sparc/syscallh.inc

@@ -23,7 +23,6 @@
 }
 
 Type
-
   TSysResult = longint; // all platforms, cint=32-bit.
                         // On platforms with off_t =64-bit, people should
                         // use int64, and typecast all calls that don't
@@ -34,19 +33,20 @@ Type
 
   TSysParam  = Longint;
 
-{function Do_SysCall(sysnr:TSysParam):TSysResult;  external name 'FPC_SYSCALL0';
+function Do_SysCall(sysnr:TSysParam):TSysResult;  external name 'FPC_SYSCALL0';
 function Do_SysCall(sysnr,param1:TSysParam):TSysResult; external name 'FPC_SYSCALL1';
 function Do_SysCall(sysnr,param1,param2:TSysParam):TSysResult;  external name 'FPC_SYSCALL2';
 function Do_SysCall(sysnr,param1,param2,param3:TSysParam):TSysResult; external name 'FPC_SYSCALL3';
 function Do_SysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; external name 'FPC_SYSCALL4';
-function Do_SysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult;  external name 'FPC_SYSCALL5';}
-{$ifdef notsupported}
+function Do_SysCall(sysnr,param1,param2,param3,param4,param5:TSysParam):TSysResult;  external name 'FPC_SYSCALL5';
 function Do_SysCall(sysnr,param1,param2,param3,param4,param5,param6:TSysParam):TSysResult;  external name 'FPC_SYSCALL5';
-{$endif notsupported}
 
 {
   $Log$
-  Revision 1.2  2003-01-05 21:32:35  mazen
+  Revision 1.3  2003-05-23 22:36:39  florian
+    * fixed compilation of sparc system unit
+
+  Revision 1.2  2003/01/05 21:32:35  mazen
   * fixing several bugs compiling the RTL
 
   Revision 1.1  2002/12/24 21:30:20  mazen