1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4# Kselftest framework requirement - SKIP code is 4.
5ksft_skip=4
6
7DBGFS=$(grep debugfs /proc/mounts --max-count 1 | awk '{print $2}')
8if [ "$DBGFS" = "" ]
9then
10	echo "debugfs not mounted"
11	exit $ksft_skip
12fi
13
14DBGFS+="/damon"
15
16if [ $EUID -ne 0 ];
17then
18	echo "Run as root"
19	exit $ksft_skip
20fi
21
22if [ ! -d "$DBGFS" ]
23then
24	echo "$DBGFS not found"
25	exit $ksft_skip
26fi
27
28if [ -f "$DBGFS/monitor_on_DEPRECATED" ]
29then
30	monitor_on_file="monitor_on_DEPRECATED"
31else
32	monitor_on_file="monitor_on"
33fi
34
35for f in attrs target_ids "$monitor_on_file"
36do
37	if [ ! -f "$DBGFS/$f" ]
38	then
39		echo "$f not found"
40		exit 1
41	fi
42done
43
44permission_error="Operation not permitted"
45for f in attrs target_ids "$monitor_on_file"
46do
47	status=$( cat "$DBGFS/$f" 2>&1 )
48	if [ "${status#*$permission_error}" != "$status" ]; then
49		echo "Permission for reading $DBGFS/$f denied; maybe secureboot enabled?"
50		exit $ksft_skip
51	fi
52done
53