#!/bin/bash # # Copyright(c) 2012-2022 Intel Corporation # Copyright(c) 2024 Huawei Technologies # SPDX-License-Identifier: BSD-3-Clause # . $(dirname $3)/conf_framework.sh check() { cur_name=$(basename $2) config_file_path=$1 if compile_module $cur_name "struct block_device_operations *ops; struct block_device *bd; ops->open(bd, 0);" "linux/blkdev.h" then echo $cur_name "1" >> $config_file_path elif compile_module $cur_name "struct block_device_operations *ops; struct gendisk *gd; ops->open(gd, 0);" "linux/blkdev.h" then echo $cur_name "2" >> $config_file_path else echo $cur_name "X" >> $config_file_path fi } apply() { add_define "CAS_REFER_BDEV_OPEN_CALLBACK(name) \\ name##_callback_wrapper" case "$1" in "1") add_define "CAS_BDEV_OPEN(name, DISK) \\ static int name##_callback(DISK); \\ static int name##_callback_wrapper(struct block_device *bdev, \\ CAS_BLK_MODE _mode) \\ { \\ return name##_callback(bdev->bd_disk); \\ } \\ static int name##_callback(DISK)";; "2") add_define "CAS_BDEV_OPEN(name, DISK) \\ static int name##_callback(DISK); \\ static int name##_callback_wrapper(struct gendisk *gd, \\ CAS_BLK_MODE _mode) \\ { \\ return name##_callback(gd->part0->bd_disk); \\ } \\ static int name##_callback(DISK)";; esac } conf_run $@