1#ifndef __DEVCOREDUMP_H
2#define __DEVCOREDUMP_H
3
4#include <linux/device.h>
5#include <linux/module.h>
6#include <linux/vmalloc.h>
7
8#ifdef CONFIG_DEV_COREDUMP
9void dev_coredumpv(struct device *dev, const void *data, size_t datalen,
10		   gfp_t gfp);
11
12void dev_coredumpm(struct device *dev, struct module *owner,
13		   const void *data, size_t datalen, gfp_t gfp,
14		   ssize_t (*read)(char *buffer, loff_t offset, size_t count,
15				   const void *data, size_t datalen),
16		   void (*free)(const void *data));
17#else
18static inline void dev_coredumpv(struct device *dev, const void *data,
19				 size_t datalen, gfp_t gfp)
20{
21	vfree(data);
22}
23
24static inline void
25dev_coredumpm(struct device *dev, struct module *owner,
26	      const void *data, size_t datalen, gfp_t gfp,
27	      ssize_t (*read)(char *buffer, loff_t offset, size_t count,
28			      const void *data, size_t datalen),
29	      void (*free)(const void *data))
30{
31	free(data);
32}
33#endif /* CONFIG_DEV_COREDUMP */
34
35#endif /* __DEVCOREDUMP_H */
36