CMDLINE的解析
在linux的config文件中有一个特殊的宏定义CMDLINE,以前也一直在使用这个宏的参数,但是真正这个宏的解析和使用却不怎么明确。这次有机会多对它有些了解,不妨把这个浅显的认识说出来,记下来。
到底linux kernel中是如何使用这个参数的呢?
又为何一定要写在kernel的config文件中呢?
对于这个参数的使用主要是通过对它的解析完成。而Linux Kernel中使用最多的处理Kernel的启动参数的函数是:__setup这条宏。当然网上关于此的解释挺多的,我也没看懂,所以也没资格谈论。
简单的讲,这个宏的作用就是解析CMDLINE中某个字符串之后的字符串,例如以下的使用
__setup("nandcfg=", nfccfg_setup);
就是将CMDLINE宏中”nandcfg=“之后的字符串读取出来,然后进行解析使用。当然此处完全可以参考内核中原有的对于CMDLINE的解析文件来做。
另外,如果涉及到大小的参数,可以使用如下的函数完成解析:
kernel/include/linux/kernel.hextern unsigned long long memparse(const char *ptr, char **retptr);