linux/arch/arm/include/asm/mach/arch.h
<<
>>
Prefs
   1/*
   2 *  arch/arm/include/asm/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
  13struct tag;
  14struct meminfo;
  15struct sys_timer;
  16
  17struct machine_desc {
  18        /*
  19         * Note! The first four elements are used
  20         * by assembler code in head.S, head-common.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)                      \
  51static const struct machine_desc __mach_desc_##_type    \
  52 __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