blob: 8bcf1380332937e4ff14ce0f1f5e9c5f553a1c66 (
plain) (
tree)
|
|
Aug-27-1991:
NOTE (Yarons):
This is the 32 bit support as of April 1st 1990 - by stevewo
For 32 bit APIs, we added named pipes, fixed bugs and support UNC.
Bulk of work and focus is on 16bit APIs, which is scheduled in a Win
Project file with WIN32/NT product 1 schedule
--------------------------------------------------------------------
; This list defines the Cruiser OS/2 API Calls that are supported by the
; NT OS/2 Emulation Subsystem. The percent complete column has the
; following meanings:
;
; XXX - Api is implemented and has passed component test
; 100 - Api is implemented and is 100% functional (i.e. passed unit test)
; 10 - Api is implemented and is 10% functional
; 0 - Api is implemented but does nothing (i.e. a stub to link against)
; blank - Api is not callable
Percent Location of Notes on
Complete External API Name Implementation Status
90 DosQuerySysInfo DLL
80 DosBeep DLL
60 DosDevConfig DLL
100 DosSetExceptionHandler DLL
100 DosUnsetExceptionHandler DLL
100 DosRaiseException DLL
100 DosUnwindException DLL
100 DosError DLL
100 DosErrClass DLL
100 DosGetMessage DLL
100 DosInsertMessage DLL
100 DosPutMessage DLL
100 DosQueryMessageCP DLL
100 DosSetProcessCp DLL
100 DosQueryCp DLL
70 DosQueryCtryInfo DLL
70 DosQueryDBCSEnv DLL
70 DosQueryCollate DLL
70 DosMapCase DLL
100 DosScanEnv DLL
100 DosSearchPath DLL
100 DosQueryVerify DLL
100 DosSetVerify DLL
100 DosSetMaxFH DLL
100 DosCreateThread Server
100 DosWaitChild Server
100 DosWaitThread Server
100 DosEnterCritSec Server
100 DosExitCritSec Server
100 DosExecPgm DLL/Server
100 DosExit Server
100 DosExitList DLL
100 DosGetThreadInfo DLL
100 DosSetPriority Server
100 DosKillProcess Server
100 DosResumeThread Server
100 DosSuspendThread Server
100 DosCreatePipe DLL/Server
100 DosCreateEventSem DLL/Server
100 DosOpenEventSem DLL/Server
100 DosCloseEventSem DLL/Server
100 DosResetEventSem DLL
100 DosPostEventSem DLL
100 DosWaitEventSem DLL
100 DosQueryEventSem DLL
100 DosCreateMutexSem DLL/Server
100 DosOpenMutexSem DLL/Server
100 DosCloseMutexSem DLL/Server
100 DosRequestMutexSem DLL
100 DosReleaseMutexSem DLL
100 DosQueryMutexSem DLL
90 DosCreateMuxWaitSem DLL/Server
90 DosOpenMuxWaitSem DLL/Server
90 DosCloseMuxWaitSem DLL/Server
90 DosWaitMuxWaitSem DLL/Server
90 DosAddMuxWaitSem DLL/Server
90 DosDeleteMuxWaitSem DLL/Server
90 DosQueryMuxWaitSem DLL/Server
100 DosGetDateTime DLL
100 DosSetDateTime DLL
100 DosSleep DLL
100 DosAsyncTimer DLL
100 DosStartTimer DLL
100 DosStopTimer DLL
90 DosAllocMem DLL
90 DosAllocSharedMem Server
90 DosGetNamedSharedMem Server
90 DosGetSharedMem Server
90 DosGiveSharedMem Server
90 DosFreeMem DLL/Server
90 DosSetMem DLL
90 DosQueryMem DLL
100 DosSubAlloc DLL
100 DosSubFree DLL
100 DosSubSet DLL
100 DosLoadModule DLL/Loader Subsystem
100 DosFreeModule DLL/Loader Subsystem
100 DosQueryProcAddr DLL/Loader Subsystem
100 DosQueryModuleHandle DLL/Loader Subsystem
100 DosQueryModuleName DLL/Loader Subsystem
100 DosGetResource DLL/Loader Subsystem
100 DosQueryResourceSize DLL/Loader Subsystem
100 DosQueryAppType DLL/Loader Subsystem
100 DosOpen DLL
100 DosSetFHState DLL
100 DosQueryFHState DLL
100 DosQueryHType DLL
100 DosSetFileInfo DLL
100 DosQueryFileInfo DLL
100 DosResetBuffer DLL
100 DosSetFilePtr DLL
100 DosRead DLL
100 DosWrite DLL
100 DosClose DLL
DosDevIOCtl DLL (see below)
100 DosDupHandle DLL
100 DosSetFileLocks DLL
100 DosSetFileSize DLL
85 DosFindFirst DLL
85 DosFindNext DLL
85 DosFindClose DLL
100 DosSetDefaultDisk DLL
100 DosQueryCurrentDisk DLL
100 DosSetCurrentDir DLL/Server
100 DosQueryCurrentDir DLL/Server
100 DosDelete DLL
100 DosEditName DLL
100 DosQueryPathInfo DLL
100 DosSetPathInfo DLL
DosEnumAttribute DLL
100 DosCreateDir DLL
100 DosDeleteDir DLL
90 DosMove DLL (move not done in NT)
100 DosCopy DLL
10 DosFSAttach DLL (see below)
75 DosFSCtl DLL (see below)
10 DosQueryFSAttach DLL (see below)
100 DosSetFSInfo DLL
100 DosQueryFSInfo DLL
100 DosStartSession Server
100 DosSetSession Server
100 DosSelectSession Server
100 DosStopSession Server
DosCallNPipe Server
DosConnectNPipe Server
DosDisConnectNPipe Server
DosCreateNPipe Server
DosPeekNPipe Server
DosQueryNPHState Server
DosQueryNPipeInfo Server
DosQueryNPipeSemState Server
DosRawReadNPipe Server
DosRawWriteNPipe Server
DosSetNPHState Server
DosSetNPipeSem Server
DosTransactNPipe Server
DosWaitNPipe Server
100 DosCreateQueue Server
100 DosOpenQueue Server
100 DosCloseQueue Server
100 DosPeekQueue Server
100 DosPurgeQueue Server
100 DosQueryQueue Server
100 DosReadQueue Server
100 DosWriteQueue Server
Work Items:
1. Implement NLS support (5 days)
This work item includes the following items:
o spec the source file format for all the NLS information. This
will be a superset of the contents of COUNTRY.SYS. Currently
OS/2 uses an incomprehensible 4000 line assembler file with lots
of macros and a few includes just to keep you guessing.
o spec the binary file format of the NLS information. The NLS file(s?)
will be mapped into readonly memory at runtime and accessed directly.
o write a utility to convert the source file format to the binary file
format.
o write a throw away utility to convert COUNTRY.SYS to the new source
format.
o modify the following NLS API calls to access the new binary file format
by mapping the NLS binary file(s?). Maintain a cache so we only map
the NLS file(s?) the first time they are needed in a process.
DosSetProcessCp DosQueryCp DosQueryCtryInfo
DosQueryDBCSEnv DosQueryCollate DosMapCase
2. Implement DBCS support (5 days)
This work item includes the following items:
o implement DBCS runtime code for moving forwards and backwards through
a string (both ASCIZ and counted STRING types). Also fetching for
characters as well. How does executive access DBCS NLS information if
we are mapping it in user mode. Is it also mapped in executive space,
and if so, then that is aliasing within the same addres space.
o Modify all OS/2 API calls the parse string parameters so that they call
runtime routines to advance a string pointer and fetch characters.
These include:
DosGetMessage DosInsertMessage DosPutMessage
DosQueryMessageCP DosMapCase DosScanEnv
DosSearchPath DosExecPgm DosCreateEventSem
DosOpenEventSem DosCreateMutexSem DosOpenMutexSem
DosCreateMuxWaitSem DosOpenMuxWaitSem
DosAllocSharedMem DosGetNamedSharedMem DosLoadModule
DosQueryProcAddr DosQueryModuleHandle DosQueryAppType
DosOpen DosFindFirst DosFindNext DosSetCurrentDir
DosDelete DosEditName DosQueryPathInfo
DosSetPathInfo DosCreateDir DosDeleteDir DosMove
DosCopy DosFSAttach DosQueryFSAttach DosSetFSInfo
DosQueryFSInfo DosStartSession DosCallNPipe
DosCreateNPipe DosRawReadNPipe DosRawWriteNPipe
DosWaitNPipe DosCreateQueue DosOpenQueue
3. Implement Cruiser Named Pipes (10 days)
4. DosDevioctl
We need to decide among the following options:
o remove from cruiser 32-bit API set and redefine API in
OS/2 subsystem to look like NtDeviceIoControl
o choose a subset of DosDevioctl function/category combinations
to support in subsystem (map to corresponding
NtDeviceIoControl functions)
The first option makes more sense since the 16-bit interface is available
in cruiser and the 32-bit API provides no additional functionality.
Using the NT interface is cleaner/more extendible.
5. DosFsAttach/DosQFsAttach/DosFsctl
These are fully designed. We need to decide whether these should exist as
32-bit API in cruiser since they provide no new functionality and we might
want to modify the interface in NT. We also need to decide whether these
are worth including in NT since they have no use at this time.
|