#include <asm/byteorder.h>
#include <linux/kobject.h>
#include <linux/string.h>
#include <linux/sysfs.h>
#include <linux/export.h>
#include <linux/init.h>
#include <linux/kexec.h>
#include <linux/profile.h>
#include <linux/stat.h>
#include <linux/sched.h>
#include <linux/capability.h>
#include <linux/compiler.h>
#include <linux/rcupdate.h>
#if defined(__LITTLE_ENDIAN)
#define CPU_BYTEORDER_STRING …
#elif defined(__BIG_ENDIAN)
#define CPU_BYTEORDER_STRING …
#else
#error Unknown byteorder
#endif
#define KERNEL_ATTR_RO(_name) …
#define KERNEL_ATTR_RW(_name) …
static ssize_t uevent_seqnum_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
static ssize_t cpu_byteorder_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
static ssize_t address_bits_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
#ifdef CONFIG_UEVENT_HELPER
static ssize_t uevent_helper_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t uevent_helper_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
KERNEL_ATTR_RW(…);
#endif
#ifdef CONFIG_PROFILING
static ssize_t profiling_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t profiling_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
KERNEL_ATTR_RW(…);
#endif
#ifdef CONFIG_KEXEC_CORE
static ssize_t kexec_loaded_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
#ifdef CONFIG_CRASH_DUMP
static ssize_t kexec_crash_loaded_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
static ssize_t kexec_crash_size_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t kexec_crash_size_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
KERNEL_ATTR_RW(…);
#endif
#endif
#ifdef CONFIG_VMCORE_INFO
static ssize_t vmcoreinfo_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
#ifdef CONFIG_CRASH_HOTPLUG
static ssize_t crash_elfcorehdr_size_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
#endif
#endif
static ssize_t fscaps_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
KERNEL_ATTR_RO(…);
#ifndef CONFIG_TINY_RCU
int rcu_expedited;
static ssize_t rcu_expedited_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t rcu_expedited_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
KERNEL_ATTR_RW(…);
int rcu_normal;
static ssize_t rcu_normal_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
{ … }
static ssize_t rcu_normal_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)
{ … }
KERNEL_ATTR_RW(…);
#endif
extern const void __start_notes;
extern const void __stop_notes;
#define notes_size …
static ssize_t notes_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr,
char *buf, loff_t off, size_t count)
{ … }
static struct bin_attribute notes_attr __ro_after_init = …;
struct kobject *kernel_kobj;
EXPORT_SYMBOL_GPL(…);
static struct attribute * kernel_attrs[] = …;
static const struct attribute_group kernel_attr_group = …;
static int __init ksysfs_init(void)
{ … }
core_initcall(ksysfs_init);