Procházet zdrojové kódy

* m68k-linux: syscalls are expected to return -1 on failure, not -errno. This fixes some of the tests, webtbs/tw2494 is one of them.

git-svn-id: trunk@28089 -
sergei před 11 roky
rodič
revize
4b4651d298
1 změnil soubory, kde provedl 35 přidání a 7 odebrání
  1. 35 7
      rtl/linux/m68k/syscall.inc

+ 35 - 7
rtl/linux/m68k/syscall.inc

@@ -29,7 +29,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 
@@ -41,7 +45,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 
@@ -54,7 +62,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1', 'd2'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 
@@ -68,7 +80,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 function FpSysCall(sysnr,param1,param2,param3,param4:TSysParam):TSysResult; [public,alias:'FPC_SYSCALL4'];
@@ -82,7 +98,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 
@@ -98,7 +118,11 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;
 
 
@@ -115,6 +139,10 @@ begin
     trap #0
     move.l d0, @Result
   end ['d0', 'd1', 'd2', 'd3', 'd4', 'd5', 'a0'];
-  if (result < 0) then seterrno(-result);
+  if (result < 0) then
+  begin
+    seterrno(-result);
+    result:=TSysResult(-1);
+  end;
 end;