+ misising part of r30759 (commit of sysstrh.inc shouldn't have gone in r30759):

slightly modified patch by lelekx to implement plugable file routines for the embedded target, resolves issue #22918

git-svn-id: trunk@30764 -
This commit is contained in:
florian 2015-05-02 13:51:32 +00:00
parent f2a5672355
commit 8ee9550d22

View File

@ -24,57 +24,92 @@
{ close a file from the handle value }
procedure do_close(handle : longint);
begin
end;
procedure do_erase(p : pchar; pchangeable: boolean);
begin
if assigned (@rtl_do_erase) then
rtl_do_erase(p);
end;
procedure do_rename(p1,p2 : pchar; p1changeable, p2changeable: boolean);
begin
if assigned (@rtl_do_rename) then
rtl_do_rename(p1, p2);
end;
function do_write(h: longint; addr: pointer; len: longint) : longint;
begin
result := -1;
if assigned (rtl_do_write) then
result := rtl_do_write(h, addr, len)
else
result := -1;
end;
function do_read(h: longint; addr: pointer; len: longint) : longint;
begin
result := -1;
if assigned (rtl_do_read) then
result := rtl_do_read(h, addr, len)
else
result := -1;
end;
function do_filepos(handle: longint) : longint;
begin
result := -1;
if assigned (rtl_do_filepos) then
result := rtl_do_filepos(handle)
else
result := -1;
end;
procedure do_seek(handle, pos: longint);
begin
if assigned (rtl_do_seek) then
rtl_do_seek(handle, pos);
end;
function do_seekend(handle: longint):longint;
begin
result := -1;
if assigned (rtl_do_seekend) then
result := rtl_do_seekend(handle)
else
result := -1;
end;
function do_filesize(handle : longint) : longint;
begin
result := -1;
if assigned (@rtl_do_filesize) then
result := rtl_do_filesize(handle);
end;
{ truncate at a given position }
procedure do_truncate(handle, pos: longint);
begin
if assigned (@rtl_do_truncate) then
rtl_do_truncate(handle, pos);
end;
procedure do_open(var f;p:PFileTextRecChar;flags:longint; pchangeable: boolean);
begin
if assigned (@rtl_do_open) then
rtl_do_open(f, p, flags);
end;
function do_isdevice(handle: longint): boolean;
begin
result := false;
if assigned (@rtl_do_isdevice) then
result := rtl_do_isdevice(handle);
end;