2007-07-19 12:49:33 +04:00
/*
* edac_module . h
*
* For defining functions / data for within the EDAC_CORE module only
*
* written by doug thompson < norsk5 @ xmission . h >
*/
# ifndef __EDAC_MODULE_H__
# define __EDAC_MODULE_H__
# include <linux/sysdev.h>
# include "edac_core.h"
/*
* INTERNAL EDAC MODULE :
* EDAC memory controller sysfs create / remove functions
* and setup / teardown functions
2007-07-19 12:50:27 +04:00
*
* edac_mc objects
2007-07-19 12:49:33 +04:00
*/
2007-07-19 12:50:27 +04:00
extern int edac_sysfs_setup_mc_kset ( void ) ;
extern void edac_sysfs_teardown_mc_kset ( void ) ;
extern int edac_mc_register_sysfs_main_kobj ( struct mem_ctl_info * mci ) ;
extern void edac_mc_unregister_sysfs_main_kobj ( struct mem_ctl_info * mci ) ;
2007-07-19 12:49:33 +04:00
extern int edac_create_sysfs_mci_device ( struct mem_ctl_info * mci ) ;
extern void edac_remove_sysfs_mci_device ( struct mem_ctl_info * mci ) ;
extern int edac_get_log_ue ( void ) ;
extern int edac_get_log_ce ( void ) ;
extern int edac_get_panic_on_ue ( void ) ;
2007-07-19 12:49:54 +04:00
extern int edac_mc_get_log_ue ( void ) ;
extern int edac_mc_get_log_ce ( void ) ;
extern int edac_mc_get_panic_on_ue ( void ) ;
2007-07-19 12:49:33 +04:00
extern int edac_get_poll_msec ( void ) ;
2007-07-19 12:49:52 +04:00
extern int edac_mc_get_poll_msec ( void ) ;
2007-07-19 12:49:33 +04:00
2007-07-19 12:50:29 +04:00
extern int edac_device_register_sysfs_main_kobj (
struct edac_device_ctl_info * edac_dev ) ;
extern void edac_device_unregister_sysfs_main_kobj (
struct edac_device_ctl_info * edac_dev ) ;
2007-07-19 12:49:33 +04:00
extern int edac_device_create_sysfs ( struct edac_device_ctl_info * edac_dev ) ;
extern void edac_device_remove_sysfs ( struct edac_device_ctl_info * edac_dev ) ;
extern struct sysdev_class * edac_get_edac_class ( void ) ;
2007-07-19 12:49:36 +04:00
/* edac core workqueue: single CPU mode */
extern struct workqueue_struct * edac_workqueue ;
2007-07-19 12:49:52 +04:00
extern void edac_device_workq_setup ( struct edac_device_ctl_info * edac_dev ,
2007-07-19 12:49:58 +04:00
unsigned msec ) ;
2007-07-19 12:49:52 +04:00
extern void edac_device_workq_teardown ( struct edac_device_ctl_info * edac_dev ) ;
2007-07-19 12:49:58 +04:00
extern void edac_device_reset_delay_period ( struct edac_device_ctl_info
* edac_dev , unsigned long value ) ;
2007-07-26 21:41:14 +04:00
extern void edac_mc_reset_delay_period ( int value ) ;
2007-07-19 12:50:21 +04:00
extern void * edac_align_ptr ( void * ptr , unsigned size ) ;
2007-07-19 12:49:33 +04:00
/*
* EDAC PCI functions
*/
# ifdef CONFIG_PCI
extern void edac_pci_do_parity_check ( void ) ;
extern void edac_pci_clear_parity_errors ( void ) ;
extern int edac_sysfs_pci_setup ( void ) ;
extern void edac_sysfs_pci_teardown ( void ) ;
2007-07-19 12:49:54 +04:00
extern int edac_pci_get_check_errors ( void ) ;
extern int edac_pci_get_poll_msec ( void ) ;
2007-07-26 21:41:15 +04:00
extern void edac_pci_remove_sysfs ( struct edac_pci_ctl_info * pci ) ;
extern void edac_pci_handle_pe ( struct edac_pci_ctl_info * pci , const char * msg ) ;
extern void edac_pci_handle_npe ( struct edac_pci_ctl_info * pci ,
const char * msg ) ;
2007-07-19 12:49:58 +04:00
# else /* CONFIG_PCI */
2007-07-19 12:49:33 +04:00
/* pre-process these away */
# define edac_pci_do_parity_check()
# define edac_pci_clear_parity_errors()
# define edac_sysfs_pci_setup() (0)
# define edac_sysfs_pci_teardown()
2007-07-19 12:49:54 +04:00
# define edac_pci_get_check_errors()
# define edac_pci_get_poll_msec()
2007-07-26 21:41:15 +04:00
# define edac_pci_handle_pe()
# define edac_pci_handle_npe()
2007-07-19 12:49:58 +04:00
# endif /* CONFIG_PCI */
2007-07-19 12:49:33 +04:00
2007-07-19 12:49:58 +04:00
# endif /* __EDAC_MODULE_H__ */