Changeset 7275 for trunk/src/kernel32


Ignore:
Timestamp:
Oct 30, 2001, 7:46:46 PM (24 years ago)
Author:
sandervl
Message:

Use DosOpenL if available

Location:
trunk/src/kernel32
Files:
2 edited

Legend:

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

    r7270 r7275  
    1 /* $Id: oslibdos.cpp,v 1.81 2001-10-29 20:08:40 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.82 2001-10-30 18:46:45 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    4040static PROC_DosSetFilePtrL   DosSetFilePtrLProc   = 0;
    4141static PROC_DosSetFileLocksL DosSetFileLocksLProc = 0;
     42static PROC_DosOpenL         DosOpenLProc = 0;
    4243static BOOL f64BitIO = FALSE;
    4344//******************************************************************************
     
    5960    return;
    6061  }
     62  if(DosQueryProcAddr(hDoscalls, 981, NULL, (PFN *)&DosOpenLProc) != NO_ERROR) {
     63    return;
     64  }
    6165  f64BitIO = TRUE;
    6266}
     
    9498
    9599    yyrc = DosSetFileLocksLProc(hFile, pflUnlock, pflLock, timeout, flags);
     100    SetFS(sel);
     101
     102    return yyrc;
     103}
     104//******************************************************************************
     105//******************************************************************************
     106APIRET APIENTRY OdinDosOpenL(PCSZ  pszFileName,
     107                             PHFILE phf,
     108                             PULONG pulAction,
     109                             LONGLONG cbFile,
     110                             ULONG ulAttribute,
     111                             ULONG fsOpenFlags,
     112                             ULONG fsOpenMode,
     113                             PEAOP2 peaop2)
     114{
     115 APIRET yyrc;
     116 USHORT sel = RestoreOS2FS();
     117
     118    yyrc = DosOpenLProc(pszFileName, phf, pulAction, cbFile, ulAttribute, fsOpenFlags,
     119                        fsOpenMode, peaop2);
    96120    SetFS(sel);
    97121
     
    912936   HFILE   hFile;
    913937   ULONG   actionTaken = 0;
    914    ULONG   fileSize = 0;
     938   LONGLONG fileSize = {0};
    915939   ULONG   fileAttr = FILE_NORMAL;
    916940   ULONG   openFlag = 0;
     
    10091033   {
    10101034        dprintf(("DosOpen %s openFlag=%x openMode=%x", lpszFile, openFlag, openMode));
    1011         rc = DosOpen((PSZ)lpszFile,
    1012                       &hFile,
    1013                       &actionTaken,
    1014                       fileSize,
    1015                       fileAttr,
    1016                       openFlag,
    1017                       openMode,
    1018                       NULL);
     1035        rc = OdinDosOpenL((PSZ)lpszFile,
     1036                           &hFile,
     1037                           &actionTaken,
     1038                           fileSize,
     1039                           fileAttr,
     1040                           openFlag,
     1041                           openMode,
     1042                           NULL);
    10191043    if (rc == ERROR_TOO_MANY_OPEN_FILES)
    10201044    {
     
    10821106{
    10831107   ULONG   actionTaken = 0;
    1084    ULONG   fileSize = 0;
     1108   LONGLONG fileSize = {0};
    10851109   ULONG   fileAttr = FILE_NORMAL;
    10861110   ULONG   openFlag = 0;
     
    11251149        openMode |= OPEN_SHARE_DENYREADWRITE;
    11261150
    1127    rc = DosOpen((PSZ)lpszFile,
    1128                 &hFile,
    1129                 &actionTaken,
    1130                 fileSize,
    1131                 fileAttr,
    1132                 openFlag,
    1133                 openMode,
    1134                 NULL);
     1151   rc = OdinDosOpenL((PSZ)lpszFile,
     1152                     &hFile,
     1153                     &actionTaken,
     1154                     fileSize,
     1155                     fileAttr,
     1156                     openFlag,
     1157                     openMode,
     1158                     NULL);
    11351159
    11361160   if(rc != NO_ERROR)
     
    11461170        if((rc == ERROR_OPEN_FAILED) && (openFlag & OPEN_ACTION_OPEN_IF_EXISTS))
    11471171        {
    1148             SetLastError(ERROR_FILE_NOT_FOUND_W);
    1149         }
    1150         else    SetLastError(error2WinError(rc));
     1172             SetLastError(ERROR_FILE_NOT_FOUND_W);
     1173        }
     1174        else SetLastError(error2WinError(rc));
    11511175
    11521176        return HFILE_ERROR_W;
  • trunk/src/kernel32/oslibdos.h

    r7202 r7275  
    1 /* $Id: oslibdos.h,v 1.36 2001-10-25 13:19:05 sandervl Exp $ */
     1/* $Id: oslibdos.h,v 1.37 2001-10-30 18:46:46 sandervl Exp $ */
    22
    33/*
     
    301301                              ULONG timeout,
    302302                              ULONG flags);
     303
     304
     305   typedef APIRET (* APIENTRY PROC_DosOpenL)(PCSZ  pszFileName, PHFILE phf,
     306                                             PULONG pulAction,
     307                                             LONGLONG cbFile,
     308                                             ULONG ulAttribute,
     309                                             ULONG fsOpenFlags,
     310                                             ULONG fsOpenMode,
     311                                             PEAOP2 peaop2);
     312
     313   APIRET APIENTRY OdinDosOpenL(PCSZ  pszFileName,
     314                                PHFILE phf,
     315                                PULONG pulAction,
     316                                LONGLONG cbFile,
     317                                ULONG ulAttribute,
     318                                ULONG fsOpenFlags,
     319                                ULONG fsOpenMode,
     320                                PEAOP2 peaop2);
     321
    303322#endif
    304323
Note: See TracChangeset for help on using the changeset viewer.