Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #include <linux/config.h> |
2 | #include <linux/module.h> | |
3 | ||
4 | #include <asm/machvec.h> | |
5 | #include <asm/system.h> | |
6 | ||
7 | #ifdef CONFIG_IA64_GENERIC | |
8 | ||
9 | #include <linux/kernel.h> | |
10 | #include <linux/string.h> | |
11 | ||
12 | #include <asm/page.h> | |
13 | ||
14 | struct ia64_machine_vector ia64_mv; | |
15 | EXPORT_SYMBOL(ia64_mv); | |
16 | ||
a5b00bb4 H |
17 | static __initdata const char *mvec_name; |
18 | static __init int setup_mvec(char *s) | |
19 | { | |
20 | mvec_name = s; | |
21 | return 0; | |
22 | } | |
23 | early_param("machvec", setup_mvec); | |
24 | ||
25 | static struct ia64_machine_vector * __init | |
1da177e4 LT |
26 | lookup_machvec (const char *name) |
27 | { | |
28 | extern struct ia64_machine_vector machvec_start[]; | |
29 | extern struct ia64_machine_vector machvec_end[]; | |
30 | struct ia64_machine_vector *mv; | |
31 | ||
32 | for (mv = machvec_start; mv < machvec_end; ++mv) | |
33 | if (strcmp (mv->name, name) == 0) | |
34 | return mv; | |
35 | ||
36 | return 0; | |
37 | } | |
38 | ||
39 | void | |
40 | machvec_init (const char *name) | |
41 | { | |
42 | struct ia64_machine_vector *mv; | |
43 | ||
a5b00bb4 H |
44 | if (!name) |
45 | name = mvec_name ? mvec_name : acpi_get_sysname(); | |
1da177e4 | 46 | mv = lookup_machvec(name); |
a5b00bb4 H |
47 | if (!mv) |
48 | panic("generic kernel failed to find machine vector for" | |
49 | " platform %s!", name); | |
50 | ||
1da177e4 LT |
51 | ia64_mv = *mv; |
52 | printk(KERN_INFO "booting generic kernel on platform %s\n", name); | |
53 | } | |
54 | ||
55 | #endif /* CONFIG_IA64_GENERIC */ | |
56 | ||
57 | void | |
58 | machvec_setup (char **arg) | |
59 | { | |
60 | } | |
61 | EXPORT_SYMBOL(machvec_setup); | |
62 | ||
63 | void | |
64 | machvec_timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) | |
65 | { | |
66 | } | |
67 | EXPORT_SYMBOL(machvec_timer_interrupt); | |
68 | ||
69 | void | |
70 | machvec_dma_sync_single (struct device *hwdev, dma_addr_t dma_handle, size_t size, int dir) | |
71 | { | |
72 | mb(); | |
73 | } | |
74 | EXPORT_SYMBOL(machvec_dma_sync_single); | |
75 | ||
76 | void | |
77 | machvec_dma_sync_sg (struct device *hwdev, struct scatterlist *sg, int n, int dir) | |
78 | { | |
79 | mb(); | |
80 | } | |
81 | EXPORT_SYMBOL(machvec_dma_sync_sg); |