Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mce_amd_inj.c File Reference
#include <linux/kobject.h>
#include <linux/device.h>
#include <linux/edac.h>
#include <linux/module.h>
#include <asm/mce.h>
#include "mce_amd.h"

Go to the source code of this file.

Data Structures

struct  edac_mce_attr
 

Macros

#define EDAC_MCE_ATTR(_name, _mode, _show, _store)   static struct edac_mce_attr mce_attr_##_name = __ATTR(_name, _mode, _show, _store)
 
#define MCE_INJECT_STORE(reg)
 
#define MCE_INJECT_SHOW(reg)
 

Functions

 MCE_INJECT_STORE (status)
 
 MCE_INJECT_STORE (misc)
 
 MCE_INJECT_STORE (addr)
 
 MCE_INJECT_SHOW (status)
 
 MCE_INJECT_SHOW (misc)
 
 MCE_INJECT_SHOW (addr)
 
 EDAC_MCE_ATTR (status, 0644, edac_inject_status_show, edac_inject_status_store)
 
 EDAC_MCE_ATTR (misc, 0644, edac_inject_misc_show, edac_inject_misc_store)
 
 EDAC_MCE_ATTR (addr, 0644, edac_inject_addr_show, edac_inject_addr_store)
 
 EDAC_MCE_ATTR (bank, 0644, edac_inject_bank_show, edac_inject_bank_store)
 
 module_init (edac_init_mce_inject)
 
 module_exit (edac_exit_mce_inject)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_AUTHOR ("Borislav Petkov <[email protected]>")
 
 MODULE_AUTHOR ("AMD Inc.")
 
 MODULE_DESCRIPTION ("MCE injection facility for testing MCE decoding")
 

Macro Definition Documentation

#define EDAC_MCE_ATTR (   _name,
  _mode,
  _show,
  _store 
)    static struct edac_mce_attr mce_attr_##_name = __ATTR(_name, _mode, _show, _store)

Definition at line 28 of file mce_amd_inj.c.

#define MCE_INJECT_SHOW (   reg)
Value:
static ssize_t edac_inject_##reg##_show(struct kobject *kobj, \
struct edac_mce_attr *attr, \
char *buf) \
{ \
return sprintf(buf, "0x%016llx\n", i_mce.reg); \
}

Definition at line 59 of file mce_amd_inj.c.

#define MCE_INJECT_STORE (   reg)
Value:
static ssize_t edac_inject_##reg##_store(struct kobject *kobj, \
struct edac_mce_attr *attr, \
const char *data, size_t count)\
{ \
int ret = 0; \
unsigned long value; \
\
ret = strict_strtoul(data, 16, &value); \
if (ret < 0) \
printk(KERN_ERR "Error writing MCE " #reg " field.\n"); \
\
i_mce.reg = value; \
\
return count; \
}

Definition at line 38 of file mce_amd_inj.c.

Function Documentation

EDAC_MCE_ATTR ( status  ,
0644  ,
edac_inject_status_show  ,
edac_inject_status_store   
)
EDAC_MCE_ATTR ( misc  ,
0644  ,
edac_inject_misc_show  ,
edac_inject_misc_store   
)
EDAC_MCE_ATTR ( addr  ,
0644  ,
edac_inject_addr_show  ,
edac_inject_addr_store   
)
EDAC_MCE_ATTR ( bank  ,
0644  ,
edac_inject_bank_show  ,
edac_inject_bank_store   
)
MCE_INJECT_SHOW ( status  )
MCE_INJECT_SHOW ( misc  )
MCE_INJECT_SHOW ( addr  )
MCE_INJECT_STORE ( status  )
MCE_INJECT_STORE ( misc  )
MCE_INJECT_STORE ( addr  )
MODULE_AUTHOR ( "Borislav Petkov <[email protected]>"  )
MODULE_AUTHOR ( "AMD Inc."  )
MODULE_DESCRIPTION ( "MCE injection facility for testing MCE decoding"  )
module_exit ( edac_exit_mce_inject  )
module_init ( edac_init_mce_inject  )
MODULE_LICENSE ( "GPL"  )