diff options
Diffstat (limited to 'include/linux/pstore.h')
-rw-r--r-- | include/linux/pstore.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/include/linux/pstore.h b/include/linux/pstore.h index a925e14397..15e1e3d6fa 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h @@ -25,6 +25,8 @@ #include <linux/types.h> #include <asm-generic/errno.h> +struct module; + /* types */ enum pstore_type_id { PSTORE_TYPE_DMESG = 0, @@ -43,7 +45,21 @@ enum kmsg_dump_reason { KMSG_DUMP_UNDEF, }; -struct module; +struct pstore_info; + +struct pstore_record { + struct pstore_info *psi; + enum pstore_type_id type; + u64 id; + char *buf; + ssize_t size; + ssize_t ecc_notice_size; + + int count; + enum kmsg_dump_reason reason; + unsigned int part; + bool compressed; +}; struct pstore_info { struct module *owner; @@ -53,13 +69,8 @@ struct pstore_info { int flags; int (*open)(struct pstore_info *psi); int (*close)(struct pstore_info *psi); - ssize_t (*read)(u64 *id, enum pstore_type_id *type, - int *count, char **buf, bool *compressed, - struct pstore_info *psi); - int (*write)(enum pstore_type_id type, - enum kmsg_dump_reason reason, u64 *id, - unsigned int part, int count, bool compressed, - size_t size, struct pstore_info *psi); + ssize_t (*read)(struct pstore_record *record); + int (*write)(struct pstore_record *record); int (*write_buf)(enum pstore_type_id type, enum kmsg_dump_reason reason, u64 *id, unsigned int part, const char *buf, bool compressed, |