mirror of https://github.com/red-prig/fpPS4.git
87 lines
1.7 KiB
Plaintext
87 lines
1.7 KiB
Plaintext
unit kern_named_id;
|
|
|
|
{$mode ObjFPC}{$H+}
|
|
{$CALLING SysV_ABI_CDecl}
|
|
|
|
interface
|
|
|
|
uses
|
|
kern_id;
|
|
|
|
type
|
|
t_id_name=array[0..31] of AnsiChar;
|
|
|
|
p_id_named_desc=^t_id_named_desc;
|
|
t_id_named_desc=packed object
|
|
desc:t_id_desc;
|
|
objt:Integer;
|
|
name:t_id_name;
|
|
end;
|
|
|
|
p_id_desc_table=kern_id.p_id_desc_table;
|
|
t_id_desc_table=kern_id.t_id_desc_table;
|
|
|
|
Procedure id_acqure (d:Pointer);
|
|
Procedure id_release(d:Pointer);
|
|
|
|
procedure id_table_init(t:p_id_desc_table;min:Integer;max:Integer=def_max_key);
|
|
procedure id_table_fini(t:p_id_desc_table);
|
|
|
|
function id_name_new(t:p_id_desc_table;d:Pointer;pKey:PInteger):Boolean;
|
|
function id_name_get(t:p_id_desc_table;Key,objt:Integer):Pointer;
|
|
function id_name_del(t:p_id_desc_table;Key,objt:Integer;old:PPointer):Boolean;
|
|
|
|
implementation
|
|
|
|
type
|
|
t_objt_filter=object
|
|
objt:Integer;
|
|
function filter(d:p_id_desc):Boolean;
|
|
end;
|
|
|
|
function t_objt_filter.filter(d:p_id_desc):Boolean;
|
|
begin
|
|
Result:=(objt=p_id_named_desc(d)^.objt);
|
|
end;
|
|
|
|
Procedure id_acqure(d:Pointer);
|
|
begin
|
|
kern_id.id_acqure(d);
|
|
end;
|
|
|
|
Procedure id_release(d:Pointer);
|
|
begin
|
|
kern_id.id_release(d);
|
|
end;
|
|
|
|
procedure id_table_init(t:p_id_desc_table;min:Integer;max:Integer=def_max_key);
|
|
begin
|
|
kern_id.id_table_init(t,min,max);
|
|
end;
|
|
|
|
procedure id_table_fini(t:p_id_desc_table);
|
|
begin
|
|
kern_id.id_table_fini(t);
|
|
end;
|
|
|
|
function id_name_new(t:p_id_desc_table;d:Pointer;pKey:PInteger):Boolean;
|
|
begin
|
|
Result:=kern_id.id_new(t,d,pKey);
|
|
end;
|
|
|
|
function id_name_get(t:p_id_desc_table;Key,objt:Integer):Pointer;
|
|
begin
|
|
Result:=kern_id.id_get(t,Key,@t_objt_filter(objt).filter);
|
|
end;
|
|
|
|
function id_name_del(t:p_id_desc_table;Key,objt:Integer;old:PPointer):Boolean;
|
|
begin
|
|
Result:=id_del(t,Key,old,@t_objt_filter(objt).filter);
|
|
end;
|
|
|
|
|
|
end.
|
|
|
|
|
|
|