xref: /linux-6.15/include/linux/idle_inject.h (revision cd4c0763)
188763a5cSDaniel Lezcano /* SPDX-License-Identifier: GPL-2.0 */
288763a5cSDaniel Lezcano /*
388763a5cSDaniel Lezcano  * Copyright (C) 2018 Linaro Ltd
488763a5cSDaniel Lezcano  *
588763a5cSDaniel Lezcano  * Author: Daniel Lezcano <[email protected]>
688763a5cSDaniel Lezcano  *
788763a5cSDaniel Lezcano  */
888763a5cSDaniel Lezcano #ifndef __IDLE_INJECT_H__
988763a5cSDaniel Lezcano #define __IDLE_INJECT_H__
1088763a5cSDaniel Lezcano 
1188763a5cSDaniel Lezcano /* private idle injection device structure */
1288763a5cSDaniel Lezcano struct idle_inject_device;
1388763a5cSDaniel Lezcano 
1488763a5cSDaniel Lezcano struct idle_inject_device *idle_inject_register(struct cpumask *cpumask);
1588763a5cSDaniel Lezcano 
1688763a5cSDaniel Lezcano void idle_inject_unregister(struct idle_inject_device *ii_dev);
1788763a5cSDaniel Lezcano 
1888763a5cSDaniel Lezcano int idle_inject_start(struct idle_inject_device *ii_dev);
1988763a5cSDaniel Lezcano 
2088763a5cSDaniel Lezcano void idle_inject_stop(struct idle_inject_device *ii_dev);
2188763a5cSDaniel Lezcano 
2288763a5cSDaniel Lezcano void idle_inject_set_duration(struct idle_inject_device *ii_dev,
23*cd4c0763SDaniel Lezcano 				 unsigned int run_duration_us,
24*cd4c0763SDaniel Lezcano 				 unsigned int idle_duration_us);
2588763a5cSDaniel Lezcano 
2688763a5cSDaniel Lezcano void idle_inject_get_duration(struct idle_inject_device *ii_dev,
27*cd4c0763SDaniel Lezcano 				 unsigned int *run_duration_us,
28*cd4c0763SDaniel Lezcano 				 unsigned int *idle_duration_us);
2988763a5cSDaniel Lezcano #endif /* __IDLE_INJECT_H__ */
30