Loading...
--- xnu/xnu-12377.101.15/libkern/c++/OSMetaClass.cpp
+++ xnu/xnu-7195.121.3/libkern/c++/OSMetaClass.cpp
@@ -433,7 +433,7 @@
{
public:
OSMetaClassMeta();
- OSObject * alloc() const override;
+ OSObject * alloc() const;
};
OSMetaClassMeta::OSMetaClassMeta()
: OSMetaClass("OSMetaClass", NULL, sizeof(OSMetaClass))
@@ -580,7 +580,8 @@
classSize = inClassSize;
superClassLink = inSuperClass;
- reserved = IOMallocType(ExpansionData);
+ reserved = IONew(ExpansionData, 1);
+ bzero(reserved, sizeof(ExpansionData));
#if IOTRACKING
uint32_t numSiteQs = 0;
if ((this == &OSSymbol ::gMetaClass)
@@ -617,22 +618,21 @@
// Grow stalled array if neccessary
if (sStalled->count >= sStalled->capacity) {
OSMetaClass **oldStalled = sStalled->classes;
- int oldCount = sStalled->capacity;
- int newCount = oldCount + kKModCapacityIncrement;
-
- sStalled->classes = kalloc_type_tag(OSMetaClass *, newCount,
- Z_WAITOK_ZERO, VM_KERN_MEMORY_OSKEXT);
+ int oldSize = sStalled->capacity * sizeof(OSMetaClass *);
+ int newSize = oldSize
+ + kKModCapacityIncrement * sizeof(OSMetaClass *);
+
+ sStalled->classes = (OSMetaClass **)kalloc_tag(newSize, VM_KERN_MEMORY_OSKEXT);
if (!sStalled->classes) {
sStalled->classes = oldStalled;
sStalled->result = kOSMetaClassNoTempData;
return;
}
- sStalled->capacity = newCount;
- memmove(sStalled->classes, oldStalled,
- sizeof(OSMetaClass *) * oldCount);
- kfree_type(OSMetaClass *, oldCount, oldStalled);
- OSMETA_ACCUMSIZE(sizeof(OSMetaClass *) * (newCount - oldCount));
+ sStalled->capacity += kKModCapacityIncrement;
+ memmove(sStalled->classes, oldStalled, oldSize);
+ kfree(oldStalled, oldSize);
+ OSMETA_ACCUMSIZE(((size_t)newSize) - ((size_t)oldSize));
}
sStalled->classes[sStalled->count++] = this;
@@ -713,7 +713,7 @@
#if IOTRACKING
IOTrackingQueueFree(reserved->tracking);
#endif
- IOFreeType(reserved, ExpansionData);
+ IODelete(reserved, ExpansionData, 1);
}
/*********************************************************************
@@ -782,21 +782,23 @@
IOLockLock(sStalledClassesLock);
assert(sStalled == NULL);
- sStalled = kalloc_type(StalledData, Z_WAITOK_ZERO_NOFAIL);
-
- sStalled->classes = kalloc_type_tag(OSMetaClass *,
- kKModCapacityIncrement, Z_WAITOK_ZERO, VM_KERN_MEMORY_OSKEXT);
- if (!sStalled->classes) {
- kfree_type(StalledData, sStalled);
- return NULL;
- }
- OSMETA_ACCUMSIZE((kKModCapacityIncrement * sizeof(OSMetaClass *)) +
- sizeof(*sStalled));
-
- sStalled->result = kOSReturnSuccess;
- sStalled->capacity = kKModCapacityIncrement;
- sStalled->count = 0;
- sStalled->kextIdentifier = kextIdentifier;
+ sStalled = (StalledData *)kalloc_tag(sizeof(*sStalled), VM_KERN_MEMORY_OSKEXT);
+ if (sStalled) {
+ sStalled->classes = (OSMetaClass **)
+ kalloc_tag(kKModCapacityIncrement * sizeof(OSMetaClass *), VM_KERN_MEMORY_OSKEXT);
+ if (!sStalled->classes) {
+ kfree(sStalled, sizeof(*sStalled));
+ return NULL;
+ }
+ OSMETA_ACCUMSIZE((kKModCapacityIncrement * sizeof(OSMetaClass *)) +
+ sizeof(*sStalled));
+
+ sStalled->result = kOSReturnSuccess;
+ sStalled->capacity = kKModCapacityIncrement;
+ sStalled->count = 0;
+ sStalled->kextIdentifier = kextIdentifier;
+ bzero(sStalled->classes, kKModCapacityIncrement * sizeof(OSMetaClass *));
+ }
// keep sStalledClassesLock locked until postModLoad
@@ -968,8 +970,8 @@
if (sStalled) {
OSMETA_ACCUMSIZE(-(sStalled->capacity * sizeof(OSMetaClass *) +
sizeof(*sStalled)));
- kfree_type(OSMetaClass *, sStalled->capacity, sStalled->classes);
- kfree_type(StalledData, sStalled);
+ kfree(sStalled->classes, sStalled->capacity * sizeof(OSMetaClass *));
+ kfree(sStalled, sizeof(*sStalled));
sStalled = NULL;
}
@@ -1105,7 +1107,7 @@
maxDepth = sDeepestClass;
if (maxDepth > kLocalDepth) {
- nextIndex = IONewData(typeof(nextIndex[0]), maxDepth);
+ nextIndex = IONew(typeof(nextIndex[0]), maxDepth);
sets = IONew(typeof(sets[0]), maxDepth);
}
done = false;
@@ -1137,7 +1139,7 @@
}
}while (!done);
if (maxDepth > kLocalDepth) {
- IODeleteData(nextIndex, typeof(nextIndex[0]), maxDepth);
+ IODelete(nextIndex, typeof(nextIndex[0]), maxDepth);
IODelete(sets, typeof(sets[0]), maxDepth);
}
}
@@ -1478,7 +1480,7 @@
OSDictionary *
OSMetaClass::getClassDictionary()
{
- panic("OSMetaClass::getClassDictionary() is obsoleted.");
+ panic("OSMetaClass::getClassDictionary() is obsoleted.\n");
return NULL;
}
@@ -1487,7 +1489,7 @@
bool
OSMetaClass::serialize(__unused OSSerialize * s) const
{
- panic("OSMetaClass::serialize(): Obsoleted");
+ panic("OSMetaClass::serialize(): Obsoleted\n");
return false;
}
@@ -1545,15 +1547,12 @@
#if IOTRACKING
-__typed_allocators_ignore_push
-
void *
OSMetaClass::trackedNew(size_t size)
{
IOTracking * mem;
- mem = (typeof(mem))kheap_alloc(KHEAP_DEFAULT, size + sizeof(IOTracking),
- Z_VM_TAG_BT(Z_WAITOK, VM_KERN_MEMORY_LIBKERN));
+ mem = (typeof(mem))kalloc_tag_bt(size + sizeof(IOTracking), VM_KERN_MEMORY_LIBKERN);
assert(mem);
if (!mem) {
return mem;
@@ -1572,11 +1571,9 @@
{
IOTracking * mem = (typeof(mem))instance; mem--;
- kheap_free(KHEAP_DEFAULT, mem, size + sizeof(IOTracking));
+ kfree(mem, size + sizeof(IOTracking));
OSIVAR_ACCUMSIZE(-size);
}
-
-__typed_allocators_ignore_pop
void
OSMetaClass::trackedInstance(OSObject * instance) const