2005-04-16 15:20:36 -07:00
/*
2008-08-02 10:55:55 +01:00
* arch / arm / include / asm / mach / arch . h
2005-04-16 15:20:36 -07:00
*
* Copyright ( C ) 2000 Russell King
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef __ASSEMBLY__
struct tag ;
struct meminfo ;
struct sys_timer ;
struct machine_desc {
unsigned int nr ; /* architecture number */
const char * name ; /* architecture name */
2005-07-04 10:43:36 +01:00
unsigned long boot_params ; /* tagged list */
2005-04-16 15:20:36 -07:00
2010-10-14 22:37:52 -04:00
unsigned int nr_irqs ; /* number of IRQs */
2005-04-16 15:20:36 -07:00
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 * ) ;
2010-05-22 18:18:57 +01:00
void ( * reserve ) ( void ) ; /* reserve mem blocks */
2005-04-16 15:20:36 -07:00
void ( * map_io ) ( void ) ; /* IO mapping function */
2010-12-16 13:49:34 +00:00
void ( * init_early ) ( void ) ;
2005-04-16 15:20:36 -07:00
void ( * init_irq ) ( void ) ;
struct sys_timer * timer ; /* system tick timer */
void ( * init_machine ) ( void ) ;
2010-12-13 09:42:34 +01:00
# ifdef CONFIG_MULTI_IRQ_HANDLER
void ( * handle_irq ) ( struct pt_regs * ) ;
# endif
2005-04-16 15:20:36 -07:00
} ;
2010-12-20 10:18:36 +00:00
/*
* Current machine - only accessible during boot .
*/
extern struct machine_desc * machine_desc ;
2005-04-16 15:20:36 -07:00
/*
* Set of macros to define architecture features . This is built into
* a table by the linker .
*/
2005-10-28 14:29:43 +01:00
# define MACHINE_START(_type,_name) \
static const struct machine_desc __mach_desc_ # # _type \
2007-05-11 16:18:55 -07:00
__used \
2005-09-20 16:45:20 +01:00
__attribute__ ( ( __section__ ( " .arch.info.init " ) ) ) = { \
2005-10-28 14:29:43 +01:00
. nr = MACH_TYPE_ # # _type , \
2005-04-16 15:20:36 -07:00
. name = _name ,
# define MACHINE_END \
} ;
# endif