| ... | @@ -3916,3 +3916,89 @@ pub const THREAD_AFFINITY = struct { | ... | @@ -3916,3 +3916,89 @@ pub const THREAD_AFFINITY = struct { |
| 3916 | /// individual cpus (high performance cpus group and low consumption one), thus the pthread QOS api is more appropriate in this case. | 3916 | /// individual cpus (high performance cpus group and low consumption one), thus the pthread QOS api is more appropriate in this case. |
| 3917 | pub extern "c" fn thread_affinity_get(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: [*]mach_msg_type_number_t, default: *boolean_t) kern_return_t; | 3917 | pub extern "c" fn thread_affinity_get(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: [*]mach_msg_type_number_t, default: *boolean_t) kern_return_t; |
| 3918 | pub extern "c" fn thread_affinity_set(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: mach_msg_type_number_t) kern_return_t; | 3918 | pub extern "c" fn thread_affinity_set(thread: thread_act_t, flavor: thread_policy_flavor_t, info: thread_policy_t, infocnt: mach_msg_type_number_t) kern_return_t; |
| | 3919 | |
| | 3920 | pub const cpu_type_t = integer_t; |
| | 3921 | pub const cpu_subtype_t = integer_t; |
| | 3922 | pub const cpu_threadtype_t = integer_t; |
| | 3923 | pub const host_flavor_t = integer_t; |
| | 3924 | pub const host_info_t = *integer_t; |
| | 3925 | pub const host_can_has_debugger_info = extern struct { |
| | 3926 | can_has_debugger: boolean_t, |
| | 3927 | }; |
| | 3928 | pub const host_can_has_debugger_info_data_t = host_can_has_debugger_info; |
| | 3929 | pub const host_can_has_debugger_info_t = *host_can_has_debugger_info; |
| | 3930 | |
| | 3931 | pub const host_sched_info = extern struct { |
| | 3932 | min_timeout: integer_t, |
| | 3933 | min_quantum: integer_t, |
| | 3934 | }; |
| | 3935 | pub const host_sched_info_data_t = host_sched_info; |
| | 3936 | pub const host_sched_info_t = *host_sched_info; |
| | 3937 | |
| | 3938 | pub const kernel_resource_sizes = extern struct { |
| | 3939 | task: natural_t, |
| | 3940 | thread: natural_t, |
| | 3941 | port: natural_t, |
| | 3942 | memory_region: natural_t, |
| | 3943 | memory_object: natural_t, |
| | 3944 | }; |
| | 3945 | |
| | 3946 | pub const kernel_resource_sizes_data_t = kernel_resource_sizes; |
| | 3947 | pub const kernel_resource_sizes_t = *kernel_resource_sizes; |
| | 3948 | |
| | 3949 | pub const host_priority_info = extern struct { |
| | 3950 | kernel_priority: integer_t, |
| | 3951 | system_priority: integer_t, |
| | 3952 | server_priority: integer_t, |
| | 3953 | user_priority: integer_t, |
| | 3954 | depress_priority: integer_t, |
| | 3955 | idle_priority: integer_t, |
| | 3956 | minimum_priority: integer_t, |
| | 3957 | maximum_priority: integer_t, |
| | 3958 | }; |
| | 3959 | |
| | 3960 | pub const host_priority_info_data_t = host_priority_info; |
| | 3961 | pub const host_priority_info_t = *host_priority_info; |
| | 3962 | |
| | 3963 | pub const CPU_STATE_MAX = 4; |
| | 3964 | |
| | 3965 | pub const host_cpu_load_info = extern struct { |
| | 3966 | cpu_ticks: [CPU_STATE_MAX]natural_t, |
| | 3967 | }; |
| | 3968 | |
| | 3969 | pub const host_cpu_load_info_data_t = host_cpu_load_info; |
| | 3970 | pub const host_cpu_load_info_t = *host_cpu_load_info; |
| | 3971 | |
| | 3972 | pub const HOST = struct { |
| | 3973 | pub const BASIC_INFO = 1; |
| | 3974 | pub const SCHED_INFO = 3; |
| | 3975 | pub const RESOURCE_SIZES = 4; |
| | 3976 | pub const PRIORITY_INFO = 5; |
| | 3977 | pub const SEMAPHORE_TRAPS = 7; |
| | 3978 | pub const MACH_MSG_TRAPS = 8; |
| | 3979 | pub const VM_PURGEABLE = 9; |
| | 3980 | pub const DEBUG_INFO_INTERNAL = 10; |
| | 3981 | pub const CAN_HAS_DEBUGGER = 11; |
| | 3982 | pub const PREFERRED_USER_ARCH = 12; |
| | 3983 | pub const CAN_HAS_DEBUGGER_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_can_has_debugger_info_data_t) / @sizeOf(integer_t)); |
| | 3984 | pub const SCHED_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_sched_info_data_t) / @sizeOf(integer_t)); |
| | 3985 | pub const RESOURCES_SIZES_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(kernel_resource_sizes_data_t) / @sizeOf(integer_t)); |
| | 3986 | pub const PRIORITY_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_priority_info_data_t) / @sizeOf(integer_t)); |
| | 3987 | pub const CPU_LOAD_INFO_COUNT = @intCast(mach_msg_type_number_t, @sizeOf(host_cpu_load_info_data_t) / @sizeOf(integer_t)); |
| | 3988 | }; |
| | 3989 | |
| | 3990 | pub const host_basic_info = packed struct(u32) { |
| | 3991 | max_cpus: integer_t, |
| | 3992 | avail_cpus: integer_t, |
| | 3993 | memory_size: natural_t, |
| | 3994 | cpu_type: cpu_type_t, |
| | 3995 | cpu_subtype: cpu_subtype_t, |
| | 3996 | cpu_threadtype: cpu_threadtype_t, |
| | 3997 | physical_cpu: integer_t, |
| | 3998 | physical_cpu_max: integer_t, |
| | 3999 | logical_cpu: integer_t, |
| | 4000 | logical_cpu_max: integer_t, |
| | 4001 | max_mem: u64, |
| | 4002 | }; |
| | 4003 | |
| | 4004 | 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; |