#include <linux/cpu.h>
#include <linux/hrtimer.h>
+#include <linux/idle_inject.h>
#include <linux/kthread.h>
#include <linux/sched.h>
#include <linux/slab.h>
int should_run;
};
-/**
- * struct idle_inject_device - idle injection data
- * @timer: idle injection period timer
- * @idle_duration_ms: duration of CPU idle time to inject
- * @run_duration_ms: duration of CPU run time to allow
- * @cpumask: mask of CPUs affected by idle injection
- */
-struct idle_inject_device {
- struct hrtimer timer;
- unsigned int idle_duration_ms;
- unsigned int run_duration_ms;
- unsigned long int cpumask[0];
-};
-
static DEFINE_PER_CPU(struct idle_inject_thread, idle_inject_thread);
static DEFINE_PER_CPU(struct idle_inject_device *, idle_inject_device);
#ifndef __IDLE_INJECT_H__
#define __IDLE_INJECT_H__
-/* private idle injection device structure */
-struct idle_inject_device;
+/**
+ * struct idle_inject_device - idle injection data
+ * @timer: idle injection period timer
+ * @idle_duration_ms: duration of CPU idle time to inject
+ * @run_duration_ms: duration of CPU run time to allow
+ * @cpumask: mask of CPUs affected by idle injection
+ */
+struct idle_inject_device {
+ struct hrtimer timer;
+ unsigned int idle_duration_ms;
+ unsigned int run_duration_ms;
+ unsigned long int cpumask[0];
+};
struct idle_inject_device *idle_inject_register(struct cpumask *cpumask);