Ignore:
Timestamp:
Sep 21, 2000, 10:03:00 PM (25 years ago)
Author:
sandervl
Message:

changed back hmdevio.cpp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/hmdevio.cpp

    r4285 r4300  
    1 /* $Id: hmdevio.cpp,v 1.5 2000-09-20 21:32:52 hugh Exp $ */
     1/* $Id: hmdevio.cpp,v 1.6 2000-09-21 20:03:00 sandervl Exp $ */
    22
    33/*
     
    1818#define INCL_DOSPROCESS          /* DOS Process values       */
    1919#define INCL_DOSMISC             /* DOS Miscellanous values  */
    20 #include <os2wrap.h>  //Odin32 OS/2 api wrappers
     20#include <os2wrap.h>    //Odin32 OS/2 api wrappers
    2121#include <string.h>
    2222
     
    2828#include "exceptutil.h"
    2929
    30 #define DBG_LOCALLOG  DBG_hmdevio
     30#define DBG_LOCALLOG    DBG_hmdevio
    3131#include "dbglocal.h"
    3232
    3333static fX86Init  = FALSE;
    3434//SvL: Used in iccio.asm (how can you put these in the .asm data segment without messing things up?)
    35 //ULONG  ioentry   = 0;
    36 //USHORT gdt       = 0;
     35ULONG  ioentry   = 0;
     36USHORT gdt       = 0;
    3737char   devname[] = "/dev/fastio$";
    3838
     
    4242
    4343static WIN32DRV knownDriver[] =
    44     {{"\\\\.\\GpdDev", "/dev/fastio$", TRUE,  666,   GpdDevIOCtl},
     44    {{"\\\\.\\GpdDev", "",      TRUE,  666,   GpdDevIOCtl},
    4545    { "\\\\.\\MAPMEM", "PMAP$", FALSE, 0,     MAPMEMIOCtl},
    4646    { "FXMEMMAP.VXD",  "PMAP$", FALSE, 0,     FXMEMMAPIOCtl}};
     
    5555 DWORD rc;
    5656
    57     for(int i=0;i<nrKnownDrivers;i++)
     57    for(int i=0;i<nrKnownDrivers;i++) 
    5858    {
    59   driver = new HMDeviceDriver(knownDriver[i].szWin32Name,
     59        driver = new HMDeviceDriver(knownDriver[i].szWin32Name,
    6060                                    knownDriver[i].szOS2Name,
    6161                                    knownDriver[i].fCreateFile,
    6262                                    knownDriver[i].devIOCtl);
    6363
    64   rc = HMDeviceRegister(knownDriver[i].szWin32Name, driver);
    65       if (rc != NO_ERROR)                                  /* check for errors */
    66           dprintf(("KERNEL32:RegisterDevices: registering %s failed with %u.\n",
    67                     knownDriver[i].szWin32Name, rc));
     64        rc = HMDeviceRegister(knownDriver[i].szWin32Name, driver);
     65        if (rc != NO_ERROR)                                  /* check for errors */
     66                dprintf(("KERNEL32:RegisterDevices: registering %s failed with %u.\n",
     67                          knownDriver[i].szWin32Name, rc));
    6868    }
    6969    return;
     
    7171//******************************************************************************
    7272//******************************************************************************
    73 HMDeviceDriver::HMDeviceDriver(LPCSTR lpDeviceName, LPSTR lpOS2DevName, BOOL fCreate,
     73HMDeviceDriver::HMDeviceDriver(LPCSTR lpDeviceName, LPSTR lpOS2DevName, BOOL fCreate, 
    7474                               WINIOCTL pDevIOCtl)
    7575                : HMDeviceKernelObjectClass(lpDeviceName)
     
    110110
    111111  if(szOS2Name[0] == 0) {
    112       pHMHandleData->hHMHandle = 0;
    113       return (NO_ERROR);
     112        pHMHandleData->hHMHandle = 0;
     113        return (NO_ERROR);
    114114  }
    115115
    116116tryopen:
    117   rc = DosOpen( szOS2Name,                        /* File path name */
    118                 &hfFileHandle,                  /* File handle */
    119                 &ulAction,                      /* Action taken */
    120           0,
    121           FILE_NORMAL,
    122             FILE_OPEN,
    123             sharetype,
    124                 0L);                            /* No extended attribute */
     117  rc = DosOpen( szOS2Name,                        /* File path name */
     118                &hfFileHandle,                  /* File handle */
     119                &ulAction,                      /* Action taken */
     120                0,
     121                FILE_NORMAL,
     122                FILE_OPEN,
     123                sharetype,
     124                0L);                            /* No extended attribute */
    125125
    126126  if(rc == ERROR_TOO_MANY_OPEN_FILES) {
     
    128128   LONG  ReqCount = 32;
    129129
    130   rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    131   if(rc) {
    132     dprintf(("DosSetRelMaxFH returned %d", rc));
    133     return rc;
    134   }
    135   dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
    136   goto tryopen;
     130        rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     131        if(rc) {
     132                dprintf(("DosSetRelMaxFH returned %d", rc));
     133                return rc;
     134        }
     135        dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
     136        goto tryopen;
    137137  }
    138138
    139139  dprintf(("DosOpen %s returned %d\n", szOS2Name, rc));
    140140
    141   if(rc == NO_ERROR)
    142   {
    143     pHMHandleData->hHMHandle = hfFileHandle;
    144     return (NO_ERROR);
    145   }
    146   else
    147     return(rc);
     141  if(rc == NO_ERROR) {
     142        pHMHandleData->hHMHandle = hfFileHandle;
     143        return (NO_ERROR);
     144  }
     145  else  return(rc);
    148146}
    149147//******************************************************************************
     
    168166{
    169167 ULONG port, val = 0;
    170  WORD  gdt;
    171  HRESULT rc;
    172  ULONG ulAction;
    173 
    174   if(fX86Init == FALSE)
    175   {
    176     rc = DosDevIOCtl( hDevice, 118, 100, 0,0,0,&gdt,2,&ulAction);
    177 
    178     if(rc)
    179       return FALSE;
    180 
    181     io_init2(gdt);
    182 
    183     fX86Init = TRUE;
     168
     169  if(fX86Init == FALSE) {
     170        if(io_init() == 0)
     171                fX86Init = TRUE;
     172        else    return(FALSE);
    184173  }
    185174
     
    309298  rc = DosTmrQueryTime(&time);
    310299  if(rc) {
    311       dprintf(("DosTmrQueryTime returned %d\n", rc));
    312       return(FALSE);
     300        dprintf(("DosTmrQueryTime returned %d\n", rc));
     301        return(FALSE);
    313302  }
    314303  lpPerformanceCount->u.LowPart  = time.ulLo;
     
    325314  rc = DosTmrQueryFreq(&freq);
    326315  if(rc) {
    327       dprintf(("DosTmrQueryFreq returned %d\n", rc));
    328       return(FALSE);
     316        dprintf(("DosTmrQueryFreq returned %d\n", rc));
     317        return(FALSE);
    329318  }
    330319  lpFrequency->u.LowPart  = freq;
Note: See TracChangeset for help on using the changeset viewer.