Loading...
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
15struct 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
26extern struct device_attribute dev_attr_idle_count;
27extern struct device_attribute dev_attr_idle_time_us;
28
29void psw_idle(struct s390_idle_data *data, unsigned long psw_mask);
30void psw_idle_exit(void);
31
32#endif /* _S390_IDLE_H */
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
14struct s390_idle_data {
15 unsigned long idle_count;
16 unsigned long idle_time;
17 unsigned long clock_idle_enter;
18 unsigned long timer_idle_enter;
19 unsigned long mt_cycles_enter[8];
20};
21
22extern struct device_attribute dev_attr_idle_count;
23extern struct device_attribute dev_attr_idle_time_us;
24
25void psw_idle(struct s390_idle_data *data, unsigned long psw_mask);
26
27#endif /* _S390_IDLE_H */