android – 在“重新启动系统命令”之后,引导程序如何接收命令?

看着 android source for the reboot command我们发现如下:
__reboot(LINUX_REBOOT_MAGIC1,LINUX_REBOOT_MAGIC2,\
         LINUX_REBOOT_CMD_RESTART2,argv[optind]);

哪个是标准的Linux系统调用以使用特定命令重新启动系统,请参阅Unix System Call Reboot.

在Android中,此命令用于告知引导程序以恢复模式启动内核,或者在引导加载程序中进入快速引导模式.

我的问题是:引导程序如何接收命令?这个功能是否在U-Boot中实现? (我无法通过Google或U-Boot源找到它.)

此外,它似乎不是Android特有的,而是Linux执行“使用命令重新启动”的方式.有关在Linux中如何“正常”处理/使用的任何信息?

解决方法

当使用LINUX_REBOOT_CMD_RESTART2重新启动系统时,提供的命令字符串将传递给注册到register_reboot_notifer()的所有通知程序,最后传递给machine_restart() – 实际执行系统重新启动的体系结构特定功能.

大多数架构完全忽略了传递的命令 – 对于没有的命令,请参见SPARC. SPARC implementation of machine_restart()将提供的字符串传递给PROM的引导命令.

ARM implementation of machine_restart()最终将提供的命令传递给在每个ARM平台上单独实现的arch_reset() – 从我可以看到,至少在上游内核中,大多数(不是全部)这些实现忽略了传递的命令.这可能不是您要找的机器人.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...