Changeset 5019


Ignore:
Timestamp:
Jan 23, 2001, 7:31:26 PM (24 years ago)
Author:
sandervl
Message:

handle manager class for standard handles added

Location:
trunk/src/kernel32
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/src/kernel32/HandleManager.cpp

    r5016 r5019  
    1 /* $Id: HandleManager.cpp,v 1.61 2001-01-23 11:59:44 sandervl Exp $ */
     1/* $Id: HandleManager.cpp,v 1.62 2001-01-23 18:31:25 sandervl Exp $ */
    22
    33/*
     
    6161#include "HMThread.h"
    6262#include "HMNPipe.h"
     63#include "HMStd.h"
    6364#include <vmutex.h>
    6465#include <win\thread.h>
     
    129130                                         /* this MUST !!! be false initially */
    130131
    131   HMDeviceHandler        *pHMOpen32;      /* default handle manager instance */
     132  HMDeviceHandler        *pHMStandard;     /* default handle manager instance */
     133  HMDeviceHandler        *pHMOpen32;       /* default handle manager instance */
    132134  HMDeviceHandler        *pHMEvent;        /* static instances of subsystems */
    133135  HMDeviceHandler        *pHMFile;
     
    253255                                                       /* free handle found ? */
    254256    if (INVALID_HANDLE_VALUE == TabWin32Handles[ulLoop].hmHandleData.hHMHandle) {
    255         //SvL: Mark handle as taken here. Doing it outside of this function
     257        //SvL: Mark handle as allocated here. Doing it outside of this function
    256258        //     isn't thread safe. (and not very smart)
    257259        TabWin32Handles[ulLoop].hmHandleData.hHMHandle      = ulLoop;
     
    403405
    404406    /* copy standard handles from OS/2's Open32 Subsystem */
     407    HMGlobals.pHMStandard   = new HMDeviceStandardClass("\\\\STANDARD_HANDLE\\");
    405408    HMSetStdHandle(STD_INPUT_HANDLE,  O32_GetStdHandle(STD_INPUT_HANDLE));
    406409    HMSetStdHandle(STD_OUTPUT_HANDLE, O32_GetStdHandle(STD_OUTPUT_HANDLE));
    407410    HMSetStdHandle(STD_ERROR_HANDLE,  O32_GetStdHandle(STD_ERROR_HANDLE));
    408411
    409                         /* create handle manager instance for Open32 handles */
     412    /* create handle manager instance for Open32 handles */
    410413    HMGlobals.pHMOpen32     = new HMDeviceOpen32Class("\\\\.\\");
    411414    HMGlobals.pHMEvent      = new HMDeviceEventClass("\\\\EVENT\\");
     
    462465  if(HMGlobals.pHMDisk)
    463466    delete HMGlobals.pHMDisk;
     467  if(HMGlobals.pHMStandard);
     468    delete HMGlobals.pHMStandard;
    464469
    465470  return (NO_ERROR);
     
    707712 *****************************************************************************/
    708713
    709 HANDLE  HMGetStdHandle(DWORD nStdHandle)
     714HANDLE HMGetStdHandle(DWORD nStdHandle)
    710715{
    711716  switch (nStdHandle)
     
    737742 *****************************************************************************/
    738743
    739 BOOL    HMSetStdHandle(DWORD  nStdHandle,
    740                                HANDLE hHandle)
    741 {
     744BOOL HMSetStdHandle(DWORD  nStdHandle, HANDLE hHandleOpen32)
     745{
     746 PHMHANDLEDATA pHMHandleData;
     747 HANDLE        hHandle;
     748
     749  hHandle = _HMHandleGetFree();              /* get free handle */
     750  if (hHandle == -1)                         /* oops, no free handles ! */
     751  {
     752    SetLastError(ERROR_NOT_ENOUGH_MEMORY);      /* use this as error message */
     753    return 0;
     754  }
     755
     756  /* initialize the complete HMHANDLEDATA structure */
     757  pHMHandleData = &TabWin32Handles[hHandle].hmHandleData;
     758  pHMHandleData->dwType     = FILE_TYPE_CHAR;
     759  pHMHandleData->dwAccess   = 0;
     760  pHMHandleData->dwShare    = 0;
     761  pHMHandleData->dwCreation = 0;
     762  pHMHandleData->dwFlags    = 0;
     763  pHMHandleData->dwUserData = nStdHandle;
     764  pHMHandleData->hHMHandle  = hHandleOpen32;
     765  pHMHandleData->lpHandlerData = NULL;
     766
     767  TabWin32Handles[hHandle].pDeviceHandler = HMGlobals.pHMStandard;
     768
    742769  switch (nStdHandle)
    743770  {
     
    13771404  if (-1 == iIndex)                                               /* error ? */
    13781405  {
    1379     //Must return FILE_TYPE_CHAR here; (used to fail index check)
    1380     //---------->>> ASSUMES that _HMHandleQuery failes!!!!!!!!!!!!!!!!
    1381     if((hFile == GetStdHandle(STD_INPUT_HANDLE)) ||
    1382        (hFile == GetStdHandle(STD_OUTPUT_HANDLE)) ||
    1383        (hFile == GetStdHandle(STD_ERROR_HANDLE)))
    1384     {
    1385         return FILE_TYPE_CHAR;
    1386     }
    1387     else
    1388     {
    13891406      SetLastError(ERROR_INVALID_HANDLE);     /* set win32 error information */
    13901407      return FILE_TYPE_UNKNOWN;                            /* signal failure */
    1391     }
    13921408  }
    13931409
  • TabularUnified trunk/src/kernel32/KERNEL32.CPP

    r4534 r5019  
    1 /* $Id: KERNEL32.CPP,v 1.57 2000-10-26 17:21:38 sandervl Exp $ */
     1/* $Id: KERNEL32.CPP,v 1.58 2001-01-23 18:31:25 sandervl Exp $ */
    22
    33/*
     
    278278 char *astring;
    279279
    280     dprintf(("KERNEL32:  OS2FatalAppExitW\n"));
     280    dprintf(("KERNEL32: OS2FatalAppExitW %x", arg1));
    281281    astring = UnicodeToAsciiString((LPWSTR)arg2);
    282282    O32_FatalAppExit(arg1, astring);
     
    288288VOID WIN32API FatalExit( UINT arg1)
    289289{
    290     dprintf(("KERNEL32:  OS2FatalExit\n"));
     290    dprintf(("KERNEL32: FatalExit %x", arg1));
    291291    O32_FatalExit(arg1);
    292292}
     
    302302BOOL WIN32API IsBadHugeWritePtr( PVOID arg1, UINT  arg2)
    303303{
    304     dprintf(("KERNEL32:  OS2IsBadHugeWritePtr\n"));
     304    dprintf(("KERNEL32: IsBadHugeWritePtr\n"));
    305305    return O32_IsBadHugeWritePtr(arg1, arg2);
    306306}
     
    309309BOOL WIN32API IsDBCSLeadByte(BYTE arg1)
    310310{
    311     dprintf2(("KERNEL32:  OS2IsDBCSLeadByte\n"));
     311    dprintf2(("KERNEL32:  IsDBCSLeadByte %x", arg1));
    312312    return O32_IsDBCSLeadByte(arg1);
    313313}
  • TabularUnified trunk/src/kernel32/conout.cpp

    r4407 r5019  
    1 /* $Id: conout.cpp,v 1.8 2000-10-03 17:28:28 sandervl Exp $ */
     1/* $Id: conout.cpp,v 1.9 2001-01-23 18:31:25 sandervl Exp $ */
    22
    33/*
     
    243243  if (pHMHandleData->hHMHandle != pConsoleGlobals->hConsoleBuffer)
    244244  {
    245 #if 0
    246     HMDeviceRequest(pConsoleGlobals->hConsoleBuffer,        /* hide the cursor */
    247                     DRQ_INTERNAL_CONSOLECURSORSHOW,
    248                     CONSOLECURSOR_HIDE,
    249                     0,
    250                     0,
    251                     0);
    252 #endif
    253 
    254245    dwResult = HMWriteFile(pConsoleGlobals->hConsoleBuffer,
    255246                           lpBuffer,
     
    258249                           lpOverlapped);
    259250
    260 #if 0
    261     HMDeviceRequest(pConsoleGlobals->hConsoleBuffer,        /* show the cursor */
    262                     DRQ_INTERNAL_CONSOLECURSORSHOW,
    263                     CONSOLECURSOR_SHOW,
    264                     0,
    265                     0,
    266                     0);
    267 #endif
    268 
    269251    return (dwResult);                                 /* return result code */
    270252  }
    271   else
     253  else {
    272254    return (FALSE);                    /* raise error condition */
     255  }
    273256}
    274257
  • TabularUnified trunk/src/kernel32/dbglocal.cpp

    r4474 r5019  
    1 /* $Id: dbglocal.cpp,v 1.12 2000-10-10 17:14:02 sandervl Exp $ */
     1/* $Id: dbglocal.cpp,v 1.13 2001-01-23 18:31:26 sandervl Exp $ */
    22
    33/*
     
    121121"hmnpipe",
    122122"hmdisk",
    123 "version"
     123"version",
     124"hmstd"
    124125};
    125126//******************************************************************************
  • TabularUnified trunk/src/kernel32/dbglocal.h

    r4474 r5019  
    1 /* $Id: dbglocal.h,v 1.12 2000-10-10 17:14:03 sandervl Exp $ */
     1/* $Id: dbglocal.h,v 1.13 2001-01-23 18:31:26 sandervl Exp $ */
    22
    33/*
     
    121121#define DBG_hmdisk         99
    122122#define DBG_version        100
    123 #define DBG_MAXFILES       101
     123#define DBG_hmstd          101
     124#define DBG_MAXFILES       102
    124125
    125126extern USHORT DbgEnabled[DBG_MAXFILES];
  • TabularUnified trunk/src/kernel32/makefile

    r4721 r5019  
    1 # $Id: makefile,v 1.108 2000-12-03 00:33:26 bird Exp $
     1# $Id: makefile,v 1.109 2001-01-23 18:31:26 sandervl Exp $
    22
    33#
     
    6868$(OBJDIR)\hmcomm.obj \
    6969$(OBJDIR)\hmsemaphore.obj \
     70$(OBJDIR)\hmstd.obj \
    7071$(OBJDIR)\wprocess.obj \
    7172$(OBJDIR)\conprop.obj \
Note: See TracChangeset for help on using the changeset viewer.