| #ifndef __DEVCOREDUMP_H | 
 | #define __DEVCOREDUMP_H | 
 |  | 
 | #include <linux/device.h> | 
 | #include <linux/module.h> | 
 | #include <linux/vmalloc.h> | 
 |  | 
 | #ifdef CONFIG_DEV_COREDUMP | 
 | void dev_coredumpv(struct device *dev, const void *data, size_t datalen, | 
 | 		   gfp_t gfp); | 
 |  | 
 | void dev_coredumpm(struct device *dev, struct module *owner, | 
 | 		   const void *data, size_t datalen, gfp_t gfp, | 
 | 		   ssize_t (*read)(char *buffer, loff_t offset, size_t count, | 
 | 				   const void *data, size_t datalen), | 
 | 		   void (*free)(const void *data)); | 
 | #else | 
 | static inline void dev_coredumpv(struct device *dev, const void *data, | 
 | 				 size_t datalen, gfp_t gfp) | 
 | { | 
 | 	vfree(data); | 
 | } | 
 |  | 
 | static inline void | 
 | dev_coredumpm(struct device *dev, struct module *owner, | 
 | 	      const void *data, size_t datalen, gfp_t gfp, | 
 | 	      ssize_t (*read)(char *buffer, loff_t offset, size_t count, | 
 | 			      const void *data, size_t datalen), | 
 | 	      void (*free)(const void *data)) | 
 | { | 
 | 	free(data); | 
 | } | 
 | #endif /* CONFIG_DEV_COREDUMP */ | 
 |  | 
 | #endif /* __DEVCOREDUMP_H */ |