forked from Open-CAS/open-cas-linux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure
executable file
·106 lines (88 loc) · 2.16 KB
/
configure
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/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
compile_module "part_round_stats(1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_ROUND_STATS(q, cpu, part) part_round_stats(cpu, part)"
else
compile_module "part_round_stats(NULL, 1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_ROUND_STATS(q, cpu, part)\\"\
"\tpart_round_stats(q, cpu, part)"
fi
fi
compile_module "part_inc_in_flight(1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_INC_IN_FLIGHT(q, cpu, part)\\"\
"\tpart_inc_in_flight(cpu, part)"
else
compile_module "part_inc_in_flight(NULL, 1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_INC_IN_FLIGHT(q, cpu, part)\\"\
"\tpart_inc_in_flight(q, cpu, part)"
fi
fi
compile_module "part_dec_in_flight(1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_DEC_IN_FLIGHT(q, cpu, part)\\"\
"\tpart_dec_in_flight(cpu, part)"
else
compile_module "part_dec_in_flight(NULL, 1, 1)" "linux/genhd.h"
if [ $? -eq 0 ]; then
add_define "CAS_PART_DEC_IN_FLIGHT(q, cpu, part)\\"\
"\tpart_dec_in_flight(q, cpu, part)"
fi
fi