MACHINE_START宏
来源:互联网 发布:软件开发模块文档 编辑:程序博客网 时间:2024/05/22 17:25
MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch to SMDK2410 */
/* Maintainer: Jonas Dietsche */
.phys_io = S3C2410_PA_UART,
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
.boot_params = S3C2410_SDRAM_PA + 0x100,
.map_io = smdk2410_map_io,
.init_irq = s3c24xx_init_irq,
.init_machine = smdk_machine_init,
.timer = &s3c24xx_timer,
MACHINE_END
MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch to SMDK2410 */
/* Maintainer: Jonas Dietsche */
.phys_io = S3C2410_PA_UART,
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
.boot_params = S3C2410_SDRAM_PA + 0x100,
.map_io = smdk2410_map_io,
.init_irq = s3c24xx_init_irq,
.init_machine = smdk_machine_init,
.timer = &s3c24xx_timer,
MACHINE_END
#define MACHINE_START(_type,_name) /
static const struct machine_desc __mach_desc_##_type /
__attribute_used__ /
__attribute__((__section__(".arch.info.init"))) = { /
.nr = MACH_TYPE_##_type, /
.name = _name,
#define MACHINE_END /
};
#define MACHINE_START(_type,_name) /
static const struct machine_desc __mach_desc_##_type /
__attribute_used__ /
__attribute__((__section__(".arch.info.init"))) = { /
.nr = MACH_TYPE_##_type, /
.name = _name,
#define MACHINE_END /
};
static const struct machine_desc __mach_desc_SMDK2410
__attribute_used__
__attribute__((__section__(".arch.info.init"))) = {
.nr = MACH_TYPE_SMDK2410, /* architecture number */
.name = "SMDK2410", /* architecture name */
/* Maintainer: Jonas Dietsche */
.phys_io = S3C2410_PA_UART, /* start of physical io */
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
.boot_params = S3C2410_SDRAM_PA + 0x100, /* tagged list */
.map_io = smdk2410_map_io, /* IO mapping function */
.init_irq = s3c24xx_init_irq,
.init_machine = smdk_machine_init,
.timer = &s3c24xx_timer,
}
static const struct machine_desc __mach_desc_SMDK2410
__attribute_used__
__attribute__((__section__(".arch.info.init"))) = {
.nr = MACH_TYPE_SMDK2410, /* architecture number */
.name = "SMDK2410", /* architecture name */
/* Maintainer: Jonas Dietsche */
.phys_io = S3C2410_PA_UART, /* start of physical io */
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
.boot_params = S3C2410_SDRAM_PA + 0x100, /* tagged list */
.map_io = smdk2410_map_io, /* IO mapping function */
.init_irq = s3c24xx_init_irq,
.init_machine = smdk_machine_init,
.timer = &s3c24xx_timer,
}
/* arch/include/asm-arm/mach-types.h */
#define MACH_TYPE_SMDK2410 193
这个值是机器的类型值,编译时由arch/arm/tool/mach-types里面定义的数据生成的。
/* arch/arm/tool/mach-types */
smdk2410 ARCH_SMDK2410 SMDK2410 193
由上发现,MACHINE_START主要是定义了"struct machine_desc"的类型,放在 section(".arch.info.init"),是初始化数据,Kernel 起来之后将被丢弃。
各个成员函数在不同时期被调用:
1. .init_machine 在 arch/arm/kernel/setup.c 中被 customize_machine 调用,放在 arch_initcall() 段里面,会自动按顺序被调用。
3. map_io 在 setup_arch() --> paging_init() --> devicemaps_init()被调用
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- MACHINE_START宏
- 关于MACHINE_START宏
- MACHINE_START 宏(转)
- MACHINE_START MACHINE_END 宏
- MACHINE_START MACHINE_END 宏 .
- MACHINE_START
- MACHINE_START
- MACHINE_START
- MACHINE_START
- MACHINE_START
- 关于MACHINE_START
- MACHINE_START分析
- MACHINE_START分析
- MACHINE_START分析
- 重新认识Unix市场
- 手机客户端适配性
- ListView若干点
- 移动界面设计点滴(1)——减少空间占用
- 移动界面设计点滴(2)——Flow大局观
- MACHINE_START宏
- 移动界面设计点滴(3)——工欲善其事,必先利其器
- 移动界面设计点滴(3)——工欲善其事,必先利其器
- 3. 生成套接口地址
- vim 跳转技巧
- 关于VS上魔兽私聊的问题
- iPhone 可有设计哲学?
- riaworld
- 一个关于diff的用法