FPPS4/sys/sys_eventvar.pas

57 lines
1.2 KiB
Plaintext

unit sys_eventvar;
{$mode ObjFPC}{$H+}
{$CALLING SysV_ABI_CDecl}
interface
uses
mqueue,
sys_event,
kern_mtx,
vselinfo,
vfiledesc;
const
KQ_NEVENTS = 8; // minimize copy{in,out} calls
KQEXTENT =256; // linear growth by this amount
KQ_SEL =$01;
KQ_SLEEP =$02;
KQ_FLUXWAIT =$04; // waiting for a in flux kn
KQ_ASYNC =$08;
KQ_CLOSING =$10;
KQ_TASKSCHED=$20; // task scheduled
KQ_TASKDRAIN=$40; // waiting for task to drain
type
t_kq_name=array[0..31] of AnsiChar;
pp_kqueue=^p_kqueue;
p_kqueue=^t_kqueue;
t_kqueue=record
kq_lock :mtx;
kq_refcnt :Integer;
kq_list :TAILQ_ENTRY; // (kqueue)
kq_head :TAILQ_HEAD; // (knote) list of pending event
kq_count :Integer; // number of pending events
kq_sel :t_selinfo;
//kq_sigio :p_sigio; (sigio)
//kq_fdp :p_filedesc;
kq_state :Integer;
kq_knlistsize:Integer; // size of knlist
kq_knlist :p_klist; // list of knotes
kq_knhashmask:QWORD; // size of knhash
kq_knhash :p_klist; // hash table for knotes
//kq_task:task;
kq_wakeup :t_kqueue_wakeup_cb;
kq_data :Pointer;
kq_name :t_kq_name;
end;
implementation
end.