linux/arch/mips/include/asm/mips_machine.h
<<
>>
Prefs
   1/*
   2 *  Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
   3 *
   4 *  This program is free software; you can redistribute it and/or modify it
   5 *  under the terms of the GNU General Public License version 2 as published
   6 *  by the Free Software Foundation.
   7 *
   8 */
   9
  10#ifndef __ASM_MIPS_MACHINE_H
  11#define __ASM_MIPS_MACHINE_H
  12
  13#include <linux/init.h>
  14#include <linux/stddef.h>
  15
  16#include <asm/bootinfo.h>
  17
  18struct mips_machine {
  19        unsigned long           mach_type;
  20        const char              *mach_id;
  21        const char              *mach_name;
  22        void                    (*mach_setup)(void);
  23};
  24
  25#define MIPS_MACHINE(_type, _id, _name, _setup)                 \
  26static const char machine_name_##_type[] __initconst            \
  27                        __aligned(1) = _name;                   \
  28static const char machine_id_##_type[] __initconst              \
  29                        __aligned(1) = _id;                     \
  30static struct mips_machine machine_##_type                      \
  31                __used __section(.mips.machines.init) =         \
  32{                                                               \
  33        .mach_type      = _type,                                \
  34        .mach_id        = machine_id_##_type,                   \
  35        .mach_name      = machine_name_##_type,                 \
  36        .mach_setup     = _setup,                               \
  37};
  38
  39extern long __mips_machines_start;
  40extern long __mips_machines_end;
  41
  42#ifdef CONFIG_MIPS_MACHINE
  43int  mips_machtype_setup(char *id) __init;
  44void mips_machine_setup(void) __init;
  45#else
  46static inline int mips_machtype_setup(char *id) { return 1; }
  47static inline void mips_machine_setup(void) { }
  48#endif /* CONFIG_MIPS_MACHINE */
  49
  50#endif /* __ASM_MIPS_MACHINE_H */
  51