1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  *  Copyright IBM Corp. 2014
4  *
5  *  Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
6  */
7 
8 #ifndef _S390_IDLE_H
9 #define _S390_IDLE_H
10 
11 #include <linux/types.h>
12 #include <linux/device.h>
13 #include <linux/seqlock.h>
14 
15 struct s390_idle_data {
16 	seqcount_t seqcount;
17 	unsigned long idle_count;
18 	unsigned long idle_time;
19 	unsigned long clock_idle_enter;
20 	unsigned long clock_idle_exit;
21 	unsigned long timer_idle_enter;
22 	unsigned long timer_idle_exit;
23 	unsigned long mt_cycles_enter[8];
24 };
25 
26 extern struct device_attribute dev_attr_idle_count;
27 extern struct device_attribute dev_attr_idle_time_us;
28 
29 void psw_idle(struct s390_idle_data *data, unsigned long psw_mask);
30 void psw_idle_exit(void);
31 
32 #endif /* _S390_IDLE_H */
33