Changeset 4136 in vbox
- Timestamp:
- Aug 14, 2007 1:59:36 AM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 23615
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/memobj.h
r4135 r4136 140 140 141 141 /** 142 * Allocates page aligned physical memory without (necessarily) any kernel mapping.142 * Allocates contiguous page aligned physical memory without (necessarily) any kernel mapping. 143 143 * 144 144 * @returns IPRT status code. … … 149 149 */ 150 150 RTR0DECL(int) RTR0MemObjAllocPhys(PRTR0MEMOBJ pMemObj, size_t cb, RTHCPHYS PhysHighest); 151 152 /** 153 * Allocates non-contiguous page aligned physical memory without (necessarily) any kernel mapping. 154 * 155 * @returns IPRT status code. 156 * @param pMemObj Where to store the ring-0 memory object handle. 157 * @param cb Number of bytes to allocate. This is rounded up to nearest page. 158 * @param PhysHighest The highest permittable address (inclusive). 159 * Pass NIL_RTHCPHYS if any address is acceptable. 160 */ 161 RTR0DECL(int) RTR0MemObjAllocPhysNC(PRTR0MEMOBJ pMemObj, size_t cb, RTHCPHYS PhysHighest); 151 162 152 163 /** … … 180 191 * @returns IPRT status code. 181 192 * @param pMemObj Where to store the ring-0 memory object handle. 182 * @param pvFixed Requested address. (void *)-1 means any address. This must match the alignment.193 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This must match the alignment. 183 194 * @param cb The number of bytes to reserve. This is rounded up to nearest PAGE_SIZE. 184 195 * @param uAlignment The alignment of the reserved memory. … … 186 197 * @param R0Process The process to reserve the memory in. NIL_R0PROCESS is an alias for the current one. 187 198 */ 188 RTR0DECL(int) RTR0MemObjReserveUser(PRTR0MEMOBJ pMemObj, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process);199 RTR0DECL(int) RTR0MemObjReserveUser(PRTR0MEMOBJ pMemObj, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process); 189 200 190 201 /** … … 207 218 * @param pMemObj Where to store the ring-0 memory object handle of the mapping object. 208 219 * @param MemObjToMap The object to be map. 209 * @param pvFixed Requested address. (void *)-1 means any address. This must match the alignment.220 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This must match the alignment. 210 221 * @param uAlignment The alignment of the reserved memory. 211 222 * Supported values are 0 (alias for PAGE_SIZE), PAGE_SIZE, _2M and _4M. … … 213 224 * @param R0Process The process to map the memory into. NIL_R0PROCESS is an alias for the current one. 214 225 */ 215 RTR0DECL(int) RTR0MemObjMapUser(PRTR0MEMOBJ pMemObj, RTR0MEMOBJ MemObjToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process);226 RTR0DECL(int) RTR0MemObjMapUser(PRTR0MEMOBJ pMemObj, RTR0MEMOBJ MemObjToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process); 216 227 217 228 #endif /* IN_RING0 */ -
trunk/src/VBox/Runtime/include/internal/memobj.h
r4135 r4136 54 54 RTR0MEMOBJTYPE_LOCK, 55 55 /** RTR0MemObjAllocPhys, RTR0MemObjEnterPhys. 56 * This memory is physical memory, page aligned, contiguous and doesn't need to have a mapping. */ 57 RTR0MEMOBJTYPE_PHYS, 58 /** RTR0MemObjAllocPhysNC. 56 59 * This memory is physical memory, page aligned and doesn't need to have a mapping. */ 57 RTR0MEMOBJTYPE_PHYS ,60 RTR0MEMOBJTYPE_PHYS_NC, 58 61 /** RTR0MemObjReserveKernel, RTR0MemObjReserveUser. 59 62 * This memory is page aligned and has no backing. */ … … 161 164 struct 162 165 { 163 /** The base address of the physical memory that's being mapped. */166 /** The base address of the physical memory. */ 164 167 RTHCPHYS PhysBase; 165 /** If set this object was created by RTR0MemPhysAlloc, otherwise by RTR0MemPhysEnter. */ 168 /** If set this object was created by RTR0MemPhysAlloc, otherwise it was 169 * created by RTR0MemPhysEnter. */ 166 170 bool fAllocated; 167 171 } Phys; 172 173 /** RTR0MEMTYPE_PHYS_NC. */ 174 struct 175 { 176 unsigned iDummy; 177 } PhysNC; 168 178 169 179 /** RTR0MEMOBJTYPE_RES_VIRT */ … … 274 284 275 285 /** 276 * Allocates page aligned physical memory without (necessarily) any kernel mapping.286 * Allocates contiguous page aligned physical memory without (necessarily) any kernel mapping. 277 287 * 278 288 * @returns IPRT status code. … … 283 293 */ 284 294 int rtR0MemObjNativeAllocPhys(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest); 295 296 /** 297 * Allocates non-contiguous page aligned physical memory without (necessarily) any kernel mapping. 298 * 299 * @returns IPRT status code. 300 * @param ppMem Where to store the ring-0 memory object handle. 301 * @param cb Number of bytes to allocate, page aligned. 302 * @param PhysHighest The highest permittable address (inclusive). 303 * NIL_RTHCPHYS if any address is acceptable. 304 */ 305 int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest); 285 306 286 307 /** … … 310 331 * @returns IPRT status code. 311 332 * @param ppMem Where to store the ring-0 memory object handle. 312 * @param pvFixed Requested address. (void *)-1 means any address. This matches uAlignment if specified.333 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This matches uAlignment if specified. 313 334 * @param cb The number of bytes to reserve, page aligned. 314 335 * @param uAlignment The alignment of the reserved memory; PAGE_SIZE, _2M or _4M. 315 336 * @param R0Process The process to reserve the memory in. 316 337 */ 317 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process);338 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process); 318 339 319 340 /** … … 335 356 * @param ppMem Where to store the ring-0 memory object handle of the mapping object. 336 357 * @param pMemToMap The object to be map. 337 * @param pvFixed Requested address. (void *)-1 means any address. This matches uAlignment if specified.358 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This matches uAlignment if specified. 338 359 * @param uAlignment The alignment of the reserved memory; PAGE_SIZE, _2M or _4M. 339 360 * @param fProt Combination of RTMEM_PROT_* flags (except RTMEM_PROT_NONE). 340 361 * @param R0Process The process to map the memory into. 341 362 */ 342 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, PRTR0MEMOBJINTERNAL pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process);363 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, PRTR0MEMOBJINTERNAL pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process); 343 364 344 365 /** -
trunk/src/VBox/Runtime/r0drv/darwin/memobj-r0drv-darwin.cpp
r4135 r4136 105 105 IOFreePhysical(pMemDarwin->Core.u.Phys.PhysBase, pMemDarwin->Core.cb);*/ 106 106 Assert(!pMemDarwin->Core.u.Phys.fAllocated); 107 break; 108 109 case RTR0MEMOBJTYPE_PHYS_NC: 110 AssertMsgFailed(("RTR0MEMOBJTYPE_PHYS_NC\n")); 111 return VERR_INTERNAL_ERROR; 107 112 break; 108 113 … … 356 361 357 362 363 int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest) 364 { 365 /** @todo rtR0MemObjNativeAllocPhys / darwin. */ 366 return rtR0MemObjNativeAllocPhys(ppMem, cb, PhysHighest); 367 } 368 369 358 370 int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb) 359 371 { … … 490 502 491 503 492 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process)504 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) 493 505 { 494 506 return VERR_NOT_IMPLEMENTED; … … 539 551 540 552 541 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)553 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process) 542 554 { 543 555 /* -
trunk/src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
r4135 r4136 143 143 case RTR0MEMOBJTYPE_LOW: 144 144 case RTR0MEMOBJTYPE_PHYS: 145 case RTR0MEMOBJTYPE_PHYS_NC: 145 146 default: 146 147 AssertMsgFailed(("enmType=%d\n", pMemFreeBSD->Core.enmType)); … … 307 308 308 309 310 int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest) 311 { 312 /** @todo rtR0MemObjNativeAllocPhys / freebsd */ 313 return rtR0MemObjNativeAllocPhys(ppMem, cb, PhysHighest); 314 } 315 316 309 317 int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb) 310 318 { … … 453 461 454 462 455 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process)456 { 457 return rtR0MemObjNativeReserveInMap(ppMem, pvFixed, cb, uAlignment, R0Process,463 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) 464 { 465 return rtR0MemObjNativeReserveInMap(ppMem, (void *)R3PtrFixed, cb, uAlignment, R0Process, 458 466 &((struct proc *)R0Process)->p_vmspace->vm_map); 459 467 } … … 483 491 break; 484 492 493 case RTR0MEMOBJTYPE_PHYS_NC: 485 494 case RTR0MEMOBJTYPE_PHYS: 486 495 pvR0 = pMemToMapOs2->Core.pv; … … 533 542 534 543 535 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)544 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process) 536 545 { 537 546 AssertMsgReturn(R0Process == RTR0ProcHandleSelf(), ("%p != %p\n", R0Process, RTR0ProcHandleSelf()), VERR_NOT_SUPPORTED); 538 AssertMsgReturn( pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);547 AssertMsgReturn(R3PtrFixed == (RTR3PTR)-1, ("%p\n", R3PtrFixed), VERR_NOT_SUPPORTED); 539 548 540 549 #if 0 … … 578 587 break; 579 588 589 case RTR0MEMOBJTYPE_PHYS_NC: 580 590 case RTR0MEMOBJTYPE_RES_VIRT: 581 591 case RTR0MEMOBJTYPE_MAPPING: … … 647 657 return pMemFreeBSD->Core.u.Phys.PhysBase + (iPage << PAGE_SHIFT); 648 658 659 case RTR0MEMOBJTYPE_PHYS_NC: 649 660 case RTR0MEMOBJTYPE_RES_VIRT: 650 661 case RTR0MEMOBJTYPE_MAPPING: -
trunk/src/VBox/Runtime/r0drv/memobj-r0drv.cpp
r4135 r4136 487 487 488 488 /** 489 * Allocates page aligned physical memory without (necessarily) any kernel mapping.489 * Allocates contiguous page aligned physical memory without (necessarily) any kernel mapping. 490 490 * 491 491 * @returns IPRT status code. … … 507 507 /* do the allocation. */ 508 508 return rtR0MemObjNativeAllocPhys(pMemObj, cbAligned, PhysHighest); 509 } 510 511 512 /** 513 * Allocates non-contiguous page aligned physical memory without (necessarily) any kernel mapping. 514 * 515 * @returns IPRT status code. 516 * @param pMemObj Where to store the ring-0 memory object handle. 517 * @param cb Number of bytes to allocate. This is rounded up to nearest page. 518 * @param PhysHighest The highest permittable address (inclusive). 519 * Pass NIL_RTHCPHYS if any address is acceptable. 520 */ 521 RTR0DECL(int) RTR0MemObjAllocPhysNC(PRTR0MEMOBJ pMemObj, size_t cb, RTHCPHYS PhysHighest) 522 { 523 /* sanity checks. */ 524 AssertPtrReturn(pMemObj, VERR_INVALID_POINTER); 525 *pMemObj = NIL_RTR0MEMOBJ; 526 AssertReturn(cb > 0, VERR_INVALID_PARAMETER); 527 const size_t cbAligned = RT_ALIGN_Z(cb, PAGE_SIZE); 528 AssertReturn(cb <= cbAligned, VERR_INVALID_PARAMETER); 529 AssertReturn(PhysHighest >= cb, VERR_INVALID_PARAMETER); 530 531 /* do the allocation. */ 532 return rtR0MemObjNativeAllocPhysNC(pMemObj, cbAligned, PhysHighest); 509 533 } 510 534 … … 571 595 * @returns IPRT status code. 572 596 * @param pMemObj Where to store the ring-0 memory object handle. 573 * @param pvFixed Requested address. (void *)-1 means any address. This must match the alignment.597 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This must match the alignment. 574 598 * @param cb The number of bytes to reserve. This is rounded up to nearest PAGE_SIZE. 575 599 * @param uAlignment The alignment of the reserved memory. … … 577 601 * @param R0Process The process to reserve the memory in. NIL_R0PROCESS is an alias for the current one. 578 602 */ 579 RTR0DECL(int) RTR0MemObjReserveUser(PRTR0MEMOBJ pMemObj, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process)603 RTR0DECL(int) RTR0MemObjReserveUser(PRTR0MEMOBJ pMemObj, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) 580 604 { 581 605 /* sanity checks. */ … … 588 612 const size_t cbAligned = RT_ALIGN_Z(cb, PAGE_SIZE); 589 613 AssertReturn(cb <= cbAligned, VERR_INVALID_PARAMETER); 590 if ( pvFixed != (void *)-1)591 AssertReturn(!( (uintptr_t)pvFixed & (uAlignment - 1)), VERR_INVALID_PARAMETER);614 if (R3PtrFixed != (RTR3PTR)-1) 615 AssertReturn(!(R3PtrFixed & (uAlignment - 1)), VERR_INVALID_PARAMETER); 592 616 if (R0Process == NIL_RTR0PROCESS) 593 617 R0Process = RTR0ProcHandleSelf(); 594 618 595 619 /* do the reservation. */ 596 return rtR0MemObjNativeReserveUser(pMemObj, pvFixed, cbAligned, uAlignment, R0Process);620 return rtR0MemObjNativeReserveUser(pMemObj, R3PtrFixed, cbAligned, uAlignment, R0Process); 597 621 } 598 622 … … 659 683 * @param pMemObj Where to store the ring-0 memory object handle of the mapping object. 660 684 * @param MemObjToMap The object to be map. 661 * @param pvFixed Requested address. (void *)-1 means any address. This must match the alignment.685 * @param R3PtrFixed Requested address. (RTR3PTR)-1 means any address. This must match the alignment. 662 686 * @param uAlignment The alignment of the reserved memory. 663 687 * Supported values are 0 (alias for PAGE_SIZE), PAGE_SIZE, _2M and _4M. … … 665 689 * @param R0Process The process to map the memory into. NIL_R0PROCESS is an alias for the current one. 666 690 */ 667 RTR0DECL(int) RTR0MemObjMapUser(PRTR0MEMOBJ pMemObj, RTR0MEMOBJ MemObjToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)691 RTR0DECL(int) RTR0MemObjMapUser(PRTR0MEMOBJ pMemObj, RTR0MEMOBJ MemObjToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process) 668 692 { 669 693 /* sanity checks. */ … … 679 703 uAlignment = PAGE_SIZE; 680 704 AssertReturn(uAlignment == PAGE_SIZE || uAlignment == _2M || uAlignment == _4M, VERR_INVALID_PARAMETER); 681 if ( pvFixed != (void *)-1)682 AssertReturn(!( (uintptr_t)pvFixed & (uAlignment - 1)), VERR_INVALID_PARAMETER);705 if (R3PtrFixed != (RTR3PTR)-1) 706 AssertReturn(!(R3PtrFixed & (uAlignment - 1)), VERR_INVALID_PARAMETER); 683 707 AssertReturn(fProt != RTMEM_PROT_NONE, VERR_INVALID_PARAMETER); 684 708 AssertReturn(!(fProt & ~(RTMEM_PROT_READ | RTMEM_PROT_WRITE | RTMEM_PROT_EXEC)), VERR_INVALID_PARAMETER); … … 688 712 /* do the mapping. */ 689 713 PRTR0MEMOBJINTERNAL pNew; 690 int rc = rtR0MemObjNativeMapUser(&pNew, pMemToMap, pvFixed, uAlignment, fProt, R0Process);714 int rc = rtR0MemObjNativeMapUser(&pNew, pMemToMap, R3PtrFixed, uAlignment, fProt, R0Process); 691 715 if (RT_SUCCESS(rc)) 692 716 { -
trunk/src/VBox/Runtime/r0drv/nt/memobj-r0drv-nt.cpp
r4135 r4136 346 346 347 347 348 int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest) 349 { 350 /** @todo rtR0MemObjNativeAllocPhys / darwin. */ 351 return rtR0MemObjNativeAllocPhys(ppMem, cb, PhysHighest); 352 } 353 354 348 355 int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb) 349 356 { … … 480 487 481 488 482 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process)489 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) 483 490 { 484 491 return VERR_NOT_IMPLEMENTED; … … 529 536 530 537 531 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)538 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process) 532 539 { 533 540 /* -
trunk/src/VBox/Runtime/r0drv/os2/memobj-r0drv-os2.cpp
r4135 r4136 77 77 switch (pMemOs2->Core.enmType) 78 78 { 79 case RTR0MEMOBJTYPE_PHYS_NC: 80 AssertMsgFailed(("RTR0MEMOBJTYPE_PHYS_NC\n")); 81 return VERR_INTERNAL_ERROR; 82 break; 83 79 84 case RTR0MEMOBJTYPE_PHYS: 80 85 if (!pMemOs2->Core.pv) … … 215 220 216 221 222 int rtR0MemObjNativeAllocPhysNC(PPRTR0MEMOBJINTERNAL ppMem, size_t cb, RTHCPHYS PhysHighest) 223 { 224 /** @todo rtR0MemObjNativeAllocPhys / darwin. */ 225 return rtR0MemObjNativeAllocPhys(ppMem, cb, PhysHighest); 226 } 227 228 217 229 int rtR0MemObjNativeEnterPhys(PPRTR0MEMOBJINTERNAL ppMem, RTHCPHYS Phys, size_t cb) 218 230 { … … 286 298 287 299 288 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, void *pvFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process)300 int rtR0MemObjNativeReserveUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3PtrFixed, size_t cb, size_t uAlignment, RTR0PROCESS R0Process) 289 301 { 290 302 return VERR_NOT_IMPLEMENTED; … … 328 340 break; 329 341 342 case RTR0MEMOBJTYPE_PHYS_NC: 343 AssertMsgFailed(("RTR0MEMOBJTYPE_PHYS_NC\n")); 344 return VERR_NOT_IMPLEMENTED; 345 break; 346 330 347 case RTR0MEMOBJTYPE_LOCK: 331 348 if (pMemToMapOs2->Core.u.Lock.R0Process != NIL_RTR0PROCESS) … … 360 377 361 378 362 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process)379 int rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, unsigned fProt, RTR0PROCESS R0Process) 363 380 { 364 381 AssertMsgReturn(R0Process == RTR0ProcHandleSelf(), ("%p != %p\n", R0Process, RTR0ProcHandleSelf()), VERR_NOT_SUPPORTED); 365 AssertMsgReturn( pvFixed == (void *)-1, ("%p\n", pvFixed), VERR_NOT_SUPPORTED);382 AssertMsgReturn(R3PtrFixed == (RTR3PTR)-1, ("%p\n", R3PtrFixed), VERR_NOT_SUPPORTED); 366 383 367 384 int rc; … … 398 415 return VERR_NOT_SUPPORTED; 399 416 417 case RTR0MEMOBJTYPE_PHYS_NC: 418 AssertMsgFailed(("RTR0MEMOBJTYPE_PHYS_NC\n")); 419 return VERR_NOT_IMPLEMENTED; 420 break; 421 400 422 case RTR0MEMOBJTYPE_LOCK: 401 423 if (pMemToMapOs2->Core.u.Lock.R0Process != NIL_RTR0PROCESS) … … 453 475 case RTR0MEMOBJTYPE_LOW: 454 476 case RTR0MEMOBJTYPE_LOCK: 477 case RTR0MEMOBJTYPE_PHYS_NC: 455 478 return pMemOs2->aPages[iPage].Addr; 456 479
Note:
See TracChangeset
for help on using the changeset viewer.