X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/5ba3f43ea354af8ad55bea84372a2bc834d8757c..c3c9b80d004dbbfdf763edeb97968c6997e3b45b:/osfmk/mach/arm/processor_info.h?ds=sidebyside diff --git a/osfmk/mach/arm/processor_info.h b/osfmk/mach/arm/processor_info.h index 67f9df9b8..8f311b328 100644 --- a/osfmk/mach/arm/processor_info.h +++ b/osfmk/mach/arm/processor_info.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 Apple Inc. All rights reserved. + * Copyright (c) 2007-2018 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -25,33 +25,48 @@ * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ -/* - * FILE_ID: processor_info.h - */ #ifndef _MACH_ARM_PROCESSOR_INFO_H_ #define _MACH_ARM_PROCESSOR_INFO_H_ -#define PROCESSOR_CPU_STAT 0x10000003 /* Low level cpu statistics */ +#define PROCESSOR_CPU_STAT 0x10000003 /* Low-level CPU statistics */ +#define PROCESSOR_CPU_STAT64 0x10000004 /* Low-level CPU statistics, in full 64-bit */ -#include /* uint32_t */ +#include /* uint32_t, uint64_t */ struct processor_cpu_stat { - uint32_t irq_ex_cnt; - uint32_t ipi_cnt; - uint32_t timer_cnt; - uint32_t undef_ex_cnt; - uint32_t unaligned_cnt; - uint32_t vfp_cnt; - uint32_t vfp_shortv_cnt; - uint32_t data_ex_cnt; - uint32_t instr_ex_cnt; + uint32_t irq_ex_cnt; + uint32_t ipi_cnt; + uint32_t timer_cnt; + uint32_t undef_ex_cnt; + uint32_t unaligned_cnt; + uint32_t vfp_cnt; + uint32_t vfp_shortv_cnt; + uint32_t data_ex_cnt; + uint32_t instr_ex_cnt; }; -typedef struct processor_cpu_stat processor_cpu_stat_data_t; -typedef struct processor_cpu_stat *processor_cpu_stat_t; -#define PROCESSOR_CPU_STAT_COUNT ((mach_msg_type_number_t) \ - (sizeof(processor_cpu_stat_data_t)/sizeof(natural_t))) +typedef struct processor_cpu_stat processor_cpu_stat_data_t; +typedef struct processor_cpu_stat *processor_cpu_stat_t; +#define PROCESSOR_CPU_STAT_COUNT ((mach_msg_type_number_t) \ + (sizeof(processor_cpu_stat_data_t) / sizeof(natural_t))) + +struct processor_cpu_stat64 { + uint64_t irq_ex_cnt; + uint64_t ipi_cnt; + uint64_t timer_cnt; + uint64_t undef_ex_cnt; + uint64_t unaligned_cnt; + uint64_t vfp_cnt; + uint64_t vfp_shortv_cnt; + uint64_t data_ex_cnt; + uint64_t instr_ex_cnt; + uint64_t pmi_cnt; +} __attribute__((packed, aligned(4))); +typedef struct processor_cpu_stat64 processor_cpu_stat64_data_t; +typedef struct processor_cpu_stat64 *processor_cpu_stat64_t; +#define PROCESSOR_CPU_STAT64_COUNT ((mach_msg_type_number_t) \ + (sizeof(processor_cpu_stat64_data_t) / sizeof(integer_t))) #endif /* _MACH_ARM_PROCESSOR_INFO_H_ */