Changeset 4136 in vbox for trunk/src/VBox/Runtime/include/internal
- Timestamp:
- Aug 14, 2007 1:59:36 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 /**
Note:
See TracChangeset
for help on using the changeset viewer.