Changeset 1710 for trunk/src/kernel32
- Timestamp:
- Nov 12, 1999, 12:38:45 PM (26 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmopen32.cpp
r690 r1710 1 /* $Id: hmopen32.cpp,v 1. 9 1999-08-25 14:27:06sandervl Exp $ */1 /* $Id: hmopen32.cpp,v 1.10 1999-11-12 11:38:39 sandervl Exp $ */ 2 2 3 3 /* … … 97 97 srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle)); 98 98 99 #if 1 99 100 rc = O32_DuplicateHandle(srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle, fdwAccess, fInherit, fdwOptions); 100 101 … … 104 105 } 105 106 else return(O32_GetLastError()); 107 #else 108 rc = OSLibDosDupHandle(pHMSrcHandle->hHMHandle, desthandle); 109 if(rc == NO_ERROR) 110 { 111 pHMHandleData->hHMHandle = *desthandle; 112 return (NO_ERROR); 113 } 114 else 115 { 116 dprintfl(("KERNEL32: HandleManager::Open32::DuplicateHandle Error %d\n",rc)); 117 O32_SetLastError(rc); 118 return(rc); 119 } 120 #endif 106 121 } 107 122 … … 149 164 hTemplate = 0; 150 165 166 #if 1 151 167 hFile = O32_CreateFile(lpFileName, 152 168 pHMHandleData->dwAccess, … … 164 180 else 165 181 return(O32_GetLastError()); 182 #else 183 184 rc = OSLibDosCreate((char *)lpFileName, 185 pHMHandleData->dwAccess, 186 pHMHandleData->dwShare, 187 //(LPSECURITY_ATTRIBUTES)lpSecurityAttributes, 188 NULL, 189 pHMHandleData->dwCreation, 190 pHMHandleData->dwFlags, 191 hTemplate, &hFile); 192 if(rc) 193 { 194 dprintfl(("KERNEL32: HandleManager::Open32::CreateFile Error %d\n",rc)); 195 O32_SetLastError(rc); 196 return(rc); 197 } 198 else 199 { 200 pHMHandleData->hHMHandle = hFile; 201 return (NO_ERROR); 202 } 203 #endif 166 204 } 167 205 … … 186 224 pHMHandleData->hHMHandle)); 187 225 226 #if 1 188 227 bRC = O32_CloseHandle(pHMHandleData->hHMHandle); 189 228 … … 192 231 193 232 return (DWORD)bRC; 233 #else 234 bRC = OSLibDosClose(pHMHandleData->hHMHandle); 235 if(bRC) 236 { 237 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle Error %d\n",bRC)); 238 O32_SetLastError(bRC); 239 return TRUE; // MUTEX Problem 240 return FALSE; 241 } 242 else 243 { 244 return TRUE; 245 } 246 #endif 194 247 } 195 248 … … 227 280 lpOverlapped)); 228 281 282 #if 1 229 283 bRC = O32_ReadFile(pHMHandleData->hHMHandle, 230 284 (PVOID)lpBuffer, … … 237 291 238 292 return (DWORD)bRC; 293 #else 294 rc = OSLibDosRead(pHMHandleData->hHMHandle, 295 (PVOID) lpBuffer, 296 nNumberOfBytesToRead, 297 lpNumberOfBytesRead); 298 if(rc) 299 { 300 dprintfl(("KERNEL32: HandleManager::Open32::ReadFile Error %d\n",rc)); 301 O32_SetLastError(rc); 302 return FALSE; 303 } 304 else 305 { 306 return TRUE; 307 } 308 #endif 239 309 } 240 310 … … 272 342 lpOverlapped)); 273 343 344 #if 1 274 345 bRC = O32_WriteFile(pHMHandleData->hHMHandle, 275 346 lpBuffer, … … 282 353 283 354 return (DWORD)bRC; 355 #else 356 rc = OSLibDosWrite(pHMHandleData->hHMHandle, 357 (PVOID) lpBuffer, 358 nNumberOfBytesToWrite, 359 lpNumberOfBytesWritten); 360 if(rc) 361 { 362 dprintfl(("KERNEL32: HandleManager::Open32::WriteFile Error %d\n",rc)); 363 O32_SetLastError(rc); 364 return FALSE; 365 } 366 else 367 { 368 return TRUE; 369 } 370 #endif 284 371 } 285 372 … … 303 390 pHMHandleData)); 304 391 392 #if 1 305 393 return O32_GetFileType(pHMHandleData->hHMHandle); 394 #else 395 // TODO: FILE_TYPE_DISK 396 return FILE_TYPE_CHAR; 397 #endif 306 398 } 307 399 … … 410 502 pSize)); 411 503 504 #if 1 412 505 return O32_GetFileSize(pHMHandleData->hHMHandle, 413 506 pSize); 507 #else 508 size = OSLibDosGetFileSize(pHMHandleData->hHMHandle); 509 if(pSize) 510 *pSize = size; 511 return size; 512 #endif 414 513 } 415 514 … … 442 541 dwMoveMethod)); 443 542 543 #if 1 444 544 return O32_SetFilePointer(pHMHandleData->hHMHandle, 445 545 lDistanceToMove, 446 546 lpDistanceToMoveHigh, 447 547 dwMoveMethod); 548 #else 549 550 if(lpDistanceToMoveHigh) 551 *lpDistanceToMoveHigh = 0; 552 pos = OSLibDosSetFilePtr2(pHMHandleData->hHMHandle, lDistanceToMove, dwMoveMethod); 553 return pos; 554 #endif 448 555 } 449 556 -
trunk/src/kernel32/oslibdos.cpp
r1687 r1710 1 /* $Id: oslibdos.cpp,v 1. 7 1999-11-10 14:16:01sandervl Exp $ */1 /* $Id: oslibdos.cpp,v 1.8 1999-11-12 11:38:40 sandervl Exp $ */ 2 2 3 3 /* … … 180 180 //****************************************************************************** 181 181 //****************************************************************************** 182 DWORD OSLibDosGetFileSize(DWORD hFile)183 {184 ULONG ulLocal, filesize = 0;185 186 DosSetFilePtr(hFile, 0L, FILE_BEGIN, &ulLocal);187 DosSetFilePtr(hFile, 0L, FILE_END, &filesize);188 DosSetFilePtr(hFile, 0L, FILE_BEGIN, &ulLocal);189 return filesize;190 }191 //******************************************************************************192 //******************************************************************************193 182 DWORD OSLibDosRead(DWORD hFile, LPVOID lpBuffer, DWORD size, DWORD *nrBytesRead) 194 183 { … … 290 279 //****************************************************************************** 291 280 //****************************************************************************** 292 293 #define OSLIB_SEARCHDIR 1294 #define OSLIB_SEARCHCURDIR 2295 #define OSLIB_SEARCHFILE 3296 #define OSLIB_SEARCHENV 4297 298 281 DWORD OSLibDosSearchPath(DWORD cmd, char *path, char *name, char *full_name, 299 282 DWORD length_fullname) … … 346 329 //****************************************************************************** 347 330 //****************************************************************************** 331 DWORD OSLibDosCreate(CHAR *lpFileName, 332 DWORD dwAccess, 333 DWORD dwShare, 334 LPSECURITY_ATTRIBUTES lpSecurityAttributes, 335 DWORD dwCreation, 336 DWORD dwFlags, 337 HANDLE hTemplate, 338 DWORD *dwFile) 339 { 340 APIRET rc; 341 HFILE hFile; 342 ULONG ulAction=0; 343 DWORD os2Attrib=0; 344 DWORD os2Flags = 0; //OPEN_FLAGS_NOINHERIT; 345 DWORD os2Open=0; 346 347 #define GENERIC_READ 0x80000000 348 #define GENERIC_WRITE 0x40000000 349 if(dwAccess == (GENERIC_READ | GENERIC_WRITE)) 350 os2Flags |= OPEN_ACCESS_READWRITE; 351 else if(dwAccess & GENERIC_WRITE) 352 os2Flags |= OPEN_ACCESS_WRITEONLY; 353 else if(dwAccess & GENERIC_READ) 354 os2Flags |= OPEN_ACCESS_READONLY; 355 356 #define FILE_SHARE_READ 0x00000001L 357 #define FILE_SHARE_WRITE 0x00000002L 358 if(dwShare == 0) 359 os2Flags |= OPEN_SHARE_DENYREADWRITE; 360 else if(dwShare == (FILE_SHARE_READ | FILE_SHARE_WRITE)) 361 os2Flags |= OPEN_SHARE_DENYNONE; 362 else if(dwShare & FILE_SHARE_READ) 363 os2Flags |= OPEN_SHARE_DENYWRITE; 364 else if(dwShare & FILE_SHARE_WRITE) 365 os2Flags |= OPEN_SHARE_DENYREAD; 366 367 #define CREATE_NEW 1 368 #define CREATE_ALWAYS 2 369 #define OPEN_EXISTING 3 370 #define OPEN_ALWAYS 4 371 #define TRUNCATE_EXISTING 5 372 if(dwCreation == CREATE_NEW) 373 os2Open = OPEN_ACTION_FAIL_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; 374 else if(dwCreation == CREATE_ALWAYS) 375 os2Open = OPEN_ACTION_REPLACE_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; 376 else if(dwCreation == OPEN_EXISTING) 377 os2Open = OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW; 378 else if(dwCreation == OPEN_ALWAYS) 379 os2Open = OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_CREATE_IF_NEW; 380 else if(dwCreation == TRUNCATE_EXISTING) 381 os2Open = OPEN_ACTION_REPLACE_IF_EXISTS;// |OPEN_ACTION_FAIL_IF_NEW; 382 383 #define FILE_ATTRIBUTE_READONLY 0x00000001L 384 #define FILE_ATTRIBUTE_HIDDEN 0x00000002L 385 #define FILE_ATTRIBUTE_SYSTEM 0x00000004L 386 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010L 387 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020L 388 #define FILE_ATTRIBUTE_NORMAL 0x00000080L 389 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100L 390 if(dwFlags & FILE_ATTRIBUTE_READONLY) 391 os2Attrib |= FILE_READONLY; 392 if(dwFlags & FILE_ATTRIBUTE_HIDDEN) 393 os2Attrib |= FILE_HIDDEN; 394 if(dwFlags & FILE_ATTRIBUTE_SYSTEM) 395 os2Attrib |= FILE_SYSTEM; 396 if(dwFlags & FILE_ATTRIBUTE_DIRECTORY) 397 os2Attrib |= FILE_DIRECTORY; 398 if(dwFlags & FILE_ATTRIBUTE_ARCHIVE) 399 os2Attrib |= FILE_ARCHIVED; 400 if(dwFlags & FILE_ATTRIBUTE_NORMAL) 401 os2Attrib |= FILE_NORMAL; 402 403 #define FILE_FLAG_WRITE_THROUGH 0x80000000UL 404 #define FILE_FLAG_OVERLAPPED 0x40000000L 405 #define FILE_FLAG_NO_BUFFERING 0x20000000L 406 #define FILE_FLAG_RANDOM_ACCESS 0x10000000L 407 #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000L 408 #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000L 409 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L 410 #define FILE_FLAG_POSIX_SEMANTICS 0x01000000L 411 if(dwFlags & FILE_FLAG_WRITE_THROUGH) 412 os2Flags |= OPEN_FLAGS_WRITE_THROUGH; 413 if(dwFlags & FILE_FLAG_NO_BUFFERING) 414 os2Flags |= OPEN_FLAGS_NO_CACHE; 415 if(dwFlags & FILE_FLAG_RANDOM_ACCESS) 416 os2Flags |= OPEN_FLAGS_RANDOM; 417 if(dwFlags & FILE_FLAG_SEQUENTIAL_SCAN) 418 os2Flags |= OPEN_FLAGS_SEQUENTIAL; 419 420 // TODO: 421 // if(dwFlags & FILE_FLAG_OVERLAPPED) 422 // if(dwFlags & FILE_FLAG_DELETE_ON_CLOSE 423 424 rc = DosOpen(lpFileName, &hFile, &ulAction, 0, 425 os2Attrib, os2Open, os2Flags, 0); 426 427 if(rc) 428 { 429 // TODO: TEST TEST 430 dprintf(("DosOpen Error rc:%d, try without GENERIC_WRITE", rc)); 431 if(dwAccess & GENERIC_WRITE) 432 os2Flags &= ~(OPEN_ACCESS_READWRITE | OPEN_ACCESS_WRITEONLY); 433 rc = DosOpen(lpFileName, &hFile, &ulAction, 0, 434 os2Attrib, os2Open, os2Flags, 0); 435 if(rc) 436 { 437 dprintf(("DosOpen Error rc:%d os2Attrib:%X os2Open:%X os2Flags:%X", 438 rc, os2Attrib, os2Open, os2Flags)); 439 hFile = -1; 440 } 441 } 442 443 *dwFile = hFile; 444 return rc; 445 } 446 //****************************************************************************** 447 //(without changing file pointer) 448 //****************************************************************************** 449 DWORD OSLibDosGetFileSize(DWORD hFile) 450 { 451 FILESTATUS3 fsts3ConfigInfo = {{0}}; 452 ULONG ulBufSize = sizeof(FILESTATUS3); 453 454 DosQueryFileInfo(hFile, FIL_STANDARD, &fsts3ConfigInfo, ulBufSize); 455 return fsts3ConfigInfo.cbFile; 456 } 457 //****************************************************************************** 458 //****************************************************************************** 459 DWORD OSLibDosSetFilePtr2(DWORD hFile, DWORD offset, DWORD method) 460 { 461 DWORD newoffset; 462 APIRET rc; 463 464 465 rc = DosSetFilePtr(hFile, offset, method, &newoffset); 466 if(rc) { 467 dprintf(("DosSetFilePtr Error rc:%d", rc)); 468 return -1; 469 } 470 else return newoffset; 471 } 472 //****************************************************************************** 473 //(FlushBuffer) 474 //****************************************************************************** 475 DWORD OSLibDosResetBuffer(DWORD hFile) 476 { 477 return DosResetBuffer(hFile); 478 } 479 //****************************************************************************** 480 //****************************************************************************** 481 DWORD OSLibDosDupHandle(DWORD hFile, DWORD *hNew) 482 { 483 *hNew = -1; 484 return DosDupHandle(hFile, hNew); 485 } 486 //****************************************************************************** 487 //****************************************************************************** -
trunk/src/kernel32/oslibdos.h
r1628 r1710 1 /* $Id: oslibdos.h,v 1. 6 1999-11-08 13:43:12sandervl Exp $ */1 /* $Id: oslibdos.h,v 1.7 1999-11-12 11:38:40 sandervl Exp $ */ 2 2 3 3 /* … … 80 80 DWORD OSLibDosSearchPath(DWORD cmd, char *path, char *name, char *full_name, DWORD length_fullname); 81 81 82 83 DWORD OSLibDosCreate(CHAR *lpFileName, 84 DWORD dwAccess, 85 DWORD dwShare, 86 LPSECURITY_ATTRIBUTES lpSecurityAttributes, 87 DWORD dwCreation, 88 DWORD dwFlags, 89 HANDLE hTemplate, 90 DWORD *dwFile); 91 92 DWORD OSLibDosResetBuffer(DWORD hFile); 93 DWORD OSLibDosDupHandle(DWORD hFile, DWORD *hNew); 94 DWORD OSLibDosSetFilePtr2(DWORD hFile, DWORD offset, DWORD method); 95 82 96 #endif
Note:
See TracChangeset
for help on using the changeset viewer.