JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-}JFIFICC_PROFILElcmsmntrRGB XYZ  acspMSFTsawsctrl-hand=@=@t," desc_cprt wtptrXYZ,gXYZ@bXYZTrTRCh`gTRCh`bTRCh`descuRGBtextCC0XYZ TXYZ o8XYZ bXYZ $curv*|uN  bj. C$)j.~39?FWM6Tv\dluV~,6۾ewC    #%$""!&+7/&)4)!"0A149;>>>%.DIC;C  ;("(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?|WH?cS?Ne.r˿ޱ5\YYhFOejT7PZ[qs2c/$Ep[Gqo(Nù=QHci;OipX=Ģ8d^mQeӴm1OsL/x2];i6p!zU -/uX!=<-} .
LIBYA CYBER ARMY
Logo of a company Instagram@3g86    Server : Apache
System : Linux uta-edu.server.ly 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : utripoli ( 1001)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /usr/src/snapapi26-0.8.48/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/src/snapapi26-0.8.48/snapapi_genconfig.sh
#!/bin/bash

if [ -n "${ACRONIS_SNAPAPI_VERBOSE_BUILD}" ]; then
	set -x
fi

KERNELVER=$1
CURR_KERNELVER="$(uname -r)"
if [ ! -z $KERNELVER ]; then
	KERNEL_VERSION=$KERNELVER
else
	KERNEL_VERSION=$CURR_KERNELVER
fi

KERNEL_SOURCE_DIR="$2"
if [ ! -d "$KERNEL_SOURCE_DIR" ]; then
	echo "Error: kernel source directory is wrong, args $@"
	exit 1
fi

OUTPUT_FILE=kernel_config.h
SYSTEM_MAP_DIRS=(/lib/modules/${KERNEL_VERSION} /usr/lib/debug/boot /boot)
ACRONIS_SYSTEM_MAPS_DIR=/usr/lib/Acronis/SnapAPIFiles/SystemMaps
SYSTEM_MAP_MINSIZE=1000

echo "$0 called with $@, current dir `pwd`"

function find_system_map()
{
	local dir=$1
	if [ -e $dir/System.map-${KERNEL_VERSION} ] ;then
		SYSTEM_MAP_FILE_TMP=$dir/System.map-${KERNEL_VERSION}
	elif [ -e $dir/System.map ] ;then
		SYSTEM_MAP_FILE_TMP=$dir/System.map
	fi
	if [ ! -z ${SYSTEM_MAP_FILE_TMP} ]; then
		local size=$(stat -c%s "${SYSTEM_MAP_FILE_TMP}")
		if (( $size > ${SYSTEM_MAP_MINSIZE} )); then
			SYSTEM_MAP_FILE=${SYSTEM_MAP_FILE_TMP}
		fi
	fi
}

function get_acronis_system_map
{
	boot_cfg_md5=( $(md5sum /boot/config-${KERNEL_VERSION}) )
	if [ -e ${ACRONIS_SYSTEM_MAPS_DIR}/System.map-${KERNEL_VERSION}-$boot_cfg_md5 ]; then
		SYSTEM_MAP_FILE=${ACRONIS_SYSTEM_MAPS_DIR}/System.map-${KERNEL_VERSION}-$boot_cfg_md5
	fi
}

function get_system_map_from_kallsyms()
{
	local dir="$(pwd)"
	if [ -e /proc/kallsyms -a "$CURR_KERNELVER" = "$KERNELVER" ]; then
		local smap="System.map-${KERNEL_VERSION}.tmp"
	        cat /proc/kallsyms > "${smap}"
		local size=$(stat -c%s "${smap}")
		if (( $size > ${SYSTEM_MAP_MINSIZE} )); then
			local prink_ADDR="0x$(grep " blk_mq_submit_bio$" "${smap}" | awk '{print $1}')"
			if (( $prink_ADDR != 0 )); then
				SYSTEM_MAP_FILE="${smap}"
			fi
		fi
	fi
}

function get_media_system_map()
{
	if [[ "$KERNELVER" == *"Acronis"* ]]; then
		if [ -e ../linux/System.map ];then
			SYSTEM_MAP_FILE=../linux/System.map
		fi
	fi
}

function check_entry_in_file()
{
	local flist=$1; shift
	local grep_word_opt=$1; shift
	local entry=$1; shift
	local vars="$1"; shift

	local file

	for file in $flist ; do
		if [ -f ${KERNEL_SOURCE_DIR}/$file ]; then
			if `grep -q$grep_word_opt "$entry" "${KERNEL_SOURCE_DIR}/$file"` ; then
				for var in $vars ; do
					echo "#define $var"
				done
				return
			fi
		fi
		local bdir="`dirname ${KERNEL_SOURCE_DIR}`"
		bdir="${bdir}/source"
		if [ -f ${bdir}/$file ]; then
			if `grep -q$grep_word_opt "$entry" "${bdir}/$file"` ; then
				for var in $vars ; do
					echo "#define $var"
				done
				return
			fi
		fi
	done
}

function check_file()
{
	local file=$1; shift
	local var=$1; shift

	if [ -f ${KERNEL_SOURCE_DIR}/$file ]; then
		echo "#define $var"
	fi
	local bdir="`dirname ${KERNEL_SOURCE_DIR}`"
	bdir="${bdir}/source"
	if [ -f ${bdir}/$file ]; then
		echo "#define $var"
	fi
}

for i in "${SYSTEM_MAP_DIRS[@]}"; do
	find_system_map $i
	if [ ! -z ${SYSTEM_MAP_FILE} ]; then
		break
	fi
done

if [  -z "${SYSTEM_MAP_FILE}" ]; then
	echo "Prebuilt system map for kernel \"${KERNEL_VERSION}\" is not found."
	get_acronis_system_map
fi

if [  -z "${SYSTEM_MAP_FILE}" ]; then
	echo "Acronis system map for kernel \"${KERNEL_VERSION}\" is not found."
	get_system_map_from_kallsyms
fi

if [  -z "${SYSTEM_MAP_FILE}" -a -w /proc/sys/kernel/kptr_restrict ]; then
	echo "/proc/kallsyms system map for kernel \"${KERNEL_VERSION}\" is wrong."
	saved_kptr_restrict="$(cat /proc/sys/kernel/kptr_restrict)"
	echo "0" > /proc/sys/kernel/kptr_restrict
	get_system_map_from_kallsyms
	echo "$saved_kptr_restrict" > /proc/sys/kernel/kptr_restrict
fi

if [  -z "${SYSTEM_MAP_FILE}" ]; then
	echo "/proc/kallsyms system map for kernel \"${KERNEL_VERSION}\" is wrong after reset kptr_restrict."
	get_media_system_map
fi

if [ -z "${SYSTEM_MAP_FILE}" ]; then
	echo "Cannot find System.map file."
fi

rm -f ${OUTPUT_FILE}
echo "Generate \"${OUTPUT_FILE}\" for kernel \"${KERNEL_VERSION}\" and system map \"${SYSTEM_MAP_FILE}\"."

echo "#ifndef SNAPAPI_KERNEL_CONFIG" >> ${OUTPUT_FILE}
echo "#define SNAPAPI_KERNEL_CONFIG" >> ${OUTPUT_FILE}
if [ -n "${SYSTEM_MAP_FILE}" ]; then
	echo "#define SNAPAPI_SYSTEM_MAP \"${SYSTEM_MAP_FILE}\"" >> ${OUTPUT_FILE}
	SYMBOLS="printk blk_mq_submit_bio _printk"
	for SYMBOL_NAME in ${SYMBOLS}
	do
		SYMBOL_ADDR=$(grep " ${SYMBOL_NAME}$" "${SYSTEM_MAP_FILE}" | awk '{print $1}')
		if [ -z "${SYMBOL_ADDR}" ]
		then
			echo "Function \"${SYMBOL_NAME}\" not found"
		else
			MACRO_NAME="$(echo ${SYMBOL_NAME} | awk '{print toupper($0)}')_ADDR"
			echo "#define ${MACRO_NAME} 0x${SYMBOL_ADDR}" >> ${OUTPUT_FILE}
			echo "Address of the function \"${SYMBOL_NAME}\" was defined"
		fi
	done
fi

echo >> ${OUTPUT_FILE}

check_file "include/linux/config.h" "HAVE_LINUX_CONFIG" >> ${OUTPUT_FILE}
check_file "include/linux/autoconf.h" "HAVE_LINUX_AUTOCONF" >> ${OUTPUT_FILE}
check_file "include/generated/autoconf.h" "HAVE_GENERATED_AUTOCONF" >> ${OUTPUT_FILE}
check_file "include/linux/ioctl32.h" "HAVE_IOCTL32_H" >> ${OUTPUT_FILE}
check_file "include/linux/sched/signal.h" "HAVE_SCHED_SIGNAL_H" >> ${OUTPUT_FILE}
check_file "include/linux/blk-cgroup.h" "HAVE_BLK_CGROUP_H" >> ${OUTPUT_FILE}
check_file "include/linux/part_stat.h" "HAVE_PART_STAT_H" >> ${OUTPUT_FILE}

blkdev="include/linux/blkdev.h"
fs="include/linux/fs.h"
genhd="include/linux/genhd.h"
blkdev_genhd="$blkdev $genhd"
blk_types="include/linux/blk_types.h"

check_entry_in_file "$blkdev" ""  "blk_alloc_disk(lim, node_id)" "HAVE_BLK_ALLOC_DISK_2ARG" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blkdev_get_no_open" "HAVE_BLKDEV_GET_NO_OPEN" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "sync_blockdev" "HAVE_SYNC_BLOCKDEV" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "bdev_freeze" "HAVE_BDEV_FREEZE" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "submit_bio_noacct" "HAVE_SUBMIT_BIO_BIO_NOACCT" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blk_qc_t (\*submit_bio) (struct bio \*bio)" "HAVE_BDOPS_SUBMIT_BIO_BLK_QC_T" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "void (\*submit_bio)(struct bio \*bio)" "HAVE_BDOPS_SUBMIT_BIO_VOID" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "int freeze_bdev" "HAVE_FREEZE_BDEV_INT" >> ${OUTPUT_FILE}

# blkdev/bdev get/open by_dev serie
check_entry_in_file "$blkdev $fs" ""  "blkdev_get_by_dev" "HAVE_BLKDEV_GET_BY_DEV" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev $fs" ""  "blkdev_get_by_dev(dev_t dev, fmode_t mode," "HAVE_BLKDEV_GET_BY_DEV_USE_FMODE" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" ""  "bdev_open_by_dev" "HAVE_BDEV_OPEN_BY_DEV" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" ""  "bdev_file_open_by_dev" "HAVE_BDEV_FILE_OPEN_BY_DEV" >> ${OUTPUT_FILE}

# blkdev_get/blkdev_put  serie
check_entry_in_file "$fs" "w" "extern int blkdev_put(.*,.*" "HAVE_BLKDEV_PUT_2ARGS HAVE_BLKDEV_PUT_INT"  >> ${OUTPUT_FILE}
check_entry_in_file "$fs" "w" "extern void blkdev_put(.*,.*" "HAVE_BLKDEV_PUT_2ARGS HAVE_BLKDEV_PUT_VOID"  >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "void blkdev_put(.*,.*" "HAVE_BLKDEV_PUT_2ARGS HAVE_BLKDEV_PUT_VOID" >> ${OUTPUT_FILE}

check_entry_in_file "$fs" "w" "extern int blkdev_get(.*,.*,.*unsigned.*" "HAVE_BLKDEV_GET_3ARG_FLAG"  >> ${OUTPUT_FILE}
check_entry_in_file "$fs" "w" "extern int blkdev_get(.*,.*,.*" "DHAVE_BLKDEV_GET_3ARGS"  >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "int blkdev_get(.*,.*,.*" "HAVE_BLKDEV_GET_3ARGS" >> ${OUTPUT_FILE}

check_entry_in_file "$blkdev" ""  "BLK_OPEN_EXCL" "HAVE_BLKDEV_BLK_MODES" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w"  "struct queue_limits" "HAVE_STRUCT_QUEUE_LIMITS" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" ""  "blk_mode_t" "HAVE_BLK_MODE_T" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "bdev_is_partition" "HAVE_BDEV_IS_PARTITION" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blk_queue_make_request" "HAVE_BLK_QUEUE_MAKE_REQUEST" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blk_alloc_queue_rh" "HAVE_BLK_ALLOC_QUEUE_RH" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blk_alloc_queue(gfp_t)\|blk_alloc_queue(int)\|blk_alloc_queue(int node_id)" "HAVE_BLK_ALLOC_QUEUE_ONE_ARG" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "void (.*release) (.*.*,.*)" "HAVE_FOPS_RELEASE_VOID" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "void (.*release)(.*)" "HAVE_FOPS_RELEASE_VOID" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "(.*release)(.*)" "HAVE_FOPS_RELEASE_ONE_ARG" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blkdev_put(.*,.*holder)" "HAVE_BLKDEV_PUT_HOLDER" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "queue_max_sectors" "HAVE_QUEUE_MAX_SECTORS" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "queue_max_hw_sectors" "HAVE_QUEUE_MAX_HW_SECTORS" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "typedef int (make_request_fn)" "HAVE_MAKE_REQUEST_INT" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "typedef blk_qc_t (make_request_fn)" "HAVE_MAKE_REQUEST_BLK_QC_T" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "spinlock_t.\squeue_lock" "HAVE_QUEUE_LOCK_NPTR" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "nr_rqs.*" "HAVE_REQUEST_QUEUE_RQS" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "blkdev_issue_flush" "HAVE_BLKDEV_ISSUE_FLUSH" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "set_blocksize(struct file \*file" "HAVE_SET_BLOCKSIZE_REQUIRE_FILE_PTR" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev" "w" "set_capacity_and_notify" "HAVE_SET_CAPACITY_AND_NOTIFY" >> ${OUTPUT_FILE}

check_entry_in_file "$genhd" "w" "bd_set_nr_sectors" "HAVE_BD_SET_NR_SECTORS" >> ${OUTPUT_FILE}
check_entry_in_file "$genhd" "w" "set_device_ro" "HAVE_SET_DEVICE_RO" >> ${OUTPUT_FILE}

check_entry_in_file "$blk_types" "w" "struct bvec_iter" "HAVE_BVEC_ITER" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bd_super" "HAVE_BD_SUPER" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bd_holder" "HAVE_BD_HOLDER" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bi_partno" "HAVE_BI_PARTNO" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bdev_whole" "HAVE_BDEV_WHOLE" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bio_set_op_attrs" "HAVE_BIO_SET_OP_ATTRS" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "struct request_list *rq" "HAVE_REQUEST_LIST_COUNT" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bd_has_submit_bio" "HAVE_BD_HAS_SUBMIT_BIO" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "BD_HAS_SUBMIT_BIO" "HAVE_BD_HAS_SUBMIT_BIO HAVE__bd_flags" >> ${OUTPUT_FILE}
check_entry_in_file "$blk_types" "w" "bd_nr_sectors" "HAVE_BD_NR_SECTORS" >> ${OUTPUT_FILE}

check_entry_in_file "$blkdev_genhd" "w" "bdev_nr_sectors" "HAVE_BDEV_NR_SECTORS" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev_genhd" "w" "blk_alloc_disk" "HAVE_BLK_ALLOC_DISK" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev_genhd" "w" "blk_cleanup_disk" "HAVE_BLK_CLEANUP_DISK" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev_genhd" "w" "blk_cleanup_queue" "HAVE_BLK_CLEANUP_QUEUE" >> ${OUTPUT_FILE}
check_entry_in_file "$blkdev_genhd" "w" "^void set_capacity" "HAVE_SET_CAPACITY" >> ${OUTPUT_FILE}

check_entry_in_file "$fs" "w" "REQ_WRITE" "HAVE_REQ_WRITE" >> ${OUTPUT_FILE}
check_entry_in_file "$fs" "w" "unlocked_ioctl" "HAVE_UNLOCKED_IOCTL_IN_FS_H" >> ${OUTPUT_FILE}
check_entry_in_file "$fs" "w" "extern int bd_claim" "HAVE_BD_CLAIM" >> ${OUTPUT_FILE}
check_entry_in_file "$fs" "w" "s_writers" "HAVE_SUPER_S_WRITERS"  >> ${OUTPUT_FILE}

check_entry_in_file "$fs include/linux/buffer_head.h include/linux/blkdev.h" "" "freeze_bdev" "HAVE_FREEZE_BDEV" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/mm.h" "" "page_mapcount" "HAVE_PAGE_MAPCOUNT" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/mm_types.h" "" "_mapcount" "HAVE_PAGE_UMAPCOUNT" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/spinlock_types.h include/linux/spinlock.h" "w" "SPIN_LOCK_UNLOCKED" "HAVE_SPIN_LOCK_UNLOCKED" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/types.h" "w" "fmode_t" "HAVE_FMODE_T" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/freezer.h" "" "try_to_freeze" "HAVE_TRY_TO_FREEZE_NO_ARGS HAVE_FREEZER_H" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/sched.h" "w" "try_to_freeze(unsigned.*)" "HAVE_TRY_TO_FREEZE_ONE_ARG" >> ${OUTPUT_FILE}
check_entry_in_file "include/linux/sched.h" "w" "try_to_freeze(void)" "HAVE_TRY_TO_FREEZE_NO_ARGS" >> ${OUTPUT_FILE}

check_entry_in_file "include/linux/blk-mq.h" "w" "blk_mq_make_request" "HAVE_BLK_MQ_MAKE_REQUEST" >> ${OUTPUT_FILE}


echo >> ${OUTPUT_FILE}

# the end of the config file
echo "#endif" >> ${OUTPUT_FILE}

echo ${OUTPUT_FILE} created.
cat ${OUTPUT_FILE}


3g86 2022