- Timestamp:
- Dec 20, 2002, 11:38:58 AM (23 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 2 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmdevio.cpp
r8840 r9533 1 /* $Id: hmdevio.cpp,v 1.2 8 2002-07-05 17:59:30sandervl Exp $ */1 /* $Id: hmdevio.cpp,v 1.29 2002-12-20 10:38:56 sandervl Exp $ */ 2 2 3 3 /* … … 27 27 #include <win\winioctl.h> 28 28 #include "hmdevio.h" 29 #include "cio.h"30 29 #include "map.h" 31 30 #include "exceptutil.h" … … 35 34 #include "dbglocal.h" 36 35 37 static BOOL fX86Init = FALSE;38 //SvL: Used in iccio.asm (how can you put these in the .asm data segment without messing things up?)39 ULONG ioentry = 0;40 USHORT gdt = 0;41 char devname[] = "/dev/fastio$";42 43 static BOOL GpdDevIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);44 static BOOL MAPMEMIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);45 static BOOL FXMEMMAPIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);46 static BOOL VPCIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);47 48 36 static WIN32DRV knownDriver[] = 49 {{"\\\\.\\GpdDev", "", TRUE, 666, GpdDevIOCtl}, 50 { "\\\\.\\MAPMEM", "PMAP$", FALSE, 0, MAPMEMIOCtl}, 51 { "FXMEMMAP.VXD", "PMAP$", FALSE, 0, FXMEMMAPIOCtl}, 37 { {0} 52 38 }; 53 39 54 static int nrKnownDrivers = sizeof(knownDriver)/sizeof(WIN32DRV);55 BOOL fVirtualPC = FALSE;40 static int nrKnownDrivers = 0; 41 // = sizeof(knownDriver)/sizeof(WIN32DRV); 56 42 57 43 //****************************************************************************** … … 262 248 //****************************************************************************** 263 249 //****************************************************************************** 264 static BOOL GpdDevIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)265 {266 ULONG port, val = 0;267 268 if(fX86Init == FALSE) {269 if(io_init() == 0)270 fX86Init = TRUE;271 else return(FALSE);272 }273 274 *lpBytesReturned = 0;275 276 port = ((GENPORT_WRITE_INPUT *)lpInBuffer)->PortNumber;277 278 switch((dwIoControlCode >> 2) & 0xFFF) {279 case IOCTL_GPD_READ_PORT_UCHAR:280 if(nOutBufferSize < sizeof(char))281 return(FALSE);282 283 val = c_inb(port);284 *(char *)lpOutBuffer = val;285 *lpBytesReturned = sizeof(char);286 break;287 case IOCTL_GPD_READ_PORT_USHORT:288 if(nOutBufferSize < sizeof(USHORT))289 return(FALSE);290 291 val = c_inw(port);292 *(USHORT *)lpOutBuffer = val;293 *lpBytesReturned = sizeof(USHORT);294 break;295 case IOCTL_GPD_READ_PORT_ULONG:296 if(nOutBufferSize < sizeof(ULONG))297 return(FALSE);298 299 val = c_inl(port);300 *(ULONG *)lpOutBuffer = val;301 *lpBytesReturned = sizeof(ULONG);302 break;303 case IOCTL_GPD_WRITE_PORT_UCHAR:304 val = ((GENPORT_WRITE_INPUT *)lpInBuffer)->CharData;305 c_outb(port, val);306 break;307 case IOCTL_GPD_WRITE_PORT_USHORT:308 val = ((GENPORT_WRITE_INPUT *)lpInBuffer)->ShortData;309 c_outw(port, val);310 break;311 case IOCTL_GPD_WRITE_PORT_ULONG:312 val = ((GENPORT_WRITE_INPUT *)lpInBuffer)->LongData;313 c_outl(port, val);314 break;315 default:316 dprintf(("GpdDevIOCtl unknown func %X\n", (dwIoControlCode >> 2) & 0xFFF));317 return(FALSE);318 }319 320 return(TRUE);321 }322 //******************************************************************************323 //******************************************************************************324 static BOOL MAPMEMIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)325 {326 PHYSICAL_MEMORY_INFO *meminfo = (PHYSICAL_MEMORY_INFO *)lpInBuffer;327 struct map_ioctl memmap;328 329 *lpBytesReturned = 0;330 331 switch((dwIoControlCode >> 2) & 0xFFF) {332 case IOCTL_MAPMEM_MAP_USER_PHYSICAL_MEMORY:333 if(nInBufferSize != sizeof(PHYSICAL_MEMORY_INFO))334 return(FALSE);335 336 memmap.a.phys = meminfo->BusAddress.u.LowPart;337 memmap.size = meminfo->Length;338 dprintf(("DeviceIoControl map phys address %X length %X\n", memmap.a.phys, memmap.size));339 if(mpioctl((HFILE)hDevice, IOCTL_MAP, &memmap) == -1) {340 dprintf(("mpioctl failed!\n"));341 return(FALSE);342 }343 344 dprintf(("DeviceIoControl map virt address = %X\n", memmap.a.user));345 *(ULONG *)lpOutBuffer = (ULONG)memmap.a.user;346 break;347 case IOCTL_MAPMEM_UNMAP_USER_PHYSICAL_MEMORY:348 dprintf(("Unmap mapping %X\n", *(ULONG *)lpInBuffer));349 memmap.a.phys = *(ULONG *)lpInBuffer;350 memmap.size = 0;351 if(mpioctl((HFILE)hDevice, IOCTL_MAP, &memmap) == -1)352 return(FALSE);353 break;354 default:355 dprintf(("MAPMEMIOCtl unknown func %X\n", (dwIoControlCode >> 2) & 0xFFF));356 return(FALSE);357 }358 359 return(TRUE);360 }361 //******************************************************************************362 //******************************************************************************363 static BOOL FXMEMMAPIOCtl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)364 {365 struct map_ioctl memmap;366 MAPDEVREQUEST *vxdmem = (MAPDEVREQUEST *)lpInBuffer;367 368 switch(dwIoControlCode) {369 case 1:370 break;371 case 2:372 memmap.a.phys = (DWORD)vxdmem->mdr_PhysicalAddress;373 memmap.size = vxdmem->mdr_SizeInBytes;374 dprintf(("DeviceIoControl map phys address %X length %X\n", memmap.a.phys, memmap.size));375 if(mpioctl((HFILE)hDevice, IOCTL_MAP, &memmap) == -1) {376 dprintf(("mpioctl failed!\n"));377 return(FALSE);378 }379 380 dprintf(("DeviceIoControl map virt address = %X\n", memmap.a.user));381 vxdmem->mdr_LinearAddress = (PVOID)memmap.a.user;382 break;383 default:384 dprintf(("FXMEMMAPIOCtl unknown func %X\n", (dwIoControlCode >> 2) & 0xFFF));385 return(FALSE);386 }387 388 return(TRUE);389 }390 //******************************************************************************391 //******************************************************************************392 250 HMCustomDriver::HMCustomDriver(HINSTANCE hInstance, LPCSTR lpDeviceName, LPVOID lpDriverData) 393 251 : HMDeviceDriver(lpDeviceName), hDrvDll(0), lpDriverData(NULL) -
trunk/src/kernel32/kernel32.mak
r9320 r9533 1 # $Id: kernel32.mak,v 1.3 6 2002-10-03 12:49:50sandervl Exp $1 # $Id: kernel32.mak,v 1.37 2002-12-20 10:38:57 sandervl Exp $ 2 2 3 3 # … … 67 67 $(OBJDIR)\asmutil.obj \ 68 68 $(OBJDIR)\lang.obj \ 69 $(OBJDIR)\iccio.obj \70 69 $(OBJDIR)\map.obj \ 71 70 $(OBJDIR)\win32util.obj \ … … 74 73 $(OBJDIR)\os2heap.obj \ 75 74 $(OBJDIR)\vmutex.obj \ 76 ####$(OBJDIR)\vsemaphore.obj \77 75 $(OBJDIR)\initterm.obj \ 78 76 $(OBJDIR)\initkernel32.obj \ -
trunk/src/kernel32/windllbase.cpp
r8923 r9533 1 /* $Id: windllbase.cpp,v 1.3 0 2002-07-26 10:48:40sandervl Exp $ */1 /* $Id: windllbase.cpp,v 1.31 2002-12-20 10:38:57 sandervl Exp $ */ 2 2 3 3 /* … … 39 39 #include "exceptions.h" 40 40 #include "exceptutil.h" 41 #include "cio.h"42 41 #include "vmutex.h" 43 42 #include "oslibmisc.h" -
trunk/src/kernel32/windllpe2lx.cpp
r6301 r9533 1 /* $Id: windllpe2lx.cpp,v 1.1 1 2001-07-10 20:18:12 birdExp $ */1 /* $Id: windllpe2lx.cpp,v 1.12 2002-12-20 10:38:57 sandervl Exp $ */ 2 2 3 3 /* … … 31 31 #include <wprocess.h> 32 32 33 #include "cio.h" // I/O34 33 #include "oslibmisc.h" // OSLibGetDllName 35 34 #include "conwin.h" // Windows Header for console only … … 84 83 { /* Process attach */ 85 84 86 /* Init I/O */87 if (getenv("WIN32_IOPL2"))88 io_init1();89 90 85 /* Get Lib name and match Pe2Lx version with kernel32 version. */ 91 86 pszName = OSLibGetDllName(hinstance); -
trunk/src/kernel32/winexebase.cpp
r8457 r9533 1 /* $Id: winexebase.cpp,v 1.2 0 2002-05-20 13:48:51sandervl Exp $ */1 /* $Id: winexebase.cpp,v 1.21 2002-12-20 10:38:57 sandervl Exp $ */ 2 2 3 3 /* … … 30 30 #include "exceptions.h" 31 31 #include "exceptutil.h" 32 #include "cio.h"33 32 34 33 #include "conwin.h" // Windows Header for console only … … 98 97 ULONG rc; 99 98 100 if(getenv("WIN32_IOPL2")) {101 io_init1();102 }103 99 #ifdef DEBUG 104 100 TEB *teb = GetThreadTEB(); -
trunk/src/kernel32/winexelx.cpp
r7567 r9533 1 /* $Id: winexelx.cpp,v 1.1 0 2001-12-07 14:13:39sandervl Exp $ */1 /* $Id: winexelx.cpp,v 1.11 2002-12-20 10:38:58 sandervl Exp $ */ 2 2 3 3 /* … … 31 31 #include "exceptions.h" 32 32 #include "exceptutil.h" 33 #include "cio.h"34 33 35 34 #define DBG_LOCALLOG DBG_winexelx … … 52 51 if(WinExe != NULL) //should never happen 53 52 delete(WinExe); 54 55 if(getenv("WIN32_IOPL2")) {56 io_init1();57 }58 53 59 54 rc = DosGetInfoBlocks(&ptib, &ppib); … … 102 97 ULONG rc; 103 98 104 if(getenv("WIN32_IOPL2")) {105 io_init1();106 }107 99 dprintf(("Start executable %X\n", WinExe)); 108 100 -
trunk/src/kernel32/winexepe2lx.cpp
r8436 r9533 1 /* $Id: winexepe2lx.cpp,v 1.1 1 2002-05-16 13:45:32sandervl Exp $ */1 /* $Id: winexepe2lx.cpp,v 1.12 2002-12-20 10:38:58 sandervl Exp $ */ 2 2 3 3 /* … … 32 32 #include <win32api.h> 33 33 34 #include "cio.h" // I/O35 34 #include "oslibmisc.h" // OSLibGetDllName 36 35 #include "conwin.h" // Windows Header for console only … … 70 69 Win32Pe2LxExe *pWinPe2LxExe; 71 70 72 /* I/O init. */73 if (getenv("WIN32_IOPL2"))74 io_init1();75 76 71 /* Check that pe2lx version matches the version of kernel32.dll. */ 77 72 CheckVersion(ulPe2LxVersion & ~0x80000000UL, OSLibGetDllName(hinstance)); -
trunk/src/kernel32/winexepeldr.cpp
r8913 r9533 1 /* $Id: winexepeldr.cpp,v 1. 19 2002-07-23 13:51:48 sandervl Exp $ */1 /* $Id: winexepeldr.cpp,v 1.20 2002-12-20 10:38:58 sandervl Exp $ */ 2 2 3 3 /* … … 34 34 #include "exceptutil.h" 35 35 36 #include "cio.h"37 36 #include "oslibmisc.h" 38 37 … … 120 119 free(szFullCmdLine); 121 120 122 if(getenv("WIN32_IOPL2")) {123 io_init1();124 }125 121 //Init console before loading executable as dlls might want to print 126 122 //something on the console while being loaded -
trunk/src/kernel32/wprocess.cpp
r9517 r9533 1 /* $Id: wprocess.cpp,v 1.16 6 2002-12-17 13:48:24sandervl Exp $ */1 /* $Id: wprocess.cpp,v 1.167 2002-12-20 10:38:58 sandervl Exp $ */ 2 2 3 3 /* … … 42 42 #include "console.h" 43 43 #include "wincon.h" 44 #include "cio.h"45 44 #include "versionos2.h" /*PLF Wed 98-03-18 02:36:51*/ 46 45 #include <wprocess.h>
Note:
See TracChangeset
for help on using the changeset viewer.