Add code to test Linux version, try statx syscall only if version is >= to 4.11

git-svn-id: trunk@47850 -
This commit is contained in:
pierre 2020-12-26 17:08:56 +00:00
parent 6190258f5d
commit 8b34e11da3

View File

@ -3,11 +3,52 @@ uses
ctypes,baseunix,linux;
var
un : utsname;
mystatx : statx;
res : cint;
f : text;
st,major,minor : string;
i,p,e : longint;
err : word;
major_release, minor_release : longint;
begin
fpuname(un);
st:=un.release;
for i:=1 to UTSNAME_LENGTH do
if st[i]='.' then
begin
p:=i;
major:=system.copy(st,1,p-1);
system.val(major,major_release,err);
if err<>0 then
begin
writeln('Unable to parse first part of linux version ',st,'(',major,') correctly');
halt(2);
end;
break;
end;
for i:=p+1 to UTSNAME_LENGTH do
if st[i]='.' then
begin
e:=i;
minor:=system.copy(st,p+1,e-p-1);
system.val(minor,minor_release,err);
if err<>0 then
begin
writeln('Unable to second part of parse linux version ',st,'i(',minor,') correctly');
halt(2);
end;
break;
end;
if (major_release<4) or (minor_release<11) then
begin
writeln('This version of Linux: ',st,' does not have fstatx syscall');
halt(0);
end
else
writeln('This linux version ',st,' should support statx syscall');
assign(f,'test.txt');
rewrite(f);
write(f,'ccccc');