mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 10:29:24 +02:00
* restore old behaviour for non freebsd for _syscall
(cherry picked from commit e384e36e84
)
This commit is contained in:
parent
c75945a32b
commit
d9bac3a47d
@ -76,9 +76,18 @@ FreeBSD: same implementation as NetBSD.
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
{$ifdef CPU64}
|
{$ifdef CPU64}
|
||||||
|
{$ifdef freebsd}
|
||||||
|
// newer style, no align zeroes in _syscall
|
||||||
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,TSysParam(fd),Offset,whence);
|
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,TSysParam(fd),Offset,whence);
|
||||||
|
{$else}
|
||||||
|
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,TSysParam(fd),0,Offset,whence);
|
||||||
|
{$endif}
|
||||||
{$else}
|
{$else}
|
||||||
|
{$ifdef freebsd}
|
||||||
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,0,TSysParam(fd),
|
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,0,TSysParam(fd),
|
||||||
|
{$else}
|
||||||
|
Fplseek:=do_syscall(syscall_nr___syscall,syscall_nr_lseek,0,TSysParam(fd),0,
|
||||||
|
{$endif}
|
||||||
{$ifdef ENDIAN_BIG}hi(offset),lo(offset){$endif}
|
{$ifdef ENDIAN_BIG}hi(offset),lo(offset){$endif}
|
||||||
{$ifdef ENDIAN_LITTLE}lo(Offset),hi(offset){$endif},
|
{$ifdef ENDIAN_LITTLE}lo(Offset),hi(offset){$endif},
|
||||||
Whence);
|
Whence);
|
||||||
@ -90,11 +99,20 @@ function Fpftruncate(fd : cint; flength : off_t): cint; [public, alias : 'FPC_SY
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
{$ifdef CPU64}
|
{$ifdef CPU64}
|
||||||
|
{$ifdef freebsd}
|
||||||
|
// newer style, no align zeroes in _syscall
|
||||||
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate, fd ,flength);
|
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate, fd ,flength);
|
||||||
|
{$else}
|
||||||
|
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate, fd ,0 ,flength);
|
||||||
|
{$endif}
|
||||||
{$else}
|
{$else}
|
||||||
|
{$ifdef freebsd}
|
||||||
|
// newer style, no align zeroes in _syscall
|
||||||
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate,0,fd,lo(flength),hi(flength));
|
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate,0,fd,lo(flength),hi(flength));
|
||||||
|
{$else}
|
||||||
|
Fpftruncate:=Do_syscall(syscall_nr___syscall,syscall_nr_ftruncate,0,fd,0,lo(flength),hi(flength));
|
||||||
|
{$endif}
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -102,9 +120,17 @@ Function Fpmmap(start:pointer;len:size_t;prot:cint;flags:cint;fd:cint;offst:off_
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
{$ifdef CPU64}
|
{$ifdef CPU64}
|
||||||
|
{$ifdef freebsd}
|
||||||
Fpmmap:=pointer(ptruint(do_syscall(TSysParam(syscall_nr_mmap),TSysParam(Start),TSysParam(Len),TSysParam(Prot),TSysParam(Flags),TSysParam(fd),TSysParam(offst))));
|
Fpmmap:=pointer(ptruint(do_syscall(TSysParam(syscall_nr_mmap),TSysParam(Start),TSysParam(Len),TSysParam(Prot),TSysParam(Flags),TSysParam(fd),TSysParam(offst))));
|
||||||
|
{$else}
|
||||||
|
Fpmmap:=pointer(ptruint(do_syscall(TSysParam(syscall_nr_mmap),TSysParam(Start),TSysParam(Len),TSysParam(Prot),TSysParam(Flags),TSysParam(fd),0,TSysParam(offst))));
|
||||||
|
{$endif}
|
||||||
{$else}
|
{$else}
|
||||||
Fpmmap:=pointer(ptruint(do_syscall(syscall_nr_mmap,TSysParam(Start),Len,Prot,Flags,fd,
|
{$ifdef freebsd}
|
||||||
|
Fpmmap:=pointer(ptruint(do_syscall(syscall_nr_mmap,TSysParam(Start),Len,Prot,Flags,fd,
|
||||||
|
{$else}
|
||||||
|
Fpmmap:=pointer(ptruint(do_syscall(syscall_nr_mmap,TSysParam(Start),Len,Prot,Flags,fd,0,
|
||||||
|
{$endif}
|
||||||
{$ifdef FPC_BIG_ENDIAN} hi(offst),lo(offst){$endif}
|
{$ifdef FPC_BIG_ENDIAN} hi(offst),lo(offst){$endif}
|
||||||
{$ifdef FPC_LITTLE_ENDIAN} lo(offst),hi(offst){$endif}
|
{$ifdef FPC_LITTLE_ENDIAN} lo(offst),hi(offst){$endif}
|
||||||
)));
|
)));
|
||||||
|
Loading…
Reference in New Issue
Block a user