Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux...
[linux-2.6/x86.git] / arch / mips / include / asm / mips_machine.h
blob363bb352c7f70b4da402ed8725ce383a0f22a6e1
1 /*
2 * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
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.
8 */
10 #ifndef __ASM_MIPS_MACHINE_H
11 #define __ASM_MIPS_MACHINE_H
13 #include <linux/init.h>
14 #include <linux/stddef.h>
16 #include <asm/bootinfo.h>
18 struct mips_machine {
19 unsigned long mach_type;
20 const char *mach_id;
21 const char *mach_name;
22 void (*mach_setup)(void);
25 #define MIPS_MACHINE(_type, _id, _name, _setup) \
26 static const char machine_name_##_type[] __initconst \
27 __aligned(1) = _name; \
28 static const char machine_id_##_type[] __initconst \
29 __aligned(1) = _id; \
30 static 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, \
39 extern long __mips_machines_start;
40 extern long __mips_machines_end;
42 #ifdef CONFIG_MIPS_MACHINE
43 int mips_machtype_setup(char *id) __init;
44 void mips_machine_setup(void) __init;
45 void mips_set_machine_name(const char *name) __init;
46 char *mips_get_machine_name(void);
47 #else
48 static inline int mips_machtype_setup(char *id) { return 1; }
49 static inline void mips_machine_setup(void) { }
50 static inline void mips_set_machine_name(const char *name) { }
51 static inline char *mips_get_machine_name(void) { return NULL; }
52 #endif /* CONFIG_MIPS_MACHINE */
54 #endif /* __ASM_MIPS_MACHINE_H */