root/drivers/edac/edac_module.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. edac_debugfs_init
  2. edac_debugfs_exit
  3. edac_create_debugfs_nodes
  4. edac_debugfs_create_dir
  5. edac_debugfs_create_dir_at
  6. edac_debugfs_create_file
  7. edac_debugfs_create_x8
  8. edac_debugfs_create_x16
  9. edac_debugfs_create_x32

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 
   3 /*
   4  * edac_module.h
   5  *
   6  * For defining functions/data for within the EDAC_CORE module only
   7  *
   8  * written by doug thompson <norsk5@xmission.h>
   9  */
  10 
  11 #ifndef __EDAC_MODULE_H__
  12 #define __EDAC_MODULE_H__
  13 
  14 #include "edac_mc.h"
  15 #include "edac_pci.h"
  16 #include "edac_device.h"
  17 
  18 /*
  19  * INTERNAL EDAC MODULE:
  20  * EDAC memory controller sysfs create/remove functions
  21  * and setup/teardown functions
  22  *
  23  * edac_mc objects
  24  */
  25         /* on edac_mc_sysfs.c */
  26 int edac_mc_sysfs_init(void);
  27 void edac_mc_sysfs_exit(void);
  28 extern int edac_create_sysfs_mci_device(struct mem_ctl_info *mci,
  29                                         const struct attribute_group **groups);
  30 extern void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci);
  31 void edac_unregister_sysfs(struct mem_ctl_info *mci);
  32 extern int edac_get_log_ue(void);
  33 extern int edac_get_log_ce(void);
  34 extern int edac_get_panic_on_ue(void);
  35 extern int edac_mc_get_log_ue(void);
  36 extern int edac_mc_get_log_ce(void);
  37 extern int edac_mc_get_panic_on_ue(void);
  38 extern int edac_get_poll_msec(void);
  39 extern unsigned int edac_mc_get_poll_msec(void);
  40 
  41 unsigned edac_dimm_info_location(struct dimm_info *dimm, char *buf,
  42                                  unsigned len);
  43 
  44         /* on edac_device.c */
  45 extern int edac_device_register_sysfs_main_kobj(
  46                                 struct edac_device_ctl_info *edac_dev);
  47 extern void edac_device_unregister_sysfs_main_kobj(
  48                                 struct edac_device_ctl_info *edac_dev);
  49 extern int edac_device_create_sysfs(struct edac_device_ctl_info *edac_dev);
  50 extern void edac_device_remove_sysfs(struct edac_device_ctl_info *edac_dev);
  51 
  52 /* edac core workqueue: single CPU mode */
  53 int edac_workqueue_setup(void);
  54 void edac_workqueue_teardown(void);
  55 bool edac_queue_work(struct delayed_work *work, unsigned long delay);
  56 bool edac_stop_work(struct delayed_work *work);
  57 bool edac_mod_work(struct delayed_work *work, unsigned long delay);
  58 
  59 extern void edac_device_reset_delay_period(struct edac_device_ctl_info
  60                                            *edac_dev, unsigned long value);
  61 extern void edac_mc_reset_delay_period(unsigned long value);
  62 
  63 extern void *edac_align_ptr(void **p, unsigned size, int n_elems);
  64 
  65 /*
  66  * EDAC debugfs functions
  67  */
  68 
  69 #define edac_debugfs_remove_recursive debugfs_remove_recursive
  70 #define edac_debugfs_remove debugfs_remove
  71 #ifdef CONFIG_EDAC_DEBUG
  72 void edac_debugfs_init(void);
  73 void edac_debugfs_exit(void);
  74 void edac_create_debugfs_nodes(struct mem_ctl_info *mci);
  75 struct dentry *edac_debugfs_create_dir(const char *dirname);
  76 struct dentry *
  77 edac_debugfs_create_dir_at(const char *dirname, struct dentry *parent);
  78 struct dentry *
  79 edac_debugfs_create_file(const char *name, umode_t mode, struct dentry *parent,
  80                          void *data, const struct file_operations *fops);
  81 void edac_debugfs_create_x8(const char *name, umode_t mode,
  82                             struct dentry *parent, u8 *value);
  83 void edac_debugfs_create_x16(const char *name, umode_t mode,
  84                              struct dentry *parent, u16 *value);
  85 void edac_debugfs_create_x32(const char *name, umode_t mode,
  86                              struct dentry *parent, u32 *value);
  87 #else
  88 static inline void edac_debugfs_init(void)                                      { }
  89 static inline void edac_debugfs_exit(void)                                      { }
  90 static inline void edac_create_debugfs_nodes(struct mem_ctl_info *mci)          { }
  91 static inline struct dentry *edac_debugfs_create_dir(const char *dirname)       { return NULL; }
  92 static inline struct dentry *
  93 edac_debugfs_create_dir_at(const char *dirname, struct dentry *parent)          { return NULL; }
  94 static inline struct dentry *
  95 edac_debugfs_create_file(const char *name, umode_t mode, struct dentry *parent,
  96                          void *data, const struct file_operations *fops)        { return NULL; }
  97 static inline void edac_debugfs_create_x8(const char *name, umode_t mode,
  98                                           struct dentry *parent, u8 *value)     { }
  99 static inline void edac_debugfs_create_x16(const char *name, umode_t mode,
 100                                            struct dentry *parent, u16 *value)   { }
 101 static inline void edac_debugfs_create_x32(const char *name, umode_t mode,
 102                        struct dentry *parent, u32 *value)                       { }
 103 #endif
 104 
 105 /*
 106  * EDAC PCI functions
 107  */
 108 #ifdef  CONFIG_PCI
 109 extern void edac_pci_do_parity_check(void);
 110 extern void edac_pci_clear_parity_errors(void);
 111 extern int edac_sysfs_pci_setup(void);
 112 extern void edac_sysfs_pci_teardown(void);
 113 extern int edac_pci_get_check_errors(void);
 114 extern int edac_pci_get_poll_msec(void);
 115 extern void edac_pci_remove_sysfs(struct edac_pci_ctl_info *pci);
 116 extern void edac_pci_handle_pe(struct edac_pci_ctl_info *pci, const char *msg);
 117 extern void edac_pci_handle_npe(struct edac_pci_ctl_info *pci,
 118                                 const char *msg);
 119 #else                           /* CONFIG_PCI */
 120 /* pre-process these away */
 121 #define edac_pci_do_parity_check()
 122 #define edac_pci_clear_parity_errors()
 123 #define edac_sysfs_pci_setup()  (0)
 124 #define edac_sysfs_pci_teardown()
 125 #define edac_pci_get_check_errors()
 126 #define edac_pci_get_poll_msec()
 127 #define edac_pci_handle_pe()
 128 #define edac_pci_handle_npe()
 129 #endif                          /* CONFIG_PCI */
 130 
 131 #endif                          /* __EDAC_MODULE_H__ */

/* [<][>][^][v][top][bottom][index][help] */