background image

 7.  
 8.#define MACHINE_END                                      \  
 9.}; 
 
struct machine_desc 也是定义在 arch/arm/include/asm/mach/arch.h
 
1.struct machine_desc { 
 2.         /*
 3.          * Note! The firstfour elements are used
 4.          * by assembler codein head.S, head-common.S
 5.          */ 
 6.         unsigned int            nr;                  /* architecture number  */ 
 7.         unsigned int            phys_io;             /* start of physical io */ 
 8.         unsigned int            io_pg_offst;         /* byte offset for io
 9.                                                       * page tabe entry      */ 
 10.  
 11.         const char              *name;               /* architecture name    */ 
 12.         unsigned long           boot_params;         /* tagged list          */ 
 13.  
 14.         unsigned int            video_start;         /* start of video RAM   */ 
 15.         unsigned int            video_end;           /* end of video RAM     */ 
 16.  
 17.         unsigned int            reserve_lp0:1;       /* never has lp0     */ 
 18.         unsigned int            reserve_lp1:1;       /* never has lp1     */ 
 19.         unsigned int            reserve_lp2:1;       /* never has lp2     */ 
 20.         unsigned int            soft_reboot:1;       /* soft reboot       */ 
 21.         void                    (*fixup)(struct machine_desc *, 
 22.                                          struct tag *, char **, 
 23.                                          struct meminfo *); 
 24.         void                    (*map_io)(void);     /* IO mapping function  */ 
 25.         void                    (*init_irq)(void); 
 26.         struct sys_timer        *timer;              /* system tick timer    */ 
 27.         void                    (*init_machine)(void); 
 28.}; 
 
3.      MACH HALIBUT 的定义
 
把 1 中定义的 MACH 展开之后,得到:
 
1.struct machine_desc __mach_desc_HALIBUT{ 
 2.__used                                                           
 3.__attribute__((__section__(".arch.info.init")))= { 
 4.         .nr               = MACH_TYPE_HALIBUT,               
 5.         .name             = "HalibutBoard (QCT SURF7200A)",