diff --git a/os2/apps/bepslep/bepslep.c b/os2/apps/bepslep/bepslep.c index 08e6aadb84b..4ada5d7febf 100644 --- a/os2/apps/bepslep/bepslep.c +++ b/os2/apps/bepslep/bepslep.c @@ -1,6 +1,6 @@ - -#include "../../dll/doscalls/doscalls.h" +#define INCL_DOSPROCESS +#include "../../include/os2.h" void Eingang() { diff --git a/os2/lib/doscalls/makefile b/os2/lib/doscalls/makefile index 515aa4ba90f..fd0f44c1aba 100644 --- a/os2/lib/doscalls/makefile +++ b/os2/lib/doscalls/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.2 2002/03/24 18:52:10 ea Exp $ +# $Id: makefile,v 1.3 2002/05/30 15:11:46 robertk Exp $ PATH_TO_TOP = ../../../.. @@ -21,7 +21,7 @@ TARGET_OBJECTS = $(TARGET_NAME).o TARGET_CLEAN = file/*.o vio/*.o sync/*.o mem/*.o \ misc/*.o mou/*.o kbd/*.o run/*.o -DOSCALLS_MISC_OBJECTS = misc/doscalls.o +DOSCALLS_MISC_OBJECTS = misc/doscalls.o file/openclose.o run/process.o devices/devices.o #SYNC_OBJECTS = diff --git a/os2/lib/doscalls/misc/doscalls.c b/os2/lib/doscalls/misc/doscalls.c index 5ccea055af2..ede33f18686 100644 --- a/os2/lib/doscalls/misc/doscalls.c +++ b/os2/lib/doscalls/misc/doscalls.c @@ -1,4 +1,4 @@ -/* $Id: doscalls.c,v 1.4 2002/04/18 23:49:42 robertk Exp $ +/* $Id: doscalls.c,v 1.5 2002/05/30 15:11:46 robertk Exp $ */ /* * @@ -6,324 +6,15 @@ * PROJECT: ReactOS OS/2 sub system * FILE: dll/doscalls.c * PURPOSE: Kernelservices for OS/2 apps - * PROGRAMMER: Robert K. robertk@mok.lvcm.com + * PROGRAMMER: Robert K. nonvolatil@yahoo.de * REVISION HISTORY: * 13-03-2002 Created */ + #include -#include "doscalls.h" - - -/* Process variables. This section conains - per process variables that are used for caching or - other stuff. */ -DWORD PROC_Pid; // contains the current processes pid. (or is it also in PEB) - - - -/* Implementation of the system calls */ -APIRET STDCALL Dos32Sleep(ULONG msec) -{ - NTSTATUS stat; - TIME Interv; - Interv.QuadPart= -(10000 * msec); - stat = NtDelayExecution( TRUE, &Interv ); - return 0; -} - -APIRET STDCALL Dos32CreateThread(PTID ptid, PFNTHREAD pfn, - ULONG param, ULONG flag, ULONG cbStack) -{ - return 0; -} - - -APIRET STDCALL Dos32Open(PSZ pszFileName, PHFILE pHf, - PULONG pulAction, ULONG cbFile, - ULONG ulAttribute, ULONG fsOpenFlags, - ULONG fsOpenMode, PVOID reserved ) //ULONGPEAOP2 peaop2) -{ -/* NTAPI -ZwCreateFile( -OUT PHANDLE FileHandle, -IN ACCESS_MASK DesiredAccess, -IN POBJECT_ATTRIBUTES ObjectAttributes, -OUT PIO_STATUS_BLOCK IoStatusBlock, -IN PLARGE_INTEGER AllocationSize OPTIONAL, -IN ULONG FileAttributes, -IN ULONG ShareAccess, -IN ULONG CreateDisposition, -IN ULONG CreateOptions, -IN PVOID EaBuffer OPTIONAL, -IN ULONG EaLength -);*/ - - - - OBJECT_ATTRIBUTES ObjectAttributes; - IO_STATUS_BLOCK IoStatusBlock; - UNICODE_STRING NtPathU; - HANDLE FileHandle; - NTSTATUS Status; - ULONG Flags = 0; - - switch (dwCreationDisposition) - { - case CREATE_NEW: - dwCreationDisposition = FILE_CREATE; - break; - - case CREATE_ALWAYS: - dwCreationDisposition = FILE_OVERWRITE_IF; - break; - - case OPEN_EXISTING: - dwCreationDisposition = FILE_OPEN; - break; - - case OPEN_ALWAYS: - dwCreationDisposition = OPEN_ALWAYS; - break; - - case TRUNCATE_EXISTING: - dwCreationDisposition = FILE_OVERWRITE; - } - - DPRINT("CreateFileW(lpFileName %S)\n",lpFileName); - - if (dwDesiredAccess & GENERIC_READ) - dwDesiredAccess |= FILE_GENERIC_READ; - - if (dwDesiredAccess & GENERIC_WRITE) - dwDesiredAccess |= FILE_GENERIC_WRITE; - - if (!(dwFlagsAndAttributes & FILE_FLAG_OVERLAPPED)) - { - Flags |= FILE_SYNCHRONOUS_IO_ALERT; - } - - if (!RtlDosPathNameToNtPathName_U ((LPWSTR)lpFileName, - &NtPathU, - NULL, - NULL)) - return INVALID_HANDLE_VALUE; - - DPRINT("NtPathU \'%S\'\n", NtPathU.Buffer); - - ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES); - ObjectAttributes.RootDirectory = NULL; - ObjectAttributes.ObjectName = &NtPathU; - ObjectAttributes.Attributes = OBJ_CASE_INSENSITIVE; - ObjectAttributes.SecurityDescriptor = NULL; - ObjectAttributes.SecurityQualityOfService = NULL; - - Status = NtCreateFile (&FileHandle, - dwDesiredAccess, - &ObjectAttributes, - &IoStatusBlock, - NULL, - dwFlagsAndAttributes, - dwShareMode, - dwCreationDisposition, - Flags, - NULL, - 0); - if (!NT_SUCCESS(Status)) - { - SetLastErrorByStatus (Status); - return INVALID_HANDLE_VALUE; - } - - return FileHandle; - - return 0; -} - - -/* close a Handle. seems finished */ -APIRET STDCALL Dos32Close(HFILE hFile) -{ - NTSTATUS nErrCode; - nErrCode = NtClose( (HANDLE)hFile ); - switch( nErrCode ) - { - case STATUS_SUCCESS: - return NO_ERROR; - case STATUS_INVALID_HANDLE: - return ERROR_INVALID_HANDLE; - case STATUS_HANDLE_NOT_CLOSABLE: - return ERROR_FILE_NOT_FOUND; - } - return nErrCode; -} - - - - -APIRET STDCALL Dos32Read(HFILE hFile, PVOID pBuffer, - ULONG cbRead, PULONG pcbActual) -{ - NTSTATUS nErrCode; - IO_STATUS_BLOCK isbStatus; - // read data from file - nErrCode = NtReadFile( (HANDLE)hFile, NULL, NULL, NULL, - &isbStatus, pBuffer, cbRead, - NULL, NULL ); - // contains the # bytes actually read. - *pcbActual = isbStatus.Information; - switch(nErrCode) - { - case STATUS_INVALID_HANDLE: - return ERROR_INVALID_HANDLE; - // FIXME: complete this - } - return NO_ERROR; -} - -/* Generic write to a stream given by hFile */ -APIRET STDCALL Dos32Write(HFILE hFile, PVOID pBuffer, - ULONG cbWrite, PULONG pcbActual) -{ - NTSTATUS nErrCode; - IO_STATUS_BLOCK StatusBlk; - nErrCode = NtWriteFile( (HANDLE)hFile, NULL, NULL, NULL, - &StatusBlk, pBuffer, cbWrite, 0, NULL ); - *pcbActual = StatusBlk.Information; - // do an errorcode translation FIXME: correct - switch(nErrCode) - { - case STATUS_SUCCESS: - case STATUS_PENDING: - case STATUS_ACCESS_DENIED: - case STATUS_INVALID_HANDLE: - case STATUS_FILE_LOCK_CONFLICT: - return 0; - } - return 0; -} - - - -/*******************************************/ -/* DosDevIOCtl performs control functions */ -/* on a device specified by an opened */ -/* device handle. */ -/*******************************************/ -/*HFILE hDevice; Device handle returned by DosOpen, or a standard (open) device handle. */ -/*ULONG category; Device category. */ -/*ULONG function; Device-specific function code. */ -/*PVOID pParams; Address of the command-specific argument list. */ -/*ULONG cbParmLenMax; Length, in bytes, of pParams. */ -/*PULONG pcbParmLen; Pointer to the length of parameters. */ -/*PVOID pData; Address of the data area. */ -/*ULONG cbDataLenMax; Length, in bytes, of pData. */ -/*PULONG pcbDataLen; Pointer to the length of data. */ -/*APIRET ulrc; Return Code. - - ulrc (APIRET) - returns - Return Code. - - DosDevIOCtl returns one of the following values: - - 0 NO_ERROR - 1 ERROR_INVALID_FUNCTION - 6 ERROR_INVALID_HANDLE - 15 ERROR_INVALID_DRIVE - 31 ERROR_GEN_FAILURE - 87 ERROR_INVALID_PARAMETER - 111 ERROR_BUFFER_OVERFLOW - 115 ERROR_PROTECTION_VIOLATION - 117 ERROR_INVALID_CATEGORY - 119 ERROR_BAD_DRIVER_LEVEL - 163 ERROR_UNCERTAIN_MEDIA - 165 ERROR_MONITORS_NOT_SUPPORTED - -*/ -APIRET STDCALL Dos32DevIOCtl(HFILE hDevice, ULONG category, ULONG function, - PVOID pParams,ULONG cbParmLenMax,PULONG pcbParmLen, - PVOID pData,ULONG cbDataLenMax,PULONG pcbDataLen) -{ - return 0; -} - -APIRET STDCALL Dos32Beep(ULONG freq, ULONG dur) -{ - if( freq<0x25 || freq>0x7FFF ) - return 395; // ERROR_INVALID_FREQUENCY - - HANDLE hBeep; - IO_STATUS_BLOCK ComplStatus; - //UNICODE_STRING - OBJECT_ATTRIBUTES oa = {sizeof oa, 0, {8,8,"\\\\.\\Beep"l}, OBJ_CASE_INSENSITIVE}; - NTSTATUS stat; - stat = NtOpenFile( &hBeep, - FILE_READ_DATA | FILE_WRITE_DATA, - &oa, - &ComplStatus, - 0, // no sharing - FILE_OPEN ); - - if (!NT_SUCCESS(stat)) - { - } - - if( ComplStatus-> - /* HANDLE hBeep; - BEEP_SET_PARAMETERS BeepSetParameters; - DWORD dwReturned; - - hBeep = Dos32Open("\\\\.\\Beep", - FILE_GENERIC_READ | FILE_GENERIC_WRITE, - 0, - NULL, - OPEN_EXISTING, - 0, - NULL); - if (hBeep == INVALID_HANDLE_VALUE) - return FALSE; -*/ - // Set beep data - /* BeepSetParameters.Frequency = dwFreq; - BeepSetParameters.Duration = dwDuration; - - DeviceIoControl(hBeep, - IOCTL_BEEP_SET, - &BeepSetParameters, - sizeof(BEEP_SET_PARAMETERS), - NULL, - 0, - &dwReturned, - NULL); - - CloseHandle (hBeep); - - return TRUE; -*/ - - - - return 0; -} - -/* Terminates the current thread or the current Process. - Decission is made by action - FIXME: move this code to OS2.EXE */ -VOID STDCALL Dos32Exit(ULONG action, ULONG result) -{ - // decide what to do - if( action == EXIT_THREAD) - { - NtTerminateThread( NULL, result ); - } - else // EXIT_PROCESS - { - NtTerminateProcess( NULL, result ); - } -} - BOOL STDCALL DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) diff --git a/os2/lib/doscalls/misc/doscalls.h b/os2/lib/doscalls/misc/doscalls.h index f7e2f5514dc..65d3a3760bd 100644 --- a/os2/lib/doscalls/misc/doscalls.h +++ b/os2/lib/doscalls/misc/doscalls.h @@ -1,4 +1,4 @@ -/* $Id: doscalls.h,v 1.3 2002/03/24 18:55:39 ea Exp $ +/* $Id: doscalls.h,v 1.4 2002/05/30 15:11:46 robertk Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS OS/2 sub system @@ -11,7 +11,6 @@ -#include "os2def.h" // FIXME: use ib headers diff --git a/os2/lib/doscalls/misc/errorcodes.c b/os2/lib/doscalls/misc/errorcodes.c deleted file mode 100644 index 852695a5d57..00000000000 --- a/os2/lib/doscalls/misc/errorcodes.c +++ /dev/null @@ -1,287 +0,0 @@ -/* $Id: errorcodes.c,v 1.2 2002/03/24 18:55:39 ea Exp $ -*/ - -/* some header*/ - -#include -#include - -/* This file defines a big array of #defines that are - used to translate OS/2 errorcodes to ntdll error codes. */ - -/* OS/2 to NTDLL error mapping */ -#define NO_ERROR STATUS_SUCCESS -#define ERROR_INVALID_FUNCTION STATUS_ILLEGAL_FUNCTION -#define ERROR_FILE_NOT_FOUND 2 /* MSG%FILE_NOT_FOUND */ -#define ERROR_PATH_NOT_FOUND 3 /* MSG%PATH_NOT_FOUND */ -#define ERROR_TOO_MANY_OPEN_FILES 4 /* MSG%OUT_OF_HANDLES */ -#define ERROR_ACCESS_DENIED 5 /* MSG%ACCESS_DENIED */ -#define ERROR_INVALID_HANDLE 6 /* MSG%INVALID_HANDLE */ -#define ERROR_ARENA_TRASHED 7 /* MSG%MEMORY_BLOCKS_BAD */ -#define ERROR_NOT_ENOUGH_MEMORY 8 /* MSG%NO_MEMORY */ -#define ERROR_INVALID_BLOCK 9 /* MSG%INVALID_MEM_ADDR */ -#define ERROR_BAD_ENVIRONMENT 10 /* MSG%INVALID_ENVIRON */ -#define ERROR_BAD_FORMAT 11 /* MSG%INVALID_FORMAT */ -#define ERROR_INVALID_ACCESS 12 /* MSG%INVALID_ACC_CODE */ -#define ERROR_INVALID_DATA 13 /* MSG%INVALID_DATA */ -#define ERROR_INVALID_DRIVE 15 /* MSG%INVALID_DRIVE */ -#define ERROR_CURRENT_DIRECTORY 16 /* MSG%ATT_RD_CURDIR */ -#define ERROR_NOT_SAME_DEVICE 17 /* MSG%NOT_SAME_DEVICE */ -#define ERROR_NO_MORE_FILES 18 /* MSG%NO_MORE_FILES */ -#define ERROR_WRITE_PROTECT 19 /* MSG%ATT_WRITE_PROT */ -#define ERROR_BAD_UNIT 20 /* MSG%UNKNOWN_UNIT */ -#define ERROR_NOT_READY 21 /* MSG%DRIVE_NOT_READY */ -#define ERROR_BAD_COMMAND 22 /* MSG%UNKNOWN_COMMAND */ -#define ERROR_CRC 23 /* MSG%DATA_ERROR */ -#define ERROR_BAD_LENGTH 24 /* MSG%BAD_REQ_STRUCTURE */ -#define ERROR_SEEK 25 /* MSG%SEEK_ERROR */ -#define ERROR_NOT_DOS_DISK 26 /* MSG%UNKNOWN_MEDIA */ -#define ERROR_SECTOR_NOT_FOUND 27 /* MSG%SECTOR_NOT_FOUND */ -#define ERROR_OUT_OF_PAPER 28 /* MSG%OUT_OF_PAPER */ -#define ERROR_WRITE_FAULT 29 /* MSG%WRITE_FAULT */ -#define ERROR_READ_FAULT 30 /* MSG%READ_FAULT */ -#define ERROR_GEN_FAILURE 31 /* MSG%GENERAL_FAILURE */ -#define ERROR_SHARING_VIOLATION 32 /* MSG%SHARING_VIOLATION */ -/* 32%msg%SHAR_VIOLAT_FIND */ -#define ERROR_LOCK_VIOLATION 33 /* MSG%LOCK_VIOLATION */ -#define ERROR_WRONG_DISK 34 /* MSG%INVALID_DISK_CHANGE */ -#define ERROR_FCB_UNAVAILABLE 35 /* MSG%35 */ -#define ERROR_SHARING_BUFFER_EXCEEDED 36 /* MSG%SHARING_BUFF_OFLOW */ -#define ERROR_CODE_PAGE_MISMATCHED 37 /* MSG%ERROR_WRITE_PROTECT */ -#define ERROR_HANDLE_EOF 38 /* MSG%ERROR_BAD_UNIT */ -#define ERROR_HANDLE_DISK_FULL 39 /* MSG%ERROR_NOT_READY */ -/* 40%msg%ERROR_BAD_COMMAND */ -/* 41%msg%ERROR_CRC */ -/* 42%msg%ERROR_BAD_LENGTH */ -/* 43%msg%ERROR_SEEK */ -/* 44%msg%ERROR_NOT_DOS_DISK */ -/* 45%msg%ERROR_SECTOR_NOT_FOUND */ -/* 46%msg%ERROR_OUT_OF_PAPER */ -/* 47%msg%ERROR_WRITE_FAULT */ -/* 48%msg%ERROR_READ_FAULT */ -/* 49%msg%ERROR_GEN_FAILURE */ -#define ERROR_NOT_SUPPORTED 50 /* MSG%NET_REQ_NOT_SUPPORT */ -#define ERROR_REM_NOT_LIST 51 /* MSG%NET_REMOTE_NOT_ONLINE */ -#define ERROR_DUP_NAME 52 /* MSG%NET_DUP_FILENAME */ -#define ERROR_BAD_NETPATH 53 /* MSG%NET_PATH_NOT_FOUND */ -#define ERROR_NETWORK_BUSY 54 /* MSG%NET_BUSY */ -#define ERROR_DEV_NOT_EXIST 55 /* MSG%NET_DEV_NOT_INSTALLED */ -#define ERROR_TOO_MANY_CMDS 56 /* MSG%NET_BIOS_LIMIT_REACHED */ -#define ERROR_ADAP_HDW_ERR 57 /* MSG%NET_ADAPT_HRDW_ERROR */ -#define ERROR_BAD_NET_RESP 58 /* MSG%NET_INCORRECT_RESPONSE */ -#define ERROR_UNEXP_NET_ERR 59 /* MSG%NET_UNEXPECT_ERROR */ -#define ERROR_BAD_REM_ADAP 60 /* MSG%NET_REMOT_ADPT_INCOMP */ -#define ERROR_PRINTQ_FULL 61 /* MSG%NET_PRINT_Q_FULL */ -#define ERROR_NO_SPOOL_SPACE 62 /* MSG%NET_NO_SPACE_TO_PRINT_FL */ -#define ERROR_PRINT_CANCELLED 63 /* MSG%NET_PRINT_FILE_DELETED */ -#define ERROR_NETNAME_DELETED 64 /* MSG%NET_NAME_DELETED */ -#define ERROR_NETWORK_ACCESS_DENIED 65 /* MSG%NET_ACCESS_DENIED */ -#define ERROR_BAD_DEV_TYPE 66 /* MSG%NET_DEV_TYPE_INVALID */ -#define ERROR_BAD_NET_NAME 67 /* MSG%NET_NAME_NOT_FOUND */ -#define ERROR_TOO_MANY_NAMES 68 /* MSG%NET_NAME_LIMIT_EXCEED */ -#define ERROR_TOO_MANY_SESS 69 /* MSG%NET_BIOS_LIMIT_EXCEED */ -#define ERROR_SHARING_PAUSED 70 /* MSG%NET_TEMP_PAUSED */ -#define ERROR_REQ_NOT_ACCEP 71 /* MSG%NET_REQUEST_DENIED */ -#define ERROR_REDIR_PAUSED 72 /* MSG%NET_PRT_DSK_REDIR_PAUSE */ -#define ERROR_SBCS_ATT_WRITE_PROT 73 /* Attempted write on protected disk */ -#define ERROR_SBCS_GENERAL_FAILURE 74 /* General failure */ -#define ERROR_XGA_OUT_MEMORY 75 /* MSG%XGA_OUT_MEMORY */ -#define ERROR_FILE_EXISTS 80 /* MSG%FILE_EXISTS */ -#define ERROR_DUP_FCB 81 /* MSG%none */ -#define ERROR_CANNOT_MAKE 82 /* MSG%CANNOT_MAKE */ -#define ERROR_FAIL_I24 83 /* MSG%NET_FAIL_INT_TWO_FOUR */ -#define ERROR_OUT_OF_STRUCTURES 84 /* MSG%NET_TOO_MANY_REDIRECT */ -#define ERROR_ALREADY_ASSIGNED 85 /* MSG%NET_DUP_REDIRECTION */ -#define ERROR_INVALID_PASSWORD 86 /* MSG%NET_INVALID_PASSWORD */ -#define ERROR_INVALID_PARAMETER 87 /* MSG%NET_INCORR_PARAMETER */ -#define ERROR_NET_WRITE_FAULT 88 /* MSG%NET_DATA_FAULT */ -#define ERROR_NO_PROC_SLOTS 89 /* MSG%NO_PROC_SLOTS */ -#define ERROR_NOT_FROZEN 90 /* MSG%none */ -#define ERROR_SYS_COMP_NOT_LOADED ERROR_NOT_FROZEN -#define ERR_TSTOVFL 91 /* MSG%none */ -#define ERR_TSTDUP 92 /* MSG%none */ -#define ERROR_NO_ITEMS 93 /* MSG%none */ -#define ERROR_INTERRUPT 95 /* MSG%none */ -#define ERROR_DEVICE_IN_USE 99 /* MSG%DEVICE_IN_USE */ -#define ERROR_TOO_MANY_SEMAPHORES 100 /* MSG%TOO_MANY_SEMAPHORES */ -#define ERROR_EXCL_SEM_ALREADY_OWNED 101 /* MSG%EXCL_SEM_ALREADY_OWNED */ -#define ERROR_SEM_IS_SET 102 /* MSG%SEM_IS_SET */ -#define ERROR_TOO_MANY_SEM_REQUESTS 103 /* MSG%TOO_MANY_SEM_REQUESTS */ -#define ERROR_INVALID_AT_INTERRUPT_TIME 104 /* MSG%INVALID_AT_INTERRUPT_TIME */ -#define ERROR_SEM_OWNER_DIED 105 /* MSG%SEM_OWNER_DIED */ -#define ERROR_SEM_USER_LIMIT 106 /* MSG%ERROR_DISK_CHANGE */ -#define ERROR_DISK_CHANGE 107 /* MSG%DISK_CHANGE */ -#define ERROR_DRIVE_LOCKED 108 /* MSG%DRIVE_LOCKED */ -#define ERROR_BROKEN_PIPE 109 /* MSG%BROKEN_PIPE */ -#define ERROR_OPEN_FAILED 110 /* MSG%ERROR_OPEN_FAILED */ -#define ERROR_BUFFER_OVERFLOW 111 /* MSG%ERROR_FILENAME_LONG */ -#define ERROR_DISK_FULL 112 /* MSG%DISK_FULL */ -#define ERROR_NO_MORE_SEARCH_HANDLES 113 /* MSG%NO_SEARCH_HANDLES */ -#define ERROR_INVALID_TARGET_HANDLE 114 /* MSG%ERR_INV_TAR_HANDLE */ -#define ERROR_PROTECTION_VIOLATION 115 /* MSG%none */ -#define ERROR_VIOKBD_REQUEST 116 /* MSG%none */ -#define ERROR_INVALID_CATEGORY 117 /* MSG%INVALID_CATEGORY */ -#define ERROR_INVALID_VERIFY_SWITCH 118 /* MSG%INVALID_VERIFY_SWITCH */ -#define ERROR_BAD_DRIVER_LEVEL 119 /* MSG%BAD_DRIVER_LEVEL */ -#define ERROR_CALL_NOT_IMPLEMENTED 120 /* MSG%BAD_DYNALINK */ -#define ERROR_SEM_TIMEOUT 121 /* MSG%SEM_TIMEOUT */ -#define ERROR_INSUFFICIENT_BUFFER 122 /* MSG%INSUFFICIENT_BUFFER */ -#define ERROR_INVALID_NAME 123 /* MSG%INVALID_NAME */ -/* 123%msg%HPFS_INVALID_VOLUME_CHAR */ -#define ERROR_INVALID_LEVEL 124 /* MSG%INVALID_LEVEL */ -#define ERROR_NO_VOLUME_LABEL 125 /* MSG%NO_VOLUME_LABEL */ -#define ERROR_MOD_NOT_FOUND 126 /* MSG%MOD_NOT_FOUND */ -#define ERROR_PROC_NOT_FOUND 127 /* MSG%PROC_NOT_FOUND */ -#define ERROR_WAIT_NO_CHILDREN 128 /* MSG%none */ -#define ERROR_CHILD_NOT_COMPLETE 129 /* MSG%PROT_MODE_ONLY */ -#define ERROR_DIRECT_ACCESS_HANDLE 130 /* MSG%APPL_SINGLEFRAMECHAR */ -#define ERROR_NEGATIVE_SEEK 131 /* MSG%APPL_DOUBLEFRAMECHAR */ -#define ERROR_SEEK_ON_DEVICE 132 /* MSG%APPL_ARROWCHAR */ -#define ERROR_IS_JOIN_TARGET 133 /* MSG%JOIN_ON_DRIV_IS_TAR */ -#define ERROR_IS_JOINED 134 /* MSG%JOIN_DRIVE_IS */ -#define ERROR_IS_SUBSTED 135 /* MSG%SUB_DRIVE_IS */ -#define ERROR_NOT_JOINED 136 /* MSG%DRIVE_IS_NOT_JOINED */ -#define ERROR_NOT_SUBSTED 137 /* MSG%DRIVE_NOT_SUBSTED */ -#define ERROR_JOIN_TO_JOIN 138 /* MSG%JOIN_CANNOT_JOIN_DRIVE */ -#define ERROR_SUBST_TO_SUBST 139 /* MSG%SUB_CANNOT_SUBST_DRIVE */ -#define ERROR_JOIN_TO_SUBST 140 /* MSG%JOIN_CANNOT_SUB_DRIVE */ -#define ERROR_SUBST_TO_JOIN 141 /* MSG%SUB_CANNOT_JOIN_DRIVE */ -#define ERROR_BUSY_DRIVE 142 /* MSG%DRIVE_IS_BUSY */ -#define ERROR_SAME_DRIVE 143 /* MSG%JOIN_SUB_SAME_DRIVE */ -#define ERROR_DIR_NOT_ROOT 144 /* MSG%DIRECT_IS_NOT_SUBDIR */ -#define ERROR_DIR_NOT_EMPTY 145 /* MSG%DIRECT_IS_NOT_EMPTY */ -#define ERROR_IS_SUBST_PATH 146 /* MSG%PATH_USED_SUBST_JOIN */ -#define ERROR_IS_JOIN_PATH 147 /* MSG%NO_NEEDED_RESOURCES */ -#define ERROR_PATH_BUSY 148 /* MSG%PATH_BUSY */ -#define ERROR_IS_SUBST_TARGET 149 /* MSG%SUB_ON_DRIVE_IS_JOIN */ -#define ERROR_SYSTEM_TRACE 150 /* MSG%SYSTEM_TRACE */ -#define ERROR_INVALID_EVENT_COUNT 151 /* MSG%INVALID_EVENT_COUNT */ -#define ERROR_TOO_MANY_MUXWAITERS 152 /* MSG%TOO_MANY_MUXWAITERS */ -#define ERROR_INVALID_LIST_FORMAT 153 /* MSG%INVALID_LIST_FORMAT */ -#define ERROR_LABEL_TOO_LONG 154 /* MSG%VOLUME_TOO_LONG */ -/* 154%msg%HPFS_VOL_LABEL_LONG */ -#define ERROR_TOO_MANY_TCBS 155 /* MSG%TOO_MANY_TCBS */ -#define ERROR_SIGNAL_REFUSED 156 /* MSG%SIGNAL_REFUSED */ -#define ERROR_DISCARDED 157 /* MSG%DISCARDED */ -#define ERROR_NOT_LOCKED 158 /* MSG%NOT_LOCKED */ -#define ERROR_BAD_THREADID_ADDR 159 /* MSG%BAD_THREADID_ADDR */ -#define ERROR_BAD_ARGUMENTS 160 /* MSG%BAD_ARGUMENTS */ -#define ERROR_BAD_PATHNAME 161 /* MSG%none */ -#define ERROR_SIGNAL_PENDING 162 /* MSG%SIGNAL_PENDING */ -#define ERROR_UNCERTAIN_MEDIA 163 /* MSG%none */ -#define ERROR_MAX_THRDS_REACHED 164 /* MSG%MAX_THRDS_REACHED */ -#define ERROR_MONITORS_NOT_SUPPORTED 165 /* MSG%none */ -#define ERROR_UNC_DRIVER_NOT_INSTALLED 166 /* MSG%UNC_DRIVER_NOT_INSTALLED */ -#define ERROR_LOCK_FAILED 167 /* MSG%LOCK_FAILED */ -#define ERROR_SWAPIO_FAILED 168 /* MSG%SWAPIO_FAILED */ -#define ERROR_SWAPIN_FAILED 169 /* MSG%SWAPIN_ATTEMPT_FAILED */ -#define ERROR_BUSY 170 /* MSG%SEGMENT_BUSY */ -/* 171%msg%INT_TOO_LONG */ -#define ERROR_CANCEL_VIOLATION 173 /* MSG%UNLOCK_VIOLATION */ -#define ERROR_ATOMIC_LOCK_NOT_SUPPORTED 174 /* MSG%none */ -#define ERROR_READ_LOCKS_NOT_SUPPORTED 175 /* MSG%none */ -#define ERROR_INVALID_SEGMENT_NUMBER 180 /* MSG%INVALID_SEGMENT_NUM */ -#define ERROR_INVALID_CALLGATE 181 /* MSG%none */ -#define ERROR_INVALID_ORDINAL 182 /* MSG%INVALID_ORDINAL */ -#define ERROR_ALREADY_EXISTS 183 /* MSG%none */ -#define ERROR_NO_CHILD_PROCESS 184 /* MSG%none */ -#define ERROR_CHILD_ALIVE_NOWAIT 185 /* MSG%none */ -#define ERROR_INVALID_FLAG_NUMBER 186 /* MSG%INVALID_FLAG_NUMBER */ -#define ERROR_SEM_NOT_FOUND 187 /* MSG%SEM_NOT_FOUND */ -#define ERROR_INVALID_STARTING_CODESEG 188 /* MSG%INVALID_STARTING_CODESEG */ -#define ERROR_INVALID_STACKSEG 189 /* MSG%INVALID_STACKSEG */ -#define ERROR_INVALID_MODULETYPE 190 /* MSG%INVALID_MODULETYPE */ -#define ERROR_INVALID_EXE_SIGNATURE 191 /* MSG%INVALID_EXE_SIGNATURE */ -#define ERROR_EXE_MARKED_INVALID 192 /* MSG%EXE_MARKED_INVALID */ -#define ERROR_BAD_EXE_FORMAT 193 /* MSG%BAD_EXE_FORMAT */ -#define ERROR_ITERATED_DATA_EXCEEDS_64k 194 /* MSG%ITERATED_DATA_EXCEEDS_64K */ -#define ERROR_INVALID_MINALLOCSIZE 195 /* MSG%INVALID_MINALLOCSIZE */ -#define ERROR_DYNLINK_FROM_INVALID_RING 196 /* MSG%DYNLINK_FROM_INVALID_RING */ -#define ERROR_IOPL_NOT_ENABLED 197 /* MSG%IOPL_NOT_ENABLED */ -#define ERROR_INVALID_SEGDPL 198 /* MSG%INVALID_SEGDPL */ -#define ERROR_AUTODATASEG_EXCEEDS_64k 199 /* MSG%AUTODATASEG_EXCEEDS_64K */ -#define ERROR_RING2SEG_MUST_BE_MOVABLE 200 /* MSG%CODESEG_CANNOT_BE_64K */ -#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201 /* MSG%RELOC_CHAIN_XEEDS_SEGMENT */ -#define ERROR_INFLOOP_IN_RELOC_CHAIN 202 /* MSG%INFLOOP_IN_RELOC_CHAIN */ -#define ERROR_ENVVAR_NOT_FOUND 203 /* MSG%ENVVAR_NOT_FOUND */ -#define ERROR_NOT_CURRENT_CTRY 204 /* MSG%none */ -#define ERROR_NO_SIGNAL_SENT 205 /* MSG%SIGNAL_NOT_SENT */ -#define ERROR_FILENAME_EXCED_RANGE 206 /* MSG%NAME_TOO_LONG */ -#define ERROR_RING2_STACK_IN_USE 207 /* MSG%RING2_STACK_IN_USE */ -#define ERROR_META_EXPANSION_TOO_LONG 208 /* MSG%WILD_CARD_NAME */ -#define ERROR_INVALID_SIGNAL_NUMBER 209 /* MSG%INVALID_SIGNAL_NUMBER */ -#define ERROR_THREAD_1_INACTIVE 210 /* MSG%THREAD_1_INACTIVE */ -#define ERROR_INFO_NOT_AVAIL 211 /* MSG%none */ -#define ERROR_LOCKED 212 /* MSG%LOCKED */ -#define ERROR_BAD_DYNALINK 213 /* MSG%none */ -#define ERROR_TOO_MANY_MODULES 214 /* MSG%TOO_MANY_MODULES */ -#define ERROR_NESTING_NOT_ALLOWED 215 /* MSG%none */ -#define ERROR_CANNOT_SHRINK 216 /* MSG%CANNOT_SHRINK */ -#define ERROR_ZOMBIE_PROCESS 217 /* MSG%none */ -#define ERROR_STACK_IN_HIGH_MEMORY 218 /* MSG%none */ -#define ERROR_INVALID_EXITROUTINE_RING 219 /* MSG%INVALID_EXITROUTINE_RING */ -#define ERROR_GETBUF_FAILED 220 /* MSG%none */ -#define ERROR_FLUSHBUF_FAILED 221 /* MSG%none */ -#define ERROR_TRANSFER_TOO_LONG 222 /* MSG%none */ -#define ERROR_FORCENOSWAP_FAILED 223 /* MSG%none */ -#define ERROR_SMG_NO_TARGET_WINDOW 224 /* PM ID can't be selected */ -#define ERROR_NO_CHILDREN 228 /* MSG%NO_CHILDREN */ -#define ERROR_INVALID_SCREEN_GROUP 229 /* MSG%none */ -#define ERROR_BAD_PIPE 230 /* MSG%ERROR_BAD_PIPE */ -#define ERROR_PIPE_BUSY 231 /* MSG%ERROR_PIPE_BUSY */ -#define ERROR_NO_DATA 232 /* MSG%ERROR_NO_DATA */ -#define ERROR_PIPE_NOT_CONNECTED 233 /* MSG%ERROR_PIPE_NOT_CONNECTED */ -#define ERROR_MORE_DATA 234 /* MSG%ERROR_MORE_DATA */ -#define ERROR_VC_DISCONNECTED 240 /* MSG%ERROR_VC_DISCONNECTED */ -#define ERROR_CIRCULARITY_REQUESTED 250 /* MSG%CIRCULARITY_REQUESTED */ -#define ERROR_DIRECTORY_IN_CDS 251 /* MSG%DIRECTORY_IN_CDS */ -#define ERROR_INVALID_FSD_NAME 252 /* MSG%INVALID_FSD_NAME */ -#define ERROR_INVALID_PATH 253 /* MSG%INVALID_PATH */ -#define ERROR_INVALID_EA_NAME 254 /* MSG%INVALID_EA_NAME */ -#define ERROR_EA_LIST_INCONSISTENT 255 /* MSG%EA_LIST_INCONSISTENT */ -#define ERROR_EA_LIST_TOO_LONG 256 /* MSG%EA_LIST_TOO_LONG */ -#define ERROR_NO_META_MATCH 257 /* MSG%NO_META_MATCH */ -#define ERROR_FINDNOTIFY_TIMEOUT 258 /* MSG%FINDNOTIFY_TIMEOUT */ -#define ERROR_NO_MORE_ITEMS 259 /* MSG%NO_MORE_ITEMS */ -#define ERROR_SEARCH_STRUC_REUSED 260 /* MSG%SEARCH_STRUC_REUSED */ -#define ERROR_CHAR_NOT_FOUND 261 /* MSG%CHAR_NOT_FOUND */ -#define ERROR_TOO_MUCH_STACK 262 /* MSG%TOO_MUCH_STACK */ -#define ERROR_INVALID_ATTR 263 /* MSG%INVALID_ATTR */ -#define ERROR_INVALID_STARTING_RING 264 /* MSG%INVALID_STARTING_RING */ -#define ERROR_INVALID_DLL_INIT_RING 265 /* MSG%INVALID_DLL_INIT_RING */ -#define ERROR_CANNOT_COPY 266 /* MSG%CANNOT_COPY */ -#define ERROR_DIRECTORY 267 /* MSG%DIRECTORY */ -#define ERROR_OPLOCKED_FILE 268 /* MSG%OPLOCKED_FILE */ -#define ERROR_OPLOCK_THREAD_EXISTS 269 /* MSG%OPLOCK_THREAD_EXISTS */ -#define ERROR_VOLUME_CHANGED 270 /* MSG%none */ -#define ERROR_FINDNOTIFY_HANDLE_IN_USE 271 /* MSG%none */ -#define ERROR_FINDNOTIFY_HANDLE_CLOSED 272 /* MSG%none */ -#define ERROR_NOTIFY_OBJECT_REMOVED 273 /* MSG%none */ -#define ERROR_ALREADY_SHUTDOWN 274 /* MSG%none */ -#define ERROR_EAS_DIDNT_FIT 275 /* MSG%none */ -#define ERROR_EA_FILE_CORRUPT 276 /* MSG%ERROR_EAS_CORRUPT */ -#define ERROR_EA_TABLE_FULL 277 /* MSG%EA_TABLE_FULL */ -#define ERROR_INVALID_EA_HANDLE 278 /* MSG%INVALID_EA_HANDLE */ -#define ERROR_NO_CLUSTER 279 /* MSG%NO_CLUSTER */ -#define ERROR_CREATE_EA_FILE 280 /* MSG%ERROR_CREATE_EA_FILE */ -#define ERROR_CANNOT_OPEN_EA_FILE 281 /* MSG%CANNOT_OPEN_FILE */ -#define ERROR_EAS_NOT_SUPPORTED 282 /* MSG%EAS_NOT_SUPPORTED */ -#define ERROR_NEED_EAS_FOUND 283 /* MSG%NEED_EAS_FOUND */ -#define ERROR_DUPLICATE_HANDLE 284 /* MSG%EAS_DISCARDED */ -#define ERROR_DUPLICATE_NAME 285 /* MSG%DUPLICATE_SEM_NAME */ -#define ERROR_EMPTY_MUXWAIT 286 /* MSG%EMPTY_MUXWAIT_SEM */ -#define ERROR_MUTEX_OWNED 287 /* MSG%MUTEX_SEM_OWNED */ -#define ERROR_NOT_OWNER 288 /* MSG%NOT_MUTEX_SEM_OWNER */ -#define ERROR_PARAM_TOO_SMALL 289 /* MSG%QUERY_MUX_PARAM_TOO_SMALL */ -#define ERROR_TOO_MANY_HANDLES 290 /* MSG%TOO_MANY_SEM_HANDLES */ -#define ERROR_TOO_MANY_OPENS 291 /* MSG%TOO_MANY_SEM_OPENS */ -#define ERROR_WRONG_TYPE 292 /* MSG%SEM_WRONG_TYPE */ -#define ERROR_UNUSED_CODE 293 /* MSG%none */ -#define ERROR_THREAD_NOT_TERMINATED 294 /* MSG%none */ -#define ERROR_INIT_ROUTINE_FAILED 295 /* MSG%none */ -#define ERROR_MODULE_IN_USE 296 /* MSG%none */ -#define ERROR_NOT_ENOUGH_WATCHPOINTS 297 /* MSG%none */ -#define ERROR_TOO_MANY_POSTS 298 /* MSG%TOO_MANY_EVENT_SEM_POSTS */ -#define ERROR_ALREADY_POSTED 299 /* MSG%EVENT_SEM_ALREADY_POSTED */ -#define ERROR_ALREADY_RESET 300 /* MSG%EVENT_SEM_ALREADY_RESET */ -#define ERROR_SEM_BUSY 301 /* MSG%SEM_BUSY */ diff --git a/os2/lib/doscalls/run/process.cpp b/os2/lib/doscalls/run/process.cpp index 72127c1d147..ac9f1d3a7e8 100644 --- a/os2/lib/doscalls/run/process.cpp +++ b/os2/lib/doscalls/run/process.cpp @@ -1,8 +1,37 @@ -/* $Id: process.cpp,v 1.2 2002/03/24 18:55:39 ea Exp $ */ +/* $Id: process.cpp,v 1.3 2002/05/30 15:11:47 robertk Exp $ +*/ +/* + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS OS/2 sub system + * FILE: dll/process.cpp + * PURPOSE: Kernelservices for OS/2 apps + * PROGRAMMER: Robert K. nonvolatil@yahoo.de + * REVISION HISTORY: + * 13-03-2002 Created + */ + + +#define INCL_DOSPROCESS +#include "../../../include/os2.h" +#include + + +APIRET STDCALL DosSleep(ULONG msec) +{ + NTSTATUS stat; + TIME Interv; + Interv.QuadPart= -(10000 * msec); + stat = NtDelayExecution( TRUE, &Interv ); + return 0; +} + + +/* $Id: process.cpp,v 1.3 2002/05/30 15:11:47 robertk Exp $ */ /* Terminates the current thread or the current Process. Decission is made by action FIXME: move this code to OS2.EXE */ -VOID APIENTRY Dos32Exit(ULONG action, ULONG result) +VOID APIENTRY DosExit(ULONG action, ULONG result) { // decide what to do if( action == EXIT_THREAD) @@ -15,4 +44,71 @@ VOID APIENTRY Dos32Exit(ULONG action, ULONG result) } } + +APIRET STDCALL DosBeep(ULONG freq, ULONG dur) +{ + if( freq<0x25 || freq>0x7FFF ) + return 395; // ERROR_INVALID_FREQUENCY + + HANDLE hBeep; + IO_STATUS_BLOCK ComplStatus; + //UNICODE_STRING + OBJECT_ATTRIBUTES oa = {sizeof oa, 0, {8,8,"\\\\.\\Beep"l}, OBJ_CASE_INSENSITIVE}; + NTSTATUS stat; + stat = NtOpenFile( &hBeep, + FILE_READ_DATA | FILE_WRITE_DATA, + &oa, + &ComplStatus, + 0, // no sharing + FILE_OPEN ); + + if (!NT_SUCCESS(stat)) + { + } + + if( ComplStatus-> + /* HANDLE hBeep; + BEEP_SET_PARAMETERS BeepSetParameters; + DWORD dwReturned; + + hBeep = Dos32Open("\\\\.\\Beep", + FILE_GENERIC_READ | FILE_GENERIC_WRITE, + 0, + NULL, + OPEN_EXISTING, + 0, + NULL); + if (hBeep == INVALID_HANDLE_VALUE) + return FALSE; +*/ + // Set beep data + /* BeepSetParameters.Frequency = dwFreq; + BeepSetParameters.Duration = dwDuration; + + DeviceIoControl(hBeep, + IOCTL_BEEP_SET, + &BeepSetParameters, + sizeof(BEEP_SET_PARAMETERS), + NULL, + 0, + &dwReturned, + NULL); + + CloseHandle (hBeep); + + return TRUE; +*/ + + + + return 0; +} + + +APIRET STDCALL DosCreateThread(PTID ptid, PFNTHREAD pfn, + ULONG param, ULONG flag, ULONG cbStack) +{ + return 0; +} + /* EOF */