- vm_map_t map;
- mach_vm_size_t volatile_virtual_size;
- mach_vm_size_t volatile_resident_size;
- mach_vm_size_t volatile_pmap_size;
-
- map = (task == kernel_task) ? kernel_map: task->map;
- vm_map_query_volatile(map, &volatile_virtual_size, &volatile_resident_size, &volatile_pmap_size);
+ kern_return_t ret;
+ ledger_amount_t credit, debit;
+ uint64_t volatile_size = 0;
+
+ ret = ledger_get_entries(task->ledger, task_ledgers.purgeable_volatile, &credit, &debit);
+ if (ret != KERN_SUCCESS) {
+ return 0;
+ }
+
+ volatile_size += (credit - debit);
+
+ ret = ledger_get_entries(task->ledger, task_ledgers.purgeable_volatile_compressed, &credit, &debit);
+ if (ret != KERN_SUCCESS) {
+ return 0;
+ }