7b79ae
#!/bin/sh +x
db9905
# Kernel build can have many thousands of modules.
db9905
# kmod.prov is run for every one of them.
db9905
# Try to make this script run as fast as we can.
db9905
# For example, use shell string ops instead of external programs
db9905
# where possible.
7b79ae
7b79ae
IFS=$'\n'
7b79ae
db9905
read -r fname || exit
7b79ae
db9905
# Only process files from .../lib/modules/... subtree
db9905
[ "${fname#*/lib/modules/*}" != "$fname" ] || exit 0
db9905
db9905
kmod=${fname##*/}  # like basename, but faster
db9905
db9905
if [ "$kmod" = "modules.builtin" ]; then
db9905
        for j in $(cat -- "$fname"); do
db9905
                echo "kmod(${j##*/})"
db9905
        done
db9905
        exit 0
db9905
fi
db9905
db9905
kmod=${kmod%.gz}
db9905
kmod=${kmod%.xz}
db9905
if [ "${kmod%.ko}" != "$kmod" ]; then
db9905
        echo "kmod($kmod)"
db9905
fi