Lines Matching refs:type
487 #define KALLOC_TYPE_DEFINE(var, type, flags) \ argument
488 _KALLOC_TYPE_DEFINE(var, type, flags); \
489 __ZONE_DECLARE_TYPE(var, type)
693 #define kfree_type_counted_by(type, count, elem) \ argument
694 kfree_type_counted_by_3(type, count, elem)
708 #define kalloc_type_require(type, value) ({ \ argument
709 static _KALLOC_TYPE_DEFINE(kt_view_var, type, KT_SHARED_ACCT); \
800 #define KT_SUMMARY_GRANULES(type) \ argument
801 (__builtin_xnu_type_summary(type) & KT_SUMMARY_MASK_TYPE_BITS)
812 #define KALLOC_TYPE_SIG_CHECK(mask, type) \ argument
813 ((KT_SUMMARY_GRANULES(type) & ~(mask)) == 0)
823 #define KALLOC_TYPE_IS_DATA_ONLY(type) \ argument
824 KALLOC_TYPE_SIG_CHECK(KT_SUMMARY_MASK_DATA, type)
840 #define KALLOC_TYPE_HAS_OVERLAPS(type) \ argument
841 ((KT_SUMMARY_GRANULES(type) & ~KT_SUMMARY_MASK_ALL_GRANULES) != 0)
862 #define KALLOC_TYPE_IS_COMPATIBLE_PTR(ptr, type) \ argument
863 (__builtin_xnu_types_compatible(os_get_pointee_type(ptr), type) || \
866 #define KALLOC_TYPE_ASSERT_COMPATIBLE_POINTER(ptr, type) \ argument
867 _Static_assert(KALLOC_TYPE_IS_COMPATIBLE_PTR(ptr, type), \
1301 #define kalloc_type_2(type, flags) ({ \ argument
1302 static _KALLOC_TYPE_DEFINE(kt_view_var, type, KT_SHARED_ACCT); \
1303 __unsafe_forge_single(type *, kalloc_type_impl(kt_view_var, flags)); \
1306 #define kfree_type_2(type, elem) ({ \ argument
1307 KALLOC_TYPE_ASSERT_COMPATIBLE_POINTER(elem, type); \
1308 static _KALLOC_TYPE_DEFINE(kt_view_var, type, KT_SHARED_ACCT); \
1312 #define kfree_type_3(type, count, elem) ({ \ argument
1313 KALLOC_TYPE_ASSERT_COMPATIBLE_POINTER(elem, type); \
1314 static KALLOC_TYPE_VAR_DEFINE_3(kt_view_var, type, KT_SHARED_ACCT); \
1317 kt_size(0, sizeof(type), __kfree_count)); \
1321 #define kfree_type_counted_by_3(type, count_var, elem_var) ({ \ argument
1327 (os_get_pointee_type(elem_var) *)NULL, type); \
1328 static KALLOC_TYPE_VAR_DEFINE_3(kt_view_var, type, KT_SHARED_ACCT); \
1330 kt_size(0, sizeof(type), __kfree_count)); \
1345 #define kalloc_type_tag_3(type, flags, tag) ({ \ argument
1346 static _KALLOC_TYPE_DEFINE(kt_view_var, type, KT_SHARED_ACCT); \
1347 __unsafe_forge_single(type *, kalloc_type_impl(kt_view_var, \
1351 #define kalloc_type_tag_4(type, count, flags, tag) ({ \ argument
1352 static KALLOC_TYPE_VAR_DEFINE_3(kt_view_var, type, KT_SHARED_ACCT); \
1353 (type *)kalloc_type_var_impl(kt_view_var, \
1354 kt_size(0, sizeof(type), count), \
1357 #define kalloc_type_3(type, count, flags) \ argument
1358 kalloc_type_tag_4(type, count, flags, VM_ALLOC_SITE_TAG())
1370 #define krealloc_type_tag_6(type, old_count, new_count, elem, flags, tag) ({ \ argument
1371 static KALLOC_TYPE_VAR_DEFINE_3(kt_view_var, type, KT_SHARED_ACCT); \
1372 KALLOC_TYPE_ASSERT_COMPATIBLE_POINTER(elem, type); \
1373 (type *)__krealloc_type(kt_view_var, elem, \
1374 kt_size(0, sizeof(type), old_count), \
1375 kt_size(0, sizeof(type), new_count), \
1378 #define krealloc_type_5(type, old_count, new_count, elem, flags) \ argument
1379 krealloc_type_tag_6(type, old_count, new_count, elem, flags, \
1398 #define kalloc_type_3(type, count, flags) ({ \ argument
1399 static KALLOC_TYPE_VAR_DEFINE_3(kt_view_var, type, KT_SHARED_ACCT); \
1400 (type *)kalloc_type_var_impl(kt_view_var, \
1401 kt_size(0, sizeof(type), count), flags, NULL); \
1540 #define KALLOC_TYPE_CHECK_2(check, type) \ argument
1541 (KALLOC_TYPE_SIG_CHECK(check, type))
1550 #define KALLOC_TYPE_VM_SIZE_CHECK_1(type) \ argument
1551 (sizeof(type) > KHEAP_MAX_SIZE)
1598 #define _KALLOC_TYPE_DEFINE(var, type, flags) \ argument
1603 .kt_zv.zv_name = "site." #type, \
1604 .kt_flags = KALLOC_TYPE_ADJUST_FLAGS(flags, type), \
1605 .kt_size = sizeof(type), \
1606 .kt_signature = KALLOC_TYPE_EMIT_SIG(type), \
1608 KALLOC_TYPE_SIZE_CHECK(sizeof(type));
1610 #define KALLOC_TYPE_VAR_DEFINE_3(var, type, flags) \ argument
1616 .kt_name = "site." #type, \
1617 .kt_flags = KALLOC_TYPE_ADJUST_FLAGS(flags, type), \
1618 .kt_size_type = sizeof(type), \
1619 .kt_sig_type = KALLOC_TYPE_EMIT_SIG(type), \
1621 KALLOC_TYPE_SIZE_CHECK(sizeof(type));
1623 #define KALLOC_TYPE_VAR_DEFINE_4(var, hdr, type, flags) \ argument
1629 .kt_name = "site." #hdr "." #type, \
1630 .kt_flags = KALLOC_TYPE_ADJUST_FLAGS(flags, hdr, type), \
1632 .kt_size_type = sizeof(type), \
1633 .kt_sig_hdr = KALLOC_TYPE_EMIT_SIG(hdr, type), \
1634 .kt_sig_type = KALLOC_TYPE_EMIT_SIG(type, hdr), \
1637 KALLOC_TYPE_SIZE_CHECK(sizeof(type)); \
1638 KALLOC_TYPE_TRAILING_DATA_CHECK(hdr, type);
1644 #define KALLOC_TYPE_DEFINE_SITE(var, type, flags) \ argument
1645 static _KALLOC_TYPE_DEFINE(var, type, flags)