~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/pstore.h

Version: ~ [ linux-5.14-rc3 ] ~ [ linux-5.13.5 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.53 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.135 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.198 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.240 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.276 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.276 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Persistent Storage - pstore.h
  3  *
  4  * Copyright (C) 2010 Intel Corporation <tony.luck@intel.com>
  5  *
  6  * This code is the generic layer to export data records from platform
  7  * level persistent storage via a file system.
  8  *
  9  *  This program is free software; you can redistribute it and/or modify
 10  *  it under the terms of the GNU General Public License version 2 as
 11  *  published by the Free Software Foundation.
 12  *
 13  *  This program is distributed in the hope that it will be useful,
 14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 16  *  GNU General Public License for more details.
 17  *
 18  *  You should have received a copy of the GNU General Public License
 19  *  along with this program; if not, write to the Free Software
 20  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 21  */
 22 #ifndef _LINUX_PSTORE_H
 23 #define _LINUX_PSTORE_H
 24 
 25 #include <linux/time.h>
 26 #include <linux/kmsg_dump.h>
 27 #include <linux/mutex.h>
 28 #include <linux/types.h>
 29 #include <linux/spinlock.h>
 30 #include <linux/errno.h>
 31 
 32 /* types */
 33 enum pstore_type_id {
 34         PSTORE_TYPE_DMESG       = 0,
 35         PSTORE_TYPE_MCE         = 1,
 36         PSTORE_TYPE_CONSOLE     = 2,
 37         PSTORE_TYPE_FTRACE      = 3,
 38         /* PPC64 partition types */
 39         PSTORE_TYPE_PPC_RTAS    = 4,
 40         PSTORE_TYPE_PPC_OF      = 5,
 41         PSTORE_TYPE_PPC_COMMON  = 6,
 42         PSTORE_TYPE_PMSG        = 7,
 43         PSTORE_TYPE_PPC_OPAL    = 8,
 44         PSTORE_TYPE_UNKNOWN     = 255
 45 };
 46 
 47 struct module;
 48 
 49 struct pstore_info {
 50         struct module   *owner;
 51         char            *name;
 52         spinlock_t      buf_lock;       /* serialize access to 'buf' */
 53         char            *buf;
 54         size_t          bufsize;
 55         struct mutex    read_mutex;     /* serialize open/read/close */
 56         int             flags;
 57         int             (*open)(struct pstore_info *psi);
 58         int             (*close)(struct pstore_info *psi);
 59         ssize_t         (*read)(u64 *id, enum pstore_type_id *type,
 60                         int *count, struct timespec *time, char **buf,
 61                         bool *compressed, struct pstore_info *psi);
 62         int             (*write)(enum pstore_type_id type,
 63                         enum kmsg_dump_reason reason, u64 *id,
 64                         unsigned int part, int count, bool compressed,
 65                         size_t size, struct pstore_info *psi);
 66         int             (*write_buf)(enum pstore_type_id type,
 67                         enum kmsg_dump_reason reason, u64 *id,
 68                         unsigned int part, const char *buf, bool compressed,
 69                         size_t size, struct pstore_info *psi);
 70         int             (*erase)(enum pstore_type_id type, u64 id,
 71                         int count, struct timespec time,
 72                         struct pstore_info *psi);
 73         void            *data;
 74 };
 75 
 76 #define PSTORE_FLAGS_FRAGILE    1
 77 
 78 extern int pstore_register(struct pstore_info *);
 79 extern void pstore_unregister(struct pstore_info *);
 80 extern bool pstore_cannot_block_path(enum kmsg_dump_reason reason);
 81 
 82 #endif /*_LINUX_PSTORE_H*/
 83 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp