Browse Source

* Do not use lo(ofs) in fpmmap id TsysParam type is as large as off_t type and suppress warning

git-svn-id: trunk@21544 -
pierre 13 năm trước cách đây
mục cha
commit
68367ea82e
1 tập tin đã thay đổi với 10 bổ sung0 xóa
  1. 10 0
      rtl/linux/ossysc.inc

+ 10 - 0
rtl/linux/ossysc.inc

@@ -493,15 +493,25 @@ end;
 {$else OLDMMAP}
 {$ifdef MMAP2}
 begin
+  {$if sizeof(TSysParam)>=sizeof(off_t)}
+  Fpmmap:= pointer(do_syscall(syscall_nr_mmap2,TSysParam(adr),TSysParam(len),
+    TSysParam(prot),TSysParam(flags),TSysParam(fd),TSysParam(off)));
+  {$else off_t is larger than TsysParam }
   {$message warning need mmap64 syscall, hi(off) not used}
   Fpmmap:= pointer(do_syscall(syscall_nr_mmap2,TSysParam(adr),TSysParam(len),
     TSysParam(prot),TSysParam(flags),TSysParam(fd),TSysParam(lo(off))));
+ {$endif}
 end;
 {$else MMAP2}
 begin
+  {$if sizeof(TSysParam)>=sizeof(off_t)}
+  Fpmmap:= pointer(do_syscall(syscall_nr_mmap,TSysParam(adr),TSysParam(len),
+    TSysParam(prot),TSysParam(flags),TSysParam(fd),TSysParam(off)));
+  {$else off_t is larger than TsysParam }
   {$message warning need mmap64 syscall, hi(off) not used}
   Fpmmap:= pointer(do_syscall(syscall_nr_mmap,TSysParam(adr),TSysParam(len),
     TSysParam(prot),TSysParam(flags),TSysParam(fd),TSysParam(lo(off))));
+ {$endif}
 end;
 {$endif MMAP2}
 {$endif OLDMMAP}