mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-02 02:33:40 +02:00
116 lines
3.1 KiB
PHP
116 lines
3.1 KiB
PHP
{
|
|
$Id$
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 2001 by Free Pascal development team
|
|
|
|
Some calls for the unix unit.
|
|
|
|
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.
|
|
|
|
***********************************************************************}
|
|
|
|
function fpNice(N:cint):cint;
|
|
{
|
|
Set process priority. A positive N means a lower priority.
|
|
A negative N decreases priority.
|
|
|
|
Doesn't exist in BSD. Linux emu uses setpriority in a construct as below:
|
|
}
|
|
|
|
begin
|
|
fpNice:=do_syscall(Syscall_nr_nice,N);
|
|
end;
|
|
|
|
Function fpGetPriority(Which,Who:cint):cint;
|
|
{
|
|
Get Priority of process, process group, or user.
|
|
Which : selects what kind of priority is used.
|
|
can be one of the following predefined Constants :
|
|
Prio_User.
|
|
Prio_PGrp.
|
|
Prio_Process.
|
|
Who : depending on which, this is , respectively :
|
|
Uid
|
|
Pid
|
|
Process Group id
|
|
Errors are reported in linuxerror _only_. (priority can be negative)
|
|
}
|
|
begin
|
|
if (which<prio_process) or (which>prio_user) then
|
|
begin
|
|
{ We can save an interrupt here }
|
|
fpgetpriority:=-1;
|
|
fpsetErrno(ESysEinval);
|
|
end
|
|
else
|
|
fpGetPriority:=do_syscall(syscall_nr_GetPriority,which,who);
|
|
end;
|
|
|
|
Function fpSetPriority(Which,Who,What:cint):cint;
|
|
{
|
|
Set Priority of process, process group, or user.
|
|
Which : selects what kind of priority is used.
|
|
can be one of the following predefined Constants :
|
|
Prio_User.
|
|
Prio_PGrp.
|
|
Prio_Process.
|
|
Who : depending on value of which, this is, respectively :
|
|
Uid
|
|
Pid
|
|
Process Group id
|
|
what : A number between -20 and 20. -20 is most favorable, 20 least.
|
|
0 is the default.
|
|
}
|
|
begin
|
|
if ((which<prio_process) or (which>prio_user)) or ((what<-20) or (what>20)) then
|
|
fpseterrno(ESyseinval) { We can save an interrupt here }
|
|
else
|
|
begin
|
|
fpSetPriority:=do_syscall(Syscall_nr_Setpriority,which,who,what);
|
|
end;
|
|
end;
|
|
|
|
Function fpLstat(path:pchar;Info:pstat):cint;
|
|
{
|
|
Get all information on a link (the link itself), and return it in info.
|
|
}
|
|
|
|
begin
|
|
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(path),TSysParam(info));
|
|
end;
|
|
|
|
Function fpLstat(Filename: PathStr;Info:pstat):cint;
|
|
{
|
|
Get all information on a link (the link itself), and return it in info.
|
|
}
|
|
|
|
begin
|
|
FileName:=FileName+#0;
|
|
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(@filename[1]),TSysParam(info));
|
|
end;
|
|
|
|
Function fpSymlink(oldname,newname:pchar):cint;
|
|
{
|
|
We need this for erase
|
|
}
|
|
|
|
begin
|
|
fpsymlink:=do_syscall(syscall_nr_symlink,TSysParam(oldname),TSysParam(newname));
|
|
end;
|
|
|
|
{
|
|
$Log$
|
|
Revision 1.4 2004-01-01 16:10:23 marco
|
|
* fpreadlink(pathstr) moved to unxovl (since not platform specific),
|
|
small fixes for "make all OPT='-dFPC_USE_LIBC'
|
|
|
|
Revision 1.3 2003/11/13 13:11:55 marco
|
|
* Linuxerror remove + hdr+log added
|
|
|
|
|
|
} |