Lines Matching defs:vtable

143     KXLDVTable *vtable = NULL;
149 vtable = kxld_array_get_item(&kext->vtables, i);
150 kxld_vtable_clear(vtable);
167 KXLDVTable *vtable = NULL;
173 vtable = kxld_array_get_slot(&kext->vtables, i);
174 kxld_vtable_deinit(vtable);
334 KXLDVTable *vtable = NULL;
346 vtable = kxld_array_get_item(&kext->vtables, i);
348 rval = kxld_dict_insert(vtables, vtable->name, vtable);
410 /* Kexts that are being relocated need symbols indexed by value for vtable
414 * symbols by value before we relocate the symbols because the vtable
448 * will look for vtable symbols in the defined_symbols dictionary. Otherwise,
449 * it will look in the kext's symbol table for vtable symbols.
454 * for symbol resolution, so we can look there for vtable symbols without
470 KXLDVTable *vtable = NULL;
483 /* Create a vtable object for every vtable symbol */
490 * class vtable and a MetaClass vtable.
511 vtable = kxld_array_get_item(&kext->vtables, i++);
512 rval = kxld_vtable_init(vtable, vtable_sym, kext->kext,
517 * patching and can't find the metaclass vtable. If that's the
573 /* Get the vtable name from the class name */
578 /* Get the vtable symbol */
589 /* Get the meta vtable name from the class name */
594 /* Get the meta vtable symbol */
716 * 2) Actual kexts delay the error until validation in case vtable
777 * 3) Derive the name of the class's vtable from the name of the class
782 * 7) Derive the super class's vtable from the super class's name
804 KXLDVTable *vtable = NULL;
846 /* Get the vtable name from the class name */
851 /* Get the vtable and make sure it hasn't been patched */
852 vtable = kxld_dict_find(&kext->vtable_index, vtable_name);
853 require_action(vtable, finish, rval=KERN_FAILURE;
857 if (!vtable->is_patched) {
869 /* Get the super vtable name from the class name */
874 /* Get the super vtable if it's been patched */
882 /* If the parent's vtable hasn't been patched, warn that
883 * this vtable is unpatchable because of the parent.
900 /* Get the final symbol's name from the super vtable */
923 /* Patch the class's vtable */
924 rval = kxld_vtable_patch(vtable, super_vtable, kext->kext);
927 /* Add the class's vtable to the set of patched vtables */
928 rval = kxld_dict_insert(patched_vtables, vtable->name, vtable);
931 /* Get the meta vtable name from the class name */
936 /* Get the meta vtable. Whether or not it should exist has already
940 vtable = kxld_dict_find(&kext->vtable_index, vtable_name);
941 if (!vtable) {
946 require_action(!vtable->is_patched, finish, rval=KERN_FAILURE);
948 /* There is no way to look up a metaclass vtable at runtime, but
950 * OSMetaClass, so we just hardcode that vtable name here.
957 /* Get the super meta vtable */
962 /* Patch the meta class's vtable */
963 rval = kxld_vtable_patch(vtable, super_vtable, kext->kext);
966 /* Add the MetaClass's vtable to the set of patched vtables */
967 rval = kxld_dict_insert(patched_vtables, vtable->name, vtable);
994 KXLDVTable *vtable = NULL;
1002 /* Map vtable names to the vtable structures */
1008 vtable = kxld_array_get_item(&kext->vtables, i);
1009 rval = kxld_dict_insert(&kext->vtable_index, vtable->name, vtable);