Changeset 3269 for trunk/src/kernel32


Ignore:
Timestamp:
Mar 29, 2000, 5:17:29 PM (25 years ago)
Author:
cbratschi
Message:

FindFirst* changes

Location:
trunk/src/kernel32
Files:
4 edited

Legend:

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

    r3259 r3269  
    1 /* $Id: Fileio.cpp,v 1.26 2000-03-28 17:11:48 sandervl Exp $ */
     1/* $Id: Fileio.cpp,v 1.27 2000-03-29 15:17:27 cbratschi Exp $ */
    22
    33/*
     
    2929#include "oslibdos.h"
    3030
    31 #define DBG_LOCALLOG    DBG_fileio
     31#define DBG_LOCALLOG    DBG_fileio
    3232#include "dbglocal.h"
    3333
     
    7777//******************************************************************************
    7878ODINFUNCTION2(HANDLE, FindFirstFileA,
    79               LPCSTR, arg1,
    80               WIN32_FIND_DATAA *, arg2)
    81 {
    82   dprintf(("FindFirstFileA %s", arg1));
    83   return O32_FindFirstFile(arg1, arg2);
    84 }
    85 
     79              LPCSTR, lpFileName,
     80              WIN32_FIND_DATAA *, lpFindFileData)
     81{
     82  return (HANDLE)OSLibDosFindFirst(lpFileName,lpFindFileData);
     83}
     84//******************************************************************************
     85// internal function for faster access (SHELL32)
     86//******************************************************************************
     87ODINFUNCTION3(HANDLE, FindFirstFileMultiA,
     88              LPCSTR, lpFileName,
     89              WIN32_FIND_DATAA *, lpFindFileData,
     90              DWORD *,count)
     91{
     92  return (HANDLE)OSLibDosFindFirstMulti(lpFileName,lpFindFileData,count);
     93}
    8694//******************************************************************************
    8795//******************************************************************************
    8896ODINFUNCTION2(HANDLE,  FindFirstFileW,
    89               LPCWSTR, arg1,
    90               WIN32_FIND_DATAW *, arg2)
     97              LPCWSTR, lpFileName,
     98              WIN32_FIND_DATAW *, lpFindFileData)
    9199{
    92100  HANDLE           rc;
     
    94102  WIN32_FIND_DATAA wfda;
    95103
    96   astring = UnicodeToAsciiString((LPWSTR)arg1);
    97   rc = FindFirstFileA(astring, &wfda);
     104  astring = UnicodeToAsciiString((LPWSTR)lpFileName);
     105  rc = (HANDLE)OSLibDosFindFirst(astring,&wfda);
    98106
    99107  if(rc == -1) {
    100         memset(arg2, 0, sizeof(WIN32_FIND_DATAW));
    101   }
    102   else {
    103         // convert back the result structure
    104         memcpy(arg2,
    105                  &wfda,
    106                  sizeof(WIN32_FIND_DATAA));
    107        
    108         lstrcpynAtoW (arg2->cFileName,
    109                       wfda.cFileName,
    110                       sizeof(wfda.cFileName));
    111        
    112         lstrcpynAtoW (arg2->cAlternateFileName,
    113                       wfda.cAlternateFileName,
    114                       sizeof(wfda.cAlternateFileName));
    115   }     
    116   FreeAsciiString(astring);
    117   return(rc);
    118 }
    119 //******************************************************************************
    120 //******************************************************************************
    121 ODINFUNCTION2(BOOL,   FindNextFileA,
    122               HANDLE, arg1,
    123               WIN32_FIND_DATAA *, arg2)
    124 {
    125   return O32_FindNextFile(arg1, arg2);
    126 }
    127 //******************************************************************************
    128 //******************************************************************************
    129 ODINFUNCTION2(BOOL, FindNextFileW,
    130               HANDLE, arg1,
    131               WIN32_FIND_DATAW *, arg2)
    132 {
    133   WIN32_FIND_DATAA wfda;
    134   BOOL             rc;
    135 
    136   rc = FindNextFileA(arg1, &wfda);
    137 
    138   if(rc == 0) {
    139         memset(arg2, 0, sizeof(WIN32_FIND_DATAW));
     108        memset(lpFindFileData, 0, sizeof(WIN32_FIND_DATAW));
    140109  }
    141110  else {
    142111        // convert back the result structure
    143         memcpy(arg2,
     112        memcpy(lpFindFileData,
     113                 &wfda,
     114                 sizeof(WIN32_FIND_DATAA));
     115
     116        lstrcpynAtoW (lpFindFileData->cFileName,
     117                      wfda.cFileName,
     118                      sizeof(wfda.cFileName));
     119
     120        lstrcpynAtoW (lpFindFileData->cAlternateFileName,
     121                      wfda.cAlternateFileName,
     122                      sizeof(wfda.cAlternateFileName));
     123  }
     124  FreeAsciiString(astring);
     125  return(rc);
     126}
     127//******************************************************************************
     128//******************************************************************************
     129ODINFUNCTION2(BOOL,   FindNextFileA,
     130              HANDLE, hFindFile,
     131              WIN32_FIND_DATAA *, lpFindFileData)
     132{
     133  return OSLibDosFindNext(hFindFile,lpFindFileData);
     134}
     135//******************************************************************************
     136// internal function for faster access (SHELL32)
     137//******************************************************************************
     138ODINFUNCTION3(BOOL,   FindNextFileMultiA,
     139              HANDLE, hFindFile,
     140              WIN32_FIND_DATAA *, lpFindFileData,
     141              DWORD *,count)
     142{
     143  return OSLibDosFindNextMulti(hFindFile,lpFindFileData,count);
     144}
     145//******************************************************************************
     146//******************************************************************************
     147ODINFUNCTION2(BOOL, FindNextFileW,
     148              HANDLE, hFindFile,
     149              WIN32_FIND_DATAW *, lpFindFileData)
     150{
     151  WIN32_FIND_DATAA wfda;
     152  BOOL             rc;
     153
     154  rc = OSLibDosFindNext(hFindFile,&wfda);
     155
     156  if(rc == 0) {
     157        memset(lpFindFileData, 0, sizeof(WIN32_FIND_DATAW));
     158  }
     159  else {
     160        // convert back the result structure
     161        memcpy(lpFindFileData,
    144162               &wfda,
    145163               sizeof(WIN32_FIND_DATAA));
    146164
    147         lstrcpynAtoW (arg2->cFileName,
     165        lstrcpynAtoW (lpFindFileData->cFileName,
    148166                      wfda.cFileName,
    149167                      sizeof(wfda.cFileName));
    150168
    151         lstrcpynAtoW (arg2->cAlternateFileName,
     169        lstrcpynAtoW (lpFindFileData->cAlternateFileName,
    152170                      wfda.cAlternateFileName,
    153171                      sizeof(wfda.cAlternateFileName));
     
    158176//******************************************************************************
    159177ODINFUNCTION1(BOOL, FindClose,
    160               HANDLE, arg1)
    161 {
    162   return O32_FindClose(arg1);
     178              HANDLE, hFindFile)
     179{
     180  return OSLibDosFindClose(hFindFile);
    163181}
    164182//******************************************************************************
     
    380398    if((NULL!=lpszFileName) && strlen(lpszFileName)==2 && lpszFileName[1] == ':')
    381399    {
    382         char szDrive[4];
    383         szDrive[0] = lpszFileName[0];
    384         szDrive[1] = lpszFileName[1];
    385         szDrive[2] = '\\';
    386         szDrive[3] = 0x00;
    387         rc = O32_GetFileAttributes((LPSTR)szDrive);
     400        char szDrive[4];
     401        szDrive[0] = lpszFileName[0];
     402        szDrive[1] = lpszFileName[1];
     403        szDrive[2] = '\\';
     404        szDrive[3] = 0x00;
     405        rc = O32_GetFileAttributes((LPSTR)szDrive);
    388406    }
    389407    else rc = O32_GetFileAttributes((LPSTR)lpszFileName);
  • trunk/src/kernel32/KERNEL32.DEF

    r3206 r3269  
    1 ; $Id: KERNEL32.DEF,v 1.75 2000-03-23 19:23:46 sandervl Exp $
     1; $Id: KERNEL32.DEF,v 1.76 2000-03-29 15:17:27 cbratschi Exp $
    22
    33;Created by BLAST for IBM's compiler
     
    10711071   __dt__10VSemaphoreFv                                           @1284
    10721072
     1073;fast file API's
     1074    FindFirstFileMultiA        = _FindFirstFileMultiA@12          @1290
     1075    FindNextFileMultiA         = _FindNextFileMultiA@12           @1291
     1076
     1077
    10731078;Export for MSACM32
    10741079    _wsnprintfA                                                   @2000
  • trunk/src/kernel32/oslibdos.cpp

    r3074 r3269  
    1 /* $Id: oslibdos.cpp,v 1.22 2000-03-10 16:12:00 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.23 2000-03-29 15:17:28 cbratschi Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    2727#include "dosqss.h"
    2828
    29 #define DBG_LOCALLOG    DBG_oslibdos
     29#define DBG_LOCALLOG    DBG_oslibdos
    3030#include "dbglocal.h"
    3131
     
    4545  rc = DosQueryMem(pb, &size, &attr);
    4646  if(rc) {
    47         dprintf(("OSLibDosAliasMem: DosQueryMem %x %x return %d", pb, size, rc));
    48         return rc;
     47        dprintf(("OSLibDosAliasMem: DosQueryMem %x %x return %d", pb, size, rc));
     48        return rc;
    4949  }
    5050  size = (size-1) & ~0xfff;
    5151  size+= PAGE_SIZE;
    5252  if(size != cb) {
    53         dprintf(("ERROR: OSLibDosAliasMem: size != cb (%x!=%x)!!!!!!!!", size, cb));
    54         //ignore this and continue return 5;
    55         attr = fl; //just use original protection flags (NOT CORRECT)
     53        dprintf(("ERROR: OSLibDosAliasMem: size != cb (%x!=%x)!!!!!!!!", size, cb));
     54        //ignore this and continue return 5;
     55        attr = fl; //just use original protection flags (NOT CORRECT)
    5656  }
    5757  attr &= (PAG_READ|PAG_WRITE|PAG_EXECUTE|PAG_GUARD|PAG_DEFAULT);
    5858  if(attr != fl) {
    59         rc = DosSetMem(pb, size, fl);
    60         if(rc) {
    61                 dprintf(("OSLibDosAliasMem: DosSetMem %x %x return %d", pb, size, rc));
    62                 attr = fl;
    63                 //just continue for now
    64                 //return rc;
    65         }
     59        rc = DosSetMem(pb, size, fl);
     60        if(rc) {
     61                dprintf(("OSLibDosAliasMem: DosSetMem %x %x return %d", pb, size, rc));
     62                attr = fl;
     63                //just continue for now
     64                //return rc;
     65        }
    6666  }
    6767  rc = DosAliasMem(pb, cb, ppbAlias, 2);
    6868  if(rc) {
    69         dprintf(("OSLibDosAliasMem: DosAliasMem %x %x returned %d", pb, cb, rc));
    70         return rc;
     69        dprintf(("OSLibDosAliasMem: DosAliasMem %x %x returned %d", pb, cb, rc));
     70        return rc;
    7171  }
    7272  if(attr != fl) {
    73         rc = DosSetMem(pb, size, attr);
    74         if(rc) {
    75                 dprintf(("OSLibDosAliasMem: DosSetMem (2) %x %x return %d", pb, size, rc));
    76                 return rc;
    77         }
     73        rc = DosSetMem(pb, size, attr);
     74        if(rc) {
     75                dprintf(("OSLibDosAliasMem: DosSetMem (2) %x %x return %d", pb, size, rc));
     76                return rc;
     77        }
    7878  }
    7979  return 0;
     
    9090  rc = DosAllocMem(&memaddr, size, PAG_READ | flAllocMem);
    9191  if(rc) {
    92         return rc;
     92        return rc;
    9393  }
    9494  DosEnterCritSec();
     
    9696  offset = (DWORD)memaddr & 0xFFFF;
    9797  if(offset) {
    98         DosAllocMem(&memaddr, 64*1024 - offset, PAG_READ | flAllocMem);
     98        DosAllocMem(&memaddr, 64*1024 - offset, PAG_READ | flAllocMem);
    9999  }
    100100  rc = DosAllocMem(lplpMemAddr, size, flags | flAllocMem);
    101101  DosExitCritSec();
    102102  if((DWORD)*lplpMemAddr & 0xFFFF) {//still not at 64k boundary?
    103         DosFreeMem(*lplpMemAddr);
    104         rc = OSLibDosAllocMem(lplpMemAddr, size, flags);
     103        DosFreeMem(*lplpMemAddr);
     104        rc = OSLibDosAllocMem(lplpMemAddr, size, flags);
    105105  }
    106106  if(offset) {
    107         DosFreeMem(memaddr);
     107        DosFreeMem(memaddr);
    108108  }
    109109
     
    123123 APIRET rc;
    124124 char  *sharedmemname = NULL;
    125  
     125
    126126  if(name) {
    127         sharedmemname = (char *)malloc(strlen(name) + 16);
    128         strcpy(sharedmemname, "\\SHAREMEM\\");
    129         strcat(sharedmemname, name);
    130   }
    131   else  flags |= OBJ_GETTABLE;
    132  
     127        sharedmemname = (char *)malloc(strlen(name) + 16);
     128        strcpy(sharedmemname, "\\SHAREMEM\\");
     129        strcat(sharedmemname, name);
     130  }
     131  else  flags |= OBJ_GETTABLE;
     132
    133133  rc = DosAllocSharedMem(lplpMemAddr, sharedmemname, size, flags);
    134   if(name) { 
    135         free(sharedmemname);
     134  if(name) {
     135        free(sharedmemname);
    136136  }
    137137  return rc;
     
    144144 APIRET rc;
    145145 char  *sharedmemname = NULL;
    146  
     146
    147147  if(name) {
    148         sharedmemname = (char *)malloc(strlen(name) + 16);
    149         strcpy(sharedmemname, "\\SHAREMEM\\");
    150         strcat(sharedmemname, name);
    151         rc = DosGetNamedSharedMem(lplpMemAddr, sharedmemname, PAG_READ|PAG_WRITE);
    152         if(name) {
    153                 free(sharedmemname);
    154         }
    155   }
    156   else  rc = DosGetSharedMem((LPVOID)*(DWORD *)lplpMemAddr, PAG_READ|PAG_WRITE);
     148        sharedmemname = (char *)malloc(strlen(name) + 16);
     149        strcpy(sharedmemname, "\\SHAREMEM\\");
     150        strcat(sharedmemname, name);
     151        rc = DosGetNamedSharedMem(lplpMemAddr, sharedmemname, PAG_READ|PAG_WRITE);
     152        if(name) {
     153                free(sharedmemname);
     154        }
     155  }
     156  else  rc = DosGetSharedMem((LPVOID)*(DWORD *)lplpMemAddr, PAG_READ|PAG_WRITE);
    157157
    158158  return rc;
     
    172172  rc = DosSetMem(lpMemAddr, size, flags);
    173173  switch(rc) {
    174         case ERROR_INVALID_ADDRESS:
    175                 return OSLIB_ERROR_INVALID_ADDRESS;
    176         case ERROR_ACCESS_DENIED:
    177                 return OSLIB_ERROR_ACCESS_DENIED;
    178         default:
    179                 return rc;
     174        case ERROR_INVALID_ADDRESS:
     175                return OSLIB_ERROR_INVALID_ADDRESS;
     176        case ERROR_ACCESS_DENIED:
     177                return OSLIB_ERROR_ACCESS_DENIED;
     178        default:
     179                return rc;
    180180  }
    181181}
     
    191191
    192192  if(flags & OSLIB_ACCESS_READONLY)
    193         os2flags |= OPEN_ACCESS_READONLY;
     193        os2flags |= OPEN_ACCESS_READONLY;
    194194  else
    195195  if(flags & OSLIB_ACCESS_READWRITE)
    196         os2flags |= OPEN_ACCESS_READWRITE;
     196        os2flags |= OPEN_ACCESS_READWRITE;
    197197
    198198  if(flags & OSLIB_ACCESS_SHAREDENYNONE)
    199         os2flags |= OPEN_SHARE_DENYNONE;
     199        os2flags |= OPEN_SHARE_DENYNONE;
    200200  else
    201201  if(flags & OSLIB_ACCESS_SHAREDENYREAD)
    202         os2flags |= OPEN_SHARE_DENYREAD;
     202        os2flags |= OPEN_SHARE_DENYREAD;
    203203  else
    204204  if(flags & OSLIB_ACCESS_SHAREDENYWRITE)
    205         os2flags |= OPEN_SHARE_DENYWRITE;
     205        os2flags |= OPEN_SHARE_DENYWRITE;
    206206
    207207tryopen:
     
    217217
    218218  if(rc) {
    219         if(rc == ERROR_TOO_MANY_OPEN_FILES) {
    220         ULONG CurMaxFH;
     219        if(rc == ERROR_TOO_MANY_OPEN_FILES) {
     220        ULONG CurMaxFH;
    221221         LONG  ReqCount = 32;
    222222
    223                 rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    224                 if(rc) {
    225                         dprintf(("DosSetRelMaxFH returned %d", rc));
    226                         return 0;
    227                 }
    228                 dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
    229                 goto tryopen;
    230         }
    231         return 0;
    232   }
    233   else  return hFile;
     223                rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     224                if(rc) {
     225                        dprintf(("DosSetRelMaxFH returned %d", rc));
     226                        return 0;
     227                }
     228                dprintf(("DosOpen failed -> increased nr open files to %d", CurMaxFH));
     229                goto tryopen;
     230        }
     231        return 0;
     232  }
     233  else  return hFile;
    234234}
    235235//******************************************************************************
     
    247247 APIRET rc;
    248248
    249         rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    250         if(rc) {
    251                 dprintf(("DosSetRelMaxFH returned %d", rc));
    252                 return rc;
    253         }
    254         if(ReqCount + ODIN_INCREMENT_MAX_FILEHANDLES > CurMaxFH) {
    255                 ReqCount = CurMaxFH + ODIN_INCREMENT_MAX_FILEHANDLES;
    256                 rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    257                 if(rc) {
    258                         dprintf(("DosSetRelMaxFH returned %d", rc));
    259                         return rc;
    260                 }
    261         }
    262         return 0;
     249        rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     250        if(rc) {
     251                dprintf(("DosSetRelMaxFH returned %d", rc));
     252                return rc;
     253        }
     254        if(ReqCount + ODIN_INCREMENT_MAX_FILEHANDLES > CurMaxFH) {
     255                ReqCount = CurMaxFH + ODIN_INCREMENT_MAX_FILEHANDLES;
     256                rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     257                if(rc) {
     258                        dprintf(("DosSetRelMaxFH returned %d", rc));
     259                        return rc;
     260                }
     261        }
     262        return 0;
    263263}
    264264//******************************************************************************
     
    270270 APIRET rc;
    271271
    272         rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
    273         if(rc) {
    274                 dprintf(("DosSetRelMaxFH returned %d", rc));
    275                 return rc;
    276         }
    277         if(CurMaxFH < maxhandles) {
    278                 rc = DosSetMaxFH(maxhandles);
    279                 if(rc) {
    280                         dprintf(("DosSetMaxFH returned %d", rc));
    281                         return rc;
    282                 }
    283         }
    284         return 0;
     272        rc = DosSetRelMaxFH(&ReqCount, &CurMaxFH);
     273        if(rc) {
     274                dprintf(("DosSetRelMaxFH returned %d", rc));
     275                return rc;
     276        }
     277        if(CurMaxFH < maxhandles) {
     278                rc = DosSetMaxFH(maxhandles);
     279                if(rc) {
     280                        dprintf(("DosSetMaxFH returned %d", rc));
     281                        return rc;
     282                }
     283        }
     284        return 0;
    285285}
    286286//******************************************************************************
     
    306306  switch(method) {
    307307  case OSLIB_SETPTR_FILE_CURRENT:
    308         os2method = FILE_CURRENT;
    309         break;
     308        os2method = FILE_CURRENT;
     309        break;
    310310  case OSLIB_SETPTR_FILE_BEGIN:
    311         os2method = FILE_BEGIN  ;
    312         break;
     311        os2method = FILE_BEGIN  ;
     312        break;
    313313  case OSLIB_SETPTR_FILE_END:
    314         os2method = FILE_END;
    315         break;
     314        os2method = FILE_END;
     315        break;
    316316  default:
    317         return OSLIB_ERROR_INVALID_PARAMETER;
     317        return OSLIB_ERROR_INVALID_PARAMETER;
    318318  }
    319319  rc = DosSetFilePtr(hFile, offset, os2method, &newoffset);
    320320  if(rc) {
    321         return -1;
    322   }
    323   else  return newoffset;
    324 }
    325 //******************************************************************************
    326 //******************************************************************************
    327 //@@@PH Note: this routine is nothing but a QUICK'N'DIRTY HACK!
    328 //@@@PH       this function should be implemented accordingly to NTDLL's
    329 //            RtlSecondsSince1980ToTime
    330 //            RtlTimeToSecondsSince1980
    331 static void iFDATEFTIME2FILETIME(FDATE fdOS2, FTIME ftOS2, LPFILETIME pftWin32)
    332 {
    333   float f;
    334   #define facSECOND 2                // as encoded in OS/2
    335   #define facMINUTE 60
    336   #define facHOUR   3600
    337   #define facDAY    86400
    338   #define facMONTH  facDAY * 30      // cough, cough :)
    339   #define facYEAR   facDAY * 365
    340 
    341   /* pftWin32 is 100ns based from 01.01.1601 00:00:00 */
    342   f =   (fdOS2.year  +  379) * facYEAR        // 1980 - 1601
    343       + (fdOS2.month - 0   ) * facMONTH
    344       + (fdOS2.day   - 1   ) * facDAY
    345       + (ftOS2.hours       ) * facHOUR
    346       + (ftOS2.minutes     ) * facMINUTE
    347       + (ftOS2.twosecs     ) * facSECOND;
    348 
    349   f *= 10000; // convert to 100ns base
    350   pftWin32->dwHighDateTime = (f / (float)(0xffffffff) );
    351   pftWin32->dwLowDateTime  = (f - (float)((float)pftWin32->dwHighDateTime *
    352                                           (float)0xffffffff) );
    353 }
    354 
     321        return -1;
     322  }
     323  else  return newoffset;
     324}
     325//******************************************************************************
     326//******************************************************************************
     327BOOL pmDateTimeToFileTime(FDATE *pDate,FTIME *pTime,FILETIME *pFT)
     328{
     329  USHORT dosTime, dosDate;
     330
     331  dosTime = *(USHORT*)pTime;
     332  dosDate = *(USHORT*)pDate;
     333
     334  return DosDateTimeToFileTime(dosDate,dosTime,pFT);
     335}
     336//******************************************************************************
     337//******************************************************************************
    355338BOOL OSLibDosGetFileAttributesEx(PSZ   pszName,
    356339                                 ULONG ulDummy,
     
    371354  // convert structure
    372355  lpFad->dwFileAttributes = fs3.attrFile; // directly interchangeable
    373   iFDATEFTIME2FILETIME(fs3.fdateCreation,   fs3.ftimeCreation,   &lpFad->ftCreationTime);
    374   iFDATEFTIME2FILETIME(fs3.fdateLastAccess, fs3.ftimeLastAccess, &lpFad->ftLastAccessTime);
    375   iFDATEFTIME2FILETIME(fs3.fdateLastWrite,  fs3.ftimeLastWrite,  &lpFad->ftLastWriteTime);
     356  pmDateTimeToFileTime(&fs3.fdateCreation,   &fs3.ftimeCreation,   &lpFad->ftCreationTime);
     357  pmDateTimeToFileTime(&fs3.fdateLastAccess, &fs3.ftimeLastAccess, &lpFad->ftLastAccessTime);
     358  pmDateTimeToFileTime(&fs3.fdateLastWrite,  &fs3.ftimeLastWrite,  &lpFad->ftLastWriteTime);
    376359
    377360  /* @@@PH we might add Aurora support ...
     
    386369DWORD WIN32API GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD );
    387370//******************************************************************************
    388 DWORD OSLibDosSearchPath(DWORD cmd, char *path, char *name, char *full_name, 
     371DWORD OSLibDosSearchPath(DWORD cmd, char *path, char *name, char *full_name,
    389372                         DWORD length_fullname)
    390373{
    391374  switch(cmd) {
    392375  case OSLIB_SEARCHDIR:
    393         if(DosSearchPath(SEARCH_IGNORENETERRS, path,
     376        if(DosSearchPath(SEARCH_IGNORENETERRS, path,
    394377                         name, full_name, length_fullname) != 0) {
    395                 return 0;
    396         }
    397         return strlen(full_name);
     378                return 0;
     379        }
     380        return strlen(full_name);
    398381
    399382
    400383  case OSLIB_SEARCHCURDIR:
    401         if(DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_CUR_DIRECTORY, path,
     384        if(DosSearchPath(SEARCH_IGNORENETERRS | SEARCH_CUR_DIRECTORY, path,
    402385                         name, full_name, length_fullname) != 0) {
    403                 return 0;
    404         }
    405         return strlen(full_name);
     386                return 0;
     387        }
     388        return strlen(full_name);
    406389
    407390  case OSLIB_SEARCHFILE:
     
    409392    FILESTATUS3 fileinfo;
    410393
    411         if(DosQueryPathInfo(name, FIL_STANDARD, &fileinfo, sizeof(fileinfo)) != 0) {
    412                 return 0;
    413         }
    414         strncpy(full_name, name, length_fullname);
    415         return strlen(full_name);
     394        if(DosQueryPathInfo(name, FIL_STANDARD, &fileinfo, sizeof(fileinfo)) != 0) {
     395                return 0;
     396        }
     397        strncpy(full_name, name, length_fullname);
     398        return strlen(full_name);
    416399  }
    417400
     
    422405   CHAR  szResult[CCHMAXPATH];
    423406
    424         envsize = GetEnvironmentVariableA(path, NULL, 0);
    425         envstring = (LPSTR)malloc(envsize+1);
    426         GetEnvironmentVariableA(path, envstring, envsize);
    427         if(DosSearchPath(SEARCH_IGNORENETERRS, envstring,
     407        envsize = GetEnvironmentVariableA(path, NULL, 0);
     408        envstring = (LPSTR)malloc(envsize+1);
     409        GetEnvironmentVariableA(path, envstring, envsize);
     410        if(DosSearchPath(SEARCH_IGNORENETERRS, envstring,
    428411                         name, szResult, sizeof(szResult)) != 0) {
    429                 free(envstring);
    430                 return 0;
    431         }
    432         free(envstring);
    433         strcpy(full_name, szResult);
    434         return strlen(full_name);
     412                free(envstring);
     413                return 0;
     414        }
     415        free(envstring);
     416        strcpy(full_name, szResult);
     417        return strlen(full_name);
    435418  }
    436419  }
     
    554537    return -1;
    555538  }
    556   else  return newoffset;
     539  else  return newoffset;
    557540}
    558541//******************************************************************************
     
    579562//Returns time spent in kernel & user mode in milliseconds
    580563//******************************************************************************
    581 BOOL OSLibDosQueryProcTimes(DWORD procid, ULONG *kerneltime, ULONG *usertime) 
     564BOOL OSLibDosQueryProcTimes(DWORD procid, ULONG *kerneltime, ULONG *usertime)
    582565{
    583566 APIRET rc;
     
    592575
    593576  if(rc) {
    594         free(buf);
    595         if(rc == ERROR_BUFFER_OVERFLOW) {
    596                 nrthreads += 4;
    597                 goto tryagain;
    598         }
    599         return FALSE;
     577        free(buf);
     578        if(rc == ERROR_BUFFER_OVERFLOW) {
     579                nrthreads += 4;
     580                goto tryagain;
     581        }
     582        return FALSE;
    600583  }
    601584  PQTOPLEVEL top = (PQTOPLEVEL)buf;
     
    604587  *usertime = 0;
    605588  for(int i=0;i<top->procdata->threadcnt;i++) {
    606         *kerneltime += top->procdata->threads[i].systime;
    607         *usertime   += top->procdata->threads[i].usertime;
     589        *kerneltime += top->procdata->threads[i].systime;
     590        *usertime   += top->procdata->threads[i].usertime;
    608591  }
    609592  free(buf);
     
    613596//******************************************************************************
    614597// TODO: implement SecurityAttributes parameter
    615 DWORD OSLibDosCreateNamedPipe(LPCTSTR lpName, 
    616                                DWORD   dwOpenMode, 
     598DWORD OSLibDosCreateNamedPipe(LPCTSTR lpName,
     599                               DWORD   dwOpenMode,
    617600                               DWORD   dwPipeMode,
    618                                DWORD   nMaxInstances, 
     601                               DWORD   nMaxInstances,
    619602                               DWORD   nOutBufferSize,
    620                                DWORD   nInBufferSize, 
     603                               DWORD   nInBufferSize,
    621604                               DWORD   nDefaultTimeOut,
    622605                               void*   lpSecurityAttributes)
    623606{  DWORD dwOS2Mode     = 0;
    624607   DWORD dwOS2PipeMode = 0;
    625    LPSTR lpOS2Name; 
     608   LPSTR lpOS2Name;
    626609   DWORD hPipe;
    627610   DWORD rc;
    628    
     611
    629612  if (dwOpenMode & PIPE_ACCESS_DUPLEX_W)
    630613    dwOS2Mode |= NP_ACCESS_DUPLEX;
     
    679662                    dwOS2PipeMode,
    680663                    nInBufferSize,
    681                     nInBufferSize, 
     664                    nInBufferSize,
    682665                    nDefaultTimeOut); // Timeouts must be tested!
    683666
     
    706689// TODO: implement lpOverlapped parameter!
    707690BOOL OSLibDosConnectNamedPipe(DWORD hNamedPipe, LPOVERLAPPED lpOverlapped)
    708 { 
     691{
    709692 DWORD rc;
    710693
     
    714697  if (!rc) return (TRUE);
    715698    else
    716   if (rc==ERROR_BROKEN_PIPE) SetLastError(ERROR_BROKEN_PIPE_W);   
     699  if (rc==ERROR_BROKEN_PIPE) SetLastError(ERROR_BROKEN_PIPE_W);
    717700    else
    718701  if (rc==ERROR_BAD_PIPE) SetLastError(ERROR_BAD_PIPE_W);
     
    723706  // if (rc==ERROR_INTERRUPT)
    724707  SetLastError(ERROR_PIPE_NOT_CONNECTED_W);
    725  
     708
    726709  return (FALSE);
    727710}
     
    761744  if (!rc) return (TRUE);
    762745   else
    763   if ( rc==ERROR_FILE_NOT_FOUND     ) SetLastError(ERROR_FILE_NOT_FOUND_W);   
    764     else
    765   if ( rc==ERROR_PATH_NOT_FOUND     ) SetLastError(ERROR_PATH_NOT_FOUND_W);   
    766     else
    767   if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);   
    768     else
    769   if ( rc==ERROR_MORE_DATA          ) SetLastError(ERROR_MORE_DATA_W);   
    770     else
    771   if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);   
    772     else
    773   if ( rc==ERROR_BAD_FORMAT         ) SetLastError(ERROR_BAD_FORMAT_W);   
    774     else
    775   if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);   
     746  if ( rc==ERROR_FILE_NOT_FOUND     ) SetLastError(ERROR_FILE_NOT_FOUND_W);
     747    else
     748  if ( rc==ERROR_PATH_NOT_FOUND     ) SetLastError(ERROR_PATH_NOT_FOUND_W);
     749    else
     750  if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);
     751    else
     752  if ( rc==ERROR_MORE_DATA          ) SetLastError(ERROR_MORE_DATA_W);
     753    else
     754  if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);
     755    else
     756  if ( rc==ERROR_BAD_FORMAT         ) SetLastError(ERROR_BAD_FORMAT_W);
     757    else
     758  if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);
    776759    else
    777760  if ( rc==ERROR_BAD_PIPE           ) SetLastError(ERROR_BAD_PIPE_W);
     
    808791  if (!rc) return (TRUE);
    809792   else
    810   if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);   
    811     else
    812   if ( rc==ERROR_MORE_DATA          ) SetLastError(ERROR_MORE_DATA_W);   
    813     else
    814   if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);   
    815     else
    816   if ( rc==ERROR_BAD_FORMAT         ) SetLastError(ERROR_BAD_FORMAT_W);   
    817     else
    818   if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);   
     793  if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);
     794    else
     795  if ( rc==ERROR_MORE_DATA          ) SetLastError(ERROR_MORE_DATA_W);
     796    else
     797  if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);
     798    else
     799  if ( rc==ERROR_BAD_FORMAT         ) SetLastError(ERROR_BAD_FORMAT_W);
     800    else
     801  if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);
    819802    else
    820803  if ( rc==ERROR_BAD_PIPE           ) SetLastError(ERROR_BAD_PIPE_W);
     
    830813//******************************************************************************
    831814//******************************************************************************
    832 BOOL OSLibDosPeekNamedPipe(DWORD   hPipe, 
    833                         LPVOID  lpvBuffer, 
     815BOOL OSLibDosPeekNamedPipe(DWORD   hPipe,
     816                        LPVOID  lpvBuffer,
    834817                        DWORD   cbBuffer,
    835                         LPDWORD lpcbRead, 
    836                         LPDWORD lpcbAvail, 
     818                        LPDWORD lpcbRead,
     819                        LPDWORD lpcbAvail,
    837820                        LPDWORD lpcbMessage)
    838821{
     
    842825
    843826  rc=DosPeekNPipe(hPipe,lpvBuffer,cbBuffer,lpcbRead,&availData,&ulDummy);
    844  
     827
    845828  dprintf(("DosPeekNPipe returned rc=%d",rc));
    846829
    847   if (!rc) 
     830  if (!rc)
    848831  {
    849832    *lpcbAvail   = availData.cbpipe;
     
    852835  }
    853836   else
    854   if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);   
    855     else
    856   if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);   
     837  if ( rc==ERROR_ACCESS_DENIED      ) SetLastError(ERROR_ACCESS_DENIED_W);
     838    else
     839  if ( rc==ERROR_PIPE_BUSY          ) SetLastError(ERROR_PIPE_BUSY_W);
    857840    else
    858841  if ( rc==ERROR_BAD_PIPE           ) SetLastError(ERROR_BAD_PIPE_W);
     
    877860  if (!rc) return TRUE;
    878861    else
    879   if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);   
     862  if ( rc==ERROR_BROKEN_PIPE        ) SetLastError(ERROR_BROKEN_PIPE_W);
    880863    else
    881864  if ( rc==ERROR_BAD_PIPE           ) SetLastError(ERROR_BAD_PIPE_W);
     
    924907  return (FALSE);
    925908}
     909//******************************************************************************
     910//******************************************************************************
     911#define NOT_NORMAL (FILE_ATTRIBUTE_READONLY_W | \
     912                    FILE_ATTRIBUTE_HIDDEN_W |   \
     913                    FILE_ATTRIBUTE_SYSTEM_W |   \
     914                    FILE_ATTRIBUTE_ARCHIVE_W)
     915
     916VOID translateFileResults(FILESTATUS3 *pResult,LPWIN32_FIND_DATAA pFind,CHAR* achName)
     917{
     918  pFind->dwFileAttributes = 0;
     919  if (!(pResult->attrFile & NOT_NORMAL))
     920    pFind->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
     921  if (pResult->attrFile & FILE_READONLY)
     922    pFind->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
     923  if (pResult->attrFile & FILE_HIDDEN)
     924    pFind->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
     925  if (pResult->attrFile & FILE_SYSTEM)
     926    pFind->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
     927  if (pResult->attrFile & FILE_DIRECTORY)
     928    pFind->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
     929  if (pResult->attrFile & FILE_ARCHIVED)
     930    pFind->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
     931
     932  pmDateTimeToFileTime(&pResult->fdateCreation,&pResult->ftimeCreation,&pFind->ftCreationTime);
     933  pmDateTimeToFileTime(&pResult->fdateLastAccess,&pResult->ftimeLastAccess,&pFind->ftLastAccessTime);
     934  pmDateTimeToFileTime(&pResult->fdateLastWrite,&pResult->ftimeLastWrite,&pFind->ftLastWriteTime);
     935
     936  pFind->nFileSizeHigh = 0; //CB: fixme
     937  pFind->nFileSizeLow = pResult->cbFile;
     938  strcpy(pFind->cFileName,achName);
     939  pFind->cAlternateFileName[0] = 0; //CB: fixme: store 8.3 file name
     940}
     941
     942VOID translateFindResults(FILEFINDBUF3 *pResult,LPWIN32_FIND_DATAA pFind)
     943{
     944  pFind->dwFileAttributes = 0;
     945  if (!(pResult->attrFile & NOT_NORMAL))
     946    pFind->dwFileAttributes |= FILE_ATTRIBUTE_NORMAL_W;
     947  if (pResult->attrFile & FILE_READONLY)
     948    pFind->dwFileAttributes |= FILE_ATTRIBUTE_READONLY_W;
     949  if (pResult->attrFile & FILE_HIDDEN)
     950    pFind->dwFileAttributes |= FILE_ATTRIBUTE_HIDDEN_W;
     951  if (pResult->attrFile & FILE_SYSTEM)
     952    pFind->dwFileAttributes |= FILE_ATTRIBUTE_SYSTEM_W;
     953  if (pResult->attrFile & FILE_DIRECTORY)
     954    pFind->dwFileAttributes |= FILE_ATTRIBUTE_DIRECTORY_W;
     955  if (pResult->attrFile & FILE_ARCHIVED)
     956    pFind->dwFileAttributes |= FILE_ATTRIBUTE_ARCHIVE_W;
     957
     958  pmDateTimeToFileTime(&pResult->fdateCreation,&pResult->ftimeCreation,&pFind->ftCreationTime);
     959  pmDateTimeToFileTime(&pResult->fdateLastAccess,&pResult->ftimeLastAccess,&pFind->ftLastAccessTime);
     960  pmDateTimeToFileTime(&pResult->fdateLastWrite,&pResult->ftimeLastWrite,&pFind->ftLastWriteTime);
     961
     962  pFind->nFileSizeHigh = 0; //CB: fixme
     963  pFind->nFileSizeLow = pResult->cbFile;
     964  strcpy(pFind->cFileName,pResult->achName);
     965  pFind->cAlternateFileName[0] = 0; //CB: fixme: store 8.3 file name
     966}
     967//******************************************************************************
     968//******************************************************************************
     969DWORD OSLibDosFindFirst(LPCSTR lpFileName,WIN32_FIND_DATAA* lpFindFileData)
     970{
     971  HDIR hDir = -1;
     972  ULONG attrs;
     973  FILEFINDBUF3 result;
     974  ULONG searchCount = 1;
     975
     976  attrs = FILE_READONLY | FILE_HIDDEN | FILE_SYSTEM | FILE_DIRECTORY | FILE_ARCHIVED;
     977
     978  DosError(FERR_DISABLEHARDERR | FERR_DISABLEEXCEPTION);
     979  APIRET rc = DosFindFirst((PSZ)lpFileName,&hDir,attrs,&result,sizeof(result),&searchCount,FIL_STANDARD);
     980  DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
     981  if (rc)
     982  {
     983    SetLastError(ERROR_PATH_NOT_FOUND_W);  //CB: fixme: better error handling
     984
     985    return INVALID_HANDLE_VALUE_W;
     986  }
     987
     988  translateFindResults(&result,lpFindFileData);
     989
     990  return hDir;
     991}
     992//******************************************************************************
     993//******************************************************************************
     994DWORD OSLibDosFindFirstMulti(LPCSTR lpFileName,WIN32_FIND_DATAA *lpFindFileData,DWORD *count)
     995{
     996  HDIR hDir = -1;
     997  ULONG attrs;
     998  FILEFINDBUF3 *result,*data;
     999  ULONG searchCount = *count;
     1000
     1001  attrs = FILE_READONLY | FILE_HIDDEN | FILE_SYSTEM | FILE_DIRECTORY | FILE_ARCHIVED;
     1002  result = (FILEFINDBUF3*)malloc(searchCount*sizeof(FILEFINDBUF3));
     1003
     1004  DosError(FERR_DISABLEHARDERR | FERR_DISABLEEXCEPTION);
     1005  APIRET rc = DosFindFirst((PSZ)lpFileName,&hDir,attrs,result,searchCount*sizeof(FILEFINDBUF3),&searchCount,FIL_STANDARD);
     1006  DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
     1007  if (rc)
     1008  {
     1009    free(result);
     1010    *count = 0;
     1011    SetLastError(ERROR_PATH_NOT_FOUND_W);  //CB: fixme: better error handling
     1012
     1013    return INVALID_HANDLE_VALUE_W;
     1014  }
     1015
     1016  data = result;
     1017  for (int x = 0;x < searchCount;x++)
     1018  {
     1019    translateFindResults(data,&lpFindFileData[x]);
     1020    data = (FILEFINDBUF3*)(((DWORD)data)+data->oNextEntryOffset);
     1021  }
     1022  free(result);
     1023  *count = searchCount;
     1024
     1025  return hDir;
     1026}
     1027//******************************************************************************
     1028//******************************************************************************
     1029BOOL  OSLibDosFindNext(DWORD hFindFile,WIN32_FIND_DATAA *lpFindFileData)
     1030{
     1031  FILEFINDBUF3 result;
     1032  ULONG searchCount = 1;
     1033
     1034  APIRET rc = DosFindNext((HDIR)hFindFile,&result,sizeof(result),&searchCount);
     1035  if (rc)
     1036  {
     1037    SetLastError(ERROR_INVALID_HANDLE_W); //CB: fixme: better error code
     1038
     1039    return FALSE;
     1040  }
     1041
     1042  translateFindResults(&result,lpFindFileData);
     1043
     1044  return TRUE;
     1045}
     1046//******************************************************************************
     1047//******************************************************************************
     1048BOOL  OSLibDosFindNextMulti(DWORD hFindFile,WIN32_FIND_DATAA *lpFindFileData,DWORD *count)
     1049{
     1050  FILEFINDBUF3 *result,*data;
     1051  ULONG searchCount = *count;
     1052
     1053  result = (FILEFINDBUF3*)malloc(searchCount*sizeof(FILEFINDBUF3));
     1054  APIRET rc = DosFindNext((HDIR)hFindFile,result,searchCount*sizeof(FILEFINDBUF3),&searchCount);
     1055  if (rc)
     1056  {
     1057    free(result);
     1058    *count = 0;
     1059    SetLastError(ERROR_INVALID_HANDLE_W); //CB: fixme: better error code
     1060
     1061    return FALSE;
     1062  }
     1063
     1064  data = result;
     1065  for (int x = 0;x < searchCount;x++)
     1066  {
     1067    translateFindResults(data,&lpFindFileData[x]);
     1068    data = (FILEFINDBUF3*)(((DWORD)data)+data->oNextEntryOffset);
     1069  }
     1070  free(result);
     1071  *count = searchCount;
     1072
     1073  return TRUE;
     1074}
     1075//******************************************************************************
     1076//******************************************************************************
     1077BOOL  OSLibDosFindClose(DWORD hFindFile)
     1078{
     1079  APIRET rc = DosFindClose((HDIR)hFindFile);
     1080  if (rc)
     1081  {
     1082    SetLastError(ERROR_INVALID_HANDLE_W);
     1083
     1084    return FALSE;
     1085  }
     1086
     1087  return TRUE;
     1088}
  • trunk/src/kernel32/oslibdos.h

    r3074 r3269  
    1 /* $Id: oslibdos.h,v 1.12 2000-03-10 16:12:00 sandervl Exp $ */
     1/* $Id: oslibdos.h,v 1.13 2000-03-29 15:17:29 cbratschi Exp $ */
    22
    33/*
     
    2323DWORD OSLibDosChangeMaxFileHandles();
    2424
    25 #define ODIN_INCREMENT_MAX_FILEHANDLES  64
    26 #define ODIN_DEFAULT_MAX_FILEHANDLES    256
     25#define ODIN_INCREMENT_MAX_FILEHANDLES  64
     26#define ODIN_DEFAULT_MAX_FILEHANDLES    256
    2727DWORD OSLibDosSetInitialMaxFileHandles(DWORD maxhandles);
    2828
    2929BOOL OSLibDosGetFileAttributesEx(LPSTR pszName, ULONG ulDummy, PVOID pBuffer);
    3030
    31 #define OSLIB_NOERROR                   0
    32 #define OSLIB_ERROR_INVALID_ADDRESS     1
     31#define OSLIB_NOERROR                   0
     32#define OSLIB_ERROR_INVALID_ADDRESS     1
    3333#define OSLIB_ERROR_ACCESS_DENIED       2
    3434#define OSLIB_ERROR_INVALID_PARAMETER   3
     
    6060#endif
    6161
    62 #define OSLIB_ACCESS_READONLY           1
    63 #define OSLIB_ACCESS_READWRITE          2
    64 #define OSLIB_ACCESS_SHAREDENYNONE      4
    65 #define OSLIB_ACCESS_SHAREDENYREAD      8
    66 #define OSLIB_ACCESS_SHAREDENYWRITE     16
     62#define OSLIB_ACCESS_READONLY           1
     63#define OSLIB_ACCESS_READWRITE          2
     64#define OSLIB_ACCESS_SHAREDENYNONE      4
     65#define OSLIB_ACCESS_SHAREDENYREAD      8
     66#define OSLIB_ACCESS_SHAREDENYWRITE     16
    6767
    6868DWORD OSLibDosOpen(char *lpszFileName, DWORD flags);
     
    7272DWORD OSLibDosWrite(DWORD hFile, LPVOID lpBuffer, DWORD size, DWORD *nrBytesWritten);
    7373
    74 #define OSLIB_SETPTR_FILE_CURRENT       1
    75 #define OSLIB_SETPTR_FILE_BEGIN         2
    76 #define OSLIB_SETPTR_FILE_END           3
     74#define OSLIB_SETPTR_FILE_CURRENT       1
     75#define OSLIB_SETPTR_FILE_BEGIN         2
     76#define OSLIB_SETPTR_FILE_END           3
    7777
    7878DWORD OSLibDosSetFilePtr(DWORD hFile, DWORD offset, DWORD method);
    7979
    80 #define OSLIB_SEARCHDIR         1
    81 #define OSLIB_SEARCHCURDIR      2
    82 #define OSLIB_SEARCHFILE        3
    83 #define OSLIB_SEARCHENV         4
     80#define OSLIB_SEARCHDIR         1
     81#define OSLIB_SEARCHCURDIR      2
     82#define OSLIB_SEARCHFILE        3
     83#define OSLIB_SEARCHENV         4
    8484
    8585DWORD OSLibDosSearchPath(DWORD cmd, char *path, char *name, char *full_name, DWORD length_fullname);
     
    122122                         DWORD   nTimeOut );
    123123
    124 BOOL OSLibDosPeekNamedPipe(DWORD   hPipe, 
    125                         LPVOID  lpvBuffer, 
     124BOOL OSLibDosPeekNamedPipe(DWORD   hPipe,
     125                        LPVOID  lpvBuffer,
    126126                        DWORD   cbBuffer,
    127                         LPDWORD lpcbRead, 
    128                         LPDWORD lpcbAvail, 
     127                        LPDWORD lpcbRead,
     128                        LPDWORD lpcbAvail,
    129129                        LPDWORD lpcbMessage);
    130130
    131131BOOL OSLibDosConnectNamedPipe(DWORD hNamedPipe, LPOVERLAPPED lpOverlapped);
    132132
    133 DWORD OSLibDosCreateNamedPipe(LPCTSTR lpName, 
    134                               DWORD   dwOpenMode, 
     133DWORD OSLibDosCreateNamedPipe(LPCTSTR lpName,
     134                              DWORD   dwOpenMode,
    135135                              DWORD   dwPipeMode,
    136                               DWORD   nMaxInstances, 
     136                              DWORD   nMaxInstances,
    137137                              DWORD   nOutBufferSize,
    138                               DWORD   nInBufferSize, 
     138                              DWORD   nInBufferSize,
    139139                              DWORD   nDefaultTimeOut,
    140140                              void* lpSecurityAttributes);
     
    145145BOOL OSLibDosDisconnectNamedPipe(DWORD hPipe);
    146146
     147DWORD OSLibDosFindFirst(LPCSTR lpFileName,WIN32_FIND_DATAA* lpFindFileData);
     148DWORD OSLibDosFindFirstMulti(LPCSTR lpFileName,WIN32_FIND_DATAA *lpFindFileData,DWORD *count);
     149BOOL  OSLibDosFindNext(DWORD hFindFile,WIN32_FIND_DATAA* lpFindFileData);
     150BOOL  OSLibDosFindNextMulti(DWORD hFindFile,WIN32_FIND_DATAA *lpFindFileData,DWORD *count);
     151BOOL  OSLibDosFindClose(DWORD hFindFile);
    147152
    148153#endif
Note: See TracChangeset for help on using the changeset viewer.