home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgLangD.iso
/
Fortran.51
/
DISK6
/
BSEDOS.FI$
/
BSEDOS.bin
Wrap
Text File
|
1989-02-05
|
52KB
|
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