tools/testing/selftests/gpio/gpio-sim.sh

Source file repositories/reference/linux-study-clean/tools/testing/selftests/gpio/gpio-sim.sh

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/gpio/gpio-sim.sh
Extension
.sh
Size
11155 bytes
Lines
419
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Bartosz Golaszewski <brgl@bgdev.pl>

BASE_DIR=`dirname $0`
CONFIGFS_DIR="/sys/kernel/config/gpio-sim"
MODULE="gpio-sim"

fail() {
	echo "$*" >&2
	echo "GPIO $MODULE test FAIL"
	exit 1
}

skip() {
	echo "$*" >&2
	echo "GPIO $MODULE test SKIP"
	exit 4
}

remove_chip() {
	local CHIP=$1

	for FILE in $CONFIGFS_DIR/$CHIP/*; do
		BANK=`basename $FILE`
		if [ "$BANK" = "live" -o "$BANK" = "dev_name" ]; then
			continue
		fi

		LINES=`ls $CONFIGFS_DIR/$CHIP/$BANK/ | grep -E ^line`
		if [ "$?" = 0 ]; then
			for LINE in $LINES; do
				if [ -e $CONFIGFS_DIR/$CHIP/$BANK/$LINE/hog ]; then
					rmdir $CONFIGFS_DIR/$CHIP/$BANK/$LINE/hog || \
						fail "Unable to remove the hog"
				fi

				rmdir $CONFIGFS_DIR/$CHIP/$BANK/$LINE || \
					fail "Unable to remove the line"
			done
		fi

		rmdir $CONFIGFS_DIR/$CHIP/$BANK
	done

	rmdir $CONFIGFS_DIR/$CHIP || fail "Unable to remove the chip"
}

create_chip() {
	local CHIP=$1

	mkdir $CONFIGFS_DIR/$CHIP
}

create_bank() {
	local CHIP=$1
	local BANK=$2

	mkdir $CONFIGFS_DIR/$CHIP/$BANK
}

set_label() {
	local CHIP=$1
	local BANK=$2
	local LABEL=$3

	echo $LABEL > $CONFIGFS_DIR/$CHIP/$BANK/label || fail "Unable to set the chip label"
}

set_num_lines() {

Annotation

Implementation Notes