home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-02-06 | 51.1 KB | 1,665 lines |
- C****************************** Module Header *******************************
- C*
- C* Module Name: BSEDOS.FI
- C*
- C* OS/2 Base Include File
- C*
- C* Copyright (c) 1988, 1989 Microsoft Corporation
- C*
- C****************************************************************************
- C
- * Subcomponents marked with "+" are partially included by default
- *
- * $DEFINE: To include:
- *
- * + INCL_DOSPROCESS Process and thread support
- * INCL_DOSINFOSEG InfoSeg support
- * + INCL_DOSFILEMGR File Management
- * + INCL_DOSMEMMGR Memory Management
- * + INCL_DOSSEMAPHORES Semaphore support
- * + INCL_DOSDATETIME Date/Time and Timer support
- * INCL_DOSMODULEMGR Module manager
- * + INCL_DOSRESOURCES Resource support
- * INCL_DOSNLS National Language Support
- * INCL_DOSSIGNALS Signals
- * INCL_DOSMONITORS Monitors
- * INCL_DOSQUEUES Queues
- * INCL_DOSSESMGR Session Manager Support
- * INCL_DOSDEVICES Device specific, ring 2 support
- * INCL_DOSNMPIPES Named Pipes Support
- * INCL_DOSPROFILE DosProfile API
- *
-
- $DEFINE INCL_DOSINCLUDED
-
- $IF defined(INCL_DOS)
-
- $DEFINE INCL_DOSPROCESS
- $DEFINE INCL_DOSINFOSEG
- $DEFINE INCL_DOSFILEMGR
- $DEFINE INCL_DOSMEMMGR
- $DEFINE INCL_DOSSEMAPHORES
- $DEFINE INCL_DOSDATETIME
- $DEFINE INCL_DOSMODULEMGR
- $DEFINE INCL_DOSRESOURCES
- $DEFINE INCL_DOSNLS
- $DEFINE INCL_DOSSIGNALS
- $DEFINE INCL_DOSMONITORS
- $DEFINE INCL_DOSQUEUES
- $DEFINE INCL_DOSSESMGR
- $DEFINE INCL_DOSDEVICES
- $DEFINE INCL_DOSNMPIPES
- $DEFINE INCL_DOSPROFILE
-
- $ENDIF ! INCL_DOS
-
- $IF defined(INCL_ERRORS)
- $DEFINE INCL_DOSERRORS
- $ENDIF ! INCL_ERRORS
-
- $IF (defined(INCL_DOSPROCESS) .OR. .NOT.defined(INCL_NOCOMMON))
- C
- C ! Process and Thread support
- C
- INTERFACE TO INTEGER*2 FUNCTION DosBeep
- + [ALIAS: 'DOSBEEP']
- + (Frequency [VALUE], ! Hertz (25H-7FFFH)
- + Duration [VALUE]) ! Sound length in ms
-
- INTEGER*2 Frequency, Duration
-
- END
-
- INTERFACE TO SUBROUTINE DosExit
- + [ALIAS: 'DOSEXIT']
- + (ActionCode [VALUE], ! Indicates end subprocess
- + ExitCode [VALUE]) ! Result code for DosCwait
-
- INTEGER*2 ActionCode, ExitCode
-
- END
-
-
- $ENDIF ! common INCL_DOSPROCESS interfaces
-
- $IF defined(INCL_DOSPROCESS) ! INCL_DOSPROCESS interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosCreateThread
- + [ALIAS: 'DOSCREATETHREAD']
- + (FuncAddress [VALUE], ! Address of program
- + ThreadIDWord, ! Address of new thread identifier
- + NewThreadStack) ! Address of stack for new thread
-
- INTEGER*2 FuncAddress*4, ThreadIDWord, NewThreadStack*1(*)
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosResumeThread
- + [ALIAS: 'DOSRESUMETHREAD']
- + (ThreadID [VALUE]) ! Thread id
-
- INTEGER*2 ThreadID
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSuspendThread
- + [ALIAS: 'DOSSUSPENDTHREAD']
- + (ThreadID [VALUE]) ! Thread id
-
- INTEGER*2 ThreadID
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCWait
- + [ALIAS: 'DOSCWAIT']
- + (ActionCode [VALUE], ! Action codes
- + WaitOption [VALUE], ! Wait options
- + Results, ! Address for result code
- + PidWord, ! Loc for process ID
- + ProcessID [VALUE]) ! ProcessID of process to wait for
-
- INTEGER*2 ActionCode, WaitOption, PidWord, ProcessID
-
- STRUCTURE/RESULTCODES/
- INTEGER*2 codeTerminate
- INTEGER*2 codeResult
- END STRUCTURE
- RECORD/RESULTCODES/Results
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSleep
- + [ALIAS: 'DOSSLEEP']
- + (TimeIntrvl [VALUE]) ! Time interval
-
- INTEGER*4 TimeIntrvl
-
- END
-
- INTERFACE TO SUBROUTINE DosEnterCritSec
- + [ALIAS: 'DOSENTERCRITSEC']
-
- END
-
- INTERFACE TO SUBROUTINE DosExitCritSec
- + [ALIAS: 'DOSEXITCRITSEC']
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosExitList
- + [ALIAS: 'DOSEXITLIST']
- + (FnCode [VALUE], ! Function request code
- + RtnAddress [VALUE]) ! Address of routine
-
- INTEGER*2 FnCode, RtnAddress*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosExecPgm
- + [ALIAS: 'DOSEXECPROGRAM']
- + (ObjNameBuf, ! Object name buffer
- + ObjBufLen [VALUE], ! Length of obj. name
- + AsyncTraceFlags [VALUE], ! Execs async, traces
- + ArgPointer, ! Pointer to args
- + EnvPointer, ! Pointer to enviornment
- + RESULTCODES, ! Address of result code
- + PgmPointer) ! Address of filename
-
- INTEGER*2 ObjNameBuf*1(*), ObjBufLen, AsyncTraceFlags,
- + RESULTCODES(2)
- CHARACTER*(*) ArgPointer, EnvPointer, PgmPointer
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetPid
- + [ALIAS: 'DOSGETPID']
- + (PidPointer) ! ProcID structure
-
- STRUCTURE/PIDINFO/
- INTEGER*2 pid
- INTEGER*2 tid
- INTEGER*2 pidParent
- END STRUCTURE
- RECORD/PIDINFO/PidPointer
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetPrty
- + [ALIAS: 'DOSGETPRTY']
- + (Scope [VALUE], ! Thread or process ID
- + Priority, ! Address to put priority
- + ID [VALUE]) ! PID of interest
-
- INTEGER*2 Scope, Priority, ID
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetPrty
- + [ALIAS: 'DOSSETPRTY']
- + (Scope [VALUE], ! Indicate scope of change
- + Class [VALUE], ! Priority class to set
- + Change [VALUE], ! Priority delta to apply
- + ID [VALUE]) ! ID of target
-
- INTEGER*2 Scope, Class, Change, ID
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosKillProcess
- + [ALIAS: 'DOSKILLPROCESS']
- + (ActionCode [VALUE], ! Specifies to terminate
- + ProcessID [VALUE]) ! ID of process to end
-
- INTEGER*2 ActionCode, ProcessID
-
- END
-
- $ENDIF ! INCL_DOSPROCESS interfaces
-
-
- $IF defined(INCL_DOSINFOSEG) ! INCL_DOSINFOSEG interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetInfoSeg
- + [ALIAS: 'DOSGETINFOSEG']
- + (selGlobalSeg, ! Address to place global segment
- + selLocalSeg) ! Address to place local segment
-
- INTEGER*2 selGlobalSeg, selLocalSeg
-
- END
-
- $ENDIF ! INCL_DOSINFOSEG interfaces
-
-
- $IF defined(INCL_DOSFILEMGR) .OR. .NOT. defined(INCL_NOCOMMON)
-
- C ! File manager
-
- INTERFACE TO INTEGER*2 FUNCTION DosOpen
- + [ALIAS: 'DOSOPEN']
- + (FileName, ! File name
- + Handle, ! New file's handle
- + ActionTaken, ! Action taken
- + Size [VALUE], ! Primary alloc size
- + FileAttribute [VALUE], ! File attribute
- + OpenFlag [VALUE], ! Open function type
- + OpenMode [VALUE], ! Open mode of file
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) FileName
- INTEGER*2 Handle, ActionTaken, Size*4, FileAttribute,
- + OpenFlag, OpenMode, Reserved*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosClose
- + [ALIAS: 'DOSCLOSE']
- + (FileHandle [VALUE]) ! File handle
-
- INTEGER*2 FileHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosRead
- + [ALIAS: 'DOSREAD']
- + (FileHandle [VALUE], ! File handle
- + Buffer, ! Buffer address
- + BufferLength [VALUE], ! Length of buffer
- + BytesRead) ! Returned bytes read
-
- INTEGER*2 FileHandle, Buffer*1(*), BufferLength, BytesRead
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosWrite
- + [ALIAS: 'DOSWRITE']
- + (FileHandle [VALUE], ! File handle
- + Buffer, ! Buffer address
- + BufferLength [VALUE], ! Length of buffer
- + BytesWritten) ! Returned bytes written
-
- INTEGER*2 FileHandle, Buffer*1(*), BufferLength, BytesWritten
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosDelete
- + [ALIAS: 'DOSDELETE']
- + (PathName, ! Pathname of file
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) PathName
- INTEGER*4 Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosDupHandle
- + [ALIAS: 'DOSDUPHANDLE']
- + (OldFH [VALUE], ! Existing file handle
- + NewFH) ! New file handle
-
- INTEGER*2 OldFH, NewFH
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQFHandState
- + [ALIAS: 'DOSQFHANDSTATE']
- + (FileHandle [VALUE], ! File handle
- + State) ! Location for state
-
- INTEGER*2 FileHandle, State
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetFHandState
- + [ALIAS: 'DOSSETFHANDSTATE']
- + (FileHandle [VALUE], ! File handle
- + State [VALUE]) ! New state
-
-
- INTEGER*2 FileHandle, State
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQHandType
- + [ALIAS: 'DOSQHANDTYPE']
- + (FileHandle [VALUE], ! File handle
- + HandType, ! Handle type response
- + FlagWord) ! Device descriptor
-
- INTEGER*2 FileHandle, HandType, FlagWord
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosReadAsync
- + [ALIAS: 'DOSREADASYNC']
- + (FileHandle [VALUE], ! File handle
- + RamSemaphore, ! Address of RAM sem.
- + ReturnCode, ! Loc for return code
- + BufferArea, ! Address of buffer
- + BufferLength [VALUE], ! Length of buffer
- + BytesRead) ! Bytes read from buffer
-
- INTEGER*2 FileHandle, RamSemaphore*4, ReturnCode,
- + BufferArea*1(*), BufferLength, BytesRead
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosWriteAsync
- + [ALIAS: 'DOSWRITEASYNC']
- + (FileHandle [VALUE], ! File handle
- + RamSemaphore, ! Address of RAM sem.
- + ReturnCode, ! Loc for return code
- + BufferArea, ! Address of buffer
- + BufferLength [VALUE], ! Length of buffer
- + BytesWritten) ! Bytes written to buffer
-
- INTEGER*2 FileHandle, RamSemaphore*4, ReturnCode,
- + BufferArea*1(*), BufferLength, BytesWritten
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFindFirst
- + [ALIAS: 'DOSFINDFIRST']
- + (FileName, ! File pathname
- + DirHandle, ! Dir search handle
- + Attribute [VALUE], ! Search attribute
- + FindbufPtr, ! Result buffer
- + ResultBufLen [VALUE], ! Result buffer length
- + SearchCount, ! Num. entries to find
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) FileName
- INTEGER*2 DirHandle, Attribute, ResultBufLen,
- + SearchCount, Reserved*4
- STRUCTURE/FILEFINDBUF/
- INTEGER*2 fdateCreation
- INTEGER*2 ftimeCreation
- INTEGER*2 fdateLastAccess
- INTEGER*2 ftimeLastAccess
- INTEGER*2 fdateLastWrite
- INTEGER*2 ftimeLastWrite
- INTEGER*4 cbFile ! End of file data
- INTEGER*4 cbFileAlloc ! File size allocated
- INTEGER*2 attrFile ! File attribute
- INTEGER*1 cchName ! Length of null-terminated name
- CHARACTER*13 achName ! Null-terminated name
- END STRUCTURE
- RECORD/FILEFINDBUF/ FindbufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFindNext
- + [ALIAS: 'DOSFINDNEXT']
- + (DirHandle [VALUE], ! Directory handle
- + FindbufPtr, ! Result buffer
- + ResultBufLen [VALUE], ! Result buffer length
- + SearchCount) ! Num. entries to find
-
- INTEGER*2 DirHandle, ResultBufLen, SearchCount
- STRUCTURE/FILEFINDBUF/
- INTEGER*2 fdateCreation
- INTEGER*2 ftimeCreation
- INTEGER*2 fdateLastAccess
- INTEGER*2 ftimeLastAccess
- INTEGER*2 fdateLastWrite
- INTEGER*2 ftimeLastWrite
- INTEGER*4 cbFile ! End of file data
- INTEGER*4 cbFileAlloc ! File size allocated
- INTEGER*2 attrFile ! File attribute
- INTEGER*1 cchName ! Length of null-terminated name
- CHARACTER*13 achName ! Null-terminated name
- END STRUCTURE
- RECORD/FILEFINDBUF/ FindbufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFindClose
- + [ALIAS: 'DOSFINDCLOSE']
- + (DirHandle [VALUE]) ! Directory handle
-
- INTEGER*2 DirHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosNewSize
- + [ALIAS: 'DOSNEWSIZE']
- + (FileHandle [VALUE], ! File handle
- + Size [VALUE]) ! File's new size
-
- INTEGER*2 FileHandle, Size*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosBufReset
- + [ALIAS: 'DOSBUFRESET']
- + (FileHandle [VALUE]) ! File handle
-
- INTEGER*2 FileHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosChgFilePtr
- + [ALIAS: 'DOSCHGFILEPTR']
- + (FileHandle [VALUE], ! File handle
- + Distance [VALUE], ! Move distance in bytes
- + MoveType [VALUE], ! Method of moving
- + NewPointer) ! New pointer location
-
- INTEGER*2 FileHandle, Distance*4, MoveType, NewPointer*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFileLocks
- + [ALIAS: 'DOSFILELOCKS']
- + (FileHandle [VALUE], ! File handle
- + UnlockRange, ! Unlock range
- + LockRange) ! Lock range
-
- INTEGER*2 FileHandle, UnlockRange*4, LockRange*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMove
- + [ALIAS: 'DOSMOVE']
- + (OldName, ! Old pathname
- + NewName, ! New pathname
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) OldName, NewName
- INTEGER*4 Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMkdir
- + [ALIAS: 'DOSMKDIR']
- + (DirName, ! New directory name
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) DirName
- INTEGER*4 Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosRmdir
- + [ALIAS: 'DOSRMDIR']
- + (DirName, ! Directory to delete
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) DirName
- INTEGER*4 Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSelectDisk
- + [ALIAS: 'DOSSELECTDISK']
- + (DriveNumber [VALUE]) ! Default drive number
-
- INTEGER*2 DriveNumber
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQCurDisk
- + [ALIAS: 'DOSQCURDISK']
- + (DriveNumber, ! Default drive number
- + LogicalDriveMap) ! Drive map area
-
- INTEGER*2 DriveNumber, LogicalDriveMap*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosChDir
- + [ALIAS: 'DOSCHDIR']
- + (DirName, ! Directory path name
- + Reserved [VALUE]) ! Reserved (must be 0)
-
- CHARACTER*(*) DirName
- INTEGER*4 Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQCurDir
- + [ALIAS: 'DOSQCURDIR']
- + ( DriveNumber [VALUE], ! Drive number
- + DirPath, ! Path buffer
- + DirPathLen) ! Path buffer length
-
- INTEGER*2 DriveNumber, DirPathLen
- CHARACTER*(*) DirPath
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQFSInfo
- + [ALIAS: 'DOSQFSINFO']
- + (DriveNumber [VALUE], ! Drive number
- + FSInfoLevel [VALUE], ! Info required
- + FSInfoBufPtr, ! Info buffer
- + FSInfoBufSize [VALUE]) ! Info buffer size
-
- INTEGER*2 DriveNumber, FSInfoLevel, FSInfoBufSize
- STRUCTURE/QFSINFO/
- UNION
- MAP ! used if FSInfoLevel = 1
- INTEGER*4 idFileSystem
- INTEGER*4 cSectorUnit
- INTEGER*4 cUnit
- INTEGER*4 cUnitAvail
- INTEGER*2 cbSector
- END MAP
- MAP ! used if FSInfoLevel = 2
- INTEGER*2 fdateCreation
- INTEGER*2 ftimeCreation
- INTEGER*1 cchName
- CHARACTER*14 achname
- END MAP
- END UNION
- END STRUCTURE
- RECORD/QFSINFO/ FSInfoBufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetFSInfo
- + [ALIAS: 'DOSSETFSINFO']
- + (DriveNumber [VALUE], ! Drive number
- + FSInfoLevel [VALUE], ! Info required
- + FSInfoBufPtr, ! Info buffer
- + FSInfoBufSize [VALUE]) ! Info buffer size
-
- INTEGER*2 DriveNumber, FSInfoLevel, FSInfoBufSize
- STRUCTURE/SETFSINFO/
- INTEGER*1 volid_len
- CHARACTER*13 volid
- END STRUCTURE
- RECORD/SETFSINFO/ FSInfoBufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQVerify
- + [ALIAS: 'DOSQVERIFY']
- + (VerifyMode) ! Verification mode
-
- INTEGER*2 VerifyMode
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetVerify
- + [ALIAS: 'DOSSETVERIFY']
- + (Setting [VALUE]) ! Verify switch value
-
- INTEGER*2 Setting
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetMaxFH
- + [ALIAS: 'DOSSETMAXFH']
- + (Handles [VALUE]) ! Number of file handles
-
- INTEGER*2 Handles
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQFileInfo
- + [ALIAS: 'DOSQFILEINFO']
- + (FileHandle [VALUE], ! File handle
- + FileInfoLevel [VALUE], ! File data required
- + FileInfoBufPtr, ! File data buffer
- + FileInfoBufSize [VALUE]) ! File data buffer size
-
- INTEGER*2 FileHandle, FileInfoLevel, FileInfoBufSize
- STRUCTURE/FILESTATUS/
- INTEGER*2 fdateCreation
- INTEGER*2 ftimeCreation
- INTEGER*2 fdateLastAccess
- INTEGER*2 ftimeLastAccess
- INTEGER*2 fdateLastWrite
- INTEGER*2 ftimeLastWrite
- INTEGER*4 cbFile
- INTEGER*4 cbFileAlloc
- INTEGER*2 attrFile
- END STRUCTURE
- RECORD/FILESTATUS/ FileInfoBufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetFileInfo
- + [ALIAS: 'DOSSETFILEINFO']
- + (FileHandle [VALUE], ! File handle
- + FileInfoLevel [VALUE], ! File data required
- + FileInfoBufPtr, ! File data buffer
- + FileInfoBufSize [VALUE]) ! File data buffer size
-
- INTEGER*2 FileHandle, FileInfoLevel, FileInfoBufSize
- STRUCTURE/FILESTATUS/
- INTEGER*2 fdateCreation
- INTEGER*2 ftimeCreation
- INTEGER*2 fdateLastAccess
- INTEGER*2 ftimeLastAccess
- INTEGER*2 fdateLastWrite
- INTEGER*2 ftimeLastWrite
- INTEGER*4 cbFile
- INTEGER*4 cbFileAlloc
- INTEGER*2 attrFile
- END STRUCTURE
- RECORD/FILESTATUS/ FileInfoBufPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQFileMode
- + [ALIAS: 'DOSQFILEMODE']
- + (FileName, ! Pathname
- + Attribute, ! Data area
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) Filename
- INTEGER*2 Attribute, Reserved*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetFileMode
- + [ALIAS: 'DOSSETFILEMODE']
- + (FileName, ! Pathname
- + Attribute [VALUE], ! New attribute
- + Reserved [VALUE]) ! Reserved (must =0)
-
- CHARACTER*(*) Filename
- INTEGER*2 Attribute, Reserved*4
-
- END
-
- $ENDIF ! common INCL_DOSFILEMGR interfaces
-
-
-
- $IF defined(INCL_MEMMGR) .OR. .NOT. defined(INCL_NOCOMMON)
-
- C ! Memory management
-
- INTERFACE TO INTEGER*2 FUNCTION DosAllocSeg
- + [ALIAS: 'DOSALLOCSEG']
- + (Size [VALUE], ! Number of bytes requested
- + Selector, ! Selector allocated
- + AllocFlags [VALUE]) ! Sharing indicator
-
- INTEGER*2 Size, Selector, AllocFlags
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosReallocSeg
- + [ALIAS: 'DOSREALLOCSEG']
- + (Size [VALUE], ! New segment size in bytes
- + Selector) ! Selector
-
- INTEGER*2 Size, Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFreeSeg
- + [ALIAS: 'DOSFREESEG']
- + (Selector [VALUE]) ! Selector
-
- INTEGER*2 Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGiveSeg
- + [ALIAS: 'DOSGIVESEG']
- + (CallerSegHandle [VALUE], ! Caller's segment handle
- + ProcessID [VALUE], ! Process ID of recipient
- + RecipientSegHandle) ! Recipient's segment handle
-
- INTEGER*2 CallerSegHandle, ProcessID, RecipientSegHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetSeg
- + [ALIAS: 'DOSGETSEG']
- + (Selector [VALUE]) ! Selector to access
-
- INTEGER*2 Selector
-
- END
-
- $ENDIF ! common INCL_DOSMEMMGR interfaces
-
-
- $IF defined(INCL_DOSMEMMGR) ! INCL_DOSMEMMGR interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosAllocHuge
- + [ALIAS: 'DOSALLOCHUGE']
- + (NumSeg [VALUE], ! Number of 64k byte segments
- + Size [VALUE], ! Bytes in last segment
- + Selector, ! Selector allocated (returned)
- + MaxNumSeg [VALUE], ! Max number of 64k-byte segments
- + AllocFlags [VALUE]) ! Specifies segment will be shared
-
- INTEGER*2 Numseg, Size, Selector, MaxNumSeg, AllocFlags
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosReallocHuge
- + [ALIAS: 'DOSREALLOCHUGE']
- + (NumSeg [VALUE], ! Number of 64k byte segments
- + Size [VALUE], ! Bytes in last segment
- + Selector [VALUE]) ! Selector
-
- INTEGER*2 Numseg, Size, Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetHugeShift
- + [ALIAS: 'DOSGETHUGESHIFT']
- + (ShiftCount) ! Shift count
-
- INTEGER*2 ShiftCount
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosAllocShrSeg
- + [ALIAS: 'DOSALLOCSHRSEG']
- + (Size [VALUE], ! Number of bytes requested
- + Name, ! Name string
- + Selector) ! Selector allocated
-
- CHARACTER*(*) Name
- INTEGER*2 Size, Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosLockSeg
- + [ALIAS: 'DOSLOCKSEG']
- + (Selector [VALUE]) ! Selector to access
-
- INTEGER*2 Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosUnLockSeg
- + [ALIAS: 'DOSUNLOCKSEG']
- + (Selector [VALUE]) ! Selector to access
-
- INTEGER*2 Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetShrSeg
- + [ALIAS: 'DOSGETSHRSEG']
- + (Name, ! Name string
- + Selector) ! Selector (returned)
-
- CHARACTER*(*) Name
- INTEGER*2 Selector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMemAvail
- + [ALIAS: 'DOSMEMAVAIL']
- + (MemAvailSize) ! Memory size
-
- INTEGER*4 MemAvailSize
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCreateCSAlias
- + [ALIAS: 'DOSCREATECSALIAS']
- + (DataSelector [VALUE], ! Data segment selector
- + CodeSelector) ! Code segment selector
-
- INTEGER*2 DataSelector, CodeSelector
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSubAlloc
- + [ALIAS: 'DOSSUBALLOC']
- + (SegSelector [VALUE], ! Segment selector
- + BlockOffset, ! Address of block offset
- + Size [VALUE]) ! Size of requested block
-
- INTEGER*2 SegSelector, BlockOffset, Size
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSubFree
- + [ALIAS: 'DOSSUBFREE']
- + (SegSelector [VALUE], ! Segment selector
- + BlockOffset [VALUE], ! Offset of block to free
- + Size [VALUE]) ! Size of block in bytes
-
- INTEGER*2 SegSelector, BlockOffset, Size
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSubSet
- + [ALIAS: 'DOSSUBSET']
- + (SegSelector [VALUE], ! Segment selector
- + Flags [VALUE], ! Parameter flags
- + Size [VALUE]) ! New size of block
-
- INTEGER*2 SegSelector, Flags, Size
-
- END
-
- $ENDIF ! INCL_DOSMEMMGR interfaces
-
-
- $IF defined(INCL_SEMAPHORES) .OR. .NOT. defined(INCL_NOCOMMON)
-
- C ! Semaphore support
-
- INTERFACE TO INTEGER*2 FUNCTION DosSemClear
- + [ALIAS: 'DOSSEMCLEAR']
- + (SemHandle [VALUE]) ! Semaphore handle
-
- INTEGER*4 SemHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSemSet
- + [ALIAS: 'DOSSEMSET']
- + (SemHandle [VALUE]) ! Semaphore handle
-
- INTEGER*4 SemHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSemWait
- + [ALIAS: 'DOSSEMWAIT']
- + (SemHandle [VALUE], ! Semaphore handle
- + Timeout [VALUE]) ! Timeout
-
- INTEGER*4 SemHandle, TimeOut
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSemSetWait
- + [ALIAS: 'DOSSEMSETWAIT']
- + (SemHandle [VALUE], ! Semaphore handle
- + Timeout [VALUE]) ! Timeout
-
- INTEGER*4 SemHandle, TimeOut
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSemRequest
- + [ALIAS: 'DOSSEMREQUEST']
- + (SemHandle [VALUE], ! Semaphore handle
- + Timeout [VALUE]) ! Timeout
-
- INTEGER*4 SemHandle, TimeOut
-
- END
-
- $ENDIF ! common INCL_DOSSEMAPHORES interfaces
-
-
- $IF defined(INCL_DOSSEMAPHORES) ! INCL_DOSSEMAPHORES interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosCreateSem
- + [ALIAS: 'DOSCREATESEM']
- + (NoExclusive [VALUE], ! Exclusive ownership
- + SemHandle, ! Address of semaphore handle
- + SemName) ! Name of semaphore
-
- CHARACTER*(*) SemName
- INTEGER*2 NoExclusive, SemHandle*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosOpenSem
- + [ALIAS: 'DOSOPENSEM']
- + (SemHandle, ! Address of semaphore handle
- + SemName) ! Name of semaphore
-
- CHARACTER*(*) SemName
- INTEGER*4 SemHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCloseSem
- + [ALIAS: 'DOSCLOSESEM']
- + (SemHandle [VALUE]) ! Semaphore handle
-
- INTEGER*4 SemHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMuxSemWait
- + [ALIAS: 'DOSMUXSEMWAIT']
- + (IndexNum, ! Address of index num
- + SemListPtr, ! Address of sem list
- + Timeout [VALUE]) ! Timeout
-
- INTEGER*2 IndexNum, TimeOut*4
- STRUCTURE/MUXSEM/
- INTEGER*2 zero
- INTEGER*2 hsem
- END STRUCTURE
-
- STRUCTURE/MUXSEMLIST/
- INTEGER*2 cmxs
- RECORD/MUXSEM/ amxs(16)
- END STRUCTURE
- RECORD/MUXSEMLIST/ SemListPtr
-
- END
-
- $ENDIF ! INCL_DOSSEMAPHORES interfaces
-
-
- $IF defined(INCL_DOSDATETIME) .OR. .NOT. defined(INCL_NOCOMMON)
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetDateTime
- + [ALIAS: 'DOSGETDATETIME']
- + (DateTimePtr) ! Address of date/time
-
- STRUCTURE/DATETIME/
- INTEGER*1 hours
- INTEGER*1 minutes
- INTEGER*1 seconds
- INTEGER*1 hundredths
- INTEGER*1 day
- INTEGER*1 month
- INTEGER*2 year
- INTEGER*2 timezone
- INTEGER*1 weekday
- END STRUCTURE
- RECORD/DATETIME/ DateTimePtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetDateTime
- + [ALIAS: 'DOSSETDATETIME']
- + (DateTimePtr) ! Address of date/time
-
- STRUCTURE/DATETIME/
- INTEGER*1 hours
- INTEGER*1 minutes
- INTEGER*1 seconds
- INTEGER*1 hundredths
- INTEGER*1 day
- INTEGER*1 month
- INTEGER*2 year
- INTEGER*2 timezone
- INTEGER*1 weekday
- END STRUCTURE
- RECORD/DATETIME/ DateTimePtr
-
- END
-
- $ENDIF ! common INCL_DOSDATETIME interfaces
-
-
- $IF defined(INCL_DOSDATETIME) ! INCL_DOSDATETIME interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosTimerAsync
- + [ALIAS: 'DOSTIMERASYNC']
- + (TimerInterval [VALUE], ! Interval size
- + SemHandle [VALUE], ! Handle of semaphore
- + Handle) ! Handle of timer
-
- INTEGER*2 TimerInterval*4, SemHandle*4, Handle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosTimerStart
- + [ALIAS: 'DOSTIMERSTART']
- + (TimerInterval [VALUE], ! Interval size
- + SemHandle [VALUE], ! Handle of semaphore
- + Handle) ! Handle of timer
-
- INTEGER*2 TimerInterval*4, SemHandle*4, Handle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosTimerStop
- + [ALIAS: 'DOSTIMERSTOP']
- + (Handle [VALUE]) ! Handle of the timer
-
- INTEGER*2 Handle
-
- END
-
- $ENDIF ! INCL_DOSDATETIME interfaces
-
-
- $IF defined(INCL_DOSMODULEMGR) ! INCL_DOSMODULEMGR interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosLoadModule
- + [ALIAS: 'DOSLOADMODULE']
- + (ObjName, ! Object name buffer
- + ObjNameLen [VALUE], ! Length of object name
- + ModuleName, ! Module name string
- + ModuleHandle) ! Module handle
-
- CHARACTER*(*) ModuleName
- INTEGER*2 ObjName*1(*), ObjNameLen, ModuleHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFreeModule
- + [ALIAS: 'DOSFREEMODULE']
- + (ModuleHandle [VALUE]) ! Module handle
-
- INTEGER*2 ModuleHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetProcAddr
- + [ALIAS: 'DOSGETPROCADDR']
- + (ModuleHandle [VALUE], ! Module handle
- + ProcName, ! Module name string
- + ProcAddr) ! Procedure address
-
- CHARACTER*(*) ProcName
- INTEGER*2 ModuleHandle, ProcAddr*4
-
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetModHandle
- + [ALIAS: 'DOSGETMODHANDLE']
- + (ModuleName, ! Module name
- + ModuleHandle) ! Module handle
-
- CHARACTER*(*) ModuleName
- INTEGER*2 ModuleHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetModName
- + [ALIAS: 'DOSGETMODNAME']
- + (ModuleHandle [VALUE], ! Module handle
- + BufferLength [VALUE], ! Maximum buffer length
- + Buffer) ! Buffer (returned)
-
- INTEGER*2 ModuleHandle, BufferLength, Buffer*1(*)
-
- END
-
- $ENDIF ! INCL_DOSMODULEMGR interfaces
-
-
- $IF defined(INCL_DOSRESOURCES) ! INCL_DOSRESOURCES interfaces
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetResource
- + [ALIAS: 'DOSGETRESOURCE']
- + (ModuleHandle [VALUE], ! Module handle
- + TypeID [VALUE], ! Type ID
- + NameID [VALUE], ! Name ID
- + Selector) ! Selector (returned)
-
- INTEGER*2 ModuleHandle, TypeID, NameID, Selector
-
- END
-
- $ENDIF ! INCL_DOSRESOURCES interfaces
-
-
- $IF defined(INCL_DOSNLS) ! INCL_DOSNLS interfaces
-
- C ! NLS Support
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetCtryInfo
- + [ALIAS: 'DOSGETCTRYINFO']
- + (Length [VALUE], ! Data area length
- + CountryCodePtr, ! Country code
- + CountryInfoBuf, ! Country info
- + DataLength) ! Data length
-
- INTEGER*2 Length, DataLength
- STRUCTURE/COUNTRYCODE/
- INTEGER*2 country
- INTEGER*2 codepage
- END STRUCTURE
- RECORD/COUNTRYCODE/ CountryCodePtr
- STRUCTURE/COUNTRYINFO/
- INTEGER*2 country ! country code
- INTEGER*2 codepage ! Reserved value (must =0)
- INTEGER*2 fsDateFmt ! Date format
- CHARACTER*5 szCurrency
- CHARACTER*2 szThousandsSeparator
- CHARACTER*2 szDecimal
- CHARACTER*2 szDateSeparator
- CHARACTER*2 szTimeSeparator
- INTEGER*1 fsCurrencyFmt
- INTEGER*1 cDecimalPlace
- INTEGER*1 fsTimeFmt
- INTEGER*2 abReserved(2) ! Reserved (must =0)
- CHARACTER*2 szDataSeparator
- INTEGER*2 abReserved2(2) ! Reserved (must =0)
- END STRUCTURE
- RECORD/COUNTRYINFO/ CountryInfoBuf
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetDBCSEv
- + [ALIAS: 'DOSGETDBCSEV']
- + (Length [VALUE], ! Data area length
- + CountryCodePtr, ! Country code
- + EnvVector) ! Data area
-
- INTEGER*2 Length, EnvVector*1(*)
- STRUCTURE/COUNTRYCODE/
- INTEGER*2 country
- INTEGER*2 codepage
- END STRUCTURE
- RECORD/COUNTRYCODE/ CountryCodePtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCaseMap
- + [ALIAS: 'DOSCASEMAP']
- + (Length [VALUE], ! String's length
- + CountryCodePtr, ! Country code
- + String) ! String to map
-
- INTEGER*2 Length
- CHARACTER*(*) String
- STRUCTURE/COUNTRYCODE/
- INTEGER*2 country
- INTEGER*2 codepage
- END STRUCTURE
- RECORD/COUNTRYCODE/ CountryCodePtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetCollate
- + [ALIAS: 'DOSGETCOLLATE']
- + (Length [VALUE], ! Data area length
- + CountryCodePtr, ! Country code
- + CollateTable, ! Data area
- + DataLength) ! Table length
-
- INTEGER*2 Length, CollateTable*1(*), DataLength
- STRUCTURE/COUNTRYCODE/
- INTEGER*2 country
- INTEGER*2 codepage
- END STRUCTURE
- RECORD/COUNTRYCODE/ CountryCodePtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetCp
- + [ALIAS: 'DOSGETCP']
- + (Length [VALUE], ! Length of list
- + CodePageList, ! Address of list
- + DataLength) ! Length returned list
-
- INTEGER*2 Length, CodePageList(*), DataLength
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetCp
- + [ALIAS: 'DOSSETCP']
- + (CodePage [VALUE], ! Code page id
- + Reserved [VALUE]) ! Reserved (must =0)
-
- INTEGER*2 CodePage, Reserved
-
- END
-
- $ENDIF ! INCL_DOSNLS interfaces
-
-
- $IF defined(INCL_DOSSIGNALS) ! INCL_DOSSIGNALS interfaces
-
- C ! Signal support
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetSigHandler
- + [ALIAS: 'DOSSETSIGHANDLER']
- + (RoutineAddress [VALUE], ! Signal handler address
- + PrevAddress, ! Address of previous handler
- + PrevAction, ! Address of previous action
- + Action [VALUE], ! Request type
- + SigNumber [VALUE]) ! Signal number
-
- INTEGER*4 RoutineAddress, PrevAddress
- INTEGER*2 PrevAction, Action, SigNumber
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosFlagProcess
- + [ALIAS: 'DOSFLAGPROCESS']
- + (ProcessID [VALUE], ! Process id to flag
- + Action [VALUE], ! Process/subtree
- + FlagNum [VALUE], ! Flag number
- + FlagArg [VALUE]) ! Flag argument
-
- INTEGER*2 ProcessID, Action, FlagNum, FlagArg
-
- ENd
-
- INTERFACE TO INTEGER*2 FUNCTION DosHoldSignal
- + [ALIAS: 'DOSHOLDSIGNAL']
- + (ActionCode [VALUE]) ! Disable/enable signal
-
- INTEGER*2 ActionCode
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSendSignal
- + [ALIAS: 'DOSSENDSIGNAL']
- + (ProcessID [VALUE], ! PID of root of subtree
- + SigNumber [VALUE]) ! Signal to send
-
- INTEGER*2 ProcessID, SigNumber
-
- END
-
- $ENDIF ! INCL_DOSSIGNALS interfaces
-
-
- $IF defined(INCL_DOSMONITORS) ! INCL_DOSMONITORS interfaces
-
- C ! Monitor support
-
- INTERFACE TO INTEGER*2 FUNCTION DosMonOpen
- + [ALIAS: 'DOSMONOPEN']
- + (DevName, ! Address of device name
- + Handle) ! Address of handle return
-
- CHARACTER*(*) DevName
- INTEGER*2 Handle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMonClose
- + [ALIAS: 'DOSMONCLOSE']
- + (Handle [VALUE]) ! Handle from DosMonOpen
-
- INTEGER*2 Handle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMonReg
- + [ALIAS: 'DOSMONREG']
- + (Handle [VALUE], ! Handle from DosMonOpen
- + BUFFERI, ! Monitor input buffer
- + BUFFERO, ! Monitor output buffer
- + PosFlag [VALUE], ! Position flag
- + Index [VALUE]) ! Index
-
- INTEGER*2 Handle, BUFFERI(*), BUFFERO(*), PosFlag, Index
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMonRead
- + [ALIAS: 'DOSMONREAD']
- + (BUFFERI, ! Monitor input buffer
- + WaitFlag [VALUE], ! Block/Run indicator
- + DataBuffer, ! Buffer into which records are read
- + ByteCnt) ! Size of buffer, number of bytes copied
-
- INTEGER*2 BUFFERI(*), WaitFlag, DataBuffer*1(*), ByteCnt
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosMonWrite
- + [ALIAS: 'DOSMONWRITE']
- + (BUFFERO, ! Monitor output buffer
- + DataBuffer, ! Buffer from which records are taken
- + ByteCnt) ! Number of bytes of data records
-
- INTEGER*2 BUFFERO(*), DataBuffer*1(*), ByteCnt
-
- END
-
- $ENDIF ! INCL_DOSMONITORS interfaces
-
-
- $IF defined(INCL_DOSQUEUES) ! INCL_DOSQUEUES interfaces
-
- C ! Pipe and queue support
-
- INTERFACE TO INTEGER*2 FUNCTION DosMakePipe
- + [ALIAS: 'DOSMAKEPIPE']
- + (ReadHandle, ! Address read handle
- + WriteHandle, ! Address write handle
- + PipeSize [VALUE]) ! Size to reserve for pipe
-
- INTEGER*2 ReadHandle, WriteHandle, PipeSize
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCloseQueue
- + [ALIAS: 'DOSCLOSEQUEUE']
- + (QueueHandle [VALUE]) ! Queue handle
-
- INTEGER*2 QueueHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCreateQueue
- + [ALIAS: 'DOSCREATEQUEUE']
- + (QueueHandle, ! Queue handle
- + QueuePrty [VALUE], ! Queue priority
- + QueueName) ! Queue name
-
- INTEGER*2 QueueHandle, QueuePrty
- CHARACTER*(*) QueueName
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosOpenQueue
- + [ALIAS: 'DOSOPENQUEUE']
- + (OwnerPID, ! PID of queue owner
- + QueueHandle, ! Queue handle
- + QueueName) ! Queue name
-
- INTEGER*2 OwnerPID, QueueHandle
- CHARACTER*(*) QueueName
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosPeekQueue
- + [ALIAS: 'DOSPEEKQUEUE']
- + (QueueHandle [VALUE], ! Queue handle
- + REQUEST, ! Requests identification data
- + DataLength, ! Length of element returned
- + DataAddress, ! Address of element received
- + ElementCode, ! Indicator of element received
- + NoWait [VALUE], ! Indicate no wait if queue empty
- + ElementPriority, ! Priority of element
- + SemHandle [VALUE]) ! Semaphore handle
-
- INTEGER*2 QueueHandle, REQUEST(2), DataLength, DataAddress*4,
- + ElementCode, NoWait, ElementPriority*1, SemHandle*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosPurgeQueue
- + [ALIAS: 'DOSPURGEQUEUE']
- + (QueueHandle [VALUE]) ! Queue handle
-
- INTEGER*2 QueueHandle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosQueryQueue
- + [ALIAS: 'DOSQUERYQUE']
- + (QueueHandle [VALUE], ! Queue handle
- + Count) ! Element count
-
- INTEGER*2 QueueHandle, Count
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosReadQueue
- + [ALIAS: 'DOSREADQUEUE']
- + (QueueHandle [VALUE], ! Queue handle
- + REQUEST, ! Requests identification data
- + DataLength, ! Length of element returned
- + DataAddress, ! Address of element received
- + ElementCode, ! Indicator of element received
- + NoWait [VALUE], ! Indicate no wait if queue empty
- + ElementPriority, ! Priority of element
- + SemHandle [VALUE]) ! Semaphore handle
-
- INTEGER*2 QueueHandle, REQUEST(2), DataLength, DataAddress*4,
- + ElementCode, NoWait, ElementPriority*1, SemHandle*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosWriteQueue
- + [ALIAS: 'DOSWRITEQUEUE']
- + (QueueHandle [VALUE], ! Queue handle
- + Request [VALUE], ! Requests identification data
- + DataLength [VALUE], ! Length of element being added
- + DataBuffer, ! Element being added
- + ElementPriority [VALUE]) ! Priority of element being added
-
- INTEGER*2 QueueHandle, Request, DataLength, DataBuffer*1(*),
- + ElementPriority
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosError
- + [ALIAS: 'DOSERROR']
- + (Flag [VALUE]) ! Action flag
-
- INTEGER*2 Flag
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetVec
- + [ALIAS: 'DOSSETVEC']
- + (VecNum [VALUE], ! Function request code
- + RoutineAddress [VALUE], ! Address of routine
- + PrevFunc) ! Previous handler address
-
- INTEGER*2 VecNum, RoutineAddress*4, PrevFunc*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetMessage
- + [ALIAS: 'DOSGETMESSAGE']
- + (IvTable, ! Table to insert
- + IvCount [VALUE], ! Entries in table
- + DataArea, ! Message Buffer
- + DataLength [VALUE], ! Buffer length
- + MsgNumber [VALUE], ! Message number
- + FileName, ! Message file name
- + MsgLength) ! Length of returned message
-
- CHARACTER IvTable*(*), FileName*(*)
- INTEGER*2 IvCount, DataArea*1(*), DataLength, MsgNumber,
- + MsgLength
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosErrClass
- + [ALIAS: 'DOSERRCLASS']
- + (Code [VALUE], ! Error code
- + Class, ! Error classification
- + Action, ! Recommended action
- + Locus) ! Error origin
-
- INTEGER*2 Code, Class, Action, Locus
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosInsMessage
- + [ALIAS: 'DOSINSMESSAGE']
- + (IvTable, ! Variable table
- + IvCount [VALUE], ! Entries in table
- + MsgInput, ! Input message
- + MsgInLength [VALUE], ! Length of input message
- + DataArea, ! Updated message buffer
- + DataLength [VALUE], ! Length of buffer
- + MsgLength) ! Updated length
-
- CHARACTER IvTable*(*), MsgInput*(*)
- INTEGER*2 IvCount, MsgInLength, DataArea*1(*), DataLength,
- + MsgLength
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosPutMessage
- + [ALIAS: 'DOSPUTMESSAGE']
- + (FileHandle [VALUE], ! File handle
- + MessageLength [VALUE], ! Message length
- + MessageBuffer) ! Message buffer
-
- INTEGER*2 FileHandle, MessageLength
- CHARACTER*(*) MessageBuffer
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetEnv
- + [ALIAS: 'DOSGETENV']
- + (selEnvironment, ! Segment handle
- + offCommand) ! Command line start
-
- INTEGER*2 selEnvironment, offCommand
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosScanEnv
- + [ALIAS: 'DOSSCANENV']
- + (EnvVarName, ! Environment variable name
- + ResultPointer) ! Search result
-
- CHARACTER*(*) EnvVarName
- INTEGER*4 ResultPointer
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSearchPath
- + [ALIAS: 'DOSSEARCHPATH']
- + (Control [VALUE], ! Control vector
- + PathRef, ! Search path reference
- + Filename, ! Filename
- + ResultBuffer, ! Result buffer
- + ResultBufferLen) ! Result buffer length
-
- CHARACTER*(*) PathRef, Filename
- INTEGER*2 Control, ResultBuffer*1(*), ResultBufferLen
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetVersion
- + [ALIAS: 'DOSGETVERSION']
- + (Version) ! DOS version
-
- INTEGER*2 Version
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosGetMachineMode
- + [ALIAS: 'DOSGETMACHINEMODE']
- + (Mode) ! Machine mode
-
- INTEGER*1 Mode
-
- END
-
- $ENDIF ! INCL_DOSQUEUES interfaces
-
-
- $IF defined(INCL_DOSSESMGR) ! INCL_DOSSESMGR interfaces
-
- C ! Session manager support
-
- INTERFACE TO INTEGER*2 FUNCTION DosStartSession
- + [ALIAS: 'DOSSTARTSESSION']
- + (StartDataPtr, ! Starts session data
- + SessID, ! Session id
- + PID) ! Process id
-
- INTEGER*2 SessID, PID
- STRUCTURE/STARTDATA/
- INTEGER*2 Length
- INTEGER*2 Related
- INTEGER*2 FgBg
- INTEGER*2 TraceOpt
- INTEGER*4 PgmTitle ! Pointer to string
- INTEGER*4 PgmName ! Pointer to string
- INTEGER*4 PgmInputs ! Pointer to string
- INTEGER*4 TermQ ! Pointer to string
- END STRUCTURE
- RECORD/STARTDATA/ StartDataPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSetSession
- + [ALIAS: 'DOSSETSESSION']
- + (SessID [VALUE], ! Session id
- + StatusDataPtr) ! Session status data
-
- INTEGER*2 SessID
- STRUCTURE/STATUSDATA/
- INTEGER*2 Length
- INTEGER*2 SelectInd
- INTEGER*2 BondInd
- END STRUCTURE
- RECORD/STATUSDATA/ StatusDataPtr
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSelectSession
- + [ALIAS: 'DOSSELECTSESSION']
- + (SessID [VALUE], ! Session id
- + Reserved [VALUE]) ! Reserved (must =0)
-
- INTEGER*2 SessID, Reserved*4
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosStopSession
- + [ALIAS: 'DOSSTOPSESSION']
- + (TargetOption [VALUE], ! Target option
- + SessID [VALUE], ! Session identifier
- + Reserved [VALUE]) ! Reserved (must =0)
-
- INTEGER*2 TargetOption, SessID, Reserved*4
-
- END
-
- $ENDIF ! INCL_DOSSESMGR interfaces
-
-
- $IF defined(INCL_DOSDEVICES) ! INCL_DOSDEVICES interfaces
-
- C ! Device support
-
- INTERFACE TO INTEGER*2 FUNCTION DosDevConfig
- + [ALIAS: 'DOSDEVCONFIG']
- + (DevInfo, ! Returned device information
- + Item [VALUE], ! Item number
- + Reserved [VALUE]) ! Reserved
-
- INTEGER*2 DevInfo*1, Item, Reserved
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosDevIOCtl
- + [ALIAS: 'DOSDEVIOCTL']
- + (Data, ! Data area
- + ParamList, ! Command arguments
- + Function [VALUE], ! Device function
- + Catagory [VALUE], ! Device category
- + Handle [VALUE]) ! Device handle
-
- INTEGER*2 Data*1(*), ParamLIst*1(*), Function, Catagory, Handle
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosSystemService
- + [ALIAS: 'DOSSYSTEMSERVICE']
- + (ServiceCat [VALUE], ! Service category
- + REQUESTPACKET, ! Request packet
- + RESPONSEPACKET) ! Response packet
-
- INTEGER*2 ServiceCat, REQUESTPACKET(3), RESPONSEPACKET(2)
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosCliAccess
- + [ALIAS: 'DOSCLIACCESS']
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosPortAccess
- + [ALIAS: 'DOSPORTACCESS']
- + (Reserved [VALUE], ! Reserved (must =0)
- + TypeOfAccess [VALUE], ! Request or release
- + FirstPort [VALUE], ! First port number
- + LastPort [VALUE] ) ! Last port number
-
- INTEGER*2 Reserved, TypeOfAccess, FirstPort, LastPort
-
- END
-
- INTERFACE TO INTEGER*2 FUNCTION DosPhysicalDisk
- + [ALIAS: 'DOSPHYSICALDISK']
- + (Function [VALUE], ! Type of information
- + OutputBuf, ! Output buffer
- + OutLength [VALUE], ! Output buffer length
- + ParmBuf, ! User supplied information
- + ParmLength [VALUE]) ! Length of user information
-
- INTEGER*2 Function, OutputBuf*1(*), OutLength, ParmBuf*1(*),
- + ParmLength
-
- END
-
- $ENDIF ! INCL_DOSDEVICES interfaces
-