Commit | Line | Data |
---|---|---|
7c9281d7 DT |
1 | |
2 | /* | |
3 | * edac_module.h | |
4 | * | |
5 | * For defining functions/data for within the EDAC_CORE module only | |
6 | * | |
7 | * written by doug thompson <norsk5@xmission.h> | |
8 | */ | |
9 | ||
10 | #ifndef __EDAC_MODULE_H__ | |
11 | #define __EDAC_MODULE_H__ | |
12 | ||
13 | #include <linux/sysdev.h> | |
14 | ||
15 | #include "edac_core.h" | |
16 | ||
17 | /* | |
18 | * INTERNAL EDAC MODULE: | |
19 | * EDAC memory controller sysfs create/remove functions | |
20 | * and setup/teardown functions | |
8096cfaf DT |
21 | * |
22 | * edac_mc objects | |
7c9281d7 | 23 | */ |
8096cfaf DT |
24 | extern int edac_sysfs_setup_mc_kset(void); |
25 | extern void edac_sysfs_teardown_mc_kset(void); | |
26 | extern int edac_mc_register_sysfs_main_kobj(struct mem_ctl_info *mci); | |
27 | extern void edac_mc_unregister_sysfs_main_kobj(struct mem_ctl_info *mci); | |
7c9281d7 DT |
28 | extern int edac_create_sysfs_mci_device(struct mem_ctl_info *mci); |
29 | extern void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci); | |
7c9281d7 DT |
30 | extern int edac_get_log_ue(void); |
31 | extern int edac_get_log_ce(void); | |
32 | extern int edac_get_panic_on_ue(void); | |
4de78c68 DJ |
33 | extern int edac_mc_get_log_ue(void); |
34 | extern int edac_mc_get_log_ce(void); | |
35 | extern int edac_mc_get_panic_on_ue(void); | |
7c9281d7 | 36 | extern int edac_get_poll_msec(void); |
81d87cb1 | 37 | extern int edac_mc_get_poll_msec(void); |
7c9281d7 | 38 | |
1c3631ff DT |
39 | extern int edac_device_register_sysfs_main_kobj( |
40 | struct edac_device_ctl_info *edac_dev); | |
41 | extern void edac_device_unregister_sysfs_main_kobj( | |
42 | struct edac_device_ctl_info *edac_dev); | |
7c9281d7 DT |
43 | extern int edac_device_create_sysfs(struct edac_device_ctl_info *edac_dev); |
44 | extern void edac_device_remove_sysfs(struct edac_device_ctl_info *edac_dev); | |
45 | extern struct sysdev_class *edac_get_edac_class(void); | |
46 | ||
e27e3dac DT |
47 | /* edac core workqueue: single CPU mode */ |
48 | extern struct workqueue_struct *edac_workqueue; | |
81d87cb1 | 49 | extern void edac_device_workq_setup(struct edac_device_ctl_info *edac_dev, |
079708b9 | 50 | unsigned msec); |
81d87cb1 | 51 | extern void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev); |
079708b9 DT |
52 | extern void edac_device_reset_delay_period(struct edac_device_ctl_info |
53 | *edac_dev, unsigned long value); | |
bce19683 DT |
54 | extern void edac_mc_reset_delay_period(int value); |
55 | ||
7391c6dc | 56 | extern void *edac_align_ptr(void *ptr, unsigned size); |
7c9281d7 DT |
57 | |
58 | /* | |
59 | * EDAC PCI functions | |
60 | */ | |
61 | #ifdef CONFIG_PCI | |
62 | extern void edac_pci_do_parity_check(void); | |
63 | extern void edac_pci_clear_parity_errors(void); | |
64 | extern int edac_sysfs_pci_setup(void); | |
65 | extern void edac_sysfs_pci_teardown(void); | |
4de78c68 DJ |
66 | extern int edac_pci_get_check_errors(void); |
67 | extern int edac_pci_get_poll_msec(void); | |
d4c1465b DT |
68 | extern void edac_pci_remove_sysfs(struct edac_pci_ctl_info *pci); |
69 | extern void edac_pci_handle_pe(struct edac_pci_ctl_info *pci, const char *msg); | |
70 | extern void edac_pci_handle_npe(struct edac_pci_ctl_info *pci, | |
71 | const char *msg); | |
079708b9 | 72 | #else /* CONFIG_PCI */ |
7c9281d7 DT |
73 | /* pre-process these away */ |
74 | #define edac_pci_do_parity_check() | |
75 | #define edac_pci_clear_parity_errors() | |
76 | #define edac_sysfs_pci_setup() (0) | |
77 | #define edac_sysfs_pci_teardown() | |
4de78c68 DJ |
78 | #define edac_pci_get_check_errors() |
79 | #define edac_pci_get_poll_msec() | |
d4c1465b DT |
80 | #define edac_pci_handle_pe() |
81 | #define edac_pci_handle_npe() | |
079708b9 | 82 | #endif /* CONFIG_PCI */ |
7c9281d7 | 83 | |
079708b9 | 84 | #endif /* __EDAC_MODULE_H__ */ |