summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/sched_ext/enq_blocked.h
blob: ef1eb97feebe635785b4fc2c84abe7d37d390b28 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES */
#ifndef __ENQ_BLOCKED_H
#define __ENQ_BLOCKED_H

#include <linux/ioctl.h>
#include <linux/types.h>

struct enq_blocked_stats {
	__u64 hold_time_ns;
	__u64 wait_time_ns;
	__u64 nr_holds;
	__u64 nr_waits;
};

#define ENQ_BLOCKED_IOCTL_OWNER	_IO('s', 1)
#define ENQ_BLOCKED_IOCTL_DONOR	_IO('s', 2)
#define ENQ_BLOCKED_IOCTL_RESET_STATS	_IO('s', 3)
#define ENQ_BLOCKED_IOCTL_GET_STATS	_IOR('s', 4, struct enq_blocked_stats)
#define ENQ_BLOCKED_IOCTL_PREP_ATTACH	_IO('s', 5)
#define ENQ_BLOCKED_IOCTL_ATTACH_DONE	_IO('s', 6)
#define ENQ_BLOCKED_IOCTL_DONOR_STATE	_IO('s', 7)
#define ENQ_BLOCKED_IOCTL_PROXY_SUPPORTED _IO('s', 8)

#define ENQ_BLOCKED_DONOR_SLEEPING	(1U << 0)
#define ENQ_BLOCKED_DONOR_ON_RQ		(1U << 1)

#endif /* __ENQ_BLOCKED_H */