From 539ea53babd8f10c5e1b2a2404bf2e2639a6ceeb Mon Sep 17 00:00:00 2001 From: nickysn Date: Wed, 23 Jun 2021 00:20:48 +0000 Subject: [PATCH] + implemented Do_Seek and Do_Seekend for the WASI target git-svn-id: trunk@49531 - --- rtl/wasi/sysfile.inc | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/rtl/wasi/sysfile.inc b/rtl/wasi/sysfile.inc index c73620e116..8419062421 100644 --- a/rtl/wasi/sysfile.inc +++ b/rtl/wasi/sysfile.inc @@ -123,13 +123,33 @@ begin end; procedure Do_Seek(Handle:thandle;Pos:Int64); +var + res: __wasi_errno_t; + newoffset: __wasi_filesize_t; begin - DebugWriteLn('Do_Seek'); + res:=__wasi_fd_seek(Handle,Pos,__WASI_WHENCE_SET,@newoffset); + if res=__WASI_ERRNO_SUCCESS then + InOutRes:=0 + else + InOutRes:=Errno2InoutRes(res); end; function Do_Seekend(Handle:thandle):Int64; +var + res: __wasi_errno_t; + newoffset: __wasi_filesize_t; begin - DebugWriteLn('Do_Seekend'); + res:=__wasi_fd_seek(Handle,0,__WASI_WHENCE_END,@newoffset); + if res=__WASI_ERRNO_SUCCESS then + begin + InOutRes:=0; + Do_Seekend:=newoffset; + end + else + begin + InOutRes:=Errno2InoutRes(res); + Do_Seekend:=-1; + end; end; function Do_FileSize(Handle:thandle):Int64;