FPPS4/sys/errno.pas

62 lines
828 B
Plaintext

unit errno;
{$mode ObjFPC}{$H+}
{$CALLING SysV_ABI_CDecl}
interface
{$I sce_errno.inc}
{$I errno.inc}
function px2sce(e:Integer):Integer;
function sce2px(e:Integer):Integer;
function _get_errno:Integer; inline;
function _set_errno(r:Integer):Integer;
function _set_sce_errno(r:Integer):Integer;
implementation
uses
thr_error;
function px2sce(e:Integer):Integer;
begin
if (e=0) then
Result:=0
else
Result:=e-$7ffe0000;
end;
function sce2px(e:Integer):Integer;
begin
if (e=0) then
Result:=0
else
Result:=e+$7ffe0000;
end;
function _get_errno:Integer; inline;
begin
Result:=__error^;
end;
function _set_errno(r:Integer):Integer;
begin
Result:=0;
__error^:=r;
if (r<>0) then
begin
Result:=-1;
end;
end;
function _set_sce_errno(r:Integer):Integer;
begin
__error^:=sce2px(r);
Result:=r;
end;
end.