FPPS4/sys/sys_cpuset.pas

47 lines
958 B
Plaintext

unit sys_cpuset;
{$mode ObjFPC}{$H+}
{$CALLING SysV_ABI_CDecl}
interface
uses
trap,
kern_cpuset;
type
p_cpuset_t=kern_cpuset.p_cpuset_t;
cpuset_t =kern_cpuset.cpuset_t;
const
CPU_LEVEL_WHICH =3; // Actual mask/id for which.
CPU_WHICH_TID =1; // Specifies a thread id.
CPU_WHICH_PID =2; // Specifies a process id.
function cpuset_getaffinity(level,which:Integer;id,cpusetsize:QWORD;mask:p_cpuset_t):Integer;
function cpuset_setaffinity(level,which:Integer;id,cpusetsize:QWORD;mask:p_cpuset_t):Integer;
implementation
uses
thr_error;
function cpuset_getaffinity(level,which:Integer;id,cpusetsize:QWORD;mask:p_cpuset_t):Integer; assembler; nostackframe;
asm
movq sys_cpuset_getaffinity,%rax
call fast_syscall
jmp cerror
end;
function cpuset_setaffinity(level,which:Integer;id,cpusetsize:QWORD;mask:p_cpuset_t):Integer; assembler; nostackframe;
asm
movq sys_cpuset_setaffinity,%rax
call fast_syscall
jmp cerror
end;
end.