#!/bin/bash # # Copyright(c) 2012-2021 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause-Clear # . $(dirname $3)/conf_framework # submit_bio() can be defined in "bio.h" or in "fs.h" # If it is defind in fs.h, three possibilities are available: # * it takes one argument and retuns non-void # * it takes two arguments and returns non-void # * it takse two arguments and is void-type check() { cur_name=$(basename $2) config_file_path=$1 if compile_module $cur_name "submit_bio(NULL)" "linux/bio.h" then echo $cur_name "1" >> $config_file_path elif compile_module $cur_name "submit_bio(NULL)" "linux/fs.h" then echo $cur_name "2" >> $config_file_path elif compile_module $cur_name "void *t=submit_bio(0, NULL)" "linux/fs.h" then echo $cur_name "4" >> $config_file_path elif compile_module $cur_name "submit_bio(0, NULL)" "linux/fs.h" then echo $cur_name "4" >> $config_file_path else echo $cur_name "X" >> $config_file_path fi } apply() { case "$1" in "1") add_function " static inline blk_qc_t cas_submit_bio(int rw, struct bio *bio) { CAS_BIO_OP_FLAGS(bio) |= rw; return submit_bio(bio); }" ;; "2") add_function " static inline blk_qc_t cas_submit_bio(int rw, struct bio *bio) { CAS_BIO_OP_FLAGS(bio) |= rw; return submit_bio(bio); }" ;; "3") add_function " static inline blk_qc_t cas_submit_bio(int rw, struct bio *bio) { return submit_bio(rw, bio); }" ;; "4") add_function " static inline void cas_submit_bio(int rw, struct bio *bio) { submit_bio(rw, bio); }" ;; *) exit 1 esac } conf_run $@