home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / mach / arch.h next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.6 KB  |  61 lines

  1. /*
  2.  *  linux/include/asm-arm/mach/arch.h
  3.  *
  4.  *  Copyright (C) 2000 Russell King
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License version 2 as
  8.  * published by the Free Software Foundation.
  9.  */
  10.  
  11. #ifndef __ASSEMBLY__
  12.  
  13. struct tag;
  14. struct meminfo;
  15. struct sys_timer;
  16.  
  17. struct machine_desc {
  18.     /*
  19.      * Note! The first four elements are used
  20.      * by assembler code in head-armv.S
  21.      */
  22.     unsigned int        nr;        /* architecture number    */
  23.     unsigned int        phys_io;    /* start of physical io    */
  24.     unsigned int        io_pg_offst;    /* byte offset for io 
  25.                          * page tabe entry    */
  26.  
  27.     const char        *name;        /* architecture name    */
  28.     unsigned long        boot_params;    /* tagged list        */
  29.  
  30.     unsigned int        video_start;    /* start of video RAM    */
  31.     unsigned int        video_end;    /* end of video RAM    */
  32.  
  33.     unsigned int        reserve_lp0 :1;    /* never has lp0    */
  34.     unsigned int        reserve_lp1 :1;    /* never has lp1    */
  35.     unsigned int        reserve_lp2 :1;    /* never has lp2    */
  36.     unsigned int        soft_reboot :1;    /* soft reboot        */
  37.     void            (*fixup)(struct machine_desc *,
  38.                      struct tag *, char **,
  39.                      struct meminfo *);
  40.     void            (*map_io)(void);/* IO mapping function    */
  41.     void            (*init_irq)(void);
  42.     struct sys_timer    *timer;        /* system tick timer    */
  43.     void            (*init_machine)(void);
  44. };
  45.  
  46. /*
  47.  * Set of macros to define architecture features.  This is built into
  48.  * a table by the linker.
  49.  */
  50. #define MACHINE_START(_type,_name)            \
  51. static const struct machine_desc __mach_desc_##_type    \
  52.  __attribute_used__                    \
  53.  __attribute__((__section__(".arch.info.init"))) = {    \
  54.     .nr        = MACH_TYPE_##_type,        \
  55.     .name        = _name,
  56.  
  57. #define MACHINE_END                \
  58. };
  59.  
  60. #endif
  61.