#ifndef __INC_POS_PROTO_PDOS2_H
#define __INC_POS_PROTO_PDOS2_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>pDOS2.h<<   17 Mar 1997    10:53:42 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PDOS_DOSTYPES_H
#include <pDOS/DosTypes.h>
#endif
#ifndef __INC_POS_PDOS_DOSERRORS_H
#include <pDOS/DosErrors.h>
#endif



#ifdef __cplusplus
extern "C" {
#endif

/*------------------- DOS --------------------------------------*/
__ARID__ APTR pOS_AllocDosObject(_R_D0 ULONG type,_R_D1 ULONG);
VOID pOS_FreeDosObject(_R_D0 ULONG type,_R_A0 __ARID__ APTR);
ULONG pOS_AllocDosProcessNum(_R_D0 ULONG num);
VOID pOS_FreeDosProcessNum(_R_D0 ULONG num);
VOID pOS_LockProcessList(VOID);
VOID pOS_UnlockProcessList(VOID);
struct pOS_DosMountDevice* pOS_CreateDosMount(_R_D0 ULONG type);
VOID pOS_DeleteDosMount(_R_A0 struct pOS_DosMountDevice*);
VOID pOS_LockDosDevList(VOID);
VOID pOS_UnlockDosDevList(VOID);
struct pOS_FileLock* pOS_GetBootLock(VOID);
ULONG pOS_DosString(_R_A0 const CHAR*,_R_A1 CHAR* buf,_R_D0 size_t bufSize,_R_D1 ULONG mode,_R_D2 ULONG escChar);
VOID pOS_LockDosProcess(_R_A0 struct pOS_Process*);
VOID pOS_UnlockDosProcess(_R_A0 struct pOS_Process*);


/*------------------- files --------------------------------------*/
__ARID__ struct pOS_FileHandle* pOS_OpenFile(_R_A0 const struct pOS_FileLock*,
                             _R_A1 const dosname_t*,_R_D0 ULONG);
VOID pOS_CloseFile(_R_A0 __ARID__ struct pOS_FileHandle*);
dossize_t pOS_ReadFile(_R_A0 struct pOS_FileHandle*,_R_A1 APTR,_R_D0 dossize_t);
dossize_t pOS_WriteFile(_R_A0 struct pOS_FileHandle*,_R_A1 const VOID*,_R_D0 dossize_t);
dossize_t pOS_SeekFile(_R_A0 struct pOS_FileHandle*,_R_D0 dospos_t,_R_D1 SLONG mode);
__ARID__ struct pOS_FileHandle* pOS_DupFileHandle(_R_A0 const struct pOS_FileHandle*);
BOOL pOS_IsFileInteractive(_R_A0 struct pOS_FileHandle*);
dossize_t pOS_WaitForChar(_R_A0 struct pOS_FileHandle*,_R_A1 const struct pOS_TimeVal*);
BOOL pOS_SetFileHandleBuf(_R_A0 struct pOS_FileHandle*,_R_A1 UBYTE*,_R_D0 ULONG,_R_D1 dossize_t);
BOOL pOS_FileFlush(_R_A0 struct pOS_FileHandle*);
ULONG pOS_FileGetC(_R_A0 struct pOS_FileHandle*);
UBYTE* pOS_FileGets(_R_A0 struct pOS_FileHandle*,_R_A1 UBYTE*,_R_D0 size_t);
ULONG pOS_FilePutC(_R_A0 struct pOS_FileHandle*,_R_D0 ULONG);
ULONG pOS_FilePuts(_R_A0 struct pOS_FileHandle*,_R_A1 const UBYTE*);
dossize_t pOS_VFWritef(_R_A0 struct pOS_FileHandle*,_R_A1 const CHAR* format,_R_A2 const ULONG* argv);
BOOL pOS_ExamineFH(_R_A0 const struct pOS_FileHandle*,_R_A1 struct pOS_FileInfoBlock*);
ULONG pOS_FileFRead(_R_A0 struct pOS_FileHandle*,_R_A1 APTR,_R_D0 size_t,_R_D1 ULONG);
ULONG pOS_FileFWrite(_R_A0 struct pOS_FileHandle*,_R_A1 const VOID*,_R_D0 size_t,_R_D1 ULONG);
ULONG pOS_FileEOF(_R_A0 struct pOS_FileHandle*);
ULONG pOS_FileUnGetC(_R_A0 struct pOS_FileHandle*,_R_D0 ULONG);
BOOL pOS_ChangeDosFileAccess(_R_A0 struct pOS_FileHandle*,_R_D0 ULONG);
BOOL pOS_SetFileDate(_R_A0 struct pOS_FileHandle*,_R_A1 const struct pOS_DateStamp*);
BOOL pOS_SetFileSize(_R_A0 struct pOS_FileHandle*,_R_A1 dossize_t);
__ARID__ struct pOS_FileHandle* pOS_OpenFileFromLock(_R_A0 struct pOS_FileLock*);
BOOL pOS_NameFromFH(_R_A0 const struct pOS_FileHandle*,_R_A1 dosname_t*,_R_D0 size_t);
BOOL pOS_SetDosScreenMode(_R_A0 struct pOS_FileHandle*,_R_A1 ULONG);
VOID pOS_ConstructDosFH(_R_A0 struct pOS_FileHandle*,_R_A1 struct pOS_DosDevice*,_R_D0 ULONG mode);
VOID pOS_DestructDosFH(_R_A0 struct pOS_FileHandle*);
struct pOS_IOStruct* pOS_OpenFHIOStruct(_R_A0 struct pOS_FileHandle*);
VOID pOS_CloseFHIOStruct(_R_A0 struct pOS_IOStruct*);
struct pOS_IOStruct* pOS_OpenIOStruct(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*,_R_D0 ULONG mode);
VOID pOS_CloseIOStruct(_R_A0 struct pOS_IOStruct*);
BOOL pOS_GetDosInfoDataFH(_R_A0 const struct pOS_FileHandle*,_R_A1 struct pOS_DosInfoData*);


/*------------------- lock --------------------------------------*/
__ARID__ struct pOS_FileLock* pOS_LockObject(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*,_R_D0 ULONG mode);
VOID pOS_UnlockObject(_R_A0 __ARID__ struct pOS_FileLock*);
__ARID__ struct pOS_FileLock* pOS_DupObjectLock(_R_A0 const struct pOS_FileLock*);
struct pOS_FileLock* pOS_ParentObjectDir(_R_A0 const struct pOS_FileLock*);
BOOL pOS_NameFromObjectLock(_R_A0 const struct pOS_FileLock*,_R_A1 dosname_t*,_R_D0 size_t);
BOOL pOS_ExamineObject(_R_A0 const struct pOS_FileLock*,_R_A1 struct pOS_FileInfoBlock*);
BOOL pOS_ExNextObject(_R_A0 const struct pOS_FileLock*,_R_A1 struct pOS_FileInfoBlock*);
BOOL pOS_IsFileSystem(_R_A0 const struct pOS_FileLock*);
__ARID__ struct pOS_FileLock* pOS_CreateDirectory(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*);
BOOL pOS_RenameObject(_R_A0 const struct pOS_FileLock*,_R_A1 struct pOS_FileLock*,_R_A2 const dosname_t*);
BOOL pOS_DeleteObjectLk(_R_A0 __ARID__ struct pOS_FileLock*);
BOOL pOS_IsFileSystemName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* name);
BOOL pOS_DeleteObjectName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* name);
BOOL pOS_SetObjectDate(_R_A0 struct pOS_FileLock*,_R_A1 const struct pOS_DateStamp*);
BOOL pOS_SetObjectSize(_R_A0 struct pOS_FileLock*,_R_D0 dossize_t size);
BOOL pOS_GetDosInfoData(_R_A0 const struct pOS_FileLock*,_R_A1 struct pOS_DosInfoData*);
BOOL pOS_SetObjectComment(_R_A0 struct pOS_FileLock*,_R_A1 const CHAR*);
BOOL pOS_SetObjectProtection(_R_A0 struct pOS_FileLock*,_R_D0 ULONG);
BOOL  pOS_SameDosDevice(_R_A0 const struct pOS_FileLock*,_R_A1 const struct pOS_FileLock*);
ULONG pOS_SameDosObject(_R_A0 const struct pOS_FileLock*,_R_A1 const struct pOS_FileLock*);
BOOL pOS_ChangeDosObjectAccess(_R_A0 struct pOS_FileLock*,_R_D0 ULONG);
VOID pOS_ConstructDosLk(_R_A0 struct pOS_FileLock*,_R_A1 struct pOS_DosDevice*,_R_D0 ULONG mode);
VOID pOS_DestructDosLk(_R_A0 struct pOS_FileLock*);
BOOL pOS_RenameObjectName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* oldname,_R_A2 const dosname_t* newName);
BOOL pOS_SetObjectDateName(_R_A0 struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_A2 const struct pOS_DateStamp* date);
BOOL pOS_SetObjectSizeName(_R_A0 struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_D0 dossize_t size);
BOOL pOS_GetDosInfoDataName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_A2 struct pOS_DosInfoData* data);
BOOL pOS_SetObjectCommentName(_R_A0 struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_A2 const CHAR* string);
BOOL pOS_SetObjectProtectionName(_R_A0 struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_D0 ULONG bits);
BOOL pOS_ExamineObjectName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* name,_R_A2 struct pOS_FileInfoBlock* fib);
BOOL pOS_CopyObjectName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* oldName,
                        _R_A2 const dosname_t* newName,_R_D0 ULONG mode);
BOOL pOS_MoveObjectName(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t* oldName,
                        _R_A2 const dosname_t* newName,_R_D0 ULONG mode);
__ARID__ struct pOS_FileLock* pOS_CreatePath(_R_A0 const struct pOS_FileLock* currDir,_R_A1 const dosname_t*);
SLONG pOS_IsInfinite(_R_A0 const struct pOS_FileLock* lk1,_R_A1 const dosname_t* name1,
                     _R_A2 const struct pOS_FileLock* lk2,_R_A3 const dosname_t* name2);



/*------------------- path --------------------------------------*/
BOOL pOS_AddPart(_R_A0 dosname_t*,_R_A1 const dosname_t*,_R_D0 size_t);
dosname_t* pOS_PathPart(_R_A0 const dosname_t*);
dosname_t* pOS_FilePart(_R_A0 const dosname_t*);
size_t pOS_SplitName(_R_A0 const dosname_t*,_R_D0 ULONG,
                     _R_A1 dosname_t*,_R_D1 size_t,_R_D2 size_t size);


/*------------------- process --------------------------------------*/
SLONG pOS_SetIoErr(_R_D0 SLONG);
SLONG pOS_GetIoErr(VOID);
VOID pOS_ExitProcess(_R_D0 ULONG);
struct pOS_FileHandle* pOS_GetStdInput(VOID);
struct pOS_FileHandle* pOS_GetStdOutput(VOID);
struct pOS_FileHandle* pOS_GetStdErrOutput(VOID);
__ARID__ struct pOS_FileHandle* pOS_SetConsoleFH(_R_A0 __ARID__ struct pOS_FileHandle*);
__ARID__ struct pOS_FileLock* pOS_SetProgDir(_R_A0 __ARID__ struct pOS_FileLock*);
VOID pOS_ConstructProcess(_R_A0 struct pOS_Process*);
VOID pOS_DosDelay(_R_D0 ULONG ticks);
struct pOS_Process *pOS_CreateProcessA(_R_A0 const struct pOS_TagItem*);
SLONG pOS_RunCommand(_R_A0 struct pOS_SegmentLst*,_R_D0 size_t stackSize,
                     _R_A1 struct pOS_FileHandle* cin,_R_A2 struct pOS_FileHandle* cout,
                     _R_A3 struct pOS_FileHandle* cerr,_R_A4 const CHAR* line);
struct pOS_FileLock* pOS_GetProgDir(VOID);
VOID pOS_DestructProcess(_R_A0 struct pOS_Process*);
ULONG pOS_SetShellFail(_R_D0 ULONG err);
VOID pOS_DeleteProcess(_R_A0 __ARID__ struct pOS_Process*,_R_A1 struct pOS_Task* sigTask,_R_D0 ULONG signalSet);
struct pOS_FileHandle* pOS_SetStdInput(_R_A0 struct pOS_FileHandle*);
struct pOS_FileHandle* pOS_SetStdOutput(_R_A0 struct pOS_FileHandle*);
struct pOS_FileHandle* pOS_SetStdErrOutput(_R_A0 struct pOS_FileHandle*);


/*------------------- System --------------------------------------*/
SLONG pOS_SystemA(_R_A0 const CHAR*,_R_A1 const struct pOS_TagItem*);


/*------------------- segment --------------------------------------*/
BOOL pOS_AddSegment(_R_A0 struct pOS_SegmentLst*);
BOOL pOS_RemSegment(_R_A0 struct pOS_SegmentLst*);
__ARID__ struct pOS_SegmentLst *pOS_OpenSegment(_R_A0 const CHAR*,_R_D0 ULONG mode);
VOID pOS_CloseSegment(_R_A0 __ARID__ struct pOS_SegmentLst*);
__ARID__ struct pOS_SegmentLst *pOS_LoadSegmentA(_R_A0 const dosname_t*,_R_A1 const struct pOS_TagItem*);
VOID pOS_UnloadSegment(_R_A0 __ARID__ struct pOS_SegmentLst*);
BOOL pOS_InternalLoadSegment(_R_A0 struct pOS_ISegmentData*);
BOOL pOS_InternalUnloadSegment(_R_A0 struct pOS_ISegmentData*);
BOOL pOS_GetSegmentPtrInfo(_R_A0 const struct pOS_SegmentLst*,_R_A1 const struct pOS_Segment*,
                           _R_A2 const VOID* ptr,_R_A3 struct pOS_SegmentInfo*);


/*------------------- DosDevice --------------------------------------*/
struct pOS_Process* pOS_InitDosIOReq(_R_A0 const struct pOS_DosDevice*,_R_A1 struct pOS_DosIOReq*);
VOID pOS_InitDosDevice(_R_A0 struct pOS_DosDevice*);
VOID pOS_AddDosDevice(_R_A0 struct pOS_DosDevice*);
VOID pOS_RemDosDevice(_R_A0 struct pOS_DosDevice*);
BOOL pOS_OpenDosDevice(_R_A0 struct pOS_DosDevPathInfo*);
VOID pOS_CloseDosDevice(_R_A0 struct pOS_DosDevPathInfo*);
VOID pOS_AddDosDefDevice(_R_A0 struct pOS_DosDefDevice*);
VOID pOS_RemDosDefDevice(_R_A0 struct pOS_DosDefDevice*);
struct pOS_DosDevice* pOS_CreateDosAssign(_R_A0 const CHAR* assignName,
                                   _R_A1 __ARID__ struct pOS_FileLock*,_R_A2 const dosname_t*,_R_D0 ULONG);
struct pOS_DosDevice* pOS_CreateDOSTemplate(_R_A0 const CHAR*);
struct pOS_DosDevice* pOS_CreateDOSVolumeA(_R_A0 struct pOS_DosDevice*,
              _R_A1 const CHAR*,_R_A2 const struct pOS_DateStamp*,_R_A3 const struct pOS_TagItem*);
struct pOS_DosDevice* pOS_OpenDOSVolumeA(_R_A0 struct pOS_DosDevice*,
              _R_A1 const CHAR*,_R_A2 const struct pOS_DateStamp*,_R_A3 const struct pOS_TagItem*);
VOID pOS_CloseDOSVolume(_R_A0 struct pOS_DosDevice*);
struct pOS_DosDevice* pOS_GetDosDevice(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*);
struct pOS_DosDevice* pOS_GetDosHandler(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*);
dossize_t pOS_AddDosDeviceBuffers(_R_A0 struct pOS_DosDevice*,_R_D0 SLONG);
BOOL pOS_InhibitDosDevice(_R_A0 struct pOS_DosDevice*,_R_D0 ULONG);
BOOL pOS_RelabelDosDevice(_R_A0 struct pOS_DosDevice*,_R_A1 const CHAR*);
struct pOS_DosDevice* pOS_GetDosDeviceName(_R_A0 const CHAR* name,_R_D0 ULONG type);
struct pOS_DosMountDevice* pOS_GetDosMountName(_R_A0 const CHAR* name);
struct pOS_DosDevice* pOS_CreateDosDevFromMount(_R_A0 const struct pOS_DosMountDevice*);
BOOL pOS_DeleteDosAssign(_R_A0 const CHAR*,_R_A1 const struct pOS_FileLock*,_R_D0 ULONG);
BOOL pOS_AddDosAssign(_R_A0 const CHAR*,_R_A1 __ARID__ struct pOS_FileLock*,_R_D0 ULONG);
BOOL pOS_GetNextDosDevice(_R_A0 struct pOS_DosDevPathInfo*);



/*------------------- DosArgs --------------------------------------*/
__ARID__ struct pOS_DosArgs* pOS_CreateDosArgs(VOID);
VOID pOS_DeleteDosArgs(_R_A0 __ARID__ struct pOS_DosArgs*);
const CHAR *pOS_CreateDosTokenString(_R_A0 struct pOS_DosArgs*,_R_A1 const CHAR*);
SLONG pOS_CreateDosTokenList(_R_A0 struct pOS_DosArgs*);
SLONG pOS_InterpretDosTokenList(_R_A0 struct pOS_DosArgs*);
__ARID__ struct pOS_DosArgs* pOS_ReadDosArgsA(_R_A0 const CHAR*,_R_A1 ULONG*,_R_D0 size_t areaNum,_R_A2 const struct pOS_TagItem*);
VOID pOS_PrintDosArgList(_R_A0 struct pOS_DosArgs*);
const struct pOS_DosToken* pOS_DosFindToken(_R_A0 const CHAR*);
BOOL pOS_WriteDosArgsA(_R_A0 const CHAR* temp,_R_A1 ULONG* area,_R_D0 size_t areaNum,
                       _R_A2 const struct pOS_DosArgs*,_R_A3 const struct pOS_TagItem*);



/*------------------- Parsing -----------------------------*/
__ARID__ struct pOS_Parse *pOS_CreateParse(_R_A0 struct pOS_ParseObject** stLow,_R_A1 struct pOS_ParseObject** stUpp);
VOID pOS_DeleteParse(_R_A0 __ARID__ struct pOS_Parse*);
VOID pOS_ConstructParse(_R_A0 struct pOS_Parse*);
VOID pOS_DestructParse(_R_A0 struct pOS_Parse*);
struct pOS_ParseObject *pOS_Parsing(_R_A0 struct pOS_Parse*,_R_D0 ULONG priLevel);



/*------------------- Pattern -----------------------------*/
VOID pOS_ConstructPattern(_R_A0 struct pOS_PatternMatching*);
VOID pOS_DestructPattern(_R_A0 struct pOS_PatternMatching*);
BOOL pOS_ParsePatternA(_R_A0 struct pOS_PatternMatching*,_R_A1 const CHAR*,_R_A2 const struct pOS_TagItem*);
BOOL pOS_MatchPattern(_R_A0 __CONST__ struct pOS_PatternObj* area[],_R_A1 const CHAR*);


/*------------------- AnchorPath -----------------------------*/
SLONG pOS_PathMatchFirst(_R_A0 const struct pOS_FileLock*,_R_A1 const dosname_t*,
                       _R_A2 struct pOS_AnchorPath* ap,_R_A3 const CHAR*,_R_D0 ULONG);
VOID pOS_PathMatchEnd(_R_A0 struct pOS_AnchorPath*);
SLONG pOS_PathMatchNext(_R_A0 struct pOS_AnchorPath*);



/*------------------- DosSig --------------------------------------*/
ULONG pOS_DosCheckSignal(_R_D0 ULONG signalMask);

/*------------------- Date ----------------------------------------*/
struct pOS_DateStamp* pOS_GetDateStamp(_R_A0 struct pOS_DateStamp*);
SWORD pOS_CompareDates(_R_A0 const struct pOS_DateStamp*,_R_A1 const struct pOS_DateStamp*);

/*------------------- DateTime -------------------------------------*/
BOOL pOS_DateToStr(_R_A0 struct pOS_DateTime*);
BOOL pOS_StrToDate(_R_A0 struct pOS_DateTime*);

/*------------------- Var -------------------------------------*/
ULONG pOS_GetVar(_R_A0 const CHAR*,_R_A1 UBYTE*,_R_D0 size_t,_R_D1 ULONG flags,_R_A2 struct pOS_Process*);
struct pOS_LocalVar* pOS_FindVar(_R_A0 const CHAR*,_R_D0 ULONG flags,_R_A1 struct pOS_Process*);
BOOL pOS_SetVar(_R_A0 const CHAR*,_R_A1 const UBYTE*,_R_D0 size_t,_R_D1 ULONG flags,_R_A2 struct pOS_Process*);
BOOL pOS_DeleteVar(_R_A0 const CHAR*,_R_D0 ULONG flags,_R_A1 struct pOS_Process*);
BOOL pOS_SetVarLoc(_R_A0 struct pOS_LocalVar*,_R_A1 const UBYTE*,_R_D0 size_t);
BOOL pOS_CloneVars(_R_A0 const struct pOS_ExList*,_R_A1 struct pOS_ExList*,
                   _R_A2 struct pOS_MemPool*,_R_D0 ULONG flags);



/*------------------- pWhy --------------------------------------*/
const CHAR* pOS_GetDosErrText(_R_D0 SLONG err);
BOOL pOS_PrintDosErr(_R_A0 struct pOS_FileHandle*,_R_A1 const CHAR* str,_R_D0 ULONG error);


/*------------------- CD --------------------------------------*/
__ARID__ struct pOS_FileLock* pOS_SetCurrentDirLock(_R_A0 __ARID__ struct pOS_FileLock* lk);
BOOL pOS_SetCurrentDirName(_R_A0 const dosname_t* name);
BOOL pOS_GetCurrentDirName(_R_A0 dosname_t*,_R_D0 size_t);



/*------------------- Notify --------------------------------------*/
VOID pOS_ConstructDosMsgNotify(_R_A0 struct pOS_DosNotifyReq*,
                               _R_A1 const dosname_t*,_R_D0 ULONG,_R_A2 struct pOS_MsgPort*);
VOID pOS_ConstructDosSigNotify(_R_A0 struct pOS_DosNotifyReq*,
                               _R_A1 const dosname_t*,_R_D0 ULONG,_R_A2 struct pOS_Task*,_R_D1 ULONG);
VOID pOS_DestructDosNotify(_R_A0 struct pOS_DosNotifyReq*);
BOOL pOS_DosStartNotify(_R_A0 struct pOS_DosNotifyReq*);
VOID pOS_DosEndNotify(_R_A0 struct pOS_DosNotifyReq*);


/*------------------- Report --------------------------------------*/
BOOL pOS_DosErrorReportA(_R_D0 ULONG errCode,_R_A0 const struct pOS_TagItem*);



/*------------------- Mount --------------------------------------*/
UWORD pOS_MountDosDevice(_R_A0 const CHAR* devName,
                         _R_A1 const dosname_t* fileName,_R_A2 const CHAR* args);



/*------------------- Shell --------------------------------------*/
VOID pOS_ConstructShell(_R_A0 struct pOS_Shell*);
VOID pOS_DestructShell(_R_A0 struct pOS_Shell*);
VOID pOS_ConstructShellScript(_R_A0 struct pOS_ShellScript*);
VOID pOS_DestructShellScript(_R_A0 struct pOS_Shell*,_R_A1 struct pOS_ShellScript*);
BOOL pOS_SetPrompt(_R_A0 const CHAR*);
BOOL pOS_GetPrompt(_R_A0 CHAR*,_R_D0 size_t);
CHAR* pOS_DosGetAliasComm(_R_A0 const CHAR*,_R_A1 CHAR* buf,_R_D0 size_t bufSize);
CHAR* pOS_DosGetResString1(_R_A0 const CHAR*,_R_A1 CHAR* buf,_R_D0 size_t bufSize,_R_A2 struct pOS_Shell*);
BOOL pOS_CloneProcessPath(_R_A0 const struct pOS_Process* src,_R_A1 struct pOS_Process* dst);
BOOL pOS_SetProgramName(_R_A0 const CHAR* name);
BOOL pOS_GetProgramName(_R_A0 CHAR*,_R_D0 size_t bufSize);
__ARID__ const struct pOS_ExList* pOS_LockShellPathList(VOID);
VOID pOS_UnlockShellPathList(_R_A0 __ARID__ const struct pOS_ExList* pathList);





struct pOS_Process *pOS_CreateProcess(ULONG tag,...);
SLONG pOS_System(_R_A0 const CHAR*,ULONG tag,...);
__ARID__ struct pOS_SegmentLst *pOS_LoadSegment(_R_A0 const dosname_t*,ULONG tag,...);
__ARID__ struct pOS_DosArgs* pOS_ReadDosArgs(_R_A0 const CHAR*,_R_A1 ULONG*,_R_D0 size_t areaNum,ULONG tag,...);
BOOL pOS_ParsePattern(_R_A0 struct pOS_PatternMatching*,_R_A1 const CHAR*,ULONG tag,...);
BOOL pOS_DosErrorReport(_R_D0 ULONG errCode,ULONG tag,...);
BOOL pOS_WriteDosArgs(_R_A0 const CHAR* temp,_R_A1 ULONG* area,_R_D0 size_t areaNum,
                       _R_A2 const struct pOS_DosArgs*,ULONG tag,...);



#ifdef __cplusplus
}
#endif

#endif
