69 lines
1.1 KiB
Bash
Executable File
69 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copyright(c) 2012-2019 Intel Corporation
|
|
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
|
#
|
|
|
|
MODULE_FILE=test_mod.c
|
|
OBJ_MOD=test_mod.o
|
|
KERN_VER=`uname -r`
|
|
PWD=`pwd`
|
|
NPROC=`nproc`
|
|
DEFINE_FILE=modules/generated_defines.h
|
|
|
|
|
|
add_define() {
|
|
echo -n "#define " >> $DEFINE_FILE
|
|
for arg in "$@"; do
|
|
echo -e "$arg" >> $DEFINE_FILE
|
|
done
|
|
}
|
|
|
|
add_function() {
|
|
for arg in "$@"; do
|
|
echo -e "$arg" >> $DEFINE_FILE
|
|
done
|
|
}
|
|
|
|
compile_module(){
|
|
if [ $# -gt 1 ]
|
|
then
|
|
INCLUDE="#include <$2>"
|
|
else
|
|
INCLUDE=""
|
|
fi
|
|
|
|
############# TEST MODULE #############
|
|
cat > $MODULE_FILE << EOF
|
|
#include <linux/module.h>
|
|
#include <linux/kernel.h>
|
|
$INCLUDE
|
|
|
|
int init_module(void) {
|
|
$1;
|
|
return 0;
|
|
}
|
|
void cleanup_module(void) {};
|
|
EOF
|
|
#######################################
|
|
|
|
make -C /lib/modules/$KERN_VER/build M=$PWD modules\
|
|
obj-m=$OBJ_MOD -j$NPROC &> /dev/null
|
|
|
|
local ret=$?
|
|
if [ $ret -eq 0 ]; then
|
|
make -j$NPROC -C /lib/modules/$KERN_VER/build M=$PWD clean\
|
|
obj-m=test.o &> /dev/null
|
|
fi
|
|
|
|
return $ret
|
|
}
|
|
|
|
kernel_not_supp_fail() {
|
|
echo "Current kernel is not supported!"
|
|
rm $DEFINE_FILE
|
|
exit 1
|
|
}
|
|
|
|
rm -f $DEFINE_FILE
|