Linux中的MACH定义之MACHINE_START / MACHINE_END

2014-11-24 11:33:30 ? 作者: ? 浏览: 1

本文讲解LINUX中用MACHINE_START/MACHINE_END定义的MACH,并给出定义的各个成员函数在初始化过程中被调用的时机。


1. 定义一个MACH


LINUX中MACHINE定义是用MACHINE_START()/MACHINE_END两个宏来实现的,比如MSM的实现(arch/arm/mach-msm/board-halibut.c):


2. MACHINE_START / MACHINE_END定义


上面的定义中,用到了这两个宏MACHINE_START/MACHINE_END,下面是它们具体的定义(在arch/arm/include/asm/mach/arch.h中):


struct machine_desc也是定义在arch/arm/include/asm/mach/arch.h


3. MACH HALIBUT的定义


把1中定义的MACH展开之后,得到:


总结一下:MACHINE_START主要是定义了"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: