Ignore:
Timestamp:
Oct 12, 2001, 8:10:59 PM (24 years ago)
Author:
phaller
Message:

.

File:
1 edited

Legend:

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

    r6988 r7032  
    1 /* $Id: oslibdos.cpp,v 1.76 2001-10-10 16:03:27 phaller Exp $ */
     1/* $Id: oslibdos.cpp,v 1.77 2001-10-12 18:10:59 phaller Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    25832583{
    25842584  APIRET rc;
     2585  PVOID pTiledParm    = pParm;
     2586  BOOL  flagTiledParm = FALSE;
     2587  PVOID pTiledData    = pData;
     2588  BOOL  flagTiledData = FALSE;
     2589 
     2590#define MEM_TILED_CEILING 0x1fffffff
     2591 
     2592  // bounce buffer support
     2593  if ( (DWORD)pTiledParm > MEM_TILED_CEILING)
     2594  {
     2595    rc = DosAllocMem(&pTiledParm, dwParmMaxLen, PAG_READ | PAG_WRITE);
     2596    if (rc)
     2597      goto _exit_ioctl;
     2598   
     2599    flagTiledParm = TRUE;
     2600  }
     2601 
     2602  if ( (DWORD)pTiledData > MEM_TILED_CEILING)
     2603  {
     2604    rc = DosAllocMem(&pTiledData, dwDataMaxLen, PAG_READ | PAG_WRITE);
     2605    if (rc)
     2606      goto _exit_ioctl;
     2607   
     2608    flagTiledData = TRUE;
     2609  }
    25852610
    25862611  rc = DosDevIOCtl( (HFILE)hFile, dwCat, dwFunc,
    25872612                     pParm, dwParmMaxLen, pdwParmLen,
    25882613                     pData, dwDataMaxLen, pdwDataLen);
    2589 
     2614 
     2615  // copy data from bounce buffers to real
     2616  // target buffers if necessary
     2617  if (pTiledParm != pParm)
     2618    memcpy(pParm, pTiledParm, *pdwParmLen);
     2619 
     2620  if (pTiledData != pData)
     2621    memcpy(pData, pTiledData, *pdwDataLen);
     2622 
     2623 
     2624  _exit_ioctl:
     2625 
     2626  // deallocate bounce buffers
     2627  if (flagTiledParm)
     2628    DosFreeMem(pTiledParm);
     2629 
     2630  if (flagTiledData)
     2631    DosFreeMem(pTiledData);
     2632 
    25902633  SetLastError(error2WinError(rc,ERROR_INVALID_HANDLE));
    25912634  return (DWORD)rc;
Note: See TracChangeset for help on using the changeset viewer.