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 18 struct 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) \ 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 #else mips_machtype_setup(char * id)46static inline int mips_machtype_setup(char *id) { return 1; } mips_machine_setup(void)47static inline void mips_machine_setup(void) { } 48 #endif /* CONFIG_MIPS_MACHINE */ 49 50 #endif /* __ASM_MIPS_MACHINE_H */ 51