fpc/rtl/wasi/sysutils.pp
2021-04-17 14:39:54 +00:00

284 lines
6.2 KiB
ObjectPascal

{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2021 by the Free Pascal development team.
Sysutils unit for The WebAssembly System Interface (WASI).
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
{$inline on}
unit sysutils;
interface
{$MODE objfpc}
{$MODESWITCH out}
{ force ansistrings }
{$H+}
{$modeswitch typehelpers}
{$modeswitch advancedrecords}
uses
wasiapi;
{$DEFINE HAS_SLEEP}
{ used OS file system APIs use ansistring }
{$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
{ OS has an ansistring/single byte environment variable API }
{$define SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL}
{ Include platform independent interface part }
{$i sysutilh.inc}
implementation
uses
sysconst;
{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
{$DEFINE FPC_FEXPAND_DRIVES} (* Full paths begin with drive specification *)
{$DEFINE HAS_LOCALTIMEZONEOFFSET}
{$DEFINE executeprocuni} (* Only 1 byte version of ExecuteProcess is provided by the OS *)
{ Include platform independent implementation part }
{$i sysutils.inc}
{****************************************************************************
File Functions
****************************************************************************}
Function FileOpen (Const FileName : RawByteString; Mode : Integer) : THandle;
Begin
end;
Function FileCreate (Const FileName : RawByteString) : THandle;
begin
end;
Function FileCreate (Const FileName : RawByteString; ShareMode:integer; Rights : integer) : THandle;
begin
end;
Function FileCreate (Const FileName : RawByteString; Rights:integer) : THandle;
begin
end;
Function FileRead (Handle : THandle; Out Buffer; Count : longint) : Longint;
begin
end;
Function FileWrite (Handle : THandle; const Buffer; Count : Longint) : Longint;
begin
end;
Function FileSeek (Handle : THandle; FOffset, Origin : Longint) : Longint;
begin
end;
Function FileSeek (Handle : THandle; FOffset: Int64; Origin: {Integer}Longint) : Int64;
begin
end;
Procedure FileClose (Handle : THandle);
begin
end;
Function FileTruncate (Handle: THandle; Size: Int64) : boolean;
begin
end;
Function FileAge (Const FileName : RawByteString): Int64;
begin
end;
function FileGetSymLinkTarget(const FileName: RawByteString; out SymLinkRec: TRawbyteSymLinkRec): Boolean;
begin
Result := False;
end;
function FileExists (const FileName: RawByteString; FollowLink : Boolean): boolean;
begin
end;
Function DirectoryExists (Const Directory : RawByteString; FollowLink : Boolean) : Boolean;
begin
end;
Function InternalFindFirst (Const Path : RawByteString; Attr : Longint; out Rslt : TAbstractSearchRec; var Name: RawByteString) : Longint;
begin
end;
Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : RawByteString) : Longint;
begin
end;
Procedure InternalFindClose(var Handle: THandle);
begin
end;
Function FileGetDate (Handle : THandle) : Int64;
begin
end;
Function FileSetDate (Handle : THandle; Age : Int64) : Longint;
begin
end;
Function FileGetAttr (Const FileName : RawByteString) : Longint;
begin
end;
Function FileSetAttr (Const Filename : RawByteString; Attr: longint) : Longint;
begin
end;
Function DeleteFile (Const FileName : RawByteString) : Boolean;
begin
end;
Function RenameFile (Const OldName, NewName : RawByteString) : Boolean;
begin
end;
{****************************************************************************
Disk Functions
****************************************************************************}
function diskfree(drive : byte) : int64;
begin
end;
function disksize(drive : byte) : int64;
begin
end;
{****************************************************************************
Time Functions
****************************************************************************}
{$I tzenv.inc}
Procedure GetLocalTime(var SystemTime: TSystemTime);
begin
end ;
{****************************************************************************
Misc Functions
****************************************************************************}
procedure sysBeep;
begin
end;
{****************************************************************************
Locale Functions
****************************************************************************}
procedure InitAnsi;
begin
end;
Procedure InitInternational;
begin
InitInternationalGeneric;
InitAnsi;
end;
function SysErrorMessage(ErrorCode: Integer): String;
begin
Result:=Format(SUnknownErrorCode,[ErrorCode]);
end;
{****************************************************************************
Os utils
****************************************************************************}
Function GetEnvironmentVariable(Const EnvVar : String) : String;
begin
end;
Function GetEnvironmentVariableCount : Integer;
begin
end;
Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
begin
end;
function ExecuteProcess(Const Path: RawByteString; Const ComLine: RawByteString;Flags:TExecuteFlags=[]):integer;
begin
end;
function ExecuteProcess (const Path: RawByteString;
const ComLine: array of RawByteString;Flags:TExecuteFlags=[]): integer;
begin
end;
{*************************************************************************
Sleep
*************************************************************************}
procedure Sleep (MilliSeconds: Cardinal);
begin
end;
{****************************************************************************
Initialization code
****************************************************************************}
Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
OnBeep:=@SysBeep;
InitTZ;
Finalization
FreeTerminateProcs;
DoneExceptions;
end.