Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mips_machine.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2010 Gabor Juhos <[email protected]>
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 
18 struct mips_machine {
19  unsigned long mach_type;
20  const char *mach_id;
21  const char *mach_name;
23 };
24 
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, \
37 };
38 
39 extern long __mips_machines_start;
40 extern long __mips_machines_end;
41 
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 */
53 
54 #endif /* __ASM_MIPS_MACHINE_H */