Changeset 4300 for trunk/src/kernel32/hmdevio.cpp
- Timestamp:
- Sep 21, 2000, 10:03:00 PM (25 years ago)
- 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 hughExp $ */1 /* $Id: hmdevio.cpp,v 1.6 2000-09-21 20:03:00 sandervl Exp $ */ 2 2 3 3 /* … … 18 18 #define INCL_DOSPROCESS /* DOS Process values */ 19 19 #define INCL_DOSMISC /* DOS Miscellanous values */ 20 #include <os2wrap.h> 20 #include <os2wrap.h> //Odin32 OS/2 api wrappers 21 21 #include <string.h> 22 22 … … 28 28 #include "exceptutil.h" 29 29 30 #define DBG_LOCALLOG 30 #define DBG_LOCALLOG DBG_hmdevio 31 31 #include "dbglocal.h" 32 32 33 33 static fX86Init = FALSE; 34 34 //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;35 ULONG ioentry = 0; 36 USHORT gdt = 0; 37 37 char devname[] = "/dev/fastio$"; 38 38 … … 42 42 43 43 static WIN32DRV knownDriver[] = 44 {{"\\\\.\\GpdDev", " /dev/fastio$",TRUE, 666, GpdDevIOCtl},44 {{"\\\\.\\GpdDev", "", TRUE, 666, GpdDevIOCtl}, 45 45 { "\\\\.\\MAPMEM", "PMAP$", FALSE, 0, MAPMEMIOCtl}, 46 46 { "FXMEMMAP.VXD", "PMAP$", FALSE, 0, FXMEMMAPIOCtl}}; … … 55 55 DWORD rc; 56 56 57 for(int i=0;i<nrKnownDrivers;i++) 57 for(int i=0;i<nrKnownDrivers;i++) 58 58 { 59 59 driver = new HMDeviceDriver(knownDriver[i].szWin32Name, 60 60 knownDriver[i].szOS2Name, 61 61 knownDriver[i].fCreateFile, 62 62 knownDriver[i].devIOCtl); 63 63 64 65 66 67 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)); 68 68 } 69 69 return; … … 71 71 //****************************************************************************** 72 72 //****************************************************************************** 73 HMDeviceDriver::HMDeviceDriver(LPCSTR lpDeviceName, LPSTR lpOS2DevName, BOOL fCreate, 73 HMDeviceDriver::HMDeviceDriver(LPCSTR lpDeviceName, LPSTR lpOS2DevName, BOOL fCreate, 74 74 WINIOCTL pDevIOCtl) 75 75 : HMDeviceKernelObjectClass(lpDeviceName) … … 110 110 111 111 if(szOS2Name[0] == 0) { 112 113 112 pHMHandleData->hHMHandle = 0; 113 return (NO_ERROR); 114 114 } 115 115 116 116 tryopen: 117 rc = DosOpen( 118 119 120 121 122 123 124 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 */ 125 125 126 126 if(rc == ERROR_TOO_MANY_OPEN_FILES) { … … 128 128 LONG ReqCount = 32; 129 129 130 131 132 133 134 135 136 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; 137 137 } 138 138 139 139 dprintf(("DosOpen %s returned %d\n", szOS2Name, rc)); 140 140 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); 148 146 } 149 147 //****************************************************************************** … … 168 166 { 169 167 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); 184 173 } 185 174 … … 309 298 rc = DosTmrQueryTime(&time); 310 299 if(rc) { 311 312 300 dprintf(("DosTmrQueryTime returned %d\n", rc)); 301 return(FALSE); 313 302 } 314 303 lpPerformanceCount->u.LowPart = time.ulLo; … … 325 314 rc = DosTmrQueryFreq(&freq); 326 315 if(rc) { 327 328 316 dprintf(("DosTmrQueryFreq returned %d\n", rc)); 317 return(FALSE); 329 318 } 330 319 lpFrequency->u.LowPart = freq;
Note:
See TracChangeset
for help on using the changeset viewer.