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 long idle_count; 18 unsigned long long idle_time; 19 unsigned long long clock_idle_enter; 20 unsigned long long clock_idle_exit; 21 unsigned long long timer_idle_enter; 22 unsigned long 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