Linux kernel per_cpu --- Linux Kernl 实现欣赏

此博客聚焦于Linux内核的per_cpu实现,虽内容待上传,但可推测会对其进行深入探讨,涉及相关技术原理、优势等信息技术关键内容。

待上传

#!/bin/bash PRODUCT=$1 COMPILE_CPU_NUM=$2 TOPDIR=`pwd` COMPATIBLE_PATH="$TOPDIR/build_compatible" PACKAGE_UTILS_PATH="$TOPDIR/package/utils" PACKAGE_KERNL_PATH="$TOPDIR/package/kernel" PACKAGE_KERNL_VERSION_PATH="$COMPATIBLE_PATH/package-versions/kernel-versions" TMP_PRODUCT_PATH="$TOPDIR/.product" make_generic() { local linux_version="$1" local gcc_version="$2" local current_product="$3" if [ -f $TMP_PRODUCT_PATH ] && [ "$current_product" = `cat $TMP_PRODUCT_PATH` ]; then return fi echo "$current_product" > $TMP_PRODUCT_PATH if [ -d "$COMPATIBLE_PATH/include-versions/include-$linux_version" ] then rm -rf $TOPDIR/include mkdir -m 777 $TOPDIR/include ln -sf $COMPATIBLE_PATH/include-versions/include-$linux_version/* $TOPDIR/include fi if [ -d "$COMPATIBLE_PATH/gcc-versions/gcc-$gcc_version" ] then rm -rf $TOPDIR/toolchain/gcc mkdir -m 777 $TOPDIR/toolchain/gcc ln -sf $COMPATIBLE_PATH/gcc-versions/gcc-$gcc_version/* $TOPDIR/toolchain/gcc fi if [ -d "$PACKAGE_KERNL_VERSION_PATH/linux-versions/linux-$linux_version" ] then rm -rf $PACKAGE_KERNL_PATH/linux mkdir -m 777 $PACKAGE_KERNL_PATH/linux ln -sf $PACKAGE_KERNL_VERSION_PATH/linux-versions/linux-$linux_version/* $PACKAGE_KERNL_PATH/linux fi if [ -d "$PACKAGE_KERNL_VERSION_PATH/gpio-button-hotplug-versions/gpio-button-hotplug-$linux_version" ] then rm -rf $PACKAGE_KERNL_PATH/gpio-button-hotplug mkdir -m 777 $PACKAGE_KERNL_PATH/gpio-button-hotplug ln -sf $PACKAGE_KERNL_VERSION_PATH/gpio-button-hotplug-versions/gpio-button-hotplug-$linux_version/* $PACKAGE_KERNL_PATH/gpio-button-hotplug fi if [ -d "$PACKAGE_KERNL_VERSION_PATH/util-linux-versions/util-linux-$linux_version" ] then rm -rf $PACKAGE_UTILS_PATH/util-linux mkdir -m 777 $PACKAGE_UTILS_PATH/util-linux ln -sf $PACKAGE_KERNL_VERSION_PATH/util-linux-versions/util-linux-$linux_version/* $PACKAGE_UTILS_PATH/util-linux fi } make_product() { make_generic "$1" "$2" "$3" "$4" local config_name=`get_product_config $3` if [ -z "$config_name" ];then return fi make ${config_name}_config V=s if [ $? -ne 0 ]; then return fi if [ -z "$4" ];then make V=s -j4 else make V=s -j$4 fi } get_product_config() { local config_name case "$1" in "cn25gc-v1") config_name="cn25gc_v1" ;; "cn25g-v1") config_name="cn25g_v1" ;; "cn25g-vppv1") config_name="cn25g-vpp_v1" ;; esac echo "$config_name" } make_cn913x_emmc() { make_product "$1" "$2" "$3" "$4" if [ $? -ne 0 ]; then return fi local config_name=`get_product_config $3` make ${config_name}_image V=s } make_cn913x() { make_product "$1" "$2" "$3" "$4" } case "$PRODUCT" in "cn25gc-v1") linux="4.14" gcc="7.3.0" make_cn913x_emmc "$linux" "$gcc" "$PRODUCT" "$COMPILE_CPU_NUM" ;; "cn25g-v1") linux="4.14" gcc="7.3.0" make_cn913x "$linux" "$gcc" "$PRODUCT" "$COMPILE_CPU_NUM" ;; "cn25g-vppv1") linux="4.14" gcc="7.3.0" make_cn913x "$linux" "$gcc" "$PRODUCT" "$COMPILE_CPU_NUM" ;; "clean") rm -rf $TOPDIR/build_dir rm -rf $TOPDIR/staging_dir rm -rf $TMP_PRODUCT_PATH ;; "clean-all") rm -rf $TOPDIR/build_dir rm -rf $TOPDIR/staging_dir rm -rf $TOPDIR/image rm -rf $TOPDIR/bin rm -rf $TOPDIR/tmp rm -rf $TOPDIR/.config rm -rf $TOPDIR/image rm -rf $TMP_PRODUCT_PATH ;; *) echo "Not support make $PRODUCT, please check!!!" ;; esac 解释一下这个shell脚本
最新发布
07-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值