mirror of https://github.com/red-prig/fpPS4.git
72 lines
1.2 KiB
Plaintext
72 lines
1.2 KiB
Plaintext
unit rtprio;
|
|
|
|
{$mode ObjFPC}{$H+}
|
|
{$CALLING SysV_ABI_CDecl}
|
|
|
|
interface
|
|
|
|
uses
|
|
kern_thr;
|
|
|
|
const
|
|
PRI_ITHD =1; // Interrupt thread.
|
|
PRI_REALTIME =2; // Real time process.
|
|
PRI_TIMESHARE=3; // Time sharing process.
|
|
PRI_IDLE =4; // Idle process.
|
|
PRI_FIFO_BIT =8;
|
|
PRI_FIFO =10;
|
|
|
|
PRI_MIN=0;
|
|
PRI_MAX=960;
|
|
|
|
PRI_MIN_TIMESHARE=256;
|
|
PRI_MAX_TIMESHARE=767;
|
|
|
|
PUSER=700;
|
|
|
|
PRI_MIN_REALTIME=48;
|
|
PRI_MAX_REALTIME=767;
|
|
|
|
PRI_USER =-2; // Change to current user priority.
|
|
PRI_UNCHANGED=-1; // Do not change priority.
|
|
|
|
RTP_PRIO_REALTIME =PRI_REALTIME;
|
|
RTP_PRIO_NORMAL =PRI_TIMESHARE;
|
|
RTP_PRIO_IDLE =PRI_IDLE;
|
|
RTP_PRIO_FIFO =PRI_FIFO;
|
|
|
|
RTP_PRIO_MIN=PRI_MIN;
|
|
RTP_PRIO_MAX=PRI_MAX;
|
|
|
|
RTP_LOOKUP=0;
|
|
RTP_SET =1;
|
|
|
|
type
|
|
p_rtprio=^t_rtprio;
|
|
t_rtprio=packed record
|
|
_type:Word;
|
|
_prio:Word;
|
|
end;
|
|
{$IF sizeof(t_rtprio)<>4}{$STOP sizeof(t_rtprio)<>4}{$ENDIF}
|
|
|
|
function PRI_BASE(P:Word):Word;
|
|
function RTP_PRIO_BASE(P:Word):Word;
|
|
|
|
function rtp_to_pri(rtp:p_rtprio;td:p_kthread):Integer; external;
|
|
procedure pri_to_rtp(td:p_kthread;rtp:p_rtprio); external;
|
|
|
|
implementation
|
|
|
|
function PRI_BASE(P:Word):Word;
|
|
begin
|
|
Result:=P and (not PRI_FIFO_BIT);
|
|
end;
|
|
|
|
function RTP_PRIO_BASE(P:Word):Word;
|
|
begin
|
|
Result:=P and (not PRI_FIFO_BIT);
|
|
end;
|
|
|
|
end.
|
|
|