FPPS4/sys/sys_resource.pas

79 lines
2.0 KiB
Plaintext

unit sys_resource;
{$mode ObjFPC}{$H+}
{$CALLING SysV_ABI_CDecl}
interface
uses
time;
const
RLIMIT_CPU = 0; // maximum cpu time in seconds
RLIMIT_FSIZE = 1; // maximum file size
RLIMIT_DATA = 2; // data size
RLIMIT_STACK = 3; // stack size
RLIMIT_CORE = 4; // core file size
RLIMIT_RSS = 5; // resident set size
RLIMIT_MEMLOCK= 6; // locked-in-memory address space
RLIMIT_NPROC = 7; // number of processes
RLIMIT_NOFILE = 8; // number of open files
RLIMIT_SBSIZE = 9; // maximum size of all socket buffers
RLIMIT_VMEM =10; // virtual process size (incl. mmap)
RLIMIT_AS =RLIMIT_VMEM; // standard name for RLIMIT_VMEM
RLIMIT_NPTS =11; // pseudo-terminals
RLIMIT_SWAP =12; // swap used
RLIM_NLIMITS =13; // number of resource limits
RLIM_INFINITY =(QWORD(1) shl 63)-1;
maxprocperuid =4*1024;
type
p_rlimit=^t_rlimit;
t_rlimit=packed record
rlim_cur:QWORD; //current (soft) limit
rlim_max:QWORD; //maximum value for rlim_cur
end;
const
RUSAGE_SELF = 0;
RUSAGE_CHILDREN=-1;
RUSAGE_THREAD = 1;
type
p_rusage=^t_rusage;
t_rusage=packed record
ru_utime :timeval; // user time used
ru_stime :timeval; // system time used
ru_maxrss :QWORD; // max resident set size
ru_ixrss :QWORD; // integral shared memory size *
ru_idrss :QWORD; // integral unshared data
ru_isrss :QWORD; // integral unshared stack
ru_minflt :QWORD; // page reclaims
ru_majflt :QWORD; // page faults
ru_nswap :QWORD; // swaps
ru_inblock :QWORD; // block input operations
ru_oublock :QWORD; // block output operations
ru_msgsnd :QWORD; // messages sent
ru_msgrcv :QWORD; // messages received
ru_nsignals:QWORD; // signals received
ru_nvcsw :QWORD; // voluntary context switches
ru_nivcsw :QWORD; // involuntary
end;
{$IF sizeof(t_rusage)<>144}{$STOP sizeof(t_rusage)<>144}{$ENDIF}
const
//Process priority specifications to get/setpriority.
PRIO_MIN=-20;
PRIO_MAX= 20;
PRIO_PROCESS=0;
PRIO_PGRP =1;
PRIO_USER =2;
implementation
end.