+#ifdef PROCESSOR_CPU_LOAD_INFO
+ int cpu;
+
+ kern_return_t status;
+
+ processor_cpu_load_info_data_t cpu_info;
+ processor_cpu_load_info_t cpu_info_ptr;
+ mach_msg_type_number_t cpu_info_len;
+
+ host_t cpu_host;
+
+ for (cpu = 0; cpu < cpu_list_len; cpu++)
+ {
+ cpu_host = 0
+ cpu_info_ptr = &cpu_info;
+ cpu_info_len = sizeof (cpu_info);
+
+ if ((status = processor_info (list[i],
+ PROCESSOR_CPU_LOAD_INFO, &cpu_host,
+ (processor_info_t) cpu_info_ptr, &cpu_info_len)) != KERN_SUCCESS)
+ {
+ syslog (LOG_ERR, "processor_info failed with status %i\n", (int) status);
+ continue;
+ }
+
+ if (cpu_info_len < CPU_STATE_MAX)
+ {
+ syslog (LOG_ERR, "processor_info returned only %i elements..\n", cpu_info_len);
+ continue;
+ }
+
+ cpu_submit (i, cpu_info.cpu_ticks[CPU_STATE_USER],
+ cpu_info.cpu_ticks[CPU_STATE_NICE],
+ cpu_info.cpu_ticks[CPU_STATE_SYSTEM],
+ cpu_info.cpu_ticks[CPU_STATE_IDLE],
+ 0ULL);
+ }
+/* #endif PROCESSOR_CPU_LOAD_INFO */
+
+#elif defined(KERNEL_LINUX)
+# define BUFSIZE 1024