亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1085 | 回復(fù): 0
打印 上一主題 下一主題

machine start [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-02-06 19:01 |只看該作者 |倒序瀏覽

MACHINE_START(VR1000, "Thorcom-VR1000")

 /* Maintainer: Ben Dooks <ben@simtec.co.uk> */

 .phys_ram = S3C2410_SDRAM_PA,

 .phys_io = S3C2410_PA_UART,

 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,

 .boot_params = S3C2410_SDRAM_PA + 0x100,

 .map_io  = vr1000_map_io,

 .init_irq = s3c24xx_init_irq,

 .timer  = &s3c24xx_timer,

MACHINE_END

 

這兩個是宏定義 原型為

#define MACHINE_START(_type,_name)  \

const struct machine_desc __mach_desc_##_type \

 __attribute__((__section__(".arch.info.init"))) = { \

 .nr  = MACH_TYPE_##_type, \

 .name  = _name,

#define MACHINE_END    \

};

struct machine_desc 的原型為:

 

struct machine_desc {

 /*

  * Note! The first five elements are used

  * by assembler code in head-armv.S

  */

 unsigned int  nr;  /* architecture number */

 unsigned int  phys_ram; /* start of physical ram */

 unsigned int  phys_io; /* start of physical io */

 unsigned int  io_pg_offst; /* byte offset for io 

       * page tabe entry */

 const char  *name;  /* architecture name */

 unsigned long  boot_params; /* tagged list  */

 unsigned int  video_start; /* start of video RAM */

 unsigned int  video_end; /* end of video RAM */

 unsigned int  reserve_lp0 :1; /* never has lp0 */

 unsigned int  reserve_lp1 :1; /* never has lp1 */

 unsigned int  reserve_lp2 :1; /* never has lp2 */

 unsigned int  soft_reboot :1; /* soft reboot  */

 void   (*fixup)(struct machine_desc *,

      struct tag *, char **,

      struct meminfo *);

 void   (*map_io)(void);/* IO mapping function */

 void   (*init_irq)(void);

 struct sys_timer *timer;  /* system tick timer */

 void   (*init_machine)(void);

};

 

MACH_TYPE_SMDK2410定義在arch/include/asm-arm/mach-types.h內(nèi),值為193.

/* arch/include/asm-arm/mach-types.h */

#define MACH_TYPE_SMDK2410             193

這個值是機器的類型值,編譯時由arch/arm/tool/mach-types里面定義的數(shù)據(jù)生成的。

/* arch/arm/tool/mach-types */

smdk2410  ARCH_SMDK2410  SMDK2410  193

由上發(fā)現(xiàn),MACHINE_START主要是定義了"struct machine_desc"的類型,放在 section(".arch.info.init"),是初始化數(shù)據(jù),Kernel 起來之后將被丟棄。

各個成員函數(shù)在不同時期被調(diào)用:

1. .init_machine 在 arch/arm/kernel/setup.c 中被 customize_machine 調(diào)用,放在 arch_initcall() 段里面,會自動按順序被調(diào)用。

2. init_irqstart_kernel() --> init_IRQ() --> init_arch_irq() 被調(diào)用

3. map_io 在 setup_arch() --> paging_init() --> devicemaps_init()被調(diào)用

其他主要都在 setup_arch() 中用到。

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP