Skip to content

Commit cceadf5

Browse files
devnexenVexu
authored andcommitted
std.c: further darwin's host statistics data
1 parent 88d2751 commit cceadf5

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

lib/std/c/darwin.zig

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3922,6 +3922,7 @@ pub const cpu_subtype_t = integer_t;
39223922
pub const cpu_threadtype_t = integer_t;
39233923
pub const host_flavor_t = integer_t;
39243924
pub const host_info_t = *integer_t;
3925+
pub const host_info64_t = *integer_t;
39253926
pub const host_can_has_debugger_info = extern struct {
39263927
can_has_debugger: boolean_t,
39273928
};
@@ -3985,6 +3986,10 @@ pub const host_preferred_user_arch = extern struct {
39853986
pub const host_preferred_user_arch_data_t = host_preferred_user_arch;
39863987
pub const host_preferred_user_arch_t = *host_preferred_user_arch;
39873988

3989+
fn HostCount(comptime HT: type) mach_msg_type_number_t {
3990+
return @intCast(mach_msg_type_number_t, @sizeOf(HT) / @sizeOf(integer_t));
3991+
}
3992+
39883993
pub const HOST = struct {
39893994
pub const BASIC_INFO = 1;
39903995
pub const SCHED_INFO = 3;
@@ -3999,14 +4004,19 @@ pub const HOST = struct {
39994004
pub const LOAD_INFO = 1;
40004005
pub const VM_INFO = 2;
40014006
pub const CPU_LOAD_INFO = 3;
4002-
pub const CAN_HAS_DEBUGGER_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_can_has_debugger_info_data_t) / @sizeOf(integer_t));
4003-
pub const SCHED_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_sched_info_data_t) / @sizeOf(integer_t));
4004-
pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t));
4005-
pub const PRIORITY_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_priority_info_data_t) / @sizeOf(integer_t));
4006-
pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t));
4007-
pub const LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_load_info_data_t) / @sizeOf(integer_t));
4008-
pub const PREFERRED_USER_ARCH_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_preferred_user_arch_data_t) / @sizeOf(integer_t));
4009-
pub const VM_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(vm_statistics_data_t) / @sizeOf(integer_t));
4007+
pub const VM_INFO64 = 4;
4008+
pub const EXTMOD_INFO64 = 5;
4009+
pub const EXPIRED_TASK_INFO = 6;
4010+
pub const CAN_HAS_DEBUGGER_COUNT = HostCount(host_can_has_debugger_info_data_t);
4011+
pub const SCHED_INFO_COUNT = HostCount(host_sched_info_data_t);
4012+
pub const RESOURCES_SIZES_COUNT = HostCount(kernel_resource_sizes_data_t);
4013+
pub const PRIORITY_INFO_COUNT = HostCount(host_priority_info_data_t);
4014+
pub const CPU_LOAD_INFO_COUNT = HostCount(host_cpu_load_info_data_t);
4015+
pub const LOAD_INFO_COUNT = HostCount(host_load_info_data_t);
4016+
pub const PREFERRED_USER_ARCH_COUNT = HostCount(host_preferred_user_arch_data_t);
4017+
pub const VM_INFO_COUNT = HostCount(vm_statistics_data_t);
4018+
pub const VM_INFO64_COUNT = HostCount(vm_statistics64_data_t);
4019+
pub const EXTMOD_INFO64_COUNT = HostCount(vm_extmod_statistics_data_t);
40104020
};
40114021

40124022
pub const host_basic_info = packed struct(u32) {
@@ -4025,6 +4035,7 @@ pub const host_basic_info = packed struct(u32) {
40254035

40264036
pub extern "c" fn host_info(host: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t;
40274037
pub extern "c" fn host_statistics(priv: host_t, flavor: host_flavor_t, info_out: host_info_t, info_outCnt: [*]mach_msg_type_number_t) kern_return_t;
4038+
pub extern "c" fn host_statistics64(priv: host_t, flavor: host_flavor_t, info_out: host_info64_t, info64_outCnt: [*]mach_msg_type_number_t) kern_return_t;
40284039

40294040
pub const vm_statistics = extern struct {
40304041
free_count: natural_t,
@@ -4076,3 +4087,17 @@ pub const vm_statistics64 align(8) = extern struct {
40764087

40774088
pub const vm_statistics64_t = *vm_statistics64;
40784089
pub const vm_statistics64_data_t = vm_statistics64;
4090+
4091+
pub const vm_extmod_statistics align(8) = extern struct {
4092+
task_for_pid_count: i64,
4093+
task_for_pid_caller_count: i64,
4094+
thread_creation_count: i64,
4095+
thread_creation_caller_count: i64,
4096+
thread_set_state_count: i64,
4097+
thread_set_state_caller_count: i64,
4098+
};
4099+
4100+
pub const vm_extmod_statistics_t = *vm_extmod_statistics;
4101+
pub const vm_extmod_statistics_data_t = vm_extmod_statistics;
4102+
4103+
pub extern "c" fn vm_stats(info: ?*anyopaque, count: *c_uint) kern_return_t;

0 commit comments

Comments
 (0)