Changeset 97910 in vbox for trunk/src/VBox/Runtime/r0drv/solaris
- Timestamp:
- Dec 29, 2022 7:15:56 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 155000
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/solaris/alloc-r0drv-solaris.c
r97900 r97910 80 80 size_t cbAllocated = cb; 81 81 PRTMEMHDR pHdr; 82 83 #ifdef RT_ARCH_AMD64 84 if (fFlags & RTMEMHDR_FLAG_EXEC) 85 { 86 AssertReturn(!(fFlags & RTMEMHDR_FLAG_ANY_CTX), VERR_NOT_SUPPORTED); 87 cbAllocated = RT_ALIGN_Z(cb + sizeof(*pHdr), PAGE_SIZE) - sizeof(*pHdr); 88 pHdr = (PRTMEMHDR)segkmem_alloc(heaptext_arena, cbAllocated + sizeof(*pHdr), KM_SLEEP); 89 } 82 unsigned fKmFlags = fFlags & RTMEMHDR_FLAG_ANY_CTX_ALLOC ? KM_NOSLEEP : KM_SLEEP; 83 if (fFlags & RTMEMHDR_FLAG_ZEROED) 84 pHdr = (PRTMEMHDR)kmem_zalloc(cb + sizeof(*pHdr), fKmFlags); 90 85 else 91 #endif 92 { 93 unsigned fKmFlags = fFlags & RTMEMHDR_FLAG_ANY_CTX_ALLOC ? KM_NOSLEEP : KM_SLEEP; 94 if (fFlags & RTMEMHDR_FLAG_ZEROED) 95 pHdr = (PRTMEMHDR)kmem_zalloc(cb + sizeof(*pHdr), fKmFlags); 96 else 97 pHdr = (PRTMEMHDR)kmem_alloc(cb + sizeof(*pHdr), fKmFlags); 98 } 86 pHdr = (PRTMEMHDR)kmem_alloc(cb + sizeof(*pHdr), fKmFlags); 99 87 if (RT_UNLIKELY(!pHdr)) 100 88 { … … 119 107 { 120 108 pHdr->u32Magic += 1; 121 #ifdef RT_ARCH_AMD64 122 if (pHdr->fFlags & RTMEMHDR_FLAG_EXEC) 123 segkmem_free(heaptext_arena, pHdr, pHdr->cb + sizeof(*pHdr)); 124 else 125 #endif 126 kmem_free(pHdr, pHdr->cb + sizeof(*pHdr)); 109 kmem_free(pHdr, pHdr->cb + sizeof(*pHdr)); 127 110 } 128 111
Note:
See TracChangeset
for help on using the changeset viewer.