scx/scheds/include/vmlinux/vmlinux-v6.9-g5a00279e4cf4.h
Tejun Heo e26fba9255 Sync from kernel (73f4013eb1eb)
This pulls in the support for dump ops.
2024-05-17 01:57:36 -10:00

141404 lines
2.8 MiB

#ifndef __VMLINUX_H__
#define __VMLINUX_H__
#ifndef BPF_NO_PRESERVE_ACCESS_INDEX
#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)
#endif
enum umh_disable_depth {
UMH_ENABLED = 0,
UMH_FREEZING = 1,
UMH_DISABLED = 2,
};
typedef unsigned short umode_t;
struct obs_kernel_param {
const char *str;
int (*setup_func)(char *);
int early;
};
typedef struct {
int counter;
} atomic_t;
struct list_head {
struct list_head *next;
struct list_head *prev;
};
struct hlist_node {
struct hlist_node *next;
struct hlist_node **pprev;
};
struct trace_event_functions;
struct trace_event {
struct hlist_node node;
int type;
struct trace_event_functions *funcs;
};
struct trace_event_class;
struct tracepoint;
struct event_filter;
struct hlist_head;
struct bpf_prog_array;
struct perf_event;
struct trace_event_call {
struct list_head list;
struct trace_event_class *class;
union {
char *name;
struct tracepoint *tp;
};
struct trace_event event;
char *print_fmt;
struct event_filter *filter;
union {
void *module;
atomic_t refcnt;
};
void *data;
int flags;
int perf_refcount;
struct hlist_head __attribute__((btf_type_tag("percpu"))) *perf_events;
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *prog_array;
int (*perf_perm)(struct trace_event_call *, struct perf_event *);
};
enum trace_reg {
TRACE_REG_REGISTER = 0,
TRACE_REG_UNREGISTER = 1,
TRACE_REG_PERF_REGISTER = 2,
TRACE_REG_PERF_UNREGISTER = 3,
TRACE_REG_PERF_OPEN = 4,
TRACE_REG_PERF_CLOSE = 5,
TRACE_REG_PERF_ADD = 6,
TRACE_REG_PERF_DEL = 7,
};
struct trace_event_fields;
struct trace_event_class {
const char *system;
void *probe;
void *perf_probe;
int (*reg)(struct trace_event_call *, enum trace_reg, void *);
struct trace_event_fields *fields_array;
struct list_head * (*get_fields)(struct trace_event_call *);
struct list_head fields;
int (*raw_init)(struct trace_event_call *);
};
struct trace_event_fields {
const char *type;
union {
struct {
const char *name;
const int size;
const int align;
const int is_signed;
const int filter_type;
const int len;
};
int (*define_fields)(struct trace_event_call *);
};
};
struct jump_entry;
struct static_key_mod;
struct static_key {
atomic_t enabled;
union {
unsigned long type;
struct jump_entry *entries;
struct static_key_mod *next;
};
};
struct static_call_key;
struct tracepoint_func;
struct tracepoint {
const char *name;
struct static_key key;
struct static_call_key *static_call_key;
void *static_call_tramp;
void *iterator;
void *probestub;
int (*regfunc)();
void (*unregfunc)();
struct tracepoint_func __attribute__((btf_type_tag("rcu"))) *funcs;
};
typedef int __s32;
typedef __s32 s32;
struct jump_entry {
s32 code;
s32 target;
long key;
};
struct static_call_mod;
struct static_call_site;
struct static_call_key {
void *func;
union {
unsigned long type;
struct static_call_mod *mods;
struct static_call_site *sites;
};
};
struct module;
struct static_call_mod {
struct static_call_mod *next;
struct module *mod;
struct static_call_site *sites;
};
enum module_state {
MODULE_STATE_LIVE = 0,
MODULE_STATE_COMING = 1,
MODULE_STATE_GOING = 2,
MODULE_STATE_UNFORMED = 3,
};
struct refcount_struct {
atomic_t refs;
};
typedef struct refcount_struct refcount_t;
struct kref {
refcount_t refcount;
};
struct kset;
struct kobj_type;
struct kernfs_node;
struct kobject {
const char *name;
struct list_head entry;
struct kobject *parent;
struct kset *kset;
const struct kobj_type *ktype;
struct kernfs_node *sd;
struct kref kref;
unsigned int state_initialized: 1;
unsigned int state_in_sysfs: 1;
unsigned int state_add_uevent_sent: 1;
unsigned int state_remove_uevent_sent: 1;
unsigned int uevent_suppress: 1;
};
struct module_param_attrs;
struct completion;
struct module_kobject {
struct kobject kobj;
struct module *mod;
struct kobject *drivers_dir;
struct module_param_attrs *mp;
struct completion *kobj_completion;
};
typedef long long __s64;
typedef __s64 s64;
typedef struct {
s64 counter;
} atomic64_t;
typedef atomic64_t atomic_long_t;
typedef unsigned char __u8;
typedef __u8 u8;
typedef unsigned short __u16;
typedef __u16 u16;
struct qspinlock {
union {
atomic_t val;
struct {
u8 locked;
u8 pending;
};
struct {
u16 locked_pending;
u16 tail;
};
};
};
typedef struct qspinlock arch_spinlock_t;
struct lock_class_key;
struct lock_class;
struct lockdep_map {
struct lock_class_key *key;
struct lock_class *class_cache[2];
const char *name;
u8 wait_type_outer;
u8 wait_type_inner;
u8 lock_type;
};
struct raw_spinlock {
arch_spinlock_t raw_lock;
unsigned int magic;
unsigned int owner_cpu;
void *owner;
struct lockdep_map dep_map;
};
typedef struct raw_spinlock raw_spinlock_t;
struct optimistic_spin_queue {
atomic_t tail;
};
struct mutex {
atomic_long_t owner;
raw_spinlock_t wait_lock;
struct optimistic_spin_queue osq;
struct list_head wait_list;
void *magic;
struct lockdep_map dep_map;
};
typedef _Bool bool;
struct rb_node {
unsigned long __rb_parent_color;
struct rb_node *rb_right;
struct rb_node *rb_left;
};
struct latch_tree_node {
struct rb_node node[2];
};
struct mod_tree_node {
struct module *mod;
struct latch_tree_node node;
};
struct module_memory {
void *base;
unsigned int size;
struct mod_tree_node mtn;
};
struct orc_entry;
struct mod_arch_specific {
unsigned int num_orcs;
int *orc_unwind_ip;
struct orc_entry *orc_unwind;
};
struct elf64_sym;
typedef struct elf64_sym Elf64_Sym;
struct mod_kallsyms {
Elf64_Sym *symtab;
unsigned int num_symtab;
char *strtab;
char *typetab;
};
typedef const int tracepoint_ptr_t;
struct _ddebug;
struct ddebug_class_map;
struct _ddebug_info {
struct _ddebug *descs;
struct ddebug_class_map *classes;
unsigned int num_descs;
unsigned int num_classes;
};
struct module_attribute;
struct kernel_symbol;
struct kernel_param;
struct exception_table_entry;
struct bug_entry;
struct module_sect_attrs;
struct module_notes_attrs;
struct srcu_struct;
struct bpf_raw_event_map;
struct trace_eval_map;
struct error_injection_entry;
struct module {
enum module_state state;
struct list_head list;
char name[56];
struct module_kobject mkobj;
struct module_attribute *modinfo_attrs;
const char *version;
const char *srcversion;
struct kobject *holders_dir;
const struct kernel_symbol *syms;
const s32 *crcs;
unsigned int num_syms;
struct mutex param_lock;
struct kernel_param *kp;
unsigned int num_kp;
unsigned int num_gpl_syms;
const struct kernel_symbol *gpl_syms;
const s32 *gpl_crcs;
bool using_gplonly_symbols;
bool async_probe_requested;
unsigned int num_exentries;
struct exception_table_entry *extable;
int (*init)();
long: 64;
long: 64;
struct module_memory mem[7];
struct mod_arch_specific arch;
unsigned long taints;
unsigned int num_bugs;
struct list_head bug_list;
struct bug_entry *bug_table;
struct mod_kallsyms __attribute__((btf_type_tag("rcu"))) *kallsyms;
struct mod_kallsyms core_kallsyms;
struct module_sect_attrs *sect_attrs;
struct module_notes_attrs *notes_attrs;
char *args;
void __attribute__((btf_type_tag("percpu"))) *percpu;
unsigned int percpu_size;
void *noinstr_text_start;
unsigned int noinstr_text_size;
unsigned int num_tracepoints;
tracepoint_ptr_t *tracepoints_ptrs;
unsigned int num_srcu_structs;
struct srcu_struct **srcu_struct_ptrs;
unsigned int num_bpf_raw_events;
struct bpf_raw_event_map *bpf_raw_events;
unsigned int btf_data_size;
void *btf_data;
struct jump_entry *jump_entries;
unsigned int num_jump_entries;
unsigned int num_trace_bprintk_fmt;
const char **trace_bprintk_fmt_start;
struct trace_event_call **trace_events;
unsigned int num_trace_events;
struct trace_eval_map **trace_evals;
unsigned int num_trace_evals;
unsigned int num_ftrace_callsites;
unsigned long *ftrace_callsites;
void *kprobes_text_start;
unsigned int kprobes_text_size;
unsigned long *kprobe_blacklist;
unsigned int num_kprobe_blacklist;
int num_static_call_sites;
struct static_call_site *static_call_sites;
struct list_head source_list;
struct list_head target_list;
void (*exit)();
atomic_t refcnt;
struct error_injection_entry *ei_funcs;
unsigned int num_ei_funcs;
struct _ddebug_info dyndbg_info;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct spinlock {
union {
struct raw_spinlock rlock;
struct {
u8 __padding[24];
struct lockdep_map dep_map;
};
};
};
typedef struct spinlock spinlock_t;
struct kset_uevent_ops;
struct kset {
struct list_head list;
spinlock_t list_lock;
struct kobject kobj;
const struct kset_uevent_ops *uevent_ops;
};
struct lockdep_subclass_key {
char __one_byte;
};
struct lock_class_key {
union {
struct hlist_node hash_entry;
struct lockdep_subclass_key subkeys[8];
};
};
typedef int (*lock_cmp_fn)(const struct lockdep_map *, const struct lockdep_map *);
typedef void (*lock_print_fn)(const struct lockdep_map *);
struct lock_trace;
struct lock_class {
struct hlist_node hash_entry;
struct list_head lock_entry;
struct list_head locks_after;
struct list_head locks_before;
const struct lockdep_subclass_key *key;
lock_cmp_fn cmp_fn;
lock_print_fn print_fn;
unsigned int subclass;
unsigned int dep_gen_id;
unsigned long usage_mask;
const struct lock_trace *usage_traces[10];
const char *name;
int name_version;
u8 wait_type_inner;
u8 wait_type_outer;
u8 lock_type;
};
typedef unsigned int __u32;
typedef __u32 u32;
struct lock_trace {
struct hlist_node hash_entry;
u32 hash;
u32 nr_entries;
unsigned long entries[0];
};
struct kobj_uevent_env;
struct kset_uevent_ops {
int (* const filter)(const struct kobject *);
const char * (* const name)(const struct kobject *);
int (* const uevent)(const struct kobject *, struct kobj_uevent_env *);
};
struct kobj_uevent_env {
char *argv[3];
char *envp[64];
int envp_idx;
char buf[2048];
int buflen;
};
typedef unsigned int __kernel_uid32_t;
typedef __kernel_uid32_t uid_t;
typedef struct {
uid_t val;
} kuid_t;
typedef unsigned int __kernel_gid32_t;
typedef __kernel_gid32_t gid_t;
typedef struct {
gid_t val;
} kgid_t;
struct sysfs_ops;
struct attribute_group;
struct kobj_ns_type_operations;
struct kobj_type {
void (*release)(struct kobject *);
const struct sysfs_ops *sysfs_ops;
const struct attribute_group **default_groups;
const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *);
const void * (*namespace)(const struct kobject *);
void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *);
};
typedef long __kernel_long_t;
typedef __kernel_long_t __kernel_ssize_t;
typedef __kernel_ssize_t ssize_t;
typedef unsigned long __kernel_ulong_t;
typedef __kernel_ulong_t __kernel_size_t;
typedef __kernel_size_t size_t;
struct attribute;
struct sysfs_ops {
ssize_t (*show)(struct kobject *, struct attribute *, char *);
ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t);
};
struct attribute {
const char *name;
umode_t mode;
bool ignore_lockdep: 1;
struct lock_class_key *key;
struct lock_class_key skey;
};
struct bin_attribute;
struct attribute_group {
const char *name;
umode_t (*is_visible)(struct kobject *, struct attribute *, int);
umode_t (*is_bin_visible)(struct kobject *, struct bin_attribute *, int);
struct attribute **attrs;
struct bin_attribute **bin_attrs;
};
typedef long long __kernel_loff_t;
typedef __kernel_loff_t loff_t;
struct address_space;
struct file;
struct vm_area_struct;
struct bin_attribute {
struct attribute attr;
size_t size;
void *private;
struct address_space * (*f_mapping)();
ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t);
loff_t (*llseek)(struct file *, struct kobject *, struct bin_attribute *, loff_t, int);
int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *);
};
typedef unsigned int gfp_t;
struct xarray {
spinlock_t xa_lock;
gfp_t xa_flags;
void __attribute__((btf_type_tag("rcu"))) *xa_head;
};
struct rw_semaphore {
atomic_long_t count;
atomic_long_t owner;
struct optimistic_spin_queue osq;
raw_spinlock_t wait_lock;
struct list_head wait_list;
void *magic;
struct lockdep_map dep_map;
};
struct rb_root {
struct rb_node *rb_node;
};
struct rb_root_cached {
struct rb_root rb_root;
struct rb_node *rb_leftmost;
};
typedef u32 errseq_t;
struct inode;
struct address_space_operations;
struct address_space {
struct inode *host;
struct xarray i_pages;
struct rw_semaphore invalidate_lock;
gfp_t gfp_mask;
atomic_t i_mmap_writable;
struct rb_root_cached i_mmap;
unsigned long nrpages;
unsigned long writeback_index;
const struct address_space_operations *a_ops;
unsigned long flags;
errseq_t wb_err;
spinlock_t i_private_lock;
struct list_head i_private_list;
struct rw_semaphore i_mmap_rwsem;
void *i_private_data;
};
struct hlist_head {
struct hlist_node *first;
};
struct callback_head {
struct callback_head *next;
void (*func)(struct callback_head *);
};
typedef u32 __kernel_dev_t;
typedef __kernel_dev_t dev_t;
typedef __s64 time64_t;
struct timespec64 {
time64_t tv_sec;
long tv_nsec;
};
enum rw_hint {
WRITE_LIFE_NOT_SET = 0,
WRITE_LIFE_NONE = 1,
WRITE_LIFE_SHORT = 2,
WRITE_LIFE_MEDIUM = 3,
WRITE_LIFE_LONG = 4,
WRITE_LIFE_EXTREME = 5,
} __attribute__((mode(byte)));
typedef unsigned long long __u64;
typedef __u64 u64;
typedef u64 blkcnt_t;
struct posix_acl;
struct inode_operations;
struct super_block;
struct bdi_writeback;
struct file_operations;
struct file_lock_context;
struct pipe_inode_info;
struct cdev;
struct fsnotify_mark_connector;
struct inode {
umode_t i_mode;
unsigned short i_opflags;
kuid_t i_uid;
kgid_t i_gid;
unsigned int i_flags;
struct posix_acl *i_acl;
struct posix_acl *i_default_acl;
const struct inode_operations *i_op;
struct super_block *i_sb;
struct address_space *i_mapping;
unsigned long i_ino;
union {
const unsigned int i_nlink;
unsigned int __i_nlink;
};
dev_t i_rdev;
loff_t i_size;
struct timespec64 __i_atime;
struct timespec64 __i_mtime;
struct timespec64 __i_ctime;
spinlock_t i_lock;
unsigned short i_bytes;
u8 i_blkbits;
enum rw_hint i_write_hint;
blkcnt_t i_blocks;
unsigned long i_state;
struct rw_semaphore i_rwsem;
unsigned long dirtied_when;
unsigned long dirtied_time_when;
struct hlist_node i_hash;
struct list_head i_io_list;
struct bdi_writeback *i_wb;
int i_wb_frn_winner;
u16 i_wb_frn_avg_time;
u16 i_wb_frn_history;
struct list_head i_lru;
struct list_head i_sb_list;
struct list_head i_wb_list;
union {
struct hlist_head i_dentry;
struct callback_head i_rcu;
};
atomic64_t i_version;
atomic64_t i_sequence;
atomic_t i_count;
atomic_t i_dio_count;
atomic_t i_writecount;
atomic_t i_readcount;
union {
const struct file_operations *i_fop;
void (*free_inode)(struct inode *);
};
struct file_lock_context *i_flctx;
struct address_space i_data;
struct list_head i_devices;
union {
struct pipe_inode_info *i_pipe;
struct cdev *i_cdev;
char *i_link;
unsigned int i_dir_seq;
};
__u32 i_generation;
__u32 i_fsnotify_mask;
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *i_fsnotify_marks;
void *i_private;
};
struct dentry;
struct delayed_call;
struct mnt_idmap;
struct iattr;
struct path;
struct kstat;
struct fiemap_extent_info;
struct fileattr;
struct offset_ctx;
struct inode_operations {
struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int);
const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *);
int (*permission)(struct mnt_idmap *, struct inode *, int);
struct posix_acl * (*get_inode_acl)(struct inode *, int, bool);
int (*readlink)(struct dentry *, char __attribute__((btf_type_tag("user"))) *, int);
int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool);
int (*link)(struct dentry *, struct inode *, struct dentry *);
int (*unlink)(struct inode *, struct dentry *);
int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *);
int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t);
int (*rmdir)(struct inode *, struct dentry *);
int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t);
int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int);
int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *);
int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int);
ssize_t (*listxattr)(struct dentry *, char *, size_t);
int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64);
int (*update_time)(struct inode *, int);
int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t);
int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t);
struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int);
int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int);
int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *);
int (*fileattr_get)(struct dentry *, struct fileattr *);
struct offset_ctx * (*get_offset_ctx)(struct inode *);
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct hlist_bl_node {
struct hlist_bl_node *next;
struct hlist_bl_node **pprev;
};
struct seqcount {
unsigned int sequence;
struct lockdep_map dep_map;
};
typedef struct seqcount seqcount_t;
struct seqcount_spinlock {
seqcount_t seqcount;
spinlock_t *lock;
};
typedef struct seqcount_spinlock seqcount_spinlock_t;
struct qstr {
union {
struct {
u32 hash;
u32 len;
};
u64 hash_len;
};
const unsigned char *name;
};
struct lockref {
union {
struct {
spinlock_t lock;
int count;
};
};
};
struct dentry_operations;
struct wait_queue_head;
typedef struct wait_queue_head wait_queue_head_t;
struct dentry {
unsigned int d_flags;
seqcount_spinlock_t d_seq;
struct hlist_bl_node d_hash;
struct dentry *d_parent;
struct qstr d_name;
struct inode *d_inode;
unsigned char d_iname[40];
struct lockref d_lockref;
const struct dentry_operations *d_op;
struct super_block *d_sb;
unsigned long d_time;
void *d_fsdata;
union {
struct list_head d_lru;
wait_queue_head_t *d_wait;
};
struct hlist_node d_sib;
struct hlist_head d_children;
union {
struct hlist_node d_alias;
struct hlist_bl_node d_in_lookup_hash;
struct callback_head d_rcu;
} d_u;
};
enum d_real_type {
D_REAL_DATA = 0,
D_REAL_METADATA = 1,
};
struct vfsmount;
struct dentry_operations {
int (*d_revalidate)(struct dentry *, unsigned int);
int (*d_weak_revalidate)(struct dentry *, unsigned int);
int (*d_hash)(const struct dentry *, struct qstr *);
int (*d_compare)(const struct dentry *, unsigned int, const char *, const struct qstr *);
int (*d_delete)(const struct dentry *);
int (*d_init)(struct dentry *);
void (*d_release)(struct dentry *);
void (*d_prune)(struct dentry *);
void (*d_iput)(struct dentry *, struct inode *);
char * (*d_dname)(struct dentry *, char *, int);
struct vfsmount * (*d_automount)(struct path *);
int (*d_manage)(const struct path *, bool);
struct dentry * (*d_real)(struct dentry *, enum d_real_type);
long: 64;
long: 64;
long: 64;
};
struct vfsmount {
struct dentry *mnt_root;
struct super_block *mnt_sb;
int mnt_flags;
struct mnt_idmap *mnt_idmap;
};
struct hlist_bl_head {
struct hlist_bl_node *first;
};
struct mtd_info;
typedef long long qsize_t;
struct quota_format_type;
struct mem_dqinfo {
struct quota_format_type *dqi_format;
int dqi_fmt_id;
struct list_head dqi_dirty_list;
unsigned long dqi_flags;
unsigned int dqi_bgrace;
unsigned int dqi_igrace;
qsize_t dqi_max_spc_limit;
qsize_t dqi_max_ino_limit;
void *dqi_priv;
};
struct quota_format_ops;
struct quota_info {
unsigned int flags;
struct rw_semaphore dqio_sem;
struct inode *files[3];
struct mem_dqinfo info[3];
const struct quota_format_ops *ops[3];
};
struct wait_queue_head {
spinlock_t lock;
struct list_head head;
};
struct rcu_sync {
int gp_state;
int gp_count;
wait_queue_head_t gp_wait;
struct callback_head cb_head;
};
struct task_struct;
struct rcuwait {
struct task_struct __attribute__((btf_type_tag("rcu"))) *task;
};
struct percpu_rw_semaphore {
struct rcu_sync rss;
unsigned int __attribute__((btf_type_tag("percpu"))) *read_count;
struct rcuwait writer;
wait_queue_head_t waiters;
atomic_t block;
struct lockdep_map dep_map;
};
struct sb_writers {
unsigned short frozen;
int freeze_kcount;
int freeze_ucount;
struct percpu_rw_semaphore rw_sem[3];
};
typedef struct {
__u8 b[16];
} uuid_t;
struct list_lru_node;
struct list_lru {
struct list_lru_node *node;
struct list_head list;
int shrinker_id;
bool memcg_aware;
struct xarray xa;
};
struct work_struct;
typedef void (*work_func_t)(struct work_struct *);
struct work_struct {
atomic_long_t data;
struct list_head entry;
work_func_t func;
struct lockdep_map lockdep_map;
};
struct file_system_type;
struct super_operations;
struct dquot_operations;
struct quotactl_ops;
struct export_operations;
struct xattr_handler;
struct block_device;
struct backing_dev_info;
struct shrinker;
struct workqueue_struct;
struct user_namespace;
struct super_block {
struct list_head s_list;
dev_t s_dev;
unsigned char s_blocksize_bits;
unsigned long s_blocksize;
loff_t s_maxbytes;
struct file_system_type *s_type;
const struct super_operations *s_op;
const struct dquot_operations *dq_op;
const struct quotactl_ops *s_qcop;
const struct export_operations *s_export_op;
unsigned long s_flags;
unsigned long s_iflags;
unsigned long s_magic;
struct dentry *s_root;
struct rw_semaphore s_umount;
int s_count;
atomic_t s_active;
const struct xattr_handler * const *s_xattr;
struct hlist_bl_head s_roots;
struct list_head s_mounts;
struct block_device *s_bdev;
struct file *s_bdev_file;
struct backing_dev_info *s_bdi;
struct mtd_info *s_mtd;
struct hlist_node s_instances;
unsigned int s_quota_types;
struct quota_info s_dquot;
struct sb_writers s_writers;
void *s_fs_info;
u32 s_time_gran;
time64_t s_time_min;
time64_t s_time_max;
__u32 s_fsnotify_mask;
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *s_fsnotify_marks;
char s_id[32];
uuid_t s_uuid;
u8 s_uuid_len;
char s_sysfs_name[37];
unsigned int s_max_links;
struct mutex s_vfs_rename_mutex;
const char *s_subtype;
const struct dentry_operations *s_d_op;
struct shrinker *s_shrink;
atomic_long_t s_remove_count;
atomic_long_t s_fsnotify_connectors;
int s_readonly_remount;
errseq_t s_wb_err;
struct workqueue_struct *s_dio_done_wq;
struct hlist_head s_pins;
struct user_namespace *s_user_ns;
struct list_lru s_dentry_lru;
struct list_lru s_inode_lru;
struct callback_head rcu;
struct work_struct destroy_work;
struct mutex s_sync_lock;
int s_stack_depth;
spinlock_t s_inode_list_lock;
struct list_head s_inodes;
spinlock_t s_inode_wblist_lock;
struct list_head s_inodes_wb;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct fs_context;
struct fs_parameter_spec;
struct file_system_type {
const char *name;
int fs_flags;
int (*init_fs_context)(struct fs_context *);
const struct fs_parameter_spec *parameters;
struct dentry * (*mount)(struct file_system_type *, int, const char *, void *);
void (*kill_sb)(struct super_block *);
struct module *owner;
struct file_system_type *next;
struct hlist_head fs_supers;
struct lock_class_key s_lock_key;
struct lock_class_key s_umount_key;
struct lock_class_key s_vfs_rename_key;
struct lock_class_key s_writers_key[3];
struct lock_class_key i_lock_key;
struct lock_class_key i_mutex_key;
struct lock_class_key invalidate_lock_key;
struct lock_class_key i_mutex_dir_key;
};
struct p_log;
struct fs_parameter;
struct fs_parse_result;
typedef int fs_param_type(struct p_log *, const struct fs_parameter_spec *, struct fs_parameter *, struct fs_parse_result *);
struct fs_parameter_spec {
const char *name;
fs_param_type *type;
u8 opt;
unsigned short flags;
const void *data;
};
enum freeze_holder {
FREEZE_HOLDER_KERNEL = 1,
FREEZE_HOLDER_USERSPACE = 2,
FREEZE_MAY_NEST = 4,
};
struct writeback_control;
struct kstatfs;
struct seq_file;
struct shrink_control;
struct super_operations {
struct inode * (*alloc_inode)(struct super_block *);
void (*destroy_inode)(struct inode *);
void (*free_inode)(struct inode *);
void (*dirty_inode)(struct inode *, int);
int (*write_inode)(struct inode *, struct writeback_control *);
int (*drop_inode)(struct inode *);
void (*evict_inode)(struct inode *);
void (*put_super)(struct super_block *);
int (*sync_fs)(struct super_block *, int);
int (*freeze_super)(struct super_block *, enum freeze_holder);
int (*freeze_fs)(struct super_block *);
int (*thaw_super)(struct super_block *, enum freeze_holder);
int (*unfreeze_fs)(struct super_block *);
int (*statfs)(struct dentry *, struct kstatfs *);
int (*remount_fs)(struct super_block *, int *, char *);
void (*umount_begin)(struct super_block *);
int (*show_options)(struct seq_file *, struct dentry *);
int (*show_devname)(struct seq_file *, struct dentry *);
int (*show_path)(struct seq_file *, struct dentry *);
int (*show_stats)(struct seq_file *, struct dentry *);
long (*nr_cached_objects)(struct super_block *, struct shrink_control *);
long (*free_cached_objects)(struct super_block *, struct shrink_control *);
void (*shutdown)(struct super_block *);
};
enum writeback_sync_modes {
WB_SYNC_NONE = 0,
WB_SYNC_ALL = 1,
};
struct folio;
struct folio_batch {
unsigned char nr;
unsigned char i;
bool percpu_pvec_drained;
struct folio *folios[31];
};
struct swap_iocb;
struct writeback_control {
long nr_to_write;
long pages_skipped;
loff_t range_start;
loff_t range_end;
enum writeback_sync_modes sync_mode;
unsigned int for_kupdate: 1;
unsigned int for_background: 1;
unsigned int tagged_writepages: 1;
unsigned int for_reclaim: 1;
unsigned int range_cyclic: 1;
unsigned int for_sync: 1;
unsigned int unpinned_netfs_wb: 1;
unsigned int no_cgroup_owner: 1;
struct swap_iocb **swap_plug;
struct folio_batch fbatch;
unsigned long index;
int saved_err;
struct bdi_writeback *wb;
struct inode *inode;
int wb_id;
int wb_lcand_id;
int wb_tcand_id;
size_t wb_bytes;
size_t wb_lcand_bytes;
size_t wb_tcand_bytes;
};
typedef struct {
unsigned long val;
} swp_entry_t;
struct page_pool;
struct dev_pagemap;
struct page {
unsigned long flags;
union {
struct {
union {
struct list_head lru;
struct {
void *__filler;
unsigned int mlock_count;
};
struct list_head buddy_list;
struct list_head pcp_list;
};
struct address_space *mapping;
union {
unsigned long index;
unsigned long share;
};
unsigned long private;
};
struct {
unsigned long pp_magic;
struct page_pool *pp;
unsigned long _pp_mapping_pad;
unsigned long dma_addr;
atomic_long_t pp_ref_count;
};
struct {
unsigned long compound_head;
};
struct {
struct dev_pagemap *pgmap;
void *zone_device_data;
};
struct callback_head callback_head;
};
union {
atomic_t _mapcount;
unsigned int page_type;
};
atomic_t _refcount;
unsigned long memcg_data;
};
struct folio {
union {
struct {
unsigned long flags;
union {
struct list_head lru;
struct {
void *__filler;
unsigned int mlock_count;
};
};
struct address_space *mapping;
unsigned long index;
union {
void *private;
swp_entry_t swap;
};
atomic_t _mapcount;
atomic_t _refcount;
unsigned long memcg_data;
};
struct page page;
};
union {
struct {
unsigned long _flags_1;
unsigned long _head_1;
unsigned long _folio_avail;
atomic_t _entire_mapcount;
atomic_t _nr_pages_mapped;
atomic_t _pincount;
unsigned int _folio_nr_pages;
};
struct page __page_1;
};
union {
struct {
unsigned long _flags_2;
unsigned long _head_2;
void *_hugetlb_subpool;
void *_hugetlb_cgroup;
void *_hugetlb_cgroup_rsvd;
void *_hugetlb_hwpoison;
};
struct {
unsigned long _flags_2a;
unsigned long _head_2a;
struct list_head _deferred_list;
};
struct page __page_2;
};
};
struct range {
u64 start;
u64 end;
};
struct vmem_altmap {
unsigned long base_pfn;
const unsigned long end_pfn;
const unsigned long reserve;
unsigned long free;
unsigned long align;
unsigned long alloc;
bool inaccessible;
};
struct percpu_ref_data;
struct percpu_ref {
unsigned long percpu_count_ptr;
struct percpu_ref_data *data;
};
struct swait_queue_head {
raw_spinlock_t lock;
struct list_head task_list;
};
struct completion {
unsigned int done;
struct swait_queue_head wait;
};
enum memory_type {
MEMORY_DEVICE_PRIVATE = 1,
MEMORY_DEVICE_COHERENT = 2,
MEMORY_DEVICE_FS_DAX = 3,
MEMORY_DEVICE_GENERIC = 4,
MEMORY_DEVICE_PCI_P2PDMA = 5,
};
struct dev_pagemap_ops;
struct dev_pagemap {
struct vmem_altmap altmap;
struct percpu_ref ref;
struct completion done;
enum memory_type type;
unsigned int flags;
unsigned long vmemmap_shift;
const struct dev_pagemap_ops *ops;
void *owner;
int nr_range;
union {
struct range range;
struct {
struct {} __empty_ranges;
struct range ranges[0];
};
};
};
typedef void percpu_ref_func_t(struct percpu_ref *);
struct percpu_ref_data {
atomic_long_t count;
percpu_ref_func_t *release;
percpu_ref_func_t *confirm_switch;
bool force_atomic: 1;
bool allow_reinit: 1;
struct callback_head rcu;
struct percpu_ref *ref;
};
typedef unsigned int vm_fault_t;
struct vm_fault;
struct dev_pagemap_ops {
void (*page_free)(struct page *);
vm_fault_t (*migrate_to_ram)(struct vm_fault *);
int (*memory_failure)(struct dev_pagemap *, unsigned long, unsigned long, int);
};
typedef unsigned long pteval_t;
typedef struct {
pteval_t pte;
} pte_t;
typedef unsigned long pmdval_t;
typedef struct {
pmdval_t pmd;
} pmd_t;
enum fault_flag {
FAULT_FLAG_WRITE = 1,
FAULT_FLAG_MKWRITE = 2,
FAULT_FLAG_ALLOW_RETRY = 4,
FAULT_FLAG_RETRY_NOWAIT = 8,
FAULT_FLAG_KILLABLE = 16,
FAULT_FLAG_TRIED = 32,
FAULT_FLAG_USER = 64,
FAULT_FLAG_REMOTE = 128,
FAULT_FLAG_INSTRUCTION = 256,
FAULT_FLAG_INTERRUPTIBLE = 512,
FAULT_FLAG_UNSHARE = 1024,
FAULT_FLAG_ORIG_PTE_VALID = 2048,
FAULT_FLAG_VMA_LOCK = 4096,
};
typedef unsigned long pudval_t;
typedef struct {
pudval_t pud;
} pud_t;
typedef struct page *pgtable_t;
struct vm_fault {
struct {
struct vm_area_struct *vma;
gfp_t gfp_mask;
unsigned long pgoff;
unsigned long address;
unsigned long real_address;
};
enum fault_flag flags;
pmd_t *pmd;
pud_t *pud;
union {
pte_t orig_pte;
pmd_t orig_pmd;
};
struct page *cow_page;
struct page *page;
pte_t *pte;
spinlock_t *ptl;
pgtable_t prealloc_pte;
};
typedef unsigned long vm_flags_t;
typedef unsigned long pgprotval_t;
struct pgprot {
pgprotval_t pgprot;
};
typedef struct pgprot pgprot_t;
struct vm_userfaultfd_ctx {};
struct mm_struct;
struct vma_lock;
struct anon_vma;
struct vm_operations_struct;
struct mempolicy;
struct vm_area_struct {
union {
struct {
unsigned long vm_start;
unsigned long vm_end;
};
struct callback_head vm_rcu;
};
struct mm_struct *vm_mm;
pgprot_t vm_page_prot;
union {
const vm_flags_t vm_flags;
vm_flags_t __vm_flags;
};
int vm_lock_seq;
struct vma_lock *vm_lock;
bool detached;
struct {
struct rb_node rb;
unsigned long rb_subtree_last;
} shared;
struct list_head anon_vma_chain;
struct anon_vma *anon_vma;
const struct vm_operations_struct *vm_ops;
unsigned long vm_pgoff;
struct file *vm_file;
void *vm_private_data;
atomic_long_t swap_readahead_info;
struct mempolicy *vm_policy;
struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
};
typedef struct lockdep_map *lockdep_map_p;
struct maple_tree {
union {
spinlock_t ma_lock;
lockdep_map_p ma_external_lock;
};
unsigned int ma_flags;
void __attribute__((btf_type_tag("rcu"))) *ma_root;
};
typedef unsigned long pgdval_t;
typedef struct {
pgdval_t pgd;
} pgd_t;
struct percpu_counter {
raw_spinlock_t lock;
s64 count;
struct list_head list;
s32 __attribute__((btf_type_tag("percpu"))) *counters;
};
typedef short __s16;
typedef __s16 s16;
struct ldt_struct;
struct vdso_image;
typedef struct {
u64 ctx_id;
atomic64_t tlb_gen;
struct rw_semaphore ldt_usr_sem;
struct ldt_struct *ldt;
unsigned long flags;
struct mutex lock;
void __attribute__((btf_type_tag("user"))) *vdso;
const struct vdso_image *vdso_image;
atomic_t perf_rdpmc_allowed;
u16 pkey_allocation_map;
s16 execute_only_pkey;
} mm_context_t;
struct xol_area;
struct uprobes_state {
struct xol_area *xol_area;
};
struct mm_cid;
struct linux_binfmt;
struct kioctx_table;
struct mm_struct {
struct {
struct {
atomic_t mm_count;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct maple_tree mm_mt;
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
unsigned long mmap_base;
unsigned long mmap_legacy_base;
unsigned long task_size;
pgd_t *pgd;
atomic_t membarrier_state;
atomic_t mm_users;
struct mm_cid __attribute__((btf_type_tag("percpu"))) *pcpu_cid;
unsigned long mm_cid_next_scan;
atomic_long_t pgtables_bytes;
int map_count;
spinlock_t page_table_lock;
struct rw_semaphore mmap_lock;
struct list_head mmlist;
int mm_lock_seq;
unsigned long hiwater_rss;
unsigned long hiwater_vm;
unsigned long total_vm;
unsigned long locked_vm;
atomic64_t pinned_vm;
unsigned long data_vm;
unsigned long exec_vm;
unsigned long stack_vm;
unsigned long def_flags;
seqcount_t write_protect_seq;
spinlock_t arg_lock;
unsigned long start_code;
unsigned long end_code;
unsigned long start_data;
unsigned long end_data;
unsigned long start_brk;
unsigned long brk;
unsigned long start_stack;
unsigned long arg_start;
unsigned long arg_end;
unsigned long env_start;
unsigned long env_end;
unsigned long saved_auxv[50];
struct percpu_counter rss_stat[4];
struct linux_binfmt *binfmt;
mm_context_t context;
unsigned long flags;
spinlock_t ioctx_lock;
struct kioctx_table __attribute__((btf_type_tag("rcu"))) *ioctx_table;
struct task_struct __attribute__((btf_type_tag("rcu"))) *owner;
struct user_namespace *user_ns;
struct file __attribute__((btf_type_tag("rcu"))) *exe_file;
atomic_t tlb_flush_pending;
atomic_t tlb_flush_batched;
struct uprobes_state uprobes_state;
atomic_long_t hugetlb_usage;
struct work_struct async_put_work;
long: 64;
long: 64;
long: 64;
long: 64;
};
unsigned long cpu_bitmap[0];
};
struct llist_node {
struct llist_node *next;
};
typedef unsigned int fmode_t;
struct qrwlock {
union {
atomic_t cnts;
struct {
u8 wlocked;
u8 __lstate[3];
};
};
arch_spinlock_t wait_lock;
};
typedef struct qrwlock arch_rwlock_t;
typedef struct {
arch_rwlock_t raw_lock;
unsigned int magic;
unsigned int owner_cpu;
void *owner;
struct lockdep_map dep_map;
} rwlock_t;
enum pid_type {
PIDTYPE_PID = 0,
PIDTYPE_TGID = 1,
PIDTYPE_PGID = 2,
PIDTYPE_SID = 3,
PIDTYPE_MAX = 4,
};
struct pid;
struct fown_struct {
rwlock_t lock;
struct pid *pid;
enum pid_type pid_type;
kuid_t uid;
kuid_t euid;
int signum;
};
struct file_ra_state {
unsigned long start;
unsigned int size;
unsigned int async_size;
unsigned int ra_pages;
unsigned int mmap_miss;
loff_t prev_pos;
};
struct path {
struct vfsmount *mnt;
struct dentry *dentry;
};
struct cred;
struct file {
union {
struct callback_head f_task_work;
struct llist_node f_llist;
unsigned int f_iocb_flags;
};
spinlock_t f_lock;
fmode_t f_mode;
atomic_long_t f_count;
struct mutex f_pos_lock;
loff_t f_pos;
unsigned int f_flags;
struct fown_struct f_owner;
const struct cred *f_cred;
struct file_ra_state f_ra;
struct path f_path;
struct inode *f_inode;
const struct file_operations *f_op;
u64 f_version;
void *private_data;
struct hlist_head *f_ep;
struct address_space *f_mapping;
errseq_t f_wb_err;
errseq_t f_sb_err;
};
struct pid_namespace;
struct upid {
int nr;
struct pid_namespace *ns;
};
struct pid {
refcount_t count;
unsigned int level;
spinlock_t lock;
struct dentry *stashed;
u64 ino;
struct hlist_head tasks[4];
struct hlist_head inodes;
wait_queue_head_t wait_pidfd;
struct callback_head rcu;
struct upid numbers[0];
};
struct idr {
struct xarray idr_rt;
unsigned int idr_base;
unsigned int idr_next;
};
struct proc_ns_operations;
struct ns_common {
struct dentry *stashed;
const struct proc_ns_operations *ops;
unsigned int inum;
refcount_t count;
};
struct kmem_cache;
struct fs_pin;
struct ucounts;
struct pid_namespace {
struct idr idr;
struct callback_head rcu;
unsigned int pid_allocated;
struct task_struct *child_reaper;
struct kmem_cache *pid_cachep;
unsigned int level;
struct pid_namespace *parent;
struct fs_pin *bacct;
struct user_namespace *user_ns;
struct ucounts *ucounts;
int reboot;
struct ns_common ns;
int memfd_noexec_scope;
};
struct thread_info {
unsigned long flags;
unsigned long syscall_work;
u32 status;
u32 cpu;
};
struct __call_single_node {
struct llist_node llist;
union {
unsigned int u_flags;
atomic_t a_flags;
};
u16 src;
u16 dst;
};
struct load_weight {
unsigned long weight;
u32 inv_weight;
};
struct sched_avg {
u64 last_update_time;
u64 load_sum;
u64 runnable_sum;
u32 util_sum;
u32 period_contrib;
unsigned long load_avg;
unsigned long runnable_avg;
unsigned long util_avg;
unsigned int util_est;
};
struct cfs_rq;
struct sched_entity {
struct load_weight load;
struct rb_node run_node;
u64 deadline;
u64 min_vruntime;
struct list_head group_node;
unsigned int on_rq;
u64 exec_start;
u64 sum_exec_runtime;
u64 prev_sum_exec_runtime;
u64 vruntime;
s64 vlag;
u64 slice;
u64 nr_migrations;
int depth;
struct sched_entity *parent;
struct cfs_rq *cfs_rq;
struct cfs_rq *my_q;
unsigned long runnable_weight;
long: 64;
long: 64;
struct sched_avg avg;
};
struct sched_rt_entity {
struct list_head run_list;
unsigned long timeout;
unsigned long watchdog_stamp;
unsigned int time_slice;
unsigned short on_rq;
unsigned short on_list;
struct sched_rt_entity *back;
};
typedef s64 ktime_t;
struct timerqueue_node {
struct rb_node node;
ktime_t expires;
};
enum hrtimer_restart {
HRTIMER_NORESTART = 0,
HRTIMER_RESTART = 1,
};
struct hrtimer_clock_base;
struct hrtimer {
struct timerqueue_node node;
ktime_t _softexpires;
enum hrtimer_restart (*function)(struct hrtimer *);
struct hrtimer_clock_base *base;
u8 state;
u8 is_rel;
u8 is_soft;
u8 is_hard;
};
struct sched_dl_entity;
typedef bool (*dl_server_has_tasks_f)(struct sched_dl_entity *);
typedef struct task_struct * (*dl_server_pick_f)(struct sched_dl_entity *);
struct rq;
struct sched_dl_entity {
struct rb_node rb_node;
u64 dl_runtime;
u64 dl_deadline;
u64 dl_period;
u64 dl_bw;
u64 dl_density;
s64 runtime;
u64 deadline;
unsigned int flags;
unsigned int dl_throttled: 1;
unsigned int dl_yielded: 1;
unsigned int dl_non_contending: 1;
unsigned int dl_overrun: 1;
unsigned int dl_server: 1;
struct hrtimer dl_timer;
struct hrtimer inactive_timer;
struct rq *rq;
dl_server_has_tasks_f server_has_tasks;
dl_server_pick_f server_pick;
struct sched_dl_entity *pi_se;
};
struct scx_dsq_node {
struct list_head list;
struct rb_node priq;
u32 flags;
};
struct scx_dispatch_q;
struct cgroup;
struct sched_ext_entity {
struct scx_dispatch_q *dsq;
struct scx_dsq_node dsq_node;
u64 dsq_seq;
u32 flags;
u32 weight;
s32 sticky_cpu;
s32 holding_cpu;
u32 kf_mask;
struct task_struct *kf_tasks[2];
atomic_long_t ops_state;
struct list_head runnable_node;
unsigned long runnable_at;
u64 ddsp_dsq_id;
u64 ddsp_enq_flags;
u64 slice;
u64 dsq_vtime;
bool disallow;
struct cgroup *cgrp_moving_from;
struct list_head tasks_node;
};
struct sched_statistics {};
struct cpumask {
unsigned long bits[128];
};
typedef struct cpumask cpumask_t;
union rcu_special {
struct {
u8 blocked;
u8 need_qs;
u8 exp_hint;
u8 need_mb;
} b;
u32 s;
};
struct sched_info {
unsigned long pcount;
unsigned long long run_delay;
unsigned long long last_arrival;
unsigned long long last_queued;
};
struct plist_node {
int prio;
struct list_head prio_list;
struct list_head node_list;
};
typedef int __kernel_clockid_t;
typedef __kernel_clockid_t clockid_t;
enum timespec_type {
TT_NONE = 0,
TT_NATIVE = 1,
TT_COMPAT = 2,
};
struct __kernel_timespec;
struct old_timespec32;
struct pollfd;
struct restart_block {
unsigned long arch_data;
long (*fn)(struct restart_block *);
union {
struct {
u32 __attribute__((btf_type_tag("user"))) *uaddr;
u32 val;
u32 flags;
u32 bitset;
u64 time;
u32 __attribute__((btf_type_tag("user"))) *uaddr2;
} futex;
struct {
clockid_t clockid;
enum timespec_type type;
union {
struct __kernel_timespec __attribute__((btf_type_tag("user"))) *rmtp;
struct old_timespec32 __attribute__((btf_type_tag("user"))) *compat_rmtp;
};
u64 expires;
} nanosleep;
struct {
struct pollfd __attribute__((btf_type_tag("user"))) *ufds;
int nfds;
int has_timeout;
unsigned long tv_sec;
unsigned long tv_nsec;
} poll;
};
};
typedef int __kernel_pid_t;
typedef __kernel_pid_t pid_t;
struct prev_cputime {
u64 utime;
u64 stime;
raw_spinlock_t lock;
};
enum vtime_state {
VTIME_INACTIVE = 0,
VTIME_IDLE = 1,
VTIME_SYS = 2,
VTIME_USER = 3,
VTIME_GUEST = 4,
};
struct vtime {
seqcount_t seqcount;
unsigned long long starttime;
enum vtime_state state;
unsigned int cpu;
u64 utime;
u64 stime;
u64 gtime;
};
struct timerqueue_head {
struct rb_root_cached rb_root;
};
struct posix_cputimer_base {
u64 nextevt;
struct timerqueue_head tqhead;
};
struct posix_cputimers {
struct posix_cputimer_base bases[3];
unsigned int timers_active;
unsigned int expiry_active;
};
struct posix_cputimers_work {
struct callback_head work;
struct mutex mutex;
unsigned int scheduled;
};
struct sem_undo_list;
struct sysv_sem {
struct sem_undo_list *undo_list;
};
struct sysv_shm {
struct list_head shm_clist;
};
typedef struct {
unsigned long sig[1];
} sigset_t;
struct sigpending {
struct list_head list;
sigset_t signal;
};
struct seccomp_filter;
struct seccomp {
int mode;
atomic_t filter_count;
struct seccomp_filter *filter;
};
struct syscall_user_dispatch {
char __attribute__((btf_type_tag("user"))) *selector;
unsigned long offset;
unsigned long len;
bool on_dispatch;
};
struct wake_q_node {
struct wake_q_node *next;
};
struct irqtrace_events {
unsigned int irq_events;
unsigned long hardirq_enable_ip;
unsigned long hardirq_disable_ip;
unsigned int hardirq_enable_event;
unsigned int hardirq_disable_event;
unsigned long softirq_disable_ip;
unsigned long softirq_enable_ip;
unsigned int softirq_disable_event;
unsigned int softirq_enable_event;
};
struct held_lock {
u64 prev_chain_key;
unsigned long acquire_ip;
struct lockdep_map *instance;
struct lockdep_map *nest_lock;
unsigned int class_idx: 13;
unsigned int irq_context: 2;
unsigned int trylock: 1;
unsigned int read: 2;
unsigned int check: 1;
unsigned int hardirqs_off: 1;
unsigned int sync: 1;
unsigned int references: 11;
unsigned int pin_count;
};
struct task_io_accounting {
u64 rchar;
u64 wchar;
u64 syscr;
u64 syscw;
u64 read_bytes;
u64 write_bytes;
u64 cancelled_write_bytes;
};
typedef struct {
unsigned long bits[16];
} nodemask_t;
struct arch_tlbflush_unmap_batch {
struct cpumask cpumask;
};
struct tlbflush_unmap_batch {
struct arch_tlbflush_unmap_batch arch;
bool flush_required;
bool writable;
};
struct page_frag {
struct page *page;
__u32 offset;
__u32 size;
};
struct kmap_ctrl {};
struct timer_list {
struct hlist_node entry;
unsigned long expires;
void (*function)(struct timer_list *);
u32 flags;
struct lockdep_map lockdep_map;
};
struct llist_head {
struct llist_node *first;
};
struct desc_struct {
u16 limit0;
u16 base0;
u16 base1: 8;
u16 type: 4;
u16 s: 1;
u16 dpl: 2;
u16 p: 1;
u16 limit1: 4;
u16 avl: 1;
u16 l: 1;
u16 d: 1;
u16 g: 1;
u16 base2: 8;
};
struct fpu_state_perm {
u64 __state_perm;
unsigned int __state_size;
unsigned int __user_state_size;
};
struct fregs_state {
u32 cwd;
u32 swd;
u32 twd;
u32 fip;
u32 fcs;
u32 foo;
u32 fos;
u32 st_space[20];
u32 status;
};
struct fxregs_state {
u16 cwd;
u16 swd;
u16 twd;
u16 fop;
union {
struct {
u64 rip;
u64 rdp;
};
struct {
u32 fip;
u32 fcs;
u32 foo;
u32 fos;
};
};
u32 mxcsr;
u32 mxcsr_mask;
u32 st_space[32];
u32 xmm_space[64];
u32 padding[12];
union {
u32 padding1[12];
u32 sw_reserved[12];
};
};
struct math_emu_info;
struct swregs_state {
u32 cwd;
u32 swd;
u32 twd;
u32 fip;
u32 fcs;
u32 foo;
u32 fos;
u32 st_space[20];
u8 ftop;
u8 changed;
u8 lookahead;
u8 no_update;
u8 rm;
u8 alimit;
struct math_emu_info *info;
u32 entry_eip;
};
struct xstate_header {
u64 xfeatures;
u64 xcomp_bv;
u64 reserved[6];
};
struct xregs_state {
struct fxregs_state i387;
struct xstate_header header;
u8 extended_state_area[0];
};
union fpregs_state {
struct fregs_state fsave;
struct fxregs_state fxsave;
struct swregs_state soft;
struct xregs_state xsave;
u8 __padding[4096];
};
struct fpstate {
unsigned int size;
unsigned int user_size;
u64 xfeatures;
u64 user_xfeatures;
u64 xfd;
unsigned int is_valloc: 1;
unsigned int is_guest: 1;
unsigned int is_confidential: 1;
unsigned int in_use: 1;
long: 64;
long: 64;
long: 64;
union fpregs_state regs;
};
struct fpu {
unsigned int last_cpu;
unsigned long avx512_timestamp;
struct fpstate *fpstate;
struct fpstate *__task_fpstate;
struct fpu_state_perm perm;
struct fpu_state_perm guest_perm;
struct fpstate __fpstate;
};
struct io_bitmap;
struct thread_struct {
struct desc_struct tls_array[3];
unsigned long sp;
unsigned short es;
unsigned short ds;
unsigned short fsindex;
unsigned short gsindex;
unsigned long fsbase;
unsigned long gsbase;
struct perf_event *ptrace_bps[4];
unsigned long virtual_dr6;
unsigned long ptrace_dr7;
unsigned long cr2;
unsigned long trap_nr;
unsigned long error_code;
struct io_bitmap *io_bitmap;
unsigned long iopl_emul;
unsigned int iopl_warn: 1;
unsigned int sig_on_uaccess_err: 1;
u32 pkru;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct fpu fpu;
};
struct sched_class;
struct task_group;
struct rcu_node;
struct key;
struct nameidata;
struct fs_struct;
struct files_struct;
struct io_uring_task;
struct nsproxy;
struct signal_struct;
struct sighand_struct;
struct rt_mutex_waiter;
struct mutex_waiter;
struct bio_list;
struct blk_plug;
struct reclaim_state;
struct io_context;
struct capture_control;
struct kernel_siginfo;
typedef struct kernel_siginfo kernel_siginfo_t;
struct css_set;
struct robust_list_head;
struct futex_pi_state;
struct perf_event_context;
struct rseq;
struct task_delay_info;
struct ftrace_ret_stack;
struct mem_cgroup;
struct obj_cgroup;
struct gendisk;
struct uprobe_task;
struct vm_struct;
struct bpf_local_storage;
struct bpf_run_ctx;
struct task_struct {
struct thread_info thread_info;
unsigned int __state;
unsigned int saved_state;
void *stack;
refcount_t usage;
unsigned int flags;
unsigned int ptrace;
int on_cpu;
struct __call_single_node wake_entry;
unsigned int wakee_flips;
unsigned long wakee_flip_decay_ts;
struct task_struct *last_wakee;
int recent_used_cpu;
int wake_cpu;
int on_rq;
int prio;
int static_prio;
int normal_prio;
unsigned int rt_priority;
struct sched_entity se;
struct sched_rt_entity rt;
struct sched_dl_entity dl;
struct sched_dl_entity *dl_server;
struct sched_ext_entity scx;
const struct sched_class *sched_class;
struct task_group *sched_task_group;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct sched_statistics stats;
unsigned int btrace_seq;
unsigned int policy;
int nr_cpus_allowed;
const cpumask_t *cpus_ptr;
cpumask_t *user_cpus_ptr;
cpumask_t cpus_mask;
void *migration_pending;
unsigned short migration_disabled;
unsigned short migration_flags;
int rcu_read_lock_nesting;
union rcu_special rcu_read_unlock_special;
struct list_head rcu_node_entry;
struct rcu_node *rcu_blocked_node;
unsigned long rcu_tasks_nvcsw;
u8 rcu_tasks_holdout;
u8 rcu_tasks_idx;
int rcu_tasks_idle_cpu;
struct list_head rcu_tasks_holdout_list;
int rcu_tasks_exit_cpu;
struct list_head rcu_tasks_exit_list;
int trc_reader_nesting;
int trc_ipi_to_cpu;
union rcu_special trc_reader_special;
struct list_head trc_holdout_list;
struct list_head trc_blkd_node;
int trc_blkd_cpu;
struct sched_info sched_info;
struct list_head tasks;
struct plist_node pushable_tasks;
struct rb_node pushable_dl_tasks;
struct mm_struct *mm;
struct mm_struct *active_mm;
struct address_space *faults_disabled_mapping;
int exit_state;
int exit_code;
int exit_signal;
int pdeath_signal;
unsigned long jobctl;
unsigned int personality;
unsigned int sched_reset_on_fork: 1;
unsigned int sched_contributes_to_load: 1;
unsigned int sched_migrated: 1;
long: 29;
unsigned int sched_remote_wakeup: 1;
unsigned int sched_rt_mutex: 1;
unsigned int in_execve: 1;
unsigned int in_iowait: 1;
unsigned int restore_sigmask: 1;
unsigned int in_user_fault: 1;
unsigned int no_cgroup_migration: 1;
unsigned int frozen: 1;
unsigned int use_memdelay: 1;
unsigned int in_memstall: 1;
unsigned int in_eventfd: 1;
unsigned int reported_split_lock: 1;
unsigned int in_thrashing: 1;
unsigned long atomic_flags;
struct restart_block restart_block;
pid_t pid;
pid_t tgid;
struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent;
struct task_struct __attribute__((btf_type_tag("rcu"))) *parent;
struct list_head children;
struct list_head sibling;
struct task_struct *group_leader;
struct list_head ptraced;
struct list_head ptrace_entry;
struct pid *thread_pid;
struct hlist_node pid_links[4];
struct list_head thread_node;
struct completion *vfork_done;
int __attribute__((btf_type_tag("user"))) *set_child_tid;
int __attribute__((btf_type_tag("user"))) *clear_child_tid;
void *worker_private;
u64 utime;
u64 stime;
u64 gtime;
struct prev_cputime prev_cputime;
struct vtime vtime;
atomic_t tick_dep_mask;
unsigned long nvcsw;
unsigned long nivcsw;
u64 start_time;
u64 start_boottime;
unsigned long min_flt;
unsigned long maj_flt;
struct posix_cputimers posix_cputimers;
struct posix_cputimers_work posix_cputimers_work;
const struct cred __attribute__((btf_type_tag("rcu"))) *ptracer_cred;
const struct cred __attribute__((btf_type_tag("rcu"))) *real_cred;
const struct cred __attribute__((btf_type_tag("rcu"))) *cred;
struct key *cached_requested_key;
char comm[16];
struct nameidata *nameidata;
struct sysv_sem sysvsem;
struct sysv_shm sysvshm;
unsigned long last_switch_count;
unsigned long last_switch_time;
struct fs_struct *fs;
struct files_struct *files;
struct io_uring_task *io_uring;
struct nsproxy *nsproxy;
struct signal_struct *signal;
struct sighand_struct __attribute__((btf_type_tag("rcu"))) *sighand;
sigset_t blocked;
sigset_t real_blocked;
sigset_t saved_sigmask;
struct sigpending pending;
unsigned long sas_ss_sp;
size_t sas_ss_size;
unsigned int sas_ss_flags;
struct callback_head *task_works;
struct seccomp seccomp;
struct syscall_user_dispatch syscall_dispatch;
u64 parent_exec_id;
u64 self_exec_id;
spinlock_t alloc_lock;
raw_spinlock_t pi_lock;
struct wake_q_node wake_q;
struct rb_root_cached pi_waiters;
struct task_struct *pi_top_task;
struct rt_mutex_waiter *pi_blocked_on;
struct mutex_waiter *blocked_on;
struct irqtrace_events irqtrace;
unsigned int hardirq_threaded;
u64 hardirq_chain_key;
int softirqs_enabled;
int softirq_context;
int irq_config;
u64 curr_chain_key;
int lockdep_depth;
unsigned int lockdep_recursion;
struct held_lock held_locks[48];
void *journal_info;
struct bio_list *bio_list;
struct blk_plug *plug;
struct reclaim_state *reclaim_state;
struct io_context *io_context;
struct capture_control *capture_control;
unsigned long ptrace_message;
kernel_siginfo_t *last_siginfo;
struct task_io_accounting ioac;
unsigned int psi_flags;
u64 acct_rss_mem1;
u64 acct_vm_mem1;
u64 acct_timexpd;
nodemask_t mems_allowed;
seqcount_spinlock_t mems_allowed_seq;
int cpuset_mem_spread_rotor;
int cpuset_slab_spread_rotor;
struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups;
struct list_head cg_list;
struct robust_list_head __attribute__((btf_type_tag("user"))) *robust_list;
struct list_head pi_state_list;
struct futex_pi_state *pi_state_cache;
struct mutex futex_exit_mutex;
unsigned int futex_state;
struct perf_event_context *perf_event_ctxp;
struct mutex perf_event_mutex;
struct list_head perf_event_list;
struct mempolicy *mempolicy;
short il_prev;
u8 il_weight;
short pref_node_fork;
struct rseq __attribute__((btf_type_tag("user"))) *rseq;
u32 rseq_len;
u32 rseq_sig;
unsigned long rseq_event_mask;
int mm_cid;
int last_mm_cid;
int migrate_from_cpu;
int mm_cid_active;
struct callback_head cid_work;
struct tlbflush_unmap_batch tlb_ubc;
struct pipe_inode_info *splice_pipe;
struct page_frag task_frag;
struct task_delay_info *delays;
int nr_dirtied;
int nr_dirtied_pause;
unsigned long dirty_paused_when;
u64 timer_slack_ns;
u64 default_timer_slack_ns;
int curr_ret_stack;
int curr_ret_depth;
struct ftrace_ret_stack *ret_stack;
unsigned long long ftrace_timestamp;
atomic_t trace_overrun;
atomic_t tracing_graph_pause;
unsigned long trace_recursion;
struct mem_cgroup *memcg_in_oom;
gfp_t memcg_oom_gfp_mask;
int memcg_oom_order;
unsigned int memcg_nr_pages_over_high;
struct mem_cgroup *active_memcg;
struct obj_cgroup *objcg;
struct gendisk *throttle_disk;
struct uprobe_task *utask;
struct kmap_ctrl kmap_ctrl;
struct callback_head rcu;
refcount_t rcu_users;
int pagefault_disabled;
struct task_struct *oom_reaper_list;
struct timer_list oom_reaper_timer;
struct vm_struct *stack_vm_area;
refcount_t stack_refcount;
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *bpf_storage;
struct bpf_run_ctx *bpf_ctx;
struct llist_head kretprobe_instances;
struct llist_head rethooks;
struct callback_head l1d_flush_kill;
long: 64;
long: 64;
long: 64;
long: 64;
struct thread_struct thread;
};
struct seqcount_raw_spinlock {
seqcount_t seqcount;
raw_spinlock_t *lock;
};
typedef struct seqcount_raw_spinlock seqcount_raw_spinlock_t;
struct hrtimer_cpu_base;
struct hrtimer_clock_base {
struct hrtimer_cpu_base *cpu_base;
unsigned int index;
clockid_t clockid;
seqcount_raw_spinlock_t seq;
struct hrtimer *running;
struct timerqueue_head active;
ktime_t (*get_time)();
ktime_t offset;
long: 64;
long: 64;
};
struct hrtimer_cpu_base {
raw_spinlock_t lock;
unsigned int cpu;
unsigned int active_bases;
unsigned int clock_was_set_seq;
unsigned int hres_active: 1;
unsigned int in_hrtirq: 1;
unsigned int hang_detected: 1;
unsigned int softirq_activated: 1;
unsigned int online: 1;
unsigned int nr_events;
unsigned short nr_retries;
unsigned short nr_hangs;
unsigned int max_hang_time;
ktime_t expires_next;
struct hrtimer *next_timer;
ktime_t softirq_expires_next;
struct hrtimer *softirq_next_timer;
struct hrtimer_clock_base clock_base[8];
};
struct rhash_head {
struct rhash_head __attribute__((btf_type_tag("rcu"))) *next;
};
struct scx_dispatch_q {
raw_spinlock_t lock;
struct list_head list;
struct rb_root priq;
u32 nr;
u64 seq;
u64 id;
struct rhash_head hash_node;
struct llist_node free_node;
struct callback_head rcu;
};
struct rcu_work {
struct work_struct work;
struct callback_head rcu;
struct workqueue_struct *wq;
};
struct cgroup_subsys;
struct cgroup_subsys_state {
struct cgroup *cgroup;
struct cgroup_subsys *ss;
struct percpu_ref refcnt;
struct list_head sibling;
struct list_head children;
struct list_head rstat_css_node;
int id;
unsigned int flags;
u64 serial_nr;
atomic_t online_cnt;
struct work_struct destroy_work;
struct rcu_work destroy_rwork;
struct cgroup_subsys_state *parent;
};
struct cftype;
struct cgroup_file {
struct cftype *cft;
struct kernfs_node *kn;
unsigned int flags;
unsigned long notified_at;
struct timer_list notify_timer;
};
struct cacheline_padding {
char x[0];
};
struct task_cputime {
u64 stime;
u64 utime;
unsigned long long sum_exec_runtime;
};
struct cgroup_base_stat {
struct task_cputime cputime;
};
struct cgroup_bpf {
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[28];
struct hlist_head progs[28];
u8 flags[28];
struct list_head storages;
struct bpf_prog_array *inactive;
struct percpu_ref refcnt;
struct work_struct release_work;
};
struct cgroup_freezer_state {
bool freeze;
int e_freeze;
int nr_frozen_descendants;
int nr_frozen_tasks;
};
struct cgroup_root;
struct cgroup_rstat_cpu;
struct psi_group;
struct cgroup {
struct cgroup_subsys_state self;
unsigned long flags;
int level;
int max_depth;
int nr_descendants;
int nr_dying_descendants;
int max_descendants;
int nr_populated_csets;
int nr_populated_domain_children;
int nr_populated_threaded_children;
int nr_threaded_children;
struct kernfs_node *kn;
struct cgroup_file procs_file;
struct cgroup_file events_file;
struct cgroup_file psi_files[3];
u16 subtree_control;
u16 subtree_ss_mask;
u16 old_subtree_control;
u16 old_subtree_ss_mask;
struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[14];
struct cgroup_root *root;
struct list_head cset_links;
struct list_head e_csets[14];
struct cgroup *dom_cgrp;
struct cgroup *old_dom_cgrp;
struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu;
struct list_head rstat_css_list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad_;
struct cgroup *rstat_flush_next;
struct cgroup_base_stat last_bstat;
struct cgroup_base_stat bstat;
struct prev_cputime prev_cputime;
struct list_head pidlists;
struct mutex pidlist_mutex;
wait_queue_head_t offline_waitq;
struct work_struct release_agent_work;
struct psi_group *psi;
struct cgroup_bpf bpf;
atomic_t congestion_count;
struct cgroup_freezer_state freezer;
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *bpf_cgrp_storage;
struct cgroup *ancestors[0];
long: 64;
};
struct cgroup_taskset;
struct cgroup_subsys {
struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *);
int (*css_online)(struct cgroup_subsys_state *);
void (*css_offline)(struct cgroup_subsys_state *);
void (*css_released)(struct cgroup_subsys_state *);
void (*css_free)(struct cgroup_subsys_state *);
void (*css_reset)(struct cgroup_subsys_state *);
void (*css_rstat_flush)(struct cgroup_subsys_state *, int);
int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *);
int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *);
int (*can_attach)(struct cgroup_taskset *);
void (*cancel_attach)(struct cgroup_taskset *);
void (*attach)(struct cgroup_taskset *);
void (*post_attach)();
int (*can_fork)(struct task_struct *, struct css_set *);
void (*cancel_fork)(struct task_struct *, struct css_set *);
void (*fork)(struct task_struct *);
void (*exit)(struct task_struct *);
void (*release)(struct task_struct *);
void (*bind)(struct cgroup_subsys_state *);
bool early_init: 1;
bool implicit_on_dfl: 1;
bool threaded: 1;
int id;
const char *name;
const char *legacy_name;
struct cgroup_root *root;
struct idr css_idr;
struct list_head cfts;
struct cftype *dfl_cftypes;
struct cftype *legacy_cftypes;
unsigned int depends_on;
};
struct seq_operations;
struct seq_file {
char *buf;
size_t size;
size_t from;
size_t count;
size_t pad_until;
loff_t index;
loff_t read_pos;
struct mutex lock;
const struct seq_operations *op;
int poll_event;
const struct file *file;
void *private;
};
struct seq_operations {
void * (*start)(struct seq_file *, loff_t *);
void (*stop)(struct seq_file *, void *);
void * (*next)(struct seq_file *, void *, loff_t *);
int (*show)(struct seq_file *, void *);
};
struct css_set {
struct cgroup_subsys_state *subsys[14];
refcount_t refcount;
struct css_set *dom_cset;
struct cgroup *dfl_cgrp;
int nr_tasks;
struct list_head tasks;
struct list_head mg_tasks;
struct list_head dying_tasks;
struct list_head task_iters;
struct list_head e_cset_node[14];
struct list_head threaded_csets;
struct list_head threaded_csets_node;
struct hlist_node hlist;
struct list_head cgrp_links;
struct list_head mg_src_preload_node;
struct list_head mg_dst_preload_node;
struct list_head mg_node;
struct cgroup *mg_src_cgrp;
struct cgroup *mg_dst_cgrp;
struct css_set *mg_dst_cset;
bool dead;
struct callback_head callback_head;
};
struct kernfs_root;
struct cgroup_root {
struct kernfs_root *kf_root;
unsigned int subsys_mask;
int hierarchy_id;
struct list_head root_list;
struct callback_head rcu;
long: 64;
long: 64;
struct cgroup cgrp;
struct cgroup *cgrp_ancestor_storage;
atomic_t nr_cgrps;
unsigned int flags;
char release_agent_path[4096];
char name[64];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef unsigned int __poll_t;
struct kernfs_ops;
struct kernfs_open_file;
struct poll_table_struct;
struct cftype {
char name[64];
unsigned long private;
size_t max_write_len;
unsigned int flags;
unsigned int file_offset;
struct cgroup_subsys *ss;
struct list_head node;
struct kernfs_ops *kf_ops;
int (*open)(struct kernfs_open_file *);
void (*release)(struct kernfs_open_file *);
u64 (*read_u64)(struct cgroup_subsys_state *, struct cftype *);
s64 (*read_s64)(struct cgroup_subsys_state *, struct cftype *);
int (*seq_show)(struct seq_file *, void *);
void * (*seq_start)(struct seq_file *, loff_t *);
void * (*seq_next)(struct seq_file *, void *, loff_t *);
void (*seq_stop)(struct seq_file *, void *);
int (*write_u64)(struct cgroup_subsys_state *, struct cftype *, u64);
int (*write_s64)(struct cgroup_subsys_state *, struct cftype *, s64);
ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
struct lock_class_key lockdep_key;
};
struct kernfs_ops {
int (*open)(struct kernfs_open_file *);
void (*release)(struct kernfs_open_file *);
int (*seq_show)(struct seq_file *, void *);
void * (*seq_start)(struct seq_file *, loff_t *);
void * (*seq_next)(struct seq_file *, void *, loff_t *);
void (*seq_stop)(struct seq_file *, void *);
ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t);
size_t atomic_write_len;
bool prealloc;
ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t);
__poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *);
int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *);
loff_t (*llseek)(struct kernfs_open_file *, loff_t, int);
};
struct kernfs_open_file {
struct kernfs_node *kn;
struct file *file;
struct seq_file *seq_file;
void *priv;
struct mutex mutex;
struct mutex prealloc_mutex;
int event;
struct list_head list;
char *prealloc_buf;
size_t atomic_write_len;
bool mmapped: 1;
bool released: 1;
const struct vm_operations_struct *vm_ops;
};
struct kernfs_elem_dir {
unsigned long subdirs;
struct rb_root children;
struct kernfs_root *root;
unsigned long rev;
};
struct kernfs_elem_symlink {
struct kernfs_node *target_kn;
};
struct kernfs_open_node;
struct kernfs_elem_attr {
const struct kernfs_ops *ops;
struct kernfs_open_node __attribute__((btf_type_tag("rcu"))) *open;
loff_t size;
struct kernfs_node *notify_next;
};
struct kernfs_iattrs;
struct kernfs_node {
atomic_t count;
atomic_t active;
struct lockdep_map dep_map;
struct kernfs_node *parent;
const char *name;
struct rb_node rb;
const void *ns;
unsigned int hash;
unsigned short flags;
umode_t mode;
union {
struct kernfs_elem_dir dir;
struct kernfs_elem_symlink symlink;
struct kernfs_elem_attr attr;
};
u64 id;
void *priv;
struct kernfs_iattrs *iattr;
struct callback_head rcu;
};
struct kernfs_open_node {
struct callback_head callback_head;
atomic_t event;
wait_queue_head_t poll;
struct list_head files;
unsigned int nr_mmapped;
unsigned int nr_to_release;
};
struct vm_operations_struct {
void (*open)(struct vm_area_struct *);
void (*close)(struct vm_area_struct *);
int (*may_split)(struct vm_area_struct *, unsigned long);
int (*mremap)(struct vm_area_struct *);
int (*mprotect)(struct vm_area_struct *, unsigned long, unsigned long, unsigned long);
vm_fault_t (*fault)(struct vm_fault *);
vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int);
vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long);
unsigned long (*pagesize)(struct vm_area_struct *);
vm_fault_t (*page_mkwrite)(struct vm_fault *);
vm_fault_t (*pfn_mkwrite)(struct vm_fault *);
int (*access)(struct vm_area_struct *, unsigned long, void *, int, int);
const char * (*name)(struct vm_area_struct *);
int (*set_policy)(struct vm_area_struct *, struct mempolicy *);
struct mempolicy * (*get_policy)(struct vm_area_struct *, unsigned long, unsigned long *);
struct page * (*find_special_page)(struct vm_area_struct *, unsigned long);
};
typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *);
struct poll_table_struct {
poll_queue_proc _qproc;
__poll_t _key;
};
struct u64_stats_sync {};
struct cgroup_rstat_cpu {
struct u64_stats_sync bsync;
struct cgroup_base_stat bstat;
struct cgroup_base_stat last_bstat;
struct cgroup_base_stat subtree_bstat;
struct cgroup_base_stat last_subtree_bstat;
struct cgroup *updated_children;
struct cgroup *updated_next;
};
struct delayed_work {
struct work_struct work;
struct timer_list timer;
struct workqueue_struct *wq;
int cpu;
};
struct psi_group_cpu;
struct psi_group {
struct psi_group *parent;
bool enabled;
struct mutex avgs_lock;
struct psi_group_cpu __attribute__((btf_type_tag("percpu"))) *pcpu;
u64 avg_total[6];
u64 avg_last_update;
u64 avg_next_update;
struct delayed_work avgs_work;
struct list_head avg_triggers;
u32 avg_nr_triggers[6];
u64 total[12];
unsigned long avg[18];
struct task_struct __attribute__((btf_type_tag("rcu"))) *rtpoll_task;
struct timer_list rtpoll_timer;
wait_queue_head_t rtpoll_wait;
atomic_t rtpoll_wakeup;
atomic_t rtpoll_scheduled;
struct mutex rtpoll_trigger_lock;
struct list_head rtpoll_triggers;
u32 rtpoll_nr_triggers[6];
u32 rtpoll_states;
u64 rtpoll_min_period;
u64 rtpoll_total[6];
u64 rtpoll_next_update;
u64 rtpoll_until;
};
struct psi_group_cpu {
seqcount_t seq;
unsigned int tasks[4];
u32 state_mask;
u32 times[7];
u64 state_start;
long: 64;
long: 64;
long: 64;
u32 times_prev[14];
long: 64;
};
struct bpf_prog;
struct bpf_cgroup_storage;
struct bpf_prog_array_item {
struct bpf_prog *prog;
union {
struct bpf_cgroup_storage *cgroup_storage[2];
u64 bpf_cookie;
};
};
struct bpf_prog_array {
struct callback_head rcu;
struct bpf_prog_array_item items[0];
};
struct sock_filter {
__u16 code;
__u8 jt;
__u8 jf;
__u32 k;
};
struct bpf_insn {
__u8 code;
__u8 dst_reg: 4;
__u8 src_reg: 4;
__s16 off;
__s32 imm;
};
enum bpf_prog_type {
BPF_PROG_TYPE_UNSPEC = 0,
BPF_PROG_TYPE_SOCKET_FILTER = 1,
BPF_PROG_TYPE_KPROBE = 2,
BPF_PROG_TYPE_SCHED_CLS = 3,
BPF_PROG_TYPE_SCHED_ACT = 4,
BPF_PROG_TYPE_TRACEPOINT = 5,
BPF_PROG_TYPE_XDP = 6,
BPF_PROG_TYPE_PERF_EVENT = 7,
BPF_PROG_TYPE_CGROUP_SKB = 8,
BPF_PROG_TYPE_CGROUP_SOCK = 9,
BPF_PROG_TYPE_LWT_IN = 10,
BPF_PROG_TYPE_LWT_OUT = 11,
BPF_PROG_TYPE_LWT_XMIT = 12,
BPF_PROG_TYPE_SOCK_OPS = 13,
BPF_PROG_TYPE_SK_SKB = 14,
BPF_PROG_TYPE_CGROUP_DEVICE = 15,
BPF_PROG_TYPE_SK_MSG = 16,
BPF_PROG_TYPE_RAW_TRACEPOINT = 17,
BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18,
BPF_PROG_TYPE_LWT_SEG6LOCAL = 19,
BPF_PROG_TYPE_LIRC_MODE2 = 20,
BPF_PROG_TYPE_SK_REUSEPORT = 21,
BPF_PROG_TYPE_FLOW_DISSECTOR = 22,
BPF_PROG_TYPE_CGROUP_SYSCTL = 23,
BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24,
BPF_PROG_TYPE_CGROUP_SOCKOPT = 25,
BPF_PROG_TYPE_TRACING = 26,
BPF_PROG_TYPE_STRUCT_OPS = 27,
BPF_PROG_TYPE_EXT = 28,
BPF_PROG_TYPE_LSM = 29,
BPF_PROG_TYPE_SK_LOOKUP = 30,
BPF_PROG_TYPE_SYSCALL = 31,
BPF_PROG_TYPE_NETFILTER = 32,
__MAX_BPF_PROG_TYPE = 33,
};
enum bpf_attach_type {
BPF_CGROUP_INET_INGRESS = 0,
BPF_CGROUP_INET_EGRESS = 1,
BPF_CGROUP_INET_SOCK_CREATE = 2,
BPF_CGROUP_SOCK_OPS = 3,
BPF_SK_SKB_STREAM_PARSER = 4,
BPF_SK_SKB_STREAM_VERDICT = 5,
BPF_CGROUP_DEVICE = 6,
BPF_SK_MSG_VERDICT = 7,
BPF_CGROUP_INET4_BIND = 8,
BPF_CGROUP_INET6_BIND = 9,
BPF_CGROUP_INET4_CONNECT = 10,
BPF_CGROUP_INET6_CONNECT = 11,
BPF_CGROUP_INET4_POST_BIND = 12,
BPF_CGROUP_INET6_POST_BIND = 13,
BPF_CGROUP_UDP4_SENDMSG = 14,
BPF_CGROUP_UDP6_SENDMSG = 15,
BPF_LIRC_MODE2 = 16,
BPF_FLOW_DISSECTOR = 17,
BPF_CGROUP_SYSCTL = 18,
BPF_CGROUP_UDP4_RECVMSG = 19,
BPF_CGROUP_UDP6_RECVMSG = 20,
BPF_CGROUP_GETSOCKOPT = 21,
BPF_CGROUP_SETSOCKOPT = 22,
BPF_TRACE_RAW_TP = 23,
BPF_TRACE_FENTRY = 24,
BPF_TRACE_FEXIT = 25,
BPF_MODIFY_RETURN = 26,
BPF_LSM_MAC = 27,
BPF_TRACE_ITER = 28,
BPF_CGROUP_INET4_GETPEERNAME = 29,
BPF_CGROUP_INET6_GETPEERNAME = 30,
BPF_CGROUP_INET4_GETSOCKNAME = 31,
BPF_CGROUP_INET6_GETSOCKNAME = 32,
BPF_XDP_DEVMAP = 33,
BPF_CGROUP_INET_SOCK_RELEASE = 34,
BPF_XDP_CPUMAP = 35,
BPF_SK_LOOKUP = 36,
BPF_XDP = 37,
BPF_SK_SKB_VERDICT = 38,
BPF_SK_REUSEPORT_SELECT = 39,
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40,
BPF_PERF_EVENT = 41,
BPF_TRACE_KPROBE_MULTI = 42,
BPF_LSM_CGROUP = 43,
BPF_STRUCT_OPS = 44,
BPF_NETFILTER = 45,
BPF_TCX_INGRESS = 46,
BPF_TCX_EGRESS = 47,
BPF_TRACE_UPROBE_MULTI = 48,
BPF_CGROUP_UNIX_CONNECT = 49,
BPF_CGROUP_UNIX_SENDMSG = 50,
BPF_CGROUP_UNIX_RECVMSG = 51,
BPF_CGROUP_UNIX_GETPEERNAME = 52,
BPF_CGROUP_UNIX_GETSOCKNAME = 53,
BPF_NETKIT_PRIMARY = 54,
BPF_NETKIT_PEER = 55,
__MAX_BPF_ATTACH_TYPE = 56,
};
struct bpf_prog_stats;
struct bpf_prog_aux;
struct sock_fprog_kern;
struct bpf_prog {
u16 pages;
u16 jited: 1;
u16 jit_requested: 1;
u16 gpl_compatible: 1;
u16 cb_access: 1;
u16 dst_needed: 1;
u16 blinding_requested: 1;
u16 blinded: 1;
u16 is_func: 1;
u16 kprobe_override: 1;
u16 has_callchain_buf: 1;
u16 enforce_expected_attach_type: 1;
u16 call_get_stack: 1;
u16 call_get_func_ip: 1;
u16 tstamp_type_access: 1;
u16 sleepable: 1;
enum bpf_prog_type type;
enum bpf_attach_type expected_attach_type;
u32 len;
u32 jited_len;
u8 tag[8];
struct bpf_prog_stats __attribute__((btf_type_tag("percpu"))) *stats;
int __attribute__((btf_type_tag("percpu"))) *active;
unsigned int (*bpf_func)(const void *, const struct bpf_insn *);
struct bpf_prog_aux *aux;
struct sock_fprog_kern *orig_prog;
union {
struct {
struct {} __empty_insns;
struct sock_filter insns[0];
};
struct {
struct {} __empty_insnsi;
struct bpf_insn insnsi[0];
};
};
};
typedef struct {
atomic_long_t a;
} local_t;
typedef struct {
local_t a;
} local64_t;
typedef struct {
local64_t v;
} u64_stats_t;
struct bpf_prog_stats {
u64_stats_t cnt;
u64_stats_t nsecs;
u64_stats_t misses;
struct u64_stats_sync syncp;
long: 64;
};
struct bpf_ksym {
unsigned long start;
unsigned long end;
char name[512];
struct list_head lnode;
struct latch_tree_node tnode;
bool prog;
};
struct btf;
struct bpf_ctx_arg_aux;
struct bpf_trampoline;
struct bpf_arena;
struct btf_type;
struct bpf_jit_poke_descriptor;
struct bpf_kfunc_desc_tab;
struct bpf_kfunc_btf_tab;
struct bpf_prog_ops;
struct bpf_map;
struct btf_mod_pair;
struct user_struct;
struct bpf_token;
struct bpf_prog_offload;
struct bpf_func_info;
struct bpf_func_info_aux;
struct bpf_line_info;
struct bpf_prog_aux {
atomic64_t refcnt;
u32 used_map_cnt;
u32 used_btf_cnt;
u32 max_ctx_offset;
u32 max_pkt_offset;
u32 max_tp_access;
u32 stack_depth;
u32 id;
u32 func_cnt;
u32 real_func_cnt;
u32 func_idx;
u32 attach_btf_id;
u32 ctx_arg_info_size;
u32 max_rdonly_access;
u32 max_rdwr_access;
struct btf *attach_btf;
const struct bpf_ctx_arg_aux *ctx_arg_info;
struct mutex dst_mutex;
struct bpf_prog *dst_prog;
struct bpf_trampoline *dst_trampoline;
enum bpf_prog_type saved_dst_prog_type;
enum bpf_attach_type saved_dst_attach_type;
bool verifier_zext;
bool dev_bound;
bool offload_requested;
bool attach_btf_trace;
bool attach_tracing_prog;
bool func_proto_unreliable;
bool tail_call_reachable;
bool xdp_has_frags;
bool exception_cb;
bool exception_boundary;
struct bpf_arena *arena;
const struct btf_type *attach_func_proto;
const char *attach_func_name;
struct bpf_prog **func;
void *jit_data;
struct bpf_jit_poke_descriptor *poke_tab;
struct bpf_kfunc_desc_tab *kfunc_tab;
struct bpf_kfunc_btf_tab *kfunc_btf_tab;
u32 size_poke_tab;
struct bpf_ksym ksym;
const struct bpf_prog_ops *ops;
struct bpf_map **used_maps;
struct mutex used_maps_mutex;
struct btf_mod_pair *used_btfs;
struct bpf_prog *prog;
struct user_struct *user;
u64 load_time;
u32 verified_insns;
int cgroup_atype;
struct bpf_map *cgroup_storage[2];
char name[16];
u64 (*bpf_exception_cb)(u64, u64, u64, u64, u64);
struct bpf_token *token;
struct bpf_prog_offload *offload;
struct btf *btf;
struct bpf_func_info *func_info;
struct bpf_func_info_aux *func_info_aux;
struct bpf_line_info *linfo;
void **jited_linfo;
u32 func_info_cnt;
u32 nr_linfo;
u32 linfo_idx;
struct module *mod;
u32 num_exentries;
struct exception_table_entry *extable;
union {
struct work_struct work;
struct callback_head rcu;
};
};
enum bpf_reg_type {
NOT_INIT = 0,
SCALAR_VALUE = 1,
PTR_TO_CTX = 2,
CONST_PTR_TO_MAP = 3,
PTR_TO_MAP_VALUE = 4,
PTR_TO_MAP_KEY = 5,
PTR_TO_STACK = 6,
PTR_TO_PACKET_META = 7,
PTR_TO_PACKET = 8,
PTR_TO_PACKET_END = 9,
PTR_TO_FLOW_KEYS = 10,
PTR_TO_SOCKET = 11,
PTR_TO_SOCK_COMMON = 12,
PTR_TO_TCP_SOCK = 13,
PTR_TO_TP_BUFFER = 14,
PTR_TO_XDP_SOCK = 15,
PTR_TO_BTF_ID = 16,
PTR_TO_MEM = 17,
PTR_TO_ARENA = 18,
PTR_TO_BUF = 19,
PTR_TO_FUNC = 20,
CONST_PTR_TO_DYNPTR = 21,
__BPF_REG_TYPE_MAX = 22,
PTR_TO_MAP_VALUE_OR_NULL = 260,
PTR_TO_SOCKET_OR_NULL = 267,
PTR_TO_SOCK_COMMON_OR_NULL = 268,
PTR_TO_TCP_SOCK_OR_NULL = 269,
PTR_TO_BTF_ID_OR_NULL = 272,
__BPF_REG_TYPE_LIMIT = 33554431,
};
struct bpf_ctx_arg_aux {
u32 offset;
enum bpf_reg_type reg_type;
struct btf *btf;
u32 btf_id;
};
struct btf_func_model {
u8 ret_size;
u8 ret_flags;
u8 nr_args;
u8 arg_size[12];
u8 arg_flags[12];
};
struct ftrace_ops;
struct bpf_tramp_image;
struct bpf_trampoline {
struct hlist_node hlist;
struct ftrace_ops *fops;
struct mutex mutex;
refcount_t refcnt;
u32 flags;
u64 key;
struct {
struct btf_func_model model;
void *addr;
bool ftrace_managed;
} func;
struct bpf_prog *extension_prog;
struct hlist_head progs_hlist[3];
int progs_cnt[3];
struct bpf_tramp_image *cur_image;
};
struct ftrace_regs;
typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *);
struct ftrace_hash;
struct ftrace_ops_hash {
struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *notrace_hash;
struct ftrace_hash __attribute__((btf_type_tag("rcu"))) *filter_hash;
struct mutex regex_lock;
};
enum ftrace_ops_cmd {
FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_SELF = 0,
FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY_PEER = 1,
FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2,
};
typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd);
struct ftrace_ops {
ftrace_func_t func;
struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next;
unsigned long flags;
void *private;
ftrace_func_t saved_func;
struct ftrace_ops_hash local_hash;
struct ftrace_ops_hash *func_hash;
struct ftrace_ops_hash old_hash;
unsigned long trampoline;
unsigned long trampoline_size;
struct list_head list;
ftrace_ops_func_t ops_func;
unsigned long direct_call;
};
struct fred_cs {
u64 cs: 16;
u64 sl: 2;
u64 wfe: 1;
};
struct fred_ss {
u64 ss: 16;
u64 sti: 1;
u64 swevent: 1;
u64 nmi: 1;
int: 13;
u64 vector: 8;
short: 8;
u64 type: 4;
char: 4;
u64 enclave: 1;
u64 lm: 1;
u64 nested: 1;
char: 1;
u64 insnlen: 4;
};
struct pt_regs {
unsigned long r15;
unsigned long r14;
unsigned long r13;
unsigned long r12;
unsigned long bp;
unsigned long bx;
unsigned long r11;
unsigned long r10;
unsigned long r9;
unsigned long r8;
unsigned long ax;
unsigned long cx;
unsigned long dx;
unsigned long si;
unsigned long di;
unsigned long orig_ax;
unsigned long ip;
union {
u16 cs;
u64 csx;
struct fred_cs fred_cs;
};
unsigned long flags;
unsigned long sp;
union {
u16 ss;
u64 ssx;
struct fred_ss fred_ss;
};
};
struct ftrace_regs {
struct pt_regs regs;
};
struct ftrace_hash {
unsigned long size_bits;
struct hlist_head *buckets;
unsigned long count;
unsigned long flags;
struct callback_head rcu;
};
struct bpf_tramp_image {
void *image;
int size;
struct bpf_ksym ksym;
struct percpu_ref pcref;
void *ip_after_call;
void *ip_epilogue;
union {
struct callback_head rcu;
struct work_struct work;
};
};
struct btf_type {
__u32 name_off;
__u32 info;
union {
__u32 size;
__u32 type;
};
};
struct bpf_jit_poke_descriptor {
void *tailcall_target;
void *tailcall_bypass;
void *bypass_addr;
void *aux;
union {
struct {
struct bpf_map *map;
u32 key;
} tail_call;
};
bool tailcall_target_stable;
u8 adj_off;
u16 reason;
u32 insn_idx;
};
enum bpf_map_type {
BPF_MAP_TYPE_UNSPEC = 0,
BPF_MAP_TYPE_HASH = 1,
BPF_MAP_TYPE_ARRAY = 2,
BPF_MAP_TYPE_PROG_ARRAY = 3,
BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4,
BPF_MAP_TYPE_PERCPU_HASH = 5,
BPF_MAP_TYPE_PERCPU_ARRAY = 6,
BPF_MAP_TYPE_STACK_TRACE = 7,
BPF_MAP_TYPE_CGROUP_ARRAY = 8,
BPF_MAP_TYPE_LRU_HASH = 9,
BPF_MAP_TYPE_LRU_PERCPU_HASH = 10,
BPF_MAP_TYPE_LPM_TRIE = 11,
BPF_MAP_TYPE_ARRAY_OF_MAPS = 12,
BPF_MAP_TYPE_HASH_OF_MAPS = 13,
BPF_MAP_TYPE_DEVMAP = 14,
BPF_MAP_TYPE_SOCKMAP = 15,
BPF_MAP_TYPE_CPUMAP = 16,
BPF_MAP_TYPE_XSKMAP = 17,
BPF_MAP_TYPE_SOCKHASH = 18,
BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19,
BPF_MAP_TYPE_CGROUP_STORAGE = 19,
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20,
BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21,
BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21,
BPF_MAP_TYPE_QUEUE = 22,
BPF_MAP_TYPE_STACK = 23,
BPF_MAP_TYPE_SK_STORAGE = 24,
BPF_MAP_TYPE_DEVMAP_HASH = 25,
BPF_MAP_TYPE_STRUCT_OPS = 26,
BPF_MAP_TYPE_RINGBUF = 27,
BPF_MAP_TYPE_INODE_STORAGE = 28,
BPF_MAP_TYPE_TASK_STORAGE = 29,
BPF_MAP_TYPE_BLOOM_FILTER = 30,
BPF_MAP_TYPE_USER_RINGBUF = 31,
BPF_MAP_TYPE_CGRP_STORAGE = 32,
BPF_MAP_TYPE_ARENA = 33,
__MAX_BPF_MAP_TYPE = 34,
};
struct bpf_map_ops;
struct btf_record;
struct bpf_map {
const struct bpf_map_ops *ops;
struct bpf_map *inner_map_meta;
enum bpf_map_type map_type;
u32 key_size;
u32 value_size;
u32 max_entries;
u64 map_extra;
u32 map_flags;
u32 id;
struct btf_record *record;
int numa_node;
u32 btf_key_type_id;
u32 btf_value_type_id;
u32 btf_vmlinux_value_type_id;
struct btf *btf;
struct obj_cgroup *objcg;
char name[16];
struct mutex freeze_mutex;
atomic64_t refcnt;
atomic64_t usercnt;
union {
struct work_struct work;
struct callback_head rcu;
};
atomic64_t writecnt;
struct {
spinlock_t lock;
enum bpf_prog_type type;
bool jited;
bool xdp_has_frags;
} owner;
bool bypass_spec_v1;
bool frozen;
bool free_after_mult_rcu_gp;
bool free_after_rcu_gp;
atomic64_t sleepable_refcnt;
s64 __attribute__((btf_type_tag("percpu"))) *elem_count;
};
typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64);
union bpf_attr;
struct bpf_local_storage_map;
struct bpf_verifier_env;
struct bpf_func_state;
struct bpf_iter_seq_info;
struct bpf_map_ops {
int (*map_alloc_check)(union bpf_attr *);
struct bpf_map * (*map_alloc)(union bpf_attr *);
void (*map_release)(struct bpf_map *, struct file *);
void (*map_free)(struct bpf_map *);
int (*map_get_next_key)(struct bpf_map *, void *, void *);
void (*map_release_uref)(struct bpf_map *);
void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *);
int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64);
int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
void * (*map_lookup_elem)(struct bpf_map *, void *);
long (*map_update_elem)(struct bpf_map *, void *, void *, u64);
long (*map_delete_elem)(struct bpf_map *, void *);
long (*map_push_elem)(struct bpf_map *, void *, u64);
long (*map_pop_elem)(struct bpf_map *, void *);
long (*map_peek_elem)(struct bpf_map *, void *);
void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int);
void (*map_fd_put_ptr)(struct bpf_map *, void *, bool);
int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *);
u32 (*map_fd_sys_lookup_elem)(void *);
void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *);
int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *);
int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *);
void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *);
void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *);
int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32);
int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *);
int (*map_mmap)(struct bpf_map *, struct vm_area_struct *);
__poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *);
unsigned long (*map_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32);
void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32);
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) ** (*map_owner_storage_ptr)(void *);
long (*map_redirect)(struct bpf_map *, u64, u64);
bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *);
int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *);
long (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64);
u64 (*map_mem_usage)(const struct bpf_map *);
int *map_btf_id;
const struct bpf_iter_seq_info *iter_seq_info;
};
union bpf_attr {
struct {
__u32 map_type;
__u32 key_size;
__u32 value_size;
__u32 max_entries;
__u32 map_flags;
__u32 inner_map_fd;
__u32 numa_node;
char map_name[16];
__u32 map_ifindex;
__u32 btf_fd;
__u32 btf_key_type_id;
__u32 btf_value_type_id;
__u32 btf_vmlinux_value_type_id;
__u64 map_extra;
__s32 value_type_btf_obj_fd;
__s32 map_token_fd;
};
struct {
__u32 map_fd;
__u64 key;
union {
__u64 value;
__u64 next_key;
};
__u64 flags;
};
struct {
__u64 in_batch;
__u64 out_batch;
__u64 keys;
__u64 values;
__u32 count;
__u32 map_fd;
__u64 elem_flags;
__u64 flags;
} batch;
struct {
__u32 prog_type;
__u32 insn_cnt;
__u64 insns;
__u64 license;
__u32 log_level;
__u32 log_size;
__u64 log_buf;
__u32 kern_version;
__u32 prog_flags;
char prog_name[16];
__u32 prog_ifindex;
__u32 expected_attach_type;
__u32 prog_btf_fd;
__u32 func_info_rec_size;
__u64 func_info;
__u32 func_info_cnt;
__u32 line_info_rec_size;
__u64 line_info;
__u32 line_info_cnt;
__u32 attach_btf_id;
union {
__u32 attach_prog_fd;
__u32 attach_btf_obj_fd;
};
__u32 core_relo_cnt;
__u64 fd_array;
__u64 core_relos;
__u32 core_relo_rec_size;
__u32 log_true_size;
__s32 prog_token_fd;
};
struct {
__u64 pathname;
__u32 bpf_fd;
__u32 file_flags;
__s32 path_fd;
};
struct {
union {
__u32 target_fd;
__u32 target_ifindex;
};
__u32 attach_bpf_fd;
__u32 attach_type;
__u32 attach_flags;
__u32 replace_bpf_fd;
union {
__u32 relative_fd;
__u32 relative_id;
};
__u64 expected_revision;
};
struct {
__u32 prog_fd;
__u32 retval;
__u32 data_size_in;
__u32 data_size_out;
__u64 data_in;
__u64 data_out;
__u32 repeat;
__u32 duration;
__u32 ctx_size_in;
__u32 ctx_size_out;
__u64 ctx_in;
__u64 ctx_out;
__u32 flags;
__u32 cpu;
__u32 batch_size;
} test;
struct {
union {
__u32 start_id;
__u32 prog_id;
__u32 map_id;
__u32 btf_id;
__u32 link_id;
};
__u32 next_id;
__u32 open_flags;
};
struct {
__u32 bpf_fd;
__u32 info_len;
__u64 info;
} info;
struct {
union {
__u32 target_fd;
__u32 target_ifindex;
};
__u32 attach_type;
__u32 query_flags;
__u32 attach_flags;
__u64 prog_ids;
union {
__u32 prog_cnt;
__u32 count;
};
__u64 prog_attach_flags;
__u64 link_ids;
__u64 link_attach_flags;
__u64 revision;
} query;
struct {
__u64 name;
__u32 prog_fd;
__u64 cookie;
} raw_tracepoint;
struct {
__u64 btf;
__u64 btf_log_buf;
__u32 btf_size;
__u32 btf_log_size;
__u32 btf_log_level;
__u32 btf_log_true_size;
__u32 btf_flags;
__s32 btf_token_fd;
};
struct {
__u32 pid;
__u32 fd;
__u32 flags;
__u32 buf_len;
__u64 buf;
__u32 prog_id;
__u32 fd_type;
__u64 probe_offset;
__u64 probe_addr;
} task_fd_query;
struct {
union {
__u32 prog_fd;
__u32 map_fd;
};
union {
__u32 target_fd;
__u32 target_ifindex;
};
__u32 attach_type;
__u32 flags;
union {
__u32 target_btf_id;
struct {
__u64 iter_info;
__u32 iter_info_len;
};
struct {
__u64 bpf_cookie;
} perf_event;
struct {
__u32 flags;
__u32 cnt;
__u64 syms;
__u64 addrs;
__u64 cookies;
} kprobe_multi;
struct {
__u32 target_btf_id;
__u64 cookie;
} tracing;
struct {
__u32 pf;
__u32 hooknum;
__s32 priority;
__u32 flags;
} netfilter;
struct {
union {
__u32 relative_fd;
__u32 relative_id;
};
__u64 expected_revision;
} tcx;
struct {
__u64 path;
__u64 offsets;
__u64 ref_ctr_offsets;
__u64 cookies;
__u32 cnt;
__u32 flags;
__u32 pid;
} uprobe_multi;
struct {
union {
__u32 relative_fd;
__u32 relative_id;
};
__u64 expected_revision;
} netkit;
};
} link_create;
struct {
__u32 link_fd;
union {
__u32 new_prog_fd;
__u32 new_map_fd;
};
__u32 flags;
union {
__u32 old_prog_fd;
__u32 old_map_fd;
};
} link_update;
struct {
__u32 link_fd;
} link_detach;
struct {
__u32 type;
} enable_stats;
struct {
__u32 link_fd;
__u32 flags;
} iter_create;
struct {
__u32 prog_fd;
__u32 map_fd;
__u32 flags;
} prog_bind_map;
struct {
__u32 flags;
__u32 bpffs_fd;
} token_create;
};
struct btf_header {
__u16 magic;
__u8 version;
__u8 flags;
__u32 hdr_len;
__u32 type_off;
__u32 type_len;
__u32 str_off;
__u32 str_len;
};
struct btf_kfunc_set_tab;
struct btf_id_dtor_kfunc_tab;
struct btf_struct_metas;
struct btf_struct_ops_tab;
struct btf {
void *data;
struct btf_type **types;
u32 *resolved_ids;
u32 *resolved_sizes;
const char *strings;
void *nohdr_data;
struct btf_header hdr;
u32 nr_types;
u32 types_size;
u32 data_size;
refcount_t refcnt;
u32 id;
struct callback_head rcu;
struct btf_kfunc_set_tab *kfunc_set_tab;
struct btf_id_dtor_kfunc_tab *dtor_kfunc_tab;
struct btf_struct_metas *struct_meta_tab;
struct btf_struct_ops_tab *struct_ops_tab;
struct btf *base_btf;
u32 start_id;
u32 start_str_off;
char name[56];
bool kernel_btf;
};
struct bpf_local_storage_data;
struct bpf_local_storage {
struct bpf_local_storage_data __attribute__((btf_type_tag("rcu"))) *cache[16];
struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap;
struct hlist_head list;
void *owner;
struct callback_head rcu;
raw_spinlock_t lock;
};
struct bpf_iter_aux_info;
typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *);
typedef void (*bpf_iter_fini_seq_priv_t)(void *);
struct bpf_iter_seq_info {
const struct seq_operations *seq_ops;
bpf_iter_init_seq_priv_t init_seq_private;
bpf_iter_fini_seq_priv_t fini_seq_private;
u32 seq_priv_size;
};
enum bpf_cgroup_iter_order {
BPF_CGROUP_ITER_ORDER_UNSPEC = 0,
BPF_CGROUP_ITER_SELF_ONLY = 1,
BPF_CGROUP_ITER_DESCENDANTS_PRE = 2,
BPF_CGROUP_ITER_DESCENDANTS_POST = 3,
BPF_CGROUP_ITER_ANCESTORS_UP = 4,
};
enum bpf_iter_task_type {
BPF_TASK_ITER_ALL = 0,
BPF_TASK_ITER_TID = 1,
BPF_TASK_ITER_TGID = 2,
};
struct bpf_iter_aux_info {
struct bpf_map *map;
struct {
struct cgroup *start;
enum bpf_cgroup_iter_order order;
} cgroup;
struct {
enum bpf_iter_task_type type;
u32 pid;
} task;
};
enum btf_field_type {
BPF_SPIN_LOCK = 1,
BPF_TIMER = 2,
BPF_KPTR_UNREF = 4,
BPF_KPTR_REF = 8,
BPF_KPTR_PERCPU = 16,
BPF_KPTR = 28,
BPF_LIST_HEAD = 32,
BPF_LIST_NODE = 64,
BPF_RB_ROOT = 128,
BPF_RB_NODE = 256,
BPF_GRAPH_NODE = 320,
BPF_GRAPH_ROOT = 160,
BPF_REFCOUNT = 512,
BPF_WORKQUEUE = 1024,
};
typedef void (*btf_dtor_kfunc_t)(void *);
struct btf_field_kptr {
struct btf *btf;
struct module *module;
btf_dtor_kfunc_t dtor;
u32 btf_id;
};
struct btf_field_graph_root {
struct btf *btf;
u32 value_btf_id;
u32 node_offset;
struct btf_record *value_rec;
};
struct btf_field {
u32 offset;
u32 size;
enum btf_field_type type;
union {
struct btf_field_kptr kptr;
struct btf_field_graph_root graph_root;
};
};
struct btf_record {
u32 cnt;
u32 field_mask;
int spin_lock_off;
int timer_off;
int wq_off;
int refcount_off;
struct btf_field fields[0];
};
struct obj_cgroup {
struct percpu_ref refcnt;
struct mem_cgroup *memcg;
atomic_t nr_charged_bytes;
union {
struct list_head list;
struct callback_head rcu;
};
};
struct page_counter {
atomic_long_t usage;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad1_;
unsigned long emin;
atomic_long_t min_usage;
atomic_long_t children_min_usage;
unsigned long elow;
atomic_long_t low_usage;
atomic_long_t children_low_usage;
unsigned long watermark;
unsigned long failcnt;
struct cacheline_padding _pad2_;
unsigned long min;
unsigned long low;
unsigned long high;
unsigned long max;
struct page_counter *parent;
long: 64;
long: 64;
long: 64;
};
struct mem_cgroup_id {
int id;
refcount_t ref;
};
struct vmpressure {
unsigned long scanned;
unsigned long reclaimed;
unsigned long tree_scanned;
unsigned long tree_reclaimed;
spinlock_t sr_lock;
struct list_head events;
struct mutex events_lock;
struct work_struct work;
};
struct mem_cgroup_threshold_ary;
struct mem_cgroup_thresholds {
struct mem_cgroup_threshold_ary *primary;
struct mem_cgroup_threshold_ary *spare;
};
struct fprop_global {
struct percpu_counter events;
unsigned int period;
seqcount_t sequence;
};
struct wb_domain {
spinlock_t lock;
struct fprop_global completions;
struct timer_list period_timer;
unsigned long period_time;
unsigned long dirty_limit_tstamp;
unsigned long dirty_limit;
};
struct wb_completion {
atomic_t cnt;
wait_queue_head_t *waitq;
};
struct memcg_cgwb_frn {
u64 bdi_id;
int memcg_id;
u64 at;
struct wb_completion done;
};
struct deferred_split {
spinlock_t split_queue_lock;
struct list_head split_queue;
unsigned long split_queue_len;
};
struct memcg_vmstats;
struct memcg_vmstats_percpu;
struct mem_cgroup_per_node;
struct mem_cgroup {
struct cgroup_subsys_state css;
struct mem_cgroup_id id;
long: 64;
long: 64;
long: 64;
long: 64;
struct page_counter memory;
union {
struct page_counter swap;
struct page_counter memsw;
};
struct page_counter kmem;
struct page_counter tcpmem;
struct work_struct high_work;
unsigned long zswap_max;
bool zswap_writeback;
unsigned long soft_limit;
struct vmpressure vmpressure;
bool oom_group;
bool oom_lock;
int under_oom;
int swappiness;
int oom_kill_disable;
struct cgroup_file events_file;
struct cgroup_file events_local_file;
struct cgroup_file swap_events_file;
struct mutex thresholds_lock;
struct mem_cgroup_thresholds thresholds;
struct mem_cgroup_thresholds memsw_thresholds;
struct list_head oom_notify;
unsigned long move_charge_at_immigrate;
spinlock_t move_lock;
unsigned long move_lock_flags;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad1_;
struct memcg_vmstats *vmstats;
atomic_long_t memory_events[9];
atomic_long_t memory_events_local[9];
unsigned long socket_pressure;
bool tcpmem_active;
int tcpmem_pressure;
int kmemcg_id;
struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg;
struct obj_cgroup *orig_objcg;
struct list_head objcg_list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad2_;
atomic_t moving_account;
struct task_struct *move_lock_task;
struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu;
struct list_head cgwb_list;
struct wb_domain cgwb_domain;
struct memcg_cgwb_frn cgwb_frn[4];
struct list_head event_list;
spinlock_t event_list_lock;
struct deferred_split deferred_split_queue;
struct mem_cgroup_per_node *nodeinfo[0];
long: 64;
long: 64;
};
struct eventfd_ctx;
struct mem_cgroup_threshold {
struct eventfd_ctx *eventfd;
unsigned long threshold;
};
struct mem_cgroup_threshold_ary {
int current_threshold;
unsigned int size;
struct mem_cgroup_threshold entries[0];
};
struct memcg_vmstats_percpu {
unsigned int stats_updates;
struct memcg_vmstats_percpu *parent;
struct memcg_vmstats *vmstats;
long state[51];
unsigned long events[22];
long state_prev[51];
unsigned long events_prev[22];
unsigned long nr_page_events;
unsigned long targets[2];
};
struct zswap_lruvec_state {
atomic_long_t nr_zswap_protected;
};
struct pglist_data;
struct lruvec {
struct list_head lists[5];
spinlock_t lru_lock;
unsigned long anon_cost;
unsigned long file_cost;
atomic_long_t nonresident_age;
unsigned long refaults[2];
unsigned long flags;
struct pglist_data *pgdat;
struct zswap_lruvec_state zswap_lruvec_state;
};
struct lruvec_stats {
long state[44];
long state_local[44];
long state_pending[44];
};
struct mem_cgroup_reclaim_iter {
struct mem_cgroup *position;
unsigned int generation;
};
struct lruvec_stats_percpu;
struct shrinker_info;
struct mem_cgroup_per_node {
struct lruvec lruvec;
struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu;
struct lruvec_stats lruvec_stats;
unsigned long lru_zone_size[20];
struct mem_cgroup_reclaim_iter iter;
struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info;
struct rb_node tree_node;
unsigned long usage_in_excess;
bool on_tree;
struct mem_cgroup *memcg;
};
struct free_area {
struct list_head free_list[4];
unsigned long nr_free;
};
struct per_cpu_pages;
struct per_cpu_zonestat;
struct zone {
unsigned long _watermark[4];
unsigned long watermark_boost;
unsigned long nr_reserved_highatomic;
long lowmem_reserve[4];
int node;
struct pglist_data *zone_pgdat;
struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset;
struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats;
int pageset_high_min;
int pageset_high_max;
int pageset_batch;
unsigned long zone_start_pfn;
atomic_long_t managed_pages;
unsigned long spanned_pages;
unsigned long present_pages;
const char *name;
int initialized;
long: 64;
long: 64;
struct cacheline_padding _pad1_;
struct free_area free_area[11];
unsigned long flags;
spinlock_t lock;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad2_;
unsigned long percpu_drift_mark;
unsigned long compact_cached_free_pfn;
unsigned long compact_cached_migrate_pfn[2];
unsigned long compact_init_migrate_pfn;
unsigned long compact_init_free_pfn;
unsigned int compact_considered;
unsigned int compact_defer_shift;
int compact_order_failed;
bool compact_blockskip_flush;
bool contiguous;
long: 0;
struct cacheline_padding _pad3_;
atomic_long_t vm_stat[10];
atomic_long_t vm_numa_event[6];
};
struct zoneref {
struct zone *zone;
int zone_idx;
};
struct zonelist {
struct zoneref _zonerefs[4097];
};
enum zone_type {
ZONE_DMA = 0,
ZONE_DMA32 = 1,
ZONE_NORMAL = 2,
ZONE_MOVABLE = 3,
__MAX_NR_ZONES = 4,
};
struct per_cpu_nodestat;
struct memory_tier;
struct pglist_data {
struct zone node_zones[4];
struct zonelist node_zonelists[2];
int nr_zones;
unsigned long node_start_pfn;
unsigned long node_present_pages;
unsigned long node_spanned_pages;
int node_id;
wait_queue_head_t kswapd_wait;
wait_queue_head_t pfmemalloc_wait;
wait_queue_head_t reclaim_wait[4];
atomic_t nr_writeback_throttled;
unsigned long nr_reclaim_start;
struct task_struct *kswapd;
int kswapd_order;
enum zone_type kswapd_highest_zoneidx;
int kswapd_failures;
int kcompactd_max_order;
enum zone_type kcompactd_highest_zoneidx;
wait_queue_head_t kcompactd_wait;
struct task_struct *kcompactd;
bool proactive_compact_trigger;
unsigned long totalreserve_pages;
unsigned long min_unmapped_pages;
unsigned long min_slab_pages;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cacheline_padding _pad1_;
struct deferred_split deferred_split_queue;
struct lruvec __lruvec;
unsigned long flags;
long: 64;
long: 64;
struct cacheline_padding _pad2_;
struct per_cpu_nodestat __attribute__((btf_type_tag("percpu"))) *per_cpu_nodestats;
atomic_long_t vm_stat[44];
struct memory_tier __attribute__((btf_type_tag("rcu"))) *memtier;
long: 64;
long: 64;
};
struct per_cpu_pages {
spinlock_t lock;
int count;
int high;
int high_min;
int high_max;
int batch;
u8 flags;
u8 alloc_factor;
u8 expire;
short free_count;
struct list_head lists[13];
long: 64;
long: 64;
};
typedef signed char __s8;
typedef __s8 s8;
struct per_cpu_zonestat {
s8 vm_stat_diff[10];
s8 stat_threshold;
unsigned long vm_numa_event[6];
};
struct per_cpu_nodestat {
s8 stat_threshold;
s8 vm_node_stat_diff[44];
};
enum dl_dev_state {
DL_DEV_NO_DRIVER = 0,
DL_DEV_PROBING = 1,
DL_DEV_DRIVER_BOUND = 2,
DL_DEV_UNBINDING = 3,
};
struct dev_links_info {
struct list_head suppliers;
struct list_head consumers;
struct list_head defer_sync;
enum dl_dev_state status;
};
struct pm_message {
int event;
};
typedef struct pm_message pm_message_t;
enum rpm_request {
RPM_REQ_NONE = 0,
RPM_REQ_IDLE = 1,
RPM_REQ_SUSPEND = 2,
RPM_REQ_AUTOSUSPEND = 3,
RPM_REQ_RESUME = 4,
};
enum rpm_status {
RPM_INVALID = -1,
RPM_ACTIVE = 0,
RPM_RESUMING = 1,
RPM_SUSPENDED = 2,
RPM_SUSPENDING = 3,
};
struct wakeup_source;
struct wake_irq;
struct pm_subsys_data;
struct device;
struct dev_pm_qos;
struct dev_pm_info {
pm_message_t power_state;
bool can_wakeup: 1;
bool async_suspend: 1;
bool in_dpm_list: 1;
bool is_prepared: 1;
bool is_suspended: 1;
bool is_noirq_suspended: 1;
bool is_late_suspended: 1;
bool no_pm: 1;
bool early_init: 1;
bool direct_complete: 1;
u32 driver_flags;
spinlock_t lock;
struct list_head entry;
struct completion completion;
struct wakeup_source *wakeup;
bool wakeup_path: 1;
bool syscore: 1;
bool no_pm_callbacks: 1;
bool async_in_progress: 1;
bool must_resume: 1;
bool may_skip_resume: 1;
struct hrtimer suspend_timer;
u64 timer_expires;
struct work_struct work;
wait_queue_head_t wait_queue;
struct wake_irq *wakeirq;
atomic_t usage_count;
atomic_t child_count;
unsigned int disable_depth: 3;
bool idle_notification: 1;
bool request_pending: 1;
bool deferred_resume: 1;
bool needs_force_resume: 1;
bool runtime_auto: 1;
bool ignore_children: 1;
bool no_callbacks: 1;
bool irq_safe: 1;
bool use_autosuspend: 1;
bool timer_autosuspends: 1;
bool memalloc_noio: 1;
unsigned int links_count;
enum rpm_request request;
enum rpm_status runtime_status;
enum rpm_status last_status;
int runtime_error;
int autosuspend_delay;
u64 last_busy;
u64 active_time;
u64 suspended_time;
u64 accounting_timestamp;
struct pm_subsys_data *subsys_data;
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
};
struct irq_domain;
struct msi_device_data;
struct dev_msi_info {
struct irq_domain *domain;
struct msi_device_data *data;
};
struct dev_archdata {};
struct dev_iommu;
enum device_removable {
DEVICE_REMOVABLE_NOT_SUPPORTED = 0,
DEVICE_REMOVABLE_UNKNOWN = 1,
DEVICE_FIXED = 2,
DEVICE_REMOVABLE = 3,
};
struct device_private;
struct device_type;
struct bus_type;
struct device_driver;
struct dev_pm_domain;
struct bus_dma_region;
struct device_dma_parameters;
struct io_tlb_mem;
struct device_node;
struct fwnode_handle;
struct class;
struct iommu_group;
struct device_physical_location;
struct device {
struct kobject kobj;
struct device *parent;
struct device_private *p;
const char *init_name;
const struct device_type *type;
const struct bus_type *bus;
struct device_driver *driver;
void *platform_data;
void *driver_data;
struct mutex mutex;
struct dev_links_info links;
struct dev_pm_info power;
struct dev_pm_domain *pm_domain;
struct dev_msi_info msi;
u64 *dma_mask;
u64 coherent_dma_mask;
u64 bus_dma_limit;
const struct bus_dma_region *dma_range_map;
struct device_dma_parameters *dma_parms;
struct list_head dma_pools;
struct io_tlb_mem *dma_io_tlb_mem;
struct dev_archdata archdata;
struct device_node *of_node;
struct fwnode_handle *fwnode;
int numa_node;
dev_t devt;
u32 id;
spinlock_t devres_lock;
struct list_head devres_head;
const struct class *class;
const struct attribute_group **groups;
void (*release)(struct device *);
struct iommu_group *iommu_group;
struct dev_iommu *iommu;
struct device_physical_location *physical_location;
enum device_removable removable;
bool offline_disabled: 1;
bool offline: 1;
bool of_node_reused: 1;
bool state_synced: 1;
bool can_match: 1;
};
struct memory_tier {
struct list_head list;
struct list_head memory_types;
int adistance_start;
struct device dev;
nodemask_t lower_tier_mask;
};
struct lruvec_stats_percpu {
long state[44];
long state_prev[44];
};
struct shrinker_info_unit;
struct shrinker_info {
struct callback_head rcu;
int map_nr_max;
struct shrinker_info_unit *unit[0];
};
struct shrinker_info_unit {
atomic_long_t nr_deferred[64];
unsigned long map[1];
};
struct bpf_prog_ops {
int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *);
};
struct btf_mod_pair {
struct btf *btf;
struct module *module;
};
struct ratelimit_state {
raw_spinlock_t lock;
int interval;
int burst;
int printed;
int missed;
unsigned long begin;
unsigned long flags;
};
struct user_struct {
refcount_t __count;
struct percpu_counter epoll_watches;
unsigned long unix_inflight;
atomic_long_t pipe_bufs;
struct hlist_node uidhash_node;
kuid_t uid;
atomic_long_t locked_vm;
struct ratelimit_state ratelimit;
};
struct bpf_token {
struct work_struct work;
atomic64_t refcnt;
struct user_namespace *userns;
u64 allowed_cmds;
u64 allowed_maps;
u64 allowed_progs;
u64 allowed_attachs;
};
struct uid_gid_extent {
u32 first;
u32 lower_first;
u32 count;
};
struct uid_gid_map {
u32 nr_extents;
union {
struct uid_gid_extent extent[5];
struct {
struct uid_gid_extent *forward;
struct uid_gid_extent *reverse;
};
};
};
struct ctl_table;
struct ctl_table_root;
struct ctl_table_set;
struct ctl_dir;
struct ctl_node;
struct ctl_table_header {
union {
struct {
struct ctl_table *ctl_table;
int ctl_table_size;
int used;
int count;
int nreg;
};
struct callback_head rcu;
};
struct completion *unregistering;
struct ctl_table *ctl_table_arg;
struct ctl_table_root *root;
struct ctl_table_set *set;
struct ctl_dir *parent;
struct ctl_node *node;
struct hlist_head inodes;
};
struct ctl_dir {
struct ctl_table_header header;
struct rb_root root;
};
struct ctl_table_set {
int (*is_seen)(struct ctl_table_set *);
struct ctl_dir dir;
};
struct binfmt_misc;
struct user_namespace {
struct uid_gid_map uid_map;
struct uid_gid_map gid_map;
struct uid_gid_map projid_map;
struct user_namespace *parent;
int level;
kuid_t owner;
kgid_t group;
struct ns_common ns;
unsigned long flags;
bool parent_could_setfcap;
struct list_head keyring_name_list;
struct key *user_keyring_register;
struct rw_semaphore keyring_sem;
struct work_struct work;
struct ctl_table_set set;
struct ctl_table_header *sysctls;
struct ucounts *ucounts;
long ucount_max[10];
long rlimit_max[4];
struct binfmt_misc *binfmt_misc;
};
struct nsset;
struct proc_ns_operations {
const char *name;
const char *real_ns_name;
int type;
struct ns_common * (*get)(struct task_struct *);
void (*put)(struct ns_common *);
int (*install)(struct nsset *, struct ns_common *);
struct user_namespace * (*owner)(struct ns_common *);
struct ns_common * (*get_parent)(struct ns_common *);
};
struct key_type;
struct key_tag;
struct keyring_index_key {
unsigned long hash;
union {
struct {
u16 desc_len;
char desc[6];
};
unsigned long x;
};
struct key_type *type;
struct key_tag *domain_tag;
const char *description;
};
struct assoc_array_ptr;
struct assoc_array {
struct assoc_array_ptr *root;
unsigned long nr_leaves_on_tree;
};
union key_payload {
void __attribute__((btf_type_tag("rcu"))) *rcu_data0;
void *data[4];
};
typedef s32 int32_t;
typedef int32_t key_serial_t;
typedef u32 uint32_t;
typedef uint32_t key_perm_t;
struct key_user;
struct key_restriction;
struct key {
refcount_t usage;
key_serial_t serial;
union {
struct list_head graveyard_link;
struct rb_node serial_node;
};
struct rw_semaphore sem;
struct key_user *user;
void *security;
union {
time64_t expiry;
time64_t revoked_at;
};
time64_t last_used_at;
kuid_t uid;
kgid_t gid;
key_perm_t perm;
unsigned short quotalen;
unsigned short datalen;
short state;
unsigned long flags;
union {
struct keyring_index_key index_key;
struct {
unsigned long hash;
unsigned long len_desc;
struct key_type *type;
struct key_tag *domain_tag;
char *description;
};
};
union {
union key_payload payload;
struct {
struct list_head name_link;
struct assoc_array keys;
};
};
struct key_restriction *restrict_link;
};
struct key_tag {
struct callback_head rcu;
refcount_t usage;
bool removed;
};
typedef int (*key_restrict_link_func_t)(struct key *, const struct key_type *, const union key_payload *, struct key *);
struct key_restriction {
key_restrict_link_func_t check;
struct key *key;
struct key_type *keytype;
};
typedef int (*request_key_actor_t)(struct key *, void *);
struct key_preparsed_payload;
struct key_match_data;
struct kernel_pkey_params;
struct kernel_pkey_query;
struct key_type {
const char *name;
size_t def_datalen;
unsigned int flags;
int (*vet_description)(const char *);
int (*preparse)(struct key_preparsed_payload *);
void (*free_preparse)(struct key_preparsed_payload *);
int (*instantiate)(struct key *, struct key_preparsed_payload *);
int (*update)(struct key *, struct key_preparsed_payload *);
int (*match_preparse)(struct key_match_data *);
void (*match_free)(struct key_match_data *);
void (*revoke)(struct key *);
void (*destroy)(struct key *);
void (*describe)(const struct key *, struct seq_file *);
long (*read)(const struct key *, char *, size_t);
request_key_actor_t request_key;
struct key_restriction * (*lookup_restriction)(const char *);
int (*asym_query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
int (*asym_eds_op)(struct kernel_pkey_params *, const void *, void *);
int (*asym_verify_signature)(struct kernel_pkey_params *, const void *, const void *);
struct list_head link;
struct lock_class_key lock_class;
};
typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *);
struct ctl_table_poll;
struct ctl_table {
const char *procname;
void *data;
int maxlen;
umode_t mode;
enum {
SYSCTL_TABLE_TYPE_DEFAULT = 0,
SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1,
} type;
proc_handler *proc_handler;
struct ctl_table_poll *poll;
void *extra1;
void *extra2;
};
struct ctl_table_poll {
atomic_t event;
wait_queue_head_t wait;
};
struct ctl_table_root {
struct ctl_table_set default_set;
struct ctl_table_set * (*lookup)(struct ctl_table_root *);
void (*set_ownership)(struct ctl_table_header *, struct ctl_table *, kuid_t *, kgid_t *);
int (*permissions)(struct ctl_table_header *, struct ctl_table *);
};
struct ctl_node {
struct rb_node node;
struct ctl_table_header *header;
};
struct ucounts {
struct hlist_node node;
struct user_namespace *ns;
kuid_t uid;
atomic_t count;
atomic_long_t ucount[10];
atomic_long_t rlimit[4];
};
struct net_device;
struct bpf_offload_dev;
struct bpf_prog_offload {
struct bpf_prog *prog;
struct net_device *netdev;
struct bpf_offload_dev *offdev;
void *dev_priv;
struct list_head offloads;
bool dev_state;
bool opt_failed;
void *jited_image;
u32 jited_len;
};
struct bpf_func_info {
__u32 insn_off;
__u32 type_id;
};
struct bpf_func_info_aux {
u16 linkage;
bool unreliable;
bool called: 1;
bool verified: 1;
};
struct bpf_line_info {
__u32 insn_off;
__u32 file_name_off;
__u32 line_off;
__u32 line_col;
};
struct exception_table_entry {
int insn;
int fixup;
int data;
};
enum rq_onoff_reason {
RQ_ONOFF_HOTPLUG = 0,
RQ_ONOFF_TOPOLOGY = 1,
};
struct rq_flags;
struct affinity_context;
struct sched_class {
void (*enqueue_task)(struct rq *, struct task_struct *, int);
void (*dequeue_task)(struct rq *, struct task_struct *, int);
void (*yield_task)(struct rq *);
bool (*yield_to_task)(struct rq *, struct task_struct *);
void (*wakeup_preempt)(struct rq *, struct task_struct *, int);
struct task_struct * (*pick_next_task)(struct rq *);
void (*put_prev_task)(struct rq *, struct task_struct *);
void (*set_next_task)(struct rq *, struct task_struct *, bool);
int (*balance)(struct rq *, struct task_struct *, struct rq_flags *);
int (*select_task_rq)(struct task_struct *, int, int);
struct task_struct * (*pick_task)(struct rq *);
void (*migrate_task_rq)(struct task_struct *, int);
void (*task_woken)(struct rq *, struct task_struct *);
void (*set_cpus_allowed)(struct task_struct *, struct affinity_context *);
void (*rq_online)(struct rq *, enum rq_onoff_reason);
void (*rq_offline)(struct rq *, enum rq_onoff_reason);
struct rq * (*find_lock_rq)(struct task_struct *, struct rq *);
void (*task_tick)(struct rq *, struct task_struct *, int);
void (*task_fork)(struct task_struct *);
void (*task_dead)(struct task_struct *);
void (*switching_to)(struct rq *, struct task_struct *);
void (*switched_from)(struct rq *, struct task_struct *);
void (*switched_to)(struct rq *, struct task_struct *);
void (*reweight_task)(struct rq *, struct task_struct *, int);
void (*prio_changed)(struct rq *, struct task_struct *, int);
unsigned int (*get_rr_interval)(struct rq *, struct task_struct *);
void (*update_curr)(struct rq *);
void (*task_change_group)(struct task_struct *);
};
typedef long long __kernel_time64_t;
struct __kernel_timespec {
__kernel_time64_t tv_sec;
long long tv_nsec;
};
typedef s32 old_time32_t;
struct old_timespec32 {
old_time32_t tv_sec;
s32 tv_nsec;
};
struct pollfd {
int fd;
short events;
short revents;
};
typedef struct {
u64 val;
} kernel_cap_t;
struct group_info;
struct cred {
atomic_long_t usage;
kuid_t uid;
kgid_t gid;
kuid_t suid;
kgid_t sgid;
kuid_t euid;
kgid_t egid;
kuid_t fsuid;
kgid_t fsgid;
unsigned int securebits;
kernel_cap_t cap_inheritable;
kernel_cap_t cap_permitted;
kernel_cap_t cap_effective;
kernel_cap_t cap_bset;
kernel_cap_t cap_ambient;
unsigned char jit_keyring;
struct key *session_keyring;
struct key *process_keyring;
struct key *thread_keyring;
struct key *request_key_auth;
struct user_struct *user;
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct group_info *group_info;
union {
int non_rcu;
struct callback_head rcu;
};
};
struct group_info {
refcount_t usage;
int ngroups;
kgid_t gid[0];
};
struct uts_namespace;
struct ipc_namespace;
struct mnt_namespace;
struct net;
struct time_namespace;
struct cgroup_namespace;
struct nsproxy {
refcount_t count;
struct uts_namespace *uts_ns;
struct ipc_namespace *ipc_ns;
struct mnt_namespace *mnt_ns;
struct pid_namespace *pid_ns_for_children;
struct net *net_ns;
struct time_namespace *time_ns;
struct time_namespace *time_ns_for_children;
struct cgroup_namespace *cgroup_ns;
};
struct new_utsname {
char sysname[65];
char nodename[65];
char release[65];
char version[65];
char machine[65];
char domainname[65];
};
struct uts_namespace {
struct new_utsname name;
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct ns_common ns;
};
struct cgroup_namespace {
struct ns_common ns;
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct css_set *root_cset;
};
struct cpu_itimer {
u64 expires;
u64 incr;
};
struct task_cputime_atomic {
atomic64_t utime;
atomic64_t stime;
atomic64_t sum_exec_runtime;
};
struct thread_group_cputimer {
struct task_cputime_atomic cputime_atomic;
};
typedef struct {
seqcount_spinlock_t seqcount;
spinlock_t lock;
} seqlock_t;
struct rlimit {
__kernel_ulong_t rlim_cur;
__kernel_ulong_t rlim_max;
};
struct pacct_struct {
int ac_flag;
long ac_exitcode;
unsigned long ac_mem;
u64 ac_utime;
u64 ac_stime;
unsigned long ac_minflt;
unsigned long ac_majflt;
};
struct core_state;
struct tty_struct;
struct taskstats;
struct signal_struct {
refcount_t sigcnt;
atomic_t live;
int nr_threads;
int quick_threads;
struct list_head thread_head;
wait_queue_head_t wait_chldexit;
struct task_struct *curr_target;
struct sigpending shared_pending;
struct hlist_head multiprocess;
int group_exit_code;
int notify_count;
struct task_struct *group_exec_task;
int group_stop_count;
unsigned int flags;
struct core_state *core_state;
unsigned int is_child_subreaper: 1;
unsigned int has_child_subreaper: 1;
unsigned int next_posix_timer_id;
struct list_head posix_timers;
struct hrtimer real_timer;
ktime_t it_real_incr;
struct cpu_itimer it[2];
struct thread_group_cputimer cputimer;
struct posix_cputimers posix_cputimers;
struct pid *pids[4];
atomic_t tick_dep_mask;
struct pid *tty_old_pgrp;
int leader;
struct tty_struct *tty;
seqlock_t stats_lock;
u64 utime;
u64 stime;
u64 cutime;
u64 cstime;
u64 gtime;
u64 cgtime;
struct prev_cputime prev_cputime;
unsigned long nvcsw;
unsigned long nivcsw;
unsigned long cnvcsw;
unsigned long cnivcsw;
unsigned long min_flt;
unsigned long maj_flt;
unsigned long cmin_flt;
unsigned long cmaj_flt;
unsigned long inblock;
unsigned long oublock;
unsigned long cinblock;
unsigned long coublock;
unsigned long maxrss;
unsigned long cmaxrss;
struct task_io_accounting ioac;
unsigned long long sum_sched_runtime;
struct rlimit rlim[16];
struct pacct_struct pacct;
struct taskstats *stats;
bool oom_flag_origin;
short oom_score_adj;
short oom_score_adj_min;
struct mm_struct *oom_mm;
struct mutex cred_guard_mutex;
struct rw_semaphore exec_update_lock;
};
struct core_thread {
struct task_struct *task;
struct core_thread *next;
};
struct core_state {
atomic_t nr_threads;
struct core_thread dumper;
struct completion startup;
};
struct taskstats {
__u16 version;
__u32 ac_exitcode;
__u8 ac_flag;
__u8 ac_nice;
__u64 cpu_count;
__u64 cpu_delay_total;
__u64 blkio_count;
__u64 blkio_delay_total;
__u64 swapin_count;
__u64 swapin_delay_total;
__u64 cpu_run_real_total;
__u64 cpu_run_virtual_total;
char ac_comm[32];
__u8 ac_sched;
__u8 ac_pad[3];
long: 0;
__u32 ac_uid;
__u32 ac_gid;
__u32 ac_pid;
__u32 ac_ppid;
__u32 ac_btime;
__u64 ac_etime;
__u64 ac_utime;
__u64 ac_stime;
__u64 ac_minflt;
__u64 ac_majflt;
__u64 coremem;
__u64 virtmem;
__u64 hiwater_rss;
__u64 hiwater_vm;
__u64 read_char;
__u64 write_char;
__u64 read_syscalls;
__u64 write_syscalls;
__u64 read_bytes;
__u64 write_bytes;
__u64 cancelled_write_bytes;
__u64 nvcsw;
__u64 nivcsw;
__u64 ac_utimescaled;
__u64 ac_stimescaled;
__u64 cpu_scaled_run_real_total;
__u64 freepages_count;
__u64 freepages_delay_total;
__u64 thrashing_count;
__u64 thrashing_delay_total;
__u64 ac_btime64;
__u64 compact_count;
__u64 compact_delay_total;
__u32 ac_tgid;
__u64 ac_tgetime;
__u64 ac_exe_dev;
__u64 ac_exe_inode;
__u64 wpcopy_count;
__u64 wpcopy_delay_total;
__u64 irq_count;
__u64 irq_delay_total;
};
typedef void __signalfn_t(int);
typedef __signalfn_t __attribute__((btf_type_tag("user"))) *__sighandler_t;
typedef void __restorefn_t();
typedef __restorefn_t __attribute__((btf_type_tag("user"))) *__sigrestore_t;
struct sigaction {
__sighandler_t sa_handler;
unsigned long sa_flags;
__sigrestore_t sa_restorer;
sigset_t sa_mask;
};
struct k_sigaction {
struct sigaction sa;
};
struct sighand_struct {
spinlock_t siglock;
refcount_t count;
wait_queue_head_t signalfd_wqh;
struct k_sigaction action[64];
};
struct bio;
struct bio_list {
struct bio *head;
struct bio *tail;
};
typedef __u32 blk_opf_t;
typedef u8 blk_status_t;
typedef u64 sector_t;
struct bvec_iter {
sector_t bi_sector;
unsigned int bi_size;
unsigned int bi_idx;
unsigned int bi_bvec_done;
} __attribute__((packed));
typedef unsigned int blk_qc_t;
typedef void bio_end_io_t(struct bio *);
struct bio_issue {
u64 value;
};
struct bio_vec {
struct page *bv_page;
unsigned int bv_len;
unsigned int bv_offset;
};
struct blkcg_gq;
struct bio_set;
struct bio {
struct bio *bi_next;
struct block_device *bi_bdev;
blk_opf_t bi_opf;
unsigned short bi_flags;
unsigned short bi_ioprio;
enum rw_hint bi_write_hint;
blk_status_t bi_status;
atomic_t __bi_remaining;
struct bvec_iter bi_iter;
blk_qc_t bi_cookie;
bio_end_io_t *bi_end_io;
void *bi_private;
struct blkcg_gq *bi_blkg;
struct bio_issue bi_issue;
u64 bi_iocost_cost;
union {};
unsigned short bi_vcnt;
unsigned short bi_max_vecs;
atomic_t __bi_cnt;
struct bio_vec *bi_io_vec;
struct bio_set *bi_pool;
struct bio_vec bi_inline_vecs[0];
};
struct request_queue;
struct disk_stats;
struct blk_holder_ops;
struct partition_meta_info;
struct block_device {
sector_t bd_start_sect;
sector_t bd_nr_sectors;
struct gendisk *bd_disk;
struct request_queue *bd_queue;
struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats;
unsigned long bd_stamp;
bool bd_read_only;
u8 bd_partno;
bool bd_write_holder;
bool bd_has_submit_bio;
dev_t bd_dev;
struct inode *bd_inode;
atomic_t bd_openers;
spinlock_t bd_size_lock;
void *bd_claiming;
void *bd_holder;
const struct blk_holder_ops *bd_holder_ops;
struct mutex bd_holder_lock;
int bd_holders;
struct kobject *bd_holder_dir;
atomic_t bd_fsfreeze_count;
struct mutex bd_fsfreeze_mutex;
struct partition_meta_info *bd_meta_info;
bool bd_ro_warned;
int bd_writers;
struct device bd_device;
};
struct disk_stats {
u64 nsecs[4];
unsigned long sectors[4];
unsigned long ios[4];
unsigned long merges[4];
unsigned long io_ticks;
local_t in_flight[2];
};
struct blk_holder_ops {
void (*mark_dead)(struct block_device *, bool);
void (*sync)(struct block_device *);
int (*freeze)(struct block_device *);
int (*thaw)(struct block_device *);
void (*get_holder)(void *);
void (*put_holder)(void *);
};
struct dev_pm_ops;
struct device_type {
const char *name;
const struct attribute_group **groups;
int (*uevent)(const struct device *, struct kobj_uevent_env *);
char * (*devnode)(const struct device *, umode_t *, kuid_t *, kgid_t *);
void (*release)(struct device *);
const struct dev_pm_ops *pm;
};
struct dev_pm_ops {
int (*prepare)(struct device *);
void (*complete)(struct device *);
int (*suspend)(struct device *);
int (*resume)(struct device *);
int (*freeze)(struct device *);
int (*thaw)(struct device *);
int (*poweroff)(struct device *);
int (*restore)(struct device *);
int (*suspend_late)(struct device *);
int (*resume_early)(struct device *);
int (*freeze_late)(struct device *);
int (*thaw_early)(struct device *);
int (*poweroff_late)(struct device *);
int (*restore_early)(struct device *);
int (*suspend_noirq)(struct device *);
int (*resume_noirq)(struct device *);
int (*freeze_noirq)(struct device *);
int (*thaw_noirq)(struct device *);
int (*poweroff_noirq)(struct device *);
int (*restore_noirq)(struct device *);
int (*runtime_suspend)(struct device *);
int (*runtime_resume)(struct device *);
int (*runtime_idle)(struct device *);
};
struct bus_type {
const char *name;
const char *dev_name;
const struct attribute_group **bus_groups;
const struct attribute_group **dev_groups;
const struct attribute_group **drv_groups;
int (*match)(struct device *, struct device_driver *);
int (*uevent)(const struct device *, struct kobj_uevent_env *);
int (*probe)(struct device *);
void (*sync_state)(struct device *);
void (*remove)(struct device *);
void (*shutdown)(struct device *);
int (*online)(struct device *);
int (*offline)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
int (*num_vf)(struct device *);
int (*dma_configure)(struct device *);
void (*dma_cleanup)(struct device *);
const struct dev_pm_ops *pm;
bool need_parent_lock;
};
enum probe_type {
PROBE_DEFAULT_STRATEGY = 0,
PROBE_PREFER_ASYNCHRONOUS = 1,
PROBE_FORCE_SYNCHRONOUS = 2,
};
struct of_device_id;
struct acpi_device_id;
struct driver_private;
struct device_driver {
const char *name;
const struct bus_type *bus;
struct module *owner;
const char *mod_name;
bool suppress_bind_attrs;
enum probe_type probe_type;
const struct of_device_id *of_match_table;
const struct acpi_device_id *acpi_match_table;
int (*probe)(struct device *);
void (*sync_state)(struct device *);
int (*remove)(struct device *);
void (*shutdown)(struct device *);
int (*suspend)(struct device *, pm_message_t);
int (*resume)(struct device *);
const struct attribute_group **groups;
const struct attribute_group **dev_groups;
const struct dev_pm_ops *pm;
void (*coredump)(struct device *);
struct driver_private *p;
};
struct of_device_id {
char name[32];
char type[32];
char compatible[128];
const void *data;
};
typedef unsigned long kernel_ulong_t;
struct acpi_device_id {
__u8 id[16];
kernel_ulong_t driver_data;
__u32 cls;
__u32 cls_msk;
};
struct wakeup_source {
const char *name;
int id;
struct list_head entry;
spinlock_t lock;
struct wake_irq *wakeirq;
struct timer_list timer;
unsigned long timer_expires;
ktime_t total_time;
ktime_t max_time;
ktime_t last_time;
ktime_t start_prevent_time;
ktime_t prevent_sleep_time;
unsigned long event_count;
unsigned long active_count;
unsigned long relax_count;
unsigned long expire_count;
unsigned long wakeup_count;
struct device *dev;
bool active: 1;
bool autosleep_enabled: 1;
};
struct pm_subsys_data {
spinlock_t lock;
unsigned int refcount;
unsigned int clock_op_might_sleep;
struct mutex clock_mutex;
struct list_head clock_list;
};
struct dev_pm_domain {
struct dev_pm_ops ops;
int (*start)(struct device *);
void (*detach)(struct device *, bool);
int (*activate)(struct device *);
void (*sync)(struct device *);
void (*dismiss)(struct device *);
int (*set_performance_state)(struct device *, unsigned int);
};
typedef u64 phys_addr_t;
typedef u64 dma_addr_t;
struct bus_dma_region {
phys_addr_t cpu_start;
dma_addr_t dma_start;
u64 size;
};
struct device_dma_parameters {
unsigned int max_segment_size;
unsigned int min_align_mask;
unsigned long segment_boundary_mask;
};
struct class {
const char *name;
const struct attribute_group **class_groups;
const struct attribute_group **dev_groups;
int (*dev_uevent)(const struct device *, struct kobj_uevent_env *);
char * (*devnode)(const struct device *, umode_t *);
void (*class_release)(const struct class *);
void (*dev_release)(struct device *);
int (*shutdown_pre)(struct device *);
const struct kobj_ns_type_operations *ns_type;
const void * (*namespace)(const struct device *);
void (*get_ownership)(const struct device *, kuid_t *, kgid_t *);
const struct dev_pm_ops *pm;
};
enum kobj_ns_type {
KOBJ_NS_TYPE_NONE = 0,
KOBJ_NS_TYPE_NET = 1,
KOBJ_NS_TYPES = 2,
};
struct sock;
struct kobj_ns_type_operations {
enum kobj_ns_type type;
bool (*current_may_mount)();
void * (*grab_current_ns)();
const void * (*netlink_ns)(struct sock *);
const void * (*initial_ns)();
void (*drop_ns)(void *);
};
enum device_physical_location_panel {
DEVICE_PANEL_TOP = 0,
DEVICE_PANEL_BOTTOM = 1,
DEVICE_PANEL_LEFT = 2,
DEVICE_PANEL_RIGHT = 3,
DEVICE_PANEL_FRONT = 4,
DEVICE_PANEL_BACK = 5,
DEVICE_PANEL_UNKNOWN = 6,
};
enum device_physical_location_vertical_position {
DEVICE_VERT_POS_UPPER = 0,
DEVICE_VERT_POS_CENTER = 1,
DEVICE_VERT_POS_LOWER = 2,
};
enum device_physical_location_horizontal_position {
DEVICE_HORI_POS_LEFT = 0,
DEVICE_HORI_POS_CENTER = 1,
DEVICE_HORI_POS_RIGHT = 2,
};
struct device_physical_location {
enum device_physical_location_panel panel;
enum device_physical_location_vertical_position vertical_position;
enum device_physical_location_horizontal_position horizontal_position;
bool dock;
bool lid;
};
typedef void *mempool_alloc_t(gfp_t, void *);
typedef void mempool_free_t(void *, void *);
struct mempool_s {
spinlock_t lock;
int min_nr;
int curr_nr;
void **elements;
void *pool_data;
mempool_alloc_t *alloc;
mempool_free_t *free;
wait_queue_head_t wait;
};
typedef struct mempool_s mempool_t;
struct bio_alloc_cache;
struct bio_set {
struct kmem_cache *bio_slab;
unsigned int front_pad;
struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache;
mempool_t bio_pool;
mempool_t bvec_pool;
unsigned int back_pad;
spinlock_t rescue_lock;
struct bio_list rescue_list;
struct work_struct rescue_work;
struct workqueue_struct *rescue_workqueue;
struct hlist_node cpuhp_dead;
};
struct bio_alloc_cache {
struct bio *free_list;
struct bio *free_list_irq;
unsigned int nr;
unsigned int nr_irq;
};
struct io_cq;
struct io_context {
atomic_long_t refcount;
atomic_t active_ref;
unsigned short ioprio;
spinlock_t lock;
struct xarray icq_tree;
struct io_cq __attribute__((btf_type_tag("rcu"))) *icq_hint;
struct hlist_head icq_list;
struct work_struct release_work;
};
struct io_cq {
struct request_queue *q;
struct io_context *ioc;
union {
struct list_head q_node;
struct kmem_cache *__rcu_icq_cache;
};
union {
struct hlist_node ioc_node;
struct callback_head __rcu_head;
};
unsigned int flags;
};
typedef int __kernel_timer_t;
union sigval {
int sival_int;
void __attribute__((btf_type_tag("user"))) *sival_ptr;
};
typedef union sigval sigval_t;
typedef __kernel_long_t __kernel_clock_t;
union __sifields {
struct {
__kernel_pid_t _pid;
__kernel_uid32_t _uid;
} _kill;
struct {
__kernel_timer_t _tid;
int _overrun;
sigval_t _sigval;
int _sys_private;
} _timer;
struct {
__kernel_pid_t _pid;
__kernel_uid32_t _uid;
sigval_t _sigval;
} _rt;
struct {
__kernel_pid_t _pid;
__kernel_uid32_t _uid;
int _status;
__kernel_clock_t _utime;
__kernel_clock_t _stime;
} _sigchld;
struct {
void __attribute__((btf_type_tag("user"))) *_addr;
union {
int _trapno;
short _addr_lsb;
struct {
char _dummy_bnd[8];
void __attribute__((btf_type_tag("user"))) *_lower;
void __attribute__((btf_type_tag("user"))) *_upper;
} _addr_bnd;
struct {
char _dummy_pkey[8];
__u32 _pkey;
} _addr_pkey;
struct {
unsigned long _data;
__u32 _type;
__u32 _flags;
} _perf;
};
} _sigfault;
struct {
long _band;
int _fd;
} _sigpoll;
struct {
void __attribute__((btf_type_tag("user"))) *_call_addr;
int _syscall;
unsigned int _arch;
} _sigsys;
};
struct kernel_siginfo {
struct {
int si_signo;
int si_errno;
int si_code;
union __sifields _sifields;
};
};
struct robust_list {
struct robust_list __attribute__((btf_type_tag("user"))) *next;
};
struct robust_list_head {
struct robust_list list;
long futex_offset;
struct robust_list __attribute__((btf_type_tag("user"))) *list_op_pending;
};
struct perf_event_groups {
struct rb_root tree;
u64 index;
};
struct perf_event_context {
raw_spinlock_t lock;
struct mutex mutex;
struct list_head pmu_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
int nr_events;
int nr_user;
int is_active;
int nr_task_data;
int nr_stat;
int nr_freq;
int rotate_disable;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
struct callback_head callback_head;
local_t nr_pending;
};
struct rseq {
__u32 cpu_id_start;
__u32 cpu_id;
__u64 rseq_cs;
__u32 flags;
__u32 node_id;
__u32 mm_cid;
char end[0];
};
struct ftrace_ret_stack {
unsigned long ret;
unsigned long func;
unsigned long long calltime;
unsigned long *retp;
};
struct arch_uprobe_task {
unsigned long saved_scratch_register;
unsigned int saved_trap_nr;
unsigned int saved_tf;
};
enum uprobe_task_state {
UTASK_RUNNING = 0,
UTASK_SSTEP = 1,
UTASK_SSTEP_ACK = 2,
UTASK_SSTEP_TRAPPED = 3,
};
struct uprobe;
struct return_instance;
struct uprobe_task {
enum uprobe_task_state state;
union {
struct {
struct arch_uprobe_task autask;
unsigned long vaddr;
};
struct {
struct callback_head dup_xol_work;
unsigned long dup_xol_addr;
};
};
struct uprobe *active_uprobe;
unsigned long xol_vaddr;
struct return_instance *return_instances;
unsigned int depth;
};
struct return_instance {
struct uprobe *uprobe;
unsigned long func;
unsigned long stack;
unsigned long orig_ret_vaddr;
bool chained;
struct return_instance *next;
};
struct bpf_run_ctx {};
enum perf_event_state {
PERF_EVENT_STATE_DEAD = -4,
PERF_EVENT_STATE_EXIT = -3,
PERF_EVENT_STATE_ERROR = -2,
PERF_EVENT_STATE_OFF = -1,
PERF_EVENT_STATE_INACTIVE = 0,
PERF_EVENT_STATE_ACTIVE = 1,
};
struct perf_event_attr {
__u32 type;
__u32 size;
__u64 config;
union {
__u64 sample_period;
__u64 sample_freq;
};
__u64 sample_type;
__u64 read_format;
__u64 disabled: 1;
__u64 inherit: 1;
__u64 pinned: 1;
__u64 exclusive: 1;
__u64 exclude_user: 1;
__u64 exclude_kernel: 1;
__u64 exclude_hv: 1;
__u64 exclude_idle: 1;
__u64 mmap: 1;
__u64 comm: 1;
__u64 freq: 1;
__u64 inherit_stat: 1;
__u64 enable_on_exec: 1;
__u64 task: 1;
__u64 watermark: 1;
__u64 precise_ip: 2;
__u64 mmap_data: 1;
__u64 sample_id_all: 1;
__u64 exclude_host: 1;
__u64 exclude_guest: 1;
__u64 exclude_callchain_kernel: 1;
__u64 exclude_callchain_user: 1;
__u64 mmap2: 1;
__u64 comm_exec: 1;
__u64 use_clockid: 1;
__u64 context_switch: 1;
__u64 write_backward: 1;
__u64 namespaces: 1;
__u64 ksymbol: 1;
__u64 bpf_event: 1;
__u64 aux_output: 1;
__u64 cgroup: 1;
__u64 text_poke: 1;
__u64 build_id: 1;
__u64 inherit_thread: 1;
__u64 remove_on_exec: 1;
__u64 sigtrap: 1;
__u64 __reserved_1: 26;
union {
__u32 wakeup_events;
__u32 wakeup_watermark;
};
__u32 bp_type;
union {
__u64 bp_addr;
__u64 kprobe_func;
__u64 uprobe_path;
__u64 config1;
};
union {
__u64 bp_len;
__u64 kprobe_addr;
__u64 probe_offset;
__u64 config2;
};
__u64 branch_sample_type;
__u64 sample_regs_user;
__u32 sample_stack_user;
__s32 clockid;
__u64 sample_regs_intr;
__u32 aux_watermark;
__u16 sample_max_stack;
__u16 __reserved_2;
__u32 aux_sample_size;
__u32 __reserved_3;
__u64 sig_data;
__u64 config3;
};
struct hw_perf_event_extra {
u64 config;
unsigned int reg;
int alloc;
int idx;
};
struct arch_hw_breakpoint {
unsigned long address;
unsigned long mask;
u8 len;
u8 type;
};
struct rhlist_head {
struct rhash_head rhead;
struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next;
};
struct hw_perf_event {
union {
struct {
u64 config;
u64 last_tag;
unsigned long config_base;
unsigned long event_base;
int event_base_rdpmc;
int idx;
int last_cpu;
int flags;
struct hw_perf_event_extra extra_reg;
struct hw_perf_event_extra branch_reg;
};
struct {
struct hrtimer hrtimer;
};
struct {
struct list_head tp_list;
};
struct {
u64 pwr_acc;
u64 ptsc;
};
struct {
struct arch_hw_breakpoint info;
struct rhlist_head bp_list;
};
struct {
u8 iommu_bank;
u8 iommu_cntr;
u16 padding;
u64 conf;
u64 conf1;
};
};
struct task_struct *target;
void *addr_filters;
unsigned long addr_filters_gen;
int state;
local64_t prev_count;
u64 sample_period;
union {
struct {
u64 last_period;
local64_t period_left;
};
struct {
u64 saved_metric;
u64 saved_slots;
};
};
u64 interrupts_seq;
u64 interrupts;
u64 freq_time_stamp;
u64 freq_count_stamp;
};
struct irq_work {
struct __call_single_node node;
void (*func)(struct irq_work *);
struct rcuwait irqwait;
};
struct perf_addr_filters_head {
struct list_head list;
raw_spinlock_t lock;
unsigned int nr_file_filters;
};
struct perf_sample_data;
typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *);
struct pmu;
struct perf_event_pmu_context;
struct perf_buffer;
struct fasync_struct;
struct perf_addr_filter_range;
struct perf_cgroup;
struct perf_event {
struct list_head event_entry;
struct list_head sibling_list;
struct list_head active_list;
struct rb_node group_node;
u64 group_index;
struct list_head migrate_entry;
struct hlist_node hlist_entry;
struct list_head active_entry;
int nr_siblings;
int event_caps;
int group_caps;
unsigned int group_generation;
struct perf_event *group_leader;
struct pmu *pmu;
void *pmu_private;
enum perf_event_state state;
unsigned int attach_state;
local64_t count;
atomic64_t child_count;
u64 total_time_enabled;
u64 total_time_running;
u64 tstamp;
struct perf_event_attr attr;
u16 header_size;
u16 id_header_size;
u16 read_size;
struct hw_perf_event hw;
struct perf_event_context *ctx;
struct perf_event_pmu_context *pmu_ctx;
atomic_long_t refcount;
atomic64_t child_total_time_enabled;
atomic64_t child_total_time_running;
struct mutex child_mutex;
struct list_head child_list;
struct perf_event *parent;
int oncpu;
int cpu;
struct list_head owner_entry;
struct task_struct *owner;
struct mutex mmap_mutex;
atomic_t mmap_count;
struct perf_buffer *rb;
struct list_head rb_entry;
unsigned long rcu_batches;
int rcu_pending;
wait_queue_head_t waitq;
struct fasync_struct *fasync;
unsigned int pending_wakeup;
unsigned int pending_kill;
unsigned int pending_disable;
unsigned int pending_sigtrap;
unsigned long pending_addr;
struct irq_work pending_irq;
struct callback_head pending_task;
unsigned int pending_work;
atomic_t event_limit;
struct perf_addr_filters_head addr_filters;
struct perf_addr_filter_range *addr_filter_ranges;
unsigned long addr_filters_gen;
struct perf_event *aux_event;
void (*destroy)(struct perf_event *);
struct callback_head callback_head;
struct pid_namespace *ns;
u64 id;
atomic64_t lost_samples;
u64 (*clock)();
perf_overflow_handler_t overflow_handler;
void *overflow_handler_context;
perf_overflow_handler_t orig_overflow_handler;
struct bpf_prog *prog;
u64 bpf_cookie;
struct trace_event_call *tp_event;
struct event_filter *filter;
struct ftrace_ops ftrace_ops;
struct perf_cgroup *cgrp;
struct list_head sb_list;
__u32 orig_type;
};
struct perf_cpu_pmu_context;
struct perf_output_handle;
struct pmu {
struct list_head entry;
struct module *module;
struct device *dev;
struct device *parent;
const struct attribute_group **attr_groups;
const struct attribute_group **attr_update;
const char *name;
int type;
int capabilities;
int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count;
struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context;
atomic_t exclusive_cnt;
int task_ctx_nr;
int hrtimer_interval_ms;
unsigned int nr_addr_filters;
void (*pmu_enable)(struct pmu *);
void (*pmu_disable)(struct pmu *);
int (*event_init)(struct perf_event *);
void (*event_mapped)(struct perf_event *, struct mm_struct *);
void (*event_unmapped)(struct perf_event *, struct mm_struct *);
int (*add)(struct perf_event *, int);
void (*del)(struct perf_event *, int);
void (*start)(struct perf_event *, int);
void (*stop)(struct perf_event *, int);
void (*read)(struct perf_event *);
void (*start_txn)(struct pmu *, unsigned int);
int (*commit_txn)(struct pmu *);
void (*cancel_txn)(struct pmu *);
int (*event_idx)(struct perf_event *);
void (*sched_task)(struct perf_event_pmu_context *, bool);
struct kmem_cache *task_ctx_cache;
void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *);
void * (*setup_aux)(struct perf_event *, void **, int, bool);
void (*free_aux)(void *);
long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long);
int (*addr_filters_validate)(struct list_head *);
void (*addr_filters_sync)(struct perf_event *);
int (*aux_output_match)(struct perf_event *);
bool (*filter)(struct pmu *, int);
int (*check_period)(struct perf_event *, u64);
};
struct perf_event_pmu_context {
struct pmu *pmu;
struct perf_event_context *ctx;
struct list_head pmu_ctx_entry;
struct list_head pinned_active;
struct list_head flexible_active;
unsigned int embedded: 1;
unsigned int nr_events;
unsigned int nr_cgroups;
atomic_t refcount;
struct callback_head callback_head;
void *task_ctx_data;
int rotate_necessary;
};
struct perf_cpu_pmu_context {
struct perf_event_pmu_context epc;
struct perf_event_pmu_context *task_epc;
struct list_head sched_cb_entry;
int sched_cb_usage;
int active_oncpu;
int exclusive;
raw_spinlock_t hrtimer_lock;
struct hrtimer hrtimer;
ktime_t hrtimer_interval;
unsigned int hrtimer_active;
};
struct perf_output_handle {
struct perf_event *event;
struct perf_buffer *rb;
unsigned long wakeup;
unsigned long size;
u64 aux_flags;
union {
void *addr;
unsigned long head;
};
int page;
};
struct fasync_struct {
rwlock_t fa_lock;
int magic;
int fa_fd;
struct fasync_struct *fa_next;
struct file *fa_file;
struct callback_head fa_rcu;
};
struct perf_addr_filter_range {
unsigned long start;
unsigned long size;
};
union perf_sample_weight {
__u64 full;
struct {
__u32 var1_dw;
__u16 var2_w;
__u16 var3_w;
};
};
union perf_mem_data_src {
__u64 val;
struct {
__u64 mem_op: 5;
__u64 mem_lvl: 14;
__u64 mem_snoop: 5;
__u64 mem_lock: 2;
__u64 mem_dtlb: 7;
__u64 mem_lvl_num: 4;
__u64 mem_remote: 1;
__u64 mem_snoopx: 2;
__u64 mem_blk: 3;
__u64 mem_hops: 3;
__u64 mem_rsvd: 18;
};
};
struct perf_regs {
__u64 abi;
struct pt_regs *regs;
};
struct perf_callchain_entry;
struct perf_raw_record;
struct perf_branch_stack;
struct perf_sample_data {
u64 sample_flags;
u64 period;
u64 dyn_size;
u64 type;
struct {
u32 pid;
u32 tid;
} tid_entry;
u64 time;
u64 id;
struct {
u32 cpu;
u32 reserved;
} cpu_entry;
u64 ip;
struct perf_callchain_entry *callchain;
struct perf_raw_record *raw;
struct perf_branch_stack *br_stack;
u64 *br_stack_cntr;
union perf_sample_weight weight;
union perf_mem_data_src data_src;
u64 txn;
struct perf_regs regs_user;
struct perf_regs regs_intr;
u64 stack_user_size;
u64 stream_id;
u64 cgroup;
u64 addr;
u64 phys_addr;
u64 data_page_size;
u64 code_page_size;
u64 aux_size;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct perf_callchain_entry {
__u64 nr;
__u64 ip[0];
};
typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long);
struct perf_raw_frag {
union {
struct perf_raw_frag *next;
unsigned long pad;
};
perf_copy_f copy;
void *data;
u32 size;
} __attribute__((packed));
struct perf_raw_record {
struct perf_raw_frag frag;
u32 size;
};
struct perf_branch_entry {
__u64 from;
__u64 to;
__u64 mispred: 1;
__u64 predicted: 1;
__u64 in_tx: 1;
__u64 abort: 1;
__u64 cycles: 16;
__u64 type: 4;
__u64 spec: 2;
__u64 new_type: 4;
__u64 priv: 3;
__u64 reserved: 31;
};
struct perf_branch_stack {
__u64 nr;
__u64 hw_idx;
struct perf_branch_entry entries[0];
};
struct perf_cgroup_info;
struct perf_cgroup {
struct cgroup_subsys_state css;
struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info;
};
struct perf_cgroup_info {
u64 time;
u64 timestamp;
u64 timeoffset;
int active;
};
struct math_emu_info {
long ___orig_eip;
struct pt_regs *regs;
};
typedef void *fl_owner_t;
struct kiocb;
struct iov_iter;
struct io_comp_batch;
struct dir_context;
struct file_lock;
struct file_lease;
struct io_uring_cmd;
struct file_operations {
struct module *owner;
loff_t (*llseek)(struct file *, loff_t, int);
ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
ssize_t (*read_iter)(struct kiocb *, struct iov_iter *);
ssize_t (*write_iter)(struct kiocb *, struct iov_iter *);
int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int);
int (*iterate_shared)(struct file *, struct dir_context *);
__poll_t (*poll)(struct file *, struct poll_table_struct *);
long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long);
long (*compat_ioctl)(struct file *, unsigned int, unsigned long);
int (*mmap)(struct file *, struct vm_area_struct *);
unsigned long mmap_supported_flags;
int (*open)(struct inode *, struct file *);
int (*flush)(struct file *, fl_owner_t);
int (*release)(struct inode *, struct file *);
int (*fsync)(struct file *, loff_t, loff_t, int);
int (*fasync)(int, struct file *, int);
int (*lock)(struct file *, int, struct file_lock *);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
int (*check_flags)(int);
int (*flock)(struct file *, int, struct file_lock *);
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int);
ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
void (*splice_eof)(struct file *);
int (*setlease)(struct file *, int, struct file_lease **, void **);
long (*fallocate)(struct file *, int, loff_t, loff_t);
void (*show_fdinfo)(struct seq_file *, struct file *);
ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int);
loff_t (*remap_file_range)(struct file *, loff_t, struct file *, loff_t, loff_t, unsigned int);
int (*fadvise)(struct file *, loff_t, loff_t, int);
int (*uring_cmd)(struct io_uring_cmd *, unsigned int);
int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int);
};
struct wait_page_queue;
struct kiocb {
struct file *ki_filp;
loff_t ki_pos;
void (*ki_complete)(struct kiocb *, long);
void *private;
int ki_flags;
u16 ki_ioprio;
union {
struct wait_page_queue *ki_waitq;
ssize_t (*dio_complete)(void *);
};
};
struct iovec {
void __attribute__((btf_type_tag("user"))) *iov_base;
__kernel_size_t iov_len;
};
struct kvec;
struct iov_iter {
u8 iter_type;
bool nofault;
bool data_source;
size_t iov_offset;
union {
struct iovec __ubuf_iovec;
struct {
union {
const struct iovec *__iov;
const struct kvec *kvec;
const struct bio_vec *bvec;
struct xarray *xarray;
void __attribute__((btf_type_tag("user"))) *ubuf;
};
size_t count;
};
};
union {
unsigned long nr_segs;
loff_t xarray_start;
};
};
struct kvec {
void *iov_base;
size_t iov_len;
};
typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int);
struct dir_context {
filldir_t actor;
loff_t pos;
};
struct mm_cid {
u64 time;
int cid;
};
struct vdso_image {
void *data;
unsigned long size;
unsigned long alt;
unsigned long alt_len;
unsigned long extable_base;
unsigned long extable_len;
const void *extable;
long sym_vvar_start;
long sym_vvar_page;
long sym_pvclock_page;
long sym_hvclock_page;
long sym_timens_page;
long sym_VDSO32_NOTE_MASK;
long sym___kernel_sigreturn;
long sym___kernel_rt_sigreturn;
long sym___kernel_vsyscall;
long sym_int80_landing_pad;
long sym_vdso32_sigreturn_landing_pad;
long sym_vdso32_rt_sigreturn_landing_pad;
};
struct kioctx;
struct kioctx_table {
struct callback_head rcu;
unsigned int nr;
struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0];
};
struct vma_lock {
struct rw_semaphore lock;
};
struct fprop_local_percpu {
struct percpu_counter events;
unsigned int period;
raw_spinlock_t lock;
};
enum wb_reason {
WB_REASON_BACKGROUND = 0,
WB_REASON_VMSCAN = 1,
WB_REASON_SYNC = 2,
WB_REASON_PERIODIC = 3,
WB_REASON_LAPTOP_TIMER = 4,
WB_REASON_FS_FREE_SPACE = 5,
WB_REASON_FORKER_THREAD = 6,
WB_REASON_FOREIGN_FLUSH = 7,
WB_REASON_MAX = 8,
};
struct bdi_writeback {
struct backing_dev_info *bdi;
unsigned long state;
unsigned long last_old_flush;
struct list_head b_dirty;
struct list_head b_io;
struct list_head b_more_io;
struct list_head b_dirty_time;
spinlock_t list_lock;
atomic_t writeback_inodes;
struct percpu_counter stat[4];
unsigned long bw_time_stamp;
unsigned long dirtied_stamp;
unsigned long written_stamp;
unsigned long write_bandwidth;
unsigned long avg_write_bandwidth;
unsigned long dirty_ratelimit;
unsigned long balanced_dirty_ratelimit;
struct fprop_local_percpu completions;
int dirty_exceeded;
enum wb_reason start_all_reason;
spinlock_t work_lock;
struct list_head work_list;
struct delayed_work dwork;
struct delayed_work bw_dwork;
struct list_head bdi_node;
struct percpu_ref refcnt;
struct fprop_local_percpu memcg_completions;
struct cgroup_subsys_state *memcg_css;
struct cgroup_subsys_state *blkcg_css;
struct list_head memcg_node;
struct list_head blkcg_node;
struct list_head b_attached;
struct list_head offline_node;
union {
struct work_struct release_work;
struct callback_head rcu;
};
};
struct backing_dev_info {
u64 id;
struct rb_node rb_node;
struct list_head bdi_list;
unsigned long ra_pages;
unsigned long io_pages;
struct kref refcnt;
unsigned int capabilities;
unsigned int min_ratio;
unsigned int max_ratio;
unsigned int max_prop_frac;
atomic_long_t tot_write_bandwidth;
unsigned long last_bdp_sleep;
struct bdi_writeback wb;
struct list_head wb_list;
struct xarray cgwb_tree;
struct mutex cgwb_release_mutex;
struct rw_semaphore wb_switch_rwsem;
wait_queue_head_t wb_waitq;
struct device *dev;
char dev_name[64];
struct device *owner;
struct timer_list laptop_mode_wb_timer;
struct dentry *debug_dir;
};
struct shrink_control {
gfp_t gfp_mask;
int nid;
unsigned long nr_to_scan;
unsigned long nr_scanned;
struct mem_cgroup *memcg;
};
typedef __kernel_uid32_t projid_t;
typedef struct {
projid_t val;
} kprojid_t;
struct dquot;
struct kqid;
struct dquot_operations {
int (*write_dquot)(struct dquot *);
struct dquot * (*alloc_dquot)(struct super_block *, int);
void (*destroy_dquot)(struct dquot *);
int (*acquire_dquot)(struct dquot *);
int (*release_dquot)(struct dquot *);
int (*mark_dirty)(struct dquot *);
int (*write_info)(struct super_block *, int);
qsize_t * (*get_reserved_space)(struct inode *);
int (*get_projid)(struct inode *, kprojid_t *);
int (*get_inode_usage)(struct inode *, qsize_t *);
int (*get_next_id)(struct super_block *, struct kqid *);
};
enum quota_type {
USRQUOTA = 0,
GRPQUOTA = 1,
PRJQUOTA = 2,
};
struct kqid {
union {
kuid_t uid;
kgid_t gid;
kprojid_t projid;
};
enum quota_type type;
};
struct mem_dqblk {
qsize_t dqb_bhardlimit;
qsize_t dqb_bsoftlimit;
qsize_t dqb_curspace;
qsize_t dqb_rsvspace;
qsize_t dqb_ihardlimit;
qsize_t dqb_isoftlimit;
qsize_t dqb_curinodes;
time64_t dqb_btime;
time64_t dqb_itime;
};
struct dquot {
struct hlist_node dq_hash;
struct list_head dq_inuse;
struct list_head dq_free;
struct list_head dq_dirty;
struct mutex dq_lock;
spinlock_t dq_dqb_lock;
atomic_t dq_count;
struct super_block *dq_sb;
struct kqid dq_id;
loff_t dq_off;
unsigned long dq_flags;
struct mem_dqblk dq_dqb;
};
struct qc_info;
struct qc_dqblk;
struct qc_state;
struct quotactl_ops {
int (*quota_on)(struct super_block *, int, int, const struct path *);
int (*quota_off)(struct super_block *, int);
int (*quota_enable)(struct super_block *, unsigned int);
int (*quota_disable)(struct super_block *, unsigned int);
int (*quota_sync)(struct super_block *, int);
int (*set_info)(struct super_block *, int, struct qc_info *);
int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
int (*get_nextdqblk)(struct super_block *, struct kqid *, struct qc_dqblk *);
int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *);
int (*get_state)(struct super_block *, struct qc_state *);
int (*rm_xquota)(struct super_block *, unsigned int);
};
struct qc_info {
int i_fieldmask;
unsigned int i_flags;
unsigned int i_spc_timelimit;
unsigned int i_ino_timelimit;
unsigned int i_rt_spc_timelimit;
unsigned int i_spc_warnlimit;
unsigned int i_ino_warnlimit;
unsigned int i_rt_spc_warnlimit;
};
struct qc_dqblk {
int d_fieldmask;
u64 d_spc_hardlimit;
u64 d_spc_softlimit;
u64 d_ino_hardlimit;
u64 d_ino_softlimit;
u64 d_space;
u64 d_ino_count;
s64 d_ino_timer;
s64 d_spc_timer;
int d_ino_warns;
int d_spc_warns;
u64 d_rt_spc_hardlimit;
u64 d_rt_spc_softlimit;
u64 d_rt_space;
s64 d_rt_spc_timer;
int d_rt_spc_warns;
};
struct qc_type_state {
unsigned int flags;
unsigned int spc_timelimit;
unsigned int ino_timelimit;
unsigned int rt_spc_timelimit;
unsigned int spc_warnlimit;
unsigned int ino_warnlimit;
unsigned int rt_spc_warnlimit;
unsigned long long ino;
blkcnt_t blocks;
blkcnt_t nextents;
};
struct qc_state {
unsigned int s_incoredqs;
struct qc_type_state s_state[3];
};
struct fid;
struct iomap;
struct export_operations {
int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *);
struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int);
struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int);
int (*get_name)(struct dentry *, char *, struct dentry *);
struct dentry * (*get_parent)(struct dentry *);
int (*commit_metadata)(struct inode *);
int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *);
int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *);
int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *);
unsigned long flags;
};
struct xattr_handler {
const char *name;
const char *prefix;
int flags;
bool (*list)(struct dentry *);
int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t);
int (*set)(const struct xattr_handler *, struct mnt_idmap *, struct dentry *, struct inode *, const char *, const void *, size_t, int);
};
struct quota_format_type {
int qf_fmt_id;
const struct quota_format_ops *qf_ops;
struct module *qf_owner;
struct quota_format_type *qf_next;
};
struct quota_format_ops {
int (*check_quota_file)(struct super_block *, int);
int (*read_file_info)(struct super_block *, int);
int (*write_file_info)(struct super_block *, int);
int (*free_file_info)(struct super_block *, int);
int (*read_dqblk)(struct dquot *);
int (*commit_dqblk)(struct dquot *);
int (*release_dqblk)(struct dquot *);
int (*get_next_id)(struct super_block *, struct kqid *);
};
typedef struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *fsnotify_connp_t;
struct fsnotify_mark_connector {
spinlock_t lock;
unsigned short type;
unsigned short flags;
union {
fsnotify_connp_t *obj;
struct fsnotify_mark_connector *destroy_next;
};
struct hlist_head list;
};
struct shrinker {
unsigned long (*count_objects)(struct shrinker *, struct shrink_control *);
unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *);
long batch;
int seeks;
unsigned int flags;
refcount_t refcount;
struct completion done;
struct callback_head rcu;
void *private_data;
struct list_head list;
int id;
atomic_long_t *nr_deferred;
};
struct list_lru_one {
struct list_head list;
long nr_items;
};
struct list_lru_node {
spinlock_t lock;
struct list_lru_one lru;
long nr_items;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct delayed_call {
void (*fn)(void *);
void *arg;
};
typedef struct {
uid_t val;
} vfsuid_t;
typedef struct {
gid_t val;
} vfsgid_t;
struct iattr {
unsigned int ia_valid;
umode_t ia_mode;
union {
kuid_t ia_uid;
vfsuid_t ia_vfsuid;
};
union {
kgid_t ia_gid;
vfsgid_t ia_vfsgid;
};
loff_t ia_size;
struct timespec64 ia_atime;
struct timespec64 ia_mtime;
struct timespec64 ia_ctime;
struct file *ia_file;
};
struct kstat {
u32 result_mask;
umode_t mode;
unsigned int nlink;
uint32_t blksize;
u64 attributes;
u64 attributes_mask;
u64 ino;
dev_t dev;
dev_t rdev;
kuid_t uid;
kgid_t gid;
loff_t size;
struct timespec64 atime;
struct timespec64 mtime;
struct timespec64 ctime;
struct timespec64 btime;
u64 blocks;
u64 mnt_id;
u32 dio_mem_align;
u32 dio_offset_align;
u64 change_cookie;
};
struct offset_ctx {
struct maple_tree mt;
unsigned long next_offset;
};
enum migrate_mode {
MIGRATE_ASYNC = 0,
MIGRATE_SYNC_LIGHT = 1,
MIGRATE_SYNC = 2,
MIGRATE_SYNC_NO_COPY = 3,
};
struct readahead_control;
struct swap_info_struct;
struct address_space_operations {
int (*writepage)(struct page *, struct writeback_control *);
int (*read_folio)(struct file *, struct folio *);
int (*writepages)(struct address_space *, struct writeback_control *);
bool (*dirty_folio)(struct address_space *, struct folio *);
void (*readahead)(struct readahead_control *);
int (*write_begin)(struct file *, struct address_space *, loff_t, unsigned int, struct page **, void **);
int (*write_end)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *);
sector_t (*bmap)(struct address_space *, sector_t);
void (*invalidate_folio)(struct folio *, size_t, size_t);
bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *);
int (*migrate_folio)(struct address_space *, struct folio *, struct folio *, enum migrate_mode);
int (*launder_folio)(struct folio *);
bool (*is_partially_uptodate)(struct folio *, size_t, size_t);
void (*is_dirty_writeback)(struct folio *, bool *, bool *);
int (*error_remove_folio)(struct address_space *, struct folio *);
int (*swap_activate)(struct swap_info_struct *, struct file *, sector_t *);
void (*swap_deactivate)(struct file *);
int (*swap_rw)(struct kiocb *, struct iov_iter *);
};
struct module_attribute {
struct attribute attr;
ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *);
ssize_t (*store)(struct module_attribute *, struct module_kobject *, const char *, size_t);
void (*setup)(struct module *, const char *);
int (*test)(struct module *);
void (*free)(struct module *);
};
struct kernel_symbol {
int value_offset;
int name_offset;
int namespace_offset;
};
struct kernel_param_ops;
struct kparam_string;
struct kparam_array;
struct kernel_param {
const char *name;
struct module *mod;
const struct kernel_param_ops *ops;
const u16 perm;
s8 level;
u8 flags;
union {
void *arg;
const struct kparam_string *str;
const struct kparam_array *arr;
};
};
struct kernel_param_ops {
unsigned int flags;
int (*set)(const char *, const struct kernel_param *);
int (*get)(char *, const struct kernel_param *);
void (*free)(void *);
};
struct kparam_string {
unsigned int maxlen;
char *string;
};
struct kparam_array {
unsigned int max;
unsigned int elemsize;
unsigned int *num;
const struct kernel_param_ops *ops;
void *elem;
};
struct orc_entry {
s16 sp_offset;
s16 bp_offset;
unsigned int sp_reg: 4;
unsigned int bp_reg: 4;
unsigned int type: 3;
unsigned int signal: 1;
} __attribute__((packed));
struct bug_entry {
int bug_addr_disp;
int file_disp;
unsigned short line;
unsigned short flags;
};
typedef __u32 Elf64_Word;
typedef __u16 Elf64_Half;
typedef __u64 Elf64_Addr;
typedef __u64 Elf64_Xword;
struct elf64_sym {
Elf64_Word st_name;
unsigned char st_info;
unsigned char st_other;
Elf64_Half st_shndx;
Elf64_Addr st_value;
Elf64_Xword st_size;
};
struct srcu_data;
struct srcu_usage;
struct srcu_struct {
unsigned int srcu_idx;
struct srcu_data __attribute__((btf_type_tag("percpu"))) *sda;
struct lockdep_map dep_map;
struct srcu_usage *srcu_sup;
};
struct rcu_segcblist {
struct callback_head *head;
struct callback_head **tails[4];
unsigned long gp_seq[4];
atomic_long_t len;
long seglen[4];
u8 flags;
};
struct srcu_node;
struct srcu_data {
atomic_long_t srcu_lock_count[2];
atomic_long_t srcu_unlock_count[2];
int srcu_nmi_safety;
long: 64;
long: 64;
long: 64;
spinlock_t lock;
struct rcu_segcblist srcu_cblist;
unsigned long srcu_gp_seq_needed;
unsigned long srcu_gp_seq_needed_exp;
bool srcu_cblist_invoking;
struct timer_list delay_work;
struct work_struct work;
struct callback_head srcu_barrier_head;
struct srcu_node *mynode;
unsigned long grpmask;
int cpu;
struct srcu_struct *ssp;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct srcu_node {
spinlock_t lock;
unsigned long srcu_have_cbs[4];
unsigned long srcu_data_have_cbs[4];
unsigned long srcu_gp_seq_needed_exp;
struct srcu_node *srcu_parent;
int grplo;
int grphi;
};
struct srcu_usage {
struct srcu_node *node;
struct srcu_node *level[4];
int srcu_size_state;
struct mutex srcu_cb_mutex;
spinlock_t lock;
struct mutex srcu_gp_mutex;
unsigned long srcu_gp_seq;
unsigned long srcu_gp_seq_needed;
unsigned long srcu_gp_seq_needed_exp;
unsigned long srcu_gp_start;
unsigned long srcu_last_gp_end;
unsigned long srcu_size_jiffies;
unsigned long srcu_n_lock_retries;
unsigned long srcu_n_exp_nodelay;
bool sda_is_static;
unsigned long srcu_barrier_seq;
struct mutex srcu_barrier_mutex;
struct completion srcu_barrier_completion;
atomic_t srcu_barrier_cpu_cnt;
unsigned long reschedule_jiffies;
unsigned long reschedule_count;
struct delayed_work work;
struct srcu_struct *srcu_ssp;
};
struct bpf_raw_event_map {
struct tracepoint *tp;
void *bpf_func;
u32 num_args;
u32 writable_size;
long: 64;
};
struct trace_eval_map {
const char *system;
const char *eval_string;
unsigned long eval_value;
};
struct static_call_site {
s32 addr;
s32 key;
};
struct error_injection_entry {
unsigned long addr;
int etype;
};
struct static_key_true {
struct static_key key;
};
struct static_key_false {
struct static_key key;
};
struct _ddebug {
const char *modname;
const char *function;
const char *filename;
const char *format;
unsigned int lineno: 18;
unsigned int class_id: 6;
unsigned int flags: 8;
union {
struct static_key_true dd_key_true;
struct static_key_false dd_key_false;
} key;
};
enum class_map_type {
DD_CLASS_TYPE_DISJOINT_BITS = 0,
DD_CLASS_TYPE_LEVEL_NUM = 1,
DD_CLASS_TYPE_DISJOINT_NAMES = 2,
DD_CLASS_TYPE_LEVEL_NAMES = 3,
};
struct ddebug_class_map {
struct list_head link;
struct module *mod;
const char *mod_name;
const char **class_names;
const int length;
const int base;
enum class_map_type map_type;
};
struct tracepoint_func {
void *func;
void *data;
int prio;
};
enum print_line_t {
TRACE_TYPE_PARTIAL_LINE = 0,
TRACE_TYPE_HANDLED = 1,
TRACE_TYPE_UNHANDLED = 2,
TRACE_TYPE_NO_CONSUME = 3,
};
struct trace_iterator;
typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *);
struct trace_event_functions {
trace_print_func trace;
trace_print_func raw;
trace_print_func hex;
trace_print_func binary;
};
struct seq_buf {
char *buffer;
size_t size;
size_t len;
};
struct trace_seq {
char buffer[8156];
struct seq_buf seq;
size_t readpos;
int full;
};
typedef struct cpumask *cpumask_var_t;
struct trace_array;
struct tracer;
struct array_buffer;
struct ring_buffer_iter;
struct trace_entry;
struct trace_iterator {
struct trace_array *tr;
struct tracer *trace;
struct array_buffer *array_buffer;
void *private;
int cpu_file;
struct mutex mutex;
struct ring_buffer_iter **buffer_iter;
unsigned long iter_flags;
void *temp;
unsigned int temp_size;
char *fmt;
unsigned int fmt_size;
atomic_t wait_index;
struct trace_seq tmp_seq;
cpumask_var_t started;
bool closed;
bool snapshot;
struct trace_seq seq;
struct trace_entry *ent;
unsigned long lost_events;
int leftover;
int ent_size;
int cpu;
u64 ts;
loff_t pos;
long idx;
};
struct trace_entry {
unsigned short type;
unsigned char flags;
unsigned char preempt_count;
int pid;
};
struct syscall_metadata {
const char *name;
int syscall_nr;
int nb_args;
const char **types;
const char **args;
struct list_head enter_fields;
struct trace_event_call *enter_event;
struct trace_event_call *exit_event;
};
enum {
UNAME26 = 131072,
ADDR_NO_RANDOMIZE = 262144,
FDPIC_FUNCPTRS = 524288,
MMAP_PAGE_ZERO = 1048576,
ADDR_COMPAT_LAYOUT = 2097152,
READ_IMPLIES_EXEC = 4194304,
ADDR_LIMIT_32BIT = 8388608,
SHORT_INODE = 16777216,
WHOLE_SECONDS = 33554432,
STICKY_TIMEOUTS = 67108864,
ADDR_LIMIT_3GB = 134217728,
};
enum align_flags {
ALIGN_VA_32 = 1,
ALIGN_VA_64 = 2,
};
enum {
false = 0,
true = 1,
};
typedef unsigned long uintptr_t;
struct vm_unmapped_area_info {
unsigned long flags;
unsigned long length;
unsigned long low_limit;
unsigned long high_limit;
unsigned long align_mask;
unsigned long align_offset;
};
struct hpet_channel;
struct hpet_base {
unsigned int nr_channels;
unsigned int nr_clockevents;
unsigned int boot_cfg;
struct hpet_channel *channels;
};
enum clock_event_state {
CLOCK_EVT_STATE_DETACHED = 0,
CLOCK_EVT_STATE_SHUTDOWN = 1,
CLOCK_EVT_STATE_PERIODIC = 2,
CLOCK_EVT_STATE_ONESHOT = 3,
CLOCK_EVT_STATE_ONESHOT_STOPPED = 4,
};
struct clock_event_device {
void (*event_handler)(struct clock_event_device *);
int (*set_next_event)(unsigned long, struct clock_event_device *);
int (*set_next_ktime)(ktime_t, struct clock_event_device *);
ktime_t next_event;
u64 max_delta_ns;
u64 min_delta_ns;
u32 mult;
u32 shift;
enum clock_event_state state_use_accessors;
unsigned int features;
unsigned long retries;
int (*set_state_periodic)(struct clock_event_device *);
int (*set_state_oneshot)(struct clock_event_device *);
int (*set_state_oneshot_stopped)(struct clock_event_device *);
int (*set_state_shutdown)(struct clock_event_device *);
int (*tick_resume)(struct clock_event_device *);
void (*broadcast)(const struct cpumask *);
void (*suspend)(struct clock_event_device *);
void (*resume)(struct clock_event_device *);
unsigned long min_delta_ticks;
unsigned long max_delta_ticks;
const char *name;
int rating;
int irq;
int bound_on;
const struct cpumask *cpumask;
struct list_head list;
struct module *owner;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum hpet_mode {
HPET_MODE_UNUSED = 0,
HPET_MODE_LEGACY = 1,
HPET_MODE_CLOCKEVT = 2,
HPET_MODE_DEVICE = 3,
};
struct hpet_channel {
struct clock_event_device evt;
unsigned int num;
unsigned int cpu;
unsigned int irq;
unsigned int in_use;
enum hpet_mode mode;
unsigned int boot_cfg;
char name[10];
long: 64;
long: 64;
long: 64;
};
struct vm_struct {
struct vm_struct *next;
void *addr;
unsigned long size;
unsigned long flags;
struct page **pages;
unsigned int page_order;
unsigned int nr_pages;
phys_addr_t phys_addr;
const void *caller;
};
struct cdev {
struct kobject kobj;
struct module *owner;
const struct file_operations *ops;
struct list_head list;
dev_t dev;
unsigned int count;
};
struct rtc_time {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
enum irqreturn {
IRQ_NONE = 0,
IRQ_HANDLED = 1,
IRQ_WAKE_THREAD = 2,
};
typedef enum irqreturn irqreturn_t;
typedef irqreturn_t (*rtc_irq_handler)(int, void *);
enum clocksource_ids {
CSID_GENERIC = 0,
CSID_ARM_ARCH_COUNTER = 1,
CSID_X86_TSC_EARLY = 2,
CSID_X86_TSC = 3,
CSID_X86_KVM_CLK = 4,
CSID_MAX = 5,
};
enum vdso_clock_mode {
VDSO_CLOCKMODE_NONE = 0,
VDSO_CLOCKMODE_TSC = 1,
VDSO_CLOCKMODE_PVCLOCK = 2,
VDSO_CLOCKMODE_HVCLOCK = 3,
VDSO_CLOCKMODE_MAX = 4,
VDSO_CLOCKMODE_TIMENS = 2147483647,
};
struct clocksource {
u64 (*read)(struct clocksource *);
u64 mask;
u32 mult;
u32 shift;
u64 max_idle_ns;
u32 maxadj;
u32 uncertainty_margin;
u64 max_cycles;
const char *name;
struct list_head list;
int rating;
enum clocksource_ids id;
enum vdso_clock_mode vdso_clock_mode;
unsigned long flags;
int (*enable)(struct clocksource *);
void (*disable)(struct clocksource *);
void (*suspend)(struct clocksource *);
void (*resume)(struct clocksource *);
void (*mark_unstable)(struct clocksource *);
void (*tick_stable)(struct clocksource *);
struct list_head wd_list;
u64 cs_last;
u64 wd_last;
struct module *owner;
};
union hpet_lock {
struct {
arch_spinlock_t lock;
u32 value;
};
u64 lockval;
};
enum irq_domain_bus_token {
DOMAIN_BUS_ANY = 0,
DOMAIN_BUS_WIRED = 1,
DOMAIN_BUS_GENERIC_MSI = 2,
DOMAIN_BUS_PCI_MSI = 3,
DOMAIN_BUS_PLATFORM_MSI = 4,
DOMAIN_BUS_NEXUS = 5,
DOMAIN_BUS_IPI = 6,
DOMAIN_BUS_FSL_MC_MSI = 7,
DOMAIN_BUS_TI_SCI_INTA_MSI = 8,
DOMAIN_BUS_WAKEUP = 9,
DOMAIN_BUS_VMD_MSI = 10,
DOMAIN_BUS_PCI_DEVICE_MSI = 11,
DOMAIN_BUS_PCI_DEVICE_MSIX = 12,
DOMAIN_BUS_DMAR = 13,
DOMAIN_BUS_AMDVI = 14,
DOMAIN_BUS_PCI_DEVICE_IMS = 15,
DOMAIN_BUS_DEVICE_MSI = 16,
DOMAIN_BUS_WIRED_TO_MSI = 17,
};
struct irq_desc;
typedef void (*irq_flow_handler_t)(struct irq_desc *);
struct msi_domain_ops;
struct irq_chip;
struct msi_domain_info {
u32 flags;
enum irq_domain_bus_token bus_token;
unsigned int hwsize;
struct msi_domain_ops *ops;
struct irq_chip *chip;
void *chip_data;
irq_flow_handler_t handler;
void *handler_data;
const char *handler_name;
void *data;
};
typedef unsigned long irq_hw_number_t;
struct irq_alloc_info;
typedef struct irq_alloc_info msi_alloc_info_t;
struct msi_desc;
struct irq_fwspec;
struct msi_domain_ops {
irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *);
int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *);
void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int);
int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *);
void (*prepare_desc)(struct irq_domain *, msi_alloc_info_t *, struct msi_desc *);
void (*set_desc)(msi_alloc_info_t *, struct msi_desc *);
int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int);
void (*domain_free_irqs)(struct irq_domain *, struct device *);
void (*msi_post_free)(struct irq_domain *, struct device *);
int (*msi_translate)(struct irq_domain *, struct irq_fwspec *, irq_hw_number_t *, unsigned int *);
};
enum irq_alloc_type {
X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
X86_IRQ_ALLOC_TYPE_HPET = 2,
X86_IRQ_ALLOC_TYPE_PCI_MSI = 3,
X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4,
X86_IRQ_ALLOC_TYPE_DMAR = 5,
X86_IRQ_ALLOC_TYPE_AMDVI = 6,
X86_IRQ_ALLOC_TYPE_UV = 7,
};
struct ioapic_alloc_info {
int pin;
int node;
u32 is_level: 1;
u32 active_low: 1;
u32 valid: 1;
};
struct uv_alloc_info {
int limit;
int blade;
unsigned long offset;
char *name;
};
struct irq_alloc_info {
enum irq_alloc_type type;
u32 flags;
u32 devid;
irq_hw_number_t hwirq;
const struct cpumask *mask;
struct msi_desc *desc;
void *data;
union {
struct ioapic_alloc_info ioapic;
struct uv_alloc_info uv;
};
};
struct pci_msi_desc {
union {
u32 msi_mask;
u32 msix_ctrl;
};
struct {
u8 is_msix: 1;
u8 multiple: 3;
u8 multi_cap: 3;
u8 can_mask: 1;
u8 is_64: 1;
u8 is_virtual: 1;
unsigned int default_irq;
} msi_attrib;
union {
u8 mask_pos;
void *mask_base;
};
};
union msi_domain_cookie {
u64 value;
void *ptr;
void *iobase;
};
union msi_instance_cookie {
u64 value;
void *ptr;
};
struct msi_desc_data {
union msi_domain_cookie dcookie;
union msi_instance_cookie icookie;
};
struct x86_msi_addr_lo {
union {
struct {
u32 reserved_0: 2;
u32 dest_mode_logical: 1;
u32 redirect_hint: 1;
u32 reserved_1: 1;
u32 virt_destid_8_14: 7;
u32 destid_0_7: 8;
u32 base_address: 12;
};
struct {
u32 dmar_reserved_0: 2;
u32 dmar_index_15: 1;
u32 dmar_subhandle_valid: 1;
u32 dmar_format: 1;
u32 dmar_index_0_14: 15;
u32 dmar_base_address: 12;
};
};
};
typedef struct x86_msi_addr_lo arch_msi_msg_addr_lo_t;
struct x86_msi_addr_hi {
u32 reserved: 8;
u32 destid_8_31: 24;
};
typedef struct x86_msi_addr_hi arch_msi_msg_addr_hi_t;
struct x86_msi_data {
union {
struct {
u32 vector: 8;
u32 delivery_mode: 3;
u32 dest_mode_logical: 1;
u32 reserved: 2;
u32 active_low: 1;
u32 is_level: 1;
};
u32 dmar_subhandle;
};
};
typedef struct x86_msi_data arch_msi_msg_data_t;
struct msi_msg {
union {
u32 address_lo;
arch_msi_msg_addr_lo_t arch_addr_lo;
};
union {
u32 address_hi;
arch_msi_msg_addr_hi_t arch_addr_hi;
};
union {
u32 data;
arch_msi_msg_data_t arch_data;
};
};
struct irq_affinity_desc;
struct device_attribute;
struct msi_desc {
unsigned int irq;
unsigned int nvec_used;
struct device *dev;
struct msi_msg msg;
struct irq_affinity_desc *affinity;
struct device_attribute *sysfs_attrs;
void (*write_msi_msg)(struct msi_desc *, void *);
void *write_msi_msg_data;
u16 msi_index;
union {
struct pci_msi_desc pci;
struct msi_desc_data data;
};
};
struct irq_domain_ops;
struct irq_domain_chip_generic;
struct msi_parent_ops;
struct irq_data;
struct irq_domain {
struct list_head link;
const char *name;
const struct irq_domain_ops *ops;
void *host_data;
unsigned int flags;
unsigned int mapcount;
struct mutex mutex;
struct irq_domain *root;
struct fwnode_handle *fwnode;
enum irq_domain_bus_token bus_token;
struct irq_domain_chip_generic *gc;
struct device *dev;
struct device *pm_dev;
struct irq_domain *parent;
const struct msi_parent_ops *msi_parent_ops;
irq_hw_number_t hwirq_max;
unsigned int revmap_size;
struct xarray revmap_tree;
struct irq_data __attribute__((btf_type_tag("rcu"))) *revmap[0];
};
struct irq_domain_ops {
int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token);
int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token);
int (*map)(struct irq_domain *, unsigned int, irq_hw_number_t);
void (*unmap)(struct irq_domain *, unsigned int);
int (*xlate)(struct irq_domain *, struct device_node *, const u32 *, unsigned int, unsigned long *, unsigned int *);
int (*alloc)(struct irq_domain *, unsigned int, unsigned int, void *);
void (*free)(struct irq_domain *, unsigned int, unsigned int);
int (*activate)(struct irq_domain *, struct irq_data *, bool);
void (*deactivate)(struct irq_domain *, struct irq_data *);
int (*translate)(struct irq_domain *, struct irq_fwspec *, unsigned long *, unsigned int *);
};
typedef u32 phandle;
struct fwnode_operations;
struct fwnode_handle {
struct fwnode_handle *secondary;
const struct fwnode_operations *ops;
struct device *dev;
struct list_head suppliers;
struct list_head consumers;
u8 flags;
};
struct property;
struct device_node {
const char *name;
phandle phandle;
const char *full_name;
struct fwnode_handle fwnode;
struct property *properties;
struct property *deadprops;
struct device_node *parent;
struct device_node *child;
struct device_node *sibling;
unsigned long _flags;
void *data;
};
enum dev_dma_attr {
DEV_DMA_NOT_SUPPORTED = 0,
DEV_DMA_NON_COHERENT = 1,
DEV_DMA_COHERENT = 2,
};
struct fwnode_reference_args;
struct fwnode_endpoint;
struct fwnode_operations {
struct fwnode_handle * (*get)(struct fwnode_handle *);
void (*put)(struct fwnode_handle *);
bool (*device_is_available)(const struct fwnode_handle *);
const void * (*device_get_match_data)(const struct fwnode_handle *, const struct device *);
bool (*device_dma_supported)(const struct fwnode_handle *);
enum dev_dma_attr (*device_get_dma_attr)(const struct fwnode_handle *);
bool (*property_present)(const struct fwnode_handle *, const char *);
int (*property_read_int_array)(const struct fwnode_handle *, const char *, unsigned int, void *, size_t);
int (*property_read_string_array)(const struct fwnode_handle *, const char *, const char **, size_t);
const char * (*get_name)(const struct fwnode_handle *);
const char * (*get_name_prefix)(const struct fwnode_handle *);
struct fwnode_handle * (*get_parent)(const struct fwnode_handle *);
struct fwnode_handle * (*get_next_child_node)(const struct fwnode_handle *, struct fwnode_handle *);
struct fwnode_handle * (*get_named_child_node)(const struct fwnode_handle *, const char *);
int (*get_reference_args)(const struct fwnode_handle *, const char *, const char *, unsigned int, unsigned int, struct fwnode_reference_args *);
struct fwnode_handle * (*graph_get_next_endpoint)(const struct fwnode_handle *, struct fwnode_handle *);
struct fwnode_handle * (*graph_get_remote_endpoint)(const struct fwnode_handle *);
struct fwnode_handle * (*graph_get_port_parent)(struct fwnode_handle *);
int (*graph_parse_endpoint)(const struct fwnode_handle *, struct fwnode_endpoint *);
void * (*iomap)(struct fwnode_handle *, int);
int (*irq_get)(const struct fwnode_handle *, unsigned int);
int (*add_links)(struct fwnode_handle *);
};
struct fwnode_reference_args {
struct fwnode_handle *fwnode;
unsigned int nargs;
u64 args[8];
};
struct fwnode_endpoint {
unsigned int port;
unsigned int id;
const struct fwnode_handle *local_fwnode;
};
struct property {
char *name;
int length;
void *value;
struct property *next;
};
struct irq_fwspec {
struct fwnode_handle *fwnode;
int param_count;
u32 param[16];
};
struct irq_common_data;
struct irq_data {
u32 mask;
unsigned int irq;
irq_hw_number_t hwirq;
struct irq_common_data *common;
struct irq_chip *chip;
struct irq_domain *domain;
struct irq_data *parent_data;
void *chip_data;
};
struct irq_common_data {
unsigned int state_use_accessors;
unsigned int node;
void *handler_data;
struct msi_desc *msi_desc;
cpumask_var_t affinity;
cpumask_var_t effective_affinity;
};
enum irqchip_irq_state {
IRQCHIP_STATE_PENDING = 0,
IRQCHIP_STATE_ACTIVE = 1,
IRQCHIP_STATE_MASKED = 2,
IRQCHIP_STATE_LINE_LEVEL = 3,
};
struct irq_chip {
const char *name;
unsigned int (*irq_startup)(struct irq_data *);
void (*irq_shutdown)(struct irq_data *);
void (*irq_enable)(struct irq_data *);
void (*irq_disable)(struct irq_data *);
void (*irq_ack)(struct irq_data *);
void (*irq_mask)(struct irq_data *);
void (*irq_mask_ack)(struct irq_data *);
void (*irq_unmask)(struct irq_data *);
void (*irq_eoi)(struct irq_data *);
int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool);
int (*irq_retrigger)(struct irq_data *);
int (*irq_set_type)(struct irq_data *, unsigned int);
int (*irq_set_wake)(struct irq_data *, unsigned int);
void (*irq_bus_lock)(struct irq_data *);
void (*irq_bus_sync_unlock)(struct irq_data *);
void (*irq_suspend)(struct irq_data *);
void (*irq_resume)(struct irq_data *);
void (*irq_pm_shutdown)(struct irq_data *);
void (*irq_calc_mask)(struct irq_data *);
void (*irq_print_chip)(struct irq_data *, struct seq_file *);
int (*irq_request_resources)(struct irq_data *);
void (*irq_release_resources)(struct irq_data *);
void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *);
void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *);
int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *);
int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool);
int (*irq_set_vcpu_affinity)(struct irq_data *, void *);
void (*ipi_send_single)(struct irq_data *, unsigned int);
void (*ipi_send_mask)(struct irq_data *, const struct cpumask *);
int (*irq_nmi_setup)(struct irq_data *);
void (*irq_nmi_teardown)(struct irq_data *);
unsigned long flags;
};
enum irq_gc_flags {
IRQ_GC_INIT_MASK_CACHE = 1,
IRQ_GC_INIT_NESTED_LOCK = 2,
IRQ_GC_MASK_CACHE_PER_TYPE = 4,
IRQ_GC_NO_MASK = 8,
IRQ_GC_BE_IO = 16,
};
struct irq_chip_generic;
struct irq_domain_chip_generic {
unsigned int irqs_per_chip;
unsigned int num_chips;
unsigned int irq_flags_to_clear;
unsigned int irq_flags_to_set;
enum irq_gc_flags gc_flags;
struct irq_chip_generic *gc[0];
};
struct irq_chip_regs {
unsigned long enable;
unsigned long disable;
unsigned long mask;
unsigned long ack;
unsigned long eoi;
unsigned long type;
unsigned long polarity;
};
struct irq_chip_type {
struct irq_chip chip;
struct irq_chip_regs regs;
irq_flow_handler_t handler;
u32 type;
u32 mask_cache_priv;
u32 *mask_cache;
};
struct irq_chip_generic {
raw_spinlock_t lock;
void *reg_base;
u32 (*reg_readl)(void *);
void (*reg_writel)(u32, void *);
void (*suspend)(struct irq_chip_generic *);
void (*resume)(struct irq_chip_generic *);
unsigned int irq_base;
unsigned int irq_cnt;
u32 mask_cache;
u32 type_cache;
u32 polarity_cache;
u32 wake_enabled;
u32 wake_active;
unsigned int num_ct;
void *private;
unsigned long installed;
unsigned long unused;
struct irq_domain *domain;
struct list_head list;
struct irq_chip_type chip_types[0];
};
struct irqaction;
struct irq_affinity_notify;
struct proc_dir_entry;
struct irq_desc {
struct irq_common_data irq_common_data;
struct irq_data irq_data;
unsigned int __attribute__((btf_type_tag("percpu"))) *kstat_irqs;
irq_flow_handler_t handle_irq;
struct irqaction *action;
unsigned int status_use_accessors;
unsigned int core_internal_state__do_not_mess_with_it;
unsigned int depth;
unsigned int wake_depth;
unsigned int tot_count;
unsigned int irq_count;
unsigned long last_unhandled;
unsigned int irqs_unhandled;
atomic_t threads_handled;
int threads_handled_last;
raw_spinlock_t lock;
struct cpumask *percpu_enabled;
const struct cpumask *percpu_affinity;
const struct cpumask *affinity_hint;
struct irq_affinity_notify *affinity_notify;
cpumask_var_t pending_mask;
unsigned long threads_oneshot;
atomic_t threads_active;
wait_queue_head_t wait_for_threads;
unsigned int nr_actions;
unsigned int no_suspend_depth;
unsigned int cond_suspend_depth;
unsigned int force_resume_depth;
struct proc_dir_entry *dir;
struct callback_head rcu;
struct kobject kobj;
struct mutex request_mutex;
int parent_irq;
struct module *owner;
const char *name;
struct hlist_node resend_node;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef irqreturn_t (*irq_handler_t)(int, void *);
struct irqaction {
irq_handler_t handler;
void *dev_id;
void __attribute__((btf_type_tag("percpu"))) *percpu_dev_id;
struct irqaction *next;
irq_handler_t thread_fn;
struct task_struct *thread;
struct irqaction *secondary;
unsigned int irq;
unsigned int flags;
unsigned long thread_flags;
unsigned long thread_mask;
const char *name;
struct proc_dir_entry *dir;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct irq_affinity_notify {
unsigned int irq;
struct kref kref;
struct work_struct work;
void (*notify)(struct irq_affinity_notify *, const cpumask_t *);
void (*release)(struct kref *);
};
struct msi_parent_ops {
u32 supported_flags;
u32 required_flags;
u32 bus_select_token;
u32 bus_select_mask;
const char *prefix;
bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *);
};
struct msi_dev_domain {
struct xarray store;
struct irq_domain *domain;
};
struct platform_msi_priv_data;
struct msi_device_data {
unsigned long properties;
struct platform_msi_priv_data *platform_data;
struct mutex mutex;
struct msi_dev_domain __domains[2];
unsigned long __iter_idx;
};
struct irq_affinity_desc {
struct cpumask mask;
unsigned int is_managed: 1;
};
struct device_attribute {
struct attribute attr;
ssize_t (*show)(struct device *, struct device_attribute *, char *);
ssize_t (*store)(struct device *, struct device_attribute *, const char *, size_t);
};
enum {
___GFP_DMA_BIT = 0,
___GFP_HIGHMEM_BIT = 1,
___GFP_DMA32_BIT = 2,
___GFP_MOVABLE_BIT = 3,
___GFP_RECLAIMABLE_BIT = 4,
___GFP_HIGH_BIT = 5,
___GFP_IO_BIT = 6,
___GFP_FS_BIT = 7,
___GFP_ZERO_BIT = 8,
___GFP_UNUSED_BIT = 9,
___GFP_DIRECT_RECLAIM_BIT = 10,
___GFP_KSWAPD_RECLAIM_BIT = 11,
___GFP_WRITE_BIT = 12,
___GFP_NOWARN_BIT = 13,
___GFP_RETRY_MAYFAIL_BIT = 14,
___GFP_NOFAIL_BIT = 15,
___GFP_NORETRY_BIT = 16,
___GFP_MEMALLOC_BIT = 17,
___GFP_COMP_BIT = 18,
___GFP_NOMEMALLOC_BIT = 19,
___GFP_HARDWALL_BIT = 20,
___GFP_THISNODE_BIT = 21,
___GFP_ACCOUNT_BIT = 22,
___GFP_ZEROTAGS_BIT = 23,
___GFP_NOLOCKDEP_BIT = 24,
___GFP_LAST_BIT = 25,
};
enum kmalloc_cache_type {
KMALLOC_NORMAL = 0,
KMALLOC_RANDOM_START = 0,
KMALLOC_RANDOM_END = 0,
KMALLOC_RECLAIM = 1,
KMALLOC_DMA = 2,
KMALLOC_CGROUP = 3,
NR_KMALLOC_TYPES = 4,
};
enum cpuhp_state {
CPUHP_INVALID = -1,
CPUHP_OFFLINE = 0,
CPUHP_CREATE_THREADS = 1,
CPUHP_PERF_PREPARE = 2,
CPUHP_PERF_X86_PREPARE = 3,
CPUHP_PERF_X86_AMD_UNCORE_PREP = 4,
CPUHP_PERF_POWER = 5,
CPUHP_PERF_SUPERH = 6,
CPUHP_X86_HPET_DEAD = 7,
CPUHP_X86_MCE_DEAD = 8,
CPUHP_VIRT_NET_DEAD = 9,
CPUHP_IBMVNIC_DEAD = 10,
CPUHP_SLUB_DEAD = 11,
CPUHP_DEBUG_OBJ_DEAD = 12,
CPUHP_MM_WRITEBACK_DEAD = 13,
CPUHP_MM_VMSTAT_DEAD = 14,
CPUHP_SOFTIRQ_DEAD = 15,
CPUHP_NET_MVNETA_DEAD = 16,
CPUHP_CPUIDLE_DEAD = 17,
CPUHP_ARM64_FPSIMD_DEAD = 18,
CPUHP_ARM_OMAP_WAKE_DEAD = 19,
CPUHP_IRQ_POLL_DEAD = 20,
CPUHP_BLOCK_SOFTIRQ_DEAD = 21,
CPUHP_BIO_DEAD = 22,
CPUHP_ACPI_CPUDRV_DEAD = 23,
CPUHP_S390_PFAULT_DEAD = 24,
CPUHP_BLK_MQ_DEAD = 25,
CPUHP_FS_BUFF_DEAD = 26,
CPUHP_PRINTK_DEAD = 27,
CPUHP_MM_MEMCQ_DEAD = 28,
CPUHP_PERCPU_CNT_DEAD = 29,
CPUHP_RADIX_DEAD = 30,
CPUHP_PAGE_ALLOC = 31,
CPUHP_NET_DEV_DEAD = 32,
CPUHP_PCI_XGENE_DEAD = 33,
CPUHP_IOMMU_IOVA_DEAD = 34,
CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35,
CPUHP_PADATA_DEAD = 36,
CPUHP_AP_DTPM_CPU_DEAD = 37,
CPUHP_RANDOM_PREPARE = 38,
CPUHP_WORKQUEUE_PREP = 39,
CPUHP_POWER_NUMA_PREPARE = 40,
CPUHP_HRTIMERS_PREPARE = 41,
CPUHP_PROFILE_PREPARE = 42,
CPUHP_X2APIC_PREPARE = 43,
CPUHP_SMPCFD_PREPARE = 44,
CPUHP_RELAY_PREPARE = 45,
CPUHP_MD_RAID5_PREPARE = 46,
CPUHP_RCUTREE_PREP = 47,
CPUHP_CPUIDLE_COUPLED_PREPARE = 48,
CPUHP_POWERPC_PMAC_PREPARE = 49,
CPUHP_POWERPC_MMU_CTX_PREPARE = 50,
CPUHP_XEN_PREPARE = 51,
CPUHP_XEN_EVTCHN_PREPARE = 52,
CPUHP_ARM_SHMOBILE_SCU_PREPARE = 53,
CPUHP_SH_SH3X_PREPARE = 54,
CPUHP_TOPOLOGY_PREPARE = 55,
CPUHP_NET_IUCV_PREPARE = 56,
CPUHP_ARM_BL_PREPARE = 57,
CPUHP_TRACE_RB_PREPARE = 58,
CPUHP_MM_ZS_PREPARE = 59,
CPUHP_MM_ZSWP_POOL_PREPARE = 60,
CPUHP_KVM_PPC_BOOK3S_PREPARE = 61,
CPUHP_ZCOMP_PREPARE = 62,
CPUHP_TIMERS_PREPARE = 63,
CPUHP_MIPS_SOC_PREPARE = 64,
CPUHP_BP_PREPARE_DYN = 65,
CPUHP_BP_PREPARE_DYN_END = 85,
CPUHP_BP_KICK_AP = 86,
CPUHP_BRINGUP_CPU = 87,
CPUHP_AP_IDLE_DEAD = 88,
CPUHP_AP_OFFLINE = 89,
CPUHP_AP_CACHECTRL_STARTING = 90,
CPUHP_AP_SCHED_STARTING = 91,
CPUHP_AP_RCUTREE_DYING = 92,
CPUHP_AP_CPU_PM_STARTING = 93,
CPUHP_AP_IRQ_GIC_STARTING = 94,
CPUHP_AP_IRQ_HIP04_STARTING = 95,
CPUHP_AP_IRQ_APPLE_AIC_STARTING = 96,
CPUHP_AP_IRQ_ARMADA_XP_STARTING = 97,
CPUHP_AP_IRQ_BCM2836_STARTING = 98,
CPUHP_AP_IRQ_MIPS_GIC_STARTING = 99,
CPUHP_AP_IRQ_LOONGARCH_STARTING = 100,
CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 101,
CPUHP_AP_ARM_MVEBU_COHERENCY = 102,
CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 103,
CPUHP_AP_PERF_X86_STARTING = 104,
CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 105,
CPUHP_AP_PERF_X86_CSTATE_STARTING = 106,
CPUHP_AP_PERF_XTENSA_STARTING = 107,
CPUHP_AP_ARM_VFP_STARTING = 108,
CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 109,
CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 110,
CPUHP_AP_PERF_ARM_ACPI_STARTING = 111,
CPUHP_AP_PERF_ARM_STARTING = 112,
CPUHP_AP_PERF_RISCV_STARTING = 113,
CPUHP_AP_ARM_L2X0_STARTING = 114,
CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 115,
CPUHP_AP_ARM_ARCH_TIMER_STARTING = 116,
CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 117,
CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 118,
CPUHP_AP_JCORE_TIMER_STARTING = 119,
CPUHP_AP_ARM_TWD_STARTING = 120,
CPUHP_AP_QCOM_TIMER_STARTING = 121,
CPUHP_AP_TEGRA_TIMER_STARTING = 122,
CPUHP_AP_ARMADA_TIMER_STARTING = 123,
CPUHP_AP_MIPS_GIC_TIMER_STARTING = 124,
CPUHP_AP_ARC_TIMER_STARTING = 125,
CPUHP_AP_RISCV_TIMER_STARTING = 126,
CPUHP_AP_CLINT_TIMER_STARTING = 127,
CPUHP_AP_CSKY_TIMER_STARTING = 128,
CPUHP_AP_TI_GP_TIMER_STARTING = 129,
CPUHP_AP_HYPERV_TIMER_STARTING = 130,
CPUHP_AP_DUMMY_TIMER_STARTING = 131,
CPUHP_AP_ARM_XEN_STARTING = 132,
CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 133,
CPUHP_AP_ARM_CORESIGHT_STARTING = 134,
CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 135,
CPUHP_AP_ARM64_ISNDEP_STARTING = 136,
CPUHP_AP_SMPCFD_DYING = 137,
CPUHP_AP_HRTIMERS_DYING = 138,
CPUHP_AP_TICK_DYING = 139,
CPUHP_AP_X86_TBOOT_DYING = 140,
CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 141,
CPUHP_AP_ONLINE = 142,
CPUHP_TEARDOWN_CPU = 143,
CPUHP_AP_ONLINE_IDLE = 144,
CPUHP_AP_HYPERV_ONLINE = 145,
CPUHP_AP_KVM_ONLINE = 146,
CPUHP_AP_SCHED_WAIT_EMPTY = 147,
CPUHP_AP_SMPBOOT_THREADS = 148,
CPUHP_AP_IRQ_AFFINITY_ONLINE = 149,
CPUHP_AP_BLK_MQ_ONLINE = 150,
CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 151,
CPUHP_AP_X86_INTEL_EPB_ONLINE = 152,
CPUHP_AP_PERF_ONLINE = 153,
CPUHP_AP_PERF_X86_ONLINE = 154,
CPUHP_AP_PERF_X86_UNCORE_ONLINE = 155,
CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 156,
CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 157,
CPUHP_AP_PERF_X86_RAPL_ONLINE = 158,
CPUHP_AP_PERF_X86_CSTATE_ONLINE = 159,
CPUHP_AP_PERF_S390_CF_ONLINE = 160,
CPUHP_AP_PERF_S390_SF_ONLINE = 161,
CPUHP_AP_PERF_ARM_CCI_ONLINE = 162,
CPUHP_AP_PERF_ARM_CCN_ONLINE = 163,
CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 164,
CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 165,
CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 166,
CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 167,
CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 168,
CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 169,
CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 170,
CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 171,
CPUHP_AP_PERF_ARM_L2X0_ONLINE = 172,
CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 173,
CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 174,
CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 175,
CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 176,
CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 177,
CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 178,
CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 179,
CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 180,
CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 181,
CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 182,
CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 183,
CPUHP_AP_PERF_CSKY_ONLINE = 184,
CPUHP_AP_TMIGR_ONLINE = 185,
CPUHP_AP_WATCHDOG_ONLINE = 186,
CPUHP_AP_WORKQUEUE_ONLINE = 187,
CPUHP_AP_RANDOM_ONLINE = 188,
CPUHP_AP_RCUTREE_ONLINE = 189,
CPUHP_AP_BASE_CACHEINFO_ONLINE = 190,
CPUHP_AP_ONLINE_DYN = 191,
CPUHP_AP_ONLINE_DYN_END = 231,
CPUHP_AP_X86_HPET_ONLINE = 232,
CPUHP_AP_X86_KVM_CLK_ONLINE = 233,
CPUHP_AP_ACTIVE = 234,
CPUHP_ONLINE = 235,
};
enum {
IRQ_TYPE_NONE = 0,
IRQ_TYPE_EDGE_RISING = 1,
IRQ_TYPE_EDGE_FALLING = 2,
IRQ_TYPE_EDGE_BOTH = 3,
IRQ_TYPE_LEVEL_HIGH = 4,
IRQ_TYPE_LEVEL_LOW = 8,
IRQ_TYPE_LEVEL_MASK = 12,
IRQ_TYPE_SENSE_MASK = 15,
IRQ_TYPE_DEFAULT = 15,
IRQ_TYPE_PROBE = 16,
IRQ_LEVEL = 256,
IRQ_PER_CPU = 512,
IRQ_NOPROBE = 1024,
IRQ_NOREQUEST = 2048,
IRQ_NOAUTOEN = 4096,
IRQ_NO_BALANCING = 8192,
IRQ_MOVE_PCNTXT = 16384,
IRQ_NESTED_THREAD = 32768,
IRQ_NOTHREAD = 65536,
IRQ_PER_CPU_DEVID = 131072,
IRQ_IS_POLLED = 262144,
IRQ_DISABLE_UNLAZY = 524288,
IRQ_HIDDEN = 1048576,
IRQ_NO_DEBUG = 2097152,
};
enum {
IRQCHIP_FWNODE_REAL = 0,
IRQCHIP_FWNODE_NAMED = 1,
IRQCHIP_FWNODE_NAMED_ID = 2,
};
typedef u64 uint64_t;
typedef phys_addr_t resource_size_t;
enum mod_mem_type {
MOD_TEXT = 0,
MOD_DATA = 1,
MOD_RODATA = 2,
MOD_RO_AFTER_INIT = 3,
MOD_INIT_TEXT = 4,
MOD_INIT_DATA = 5,
MOD_INIT_RODATA = 6,
MOD_MEM_NUM_TYPES = 7,
MOD_INVALID = -1,
};
typedef __u64 Elf64_Off;
struct elf64_shdr {
Elf64_Word sh_name;
Elf64_Word sh_type;
Elf64_Xword sh_flags;
Elf64_Addr sh_addr;
Elf64_Off sh_offset;
Elf64_Xword sh_size;
Elf64_Word sh_link;
Elf64_Word sh_info;
Elf64_Xword sh_addralign;
Elf64_Xword sh_entsize;
};
typedef struct elf64_shdr Elf64_Shdr;
struct elf64_hdr;
typedef struct elf64_hdr Elf64_Ehdr;
struct load_info {
const char *name;
struct module *mod;
Elf64_Ehdr *hdr;
unsigned long len;
Elf64_Shdr *sechdrs;
char *secstrings;
char *strtab;
unsigned long symoffs;
unsigned long stroffs;
unsigned long init_typeoffs;
unsigned long core_typeoffs;
bool sig_ok;
unsigned long mod_kallsyms_init_off;
struct {
unsigned int sym;
unsigned int str;
unsigned int mod;
unsigned int vers;
unsigned int info;
unsigned int pcpu;
} index;
};
struct elf64_hdr {
unsigned char e_ident[16];
Elf64_Half e_type;
Elf64_Half e_machine;
Elf64_Word e_version;
Elf64_Addr e_entry;
Elf64_Off e_phoff;
Elf64_Off e_shoff;
Elf64_Word e_flags;
Elf64_Half e_ehsize;
Elf64_Half e_phentsize;
Elf64_Half e_phnum;
Elf64_Half e_shentsize;
Elf64_Half e_shnum;
Elf64_Half e_shstrndx;
};
typedef int (*cmp_func_t)(const void *, const void *);
struct timens_offsets {
struct timespec64 monotonic;
struct timespec64 boottime;
};
struct time_namespace {
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct ns_common ns;
struct timens_offsets offsets;
struct page *vvar_page;
bool frozen_offsets;
};
struct nsset {
unsigned int flags;
struct nsproxy *nsproxy;
struct fs_struct *fs;
const struct cred *cred;
};
enum refcount_saturation_type {
REFCOUNT_ADD_NOT_ZERO_OVF = 0,
REFCOUNT_ADD_OVF = 1,
REFCOUNT_ADD_UAF = 2,
REFCOUNT_SUB_UAF = 3,
REFCOUNT_DEC_LEAK = 4,
};
enum ucount_type {
UCOUNT_USER_NAMESPACES = 0,
UCOUNT_PID_NAMESPACES = 1,
UCOUNT_UTS_NAMESPACES = 2,
UCOUNT_IPC_NAMESPACES = 3,
UCOUNT_NET_NAMESPACES = 4,
UCOUNT_MNT_NAMESPACES = 5,
UCOUNT_CGROUP_NAMESPACES = 6,
UCOUNT_TIME_NAMESPACES = 7,
UCOUNT_INOTIFY_INSTANCES = 8,
UCOUNT_INOTIFY_WATCHES = 9,
UCOUNT_COUNTS = 10,
};
enum tk_offsets {
TK_OFFS_REAL = 0,
TK_OFFS_BOOT = 1,
TK_OFFS_TAI = 2,
TK_OFFS_MAX = 3,
};
struct vdso_timestamp {
u64 sec;
u64 nsec;
};
struct timens_offset {
s64 sec;
u64 nsec;
};
struct arch_vdso_data {};
struct vdso_data {
u32 seq;
s32 clock_mode;
u64 cycle_last;
u64 mask;
u32 mult;
u32 shift;
union {
struct vdso_timestamp basetime[12];
struct timens_offset offset[12];
};
s32 tz_minuteswest;
s32 tz_dsttime;
u32 hrtimer_res;
u32 __unused;
struct arch_vdso_data arch_data;
};
struct proc_timens_offset {
int clockid;
struct timespec64 val;
};
typedef u64 netdev_features_t;
struct netdev_tc_txq {
u16 count;
u16 offset;
};
enum rx_handler_result {
RX_HANDLER_CONSUMED = 0,
RX_HANDLER_ANOTHER = 1,
RX_HANDLER_EXACT = 2,
RX_HANDLER_PASS = 3,
};
typedef enum rx_handler_result rx_handler_result_t;
struct sk_buff;
typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **);
typedef struct {
struct net __attribute__((btf_type_tag("rcu"))) *net;
} possible_net_t;
typedef u32 xdp_features_t;
struct net_device_stats {
union {
unsigned long rx_packets;
atomic_long_t __rx_packets;
};
union {
unsigned long tx_packets;
atomic_long_t __tx_packets;
};
union {
unsigned long rx_bytes;
atomic_long_t __rx_bytes;
};
union {
unsigned long tx_bytes;
atomic_long_t __tx_bytes;
};
union {
unsigned long rx_errors;
atomic_long_t __rx_errors;
};
union {
unsigned long tx_errors;
atomic_long_t __tx_errors;
};
union {
unsigned long rx_dropped;
atomic_long_t __rx_dropped;
};
union {
unsigned long tx_dropped;
atomic_long_t __tx_dropped;
};
union {
unsigned long multicast;
atomic_long_t __multicast;
};
union {
unsigned long collisions;
atomic_long_t __collisions;
};
union {
unsigned long rx_length_errors;
atomic_long_t __rx_length_errors;
};
union {
unsigned long rx_over_errors;
atomic_long_t __rx_over_errors;
};
union {
unsigned long rx_crc_errors;
atomic_long_t __rx_crc_errors;
};
union {
unsigned long rx_frame_errors;
atomic_long_t __rx_frame_errors;
};
union {
unsigned long rx_fifo_errors;
atomic_long_t __rx_fifo_errors;
};
union {
unsigned long rx_missed_errors;
atomic_long_t __rx_missed_errors;
};
union {
unsigned long tx_aborted_errors;
atomic_long_t __tx_aborted_errors;
};
union {
unsigned long tx_carrier_errors;
atomic_long_t __tx_carrier_errors;
};
union {
unsigned long tx_fifo_errors;
atomic_long_t __tx_fifo_errors;
};
union {
unsigned long tx_heartbeat_errors;
atomic_long_t __tx_heartbeat_errors;
};
union {
unsigned long tx_window_errors;
atomic_long_t __tx_window_errors;
};
union {
unsigned long rx_compressed;
atomic_long_t __rx_compressed;
};
union {
unsigned long tx_compressed;
atomic_long_t __tx_compressed;
};
};
struct netdev_hw_addr_list {
struct list_head list;
int count;
struct rb_root tree;
};
struct ref_tracker_dir {};
enum netdev_ml_priv_type {
ML_PRIV_NONE = 0,
ML_PRIV_CAN = 1,
};
enum netdev_stat_type {
NETDEV_PCPU_STAT_NONE = 0,
NETDEV_PCPU_STAT_LSTATS = 1,
NETDEV_PCPU_STAT_TSTATS = 2,
NETDEV_PCPU_STAT_DSTATS = 3,
};
struct sfp_bus;
struct udp_tunnel_nic;
struct bpf_xdp_link;
struct bpf_xdp_entity {
struct bpf_prog *prog;
struct bpf_xdp_link *link;
};
typedef struct {} netdevice_tracker;
struct net_device_ops;
struct header_ops;
struct netdev_queue;
struct xps_dev_maps;
struct nf_hook_entries;
struct bpf_mprog_entry;
struct pcpu_lstats;
struct pcpu_sw_netstats;
struct pcpu_dstats;
struct inet6_dev;
struct netdev_rx_queue;
struct netdev_name_node;
struct dev_ifalias;
struct xdp_metadata_ops;
struct xsk_tx_metadata_ops;
struct net_device_core_stats;
struct ethtool_ops;
struct ndisc_ops;
struct in_device;
struct wireless_dev;
struct cpu_rmap;
struct Qdisc;
struct xdp_dev_bulk_queue;
struct rtnl_link_ops;
struct netdev_stat_ops;
struct phy_device;
struct udp_tunnel_nic_info;
struct rtnl_hw_stats64;
struct devlink_port;
struct net_device {
__u8 __cacheline_group_begin__net_device_read_tx[0];
unsigned long long priv_flags;
const struct net_device_ops *netdev_ops;
const struct header_ops *header_ops;
struct netdev_queue *_tx;
netdev_features_t gso_partial_features;
unsigned int real_num_tx_queues;
unsigned int gso_max_size;
unsigned int gso_ipv4_max_size;
u16 gso_max_segs;
s16 num_tc;
unsigned int mtu;
unsigned short needed_headroom;
struct netdev_tc_txq tc_to_txq[16];
struct xps_dev_maps __attribute__((btf_type_tag("rcu"))) *xps_maps[2];
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress;
struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_egress;
__u8 __cacheline_group_end__net_device_read_tx[0];
__u8 __cacheline_group_begin__net_device_read_txrx[0];
union {
struct pcpu_lstats __attribute__((btf_type_tag("percpu"))) *lstats;
struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *tstats;
struct pcpu_dstats __attribute__((btf_type_tag("percpu"))) *dstats;
};
unsigned long state;
unsigned int flags;
unsigned short hard_header_len;
netdev_features_t features;
struct inet6_dev __attribute__((btf_type_tag("rcu"))) *ip6_ptr;
__u8 __cacheline_group_end__net_device_read_txrx[0];
__u8 __cacheline_group_begin__net_device_read_rx[0];
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog;
struct list_head ptype_specific;
int ifindex;
unsigned int real_num_rx_queues;
struct netdev_rx_queue *_rx;
unsigned long gro_flush_timeout;
int napi_defer_hard_irqs;
unsigned int gro_max_size;
unsigned int gro_ipv4_max_size;
rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler;
void __attribute__((btf_type_tag("rcu"))) *rx_handler_data;
possible_net_t nd_net;
struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_ingress;
__u8 __cacheline_group_end__net_device_read_rx[0];
char name[16];
struct netdev_name_node *name_node;
struct dev_ifalias __attribute__((btf_type_tag("rcu"))) *ifalias;
unsigned long mem_end;
unsigned long mem_start;
unsigned long base_addr;
struct list_head dev_list;
struct list_head napi_list;
struct list_head unreg_list;
struct list_head close_list;
struct list_head ptype_all;
struct {
struct list_head upper;
struct list_head lower;
} adj_list;
xdp_features_t xdp_features;
const struct xdp_metadata_ops *xdp_metadata_ops;
const struct xsk_tx_metadata_ops *xsk_tx_metadata_ops;
unsigned short gflags;
unsigned short needed_tailroom;
netdev_features_t hw_features;
netdev_features_t wanted_features;
netdev_features_t vlan_features;
netdev_features_t hw_enc_features;
netdev_features_t mpls_features;
unsigned int min_mtu;
unsigned int max_mtu;
unsigned short type;
unsigned char min_header_len;
unsigned char name_assign_type;
int group;
struct net_device_stats stats;
struct net_device_core_stats __attribute__((btf_type_tag("percpu"))) *core_stats;
atomic_t carrier_up_count;
atomic_t carrier_down_count;
const struct ethtool_ops *ethtool_ops;
const struct ndisc_ops *ndisc_ops;
unsigned int operstate;
unsigned char link_mode;
unsigned char if_port;
unsigned char dma;
unsigned char perm_addr[32];
unsigned char addr_assign_type;
unsigned char addr_len;
unsigned char upper_level;
unsigned char lower_level;
unsigned short neigh_priv_len;
unsigned short dev_id;
unsigned short dev_port;
unsigned short padded;
spinlock_t addr_list_lock;
int irq;
struct netdev_hw_addr_list uc;
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
struct kset *queues_kset;
struct list_head unlink_list;
unsigned int promiscuity;
unsigned int allmulti;
bool uc_promisc;
unsigned char nested_level;
struct in_device __attribute__((btf_type_tag("rcu"))) *ip_ptr;
struct wireless_dev *ieee80211_ptr;
const unsigned char *dev_addr;
unsigned int num_rx_queues;
unsigned int xdp_zc_max_segs;
struct netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue;
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_ingress;
unsigned char broadcast[32];
struct cpu_rmap *rx_cpu_rmap;
struct hlist_node index_hlist;
unsigned int num_tx_queues;
struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc;
unsigned int tx_queue_len;
spinlock_t tx_global_lock;
struct xdp_dev_bulk_queue __attribute__((btf_type_tag("percpu"))) *xdp_bulkq;
struct timer_list watchdog_timer;
int watchdog_timeo;
u32 proto_down_reason;
struct list_head todo_list;
int __attribute__((btf_type_tag("percpu"))) *pcpu_refcnt;
struct ref_tracker_dir refcnt_tracker;
struct list_head link_watch_list;
u8 reg_state;
bool dismantle;
enum {
RTNL_LINK_INITIALIZED = 0,
RTNL_LINK_INITIALIZING = 1,
} rtnl_link_state: 16;
bool needs_free_netdev;
void (*priv_destructor)(struct net_device *);
void *ml_priv;
enum netdev_ml_priv_type ml_priv_type;
enum netdev_stat_type pcpu_stat_type: 8;
struct device dev;
const struct attribute_group *sysfs_groups[4];
const struct attribute_group *sysfs_rx_queue_group;
const struct rtnl_link_ops *rtnl_link_ops;
const struct netdev_stat_ops *stat_ops;
unsigned int tso_max_size;
u16 tso_max_segs;
u8 prio_tc_map[16];
struct phy_device *phydev;
struct sfp_bus *sfp_bus;
struct lock_class_key *qdisc_tx_busylock;
bool proto_down;
unsigned int wol_enabled: 1;
unsigned int threaded: 1;
struct list_head net_notifier_list;
const struct udp_tunnel_nic_info *udp_tunnel_nic_info;
struct udp_tunnel_nic *udp_tunnel_nic;
struct bpf_xdp_entity xdp_state[3];
u8 dev_addr_shadow[32];
netdevice_tracker linkwatch_dev_tracker;
netdevice_tracker watchdog_dev_tracker;
netdevice_tracker dev_registered_tracker;
struct rtnl_hw_stats64 *offload_xstats_l3;
struct devlink_port *devlink_port;
struct hlist_head page_pools;
};
enum netdev_tx {
__NETDEV_TX_MIN = -2147483648,
NETDEV_TX_OK = 0,
NETDEV_TX_BUSY = 16,
};
typedef enum netdev_tx netdev_tx_t;
typedef __u16 __be16;
enum tc_setup_type {
TC_QUERY_CAPS = 0,
TC_SETUP_QDISC_MQPRIO = 1,
TC_SETUP_CLSU32 = 2,
TC_SETUP_CLSFLOWER = 3,
TC_SETUP_CLSMATCHALL = 4,
TC_SETUP_CLSBPF = 5,
TC_SETUP_BLOCK = 6,
TC_SETUP_QDISC_CBS = 7,
TC_SETUP_QDISC_RED = 8,
TC_SETUP_QDISC_PRIO = 9,
TC_SETUP_QDISC_MQ = 10,
TC_SETUP_QDISC_ETF = 11,
TC_SETUP_ROOT_QDISC = 12,
TC_SETUP_QDISC_GRED = 13,
TC_SETUP_QDISC_TAPRIO = 14,
TC_SETUP_FT = 15,
TC_SETUP_QDISC_ETS = 16,
TC_SETUP_QDISC_TBF = 17,
TC_SETUP_QDISC_FIFO = 18,
TC_SETUP_QDISC_HTB = 19,
TC_SETUP_ACT = 20,
};
struct ifreq;
struct if_settings;
struct ifmap;
struct neigh_parms;
struct rtnl_link_stats64;
struct ifla_vf_info;
struct ifla_vf_stats;
struct nlattr;
struct ifla_vf_guid;
struct netlink_ext_ack;
struct neighbour;
struct ndmsg;
struct nlmsghdr;
struct netlink_callback;
struct netdev_phys_item_id;
struct netdev_bpf;
struct xdp_frame;
struct xdp_buff;
struct ip_tunnel_parm;
struct net_device_path_ctx;
struct net_device_path;
struct skb_shared_hwtstamps;
struct kernel_hwtstamp_config;
struct net_device_ops {
int (*ndo_init)(struct net_device *);
void (*ndo_uninit)(struct net_device *);
int (*ndo_open)(struct net_device *);
int (*ndo_stop)(struct net_device *);
netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *);
netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t);
u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *);
void (*ndo_change_rx_flags)(struct net_device *, int);
void (*ndo_set_rx_mode)(struct net_device *);
int (*ndo_set_mac_address)(struct net_device *, void *);
int (*ndo_validate_addr)(struct net_device *);
int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int);
int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int);
int (*ndo_siocbond)(struct net_device *, struct ifreq *, int);
int (*ndo_siocwandev)(struct net_device *, struct if_settings *);
int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int);
int (*ndo_set_config)(struct net_device *, struct ifmap *);
int (*ndo_change_mtu)(struct net_device *, int);
int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *);
void (*ndo_tx_timeout)(struct net_device *, unsigned int);
void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *);
bool (*ndo_has_offload_stats)(const struct net_device *, int);
int (*ndo_get_offload_stats)(int, const struct net_device *, void *);
struct net_device_stats * (*ndo_get_stats)(struct net_device *);
int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16);
int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16);
int (*ndo_set_vf_mac)(struct net_device *, int, u8 *);
int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16);
int (*ndo_set_vf_rate)(struct net_device *, int, int, int);
int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool);
int (*ndo_set_vf_trust)(struct net_device *, int, bool);
int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *);
int (*ndo_set_vf_link_state)(struct net_device *, int, int);
int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *);
int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **);
int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *);
int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *);
int (*ndo_set_vf_guid)(struct net_device *, int, u64, int);
int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool);
int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *);
int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32);
int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *);
int (*ndo_del_slave)(struct net_device *, struct net_device *);
struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool);
struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *);
netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t);
int (*ndo_set_features)(struct net_device *, netdev_features_t);
int (*ndo_neigh_construct)(struct net_device *, struct neighbour *);
void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *);
int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *);
int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *);
int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *);
int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *);
int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *);
int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *);
int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *);
int (*ndo_mdb_del_bulk)(struct net_device *, struct nlattr **, struct netlink_ext_ack *);
int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *);
int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *);
int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *);
int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int);
int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16);
int (*ndo_change_carrier)(struct net_device *, bool);
int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *);
int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *);
int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t);
void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *);
void (*ndo_dfwd_del_station)(struct net_device *, void *);
int (*ndo_set_tx_maxrate)(struct net_device *, int, u32);
int (*ndo_get_iflink)(const struct net_device *);
int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *);
void (*ndo_set_rx_headroom)(struct net_device *, int);
int (*ndo_bpf)(struct net_device *, struct netdev_bpf *);
int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32);
struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *);
int (*ndo_xsk_wakeup)(struct net_device *, u32, u32);
int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int);
struct net_device * (*ndo_get_peer_dev)(struct net_device *);
int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *);
ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool);
int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *);
int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *);
};
typedef __u32 __wsum;
typedef unsigned int sk_buff_data_t;
struct skb_ext;
struct sk_buff {
union {
struct {
struct sk_buff *next;
struct sk_buff *prev;
union {
struct net_device *dev;
unsigned long dev_scratch;
};
};
struct rb_node rbnode;
struct list_head list;
struct llist_node ll_node;
};
struct sock *sk;
union {
ktime_t tstamp;
u64 skb_mstamp_ns;
};
char cb[48];
union {
struct {
unsigned long _skb_refdst;
void (*destructor)(struct sk_buff *);
};
struct list_head tcp_tsorted_anchor;
unsigned long _sk_redir;
};
unsigned long _nfct;
unsigned int len;
unsigned int data_len;
__u16 mac_len;
__u16 hdr_len;
__u16 queue_mapping;
__u8 __cloned_offset[0];
__u8 cloned: 1;
__u8 nohdr: 1;
__u8 fclone: 2;
__u8 peeked: 1;
__u8 head_frag: 1;
__u8 pfmemalloc: 1;
__u8 pp_recycle: 1;
__u8 active_extensions;
union {
struct {
__u8 __pkt_type_offset[0];
__u8 pkt_type: 3;
__u8 ignore_df: 1;
__u8 dst_pending_confirm: 1;
__u8 ip_summed: 2;
__u8 ooo_okay: 1;
__u8 __mono_tc_offset[0];
__u8 mono_delivery_time: 1;
__u8 tc_at_ingress: 1;
__u8 tc_skip_classify: 1;
__u8 remcsum_offload: 1;
__u8 csum_complete_sw: 1;
__u8 csum_level: 2;
__u8 inner_protocol_type: 1;
__u8 l4_hash: 1;
__u8 sw_hash: 1;
__u8 wifi_acked_valid: 1;
__u8 wifi_acked: 1;
__u8 no_fcs: 1;
__u8 encapsulation: 1;
__u8 encap_hdr_csum: 1;
__u8 csum_valid: 1;
__u8 ndisc_nodetype: 2;
__u8 nf_trace: 1;
__u8 redirected: 1;
__u8 slow_gro: 1;
__u16 tc_index;
u16 alloc_cpu;
union {
__wsum csum;
struct {
__u16 csum_start;
__u16 csum_offset;
};
};
__u32 priority;
int skb_iif;
__u32 hash;
union {
u32 vlan_all;
struct {
__be16 vlan_proto;
__u16 vlan_tci;
};
};
union {
unsigned int napi_id;
unsigned int sender_cpu;
};
union {
__u32 mark;
__u32 reserved_tailroom;
};
union {
__be16 inner_protocol;
__u8 inner_ipproto;
};
__u16 inner_transport_header;
__u16 inner_network_header;
__u16 inner_mac_header;
__be16 protocol;
__u16 transport_header;
__u16 network_header;
__u16 mac_header;
};
struct {
__u8 __pkt_type_offset[0];
__u8 pkt_type: 3;
__u8 ignore_df: 1;
__u8 dst_pending_confirm: 1;
__u8 ip_summed: 2;
__u8 ooo_okay: 1;
__u8 __mono_tc_offset[0];
__u8 mono_delivery_time: 1;
__u8 tc_at_ingress: 1;
__u8 tc_skip_classify: 1;
__u8 remcsum_offload: 1;
__u8 csum_complete_sw: 1;
__u8 csum_level: 2;
__u8 inner_protocol_type: 1;
__u8 l4_hash: 1;
__u8 sw_hash: 1;
__u8 wifi_acked_valid: 1;
__u8 wifi_acked: 1;
__u8 no_fcs: 1;
__u8 encapsulation: 1;
__u8 encap_hdr_csum: 1;
__u8 csum_valid: 1;
__u8 ndisc_nodetype: 2;
__u8 nf_trace: 1;
__u8 redirected: 1;
__u8 slow_gro: 1;
__u16 tc_index;
u16 alloc_cpu;
union {
__wsum csum;
struct {
__u16 csum_start;
__u16 csum_offset;
};
};
__u32 priority;
int skb_iif;
__u32 hash;
union {
u32 vlan_all;
struct {
__be16 vlan_proto;
__u16 vlan_tci;
};
};
union {
unsigned int napi_id;
unsigned int sender_cpu;
};
union {
__u32 mark;
__u32 reserved_tailroom;
};
union {
__be16 inner_protocol;
__u8 inner_ipproto;
};
__u16 inner_transport_header;
__u16 inner_network_header;
__u16 inner_mac_header;
__be16 protocol;
__u16 transport_header;
__u16 network_header;
__u16 mac_header;
} headers;
};
sk_buff_data_t tail;
sk_buff_data_t end;
unsigned char *head;
unsigned char *data;
unsigned int truesize;
refcount_t users;
struct skb_ext *extensions;
};
struct skb_ext {
refcount_t refcnt;
u8 offset[1];
u8 chunks;
long: 0;
char data[0];
};
typedef unsigned short __kernel_sa_family_t;
typedef __kernel_sa_family_t sa_family_t;
struct sockaddr {
sa_family_t sa_family;
union {
char sa_data_min[14];
struct {
struct {} __empty_sa_data;
char sa_data[0];
};
};
};
struct ifmap {
unsigned long mem_start;
unsigned long mem_end;
unsigned short base_addr;
unsigned char irq;
unsigned char dma;
unsigned char port;
};
typedef struct {
unsigned short encoding;
unsigned short parity;
} raw_hdlc_proto;
typedef struct {
unsigned int interval;
unsigned int timeout;
} cisco_proto;
typedef struct {
unsigned int t391;
unsigned int t392;
unsigned int n391;
unsigned int n392;
unsigned int n393;
unsigned short lmi;
unsigned short dce;
} fr_proto;
typedef struct {
unsigned int dlci;
} fr_proto_pvc;
typedef struct {
unsigned int dlci;
char master[16];
} fr_proto_pvc_info;
typedef struct {
unsigned short dce;
unsigned int modulo;
unsigned int window;
unsigned int t1;
unsigned int t2;
unsigned int n2;
} x25_hdlc_proto;
typedef struct {
unsigned int clock_rate;
unsigned int clock_type;
unsigned short loopback;
} sync_serial_settings;
typedef struct {
unsigned int clock_rate;
unsigned int clock_type;
unsigned short loopback;
unsigned int slot_map;
} te1_settings;
struct if_settings {
unsigned int type;
unsigned int size;
union {
raw_hdlc_proto __attribute__((btf_type_tag("user"))) *raw_hdlc;
cisco_proto __attribute__((btf_type_tag("user"))) *cisco;
fr_proto __attribute__((btf_type_tag("user"))) *fr;
fr_proto_pvc __attribute__((btf_type_tag("user"))) *fr_pvc;
fr_proto_pvc_info __attribute__((btf_type_tag("user"))) *fr_pvc_info;
x25_hdlc_proto __attribute__((btf_type_tag("user"))) *x25;
sync_serial_settings __attribute__((btf_type_tag("user"))) *sync;
te1_settings __attribute__((btf_type_tag("user"))) *te1;
} ifs_ifsu;
};
struct ifreq {
union {
char ifrn_name[16];
} ifr_ifrn;
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
struct sockaddr ifru_broadaddr;
struct sockaddr ifru_netmask;
struct sockaddr ifru_hwaddr;
short ifru_flags;
int ifru_ivalue;
int ifru_mtu;
struct ifmap ifru_map;
char ifru_slave[16];
char ifru_newname[16];
void __attribute__((btf_type_tag("user"))) *ifru_data;
struct if_settings ifru_settings;
} ifr_ifru;
};
struct rtnl_link_stats64 {
__u64 rx_packets;
__u64 tx_packets;
__u64 rx_bytes;
__u64 tx_bytes;
__u64 rx_errors;
__u64 tx_errors;
__u64 rx_dropped;
__u64 tx_dropped;
__u64 multicast;
__u64 collisions;
__u64 rx_length_errors;
__u64 rx_over_errors;
__u64 rx_crc_errors;
__u64 rx_frame_errors;
__u64 rx_fifo_errors;
__u64 rx_missed_errors;
__u64 tx_aborted_errors;
__u64 tx_carrier_errors;
__u64 tx_fifo_errors;
__u64 tx_heartbeat_errors;
__u64 tx_window_errors;
__u64 rx_compressed;
__u64 tx_compressed;
__u64 rx_nohandler;
__u64 rx_otherhost_dropped;
};
struct ifla_vf_info {
__u32 vf;
__u8 mac[32];
__u32 vlan;
__u32 qos;
__u32 spoofchk;
__u32 linkstate;
__u32 min_tx_rate;
__u32 max_tx_rate;
__u32 rss_query_en;
__u32 trusted;
__be16 vlan_proto;
};
struct ifla_vf_stats {
__u64 rx_packets;
__u64 tx_packets;
__u64 rx_bytes;
__u64 tx_bytes;
__u64 broadcast;
__u64 multicast;
__u64 rx_dropped;
__u64 tx_dropped;
};
struct nlattr {
__u16 nla_len;
__u16 nla_type;
};
struct ifla_vf_guid {
__u32 vf;
__u64 guid;
};
struct nla_policy;
struct netlink_ext_ack {
const char *_msg;
const struct nlattr *bad_attr;
const struct nla_policy *policy;
const struct nlattr *miss_nest;
u16 miss_type;
u8 cookie[20];
u8 cookie_len;
char _msg_buf[80];
};
struct netlink_range_validation;
struct netlink_range_validation_signed;
struct nla_policy {
u8 type;
u8 validation_type;
u16 len;
union {
u16 strict_start_type;
const u32 bitfield32_valid;
const u32 mask;
const char *reject_message;
const struct nla_policy *nested_policy;
const struct netlink_range_validation *range;
const struct netlink_range_validation_signed *range_signed;
struct {
s16 min;
s16 max;
};
int (*validate)(const struct nlattr *, struct netlink_ext_ack *);
};
};
struct netlink_range_validation {
u64 min;
u64 max;
};
struct netlink_range_validation_signed {
s64 min;
s64 max;
};
struct ndmsg {
__u8 ndm_family;
__u8 ndm_pad1;
__u16 ndm_pad2;
__s32 ndm_ifindex;
__u16 ndm_state;
__u8 ndm_flags;
__u8 ndm_type;
};
struct nlmsghdr {
__u32 nlmsg_len;
__u16 nlmsg_type;
__u16 nlmsg_flags;
__u32 nlmsg_seq;
__u32 nlmsg_pid;
};
struct netlink_callback {
struct sk_buff *skb;
const struct nlmsghdr *nlh;
int (*dump)(struct sk_buff *, struct netlink_callback *);
int (*done)(struct netlink_callback *);
void *data;
struct module *module;
struct netlink_ext_ack *extack;
u16 family;
u16 answer_flags;
u32 min_dump_alloc;
unsigned int prev_seq;
unsigned int seq;
int flags;
bool strict_check;
union {
u8 ctx[48];
long args[6];
};
};
struct netdev_phys_item_id {
unsigned char id[32];
unsigned char id_len;
};
enum bpf_netdev_command {
XDP_SETUP_PROG = 0,
XDP_SETUP_PROG_HW = 1,
BPF_OFFLOAD_MAP_ALLOC = 2,
BPF_OFFLOAD_MAP_FREE = 3,
XDP_SETUP_XSK_POOL = 4,
};
struct bpf_offloaded_map;
struct xsk_buff_pool;
struct netdev_bpf {
enum bpf_netdev_command command;
union {
struct {
u32 flags;
struct bpf_prog *prog;
struct netlink_ext_ack *extack;
};
struct {
struct bpf_offloaded_map *offmap;
};
struct {
struct xsk_buff_pool *pool;
u16 queue_id;
} xsk;
};
};
struct bpf_map_dev_ops;
struct bpf_offloaded_map {
struct bpf_map map;
struct net_device *netdev;
const struct bpf_map_dev_ops *dev_ops;
void *dev_priv;
struct list_head offloads;
};
struct bpf_map_dev_ops {
int (*map_get_next_key)(struct bpf_offloaded_map *, void *, void *);
int (*map_lookup_elem)(struct bpf_offloaded_map *, void *, void *);
int (*map_update_elem)(struct bpf_offloaded_map *, void *, void *, u64);
int (*map_delete_elem)(struct bpf_offloaded_map *, void *);
};
struct net_device_path_ctx {
const struct net_device *dev;
u8 daddr[6];
int num_vlans;
struct {
u16 id;
__be16 proto;
} vlan[2];
};
enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
DEV_PATH_VLAN = 1,
DEV_PATH_BRIDGE = 2,
DEV_PATH_PPPOE = 3,
DEV_PATH_DSA = 4,
DEV_PATH_MTK_WDMA = 5,
};
struct net_device_path {
enum net_device_path_type type;
const struct net_device *dev;
union {
struct {
u16 id;
__be16 proto;
u8 h_dest[6];
} encap;
struct {
enum {
DEV_PATH_BR_VLAN_KEEP = 0,
DEV_PATH_BR_VLAN_TAG = 1,
DEV_PATH_BR_VLAN_UNTAG = 2,
DEV_PATH_BR_VLAN_UNTAG_HW = 3,
} vlan_mode;
u16 vlan_id;
__be16 vlan_proto;
} bridge;
struct {
int port;
u16 proto;
} dsa;
struct {
u8 wdma_idx;
u8 queue;
u16 wcid;
u8 bss;
u8 amsdu;
} mtk_wdma;
};
};
struct skb_shared_hwtstamps {
union {
ktime_t hwtstamp;
void *netdev_data;
};
};
struct hh_cache;
struct header_ops {
int (*create)(struct sk_buff *, struct net_device *, unsigned short, const void *, const void *, unsigned int);
int (*parse)(const struct sk_buff *, unsigned char *);
int (*cache)(const struct neighbour *, struct hh_cache *, __be16);
void (*cache_update)(struct hh_cache *, const struct net_device *, const unsigned char *);
bool (*validate)(const char *, unsigned int);
__be16 (*parse_protocol)(const struct sk_buff *);
};
struct sk_buff_list {
struct sk_buff *next;
struct sk_buff *prev;
};
struct sk_buff_head {
union {
struct {
struct sk_buff *next;
struct sk_buff *prev;
};
struct sk_buff_list list;
};
__u32 qlen;
spinlock_t lock;
};
struct hh_cache {
unsigned int hh_len;
seqlock_t hh_lock;
unsigned long hh_data[12];
};
struct neigh_table;
struct neigh_ops;
struct neighbour {
struct neighbour __attribute__((btf_type_tag("rcu"))) *next;
struct neigh_table *tbl;
struct neigh_parms *parms;
unsigned long confirmed;
unsigned long updated;
rwlock_t lock;
refcount_t refcnt;
unsigned int arp_queue_len_bytes;
struct sk_buff_head arp_queue;
struct timer_list timer;
unsigned long used;
atomic_t probes;
u8 nud_state;
u8 type;
u8 dead;
u8 protocol;
u32 flags;
seqlock_t ha_lock;
unsigned char ha[32];
struct hh_cache hh;
int (*output)(struct neighbour *, struct sk_buff *);
const struct neigh_ops *ops;
struct list_head gc_list;
struct list_head managed_list;
struct callback_head rcu;
struct net_device *dev;
netdevice_tracker dev_tracker;
u8 primary_key[0];
};
struct dql {
unsigned int num_queued;
unsigned int adj_limit;
unsigned int last_obj_cnt;
unsigned long history_head;
unsigned long history[4];
long: 64;
unsigned int limit;
unsigned int num_completed;
unsigned int prev_ovlimit;
unsigned int prev_num_queued;
unsigned int prev_last_obj_cnt;
unsigned int lowest_slack;
unsigned long slack_start_time;
unsigned int max_limit;
unsigned int min_limit;
unsigned int slack_hold_time;
unsigned short stall_thrs;
unsigned short stall_max;
unsigned long last_reap;
unsigned long stall_cnt;
};
struct napi_struct;
struct netdev_queue {
struct net_device *dev;
netdevice_tracker dev_tracker;
struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc;
struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping;
struct kobject kobj;
int numa_node;
unsigned long tx_maxrate;
atomic_long_t trans_timeout;
struct net_device *sb_dev;
struct napi_struct *napi;
spinlock_t _xmit_lock;
int xmit_lock_owner;
unsigned long trans_start;
unsigned long state;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct dql dql;
};
struct qdisc_skb_head {
struct sk_buff *head;
struct sk_buff *tail;
__u32 qlen;
spinlock_t lock;
};
struct gnet_stats_basic_sync {
u64_stats_t bytes;
u64_stats_t packets;
struct u64_stats_sync syncp;
};
struct gnet_stats_queue {
__u32 qlen;
__u32 backlog;
__u32 drops;
__u32 requeues;
__u32 overlimits;
};
struct Qdisc_ops;
struct qdisc_size_table;
struct net_rate_estimator;
struct Qdisc {
int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
struct sk_buff * (*dequeue)(struct Qdisc *);
unsigned int flags;
u32 limit;
const struct Qdisc_ops *ops;
struct qdisc_size_table __attribute__((btf_type_tag("rcu"))) *stab;
struct hlist_node hash;
u32 handle;
u32 parent;
struct netdev_queue *dev_queue;
struct net_rate_estimator __attribute__((btf_type_tag("rcu"))) *rate_est;
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats;
int pad;
refcount_t refcnt;
long: 64;
long: 64;
long: 64;
struct sk_buff_head gso_skb;
struct qdisc_skb_head q;
struct gnet_stats_basic_sync bstats;
struct gnet_stats_queue qstats;
unsigned long state;
unsigned long state2;
struct Qdisc *next_sched;
struct sk_buff_head skb_bad_txq;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t busylock;
spinlock_t seqlock;
struct callback_head rcu;
netdevice_tracker dev_tracker;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long privdata[0];
};
struct Qdisc_class_ops;
struct gnet_dump;
struct Qdisc_ops {
struct Qdisc_ops *next;
const struct Qdisc_class_ops *cl_ops;
char id[16];
int priv_size;
unsigned int static_flags;
int (*enqueue)(struct sk_buff *, struct Qdisc *, struct sk_buff **);
struct sk_buff * (*dequeue)(struct Qdisc *);
struct sk_buff * (*peek)(struct Qdisc *);
int (*init)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
void (*reset)(struct Qdisc *);
void (*destroy)(struct Qdisc *);
int (*change)(struct Qdisc *, struct nlattr *, struct netlink_ext_ack *);
void (*attach)(struct Qdisc *);
int (*change_tx_queue_len)(struct Qdisc *, unsigned int);
void (*change_real_num_tx)(struct Qdisc *, unsigned int);
int (*dump)(struct Qdisc *, struct sk_buff *);
int (*dump_stats)(struct Qdisc *, struct gnet_dump *);
void (*ingress_block_set)(struct Qdisc *, u32);
void (*egress_block_set)(struct Qdisc *, u32);
u32 (*ingress_block_get)(struct Qdisc *);
u32 (*egress_block_get)(struct Qdisc *);
struct module *owner;
};
struct tcmsg;
struct qdisc_walker;
struct tcf_block;
struct Qdisc_class_ops {
unsigned int flags;
struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
int (*graft)(struct Qdisc *, unsigned long, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *);
struct Qdisc * (*leaf)(struct Qdisc *, unsigned long);
void (*qlen_notify)(struct Qdisc *, unsigned long);
unsigned long (*find)(struct Qdisc *, u32);
int (*change)(struct Qdisc *, u32, u32, struct nlattr **, unsigned long *, struct netlink_ext_ack *);
int (*delete)(struct Qdisc *, unsigned long, struct netlink_ext_ack *);
void (*walk)(struct Qdisc *, struct qdisc_walker *);
struct tcf_block * (*tcf_block)(struct Qdisc *, unsigned long, struct netlink_ext_ack *);
unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, u32);
void (*unbind_tcf)(struct Qdisc *, unsigned long);
int (*dump)(struct Qdisc *, unsigned long, struct sk_buff *, struct tcmsg *);
int (*dump_stats)(struct Qdisc *, unsigned long, struct gnet_dump *);
};
struct tcmsg {
unsigned char tcm_family;
unsigned char tcm__pad1;
unsigned short tcm__pad2;
int tcm_ifindex;
__u32 tcm_handle;
__u32 tcm_parent;
__u32 tcm_info;
};
struct flow_block {
struct list_head cb_list;
};
struct tcf_chain;
struct tcf_block {
struct xarray ports;
struct mutex lock;
struct list_head chain_list;
u32 index;
u32 classid;
refcount_t refcnt;
struct net *net;
struct Qdisc *q;
struct rw_semaphore cb_lock;
struct flow_block flow_block;
struct list_head owner_list;
bool keep_dst;
atomic_t offloadcnt;
unsigned int nooffloaddevcnt;
unsigned int lockeddevcnt;
struct {
struct tcf_chain *chain;
struct list_head filter_chain_list;
} chain0;
struct callback_head rcu;
struct hlist_head proto_destroy_ht[128];
struct mutex proto_destroy_lock;
};
struct notifier_block;
struct raw_notifier_head {
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
};
struct prot_inuse;
struct netns_core {
struct ctl_table_header *sysctl_hdr;
int sysctl_somaxconn;
int sysctl_optmem_max;
u8 sysctl_txrehash;
struct prot_inuse __attribute__((btf_type_tag("percpu"))) *prot_inuse;
struct cpumask *rps_default_mask;
};
struct ipstats_mib;
struct tcp_mib;
struct linux_mib;
struct udp_mib;
struct icmp_mib;
struct icmpmsg_mib;
struct icmpv6_mib;
struct icmpv6msg_mib;
struct netns_mib {
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics;
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics;
struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics;
struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics;
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics;
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6;
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics;
struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6;
struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics;
struct icmpmsg_mib *icmpmsg_statistics;
struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics;
struct icmpv6msg_mib *icmpv6msg_statistics;
struct proc_dir_entry *proc_net_devsnmp6;
};
struct netns_packet {
struct mutex sklist_lock;
struct hlist_head sklist;
};
struct unix_table {
spinlock_t *locks;
struct hlist_head *buckets;
};
struct netns_unix {
struct unix_table table;
int sysctl_max_dgram_qlen;
struct ctl_table_header *ctl;
};
struct blocking_notifier_head {
struct rw_semaphore rwsem;
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
};
struct netns_nexthop {
struct rb_root rb_root;
struct hlist_head *devhash;
unsigned int seq;
u32 last_id_allocated;
struct blocking_notifier_head notifier_chain;
};
struct inet_hashinfo;
struct inet_timewait_death_row {
refcount_t tw_refcount;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct inet_hashinfo *hashinfo;
int sysctl_max_tw_buckets;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct local_ports {
u32 range;
bool warned;
};
struct ping_group_range {
seqlock_t lock;
kgid_t range[2];
};
typedef struct {
u64 key[2];
} siphash_key_t;
struct udp_table;
struct ipv4_devconf;
struct ip_ra_chain;
struct inet_peer_base;
struct fqdir;
struct tcp_congestion_ops;
struct tcp_fastopen_context;
struct fib_notifier_ops;
struct netns_ipv4 {
__u8 __cacheline_group_begin__netns_ipv4_read_tx[0];
u8 sysctl_tcp_early_retrans;
u8 sysctl_tcp_tso_win_divisor;
u8 sysctl_tcp_tso_rtt_log;
u8 sysctl_tcp_autocorking;
int sysctl_tcp_min_snd_mss;
unsigned int sysctl_tcp_notsent_lowat;
int sysctl_tcp_limit_output_bytes;
int sysctl_tcp_min_rtt_wlen;
int sysctl_tcp_wmem[3];
u8 sysctl_ip_fwd_use_pmtu;
__u8 __cacheline_group_end__netns_ipv4_read_tx[0];
__u8 __cacheline_group_begin__netns_ipv4_read_txrx[0];
u8 sysctl_tcp_moderate_rcvbuf;
__u8 __cacheline_group_end__netns_ipv4_read_txrx[0];
__u8 __cacheline_group_begin__netns_ipv4_read_rx[0];
u8 sysctl_ip_early_demux;
u8 sysctl_tcp_early_demux;
int sysctl_tcp_reordering;
int sysctl_tcp_rmem[3];
__u8 __cacheline_group_end__netns_ipv4_read_rx[0];
long: 64;
struct inet_timewait_death_row tcp_death_row;
struct udp_table *udp_table;
struct ctl_table_header *forw_hdr;
struct ctl_table_header *frags_hdr;
struct ctl_table_header *ipv4_hdr;
struct ctl_table_header *route_hdr;
struct ctl_table_header *xfrm4_hdr;
struct ipv4_devconf *devconf_all;
struct ipv4_devconf *devconf_dflt;
struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *ra_chain;
struct mutex ra_mutex;
bool fib_has_custom_local_routes;
bool fib_offload_disabled;
u8 sysctl_tcp_shrink_window;
struct hlist_head *fib_table_hash;
struct sock *fibnl;
struct sock *mc_autojoin_sk;
struct inet_peer_base *peers;
struct fqdir *fqdir;
u8 sysctl_icmp_echo_ignore_all;
u8 sysctl_icmp_echo_enable_probe;
u8 sysctl_icmp_echo_ignore_broadcasts;
u8 sysctl_icmp_ignore_bogus_error_responses;
u8 sysctl_icmp_errors_use_inbound_ifaddr;
int sysctl_icmp_ratelimit;
int sysctl_icmp_ratemask;
u32 ip_rt_min_pmtu;
int ip_rt_mtu_expires;
int ip_rt_min_advmss;
struct local_ports ip_local_ports;
u8 sysctl_tcp_ecn;
u8 sysctl_tcp_ecn_fallback;
u8 sysctl_ip_default_ttl;
u8 sysctl_ip_no_pmtu_disc;
u8 sysctl_ip_fwd_update_priority;
u8 sysctl_ip_nonlocal_bind;
u8 sysctl_ip_autobind_reuse;
u8 sysctl_ip_dynaddr;
u8 sysctl_udp_early_demux;
u8 sysctl_nexthop_compat_mode;
u8 sysctl_fwmark_reflect;
u8 sysctl_tcp_fwmark_accept;
u8 sysctl_tcp_mtu_probing;
int sysctl_tcp_mtu_probe_floor;
int sysctl_tcp_base_mss;
int sysctl_tcp_probe_threshold;
u32 sysctl_tcp_probe_interval;
int sysctl_tcp_keepalive_time;
int sysctl_tcp_keepalive_intvl;
u8 sysctl_tcp_keepalive_probes;
u8 sysctl_tcp_syn_retries;
u8 sysctl_tcp_synack_retries;
u8 sysctl_tcp_syncookies;
u8 sysctl_tcp_migrate_req;
u8 sysctl_tcp_comp_sack_nr;
u8 sysctl_tcp_backlog_ack_defer;
u8 sysctl_tcp_pingpong_thresh;
u8 sysctl_tcp_retries1;
u8 sysctl_tcp_retries2;
u8 sysctl_tcp_orphan_retries;
u8 sysctl_tcp_tw_reuse;
int sysctl_tcp_fin_timeout;
u8 sysctl_tcp_sack;
u8 sysctl_tcp_window_scaling;
u8 sysctl_tcp_timestamps;
u8 sysctl_tcp_recovery;
u8 sysctl_tcp_thin_linear_timeouts;
u8 sysctl_tcp_slow_start_after_idle;
u8 sysctl_tcp_retrans_collapse;
u8 sysctl_tcp_stdurg;
u8 sysctl_tcp_rfc1337;
u8 sysctl_tcp_abort_on_overflow;
u8 sysctl_tcp_fack;
int sysctl_tcp_max_reordering;
int sysctl_tcp_adv_win_scale;
u8 sysctl_tcp_dsack;
u8 sysctl_tcp_app_win;
u8 sysctl_tcp_frto;
u8 sysctl_tcp_nometrics_save;
u8 sysctl_tcp_no_ssthresh_metrics_save;
u8 sysctl_tcp_workaround_signed_windows;
int sysctl_tcp_challenge_ack_limit;
u8 sysctl_tcp_min_tso_segs;
u8 sysctl_tcp_reflect_tos;
int sysctl_tcp_invalid_ratelimit;
int sysctl_tcp_pacing_ss_ratio;
int sysctl_tcp_pacing_ca_ratio;
unsigned int sysctl_tcp_child_ehash_entries;
unsigned long sysctl_tcp_comp_sack_delay_ns;
unsigned long sysctl_tcp_comp_sack_slack_ns;
int sysctl_max_syn_backlog;
int sysctl_tcp_fastopen;
const struct tcp_congestion_ops __attribute__((btf_type_tag("rcu"))) *tcp_congestion_control;
struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *tcp_fastopen_ctx;
unsigned int sysctl_tcp_fastopen_blackhole_timeout;
atomic_t tfo_active_disable_times;
unsigned long tfo_active_disable_stamp;
u32 tcp_challenge_timestamp;
u32 tcp_challenge_count;
u8 sysctl_tcp_plb_enabled;
u8 sysctl_tcp_plb_idle_rehash_rounds;
u8 sysctl_tcp_plb_rehash_rounds;
u8 sysctl_tcp_plb_suspend_rto_sec;
int sysctl_tcp_plb_cong_thresh;
int sysctl_udp_wmem_min;
int sysctl_udp_rmem_min;
u8 sysctl_fib_notify_on_flag_change;
u8 sysctl_tcp_syn_linear_timeouts;
u8 sysctl_igmp_llm_reports;
int sysctl_igmp_max_memberships;
int sysctl_igmp_max_msf;
int sysctl_igmp_qrv;
struct ping_group_range ping_group_range;
atomic_t dev_addr_genid;
unsigned int sysctl_udp_child_hash_entries;
unsigned long *sysctl_local_reserved_ports;
int sysctl_ip_prot_sock;
struct fib_notifier_ops *notifier_ops;
unsigned int fib_seq;
struct fib_notifier_ops *ipmr_notifier_ops;
unsigned int ipmr_seq;
atomic_t rt_genid;
siphash_key_t ip_id_key;
};
struct dst_entry;
struct dst_ops {
unsigned short family;
unsigned int gc_thresh;
void (*gc)(struct dst_ops *);
struct dst_entry * (*check)(struct dst_entry *, __u32);
unsigned int (*default_advmss)(const struct dst_entry *);
unsigned int (*mtu)(const struct dst_entry *);
u32 * (*cow_metrics)(struct dst_entry *, unsigned long);
void (*destroy)(struct dst_entry *);
void (*ifdown)(struct dst_entry *, struct net_device *);
struct dst_entry * (*negative_advice)(struct dst_entry *);
void (*link_failure)(struct sk_buff *);
void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool);
void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *);
int (*local_out)(struct net *, struct sock *, struct sk_buff *);
struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *);
void (*confirm_neigh)(const struct dst_entry *, const void *);
struct kmem_cache *kmem_cachep;
struct percpu_counter pcpuc_entries;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct netns_sysctl_ipv6 {
struct ctl_table_header *hdr;
struct ctl_table_header *route_hdr;
struct ctl_table_header *icmp_hdr;
struct ctl_table_header *frags_hdr;
struct ctl_table_header *xfrm6_hdr;
int flush_delay;
int ip6_rt_max_size;
int ip6_rt_gc_min_interval;
int ip6_rt_gc_timeout;
int ip6_rt_gc_interval;
int ip6_rt_gc_elasticity;
int ip6_rt_mtu_expires;
int ip6_rt_min_advmss;
u32 multipath_hash_fields;
u8 multipath_hash_policy;
u8 bindv6only;
u8 flowlabel_consistency;
u8 auto_flowlabels;
int icmpv6_time;
u8 icmpv6_echo_ignore_all;
u8 icmpv6_echo_ignore_multicast;
u8 icmpv6_echo_ignore_anycast;
unsigned long icmpv6_ratemask[4];
unsigned long *icmpv6_ratemask_ptr;
u8 anycast_src_echo_reply;
u8 ip_nonlocal_bind;
u8 fwmark_reflect;
u8 flowlabel_state_ranges;
int idgen_retries;
int idgen_delay;
int flowlabel_reflect;
int max_dst_opts_cnt;
int max_hbh_opts_cnt;
int max_dst_opts_len;
int max_hbh_opts_len;
int seg6_flowlabel;
u32 ioam6_id;
u64 ioam6_id_wide;
u8 skip_notify_on_dev_down;
u8 fib_notify_on_flag_change;
u8 icmpv6_error_anycast_as_unicast;
};
struct ipv6_devconf;
struct fib6_info;
struct rt6_info;
struct rt6_statistics;
struct fib6_table;
struct seg6_pernet_data;
struct ioam6_pernet_data;
struct netns_ipv6 {
struct dst_ops ip6_dst_ops;
struct netns_sysctl_ipv6 sysctl;
struct ipv6_devconf *devconf_all;
struct ipv6_devconf *devconf_dflt;
struct inet_peer_base *peers;
struct fqdir *fqdir;
struct fib6_info *fib6_null_entry;
struct rt6_info *ip6_null_entry;
struct rt6_statistics *rt6_stats;
struct timer_list ip6_fib_timer;
struct hlist_head *fib_table_hash;
struct fib6_table *fib6_main_tbl;
struct list_head fib6_walkers;
rwlock_t fib6_walker_lock;
spinlock_t fib6_gc_lock;
atomic_t ip6_rt_gc_expire;
unsigned long ip6_rt_last_gc;
unsigned char flowlabel_has_excl;
struct sock *ndisc_sk;
struct sock *tcp_sk;
struct sock *igmp_sk;
struct sock *mc_autojoin_sk;
struct hlist_head *inet6_addr_lst;
spinlock_t addrconf_hash_lock;
struct delayed_work addr_chk_work;
atomic_t dev_addr_genid;
atomic_t fib6_sernum;
struct seg6_pernet_data *seg6_data;
struct fib_notifier_ops *notifier_ops;
struct fib_notifier_ops *ip6mr_notifier_ops;
unsigned int ipmr_seq;
struct {
struct hlist_head head;
spinlock_t lock;
u32 seq;
} ip6addrlbl_table;
struct ioam6_pernet_data *ioam6_data;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct nf_logger;
struct netns_nf {
struct proc_dir_entry *proc_netfilter;
const struct nf_logger __attribute__((btf_type_tag("rcu"))) *nf_loggers[11];
struct ctl_table_header *nf_log_dir_header;
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv4[5];
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv6[5];
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_bridge[5];
unsigned int defrag_ipv4_users;
unsigned int defrag_ipv6_users;
};
struct nf_ct_event_notifier;
struct nf_generic_net {
unsigned int timeout;
};
struct nf_tcp_net {
unsigned int timeouts[14];
u8 tcp_loose;
u8 tcp_be_liberal;
u8 tcp_max_retrans;
u8 tcp_ignore_invalid_rst;
};
struct nf_udp_net {
unsigned int timeouts[2];
};
struct nf_icmp_net {
unsigned int timeout;
};
struct nf_ip_net {
struct nf_generic_net generic;
struct nf_tcp_net tcp;
struct nf_udp_net udp;
struct nf_icmp_net icmp;
struct nf_icmp_net icmpv6;
};
struct ip_conntrack_stat;
struct netns_ct {
u8 sysctl_log_invalid;
u8 sysctl_events;
u8 sysctl_acct;
u8 sysctl_tstamp;
u8 sysctl_checksum;
struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat;
struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb;
struct nf_ip_net nf_ct_proto;
};
struct netns_nftables {
u8 gencursor;
};
struct netns_bpf {
struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *run_array[2];
struct bpf_prog *progs[2];
struct list_head links[2];
};
struct uevent_sock;
struct net_generic;
struct net {
refcount_t passive;
spinlock_t rules_mod_lock;
unsigned int dev_base_seq;
u32 ifindex;
spinlock_t nsid_lock;
atomic_t fnhe_genid;
struct list_head list;
struct list_head exit_list;
struct llist_node cleanup_list;
struct key_tag *key_domain;
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct idr netns_ids;
struct ns_common ns;
struct ref_tracker_dir refcnt_tracker;
struct ref_tracker_dir notrefcnt_tracker;
struct list_head dev_base_head;
struct proc_dir_entry *proc_net;
struct proc_dir_entry *proc_net_stat;
struct ctl_table_set sysctls;
struct sock *rtnl;
struct sock *genl_sock;
struct uevent_sock *uevent_sock;
struct hlist_head *dev_name_head;
struct hlist_head *dev_index_head;
struct xarray dev_by_index;
struct raw_notifier_head netdev_chain;
u32 hash_mix;
struct net_device *loopback_dev;
struct list_head rules_ops;
struct netns_core core;
struct netns_mib mib;
struct netns_packet packet;
struct netns_unix unx;
struct netns_nexthop nexthop;
long: 64;
long: 64;
long: 64;
struct netns_ipv4 ipv4;
struct netns_ipv6 ipv6;
struct netns_nf nf;
struct netns_ct ct;
struct netns_nftables nft;
struct net_generic __attribute__((btf_type_tag("rcu"))) *gen;
struct netns_bpf bpf;
u64 net_cookie;
struct sock *diag_nlsk;
long: 64;
long: 64;
};
typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *);
struct notifier_block {
notifier_fn_t notifier_call;
struct notifier_block __attribute__((btf_type_tag("rcu"))) *next;
int priority;
};
struct prot_inuse {
int all;
int val[64];
};
struct ipstats_mib {
u64 mibs[38];
struct u64_stats_sync syncp;
};
struct tcp_mib {
unsigned long mibs[16];
};
struct linux_mib {
unsigned long mibs[132];
};
struct udp_mib {
unsigned long mibs[10];
};
struct icmp_mib {
unsigned long mibs[30];
};
struct icmpmsg_mib {
atomic_long_t mibs[512];
};
struct icmpv6_mib {
unsigned long mibs[7];
};
struct icmpv6msg_mib {
atomic_long_t mibs[512];
};
struct ip_ra_chain {
struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *next;
struct sock *sk;
union {
void (*destructor)(struct sock *);
struct sock *saved_sk;
};
struct callback_head rcu;
};
typedef u32 (*rht_hashfn_t)(const void *, u32, u32);
typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32);
struct rhashtable_compare_arg;
typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *);
struct rhashtable_params {
u16 nelem_hint;
u16 key_len;
u16 key_offset;
u16 head_offset;
unsigned int max_size;
u16 min_size;
bool automatic_shrinking;
rht_hashfn_t hashfn;
rht_obj_hashfn_t obj_hashfn;
rht_obj_cmpfn_t obj_cmpfn;
};
struct bucket_table;
struct rhashtable {
struct bucket_table __attribute__((btf_type_tag("rcu"))) *tbl;
unsigned int key_len;
unsigned int max_elems;
struct rhashtable_params p;
bool rhlist;
struct work_struct run_work;
struct mutex mutex;
spinlock_t lock;
atomic_t nelems;
};
struct inet_frags;
struct fqdir {
long high_thresh;
long low_thresh;
int timeout;
int max_dist;
struct inet_frags *f;
struct net *net;
bool dead;
long: 64;
long: 64;
struct rhashtable rhashtable;
long: 64;
long: 64;
long: 64;
long: 64;
atomic_long_t mem;
struct work_struct destroy_work;
struct llist_node free_list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct inet_frag_queue;
struct inet_frags {
unsigned int qsize;
void (*constructor)(struct inet_frag_queue *, const void *);
void (*destructor)(struct inet_frag_queue *);
void (*frag_expire)(struct timer_list *);
struct kmem_cache *frags_cachep;
const char *frags_cache_name;
struct rhashtable_params rhash_params;
refcount_t refcnt;
struct completion completion;
};
typedef __u32 __be32;
struct frag_v4_compare_key {
__be32 saddr;
__be32 daddr;
u32 user;
u32 vif;
__be16 id;
u16 protocol;
};
struct in6_addr {
union {
__u8 u6_addr8[16];
__be16 u6_addr16[8];
__be32 u6_addr32[4];
} in6_u;
};
struct frag_v6_compare_key {
struct in6_addr saddr;
struct in6_addr daddr;
u32 user;
__be32 id;
u32 iif;
};
struct inet_frag_queue {
struct rhash_head node;
union {
struct frag_v4_compare_key v4;
struct frag_v6_compare_key v6;
} key;
struct timer_list timer;
spinlock_t lock;
refcount_t refcnt;
struct rb_root rb_fragments;
struct sk_buff *fragments_tail;
struct sk_buff *last_run_head;
ktime_t stamp;
int len;
int meat;
u8 mono_delivery_time;
__u8 flags;
u16 max_size;
struct fqdir *fqdir;
struct callback_head rcu;
};
struct rhashtable_compare_arg {
struct rhashtable *ht;
const void *key;
};
struct rhash_lock_head;
struct bucket_table {
unsigned int size;
unsigned int nest;
u32 hash_rnd;
struct list_head walkers;
struct callback_head rcu;
struct bucket_table __attribute__((btf_type_tag("rcu"))) *future_tbl;
struct lockdep_map dep_map;
long: 64;
long: 64;
long: 64;
long: 64;
struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *buckets[0];
};
struct rhash_lock_head {};
enum tcp_ca_event {
CA_EVENT_TX_START = 0,
CA_EVENT_CWND_RESTART = 1,
CA_EVENT_COMPLETE_CWR = 2,
CA_EVENT_LOSS = 3,
CA_EVENT_ECN_NO_CE = 4,
CA_EVENT_ECN_IS_CE = 5,
};
struct ack_sample;
struct rate_sample;
union tcp_cc_info;
struct tcp_congestion_ops {
u32 (*ssthresh)(struct sock *);
void (*cong_avoid)(struct sock *, u32, u32);
void (*set_state)(struct sock *, u8);
void (*cwnd_event)(struct sock *, enum tcp_ca_event);
void (*in_ack_event)(struct sock *, u32);
void (*pkts_acked)(struct sock *, const struct ack_sample *);
u32 (*min_tso_segs)(struct sock *);
void (*cong_control)(struct sock *, const struct rate_sample *);
u32 (*undo_cwnd)(struct sock *);
u32 (*sndbuf_expand)(struct sock *);
size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *);
char name[16];
struct module *owner;
struct list_head list;
u32 key;
u32 flags;
void (*init)(struct sock *);
void (*release)(struct sock *);
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct tcp_fastopen_context {
siphash_key_t key[2];
int num;
struct callback_head rcu;
};
typedef struct {
atomic_t refcnt;
} rcuref_t;
struct uncached_list;
struct lwtunnel_state;
struct dst_entry {
struct net_device *dev;
struct dst_ops *ops;
unsigned long _metrics;
unsigned long expires;
void *__pad1;
int (*input)(struct sk_buff *);
int (*output)(struct net *, struct sock *, struct sk_buff *);
unsigned short flags;
short obsolete;
unsigned short header_len;
unsigned short trailer_len;
rcuref_t __rcuref;
int __use;
unsigned long lastuse;
struct callback_head callback_head;
short error;
short __pad;
__u32 tclassid;
netdevice_tracker dev_tracker;
struct list_head rt_uncached;
struct uncached_list *rt_uncached_list;
struct lwtunnel_state *lwtstate;
};
enum nf_log_type {
NF_LOG_TYPE_LOG = 0,
NF_LOG_TYPE_ULOG = 1,
NF_LOG_TYPE_MAX = 2,
};
typedef u8 u_int8_t;
struct nf_loginfo;
typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *);
struct nf_logger {
char *name;
enum nf_log_type type;
nf_logfn *logfn;
struct module *me;
};
struct nf_hook_state;
typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *);
struct nf_hook_entry {
nf_hookfn *hook;
void *priv;
};
struct nf_hook_entries {
u16 num_hook_entries;
struct nf_hook_entry hooks[0];
};
struct ip_conntrack_stat {
unsigned int found;
unsigned int invalid;
unsigned int insert;
unsigned int insert_failed;
unsigned int clash_resolve;
unsigned int drop;
unsigned int early_drop;
unsigned int error;
unsigned int expect_new;
unsigned int expect_create;
unsigned int expect_delete;
unsigned int search_restart;
unsigned int chaintoolong;
};
struct net_generic {
union {
struct {
unsigned int len;
struct callback_head rcu;
} s;
struct {
struct {} __empty_ptr;
void *ptr[0];
};
};
};
struct tcf_proto;
struct tcf_proto_ops;
struct tcf_chain {
struct mutex filter_chain_lock;
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain;
struct list_head list;
struct tcf_block *block;
u32 index;
unsigned int refcnt;
unsigned int action_refcnt;
bool explicitly_created;
bool flushing;
const struct tcf_proto_ops *tmplt_ops;
void *tmplt_priv;
struct callback_head rcu;
};
struct tcf_result;
struct tcf_proto {
struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next;
void __attribute__((btf_type_tag("rcu"))) *root;
int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
__be16 protocol;
u32 prio;
void *data;
const struct tcf_proto_ops *ops;
struct tcf_chain *chain;
spinlock_t lock;
bool deleting;
refcount_t refcnt;
struct callback_head rcu;
struct hlist_node destroy_ht_node;
};
struct tcf_result {
union {
struct {
unsigned long class;
u32 classid;
};
const struct tcf_proto *goto_tp;
};
};
typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *);
struct tcf_walker;
struct tcf_exts;
struct tcf_proto_ops {
struct list_head head;
char kind[16];
int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *);
int (*init)(struct tcf_proto *);
void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *);
void * (*get)(struct tcf_proto *, u32);
void (*put)(struct tcf_proto *, void *);
int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, unsigned long, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *);
int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *);
bool (*delete_empty)(struct tcf_proto *);
void (*walk)(struct tcf_proto *, struct tcf_walker *, bool);
int (*reoffload)(struct tcf_proto *, bool, flow_setup_cb_t *, void *, struct netlink_ext_ack *);
void (*hw_add)(struct tcf_proto *, void *);
void (*hw_del)(struct tcf_proto *, void *);
void (*bind_class)(void *, u32, unsigned long, void *, unsigned long);
void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *);
void (*tmplt_destroy)(void *);
void (*tmplt_reoffload)(struct tcf_chain *, bool, flow_setup_cb_t *, void *);
struct tcf_exts * (*get_exts)(const struct tcf_proto *, u32);
int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool);
int (*tmplt_dump)(struct sk_buff *, struct net *, void *);
struct module *owner;
int flags;
};
struct tc_stats {
__u64 bytes;
__u32 packets;
__u32 drops;
__u32 overlimits;
__u32 bps;
__u32 pps;
__u32 qlen;
__u32 backlog;
};
struct gnet_dump {
spinlock_t *lock;
struct sk_buff *skb;
struct nlattr *tail;
int compat_tc_stats;
int compat_xstats;
int padattr;
void *xstats;
int xstats_len;
struct tc_stats tc_stats;
};
struct tc_sizespec {
unsigned char cell_log;
unsigned char size_log;
short cell_align;
int overhead;
unsigned int linklayer;
unsigned int mpu;
unsigned int mtu;
unsigned int tsize;
};
struct qdisc_size_table {
struct callback_head rcu;
struct list_head list;
struct tc_sizespec szopts;
int refcnt;
u16 data[0];
};
struct net_rate_estimator {
struct gnet_stats_basic_sync *bstats;
spinlock_t *stats_lock;
bool running;
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
u8 ewma_log;
u8 intvl_log;
seqcount_t seq;
u64 last_packets;
u64 last_bytes;
u64 avpps;
u64 avbps;
unsigned long next_jiffies;
struct timer_list timer;
struct callback_head rcu;
};
struct gro_list {
struct list_head list;
int count;
};
struct napi_struct {
struct list_head poll_list;
unsigned long state;
int weight;
int defer_hard_irqs_count;
unsigned long gro_bitmask;
int (*poll)(struct napi_struct *, int);
int list_owner;
struct net_device *dev;
struct gro_list gro_hash[8];
struct sk_buff *skb;
struct list_head rx_list;
int rx_count;
unsigned int napi_id;
struct hrtimer timer;
struct task_struct *thread;
struct list_head dev_list;
struct hlist_node napi_hash_node;
int irq;
};
struct xps_map;
struct xps_dev_maps {
struct callback_head rcu;
unsigned int nr_ids;
s16 num_tc;
struct xps_map __attribute__((btf_type_tag("rcu"))) *attr_map[0];
};
struct xps_map {
unsigned int len;
unsigned int alloc_len;
struct callback_head rcu;
u16 queues[0];
};
struct bpf_mprog_fp {
struct bpf_prog *prog;
};
struct bpf_mprog_bundle;
struct bpf_mprog_entry {
struct bpf_mprog_fp fp_items[64];
struct bpf_mprog_bundle *parent;
};
struct pcpu_lstats {
u64_stats_t packets;
u64_stats_t bytes;
struct u64_stats_sync syncp;
};
struct pcpu_sw_netstats {
u64_stats_t rx_packets;
u64_stats_t rx_bytes;
u64_stats_t tx_packets;
u64_stats_t tx_bytes;
struct u64_stats_sync syncp;
};
struct pcpu_dstats {
u64 rx_packets;
u64 rx_bytes;
u64 rx_drops;
u64 tx_packets;
u64 tx_bytes;
u64 tx_drops;
struct u64_stats_sync syncp;
long: 64;
long: 64;
};
struct ipv6_stable_secret {
bool initialized;
struct in6_addr secret;
};
struct ipv6_devconf {
__u8 __cacheline_group_begin__ipv6_devconf_read_txrx[0];
__s32 disable_ipv6;
__s32 hop_limit;
__s32 mtu6;
__s32 forwarding;
__s32 disable_policy;
__s32 proxy_ndp;
__u8 __cacheline_group_end__ipv6_devconf_read_txrx[0];
__s32 accept_ra;
__s32 accept_redirects;
__s32 autoconf;
__s32 dad_transmits;
__s32 rtr_solicits;
__s32 rtr_solicit_interval;
__s32 rtr_solicit_max_interval;
__s32 rtr_solicit_delay;
__s32 force_mld_version;
__s32 mldv1_unsolicited_report_interval;
__s32 mldv2_unsolicited_report_interval;
__s32 use_tempaddr;
__s32 temp_valid_lft;
__s32 temp_prefered_lft;
__s32 regen_min_advance;
__s32 regen_max_retry;
__s32 max_desync_factor;
__s32 max_addresses;
__s32 accept_ra_defrtr;
__u32 ra_defrtr_metric;
__s32 accept_ra_min_hop_limit;
__s32 accept_ra_min_lft;
__s32 accept_ra_pinfo;
__s32 ignore_routes_with_linkdown;
__s32 accept_source_route;
__s32 accept_ra_from_local;
__s32 drop_unicast_in_l2_multicast;
__s32 accept_dad;
__s32 force_tllao;
__s32 ndisc_notify;
__s32 suppress_frag_ndisc;
__s32 accept_ra_mtu;
__s32 drop_unsolicited_na;
__s32 accept_untracked_na;
struct ipv6_stable_secret stable_secret;
__s32 use_oif_addrs_only;
__s32 keep_addr_on_down;
__s32 seg6_enabled;
__u32 enhanced_dad;
__u32 addr_gen_mode;
__s32 ndisc_tclass;
__s32 rpl_seg_enabled;
__u32 ioam6_id;
__u32 ioam6_id_wide;
__u8 ioam6_enabled;
__u8 ndisc_evict_nocarrier;
__u8 ra_honor_pio_life;
struct ctl_table_header *sysctl_header;
};
struct icmpv6_mib_device;
struct icmpv6msg_mib_device;
struct ipv6_devstat {
struct proc_dir_entry *proc_dir_entry;
struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6;
struct icmpv6_mib_device *icmpv6dev;
struct icmpv6msg_mib_device *icmpv6msgdev;
};
struct ifmcaddr6;
struct ifacaddr6;
struct inet6_dev {
struct net_device *dev;
netdevice_tracker dev_tracker;
struct list_head addr_list;
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *mc_list;
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *mc_tomb;
unsigned char mc_qrv;
unsigned char mc_gq_running;
unsigned char mc_ifc_count;
unsigned char mc_dad_count;
unsigned long mc_v1_seen;
unsigned long mc_qi;
unsigned long mc_qri;
unsigned long mc_maxdelay;
struct delayed_work mc_gq_work;
struct delayed_work mc_ifc_work;
struct delayed_work mc_dad_work;
struct delayed_work mc_query_work;
struct delayed_work mc_report_work;
struct sk_buff_head mc_query_queue;
struct sk_buff_head mc_report_queue;
spinlock_t mc_query_lock;
spinlock_t mc_report_lock;
struct mutex mc_lock;
struct ifacaddr6 __attribute__((btf_type_tag("rcu"))) *ac_list;
rwlock_t lock;
refcount_t refcnt;
__u32 if_flags;
int dead;
u32 desync_factor;
struct list_head tempaddr_list;
struct in6_addr token;
struct neigh_parms *nd_parms;
struct ipv6_devconf cnf;
struct ipv6_devstat stats;
struct timer_list rs_timer;
__s32 rs_interval;
__u8 rs_probes;
unsigned long tstamp;
struct callback_head rcu;
unsigned int ra_mtu;
};
struct dev_ifalias {
struct callback_head rcuhead;
char ifalias[0];
};
enum xdp_rss_hash_type {
XDP_RSS_L3_IPV4 = 1,
XDP_RSS_L3_IPV6 = 2,
XDP_RSS_L3_DYNHDR = 4,
XDP_RSS_L4 = 8,
XDP_RSS_L4_TCP = 16,
XDP_RSS_L4_UDP = 32,
XDP_RSS_L4_SCTP = 64,
XDP_RSS_L4_IPSEC = 128,
XDP_RSS_L4_ICMP = 256,
XDP_RSS_TYPE_NONE = 0,
XDP_RSS_TYPE_L2 = 0,
XDP_RSS_TYPE_L3_IPV4 = 1,
XDP_RSS_TYPE_L3_IPV6 = 2,
XDP_RSS_TYPE_L3_IPV4_OPT = 5,
XDP_RSS_TYPE_L3_IPV6_EX = 6,
XDP_RSS_TYPE_L4_ANY = 8,
XDP_RSS_TYPE_L4_IPV4_TCP = 25,
XDP_RSS_TYPE_L4_IPV4_UDP = 41,
XDP_RSS_TYPE_L4_IPV4_SCTP = 73,
XDP_RSS_TYPE_L4_IPV4_IPSEC = 137,
XDP_RSS_TYPE_L4_IPV4_ICMP = 265,
XDP_RSS_TYPE_L4_IPV6_TCP = 26,
XDP_RSS_TYPE_L4_IPV6_UDP = 42,
XDP_RSS_TYPE_L4_IPV6_SCTP = 74,
XDP_RSS_TYPE_L4_IPV6_IPSEC = 138,
XDP_RSS_TYPE_L4_IPV6_ICMP = 266,
XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30,
XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46,
XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78,
};
struct xdp_md;
struct xdp_metadata_ops {
int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *);
int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *);
int (*xmo_rx_vlan_tag)(const struct xdp_md *, __be16 *, u16 *);
};
struct xsk_tx_metadata_ops {
void (*tmo_request_timestamp)(void *);
u64 (*tmo_fill_timestamp)(void *);
void (*tmo_request_checksum)(u16, u16, void *);
};
struct net_device_core_stats {
unsigned long rx_dropped;
unsigned long tx_dropped;
unsigned long rx_nohandler;
unsigned long rx_otherhost_dropped;
};
enum ethtool_phys_id_state {
ETHTOOL_ID_INACTIVE = 0,
ETHTOOL_ID_ACTIVE = 1,
ETHTOOL_ID_ON = 2,
ETHTOOL_ID_OFF = 3,
};
struct ethtool_drvinfo;
struct ethtool_regs;
struct ethtool_wolinfo;
struct ethtool_link_ext_state_info;
struct ethtool_link_ext_stats;
struct ethtool_eeprom;
struct ethtool_coalesce;
struct kernel_ethtool_coalesce;
struct ethtool_ringparam;
struct kernel_ethtool_ringparam;
struct ethtool_pause_stats;
struct ethtool_pauseparam;
struct ethtool_test;
struct ethtool_stats;
struct ethtool_rxnfc;
struct ethtool_flash;
struct ethtool_rxfh_param;
struct ethtool_channels;
struct ethtool_dump;
struct ethtool_ts_info;
struct ethtool_modinfo;
struct ethtool_keee;
struct ethtool_tunable;
struct ethtool_link_ksettings;
struct ethtool_fec_stats;
struct ethtool_fecparam;
struct ethtool_module_eeprom;
struct ethtool_eth_phy_stats;
struct ethtool_eth_mac_stats;
struct ethtool_eth_ctrl_stats;
struct ethtool_rmon_stats;
struct ethtool_rmon_hist_range;
struct ethtool_module_power_mode_params;
struct ethtool_mm_state;
struct ethtool_mm_cfg;
struct ethtool_mm_stats;
struct ethtool_ops {
u32 cap_link_lanes_supported: 1;
u32 cap_rss_ctx_supported: 1;
u32 cap_rss_sym_xor_supported: 1;
u32 supported_coalesce_params;
u32 supported_ring_params;
void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
int (*get_regs_len)(struct net_device *);
void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
u32 (*get_msglevel)(struct net_device *);
void (*set_msglevel)(struct net_device *, u32);
int (*nway_reset)(struct net_device *);
u32 (*get_link)(struct net_device *);
int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *);
void (*get_link_ext_stats)(struct net_device *, struct ethtool_link_ext_stats *);
int (*get_eeprom_len)(struct net_device *);
int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *);
void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *, struct kernel_ethtool_ringparam *, struct netlink_ext_ack *);
void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *);
void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *);
void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
void (*get_strings)(struct net_device *, u32, u8 *);
int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state);
void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
int (*begin)(struct net_device *);
void (*complete)(struct net_device *);
u32 (*get_priv_flags)(struct net_device *);
int (*set_priv_flags)(struct net_device *, u32);
int (*get_sset_count)(struct net_device *, int);
int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *);
int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
int (*flash_device)(struct net_device *, struct ethtool_flash *);
int (*reset)(struct net_device *, u32 *);
u32 (*get_rxfh_key_size)(struct net_device *);
u32 (*get_rxfh_indir_size)(struct net_device *);
int (*get_rxfh)(struct net_device *, struct ethtool_rxfh_param *);
int (*set_rxfh)(struct net_device *, struct ethtool_rxfh_param *, struct netlink_ext_ack *);
void (*get_channels)(struct net_device *, struct ethtool_channels *);
int (*set_channels)(struct net_device *, struct ethtool_channels *);
int (*get_dump_flag)(struct net_device *, struct ethtool_dump *);
int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *);
int (*set_dump)(struct net_device *, struct ethtool_dump *);
int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *);
int (*get_module_info)(struct net_device *, struct ethtool_modinfo *);
int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
int (*get_eee)(struct net_device *, struct ethtool_keee *);
int (*set_eee)(struct net_device *, struct ethtool_keee *);
int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *);
int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *);
int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *);
void (*get_fec_stats)(struct net_device *, struct ethtool_fec_stats *);
int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *);
int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *);
void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *);
int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *);
int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *);
int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *);
void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *);
void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *);
void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *);
void (*get_rmon_stats)(struct net_device *, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **);
int (*get_module_power_mode)(struct net_device *, struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
int (*set_module_power_mode)(struct net_device *, const struct ethtool_module_power_mode_params *, struct netlink_ext_ack *);
int (*get_mm)(struct net_device *, struct ethtool_mm_state *);
int (*set_mm)(struct net_device *, struct ethtool_mm_cfg *, struct netlink_ext_ack *);
void (*get_mm_stats)(struct net_device *, struct ethtool_mm_stats *);
};
struct nd_opt_hdr;
struct ndisc_options;
struct prefix_info;
struct ndisc_ops {
int (*is_useropt)(u8);
int (*parse_options)(const struct net_device *, struct nd_opt_hdr *, struct ndisc_options *);
void (*update)(const struct net_device *, struct neighbour *, u32, u8, const struct ndisc_options *);
int (*opt_addr_space)(const struct net_device *, u8, struct neighbour *, u8 *, u8 **);
void (*fill_addr_option)(const struct net_device *, struct sk_buff *, u8, const u8 *);
void (*prefix_rcv_add_addr)(struct net *, struct net_device *, const struct prefix_info *, struct inet6_dev *, struct in6_addr *, int, u32, bool, bool, __u32, u32, bool);
};
struct ipv4_devconf {
void *sysctl;
int data[33];
unsigned long state[1];
};
struct in_ifaddr;
struct ip_mc_list;
struct in_device {
struct net_device *dev;
netdevice_tracker dev_tracker;
refcount_t refcnt;
int dead;
struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_list;
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *mc_list;
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *mc_hash;
int mc_count;
spinlock_t mc_tomb_lock;
struct ip_mc_list *mc_tomb;
unsigned long mr_v1_seen;
unsigned long mr_v2_seen;
unsigned long mr_maxdelay;
unsigned long mr_qi;
unsigned long mr_qri;
unsigned char mr_qrv;
unsigned char mr_gq_running;
u32 mr_ifc_count;
struct timer_list mr_gq_timer;
struct timer_list mr_ifc_timer;
struct neigh_parms *arp_parms;
struct ipv4_devconf cnf;
struct callback_head callback_head;
};
struct xdp_dev_bulk_queue {
struct xdp_frame *q[16];
struct list_head flush_node;
struct net_device *dev;
struct net_device *dev_rx;
struct bpf_prog *xdp_prog;
unsigned int count;
};
struct rtnl_link_ops {
struct list_head list;
const char *kind;
size_t priv_size;
struct net_device * (*alloc)(struct nlattr **, const char *, unsigned char, unsigned int, unsigned int);
void (*setup)(struct net_device *);
bool netns_refund;
unsigned int maxtype;
const struct nla_policy *policy;
int (*validate)(struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
int (*newlink)(struct net *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
int (*changelink)(struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
void (*dellink)(struct net_device *, struct list_head *);
size_t (*get_size)(const struct net_device *);
int (*fill_info)(struct sk_buff *, const struct net_device *);
size_t (*get_xstats_size)(const struct net_device *);
int (*fill_xstats)(struct sk_buff *, const struct net_device *);
unsigned int (*get_num_tx_queues)();
unsigned int (*get_num_rx_queues)();
unsigned int slave_maxtype;
const struct nla_policy *slave_policy;
int (*slave_changelink)(struct net_device *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *);
size_t (*get_slave_size)(const struct net_device *, const struct net_device *);
int (*fill_slave_info)(struct sk_buff *, const struct net_device *, const struct net_device *);
struct net * (*get_link_net)(const struct net_device *);
size_t (*get_linkxstats_size)(const struct net_device *, int);
int (*fill_linkxstats)(struct sk_buff *, const struct net_device *, int *, int);
};
struct netdev_queue_stats_rx;
struct netdev_queue_stats_tx;
struct netdev_stat_ops {
void (*get_queue_stats_rx)(struct net_device *, int, struct netdev_queue_stats_rx *);
void (*get_queue_stats_tx)(struct net_device *, int, struct netdev_queue_stats_tx *);
void (*get_base_stats)(struct net_device *, struct netdev_queue_stats_rx *, struct netdev_queue_stats_tx *);
};
struct udp_tunnel_nic_table_info {
unsigned int n_entries;
unsigned int tunnel_types;
};
struct udp_tunnel_info;
struct udp_tunnel_nic_shared;
struct udp_tunnel_nic_info {
int (*set_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
int (*unset_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
int (*sync_table)(struct net_device *, unsigned int);
struct udp_tunnel_nic_shared *shared;
unsigned int flags;
struct udp_tunnel_nic_table_info tables[4];
};
struct rtnl_hw_stats64 {
__u64 rx_packets;
__u64 tx_packets;
__u64 rx_bytes;
__u64 tx_bytes;
__u64 rx_errors;
__u64 tx_errors;
__u64 rx_dropped;
__u64 tx_dropped;
__u64 multicast;
};
struct sock_fprog_kern {
u16 len;
struct sock_filter *filter;
};
enum bpf_return_type {
RET_INTEGER = 0,
RET_VOID = 1,
RET_PTR_TO_MAP_VALUE = 2,
RET_PTR_TO_SOCKET = 3,
RET_PTR_TO_TCP_SOCK = 4,
RET_PTR_TO_SOCK_COMMON = 5,
RET_PTR_TO_MEM = 6,
RET_PTR_TO_MEM_OR_BTF_ID = 7,
RET_PTR_TO_BTF_ID = 8,
__BPF_RET_TYPE_MAX = 9,
RET_PTR_TO_MAP_VALUE_OR_NULL = 258,
RET_PTR_TO_SOCKET_OR_NULL = 259,
RET_PTR_TO_TCP_SOCK_OR_NULL = 260,
RET_PTR_TO_SOCK_COMMON_OR_NULL = 261,
RET_PTR_TO_RINGBUF_MEM_OR_NULL = 1286,
RET_PTR_TO_DYNPTR_MEM_OR_NULL = 262,
RET_PTR_TO_BTF_ID_OR_NULL = 264,
RET_PTR_TO_BTF_ID_TRUSTED = 1048584,
__BPF_RET_TYPE_LIMIT = 33554431,
};
enum bpf_arg_type {
ARG_DONTCARE = 0,
ARG_CONST_MAP_PTR = 1,
ARG_PTR_TO_MAP_KEY = 2,
ARG_PTR_TO_MAP_VALUE = 3,
ARG_PTR_TO_MEM = 4,
ARG_PTR_TO_ARENA = 5,
ARG_CONST_SIZE = 6,
ARG_CONST_SIZE_OR_ZERO = 7,
ARG_PTR_TO_CTX = 8,
ARG_ANYTHING = 9,
ARG_PTR_TO_SPIN_LOCK = 10,
ARG_PTR_TO_SOCK_COMMON = 11,
ARG_PTR_TO_INT = 12,
ARG_PTR_TO_LONG = 13,
ARG_PTR_TO_SOCKET = 14,
ARG_PTR_TO_BTF_ID = 15,
ARG_PTR_TO_RINGBUF_MEM = 16,
ARG_CONST_ALLOC_SIZE_OR_ZERO = 17,
ARG_PTR_TO_BTF_ID_SOCK_COMMON = 18,
ARG_PTR_TO_PERCPU_BTF_ID = 19,
ARG_PTR_TO_FUNC = 20,
ARG_PTR_TO_STACK = 21,
ARG_PTR_TO_CONST_STR = 22,
ARG_PTR_TO_TIMER = 23,
ARG_PTR_TO_KPTR = 24,
ARG_PTR_TO_DYNPTR = 25,
__BPF_ARG_TYPE_MAX = 26,
ARG_PTR_TO_MAP_VALUE_OR_NULL = 259,
ARG_PTR_TO_MEM_OR_NULL = 260,
ARG_PTR_TO_CTX_OR_NULL = 264,
ARG_PTR_TO_SOCKET_OR_NULL = 270,
ARG_PTR_TO_STACK_OR_NULL = 277,
ARG_PTR_TO_BTF_ID_OR_NULL = 271,
ARG_PTR_TO_UNINIT_MEM = 32772,
ARG_PTR_TO_FIXED_SIZE_MEM = 262148,
__BPF_ARG_TYPE_LIMIT = 33554431,
};
struct bpf_func_proto {
u64 (*func)(u64, u64, u64, u64, u64);
bool gpl_only;
bool pkt_access;
bool might_sleep;
enum bpf_return_type ret_type;
union {
struct {
enum bpf_arg_type arg1_type;
enum bpf_arg_type arg2_type;
enum bpf_arg_type arg3_type;
enum bpf_arg_type arg4_type;
enum bpf_arg_type arg5_type;
};
enum bpf_arg_type arg_type[5];
};
union {
struct {
u32 *arg1_btf_id;
u32 *arg2_btf_id;
u32 *arg3_btf_id;
u32 *arg4_btf_id;
u32 *arg5_btf_id;
};
u32 *arg_btf_id[5];
struct {
size_t arg1_size;
size_t arg2_size;
size_t arg3_size;
size_t arg4_size;
size_t arg5_size;
};
size_t arg_size[5];
};
int *ret_btf_id;
bool (*allowed)(const struct bpf_prog *);
};
struct bpf_link;
struct bpf_link_info;
struct bpf_link_ops {
void (*release)(struct bpf_link *);
void (*dealloc)(struct bpf_link *);
int (*detach)(struct bpf_link *);
int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *);
void (*show_fdinfo)(const struct bpf_link *, struct seq_file *);
int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *);
int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *);
};
enum bpf_link_type {
BPF_LINK_TYPE_UNSPEC = 0,
BPF_LINK_TYPE_RAW_TRACEPOINT = 1,
BPF_LINK_TYPE_TRACING = 2,
BPF_LINK_TYPE_CGROUP = 3,
BPF_LINK_TYPE_ITER = 4,
BPF_LINK_TYPE_NETNS = 5,
BPF_LINK_TYPE_XDP = 6,
BPF_LINK_TYPE_PERF_EVENT = 7,
BPF_LINK_TYPE_KPROBE_MULTI = 8,
BPF_LINK_TYPE_STRUCT_OPS = 9,
BPF_LINK_TYPE_NETFILTER = 10,
BPF_LINK_TYPE_TCX = 11,
BPF_LINK_TYPE_UPROBE_MULTI = 12,
BPF_LINK_TYPE_NETKIT = 13,
BPF_LINK_TYPE_SOCKMAP = 14,
__MAX_BPF_LINK_TYPE = 15,
};
struct bpf_link {
atomic64_t refcnt;
u32 id;
enum bpf_link_type type;
const struct bpf_link_ops *ops;
struct bpf_prog *prog;
struct work_struct work;
};
struct bpf_link_info {
__u32 type;
__u32 id;
__u32 prog_id;
union {
struct {
__u64 tp_name;
__u32 tp_name_len;
} raw_tracepoint;
struct {
__u32 attach_type;
__u32 target_obj_id;
__u32 target_btf_id;
} tracing;
struct {
__u64 cgroup_id;
__u32 attach_type;
} cgroup;
struct {
__u64 target_name;
__u32 target_name_len;
union {
struct {
__u32 map_id;
} map;
};
union {
struct {
__u64 cgroup_id;
__u32 order;
} cgroup;
struct {
__u32 tid;
__u32 pid;
} task;
};
} iter;
struct {
__u32 netns_ino;
__u32 attach_type;
} netns;
struct {
__u32 ifindex;
} xdp;
struct {
__u32 map_id;
} struct_ops;
struct {
__u32 pf;
__u32 hooknum;
__s32 priority;
__u32 flags;
} netfilter;
struct {
__u64 addrs;
__u32 count;
__u32 flags;
__u64 missed;
__u64 cookies;
} kprobe_multi;
struct {
__u64 path;
__u64 offsets;
__u64 ref_ctr_offsets;
__u64 cookies;
__u32 path_size;
__u32 count;
__u32 flags;
__u32 pid;
} uprobe_multi;
struct {
__u32 type;
union {
struct {
__u64 file_name;
__u32 name_len;
__u32 offset;
__u64 cookie;
} uprobe;
struct {
__u64 func_name;
__u32 name_len;
__u32 offset;
__u64 addr;
__u64 missed;
__u64 cookie;
} kprobe;
struct {
__u64 tp_name;
__u32 name_len;
__u64 cookie;
} tracepoint;
struct {
__u64 config;
__u32 type;
__u64 cookie;
} event;
};
} perf_event;
struct {
__u32 ifindex;
__u32 attach_type;
} tcx;
struct {
__u32 ifindex;
__u32 attach_type;
} netkit;
struct {
__u32 map_id;
__u32 attach_type;
} sockmap;
};
};
enum bpf_func_id {
BPF_FUNC_unspec = 0,
BPF_FUNC_map_lookup_elem = 1,
BPF_FUNC_map_update_elem = 2,
BPF_FUNC_map_delete_elem = 3,
BPF_FUNC_probe_read = 4,
BPF_FUNC_ktime_get_ns = 5,
BPF_FUNC_trace_printk = 6,
BPF_FUNC_get_prandom_u32 = 7,
BPF_FUNC_get_smp_processor_id = 8,
BPF_FUNC_skb_store_bytes = 9,
BPF_FUNC_l3_csum_replace = 10,
BPF_FUNC_l4_csum_replace = 11,
BPF_FUNC_tail_call = 12,
BPF_FUNC_clone_redirect = 13,
BPF_FUNC_get_current_pid_tgid = 14,
BPF_FUNC_get_current_uid_gid = 15,
BPF_FUNC_get_current_comm = 16,
BPF_FUNC_get_cgroup_classid = 17,
BPF_FUNC_skb_vlan_push = 18,
BPF_FUNC_skb_vlan_pop = 19,
BPF_FUNC_skb_get_tunnel_key = 20,
BPF_FUNC_skb_set_tunnel_key = 21,
BPF_FUNC_perf_event_read = 22,
BPF_FUNC_redirect = 23,
BPF_FUNC_get_route_realm = 24,
BPF_FUNC_perf_event_output = 25,
BPF_FUNC_skb_load_bytes = 26,
BPF_FUNC_get_stackid = 27,
BPF_FUNC_csum_diff = 28,
BPF_FUNC_skb_get_tunnel_opt = 29,
BPF_FUNC_skb_set_tunnel_opt = 30,
BPF_FUNC_skb_change_proto = 31,
BPF_FUNC_skb_change_type = 32,
BPF_FUNC_skb_under_cgroup = 33,
BPF_FUNC_get_hash_recalc = 34,
BPF_FUNC_get_current_task = 35,
BPF_FUNC_probe_write_user = 36,
BPF_FUNC_current_task_under_cgroup = 37,
BPF_FUNC_skb_change_tail = 38,
BPF_FUNC_skb_pull_data = 39,
BPF_FUNC_csum_update = 40,
BPF_FUNC_set_hash_invalid = 41,
BPF_FUNC_get_numa_node_id = 42,
BPF_FUNC_skb_change_head = 43,
BPF_FUNC_xdp_adjust_head = 44,
BPF_FUNC_probe_read_str = 45,
BPF_FUNC_get_socket_cookie = 46,
BPF_FUNC_get_socket_uid = 47,
BPF_FUNC_set_hash = 48,
BPF_FUNC_setsockopt = 49,
BPF_FUNC_skb_adjust_room = 50,
BPF_FUNC_redirect_map = 51,
BPF_FUNC_sk_redirect_map = 52,
BPF_FUNC_sock_map_update = 53,
BPF_FUNC_xdp_adjust_meta = 54,
BPF_FUNC_perf_event_read_value = 55,
BPF_FUNC_perf_prog_read_value = 56,
BPF_FUNC_getsockopt = 57,
BPF_FUNC_override_return = 58,
BPF_FUNC_sock_ops_cb_flags_set = 59,
BPF_FUNC_msg_redirect_map = 60,
BPF_FUNC_msg_apply_bytes = 61,
BPF_FUNC_msg_cork_bytes = 62,
BPF_FUNC_msg_pull_data = 63,
BPF_FUNC_bind = 64,
BPF_FUNC_xdp_adjust_tail = 65,
BPF_FUNC_skb_get_xfrm_state = 66,
BPF_FUNC_get_stack = 67,
BPF_FUNC_skb_load_bytes_relative = 68,
BPF_FUNC_fib_lookup = 69,
BPF_FUNC_sock_hash_update = 70,
BPF_FUNC_msg_redirect_hash = 71,
BPF_FUNC_sk_redirect_hash = 72,
BPF_FUNC_lwt_push_encap = 73,
BPF_FUNC_lwt_seg6_store_bytes = 74,
BPF_FUNC_lwt_seg6_adjust_srh = 75,
BPF_FUNC_lwt_seg6_action = 76,
BPF_FUNC_rc_repeat = 77,
BPF_FUNC_rc_keydown = 78,
BPF_FUNC_skb_cgroup_id = 79,
BPF_FUNC_get_current_cgroup_id = 80,
BPF_FUNC_get_local_storage = 81,
BPF_FUNC_sk_select_reuseport = 82,
BPF_FUNC_skb_ancestor_cgroup_id = 83,
BPF_FUNC_sk_lookup_tcp = 84,
BPF_FUNC_sk_lookup_udp = 85,
BPF_FUNC_sk_release = 86,
BPF_FUNC_map_push_elem = 87,
BPF_FUNC_map_pop_elem = 88,
BPF_FUNC_map_peek_elem = 89,
BPF_FUNC_msg_push_data = 90,
BPF_FUNC_msg_pop_data = 91,
BPF_FUNC_rc_pointer_rel = 92,
BPF_FUNC_spin_lock = 93,
BPF_FUNC_spin_unlock = 94,
BPF_FUNC_sk_fullsock = 95,
BPF_FUNC_tcp_sock = 96,
BPF_FUNC_skb_ecn_set_ce = 97,
BPF_FUNC_get_listener_sock = 98,
BPF_FUNC_skc_lookup_tcp = 99,
BPF_FUNC_tcp_check_syncookie = 100,
BPF_FUNC_sysctl_get_name = 101,
BPF_FUNC_sysctl_get_current_value = 102,
BPF_FUNC_sysctl_get_new_value = 103,
BPF_FUNC_sysctl_set_new_value = 104,
BPF_FUNC_strtol = 105,
BPF_FUNC_strtoul = 106,
BPF_FUNC_sk_storage_get = 107,
BPF_FUNC_sk_storage_delete = 108,
BPF_FUNC_send_signal = 109,
BPF_FUNC_tcp_gen_syncookie = 110,
BPF_FUNC_skb_output = 111,
BPF_FUNC_probe_read_user = 112,
BPF_FUNC_probe_read_kernel = 113,
BPF_FUNC_probe_read_user_str = 114,
BPF_FUNC_probe_read_kernel_str = 115,
BPF_FUNC_tcp_send_ack = 116,
BPF_FUNC_send_signal_thread = 117,
BPF_FUNC_jiffies64 = 118,
BPF_FUNC_read_branch_records = 119,
BPF_FUNC_get_ns_current_pid_tgid = 120,
BPF_FUNC_xdp_output = 121,
BPF_FUNC_get_netns_cookie = 122,
BPF_FUNC_get_current_ancestor_cgroup_id = 123,
BPF_FUNC_sk_assign = 124,
BPF_FUNC_ktime_get_boot_ns = 125,
BPF_FUNC_seq_printf = 126,
BPF_FUNC_seq_write = 127,
BPF_FUNC_sk_cgroup_id = 128,
BPF_FUNC_sk_ancestor_cgroup_id = 129,
BPF_FUNC_ringbuf_output = 130,
BPF_FUNC_ringbuf_reserve = 131,
BPF_FUNC_ringbuf_submit = 132,
BPF_FUNC_ringbuf_discard = 133,
BPF_FUNC_ringbuf_query = 134,
BPF_FUNC_csum_level = 135,
BPF_FUNC_skc_to_tcp6_sock = 136,
BPF_FUNC_skc_to_tcp_sock = 137,
BPF_FUNC_skc_to_tcp_timewait_sock = 138,
BPF_FUNC_skc_to_tcp_request_sock = 139,
BPF_FUNC_skc_to_udp6_sock = 140,
BPF_FUNC_get_task_stack = 141,
BPF_FUNC_load_hdr_opt = 142,
BPF_FUNC_store_hdr_opt = 143,
BPF_FUNC_reserve_hdr_opt = 144,
BPF_FUNC_inode_storage_get = 145,
BPF_FUNC_inode_storage_delete = 146,
BPF_FUNC_d_path = 147,
BPF_FUNC_copy_from_user = 148,
BPF_FUNC_snprintf_btf = 149,
BPF_FUNC_seq_printf_btf = 150,
BPF_FUNC_skb_cgroup_classid = 151,
BPF_FUNC_redirect_neigh = 152,
BPF_FUNC_per_cpu_ptr = 153,
BPF_FUNC_this_cpu_ptr = 154,
BPF_FUNC_redirect_peer = 155,
BPF_FUNC_task_storage_get = 156,
BPF_FUNC_task_storage_delete = 157,
BPF_FUNC_get_current_task_btf = 158,
BPF_FUNC_bprm_opts_set = 159,
BPF_FUNC_ktime_get_coarse_ns = 160,
BPF_FUNC_ima_inode_hash = 161,
BPF_FUNC_sock_from_file = 162,
BPF_FUNC_check_mtu = 163,
BPF_FUNC_for_each_map_elem = 164,
BPF_FUNC_snprintf = 165,
BPF_FUNC_sys_bpf = 166,
BPF_FUNC_btf_find_by_name_kind = 167,
BPF_FUNC_sys_close = 168,
BPF_FUNC_timer_init = 169,
BPF_FUNC_timer_set_callback = 170,
BPF_FUNC_timer_start = 171,
BPF_FUNC_timer_cancel = 172,
BPF_FUNC_get_func_ip = 173,
BPF_FUNC_get_attach_cookie = 174,
BPF_FUNC_task_pt_regs = 175,
BPF_FUNC_get_branch_snapshot = 176,
BPF_FUNC_trace_vprintk = 177,
BPF_FUNC_skc_to_unix_sock = 178,
BPF_FUNC_kallsyms_lookup_name = 179,
BPF_FUNC_find_vma = 180,
BPF_FUNC_loop = 181,
BPF_FUNC_strncmp = 182,
BPF_FUNC_get_func_arg = 183,
BPF_FUNC_get_func_ret = 184,
BPF_FUNC_get_func_arg_cnt = 185,
BPF_FUNC_get_retval = 186,
BPF_FUNC_set_retval = 187,
BPF_FUNC_xdp_get_buff_len = 188,
BPF_FUNC_xdp_load_bytes = 189,
BPF_FUNC_xdp_store_bytes = 190,
BPF_FUNC_copy_from_user_task = 191,
BPF_FUNC_skb_set_tstamp = 192,
BPF_FUNC_ima_file_hash = 193,
BPF_FUNC_kptr_xchg = 194,
BPF_FUNC_map_lookup_percpu_elem = 195,
BPF_FUNC_skc_to_mptcp_sock = 196,
BPF_FUNC_dynptr_from_mem = 197,
BPF_FUNC_ringbuf_reserve_dynptr = 198,
BPF_FUNC_ringbuf_submit_dynptr = 199,
BPF_FUNC_ringbuf_discard_dynptr = 200,
BPF_FUNC_dynptr_read = 201,
BPF_FUNC_dynptr_write = 202,
BPF_FUNC_dynptr_data = 203,
BPF_FUNC_tcp_raw_gen_syncookie_ipv4 = 204,
BPF_FUNC_tcp_raw_gen_syncookie_ipv6 = 205,
BPF_FUNC_tcp_raw_check_syncookie_ipv4 = 206,
BPF_FUNC_tcp_raw_check_syncookie_ipv6 = 207,
BPF_FUNC_ktime_get_tai_ns = 208,
BPF_FUNC_user_ringbuf_drain = 209,
BPF_FUNC_cgrp_storage_get = 210,
BPF_FUNC_cgrp_storage_delete = 211,
__BPF_FUNC_MAX_ID = 212,
};
enum {
BPF_MAX_LOOPS = 8388608,
};
enum bpf_iter_feature {
BPF_ITER_RESCHED = 1,
};
struct bpf_iter_reg;
struct bpf_iter_target_info {
struct list_head list;
const struct bpf_iter_reg *reg_info;
u32 btf_id;
};
union bpf_iter_link_info;
typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *);
typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *);
typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *);
typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *);
typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *);
struct bpf_iter_reg {
const char *target;
bpf_iter_attach_target_t attach_target;
bpf_iter_detach_target_t detach_target;
bpf_iter_show_fdinfo_t show_fdinfo;
bpf_iter_fill_link_info_t fill_link_info;
bpf_iter_get_func_proto_t get_func_proto;
u32 ctx_arg_info_size;
u32 feature;
struct bpf_ctx_arg_aux ctx_arg_info[2];
const struct bpf_iter_seq_info *seq_info;
};
union bpf_iter_link_info {
struct {
__u32 map_fd;
} map;
struct {
enum bpf_cgroup_iter_order order;
__u32 cgroup_fd;
__u64 cgroup_id;
} cgroup;
struct {
__u32 tid;
__u32 pid;
__u32 pid_fd;
} task;
};
struct bpf_iter_link {
struct bpf_link link;
struct bpf_iter_aux_info aux;
struct bpf_iter_target_info *tinfo;
};
struct bpf_iter_priv_data {
struct bpf_iter_target_info *tinfo;
const struct bpf_iter_seq_info *seq_info;
struct bpf_prog *prog;
u64 session_id;
u64 seq_num;
bool done_stop;
long: 0;
u8 target_private[0];
};
typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64);
typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64);
typedef struct {
union {
void *kernel;
void __attribute__((btf_type_tag("user"))) *user;
};
bool is_kernel: 1;
} sockptr_t;
typedef sockptr_t bpfptr_t;
struct bpf_link_primer {
struct bpf_link *link;
struct file *file;
int fd;
u32 id;
};
typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *));
typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *);
struct bpf_iter_meta {
union {
struct seq_file *seq;
};
u64 session_id;
u64 seq_num;
};
struct bpf_iter_num {
__u64 __opaque[1];
};
struct bpf_iter_num_kern {
int cur;
int end;
};
struct fs_struct {
int users;
spinlock_t lock;
seqcount_spinlock_t seq;
int umask;
int in_exec;
struct path root;
struct path pwd;
};
struct fdtable {
unsigned int max_fds;
struct file __attribute__((btf_type_tag("rcu"))) **fd;
unsigned long *close_on_exec;
unsigned long *open_fds;
unsigned long *full_fds_bits;
struct callback_head rcu;
};
struct files_struct {
atomic_t count;
bool resize_in_progress;
wait_queue_head_t resize_wait;
struct fdtable __attribute__((btf_type_tag("rcu"))) *fdt;
struct fdtable fdtab;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t file_lock;
unsigned int next_fd;
unsigned long close_on_exec_init[1];
unsigned long open_fds_init[1];
unsigned long full_fds_bits_init[1];
struct file __attribute__((btf_type_tag("rcu"))) *fd_array[64];
long: 64;
long: 64;
long: 64;
long: 64;
};
struct ld_semaphore {
atomic_long_t count;
raw_spinlock_t wait_lock;
unsigned int wait_readers;
struct list_head read_wait;
struct list_head write_wait;
struct lockdep_map dep_map;
};
typedef unsigned int tcflag_t;
typedef unsigned char cc_t;
typedef unsigned int speed_t;
struct ktermios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_line;
cc_t c_cc[19];
speed_t c_ispeed;
speed_t c_ospeed;
};
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
struct tty_driver;
struct tty_port;
struct tty_operations;
struct tty_ldisc;
struct tty_struct {
struct kref kref;
int index;
struct device *dev;
struct tty_driver *driver;
struct tty_port *port;
const struct tty_operations *ops;
struct tty_ldisc *ldisc;
struct ld_semaphore ldisc_sem;
struct mutex atomic_write_lock;
struct mutex legacy_mutex;
struct mutex throttle_mutex;
struct rw_semaphore termios_rwsem;
struct mutex winsize_mutex;
struct ktermios termios;
struct ktermios termios_locked;
char name[64];
unsigned long flags;
int count;
unsigned int receive_room;
struct winsize winsize;
struct {
spinlock_t lock;
bool stopped;
bool tco_stopped;
unsigned long unused[0];
} flow;
struct {
struct pid *pgrp;
struct pid *session;
spinlock_t lock;
unsigned char pktstatus;
bool packet;
unsigned long unused[0];
} ctrl;
bool hw_stopped;
bool closing;
int flow_change;
struct tty_struct *link;
struct fasync_struct *fasync;
wait_queue_head_t write_wait;
wait_queue_head_t read_wait;
struct work_struct hangup_work;
void *disc_data;
void *driver_data;
spinlock_t files_lock;
int write_cnt;
u8 *write_buf;
struct list_head tty_files;
struct work_struct SAK_work;
};
struct tty_driver {
struct kref kref;
struct cdev **cdevs;
struct module *owner;
const char *driver_name;
const char *name;
int name_base;
int major;
int minor_start;
unsigned int num;
short type;
short subtype;
struct ktermios init_termios;
unsigned long flags;
struct proc_dir_entry *proc_entry;
struct tty_driver *other;
struct tty_struct **ttys;
struct tty_port **ports;
struct ktermios **termios;
void *driver_state;
const struct tty_operations *ops;
struct list_head tty_drivers;
};
struct wait_queue_entry;
typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *);
struct wait_queue_entry {
unsigned int flags;
void *private;
wait_queue_func_t func;
struct list_head entry;
};
typedef struct wait_queue_entry wait_queue_entry_t;
struct wait_page_queue {
struct folio *folio;
int bit_nr;
wait_queue_entry_t wait;
};
struct nlm_lockowner;
struct nfs_lock_info {
u32 state;
struct nlm_lockowner *owner;
struct list_head list;
};
struct nfs4_lock_state;
struct nfs4_lock_info {
struct nfs4_lock_state *owner;
};
struct file_lock_core {
struct file_lock_core *flc_blocker;
struct list_head flc_list;
struct hlist_node flc_link;
struct list_head flc_blocked_requests;
struct list_head flc_blocked_member;
fl_owner_t flc_owner;
unsigned int flc_flags;
unsigned char flc_type;
pid_t flc_pid;
int flc_link_cpu;
wait_queue_head_t flc_wait;
struct file *flc_file;
};
struct file_lock_operations;
struct lock_manager_operations;
struct file_lock {
struct file_lock_core c;
loff_t fl_start;
loff_t fl_end;
const struct file_lock_operations *fl_ops;
const struct lock_manager_operations *fl_lmops;
union {
struct nfs_lock_info nfs_fl;
struct nfs4_lock_info nfs4_fl;
struct {
struct list_head link;
int state;
unsigned int debug_id;
} afs;
struct {
struct inode *inode;
} ceph;
} fl_u;
};
struct file_lock_operations {
void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
void (*fl_release_private)(struct file_lock *);
};
struct lock_manager_operations {
void *lm_mod_owner;
fl_owner_t (*lm_get_owner)(fl_owner_t);
void (*lm_put_owner)(fl_owner_t);
void (*lm_notify)(struct file_lock *);
int (*lm_grant)(struct file_lock *, int);
bool (*lm_lock_expirable)(struct file_lock *);
void (*lm_expire_lock)();
};
struct lease_manager_operations;
struct file_lease {
struct file_lock_core c;
struct fasync_struct *fl_fasync;
unsigned long fl_break_time;
unsigned long fl_downgrade_time;
const struct lease_manager_operations *fl_lmops;
};
struct lease_manager_operations {
bool (*lm_break)(struct file_lease *);
int (*lm_change)(struct file_lease *, int, struct list_head *);
void (*lm_setup)(struct file_lease *, void **);
bool (*lm_breaker_owns_lease)(struct file_lease *);
};
struct __kfifo {
unsigned int in;
unsigned int out;
unsigned int mask;
unsigned int esize;
void *data;
};
struct tty_buffer {
union {
struct tty_buffer *next;
struct llist_node free;
};
unsigned int used;
unsigned int size;
unsigned int commit;
unsigned int lookahead;
unsigned int read;
bool flags;
long: 0;
u8 data[0];
};
struct tty_bufhead {
struct tty_buffer *head;
struct work_struct work;
struct mutex lock;
atomic_t priority;
struct tty_buffer sentinel;
struct llist_head free;
atomic_t mem_used;
int mem_limit;
struct tty_buffer *tail;
};
struct tty_port_operations;
struct tty_port_client_operations;
struct tty_port {
struct tty_bufhead buf;
struct tty_struct *tty;
struct tty_struct *itty;
const struct tty_port_operations *ops;
const struct tty_port_client_operations *client_ops;
spinlock_t lock;
int blocked_open;
int count;
wait_queue_head_t open_wait;
wait_queue_head_t delta_msr_wait;
unsigned long flags;
unsigned long iflags;
unsigned char console: 1;
struct mutex mutex;
struct mutex buf_mutex;
u8 *xmit_buf;
struct {
union {
struct __kfifo kfifo;
u8 *type;
const u8 *const_type;
char (*rectype)[0];
u8 *ptr;
const u8 *ptr_const;
};
u8 buf[0];
} xmit_fifo;
unsigned int close_delay;
unsigned int closing_wait;
int drain_delay;
struct kref kref;
void *client_data;
};
struct tty_port_operations {
bool (*carrier_raised)(struct tty_port *);
void (*dtr_rts)(struct tty_port *, bool);
void (*shutdown)(struct tty_port *);
int (*activate)(struct tty_port *, struct tty_struct *);
void (*destruct)(struct tty_port *);
};
struct tty_port_client_operations {
size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t);
void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t);
void (*write_wakeup)(struct tty_port *);
};
struct serial_icounter_struct;
struct serial_struct;
struct tty_operations {
struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int);
int (*install)(struct tty_driver *, struct tty_struct *);
void (*remove)(struct tty_driver *, struct tty_struct *);
int (*open)(struct tty_struct *, struct file *);
void (*close)(struct tty_struct *, struct file *);
void (*shutdown)(struct tty_struct *);
void (*cleanup)(struct tty_struct *);
ssize_t (*write)(struct tty_struct *, const u8 *, size_t);
int (*put_char)(struct tty_struct *, u8);
void (*flush_chars)(struct tty_struct *);
unsigned int (*write_room)(struct tty_struct *);
unsigned int (*chars_in_buffer)(struct tty_struct *);
int (*ioctl)(struct tty_struct *, unsigned int, unsigned long);
long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long);
void (*set_termios)(struct tty_struct *, const struct ktermios *);
void (*throttle)(struct tty_struct *);
void (*unthrottle)(struct tty_struct *);
void (*stop)(struct tty_struct *);
void (*start)(struct tty_struct *);
void (*hangup)(struct tty_struct *);
int (*break_ctl)(struct tty_struct *, int);
void (*flush_buffer)(struct tty_struct *);
void (*set_ldisc)(struct tty_struct *);
void (*wait_until_sent)(struct tty_struct *, int);
void (*send_xchar)(struct tty_struct *, u8);
int (*tiocmget)(struct tty_struct *);
int (*tiocmset)(struct tty_struct *, unsigned int, unsigned int);
int (*resize)(struct tty_struct *, struct winsize *);
int (*get_icount)(struct tty_struct *, struct serial_icounter_struct *);
int (*get_serial)(struct tty_struct *, struct serial_struct *);
int (*set_serial)(struct tty_struct *, struct serial_struct *);
void (*show_fdinfo)(struct tty_struct *, struct seq_file *);
int (*proc_show)(struct seq_file *, void *);
};
struct tty_ldisc_ops;
struct tty_ldisc {
struct tty_ldisc_ops *ops;
struct tty_struct *tty;
};
struct tty_ldisc_ops {
char *name;
int num;
int (*open)(struct tty_struct *);
void (*close)(struct tty_struct *);
void (*flush_buffer)(struct tty_struct *);
ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long);
ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t);
int (*ioctl)(struct tty_struct *, unsigned int, unsigned long);
int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long);
void (*set_termios)(struct tty_struct *, const struct ktermios *);
__poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *);
void (*hangup)(struct tty_struct *);
void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t);
void (*write_wakeup)(struct tty_struct *);
void (*dcd_change)(struct tty_struct *, bool);
size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t);
void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t);
struct module *owner;
};
struct file_lock_context {
spinlock_t flc_lock;
struct list_head flc_flock;
struct list_head flc_posix;
struct list_head flc_lease;
};
struct readahead_control {
struct file *file;
struct address_space *mapping;
struct file_ra_state *ra;
unsigned long _index;
unsigned int _nr_pages;
unsigned int _batch_count;
bool _workingset;
unsigned long _pflags;
};
enum {
SB_UNFROZEN = 0,
SB_FREEZE_WRITE = 1,
SB_FREEZE_PAGEFAULT = 2,
SB_FREEZE_FS = 3,
SB_FREEZE_COMPLETE = 4,
};
enum fsnotify_data_type {
FSNOTIFY_EVENT_NONE = 0,
FSNOTIFY_EVENT_PATH = 1,
FSNOTIFY_EVENT_INODE = 2,
FSNOTIFY_EVENT_DENTRY = 3,
FSNOTIFY_EVENT_ERROR = 4,
};
typedef int __kernel_rwf_t;
struct open_how {
__u64 flags;
__u64 mode;
__u64 resolve;
};
struct fd {
struct file *file;
unsigned int flags;
};
struct audit_names;
struct filename {
const char *name;
const char __attribute__((btf_type_tag("user"))) *uptr;
atomic_t refcnt;
struct audit_names *aname;
const char iname[0];
};
struct open_flags {
int open_flag;
umode_t mode;
int acc_mode;
int intent;
int lookup_flags;
};
enum blk_unique_id {
BLK_UID_T10 = 1,
BLK_UID_EUI64 = 2,
BLK_UID_NAA = 3,
};
enum blk_bounce {
BLK_BOUNCE_NONE = 0,
BLK_BOUNCE_HIGH = 1,
};
enum passtype {
PASS_SCAN = 0,
PASS_REVOKE = 1,
PASS_REPLAY = 2,
};
typedef unsigned int tid_t;
struct transaction_chp_stats_s {
unsigned long cs_chp_time;
__u32 cs_forced_to_close;
__u32 cs_written;
__u32 cs_dropped;
};
struct journal_s;
typedef struct journal_s journal_t;
struct journal_head;
struct transaction_s;
typedef struct transaction_s transaction_t;
struct transaction_s {
journal_t *t_journal;
tid_t t_tid;
enum {
T_RUNNING = 0,
T_LOCKED = 1,
T_SWITCH = 2,
T_FLUSH = 3,
T_COMMIT = 4,
T_COMMIT_DFLUSH = 5,
T_COMMIT_JFLUSH = 6,
T_COMMIT_CALLBACK = 7,
T_FINISHED = 8,
} t_state;
unsigned long t_log_start;
int t_nr_buffers;
struct journal_head *t_reserved_list;
struct journal_head *t_buffers;
struct journal_head *t_forget;
struct journal_head *t_checkpoint_list;
struct journal_head *t_shadow_list;
struct list_head t_inode_list;
unsigned long t_max_wait;
unsigned long t_start;
unsigned long t_requested;
struct transaction_chp_stats_s t_chp_stats;
atomic_t t_updates;
atomic_t t_outstanding_credits;
atomic_t t_outstanding_revokes;
atomic_t t_handle_count;
transaction_t *t_cpnext;
transaction_t *t_cpprev;
unsigned long t_expires;
ktime_t t_start_time;
unsigned int t_synchronous_commit: 1;
int t_need_data_flush;
struct list_head t_private_list;
};
struct transaction_run_stats_s {
unsigned long rs_wait;
unsigned long rs_request_delay;
unsigned long rs_running;
unsigned long rs_locked;
unsigned long rs_flushing;
unsigned long rs_logging;
__u32 rs_handle_count;
__u32 rs_blocks;
__u32 rs_blocks_logged;
};
struct transaction_stats_s {
unsigned long ts_tid;
unsigned long ts_requested;
struct transaction_run_stats_s run;
};
struct buffer_head;
struct journal_superblock_s;
typedef struct journal_superblock_s journal_superblock_t;
struct jbd2_revoke_table_s;
struct jbd2_inode;
struct crypto_shash;
struct journal_s {
unsigned long j_flags;
int j_errno;
struct mutex j_abort_mutex;
struct buffer_head *j_sb_buffer;
journal_superblock_t *j_superblock;
rwlock_t j_state_lock;
int j_barrier_count;
struct mutex j_barrier;
transaction_t *j_running_transaction;
transaction_t *j_committing_transaction;
transaction_t *j_checkpoint_transactions;
wait_queue_head_t j_wait_transaction_locked;
wait_queue_head_t j_wait_done_commit;
wait_queue_head_t j_wait_commit;
wait_queue_head_t j_wait_updates;
wait_queue_head_t j_wait_reserved;
wait_queue_head_t j_fc_wait;
struct mutex j_checkpoint_mutex;
struct buffer_head *j_chkpt_bhs[64];
struct shrinker *j_shrinker;
struct percpu_counter j_checkpoint_jh_count;
transaction_t *j_shrink_transaction;
unsigned long j_head;
unsigned long j_tail;
unsigned long j_free;
unsigned long j_first;
unsigned long j_last;
unsigned long j_fc_first;
unsigned long j_fc_off;
unsigned long j_fc_last;
struct block_device *j_dev;
int j_blocksize;
unsigned long long j_blk_offset;
char j_devname[56];
struct block_device *j_fs_dev;
errseq_t j_fs_dev_wb_err;
unsigned int j_total_len;
atomic_t j_reserved_credits;
spinlock_t j_list_lock;
struct inode *j_inode;
tid_t j_tail_sequence;
tid_t j_transaction_sequence;
tid_t j_commit_sequence;
tid_t j_commit_request;
__u8 j_uuid[16];
struct task_struct *j_task;
int j_max_transaction_buffers;
int j_revoke_records_per_block;
unsigned long j_commit_interval;
struct timer_list j_commit_timer;
spinlock_t j_revoke_lock;
struct jbd2_revoke_table_s *j_revoke;
struct jbd2_revoke_table_s *j_revoke_table[2];
struct buffer_head **j_wbuf;
struct buffer_head **j_fc_wbuf;
int j_wbufsize;
int j_fc_wbufsize;
pid_t j_last_sync_writer;
u64 j_average_commit_time;
u32 j_min_batch_time;
u32 j_max_batch_time;
void (*j_commit_callback)(journal_t *, transaction_t *);
int (*j_submit_inode_data_buffers)(struct jbd2_inode *);
int (*j_finish_inode_data_buffers)(struct jbd2_inode *);
spinlock_t j_history_lock;
struct proc_dir_entry *j_proc_entry;
struct transaction_stats_s j_stats;
unsigned int j_failed_commit;
void *j_private;
struct crypto_shash *j_chksum_driver;
__u32 j_csum_seed;
struct lockdep_map j_trans_commit_map;
void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t);
int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t);
int (*j_bmap)(struct journal_s *, sector_t *);
};
typedef void bh_end_io_t(struct buffer_head *, int);
struct buffer_head {
unsigned long b_state;
struct buffer_head *b_this_page;
union {
struct page *b_page;
struct folio *b_folio;
};
sector_t b_blocknr;
size_t b_size;
char *b_data;
struct block_device *b_bdev;
bh_end_io_t *b_end_io;
void *b_private;
struct list_head b_assoc_buffers;
struct address_space *b_assoc_map;
atomic_t b_count;
spinlock_t b_uptodate_lock;
};
struct request;
struct io_comp_batch {
struct request *req_list;
bool need_ts;
void (*complete)(struct io_comp_batch *);
};
typedef unsigned int blk_mode_t;
struct block_device_operations;
struct timer_rand_state;
struct disk_events;
struct badblocks;
struct blk_independent_access_ranges;
struct gendisk {
int major;
int first_minor;
int minors;
char disk_name[32];
unsigned short events;
unsigned short event_flags;
struct xarray part_tbl;
struct block_device *part0;
const struct block_device_operations *fops;
struct request_queue *queue;
void *private_data;
struct bio_set bio_split;
int flags;
unsigned long state;
struct mutex open_mutex;
unsigned int open_partitions;
struct backing_dev_info *bdi;
struct kobject queue_kobj;
struct kobject *slave_dir;
struct list_head slave_bdevs;
struct timer_rand_state *random;
atomic_t sync_io;
struct disk_events *ev;
int node_id;
struct badblocks *bb;
struct lockdep_map lockdep_map;
u64 diskseq;
blk_mode_t open_mode;
struct blk_independent_access_ranges *ia_ranges;
};
struct blk_zone;
typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *);
struct hd_geometry;
struct pr_ops;
struct block_device_operations {
void (*submit_bio)(struct bio *);
int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int);
int (*open)(struct gendisk *, blk_mode_t);
void (*release)(struct gendisk *);
int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long);
int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long);
unsigned int (*check_events)(struct gendisk *, unsigned int);
void (*unlock_native_capacity)(struct gendisk *);
int (*getgeo)(struct block_device *, struct hd_geometry *);
int (*set_read_only)(struct block_device *, bool);
void (*free_disk)(struct gendisk *);
void (*swap_slot_free_notify)(struct block_device *, unsigned long);
int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *);
char * (*devnode)(struct gendisk *, umode_t *);
int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id);
struct module *owner;
const struct pr_ops *pr_ops;
int (*alternative_gpt_sector)(struct gendisk *, sector_t *);
};
struct blk_zone {
__u64 start;
__u64 len;
__u64 wp;
__u8 type;
__u8 cond;
__u8 non_seq;
__u8 reset;
__u8 resv[4];
__u64 capacity;
__u8 reserved[24];
};
enum pr_type {
PR_WRITE_EXCLUSIVE = 1,
PR_EXCLUSIVE_ACCESS = 2,
PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
};
struct pr_keys;
struct pr_held_reservation;
struct pr_ops {
int (*pr_register)(struct block_device *, u64, u64, u32);
int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32);
int (*pr_release)(struct block_device *, u64, enum pr_type);
int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool);
int (*pr_clear)(struct block_device *, u64);
int (*pr_read_keys)(struct block_device *, struct pr_keys *);
int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *);
};
struct queue_limits {
enum blk_bounce bounce;
unsigned long seg_boundary_mask;
unsigned long virt_boundary_mask;
unsigned int max_hw_sectors;
unsigned int max_dev_sectors;
unsigned int chunk_sectors;
unsigned int max_sectors;
unsigned int max_user_sectors;
unsigned int max_segment_size;
unsigned int physical_block_size;
unsigned int logical_block_size;
unsigned int alignment_offset;
unsigned int io_min;
unsigned int io_opt;
unsigned int max_discard_sectors;
unsigned int max_hw_discard_sectors;
unsigned int max_user_discard_sectors;
unsigned int max_secure_erase_sectors;
unsigned int max_write_zeroes_sectors;
unsigned int max_zone_append_sectors;
unsigned int discard_granularity;
unsigned int discard_alignment;
unsigned int zone_write_granularity;
unsigned short max_segments;
unsigned short max_integrity_segments;
unsigned short max_discard_segments;
unsigned char misaligned;
unsigned char discard_misaligned;
unsigned char raid_partial_stripes_expensive;
bool zoned;
unsigned int max_open_zones;
unsigned int max_active_zones;
unsigned int dma_alignment;
};
struct elevator_queue;
struct blk_mq_ops;
struct blk_mq_ctx;
struct blk_queue_stats;
struct rq_qos;
struct blk_mq_tags;
struct blk_trace;
struct blk_flush_queue;
struct throtl_data;
struct blk_mq_tag_set;
struct request_queue {
void *queuedata;
struct elevator_queue *elevator;
const struct blk_mq_ops *mq_ops;
struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx;
unsigned long queue_flags;
unsigned int rq_timeout;
unsigned int queue_depth;
refcount_t refs;
unsigned int nr_hw_queues;
struct xarray hctx_table;
struct percpu_ref q_usage_counter;
struct request *last_merge;
spinlock_t queue_lock;
int quiesce_depth;
struct gendisk *disk;
struct kobject *mq_kobj;
struct queue_limits limits;
struct device *dev;
enum rpm_status rpm_status;
atomic_t pm_only;
struct blk_queue_stats *stats;
struct rq_qos *rq_qos;
struct mutex rq_qos_mutex;
int id;
unsigned int dma_pad_mask;
unsigned long nr_requests;
struct timer_list timeout;
struct work_struct timeout_work;
atomic_t nr_active_requests_shared_tags;
unsigned int required_elevator_features;
struct blk_mq_tags *sched_shared_tags;
struct list_head icq_list;
unsigned long blkcg_pols[1];
struct blkcg_gq *root_blkg;
struct list_head blkg_list;
struct mutex blkcg_mutex;
int node;
spinlock_t requeue_lock;
struct list_head requeue_list;
struct delayed_work requeue_work;
struct blk_trace __attribute__((btf_type_tag("rcu"))) *blk_trace;
struct blk_flush_queue *fq;
struct list_head flush_list;
struct mutex sysfs_lock;
struct mutex sysfs_dir_lock;
struct mutex limits_lock;
struct list_head unused_hctx_list;
spinlock_t unused_hctx_lock;
int mq_freeze_depth;
struct throtl_data *td;
struct callback_head callback_head;
wait_queue_head_t mq_freeze_wq;
struct mutex mq_freeze_lock;
struct blk_mq_tag_set *tag_set;
struct list_head tag_set_list;
struct dentry *debugfs_dir;
struct dentry *sched_debugfs_dir;
struct dentry *rqos_debugfs_dir;
struct mutex debugfs_mutex;
bool mq_sysfs_init_done;
};
enum blk_eh_timer_return {
BLK_EH_DONE = 0,
BLK_EH_RESET_TIMER = 1,
};
struct blk_mq_hw_ctx;
struct blk_mq_queue_data;
struct blk_mq_ops {
blk_status_t (*queue_rq)(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *);
void (*commit_rqs)(struct blk_mq_hw_ctx *);
void (*queue_rqs)(struct request **);
int (*get_budget)(struct request_queue *);
void (*put_budget)(struct request_queue *, int);
void (*set_rq_budget_token)(struct request *, int);
int (*get_rq_budget_token)(struct request *);
enum blk_eh_timer_return (*timeout)(struct request *);
int (*poll)(struct blk_mq_hw_ctx *, struct io_comp_batch *);
void (*complete)(struct request *);
int (*init_hctx)(struct blk_mq_hw_ctx *, void *, unsigned int);
void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
int (*init_request)(struct blk_mq_tag_set *, struct request *, unsigned int, unsigned int);
void (*exit_request)(struct blk_mq_tag_set *, struct request *, unsigned int);
void (*cleanup_rq)(struct request *);
bool (*busy)(struct request_queue *);
void (*map_queues)(struct blk_mq_tag_set *);
void (*show_rq)(struct seq_file *, struct request *);
};
struct blk_mq_ctxs;
struct blk_mq_ctx {
struct {
spinlock_t lock;
struct list_head rq_lists[3];
long: 64;
long: 64;
};
unsigned int cpu;
unsigned short index_hw[3];
struct blk_mq_hw_ctx *hctxs[3];
struct request_queue *queue;
struct blk_mq_ctxs *ctxs;
struct kobject kobj;
long: 64;
};
struct rchan;
struct blk_trace {
int trace_state;
struct rchan *rchan;
unsigned long __attribute__((btf_type_tag("percpu"))) *sequence;
unsigned char __attribute__((btf_type_tag("percpu"))) *msg_data;
u16 act_mask;
u64 start_lba;
u64 end_lba;
u32 pid;
u32 dev;
struct dentry *dir;
struct list_head running_list;
atomic_t dropped;
};
struct blk_independent_access_range {
struct kobject kobj;
sector_t sector;
sector_t nr_sectors;
};
struct blk_independent_access_ranges {
struct kobject kobj;
bool sysfs_registered;
unsigned int nr_ia_ranges;
struct blk_independent_access_range ia_range[0];
};
struct partition_meta_info {
char uuid[37];
u8 volname[64];
};
struct blk_plug {
struct request *mq_list;
struct request *cached_rq;
u64 cur_ktime;
unsigned short nr_ios;
unsigned short rq_count;
bool multiple_queues;
bool has_elevator;
struct list_head cb_list;
};
struct fiemap_extent;
struct fiemap_extent_info {
unsigned int fi_flags;
unsigned int fi_extents_mapped;
unsigned int fi_extents_max;
struct fiemap_extent __attribute__((btf_type_tag("user"))) *fi_extents_start;
};
struct fiemap_extent {
__u64 fe_logical;
__u64 fe_physical;
__u64 fe_length;
__u64 fe_reserved64[2];
__u32 fe_flags;
__u32 fe_reserved[3];
};
struct journal_header_s {
__be32 h_magic;
__be32 h_blocktype;
__be32 h_sequence;
};
typedef struct journal_header_s journal_header_t;
struct journal_superblock_s {
journal_header_t s_header;
__be32 s_blocksize;
__be32 s_maxlen;
__be32 s_first;
__be32 s_sequence;
__be32 s_start;
__be32 s_errno;
__be32 s_feature_compat;
__be32 s_feature_incompat;
__be32 s_feature_ro_compat;
__u8 s_uuid[16];
__be32 s_nr_users;
__be32 s_dynsuper;
__be32 s_max_transaction;
__be32 s_max_trans_data;
__u8 s_checksum_type;
__u8 s_padding2[3];
__be32 s_num_fc_blks;
__be32 s_head;
__u32 s_padding[40];
__be32 s_checksum;
__u8 s_users[768];
};
struct jbd2_inode {
transaction_t *i_transaction;
transaction_t *i_next_transaction;
struct list_head i_list;
struct inode *i_vfs_inode;
unsigned long i_flags;
loff_t i_dirty_start;
loff_t i_dirty_end;
};
struct crypto_alg;
struct crypto_tfm {
refcount_t refcnt;
u32 crt_flags;
int node;
void (*exit)(struct crypto_tfm *);
struct crypto_alg *__crt_alg;
void *__crt_ctx[0];
};
struct crypto_shash {
unsigned int descsize;
struct crypto_tfm base;
};
struct cipher_alg {
unsigned int cia_min_keysize;
unsigned int cia_max_keysize;
int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int);
void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *);
void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *);
};
struct compress_alg {
int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *);
};
struct crypto_type;
struct crypto_alg {
struct list_head cra_list;
struct list_head cra_users;
u32 cra_flags;
unsigned int cra_blocksize;
unsigned int cra_ctxsize;
unsigned int cra_alignmask;
int cra_priority;
refcount_t cra_refcnt;
char cra_name[128];
char cra_driver_name[128];
const struct crypto_type *cra_type;
union {
struct cipher_alg cipher;
struct compress_alg compress;
} cra_u;
int (*cra_init)(struct crypto_tfm *);
void (*cra_exit)(struct crypto_tfm *);
void (*cra_destroy)(struct crypto_alg *);
struct module *cra_module;
};
struct crypto_instance;
struct crypto_type {
unsigned int (*ctxsize)(struct crypto_alg *, u32, u32);
unsigned int (*extsize)(struct crypto_alg *);
int (*init_tfm)(struct crypto_tfm *);
void (*show)(struct seq_file *, struct crypto_alg *);
int (*report)(struct sk_buff *, struct crypto_alg *);
void (*free)(struct crypto_instance *);
unsigned int type;
unsigned int maskclear;
unsigned int maskset;
unsigned int tfmsize;
};
struct jbd2_buffer_trigger_type;
struct journal_head {
struct buffer_head *b_bh;
spinlock_t b_state_lock;
int b_jcount;
unsigned int b_jlist;
unsigned int b_modified;
char *b_frozen_data;
char *b_committed_data;
transaction_t *b_transaction;
transaction_t *b_next_transaction;
struct journal_head *b_tnext;
struct journal_head *b_tprev;
transaction_t *b_cp_transaction;
struct journal_head *b_cpnext;
struct journal_head *b_cpprev;
struct jbd2_buffer_trigger_type *b_triggers;
struct jbd2_buffer_trigger_type *b_frozen_triggers;
};
struct jbd2_buffer_trigger_type {
void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t);
void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *);
};
enum {
EXT4_INODE_SECRM = 0,
EXT4_INODE_UNRM = 1,
EXT4_INODE_COMPR = 2,
EXT4_INODE_SYNC = 3,
EXT4_INODE_IMMUTABLE = 4,
EXT4_INODE_APPEND = 5,
EXT4_INODE_NODUMP = 6,
EXT4_INODE_NOATIME = 7,
EXT4_INODE_DIRTY = 8,
EXT4_INODE_COMPRBLK = 9,
EXT4_INODE_NOCOMPR = 10,
EXT4_INODE_ENCRYPT = 11,
EXT4_INODE_INDEX = 12,
EXT4_INODE_IMAGIC = 13,
EXT4_INODE_JOURNAL_DATA = 14,
EXT4_INODE_NOTAIL = 15,
EXT4_INODE_DIRSYNC = 16,
EXT4_INODE_TOPDIR = 17,
EXT4_INODE_HUGE_FILE = 18,
EXT4_INODE_EXTENTS = 19,
EXT4_INODE_VERITY = 20,
EXT4_INODE_EA_INODE = 21,
EXT4_INODE_DAX = 25,
EXT4_INODE_INLINE_DATA = 28,
EXT4_INODE_PROJINHERIT = 29,
EXT4_INODE_CASEFOLD = 30,
EXT4_INODE_RESERVED = 31,
};
enum bh_state_bits {
BH_Uptodate = 0,
BH_Dirty = 1,
BH_Lock = 2,
BH_Req = 3,
BH_Mapped = 4,
BH_New = 5,
BH_Async_Read = 6,
BH_Async_Write = 7,
BH_Delay = 8,
BH_Boundary = 9,
BH_Write_EIO = 10,
BH_Unwritten = 11,
BH_Quiet = 12,
BH_Meta = 13,
BH_Prio = 14,
BH_Defer_Completion = 15,
BH_PrivateStart = 16,
};
enum ext4_journal_trigger_type {
EXT4_JTR_ORPHAN_FILE = 0,
EXT4_JTR_NONE = 1,
};
enum ext4_li_mode {
EXT4_LI_MODE_PREFETCH_BBITMAP = 0,
EXT4_LI_MODE_ITABLE = 1,
};
typedef __u32 __le32;
typedef unsigned long long ext4_fsblk_t;
typedef unsigned int ext4_group_t;
typedef __u32 ext4_lblk_t;
struct extent_status;
struct ext4_es_tree {
struct rb_root root;
struct extent_status *cache_es;
};
struct ext4_pending_tree {
struct rb_root root;
};
struct ext4_inode_info {
__le32 i_data[15];
__u32 i_dtime;
ext4_fsblk_t i_file_acl;
ext4_group_t i_block_group;
ext4_lblk_t i_dir_start_lookup;
unsigned long i_flags;
struct rw_semaphore xattr_sem;
union {
struct list_head i_orphan;
unsigned int i_orphan_idx;
};
struct list_head i_fc_dilist;
struct list_head i_fc_list;
ext4_lblk_t i_fc_lblk_start;
ext4_lblk_t i_fc_lblk_len;
atomic_t i_fc_updates;
wait_queue_head_t i_fc_wait;
struct mutex i_fc_lock;
loff_t i_disksize;
struct rw_semaphore i_data_sem;
struct inode vfs_inode;
struct jbd2_inode *jinode;
spinlock_t i_raw_lock;
struct timespec64 i_crtime;
atomic_t i_prealloc_active;
struct rb_root i_prealloc_node;
rwlock_t i_prealloc_lock;
struct ext4_es_tree i_es_tree;
rwlock_t i_es_lock;
struct list_head i_es_list;
unsigned int i_es_all_nr;
unsigned int i_es_shk_nr;
ext4_lblk_t i_es_shrink_lblk;
ext4_group_t i_last_alloc_group;
unsigned int i_reserved_data_blocks;
struct ext4_pending_tree i_pending_tree;
__u16 i_extra_isize;
u16 i_inline_off;
u16 i_inline_size;
spinlock_t i_completed_io_lock;
struct list_head i_rsv_conversion_list;
struct work_struct i_rsv_conversion_work;
atomic_t i_unwritten;
spinlock_t i_block_reservation_lock;
tid_t i_sync_tid;
tid_t i_datasync_tid;
__u32 i_csum_seed;
kprojid_t i_projid;
};
struct extent_status {
struct rb_node rb_node;
ext4_lblk_t es_lblk;
ext4_lblk_t es_len;
ext4_fsblk_t es_pblk;
};
struct ext4_orphan_block;
struct ext4_orphan_info {
int of_blocks;
__u32 of_csum_seed;
struct ext4_orphan_block *of_binfo;
};
struct ext4_es_stats {
unsigned long es_stats_shrunk;
struct percpu_counter es_stats_cache_hits;
struct percpu_counter es_stats_cache_misses;
u64 es_stats_scan_time;
u64 es_stats_max_scan_time;
struct percpu_counter es_stats_all_cnt;
struct percpu_counter es_stats_shk_cnt;
};
struct ext4_journal_trigger {
struct jbd2_buffer_trigger_type tr_triggers;
struct super_block *sb;
};
struct fscrypt_dummy_policy {};
struct dax_device;
struct ext4_fc_stats {
unsigned int fc_ineligible_reason_count[10];
unsigned long fc_num_commits;
unsigned long fc_ineligible_commits;
unsigned long fc_failed_commits;
unsigned long fc_skipped_commits;
unsigned long fc_numblks;
u64 s_fc_avg_commit_time;
};
struct ext4_fc_alloc_region;
struct ext4_fc_replay_state {
int fc_replay_num_tags;
int fc_replay_expected_off;
int fc_current_pass;
int fc_cur_tag;
int fc_crc;
struct ext4_fc_alloc_region *fc_regions;
int fc_regions_size;
int fc_regions_used;
int fc_regions_valid;
int *fc_modified_inodes;
int fc_modified_inodes_used;
int fc_modified_inodes_size;
};
struct ext4_super_block;
struct blockgroup_lock;
struct ext4_system_blocks;
struct ext4_group_info;
struct ext4_locality_group;
struct flex_groups;
struct ext4_li_request;
struct mb_cache;
struct ext4_sb_info {
unsigned long s_desc_size;
unsigned long s_inodes_per_block;
unsigned long s_blocks_per_group;
unsigned long s_clusters_per_group;
unsigned long s_inodes_per_group;
unsigned long s_itb_per_group;
unsigned long s_gdb_count;
unsigned long s_desc_per_block;
ext4_group_t s_groups_count;
ext4_group_t s_blockfile_groups;
unsigned long s_overhead;
unsigned int s_cluster_ratio;
unsigned int s_cluster_bits;
loff_t s_bitmap_maxbytes;
struct buffer_head *s_sbh;
struct ext4_super_block *s_es;
struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc;
unsigned int s_mount_opt;
unsigned int s_mount_opt2;
unsigned long s_mount_flags;
unsigned int s_def_mount_opt;
unsigned int s_def_mount_opt2;
ext4_fsblk_t s_sb_block;
atomic64_t s_resv_clusters;
kuid_t s_resuid;
kgid_t s_resgid;
unsigned short s_mount_state;
unsigned short s_pad;
int s_addr_per_block_bits;
int s_desc_per_block_bits;
int s_inode_size;
int s_first_ino;
unsigned int s_inode_readahead_blks;
unsigned int s_inode_goal;
u32 s_hash_seed[4];
int s_def_hash_version;
int s_hash_unsigned;
struct percpu_counter s_freeclusters_counter;
struct percpu_counter s_freeinodes_counter;
struct percpu_counter s_dirs_counter;
struct percpu_counter s_dirtyclusters_counter;
struct percpu_counter s_sra_exceeded_retry_limit;
struct blockgroup_lock *s_blockgroup_lock;
struct proc_dir_entry *s_proc;
struct kobject s_kobj;
struct completion s_kobj_unregister;
struct super_block *s_sb;
struct buffer_head *s_mmp_bh;
struct journal_s *s_journal;
unsigned long s_ext4_flags;
struct mutex s_orphan_lock;
struct list_head s_orphan;
struct ext4_orphan_info s_orphan_info;
unsigned long s_commit_interval;
u32 s_max_batch_time;
u32 s_min_batch_time;
struct file *s_journal_bdev_file;
unsigned int s_want_extra_isize;
struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks;
struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info;
struct inode *s_buddy_cache;
spinlock_t s_md_lock;
unsigned short *s_mb_offsets;
unsigned int *s_mb_maxs;
unsigned int s_group_info_size;
unsigned int s_mb_free_pending;
struct list_head s_freed_data_list[2];
struct list_head s_discard_list;
struct work_struct s_discard_work;
atomic_t s_retry_alloc_pending;
struct list_head *s_mb_avg_fragment_size;
rwlock_t *s_mb_avg_fragment_size_locks;
struct list_head *s_mb_largest_free_orders;
rwlock_t *s_mb_largest_free_orders_locks;
unsigned long s_stripe;
unsigned int s_mb_max_linear_groups;
unsigned int s_mb_stream_request;
unsigned int s_mb_max_to_scan;
unsigned int s_mb_min_to_scan;
unsigned int s_mb_stats;
unsigned int s_mb_order2_reqs;
unsigned int s_mb_group_prealloc;
unsigned int s_max_dir_size_kb;
unsigned long s_mb_last_group;
unsigned long s_mb_last_start;
unsigned int s_mb_prefetch;
unsigned int s_mb_prefetch_limit;
unsigned int s_mb_best_avail_max_trim_order;
atomic_t s_bal_reqs;
atomic_t s_bal_success;
atomic_t s_bal_allocated;
atomic_t s_bal_ex_scanned;
atomic_t s_bal_cX_ex_scanned[5];
atomic_t s_bal_groups_scanned;
atomic_t s_bal_goals;
atomic_t s_bal_len_goals;
atomic_t s_bal_breaks;
atomic_t s_bal_2orders;
atomic_t s_bal_p2_aligned_bad_suggestions;
atomic_t s_bal_goal_fast_bad_suggestions;
atomic_t s_bal_best_avail_bad_suggestions;
atomic64_t s_bal_cX_groups_considered[5];
atomic64_t s_bal_cX_hits[5];
atomic64_t s_bal_cX_failed[5];
atomic_t s_mb_buddies_generated;
atomic64_t s_mb_generation_time;
atomic_t s_mb_lost_chunks;
atomic_t s_mb_preallocated;
atomic_t s_mb_discarded;
atomic_t s_lock_busy;
struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups;
unsigned long s_sectors_written_start;
u64 s_kbytes_written;
unsigned int s_extent_max_zeroout_kb;
unsigned int s_log_groups_per_flex;
struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups;
ext4_group_t s_flex_groups_allocated;
struct workqueue_struct *rsv_conversion_wq;
struct timer_list s_err_report;
struct ext4_li_request *s_li_request;
unsigned int s_li_wait_mult;
struct task_struct *s_mmp_tsk;
unsigned long s_last_trim_minblks;
struct crypto_shash *s_chksum_driver;
__u32 s_csum_seed;
struct shrinker *s_es_shrinker;
struct list_head s_es_list;
long s_es_nr_inode;
struct ext4_es_stats s_es_stats;
struct mb_cache *s_ea_block_cache;
struct mb_cache *s_ea_inode_cache;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t s_es_lock;
struct ext4_journal_trigger s_journal_triggers[1];
struct ratelimit_state s_err_ratelimit_state;
struct ratelimit_state s_warning_ratelimit_state;
struct ratelimit_state s_msg_ratelimit_state;
atomic_t s_warning_count;
atomic_t s_msg_count;
struct fscrypt_dummy_policy s_dummy_enc_policy;
struct percpu_rw_semaphore s_writepages_rwsem;
struct dax_device *s_daxdev;
u64 s_dax_part_off;
errseq_t s_bdev_wb_err;
spinlock_t s_bdev_wb_lock;
spinlock_t s_error_lock;
int s_add_error_count;
int s_first_error_code;
__u32 s_first_error_line;
__u32 s_first_error_ino;
__u64 s_first_error_block;
const char *s_first_error_func;
time64_t s_first_error_time;
int s_last_error_code;
__u32 s_last_error_line;
__u32 s_last_error_ino;
__u64 s_last_error_block;
const char *s_last_error_func;
time64_t s_last_error_time;
struct work_struct s_sb_upd_work;
atomic_t s_fc_subtid;
struct list_head s_fc_q[2];
struct list_head s_fc_dentry_q[2];
unsigned int s_fc_bytes;
spinlock_t s_fc_lock;
struct buffer_head *s_fc_bh;
struct ext4_fc_stats s_fc_stats;
tid_t s_fc_ineligible_tid;
struct ext4_fc_replay_state s_fc_replay_state;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef __u16 __le16;
typedef __u64 __le64;
struct ext4_super_block {
__le32 s_inodes_count;
__le32 s_blocks_count_lo;
__le32 s_r_blocks_count_lo;
__le32 s_free_blocks_count_lo;
__le32 s_free_inodes_count;
__le32 s_first_data_block;
__le32 s_log_block_size;
__le32 s_log_cluster_size;
__le32 s_blocks_per_group;
__le32 s_clusters_per_group;
__le32 s_inodes_per_group;
__le32 s_mtime;
__le32 s_wtime;
__le16 s_mnt_count;
__le16 s_max_mnt_count;
__le16 s_magic;
__le16 s_state;
__le16 s_errors;
__le16 s_minor_rev_level;
__le32 s_lastcheck;
__le32 s_checkinterval;
__le32 s_creator_os;
__le32 s_rev_level;
__le16 s_def_resuid;
__le16 s_def_resgid;
__le32 s_first_ino;
__le16 s_inode_size;
__le16 s_block_group_nr;
__le32 s_feature_compat;
__le32 s_feature_incompat;
__le32 s_feature_ro_compat;
__u8 s_uuid[16];
char s_volume_name[16];
char s_last_mounted[64];
__le32 s_algorithm_usage_bitmap;
__u8 s_prealloc_blocks;
__u8 s_prealloc_dir_blocks;
__le16 s_reserved_gdt_blocks;
__u8 s_journal_uuid[16];
__le32 s_journal_inum;
__le32 s_journal_dev;
__le32 s_last_orphan;
__le32 s_hash_seed[4];
__u8 s_def_hash_version;
__u8 s_jnl_backup_type;
__le16 s_desc_size;
__le32 s_default_mount_opts;
__le32 s_first_meta_bg;
__le32 s_mkfs_time;
__le32 s_jnl_blocks[17];
__le32 s_blocks_count_hi;
__le32 s_r_blocks_count_hi;
__le32 s_free_blocks_count_hi;
__le16 s_min_extra_isize;
__le16 s_want_extra_isize;
__le32 s_flags;
__le16 s_raid_stride;
__le16 s_mmp_update_interval;
__le64 s_mmp_block;
__le32 s_raid_stripe_width;
__u8 s_log_groups_per_flex;
__u8 s_checksum_type;
__u8 s_encryption_level;
__u8 s_reserved_pad;
__le64 s_kbytes_written;
__le32 s_snapshot_inum;
__le32 s_snapshot_id;
__le64 s_snapshot_r_blocks_count;
__le32 s_snapshot_list;
__le32 s_error_count;
__le32 s_first_error_time;
__le32 s_first_error_ino;
__le64 s_first_error_block;
__u8 s_first_error_func[32];
__le32 s_first_error_line;
__le32 s_last_error_time;
__le32 s_last_error_ino;
__le32 s_last_error_line;
__le64 s_last_error_block;
__u8 s_last_error_func[32];
__u8 s_mount_opts[64];
__le32 s_usr_quota_inum;
__le32 s_grp_quota_inum;
__le32 s_overhead_clusters;
__le32 s_backup_bgs[2];
__u8 s_encrypt_algos[4];
__u8 s_encrypt_pw_salt[16];
__le32 s_lpf_ino;
__le32 s_prj_quota_inum;
__le32 s_checksum_seed;
__u8 s_wtime_hi;
__u8 s_mtime_hi;
__u8 s_mkfs_time_hi;
__u8 s_lastcheck_hi;
__u8 s_first_error_time_hi;
__u8 s_last_error_time_hi;
__u8 s_first_error_errcode;
__u8 s_last_error_errcode;
__le16 s_encoding;
__le16 s_encoding_flags;
__le32 s_orphan_file_inum;
__le32 s_reserved[94];
__le32 s_checksum;
};
struct bgl_lock {
spinlock_t lock;
};
struct blockgroup_lock {
struct bgl_lock locks[128];
};
struct ext4_orphan_block {
atomic_t ob_free_entries;
struct buffer_head *ob_bh;
};
struct ext4_system_blocks {
struct rb_root root;
struct callback_head rcu;
};
typedef int ext4_grpblk_t;
struct ext4_group_info {
unsigned long bb_state;
struct rb_root bb_free_root;
ext4_grpblk_t bb_first_free;
ext4_grpblk_t bb_free;
ext4_grpblk_t bb_fragments;
int bb_avg_fragment_size_order;
ext4_grpblk_t bb_largest_free_order;
ext4_group_t bb_group;
struct list_head bb_prealloc_list;
struct rw_semaphore alloc_sem;
struct list_head bb_avg_fragment_size_node;
struct list_head bb_largest_free_order_node;
ext4_grpblk_t bb_counters[0];
};
struct ext4_locality_group {
struct mutex lg_mutex;
struct list_head lg_prealloc_list[10];
spinlock_t lg_prealloc_lock;
};
struct flex_groups {
atomic64_t free_clusters;
atomic_t free_inodes;
atomic_t used_dirs;
};
struct ext4_li_request {
struct super_block *lr_super;
enum ext4_li_mode lr_mode;
ext4_group_t lr_first_not_zeroed;
ext4_group_t lr_next_group;
struct list_head lr_request;
unsigned long lr_next_sched;
unsigned long lr_timeout;
};
struct ext4_fc_alloc_region {
ext4_lblk_t lblk;
ext4_fsblk_t pblk;
int ino;
int len;
};
typedef struct {
__le32 *p;
__le32 key;
struct buffer_head *bh;
} Indirect;
struct ext4_map_blocks {
ext4_fsblk_t m_pblk;
ext4_lblk_t m_lblk;
unsigned int m_len;
unsigned int m_flags;
};
struct jbd2_journal_handle;
typedef struct jbd2_journal_handle handle_t;
struct jbd2_journal_handle {
union {
transaction_t *h_transaction;
journal_t *h_journal;
};
handle_t *h_rsv_handle;
int h_total_credits;
int h_revoke_credits;
int h_revoke_credits_requested;
int h_ref;
int h_err;
unsigned int h_sync: 1;
unsigned int h_jdata: 1;
unsigned int h_reserved: 1;
unsigned int h_aborted: 1;
unsigned int h_type: 8;
unsigned int h_line_no: 16;
unsigned long h_start_jiffies;
unsigned int h_requested_credits;
unsigned int saved_alloc_context;
};
struct ext4_allocation_request {
struct inode *inode;
unsigned int len;
ext4_lblk_t logical;
ext4_lblk_t lleft;
ext4_lblk_t lright;
ext4_fsblk_t goal;
ext4_fsblk_t pleft;
ext4_fsblk_t pright;
unsigned int flags;
};
enum fs_value_type {
fs_value_is_undefined = 0,
fs_value_is_flag = 1,
fs_value_is_string = 2,
fs_value_is_blob = 3,
fs_value_is_filename = 4,
fs_value_is_file = 5,
};
enum fs_context_purpose {
FS_CONTEXT_FOR_MOUNT = 0,
FS_CONTEXT_FOR_SUBMOUNT = 1,
FS_CONTEXT_FOR_RECONFIGURE = 2,
};
enum fs_context_phase {
FS_CONTEXT_CREATE_PARAMS = 0,
FS_CONTEXT_CREATING = 1,
FS_CONTEXT_AWAITING_MOUNT = 2,
FS_CONTEXT_AWAITING_RECONF = 3,
FS_CONTEXT_RECONF_PARAMS = 4,
FS_CONTEXT_RECONFIGURING = 5,
FS_CONTEXT_FAILED = 6,
};
enum autofs_notify {
NFY_NONE = 0,
NFY_MOUNT = 1,
NFY_EXPIRE = 2,
};
enum dentry_d_lock_class {
DENTRY_D_LOCK_NORMAL = 0,
DENTRY_D_LOCK_NESTED = 1,
};
struct autofs_wait_queue;
struct autofs_sb_info {
u32 magic;
int pipefd;
struct file *pipe;
struct pid *oz_pgrp;
int version;
int sub_version;
int min_proto;
int max_proto;
unsigned int flags;
unsigned long exp_timeout;
unsigned int type;
struct super_block *sb;
struct mutex wq_mutex;
struct mutex pipe_mutex;
spinlock_t fs_lock;
struct autofs_wait_queue *queues;
spinlock_t lookup_lock;
struct list_head active_list;
struct list_head expiring_list;
struct callback_head rcu;
};
struct fc_log;
struct p_log {
const char *prefix;
struct fc_log *log;
};
struct fs_context_operations;
struct fs_context {
const struct fs_context_operations *ops;
struct mutex uapi_mutex;
struct file_system_type *fs_type;
void *fs_private;
void *sget_key;
struct dentry *root;
struct user_namespace *user_ns;
struct net *net_ns;
const struct cred *cred;
struct p_log log;
const char *source;
void *security;
void *s_fs_info;
unsigned int sb_flags;
unsigned int sb_flags_mask;
unsigned int s_iflags;
enum fs_context_purpose purpose: 8;
enum fs_context_phase phase: 8;
bool need_free: 1;
bool global: 1;
bool oldapi: 1;
bool exclusive: 1;
};
struct fs_context_operations {
void (*free)(struct fs_context *);
int (*dup)(struct fs_context *, struct fs_context *);
int (*parse_param)(struct fs_context *, struct fs_parameter *);
int (*parse_monolithic)(struct fs_context *, void *);
int (*get_tree)(struct fs_context *);
int (*reconfigure)(struct fs_context *);
};
struct fs_parameter {
const char *key;
enum fs_value_type type: 8;
union {
char *string;
void *blob;
struct filename *name;
struct file *file;
};
size_t size;
int dirfd;
};
struct fc_log {
refcount_t usage;
u8 head;
u8 tail;
u8 need_free;
struct module *owner;
char *buffer[8];
};
struct fs_parse_result {
bool negated;
union {
bool boolean;
int int_32;
unsigned int uint_32;
u64 uint_64;
};
};
typedef unsigned int autofs_wqt_t;
struct autofs_wait_queue {
wait_queue_head_t queue;
struct autofs_wait_queue *next;
autofs_wqt_t wait_queue_token;
struct qstr name;
u32 offset;
u32 dev;
u64 ino;
kuid_t uid;
kgid_t gid;
pid_t pid;
pid_t tgid;
int status;
unsigned int wait_ctr;
};
struct autofs_info {
struct dentry *dentry;
int flags;
struct completion expire_complete;
struct list_head active;
struct list_head expiring;
struct autofs_sb_info *sbi;
unsigned long last_used;
int count;
kuid_t uid;
kgid_t gid;
struct callback_head rcu;
};
struct autofs_packet_hdr {
int proto_version;
int type;
};
struct autofs_packet_expire {
struct autofs_packet_hdr hdr;
int len;
char name[256];
};
struct key_preparsed_payload {
const char *orig_description;
char *description;
union key_payload payload;
const void *data;
size_t datalen;
size_t quotalen;
time64_t expiry;
};
struct key_user {
struct rb_node node;
struct mutex cons_lock;
spinlock_t lock;
refcount_t usage;
atomic_t nkeys;
atomic_t nikeys;
kuid_t uid;
int qnkeys;
int qnbytes;
};
struct key_match_data {
bool (*cmp)(const struct key *, const struct key_match_data *);
const void *raw_data;
void *preparsed;
unsigned int lookup_type;
};
enum kernel_pkey_operation {
kernel_pkey_encrypt = 0,
kernel_pkey_decrypt = 1,
kernel_pkey_sign = 2,
kernel_pkey_verify = 3,
};
struct kernel_pkey_params {
struct key *key;
const char *encoding;
const char *hash_algo;
char *info;
__u32 in_len;
union {
__u32 out_len;
__u32 in2_len;
};
enum kernel_pkey_operation op: 8;
};
struct kernel_pkey_query {
__u32 supported_ops;
__u32 key_size;
__u16 max_data_size;
__u16 max_sig_size;
__u16 max_enc_size;
__u16 max_dec_size;
};
enum key_state {
KEY_IS_UNINSTANTIATED = 0,
KEY_IS_POSITIVE = 1,
};
struct user_key_payload {
struct callback_head rcu;
unsigned short datalen;
long: 0;
char data[0];
};
typedef void (*rcu_callback_t)(struct callback_head *);
struct crypto_template;
struct crypto_spawn;
struct crypto_instance {
struct crypto_alg alg;
struct crypto_template *tmpl;
union {
struct hlist_node list;
struct crypto_spawn *spawns;
};
struct work_struct free_work;
void *__ctx[0];
};
struct rtattr;
struct crypto_template {
struct list_head list;
struct hlist_head instances;
struct module *module;
int (*create)(struct crypto_template *, struct rtattr **);
char name[128];
};
struct crypto_spawn {
struct list_head list;
struct crypto_alg *alg;
union {
struct crypto_instance *inst;
struct crypto_spawn *next;
};
const struct crypto_type *frontend;
u32 mask;
bool dead;
bool registered;
};
struct crypto_aead;
struct aead_request;
struct aead_alg {
int (*setkey)(struct crypto_aead *, const u8 *, unsigned int);
int (*setauthsize)(struct crypto_aead *, unsigned int);
int (*encrypt)(struct aead_request *);
int (*decrypt)(struct aead_request *);
int (*init)(struct crypto_aead *);
void (*exit)(struct crypto_aead *);
unsigned int ivsize;
unsigned int maxauthsize;
unsigned int chunksize;
struct crypto_alg base;
};
struct crypto_aead {
unsigned int authsize;
unsigned int reqsize;
struct crypto_tfm base;
};
typedef void (*crypto_completion_t)(void *, int);
struct crypto_async_request {
struct list_head list;
crypto_completion_t complete;
void *data;
struct crypto_tfm *tfm;
u32 flags;
};
struct scatterlist;
struct aead_request {
struct crypto_async_request base;
unsigned int assoclen;
unsigned int cryptlen;
u8 *iv;
struct scatterlist *src;
struct scatterlist *dst;
void *__ctx[0];
};
struct scatterlist {
unsigned long page_link;
unsigned int offset;
unsigned int length;
dma_addr_t dma_address;
unsigned int dma_length;
};
struct aead_instance {
void (*free)(struct aead_instance *);
union {
struct {
char head[64];
struct crypto_instance base;
} s;
struct aead_alg alg;
};
};
struct crypto_istat_aead {
atomic64_t encrypt_cnt;
atomic64_t encrypt_tlen;
atomic64_t decrypt_cnt;
atomic64_t decrypt_tlen;
atomic64_t err_cnt;
};
struct crypto_aead_spawn {
struct crypto_spawn base;
};
enum rq_end_io_ret {
RQ_END_IO_NONE = 0,
RQ_END_IO_FREE = 1,
};
typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t);
typedef __u32 req_flags_t;
enum mq_rq_state {
MQ_RQ_IDLE = 0,
MQ_RQ_IN_FLIGHT = 1,
MQ_RQ_COMPLETE = 2,
};
struct request {
struct request_queue *q;
struct blk_mq_ctx *mq_ctx;
struct blk_mq_hw_ctx *mq_hctx;
blk_opf_t cmd_flags;
req_flags_t rq_flags;
int tag;
int internal_tag;
unsigned int timeout;
unsigned int __data_len;
sector_t __sector;
struct bio *bio;
struct bio *biotail;
union {
struct list_head queuelist;
struct request *rq_next;
};
struct block_device *part;
u64 alloc_time_ns;
u64 start_time_ns;
u64 io_start_time_ns;
unsigned short wbt_flags;
unsigned short stats_sectors;
unsigned short nr_phys_segments;
enum rw_hint write_hint;
unsigned short ioprio;
enum mq_rq_state state;
atomic_t ref;
unsigned long deadline;
union {
struct hlist_node hash;
struct llist_node ipi_list;
};
union {
struct rb_node rb_node;
struct bio_vec special_vec;
};
struct {
struct io_cq *icq;
void *priv[2];
} elv;
struct {
unsigned int seq;
rq_end_io_fn *saved_end_io;
} flush;
u64 fifo_time;
rq_end_io_fn *end_io;
void *end_io_data;
};
struct sbitmap_word;
struct sbitmap {
unsigned int depth;
unsigned int shift;
unsigned int map_nr;
bool round_robin;
struct sbitmap_word *map;
unsigned int __attribute__((btf_type_tag("percpu"))) *alloc_hint;
};
struct blk_mq_hw_ctx {
struct {
spinlock_t lock;
struct list_head dispatch;
unsigned long state;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct delayed_work run_work;
cpumask_var_t cpumask;
int next_cpu;
int next_cpu_batch;
unsigned long flags;
void *sched_data;
struct request_queue *queue;
struct blk_flush_queue *fq;
void *driver_data;
struct sbitmap ctx_map;
struct blk_mq_ctx *dispatch_from;
unsigned int dispatch_busy;
unsigned short type;
unsigned short nr_ctx;
struct blk_mq_ctx **ctxs;
spinlock_t dispatch_wait_lock;
wait_queue_entry_t dispatch_wait;
atomic_t wait_index;
struct blk_mq_tags *tags;
struct blk_mq_tags *sched_tags;
unsigned int numa_node;
unsigned int queue_num;
atomic_t nr_active;
struct hlist_node cpuhp_online;
struct hlist_node cpuhp_dead;
struct kobject kobj;
struct dentry *debugfs_dir;
struct dentry *sched_debugfs_dir;
struct list_head hctx_list;
long: 64;
long: 64;
long: 64;
};
struct blk_flush_queue {
spinlock_t mq_flush_lock;
unsigned int flush_pending_idx: 1;
unsigned int flush_running_idx: 1;
blk_status_t rq_status;
unsigned long flush_pending_since;
struct list_head flush_queue[2];
unsigned long flush_data_in_flight;
struct request *flush_rq;
};
struct sbitmap_word {
unsigned long word;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
unsigned long cleared;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct sbq_wait_state;
struct sbitmap_queue {
struct sbitmap sb;
unsigned int wake_batch;
atomic_t wake_index;
struct sbq_wait_state *ws;
atomic_t ws_active;
unsigned int min_shallow_depth;
atomic_t completion_cnt;
atomic_t wakeup_cnt;
};
struct blk_mq_tags {
unsigned int nr_tags;
unsigned int nr_reserved_tags;
unsigned int active_queues;
struct sbitmap_queue bitmap_tags;
struct sbitmap_queue breserved_tags;
struct request **rqs;
struct request **static_rqs;
struct list_head page_list;
spinlock_t lock;
};
struct sbq_wait_state {
wait_queue_head_t wait;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct blk_mq_queue_data {
struct request *rq;
bool last;
};
struct blk_mq_queue_map {
unsigned int *mq_map;
unsigned int nr_queues;
unsigned int queue_offset;
};
struct blk_mq_tag_set {
const struct blk_mq_ops *ops;
struct blk_mq_queue_map map[3];
unsigned int nr_maps;
unsigned int nr_hw_queues;
unsigned int queue_depth;
unsigned int reserved_tags;
unsigned int cmd_size;
int numa_node;
unsigned int timeout;
unsigned int flags;
void *driver_data;
struct blk_mq_tags **tags;
struct blk_mq_tags *shared_tags;
struct mutex tag_list_lock;
struct list_head tag_list;
struct srcu_struct *srcu;
};
struct blkg_iostat {
u64 bytes[3];
u64 ios[3];
};
struct blkg_iostat_set {
struct u64_stats_sync sync;
struct blkcg_gq *blkg;
struct llist_node lnode;
int lqueued;
struct blkg_iostat cur;
struct blkg_iostat last;
};
struct blkcg;
struct blkg_policy_data;
struct blkcg_gq {
struct request_queue *q;
struct list_head q_node;
struct hlist_node blkcg_node;
struct blkcg *blkcg;
struct blkcg_gq *parent;
struct percpu_ref refcnt;
bool online;
struct blkg_iostat_set __attribute__((btf_type_tag("percpu"))) *iostat_cpu;
struct blkg_iostat_set iostat;
struct blkg_policy_data *pd[6];
spinlock_t async_bio_lock;
struct bio_list async_bios;
union {
struct work_struct async_bio_work;
struct work_struct free_work;
};
atomic_t use_delay;
atomic64_t delay_nsec;
atomic64_t delay_start;
u64 last_delay;
int last_use;
struct callback_head callback_head;
};
struct blkcg_policy_data;
struct blkcg {
struct cgroup_subsys_state css;
spinlock_t lock;
refcount_t online_pin;
struct xarray blkg_tree;
struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint;
struct hlist_head blkg_list;
struct blkcg_policy_data *cpd[6];
struct list_head all_blkcgs_node;
struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead;
struct list_head cgwb_list;
};
struct blkcg_policy_data {
struct blkcg *blkcg;
int plid;
};
struct blkg_policy_data {
struct blkcg_gq *blkg;
int plid;
bool online;
};
typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t);
typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *);
typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t);
typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *);
typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *);
typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *);
typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *);
typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *);
typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *);
struct blkcg_policy {
int plid;
struct cftype *dfl_cftypes;
struct cftype *legacy_cftypes;
blkcg_pol_alloc_cpd_fn *cpd_alloc_fn;
blkcg_pol_free_cpd_fn *cpd_free_fn;
blkcg_pol_alloc_pd_fn *pd_alloc_fn;
blkcg_pol_init_pd_fn *pd_init_fn;
blkcg_pol_online_pd_fn *pd_online_fn;
blkcg_pol_offline_pd_fn *pd_offline_fn;
blkcg_pol_free_pd_fn *pd_free_fn;
blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn;
blkcg_pol_stat_pd_fn *pd_stat_fn;
};
enum {
BIO_PAGE_PINNED = 0,
BIO_CLONED = 1,
BIO_BOUNCED = 2,
BIO_QUIET = 3,
BIO_CHAIN = 4,
BIO_REFFED = 5,
BIO_BPS_THROTTLED = 6,
BIO_TRACE_COMPLETION = 7,
BIO_CGROUP_ACCT = 8,
BIO_QOS_THROTTLED = 9,
BIO_QOS_MERGED = 10,
BIO_REMAPPED = 11,
BIO_ZONE_WRITE_LOCKED = 12,
BIO_FLAG_LAST = 13,
};
enum wq_misc_consts {
WORK_NR_COLORS = 16,
WORK_CPU_UNBOUND = 8192,
WORK_BUSY_PENDING = 1,
WORK_BUSY_RUNNING = 2,
WORKER_DESC_LEN = 24,
};
enum wq_flags {
WQ_BH = 1,
WQ_UNBOUND = 2,
WQ_FREEZABLE = 4,
WQ_MEM_RECLAIM = 8,
WQ_HIGHPRI = 16,
WQ_CPU_INTENSIVE = 32,
WQ_SYSFS = 64,
WQ_POWER_EFFICIENT = 128,
__WQ_DESTROYING = 32768,
__WQ_DRAINING = 65536,
__WQ_ORDERED = 131072,
__WQ_LEGACY = 262144,
__WQ_BH_ALLOWS = 17,
};
enum lockdep_wait_type {
LD_WAIT_INV = 0,
LD_WAIT_FREE = 1,
LD_WAIT_SPIN = 2,
LD_WAIT_CONFIG = 2,
LD_WAIT_SLEEP = 3,
LD_WAIT_MAX = 4,
};
enum work_bits {
WORK_STRUCT_PENDING_BIT = 0,
WORK_STRUCT_INACTIVE_BIT = 1,
WORK_STRUCT_PWQ_BIT = 2,
WORK_STRUCT_LINKED_BIT = 3,
WORK_STRUCT_FLAG_BITS = 4,
WORK_STRUCT_COLOR_SHIFT = 4,
WORK_STRUCT_COLOR_BITS = 4,
WORK_STRUCT_PWQ_SHIFT = 8,
WORK_OFFQ_FLAG_SHIFT = 4,
WORK_OFFQ_CANCELING_BIT = 4,
WORK_OFFQ_FLAG_END = 5,
WORK_OFFQ_FLAG_BITS = 1,
WORK_OFFQ_POOL_SHIFT = 5,
WORK_OFFQ_LEFT = 59,
WORK_OFFQ_POOL_BITS = 31,
};
enum blkg_iostat_type {
BLKG_IOSTAT_READ = 0,
BLKG_IOSTAT_WRITE = 1,
BLKG_IOSTAT_DISCARD = 2,
BLKG_IOSTAT_NR = 3,
};
enum {
CSS_NO_REF = 1,
CSS_ONLINE = 2,
CSS_RELEASED = 4,
CSS_VISIBLE = 8,
CSS_DYING = 16,
};
enum {
__PERCPU_REF_ATOMIC = 1,
__PERCPU_REF_DEAD = 2,
__PERCPU_REF_ATOMIC_DEAD = 3,
__PERCPU_REF_FLAG_BITS = 2,
};
enum lockdep_lock_type {
LD_LOCK_NORMAL = 0,
LD_LOCK_PERCPU = 1,
LD_LOCK_WAIT_OVERRIDE = 2,
LD_LOCK_MAX = 3,
};
enum stat_group {
STAT_READ = 0,
STAT_WRITE = 1,
STAT_DISCARD = 2,
STAT_FLUSH = 3,
NR_STAT_GROUPS = 4,
};
enum cgroup_subsys_id {
cpuset_cgrp_id = 0,
cpu_cgrp_id = 1,
cpuacct_cgrp_id = 2,
io_cgrp_id = 3,
memory_cgrp_id = 4,
devices_cgrp_id = 5,
freezer_cgrp_id = 6,
net_cls_cgrp_id = 7,
perf_event_cgrp_id = 8,
hugetlb_cgrp_id = 9,
pids_cgrp_id = 10,
rdma_cgrp_id = 11,
misc_cgrp_id = 12,
debug_cgrp_id = 13,
CGROUP_SUBSYS_COUNT = 14,
};
enum hrtimer_mode {
HRTIMER_MODE_ABS = 0,
HRTIMER_MODE_REL = 1,
HRTIMER_MODE_PINNED = 2,
HRTIMER_MODE_SOFT = 4,
HRTIMER_MODE_HARD = 8,
HRTIMER_MODE_ABS_PINNED = 2,
HRTIMER_MODE_REL_PINNED = 3,
HRTIMER_MODE_ABS_SOFT = 4,
HRTIMER_MODE_REL_SOFT = 5,
HRTIMER_MODE_ABS_PINNED_SOFT = 6,
HRTIMER_MODE_REL_PINNED_SOFT = 7,
HRTIMER_MODE_ABS_HARD = 8,
HRTIMER_MODE_REL_HARD = 9,
HRTIMER_MODE_ABS_PINNED_HARD = 10,
HRTIMER_MODE_REL_PINNED_HARD = 11,
};
enum req_op {
REQ_OP_READ = 0,
REQ_OP_WRITE = 1,
REQ_OP_FLUSH = 2,
REQ_OP_DISCARD = 3,
REQ_OP_SECURE_ERASE = 5,
REQ_OP_ZONE_APPEND = 7,
REQ_OP_WRITE_ZEROES = 9,
REQ_OP_ZONE_OPEN = 10,
REQ_OP_ZONE_CLOSE = 11,
REQ_OP_ZONE_FINISH = 12,
REQ_OP_ZONE_RESET = 13,
REQ_OP_ZONE_RESET_ALL = 15,
REQ_OP_DRV_IN = 34,
REQ_OP_DRV_OUT = 35,
REQ_OP_LAST = 36,
};
typedef struct {
struct lockdep_map dep_map;
struct task_struct *owner;
} local_lock_t;
typedef __u32 blk_mq_req_flags_t;
struct klist;
struct klist_node;
struct klist_iter {
struct klist *i_klist;
struct klist_node *i_cur;
};
struct subsys_private;
struct class_dev_iter {
struct klist_iter ki;
const struct device_type *type;
struct subsys_private *sp;
};
struct klist {
spinlock_t k_lock;
struct list_head k_list;
void (*get)(struct klist_node *);
void (*put)(struct klist_node *);
};
struct klist_node {
void *n_klist;
struct list_head n_node;
struct kref n_ref;
};
struct blkg_conf_ctx {
char *input;
char *body;
struct block_device *bdev;
struct blkcg_gq *blkg;
};
enum iter_type {
ITER_UBUF = 0,
ITER_IOVEC = 1,
ITER_BVEC = 2,
ITER_KVEC = 3,
ITER_XARRAY = 4,
ITER_DISCARD = 5,
};
enum pageflags {
PG_locked = 0,
PG_writeback = 1,
PG_referenced = 2,
PG_uptodate = 3,
PG_dirty = 4,
PG_lru = 5,
PG_head = 6,
PG_waiters = 7,
PG_active = 8,
PG_workingset = 9,
PG_error = 10,
PG_slab = 11,
PG_owner_priv_1 = 12,
PG_arch_1 = 13,
PG_reserved = 14,
PG_private = 15,
PG_private_2 = 16,
PG_mappedtodisk = 17,
PG_reclaim = 18,
PG_swapbacked = 19,
PG_unevictable = 20,
PG_mlocked = 21,
PG_uncached = 22,
__NR_PAGEFLAGS = 23,
PG_readahead = 18,
PG_anon_exclusive = 17,
PG_checked = 12,
PG_swapcache = 12,
PG_fscache = 16,
PG_pinned = 12,
PG_savepinned = 4,
PG_foreign = 12,
PG_xen_remapped = 12,
PG_isolated = 18,
PG_reported = 3,
PG_has_hwpoisoned = 10,
PG_hugetlb = 8,
PG_large_rmappable = 9,
};
enum {
FOLL_WRITE = 1,
FOLL_GET = 2,
FOLL_DUMP = 4,
FOLL_FORCE = 8,
FOLL_NOWAIT = 16,
FOLL_NOFAULT = 32,
FOLL_HWPOISON = 64,
FOLL_ANON = 128,
FOLL_LONGTERM = 256,
FOLL_SPLIT_PMD = 512,
FOLL_PCI_P2PDMA = 1024,
FOLL_INTERRUPTIBLE = 2048,
FOLL_HONOR_NUMA_FAULT = 4096,
};
struct xa_node {
unsigned char shift;
unsigned char offset;
unsigned char count;
unsigned char nr_values;
struct xa_node __attribute__((btf_type_tag("rcu"))) *parent;
struct xarray *array;
union {
struct list_head private_list;
struct callback_head callback_head;
};
void __attribute__((btf_type_tag("rcu"))) *slots[64];
union {
unsigned long tags[3];
unsigned long marks[3];
};
};
struct pipe_buffer;
struct pipe_inode_info {
struct mutex mutex;
wait_queue_head_t rd_wait;
wait_queue_head_t wr_wait;
unsigned int head;
unsigned int tail;
unsigned int max_usage;
unsigned int ring_size;
unsigned int nr_accounted;
unsigned int readers;
unsigned int writers;
unsigned int files;
unsigned int r_counter;
unsigned int w_counter;
bool poll_usage;
struct page *tmp_page;
struct fasync_struct *fasync_readers;
struct fasync_struct *fasync_writers;
struct pipe_buffer *bufs;
struct user_struct *user;
};
struct pipe_buf_operations;
struct pipe_buffer {
struct page *page;
unsigned int offset;
unsigned int len;
const struct pipe_buf_operations *ops;
unsigned int flags;
unsigned long private;
};
struct pipe_buf_operations {
int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *);
void (*release)(struct pipe_inode_info *, struct pipe_buffer *);
bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *);
bool (*get)(struct pipe_inode_info *, struct pipe_buffer *);
};
typedef u32 compat_uptr_t;
typedef u32 compat_size_t;
struct compat_iovec {
compat_uptr_t iov_base;
compat_size_t iov_len;
};
struct __large_struct {
unsigned long buf[100];
};
typedef unsigned int iov_iter_extraction_t;
typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *);
typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *);
typedef void (*xa_update_node_t)(struct xa_node *);
struct xa_state {
struct xarray *xa;
unsigned long xa_index;
unsigned char xa_shift;
unsigned char xa_sibs;
unsigned char xa_offset;
unsigned char xa_pad;
struct xa_node *xa_node;
struct xa_node *xa_alloc;
xa_update_node_t xa_update;
struct list_lru *xa_lru;
};
typedef s32 compat_ssize_t;
struct iov_iter_state {
size_t iov_offset;
size_t count;
unsigned long nr_segs;
};
struct reclaim_state {
unsigned long reclaimed;
};
struct swap_cluster_info {
spinlock_t lock;
unsigned int data: 24;
unsigned int flags: 8;
};
struct swap_cluster_list {
struct swap_cluster_info head;
struct swap_cluster_info tail;
};
struct percpu_cluster;
struct swap_info_struct {
struct percpu_ref users;
unsigned long flags;
short prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int __attribute__((btf_type_tag("percpu"))) *cluster_next_cpu;
struct percpu_cluster __attribute__((btf_type_tag("percpu"))) *percpu_cluster;
struct rb_root swap_extent_root;
struct file *bdev_file;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
struct percpu_cluster {
struct swap_cluster_info index;
unsigned int next;
};
struct fb_bitfield {
__u32 offset;
__u32 length;
__u32 msb_right;
};
struct fb_var_screeninfo {
__u32 xres;
__u32 yres;
__u32 xres_virtual;
__u32 yres_virtual;
__u32 xoffset;
__u32 yoffset;
__u32 bits_per_pixel;
__u32 grayscale;
struct fb_bitfield red;
struct fb_bitfield green;
struct fb_bitfield blue;
struct fb_bitfield transp;
__u32 nonstd;
__u32 activate;
__u32 height;
__u32 width;
__u32 accel_flags;
__u32 pixclock;
__u32 left_margin;
__u32 right_margin;
__u32 upper_margin;
__u32 lower_margin;
__u32 hsync_len;
__u32 vsync_len;
__u32 sync;
__u32 vmode;
__u32 rotate;
__u32 colorspace;
__u32 reserved[4];
};
struct fb_fix_screeninfo {
char id[16];
unsigned long smem_start;
__u32 smem_len;
__u32 type;
__u32 type_aux;
__u32 visual;
__u16 xpanstep;
__u16 ypanstep;
__u16 ywrapstep;
__u32 line_length;
unsigned long mmio_start;
__u32 mmio_len;
__u32 accel;
__u16 capabilities;
__u16 reserved[2];
};
struct fb_chroma {
__u32 redx;
__u32 greenx;
__u32 bluex;
__u32 whitex;
__u32 redy;
__u32 greeny;
__u32 bluey;
__u32 whitey;
};
struct fb_videomode;
struct fb_monspecs {
struct fb_chroma chroma;
struct fb_videomode *modedb;
__u8 manufacturer[4];
__u8 monitor[14];
__u8 serial_no[14];
__u8 ascii[14];
__u32 modedb_len;
__u32 model;
__u32 serial;
__u32 year;
__u32 week;
__u32 hfmin;
__u32 hfmax;
__u32 dclkmin;
__u32 dclkmax;
__u16 input;
__u16 dpms;
__u16 signal;
__u16 vfmin;
__u16 vfmax;
__u16 gamma;
__u16 gtf: 1;
__u16 misc;
__u8 version;
__u8 revision;
__u8 max_x;
__u8 max_y;
};
struct fb_info;
struct fb_pixmap {
u8 *addr;
u32 size;
u32 offset;
u32 buf_align;
u32 scan_align;
u32 access_align;
u32 flags;
unsigned long blit_x[1];
unsigned long blit_y[2];
void (*writeio)(struct fb_info *, void *, void *, unsigned int);
void (*readio)(struct fb_info *, void *, void *, unsigned int);
};
struct fb_cmap {
__u32 start;
__u32 len;
__u16 *red;
__u16 *green;
__u16 *blue;
__u16 *transp;
};
struct fb_ops;
struct fb_info {
refcount_t count;
int node;
int flags;
int fbcon_rotate_hint;
struct mutex lock;
struct mutex mm_lock;
struct fb_var_screeninfo var;
struct fb_fix_screeninfo fix;
struct fb_monspecs monspecs;
struct fb_pixmap pixmap;
struct fb_pixmap sprite;
struct fb_cmap cmap;
struct list_head modelist;
struct fb_videomode *mode;
const struct fb_ops *fbops;
struct device *device;
struct device *dev;
int class_flag;
union {
char *screen_base;
char *screen_buffer;
};
unsigned long screen_size;
void *pseudo_palette;
u32 state;
void *fbcon_par;
void *par;
bool skip_vt_switch;
};
struct fb_videomode {
const char *name;
u32 refresh;
u32 xres;
u32 yres;
u32 pixclock;
u32 left_margin;
u32 right_margin;
u32 upper_margin;
u32 lower_margin;
u32 hsync_len;
u32 vsync_len;
u32 sync;
u32 vmode;
u32 flag;
};
struct fb_fillrect;
struct fb_copyarea;
struct fb_image;
struct fb_cursor;
struct fb_blit_caps;
struct fb_ops {
struct module *owner;
int (*fb_open)(struct fb_info *, int);
int (*fb_release)(struct fb_info *, int);
ssize_t (*fb_read)(struct fb_info *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
ssize_t (*fb_write)(struct fb_info *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
int (*fb_check_var)(struct fb_var_screeninfo *, struct fb_info *);
int (*fb_set_par)(struct fb_info *);
int (*fb_setcolreg)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, struct fb_info *);
int (*fb_setcmap)(struct fb_cmap *, struct fb_info *);
int (*fb_blank)(int, struct fb_info *);
int (*fb_pan_display)(struct fb_var_screeninfo *, struct fb_info *);
void (*fb_fillrect)(struct fb_info *, const struct fb_fillrect *);
void (*fb_copyarea)(struct fb_info *, const struct fb_copyarea *);
void (*fb_imageblit)(struct fb_info *, const struct fb_image *);
int (*fb_cursor)(struct fb_info *, struct fb_cursor *);
int (*fb_sync)(struct fb_info *);
int (*fb_ioctl)(struct fb_info *, unsigned int, unsigned long);
int (*fb_compat_ioctl)(struct fb_info *, unsigned int, unsigned long);
int (*fb_mmap)(struct fb_info *, struct vm_area_struct *);
void (*fb_get_caps)(struct fb_info *, struct fb_blit_caps *, struct fb_var_screeninfo *);
void (*fb_destroy)(struct fb_info *);
int (*fb_debug_enter)(struct fb_info *);
int (*fb_debug_leave)(struct fb_info *);
};
struct fb_fillrect {
__u32 dx;
__u32 dy;
__u32 width;
__u32 height;
__u32 color;
__u32 rop;
};
struct fb_copyarea {
__u32 dx;
__u32 dy;
__u32 width;
__u32 height;
__u32 sx;
__u32 sy;
};
struct fb_image {
__u32 dx;
__u32 dy;
__u32 width;
__u32 height;
__u32 fg_color;
__u32 bg_color;
__u8 depth;
const char *data;
struct fb_cmap cmap;
};
struct fbcurpos {
__u16 x;
__u16 y;
};
struct fb_cursor {
__u16 set;
__u16 enable;
__u16 rop;
const char *mask;
struct fbcurpos hot;
struct fb_image image;
};
struct fb_blit_caps {
unsigned long x[1];
unsigned long y[2];
u32 len;
u32 flags;
};
enum {
FB_BLANK_UNBLANK = 0,
FB_BLANK_NORMAL = 1,
FB_BLANK_VSYNC_SUSPEND = 2,
FB_BLANK_HSYNC_SUSPEND = 3,
FB_BLANK_POWERDOWN = 4,
};
struct fb_modelist {
struct list_head list;
struct fb_videomode mode;
};
struct fb_event {
struct fb_info *info;
void *data;
};
enum dev_prop_type {
DEV_PROP_U8 = 0,
DEV_PROP_U16 = 1,
DEV_PROP_U32 = 2,
DEV_PROP_U64 = 3,
DEV_PROP_STRING = 4,
DEV_PROP_REF = 5,
};
typedef void *acpi_handle;
struct acpi_device_status {
u32 present: 1;
u32 enabled: 1;
u32 show_in_ui: 1;
u32 functional: 1;
u32 battery_present: 1;
u32 reserved: 27;
};
struct acpi_device_flags {
u32 dynamic_status: 1;
u32 removable: 1;
u32 ejectable: 1;
u32 power_manageable: 1;
u32 match_driver: 1;
u32 initialized: 1;
u32 visited: 1;
u32 hotplug_notify: 1;
u32 is_dock_station: 1;
u32 of_compatible_ok: 1;
u32 coherent_dma: 1;
u32 cca_seen: 1;
u32 enumeration_by_parent: 1;
u32 honor_deps: 1;
u32 reserved: 18;
};
typedef char acpi_bus_id[8];
struct acpi_pnp_type {
u32 hardware_id: 1;
u32 bus_address: 1;
u32 platform_id: 1;
u32 backlight: 1;
u32 reserved: 28;
};
typedef u64 acpi_bus_address;
typedef char acpi_device_name[40];
typedef char acpi_device_class[20];
union acpi_object;
struct acpi_device_pnp {
acpi_bus_id bus_id;
int instance_no;
struct acpi_pnp_type type;
acpi_bus_address bus_address;
char *unique_id;
struct list_head ids;
acpi_device_name device_name;
acpi_device_class device_class;
union acpi_object *str_obj;
};
struct acpi_device_power_flags {
u32 explicit_get: 1;
u32 power_resources: 1;
u32 inrush_current: 1;
u32 power_removed: 1;
u32 ignore_parent: 1;
u32 dsw_present: 1;
u32 reserved: 26;
};
struct acpi_device_power_state {
struct {
u8 valid: 1;
u8 explicit_set: 1;
u8 reserved: 6;
} flags;
int power;
int latency;
struct list_head resources;
};
struct acpi_device_power {
int state;
struct acpi_device_power_flags flags;
struct acpi_device_power_state states[5];
u8 state_for_enumeration;
};
struct acpi_device_wakeup_flags {
u8 valid: 1;
u8 notifier_present: 1;
};
struct acpi_device_wakeup_context {
void (*func)(struct acpi_device_wakeup_context *);
struct device *dev;
};
struct acpi_device_wakeup {
acpi_handle gpe_device;
u64 gpe_number;
u64 sleep_state;
struct list_head resources;
struct acpi_device_wakeup_flags flags;
struct acpi_device_wakeup_context context;
struct wakeup_source *ws;
int prepare_count;
int enable_count;
};
struct acpi_device_perf_flags {
u8 reserved: 8;
};
struct acpi_device_perf_state;
struct acpi_device_perf {
int state;
struct acpi_device_perf_flags flags;
int state_count;
struct acpi_device_perf_state *states;
};
struct acpi_device_dir {
struct proc_dir_entry *entry;
};
struct acpi_device_data {
const union acpi_object *pointer;
struct list_head properties;
const union acpi_object *of_compatible;
struct list_head subnodes;
};
struct acpi_scan_handler;
struct acpi_hotplug_context;
struct acpi_device_software_nodes;
struct acpi_gpio_mapping;
struct acpi_device {
u32 pld_crc;
int device_type;
acpi_handle handle;
struct fwnode_handle fwnode;
struct list_head wakeup_list;
struct list_head del_list;
struct acpi_device_status status;
struct acpi_device_flags flags;
struct acpi_device_pnp pnp;
struct acpi_device_power power;
struct acpi_device_wakeup wakeup;
struct acpi_device_perf performance;
struct acpi_device_dir dir;
struct acpi_device_data data;
struct acpi_scan_handler *handler;
struct acpi_hotplug_context *hp;
struct acpi_device_software_nodes *swnodes;
const struct acpi_gpio_mapping *driver_gpios;
void *driver_data;
struct device dev;
unsigned int physical_node_count;
unsigned int dep_unmet;
struct list_head physical_node_list;
struct mutex physical_node_lock;
void (*remove)(struct acpi_device *);
};
typedef u32 acpi_object_type;
typedef u64 acpi_io_address;
union acpi_object {
acpi_object_type type;
struct {
acpi_object_type type;
u64 value;
} integer;
struct {
acpi_object_type type;
u32 length;
char *pointer;
} string;
struct {
acpi_object_type type;
u32 length;
u8 *pointer;
} buffer;
struct {
acpi_object_type type;
u32 count;
union acpi_object *elements;
} package;
struct {
acpi_object_type type;
acpi_object_type actual_type;
acpi_handle handle;
} reference;
struct {
acpi_object_type type;
u32 proc_id;
acpi_io_address pblk_address;
u32 pblk_length;
} processor;
struct {
acpi_object_type type;
u32 system_level;
u32 resource_order;
} power_resource;
};
struct acpi_device_perf_state {
struct {
u8 valid: 1;
u8 reserved: 7;
} flags;
u8 power;
u8 performance;
int latency;
};
struct acpi_hotplug_profile {
struct kobject kobj;
int (*scan_dependent)(struct acpi_device *);
void (*notify_online)(struct acpi_device *);
bool enabled: 1;
bool demand_offline: 1;
};
struct acpi_scan_handler {
const struct acpi_device_id *ids;
struct list_head list_node;
bool (*match)(const char *, const struct acpi_device_id **);
int (*attach)(struct acpi_device *, const struct acpi_device_id *);
void (*detach)(struct acpi_device *);
void (*bind)(struct device *);
void (*unbind)(struct device *);
struct acpi_hotplug_profile hotplug;
};
struct acpi_hotplug_context {
struct acpi_device *self;
int (*notify)(struct acpi_device *, u32);
void (*uevent)(struct acpi_device *, u32);
void (*fixup)(struct acpi_device *);
};
struct property_entry {
const char *name;
size_t length;
bool is_inline;
enum dev_prop_type type;
union {
const void *pointer;
union {
u8 u8_data[8];
u16 u16_data[4];
u32 u32_data[2];
u64 u64_data[1];
const char *str[1];
} value;
};
};
struct software_node;
struct acpi_device_software_node_port;
struct acpi_device_software_nodes {
struct property_entry dev_props[6];
struct software_node *nodes;
const struct software_node **nodeptrs;
struct acpi_device_software_node_port *ports;
unsigned int num_ports;
};
struct software_node {
const char *name;
const struct software_node *parent;
const struct property_entry *properties;
};
struct software_node_ref_args {
const struct software_node *node;
unsigned int nargs;
u64 args[8];
};
struct acpi_device_software_node_port {
char port_name[9];
u32 data_lanes[8];
u32 lane_polarities[9];
u64 link_frequencies[8];
unsigned int port_nr;
bool crs_csi2_local;
struct property_entry port_props[2];
struct property_entry ep_props[8];
struct software_node_ref_args remote_ep[1];
};
struct acpi_gpio_params;
struct acpi_gpio_mapping {
const char *name;
const struct acpi_gpio_params *data;
unsigned int size;
unsigned int quirks;
};
struct acpi_wakeup_handler {
struct list_head list_node;
bool (*wakeup)(void *);
void *context;
};
typedef u32 acpi_status;
enum {
ACPI_REFCLASS_LOCAL = 0,
ACPI_REFCLASS_ARG = 1,
ACPI_REFCLASS_REFOF = 2,
ACPI_REFCLASS_INDEX = 3,
ACPI_REFCLASS_TABLE = 4,
ACPI_REFCLASS_NAME = 5,
ACPI_REFCLASS_DEBUG = 6,
ACPI_REFCLASS_MAX = 6,
};
union acpi_operand_object;
struct acpi_object_common {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
};
struct acpi_object_integer {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 fill[3];
u64 value;
};
struct acpi_object_string {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
char *pointer;
u32 length;
};
struct acpi_namespace_node;
struct acpi_object_buffer {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 *pointer;
u32 length;
u32 aml_length;
u8 *aml_start;
struct acpi_namespace_node *node;
};
struct acpi_object_package {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
struct acpi_namespace_node *node;
union acpi_operand_object **elements;
u8 *aml_start;
u32 aml_length;
u32 count;
};
struct acpi_object_event {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
void *os_semaphore;
};
struct acpi_walk_state;
typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *);
typedef u16 acpi_owner_id;
struct acpi_object_method {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 info_flags;
u8 param_count;
u8 sync_level;
union acpi_operand_object *mutex;
union acpi_operand_object *node;
u8 *aml_start;
union {
acpi_internal_method implementation;
union acpi_operand_object *handler;
} dispatch;
u32 aml_length;
acpi_owner_id owner_id;
u8 thread_count;
};
struct acpi_thread_state;
struct acpi_object_mutex {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 sync_level;
u16 acquisition_depth;
void *os_mutex;
u64 thread_id;
struct acpi_thread_state *owner_thread;
union acpi_operand_object *prev;
union acpi_operand_object *next;
struct acpi_namespace_node *node;
u8 original_sync_level;
};
typedef u64 acpi_physical_address;
struct acpi_object_region {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 space_id;
struct acpi_namespace_node *node;
union acpi_operand_object *handler;
union acpi_operand_object *next;
acpi_physical_address address;
u32 length;
void *pointer;
};
struct acpi_object_notify_common {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
union acpi_operand_object *notify_list[2];
union acpi_operand_object *handler;
};
struct acpi_gpe_block_info;
struct acpi_object_device {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
union acpi_operand_object *notify_list[2];
union acpi_operand_object *handler;
struct acpi_gpe_block_info *gpe_block;
};
struct acpi_object_power_resource {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
union acpi_operand_object *notify_list[2];
union acpi_operand_object *handler;
u32 system_level;
u32 resource_order;
};
struct acpi_object_processor {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 proc_id;
u8 length;
union acpi_operand_object *notify_list[2];
union acpi_operand_object *handler;
acpi_io_address address;
};
struct acpi_object_thermal_zone {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
union acpi_operand_object *notify_list[2];
union acpi_operand_object *handler;
};
struct acpi_object_field_common {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 field_flags;
u8 attribute;
u8 access_byte_width;
struct acpi_namespace_node *node;
u32 bit_length;
u32 base_byte_offset;
u32 value;
u8 start_field_bit_offset;
u8 access_length;
union acpi_operand_object *region_obj;
};
struct acpi_object_region_field {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 field_flags;
u8 attribute;
u8 access_byte_width;
struct acpi_namespace_node *node;
u32 bit_length;
u32 base_byte_offset;
u32 value;
u8 start_field_bit_offset;
u8 access_length;
u16 resource_length;
union acpi_operand_object *region_obj;
u8 *resource_buffer;
u16 pin_number_index;
u8 *internal_pcc_buffer;
};
struct acpi_object_buffer_field {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 field_flags;
u8 attribute;
u8 access_byte_width;
struct acpi_namespace_node *node;
u32 bit_length;
u32 base_byte_offset;
u32 value;
u8 start_field_bit_offset;
u8 access_length;
u8 is_create_field;
union acpi_operand_object *buffer_obj;
};
struct acpi_object_bank_field {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 field_flags;
u8 attribute;
u8 access_byte_width;
struct acpi_namespace_node *node;
u32 bit_length;
u32 base_byte_offset;
u32 value;
u8 start_field_bit_offset;
u8 access_length;
union acpi_operand_object *region_obj;
union acpi_operand_object *bank_obj;
};
struct acpi_object_index_field {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 field_flags;
u8 attribute;
u8 access_byte_width;
struct acpi_namespace_node *node;
u32 bit_length;
u32 base_byte_offset;
u32 value;
u8 start_field_bit_offset;
u8 access_length;
union acpi_operand_object *index_obj;
union acpi_operand_object *data_obj;
};
typedef void (*acpi_notify_handler)(acpi_handle, u32, void *);
struct acpi_object_notify_handler {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
struct acpi_namespace_node *node;
u32 handler_type;
acpi_notify_handler handler;
void *context;
union acpi_operand_object *next[2];
};
typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *);
typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **);
struct acpi_object_addr_handler {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 space_id;
u8 handler_flags;
acpi_adr_space_handler handler;
struct acpi_namespace_node *node;
void *context;
void *context_mutex;
acpi_adr_space_setup setup;
union acpi_operand_object *region_list;
union acpi_operand_object *next;
};
struct acpi_object_reference {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
u8 class;
u8 target_type;
u8 resolved;
void *object;
struct acpi_namespace_node *node;
union acpi_operand_object **where;
u8 *index_pointer;
u8 *aml;
u32 value;
};
struct acpi_object_extra {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
struct acpi_namespace_node *method_REG;
struct acpi_namespace_node *scope_node;
void *region_context;
u8 *aml_start;
u32 aml_length;
};
typedef void (*acpi_object_handler)(acpi_handle, void *);
struct acpi_object_data {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
acpi_object_handler handler;
void *pointer;
};
struct acpi_object_cache_list {
union acpi_operand_object *next_object;
u8 descriptor_type;
u8 type;
u16 reference_count;
u8 flags;
union acpi_operand_object *next;
};
union acpi_name_union {
u32 integer;
char ascii[4];
};
struct acpi_namespace_node {
union acpi_operand_object *object;
u8 descriptor_type;
u8 type;
u16 flags;
union acpi_name_union name;
struct acpi_namespace_node *parent;
struct acpi_namespace_node *child;
struct acpi_namespace_node *peer;
acpi_owner_id owner_id;
};
union acpi_operand_object {
struct acpi_object_common common;
struct acpi_object_integer integer;
struct acpi_object_string string;
struct acpi_object_buffer buffer;
struct acpi_object_package package;
struct acpi_object_event event;
struct acpi_object_method method;
struct acpi_object_mutex mutex;
struct acpi_object_region region;
struct acpi_object_notify_common common_notify;
struct acpi_object_device device;
struct acpi_object_power_resource power_resource;
struct acpi_object_processor processor;
struct acpi_object_thermal_zone thermal_zone;
struct acpi_object_field_common common_field;
struct acpi_object_region_field field;
struct acpi_object_buffer_field buffer_field;
struct acpi_object_bank_field bank_field;
struct acpi_object_index_field index_field;
struct acpi_object_notify_handler notify;
struct acpi_object_addr_handler address_space;
struct acpi_object_reference reference;
struct acpi_object_extra extra;
struct acpi_object_data data;
struct acpi_object_cache_list cache;
struct acpi_namespace_node node;
};
union acpi_parse_object;
union acpi_generic_state;
struct acpi_parse_state {
u8 *aml_start;
u8 *aml;
u8 *aml_end;
u8 *pkg_start;
u8 *pkg_end;
union acpi_parse_object *start_op;
struct acpi_namespace_node *start_node;
union acpi_generic_state *scope;
union acpi_parse_object *start_scope;
u32 aml_size;
};
typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **);
typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *);
struct acpi_opcode_info;
struct acpi_walk_state {
struct acpi_walk_state *next;
u8 descriptor_type;
u8 walk_type;
u16 opcode;
u8 next_op_info;
u8 num_operands;
u8 operand_index;
acpi_owner_id owner_id;
u8 last_predicate;
u8 current_result;
u8 return_used;
u8 scope_depth;
u8 pass_number;
u8 namespace_override;
u8 result_size;
u8 result_count;
u8 *aml;
u32 arg_types;
u32 method_breakpoint;
u32 user_breakpoint;
u32 parse_flags;
struct acpi_parse_state parser_state;
u32 prev_arg_types;
u32 arg_count;
u16 method_nesting_depth;
u8 method_is_nested;
struct acpi_namespace_node arguments[7];
struct acpi_namespace_node local_variables[8];
union acpi_operand_object *operands[9];
union acpi_operand_object **params;
u8 *aml_last_while;
union acpi_operand_object **caller_return_desc;
union acpi_generic_state *control_state;
struct acpi_namespace_node *deferred_node;
union acpi_operand_object *implicit_return_obj;
struct acpi_namespace_node *method_call_node;
union acpi_parse_object *method_call_op;
union acpi_operand_object *method_desc;
struct acpi_namespace_node *method_node;
char *method_pathname;
union acpi_parse_object *op;
const struct acpi_opcode_info *op_info;
union acpi_parse_object *origin;
union acpi_operand_object *result_obj;
union acpi_generic_state *results;
union acpi_operand_object *return_desc;
union acpi_generic_state *scope_info;
union acpi_parse_object *prev_op;
union acpi_parse_object *next_op;
struct acpi_thread_state *thread;
acpi_parse_downwards descending_callback;
acpi_parse_upwards ascending_callback;
};
union acpi_parse_value {
u64 integer;
u32 size;
char *string;
u8 *buffer;
char *name;
union acpi_parse_object *arg;
};
struct acpi_parse_obj_common {
union acpi_parse_object *parent;
u8 descriptor_type;
u8 flags;
u16 aml_opcode;
u8 *aml;
union acpi_parse_object *next;
struct acpi_namespace_node *node;
union acpi_parse_value value;
u8 arg_list_length;
};
struct acpi_parse_obj_named {
union acpi_parse_object *parent;
u8 descriptor_type;
u8 flags;
u16 aml_opcode;
u8 *aml;
union acpi_parse_object *next;
struct acpi_namespace_node *node;
union acpi_parse_value value;
u8 arg_list_length;
char *path;
u8 *data;
u32 length;
u32 name;
};
struct acpi_parse_obj_asl {
union acpi_parse_object *parent;
u8 descriptor_type;
u8 flags;
u16 aml_opcode;
u8 *aml;
union acpi_parse_object *next;
struct acpi_namespace_node *node;
union acpi_parse_value value;
u8 arg_list_length;
union acpi_parse_object *child;
union acpi_parse_object *parent_method;
char *filename;
u8 file_changed;
char *parent_filename;
char *external_name;
char *namepath;
char name_seg[4];
u32 extra_value;
u32 column;
u32 line_number;
u32 logical_line_number;
u32 logical_byte_offset;
u32 end_line;
u32 end_logical_line;
u32 acpi_btype;
u32 aml_length;
u32 aml_subtree_length;
u32 final_aml_length;
u32 final_aml_offset;
u32 compile_flags;
u16 parse_opcode;
u8 aml_opcode_length;
u8 aml_pkg_len_bytes;
u8 extra;
char parse_op_name[20];
};
union acpi_parse_object {
struct acpi_parse_obj_common common;
struct acpi_parse_obj_named named;
struct acpi_parse_obj_asl asl;
};
struct acpi_common_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
};
struct acpi_control_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
u16 opcode;
union acpi_parse_object *predicate_op;
u8 *aml_predicate_start;
u8 *package_end;
u64 loop_timeout;
};
struct acpi_update_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
union acpi_operand_object *object;
};
struct acpi_scope_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
struct acpi_namespace_node *node;
};
struct acpi_pscope_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
u32 arg_count;
union acpi_parse_object *op;
u8 *arg_end;
u8 *pkg_end;
u32 arg_list;
};
struct acpi_pkg_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
u32 index;
union acpi_operand_object *source_object;
union acpi_operand_object *dest_object;
struct acpi_walk_state *walk_state;
void *this_target_obj;
u32 num_packages;
};
struct acpi_thread_state {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
u8 current_sync_level;
struct acpi_walk_state *walk_state_list;
union acpi_operand_object *acquired_mutex_list;
u64 thread_id;
};
struct acpi_result_values {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
union acpi_operand_object *obj_desc[8];
};
struct acpi_global_notify_handler;
struct acpi_notify_info {
void *next;
u8 descriptor_type;
u8 flags;
u16 value;
u16 state;
u8 handler_list_id;
struct acpi_namespace_node *node;
union acpi_operand_object *handler_list_head;
struct acpi_global_notify_handler *global;
};
union acpi_generic_state {
struct acpi_common_state common;
struct acpi_control_state control;
struct acpi_update_state update;
struct acpi_scope_state scope;
struct acpi_pscope_state parse_scope;
struct acpi_pkg_state pkg;
struct acpi_thread_state thread;
struct acpi_result_values results;
struct acpi_notify_info notify;
};
struct acpi_global_notify_handler {
acpi_notify_handler handler;
void *context;
};
struct acpi_opcode_info {
u32 parse_args;
u32 runtime_args;
u16 flags;
u8 object_type;
u8 class;
u8 type;
};
struct acpi_gpe_xrupt_info;
struct acpi_gpe_register_info;
struct acpi_gpe_event_info;
struct acpi_gpe_block_info {
struct acpi_namespace_node *node;
struct acpi_gpe_block_info *previous;
struct acpi_gpe_block_info *next;
struct acpi_gpe_xrupt_info *xrupt_block;
struct acpi_gpe_register_info *register_info;
struct acpi_gpe_event_info *event_info;
u64 address;
u32 register_count;
u16 gpe_count;
u16 block_base_number;
u8 space_id;
u8 initialized;
};
struct acpi_gpe_xrupt_info {
struct acpi_gpe_xrupt_info *previous;
struct acpi_gpe_xrupt_info *next;
struct acpi_gpe_block_info *gpe_block_list_head;
u32 interrupt_number;
};
struct acpi_gpe_address {
u8 space_id;
u64 address;
};
struct acpi_gpe_register_info {
struct acpi_gpe_address status_address;
struct acpi_gpe_address enable_address;
u16 base_gpe_number;
u8 enable_for_wake;
u8 enable_for_run;
u8 mask_for_run;
u8 enable_mask;
};
struct acpi_gpe_handler_info;
struct acpi_gpe_notify_info;
union acpi_gpe_dispatch_info {
struct acpi_namespace_node *method_node;
struct acpi_gpe_handler_info *handler;
struct acpi_gpe_notify_info *notify_list;
};
struct acpi_gpe_event_info {
union acpi_gpe_dispatch_info dispatch;
struct acpi_gpe_register_info *register_info;
u8 flags;
u8 gpe_number;
u8 runtime_count;
u8 disable_for_dispatch;
};
typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *);
struct acpi_gpe_handler_info {
acpi_gpe_handler address;
void *context;
struct acpi_namespace_node *method_node;
u8 original_flags;
u8 originally_enabled;
};
struct acpi_gpe_notify_info {
struct acpi_namespace_node *device_node;
struct acpi_gpe_notify_info *next;
};
typedef u8 acpi_adr_space_type;
typedef u64 acpi_size;
struct acpi_table_header {
char signature[4];
u32 length;
u8 revision;
u8 checksum;
char oem_id[6];
char oem_table_id[8];
u32 oem_revision;
char asl_compiler_id[4];
u32 asl_compiler_revision;
};
struct acpi_common_descriptor {
void *common_pointer;
u8 descriptor_type;
};
union acpi_descriptor {
struct acpi_common_descriptor common;
union acpi_operand_object object;
struct acpi_namespace_node node;
union acpi_parse_object op;
};
struct acpi_generic_address {
u8 space_id;
u8 bit_width;
u8 bit_offset;
u8 access_width;
u64 address;
} __attribute__((packed));
typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *);
struct acpi_bit_register_info {
u8 parent_register;
u8 bit_position;
u16 access_bit_mask;
};
struct pnp_dev;
struct pnp_protocol {
struct list_head protocol_list;
char *name;
int (*get)(struct pnp_dev *);
int (*set)(struct pnp_dev *);
int (*disable)(struct pnp_dev *);
bool (*can_wakeup)(struct pnp_dev *);
int (*suspend)(struct pnp_dev *, pm_message_t);
int (*resume)(struct pnp_dev *);
unsigned char number;
struct device dev;
struct list_head cards;
struct list_head devices;
};
struct pnp_card;
struct pnp_driver;
struct pnp_card_link;
struct pnp_id;
struct pnp_dev {
struct device dev;
u64 dma_mask;
unsigned int number;
int status;
struct list_head global_list;
struct list_head protocol_list;
struct list_head card_list;
struct list_head rdev_list;
struct pnp_protocol *protocol;
struct pnp_card *card;
struct pnp_driver *driver;
struct pnp_card_link *card_link;
struct pnp_id *id;
int active;
int capabilities;
unsigned int num_dependent_sets;
struct list_head resources;
struct list_head options;
char name[50];
int flags;
struct proc_dir_entry *procent;
void *data;
};
struct pnp_card {
struct device dev;
unsigned char number;
struct list_head global_list;
struct list_head protocol_list;
struct list_head devices;
struct pnp_protocol *protocol;
struct pnp_id *id;
char name[50];
unsigned char pnpver;
unsigned char productver;
unsigned int serial;
unsigned char checksum;
struct proc_dir_entry *procdir;
};
struct pnp_id {
char id[8];
struct pnp_id *next;
};
struct pnp_device_id;
struct pnp_driver {
const char *name;
const struct pnp_device_id *id_table;
unsigned int flags;
int (*probe)(struct pnp_dev *, const struct pnp_device_id *);
void (*remove)(struct pnp_dev *);
void (*shutdown)(struct pnp_dev *);
int (*suspend)(struct pnp_dev *, pm_message_t);
int (*resume)(struct pnp_dev *);
struct device_driver driver;
};
struct pnp_device_id {
__u8 id[8];
kernel_ulong_t driver_data;
};
struct pnp_card_driver;
struct pnp_card_link {
struct pnp_card *card;
struct pnp_card_driver *driver;
void *driver_data;
pm_message_t pm_state;
};
struct pnp_card_device_id;
struct pnp_card_driver {
struct list_head global_list;
char *name;
const struct pnp_card_device_id *id_table;
unsigned int flags;
int (*probe)(struct pnp_card_link *, const struct pnp_card_device_id *);
void (*remove)(struct pnp_card_link *);
int (*suspend)(struct pnp_card_link *, pm_message_t);
int (*resume)(struct pnp_card_link *);
struct pnp_driver link;
};
struct pnp_card_device_id {
__u8 id[8];
kernel_ulong_t driver_data;
struct {
__u8 id[8];
} devs[8];
};
struct acpi_hardware_id {
struct list_head list;
const char *id;
};
struct acpi_buffer {
acpi_size length;
void *pointer;
};
typedef char *acpi_string;
struct acpi_object_list {
u32 count;
union acpi_object *pointer;
};
typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **);
enum vc_intensity {
VCI_HALF_BRIGHT = 0,
VCI_NORMAL = 1,
VCI_BOLD = 2,
VCI_MASK = 3,
};
enum con_scroll {
SM_UP = 0,
SM_DOWN = 1,
};
enum vesa_blank_mode {
VESA_NO_BLANKING = 0,
VESA_VSYNC_SUSPEND = 1,
VESA_HSYNC_SUSPEND = 2,
VESA_POWERDOWN = 3,
VESA_BLANK_MAX = 3,
};
struct vcs_poll_data {
struct notifier_block notifier;
unsigned int cons_num;
int event;
wait_queue_head_t waitq;
struct fasync_struct *fasync;
};
struct vc_state {
unsigned int x;
unsigned int y;
unsigned char color;
unsigned char Gx_charset[2];
unsigned int charset: 1;
enum vc_intensity intensity;
bool italic;
bool underline;
bool blink;
bool reverse;
};
struct console_font {
unsigned int width;
unsigned int height;
unsigned int charcount;
unsigned char *data;
};
struct vt_mode {
char mode;
char waitv;
short relsig;
short acqsig;
short frsig;
};
struct consw;
struct uni_pagedict;
struct vc_data {
struct tty_port port;
struct vc_state state;
struct vc_state saved_state;
unsigned short vc_num;
unsigned int vc_cols;
unsigned int vc_rows;
unsigned int vc_size_row;
unsigned int vc_scan_lines;
unsigned int vc_cell_height;
unsigned long vc_origin;
unsigned long vc_scr_end;
unsigned long vc_visible_origin;
unsigned int vc_top;
unsigned int vc_bottom;
const struct consw *vc_sw;
unsigned short *vc_screenbuf;
unsigned int vc_screenbuf_size;
unsigned char vc_mode;
unsigned char vc_attr;
unsigned char vc_def_color;
unsigned char vc_ulcolor;
unsigned char vc_itcolor;
unsigned char vc_halfcolor;
unsigned int vc_cursor_type;
unsigned short vc_complement_mask;
unsigned short vc_s_complement_mask;
unsigned long vc_pos;
unsigned short vc_hi_font_mask;
struct console_font vc_font;
unsigned short vc_video_erase_char;
unsigned int vc_state;
unsigned int vc_npar;
unsigned int vc_par[16];
struct vt_mode vt_mode;
struct pid *vt_pid;
int vt_newvt;
wait_queue_head_t paste_wait;
unsigned int vc_disp_ctrl: 1;
unsigned int vc_toggle_meta: 1;
unsigned int vc_decscnm: 1;
unsigned int vc_decom: 1;
unsigned int vc_decawm: 1;
unsigned int vc_deccm: 1;
unsigned int vc_decim: 1;
unsigned int vc_priv: 3;
unsigned int vc_need_wrap: 1;
unsigned int vc_can_do_color: 1;
unsigned int vc_report_mouse: 2;
unsigned char vc_utf: 1;
unsigned char vc_utf_count;
int vc_utf_char;
unsigned long vc_tab_stop[4];
unsigned char vc_palette[48];
unsigned short *vc_translate;
unsigned int vc_bell_pitch;
unsigned int vc_bell_duration;
unsigned short vc_cur_blink_ms;
struct vc_data **vc_display_fg;
struct uni_pagedict *uni_pagedict;
struct uni_pagedict **uni_pagedict_loc;
u32 **vc_uni_lines;
};
struct consw {
struct module *owner;
const char * (*con_startup)();
void (*con_init)(struct vc_data *, bool);
void (*con_deinit)(struct vc_data *);
void (*con_clear)(struct vc_data *, unsigned int, unsigned int, unsigned int);
void (*con_putc)(struct vc_data *, u16, unsigned int, unsigned int);
void (*con_putcs)(struct vc_data *, const u16 *, unsigned int, unsigned int, unsigned int);
void (*con_cursor)(struct vc_data *, bool);
bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int);
bool (*con_switch)(struct vc_data *);
bool (*con_blank)(struct vc_data *, enum vesa_blank_mode, bool);
int (*con_font_set)(struct vc_data *, const struct console_font *, unsigned int, unsigned int);
int (*con_font_get)(struct vc_data *, struct console_font *, unsigned int);
int (*con_font_default)(struct vc_data *, struct console_font *, const char *);
int (*con_resize)(struct vc_data *, unsigned int, unsigned int, bool);
void (*con_set_palette)(struct vc_data *, const unsigned char *);
void (*con_scrolldelta)(struct vc_data *, int);
bool (*con_set_origin)(struct vc_data *);
void (*con_save_screen)(struct vc_data *);
u8 (*con_build_attr)(struct vc_data *, u8, enum vc_intensity, bool, bool, bool, bool);
void (*con_invert_region)(struct vc_data *, u16 *, int);
void (*con_debug_enter)(struct vc_data *);
void (*con_debug_leave)(struct vc_data *);
};
typedef struct poll_table_struct poll_table;
struct vt_notifier_param {
struct vc_data *vc;
unsigned int c;
};
struct node {
struct device dev;
struct list_head access_list;
};
enum node_states {
N_POSSIBLE = 0,
N_ONLINE = 1,
N_NORMAL_MEMORY = 2,
N_HIGH_MEMORY = 2,
N_MEMORY = 3,
N_CPU = 4,
N_GENERIC_INITIATOR = 5,
NR_NODE_STATES = 6,
};
struct node_attr {
struct device_attribute attr;
enum node_states state;
};
enum access_coordinate_class {
ACCESS_COORDINATE_LOCAL = 0,
ACCESS_COORDINATE_CPU = 1,
ACCESS_COORDINATE_MAX = 2,
};
enum node_stat_item {
NR_LRU_BASE = 0,
NR_INACTIVE_ANON = 0,
NR_ACTIVE_ANON = 1,
NR_INACTIVE_FILE = 2,
NR_ACTIVE_FILE = 3,
NR_UNEVICTABLE = 4,
NR_SLAB_RECLAIMABLE_B = 5,
NR_SLAB_UNRECLAIMABLE_B = 6,
NR_ISOLATED_ANON = 7,
NR_ISOLATED_FILE = 8,
WORKINGSET_NODES = 9,
WORKINGSET_REFAULT_BASE = 10,
WORKINGSET_REFAULT_ANON = 10,
WORKINGSET_REFAULT_FILE = 11,
WORKINGSET_ACTIVATE_BASE = 12,
WORKINGSET_ACTIVATE_ANON = 12,
WORKINGSET_ACTIVATE_FILE = 13,
WORKINGSET_RESTORE_BASE = 14,
WORKINGSET_RESTORE_ANON = 14,
WORKINGSET_RESTORE_FILE = 15,
WORKINGSET_NODERECLAIM = 16,
NR_ANON_MAPPED = 17,
NR_FILE_MAPPED = 18,
NR_FILE_PAGES = 19,
NR_FILE_DIRTY = 20,
NR_WRITEBACK = 21,
NR_WRITEBACK_TEMP = 22,
NR_SHMEM = 23,
NR_SHMEM_THPS = 24,
NR_SHMEM_PMDMAPPED = 25,
NR_FILE_THPS = 26,
NR_FILE_PMDMAPPED = 27,
NR_ANON_THPS = 28,
NR_VMSCAN_WRITE = 29,
NR_VMSCAN_IMMEDIATE = 30,
NR_DIRTIED = 31,
NR_WRITTEN = 32,
NR_THROTTLED_WRITTEN = 33,
NR_KERNEL_MISC_RECLAIMABLE = 34,
NR_FOLL_PIN_ACQUIRED = 35,
NR_FOLL_PIN_RELEASED = 36,
NR_KERNEL_STACK_KB = 37,
NR_PAGETABLE = 38,
NR_SECONDARY_PAGETABLE = 39,
NR_SWAPCACHE = 40,
PGDEMOTE_KSWAPD = 41,
PGDEMOTE_DIRECT = 42,
PGDEMOTE_KHUGEPAGED = 43,
NR_VM_NODE_STAT_ITEMS = 44,
};
enum zone_stat_item {
NR_FREE_PAGES = 0,
NR_ZONE_LRU_BASE = 1,
NR_ZONE_INACTIVE_ANON = 1,
NR_ZONE_ACTIVE_ANON = 2,
NR_ZONE_INACTIVE_FILE = 3,
NR_ZONE_ACTIVE_FILE = 4,
NR_ZONE_UNEVICTABLE = 5,
NR_ZONE_WRITE_PENDING = 6,
NR_MLOCK = 7,
NR_BOUNCE = 8,
NR_FREE_CMA_PAGES = 9,
NR_VM_ZONE_STAT_ITEMS = 10,
};
enum numa_stat_item {
NUMA_HIT = 0,
NUMA_MISS = 1,
NUMA_FOREIGN = 2,
NUMA_INTERLEAVE_HIT = 3,
NUMA_LOCAL = 4,
NUMA_OTHER = 5,
NR_VM_NUMA_EVENT_ITEMS = 6,
};
enum meminit_context {
MEMINIT_EARLY = 0,
MEMINIT_HOTPLUG = 1,
};
struct node_access_nodes {
struct device dev;
struct list_head list_node;
unsigned int access;
};
struct sysinfo {
__kernel_long_t uptime;
__kernel_ulong_t loads[3];
__kernel_ulong_t totalram;
__kernel_ulong_t freeram;
__kernel_ulong_t sharedram;
__kernel_ulong_t bufferram;
__kernel_ulong_t totalswap;
__kernel_ulong_t freeswap;
__u16 procs;
__u16 pad;
__kernel_ulong_t totalhigh;
__kernel_ulong_t freehigh;
__u32 mem_unit;
char _f[0];
};
enum e1000_mac_type {
e1000_undefined = 0,
e1000_82575 = 1,
e1000_82576 = 2,
e1000_82580 = 3,
e1000_i350 = 4,
e1000_i354 = 5,
e1000_i210 = 6,
e1000_i211 = 7,
e1000_num_macs = 8,
};
enum e1000_fc_mode {
e1000_fc_none = 0,
e1000_fc_rx_pause = 1,
e1000_fc_tx_pause = 2,
e1000_fc_full = 3,
e1000_fc_default = 255,
};
enum e1000_phy_type {
e1000_phy_unknown = 0,
e1000_phy_none = 1,
e1000_phy_m88 = 2,
e1000_phy_igp = 3,
e1000_phy_igp_2 = 4,
e1000_phy_gg82563 = 5,
e1000_phy_igp_3 = 6,
e1000_phy_ife = 7,
e1000_phy_82580 = 8,
e1000_phy_i210 = 9,
e1000_phy_bcm54616 = 10,
};
enum e1000_1000t_rx_status {
e1000_1000t_rx_status_not_ok = 0,
e1000_1000t_rx_status_ok = 1,
e1000_1000t_rx_status_undefined = 255,
};
enum e1000_ms_type {
e1000_ms_hw_default = 0,
e1000_ms_force_master = 1,
e1000_ms_force_slave = 2,
e1000_ms_auto = 3,
};
enum e1000_rev_polarity {
e1000_rev_polarity_normal = 0,
e1000_rev_polarity_reversed = 1,
e1000_rev_polarity_undefined = 255,
};
enum e1000_smart_speed {
e1000_smart_speed_default = 0,
e1000_smart_speed_on = 1,
e1000_smart_speed_off = 2,
};
enum e1000_media_type {
e1000_media_type_unknown = 0,
e1000_media_type_copper = 1,
e1000_media_type_fiber = 2,
e1000_media_type_internal_serdes = 3,
e1000_num_media_types = 4,
};
enum e1000_nvm_type {
e1000_nvm_unknown = 0,
e1000_nvm_none = 1,
e1000_nvm_eeprom_spi = 2,
e1000_nvm_flash_hw = 3,
e1000_nvm_invm = 4,
e1000_nvm_flash_sw = 5,
};
enum e1000_nvm_override {
e1000_nvm_override_none = 0,
e1000_nvm_override_spi_small = 1,
e1000_nvm_override_spi_large = 2,
};
enum e1000_bus_type {
e1000_bus_type_unknown = 0,
e1000_bus_type_pci = 1,
e1000_bus_type_pcix = 2,
e1000_bus_type_pci_express = 3,
e1000_bus_type_reserved = 4,
};
enum e1000_bus_speed {
e1000_bus_speed_unknown = 0,
e1000_bus_speed_33 = 1,
e1000_bus_speed_66 = 2,
e1000_bus_speed_100 = 3,
e1000_bus_speed_120 = 4,
e1000_bus_speed_133 = 5,
e1000_bus_speed_2500 = 6,
e1000_bus_speed_5000 = 7,
e1000_bus_speed_reserved = 8,
};
enum e1000_bus_width {
e1000_bus_width_unknown = 0,
e1000_bus_width_pcie_x1 = 1,
e1000_bus_width_pcie_x2 = 2,
e1000_bus_width_pcie_x4 = 4,
e1000_bus_width_pcie_x8 = 8,
e1000_bus_width_32 = 9,
e1000_bus_width_64 = 10,
e1000_bus_width_reserved = 11,
};
struct e1000_sfp_flags {
u8 e1000_base_sx: 1;
u8 e1000_base_lx: 1;
u8 e1000_base_cx: 1;
u8 e1000_base_t: 1;
u8 e100_base_lx: 1;
u8 e100_base_fx: 1;
u8 e10_base_bx10: 1;
u8 e10_base_px: 1;
};
struct e1000_dev_spec_82575 {
bool sgmii_active;
bool global_device_reset;
bool eee_disable;
bool clear_semaphore_once;
struct e1000_sfp_flags eth_flags;
bool module_plugged;
u8 media_port;
bool media_changed;
bool mas_capable;
};
struct e1000_hw;
struct e1000_mac_operations {
s32 (*check_for_link)(struct e1000_hw *);
s32 (*reset_hw)(struct e1000_hw *);
s32 (*init_hw)(struct e1000_hw *);
bool (*check_mng_mode)(struct e1000_hw *);
s32 (*setup_physical_interface)(struct e1000_hw *);
void (*rar_set)(struct e1000_hw *, u8 *, u32);
s32 (*read_mac_addr)(struct e1000_hw *);
s32 (*get_speed_and_duplex)(struct e1000_hw *, u16 *, u16 *);
s32 (*acquire_swfw_sync)(struct e1000_hw *, u16);
void (*release_swfw_sync)(struct e1000_hw *, u16);
s32 (*get_thermal_sensor_data)(struct e1000_hw *);
s32 (*init_thermal_sensor_thresh)(struct e1000_hw *);
void (*write_vfta)(struct e1000_hw *, u32, u32);
};
struct e1000_thermal_diode_data {
u8 location;
u8 temp;
u8 caution_thresh;
u8 max_op_thresh;
};
struct e1000_thermal_sensor_data {
struct e1000_thermal_diode_data sensor[3];
};
struct e1000_mac_info {
struct e1000_mac_operations ops;
u8 addr[6];
u8 perm_addr[6];
enum e1000_mac_type type;
u32 ledctl_default;
u32 ledctl_mode1;
u32 ledctl_mode2;
u32 mc_filter_type;
u32 txcw;
u16 mta_reg_count;
u16 uta_reg_count;
u32 mta_shadow[128];
u16 rar_entry_count;
u8 forced_speed_duplex;
bool adaptive_ifs;
bool arc_subsystem_valid;
bool asf_firmware_present;
bool autoneg;
bool autoneg_failed;
bool disable_hw_init_bits;
bool get_link_status;
bool ifs_params_forced;
bool in_ifs_mode;
bool report_tx_early;
bool serdes_has_link;
bool tx_pkt_filtering;
struct e1000_thermal_sensor_data thermal_sensor_data;
};
struct e1000_fc_info {
u32 high_water;
u32 low_water;
u16 pause_time;
bool send_xon;
bool strict_ieee;
enum e1000_fc_mode current_mode;
enum e1000_fc_mode requested_mode;
};
struct e1000_phy_operations {
s32 (*acquire)(struct e1000_hw *);
s32 (*check_polarity)(struct e1000_hw *);
s32 (*check_reset_block)(struct e1000_hw *);
s32 (*force_speed_duplex)(struct e1000_hw *);
s32 (*get_cfg_done)(struct e1000_hw *);
s32 (*get_cable_length)(struct e1000_hw *);
s32 (*get_phy_info)(struct e1000_hw *);
s32 (*read_reg)(struct e1000_hw *, u32, u16 *);
void (*release)(struct e1000_hw *);
s32 (*reset)(struct e1000_hw *);
s32 (*set_d0_lplu_state)(struct e1000_hw *, bool);
s32 (*set_d3_lplu_state)(struct e1000_hw *, bool);
s32 (*write_reg)(struct e1000_hw *, u32, u16);
s32 (*read_i2c_byte)(struct e1000_hw *, u8, u8, u8 *);
s32 (*write_i2c_byte)(struct e1000_hw *, u8, u8, u8);
};
struct e1000_phy_info {
struct e1000_phy_operations ops;
enum e1000_phy_type type;
enum e1000_1000t_rx_status local_rx;
enum e1000_1000t_rx_status remote_rx;
enum e1000_ms_type ms_type;
enum e1000_ms_type original_ms_type;
enum e1000_rev_polarity cable_polarity;
enum e1000_smart_speed smart_speed;
u32 addr;
u32 id;
u32 reset_delay_us;
u32 revision;
enum e1000_media_type media_type;
u16 autoneg_advertised;
u16 autoneg_mask;
u16 cable_length;
u16 max_cable_length;
u16 min_cable_length;
u16 pair_length[4];
u8 mdix;
bool disable_polarity_correction;
bool is_mdix;
bool polarity_correction;
bool reset_disable;
bool speed_downgraded;
bool autoneg_wait_to_complete;
};
struct e1000_nvm_operations {
s32 (*acquire)(struct e1000_hw *);
s32 (*read)(struct e1000_hw *, u16, u16, u16 *);
void (*release)(struct e1000_hw *);
s32 (*write)(struct e1000_hw *, u16, u16, u16 *);
s32 (*update)(struct e1000_hw *);
s32 (*validate)(struct e1000_hw *);
s32 (*valid_led_default)(struct e1000_hw *, u16 *);
};
struct e1000_nvm_info {
struct e1000_nvm_operations ops;
enum e1000_nvm_type type;
enum e1000_nvm_override override;
u32 flash_bank_size;
u32 flash_base_addr;
u16 word_size;
u16 delay_usec;
u16 address_bits;
u16 opcode_bits;
u16 page_size;
};
struct e1000_bus_info {
enum e1000_bus_type type;
enum e1000_bus_speed speed;
enum e1000_bus_width width;
u32 snoop;
u16 func;
u16 pci_cmd_word;
};
struct e1000_mbx_operations {
s32 (*init_params)(struct e1000_hw *);
s32 (*read)(struct e1000_hw *, u32 *, u16, u16, bool);
s32 (*write)(struct e1000_hw *, u32 *, u16, u16);
s32 (*read_posted)(struct e1000_hw *, u32 *, u16, u16);
s32 (*write_posted)(struct e1000_hw *, u32 *, u16, u16);
s32 (*check_for_msg)(struct e1000_hw *, u16);
s32 (*check_for_ack)(struct e1000_hw *, u16);
s32 (*check_for_rst)(struct e1000_hw *, u16);
s32 (*unlock)(struct e1000_hw *, u16);
};
struct e1000_mbx_stats {
u32 msgs_tx;
u32 msgs_rx;
u32 acks;
u32 reqs;
u32 rsts;
};
struct e1000_mbx_info {
struct e1000_mbx_operations ops;
struct e1000_mbx_stats stats;
u32 timeout;
u32 usec_delay;
u16 size;
};
struct e1000_host_mng_dhcp_cookie {
u32 signature;
u8 status;
u8 reserved0;
u16 vlan_id;
u32 reserved1;
u16 reserved2;
u8 reserved3;
u8 checksum;
};
struct e1000_hw {
void *back;
u8 *hw_addr;
u8 *flash_address;
unsigned long io_base;
struct e1000_mac_info mac;
struct e1000_fc_info fc;
struct e1000_phy_info phy;
struct e1000_nvm_info nvm;
struct e1000_bus_info bus;
struct e1000_mbx_info mbx;
struct e1000_host_mng_dhcp_cookie mng_cookie;
union {
struct e1000_dev_spec_82575 _82575;
} dev_spec;
u16 device_id;
u16 subsystem_vendor_id;
u16 subsystem_device_id;
u16 vendor_id;
u8 revision_id;
};
enum iwl_d3_status {
IWL_D3_STATUS_ALIVE = 0,
IWL_D3_STATUS_RESET = 1,
};
struct ethtool_drvinfo {
__u32 cmd;
char driver[32];
char version[32];
char fw_version[32];
char bus_info[32];
char erom_version[32];
char reserved2[12];
__u32 n_priv_flags;
__u32 n_stats;
__u32 testinfo_len;
__u32 eedump_len;
__u32 regdump_len;
};
struct ethtool_regs {
__u32 cmd;
__u32 version;
__u32 len;
__u8 data[0];
};
struct ethtool_wolinfo {
__u32 cmd;
__u32 supported;
__u32 wolopts;
__u8 sopass[6];
};
enum ethtool_link_ext_substate_autoneg {
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2,
ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3,
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4,
ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5,
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6,
};
enum ethtool_link_ext_substate_link_training {
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2,
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3,
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4,
};
enum ethtool_link_ext_substate_link_logical_mismatch {
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2,
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3,
ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4,
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5,
};
enum ethtool_link_ext_substate_bad_signal_integrity {
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2,
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST = 3,
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS = 4,
};
enum ethtool_link_ext_substate_cable_issue {
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2,
};
enum ethtool_link_ext_substate_module {
ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
};
enum ethtool_link_ext_state {
ETHTOOL_LINK_EXT_STATE_AUTONEG = 0,
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1,
ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2,
ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3,
ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4,
ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5,
ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6,
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7,
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8,
ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9,
ETHTOOL_LINK_EXT_STATE_MODULE = 10,
};
struct ethtool_link_ext_state_info {
enum ethtool_link_ext_state link_ext_state;
union {
enum ethtool_link_ext_substate_autoneg autoneg;
enum ethtool_link_ext_substate_link_training link_training;
enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch;
enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity;
enum ethtool_link_ext_substate_cable_issue cable_issue;
enum ethtool_link_ext_substate_module module;
u32 __link_ext_substate;
};
};
struct ethtool_link_ext_stats {
u64 link_down_events;
};
struct ethtool_eeprom {
__u32 cmd;
__u32 magic;
__u32 offset;
__u32 len;
__u8 data[0];
};
struct ethtool_coalesce {
__u32 cmd;
__u32 rx_coalesce_usecs;
__u32 rx_max_coalesced_frames;
__u32 rx_coalesce_usecs_irq;
__u32 rx_max_coalesced_frames_irq;
__u32 tx_coalesce_usecs;
__u32 tx_max_coalesced_frames;
__u32 tx_coalesce_usecs_irq;
__u32 tx_max_coalesced_frames_irq;
__u32 stats_block_coalesce_usecs;
__u32 use_adaptive_rx_coalesce;
__u32 use_adaptive_tx_coalesce;
__u32 pkt_rate_low;
__u32 rx_coalesce_usecs_low;
__u32 rx_max_coalesced_frames_low;
__u32 tx_coalesce_usecs_low;
__u32 tx_max_coalesced_frames_low;
__u32 pkt_rate_high;
__u32 rx_coalesce_usecs_high;
__u32 rx_max_coalesced_frames_high;
__u32 tx_coalesce_usecs_high;
__u32 tx_max_coalesced_frames_high;
__u32 rate_sample_interval;
};
struct kernel_ethtool_coalesce {
u8 use_cqe_mode_tx;
u8 use_cqe_mode_rx;
u32 tx_aggr_max_bytes;
u32 tx_aggr_max_frames;
u32 tx_aggr_time_usecs;
};
struct ethtool_ringparam {
__u32 cmd;
__u32 rx_max_pending;
__u32 rx_mini_max_pending;
__u32 rx_jumbo_max_pending;
__u32 tx_max_pending;
__u32 rx_pending;
__u32 rx_mini_pending;
__u32 rx_jumbo_pending;
__u32 tx_pending;
};
struct kernel_ethtool_ringparam {
u32 rx_buf_len;
u8 tcp_data_split;
u8 tx_push;
u8 rx_push;
u32 cqe_size;
u32 tx_push_buf_len;
u32 tx_push_buf_max_len;
};
enum ethtool_mac_stats_src {
ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0,
ETHTOOL_MAC_STATS_SRC_EMAC = 1,
ETHTOOL_MAC_STATS_SRC_PMAC = 2,
};
struct ethtool_pause_stats {
enum ethtool_mac_stats_src src;
union {
struct {
u64 tx_pause_frames;
u64 rx_pause_frames;
};
struct {
u64 tx_pause_frames;
u64 rx_pause_frames;
} stats;
};
};
struct ethtool_pauseparam {
__u32 cmd;
__u32 autoneg;
__u32 rx_pause;
__u32 tx_pause;
};
struct ethtool_test {
__u32 cmd;
__u32 flags;
__u32 reserved;
__u32 len;
__u64 data[0];
};
struct ethtool_stats {
__u32 cmd;
__u32 n_stats;
__u64 data[0];
};
struct ethtool_tcpip4_spec {
__be32 ip4src;
__be32 ip4dst;
__be16 psrc;
__be16 pdst;
__u8 tos;
};
struct ethtool_ah_espip4_spec {
__be32 ip4src;
__be32 ip4dst;
__be32 spi;
__u8 tos;
};
struct ethtool_usrip4_spec {
__be32 ip4src;
__be32 ip4dst;
__be32 l4_4_bytes;
__u8 tos;
__u8 ip_ver;
__u8 proto;
};
struct ethtool_tcpip6_spec {
__be32 ip6src[4];
__be32 ip6dst[4];
__be16 psrc;
__be16 pdst;
__u8 tclass;
};
struct ethtool_ah_espip6_spec {
__be32 ip6src[4];
__be32 ip6dst[4];
__be32 spi;
__u8 tclass;
};
struct ethtool_usrip6_spec {
__be32 ip6src[4];
__be32 ip6dst[4];
__be32 l4_4_bytes;
__u8 tclass;
__u8 l4_proto;
};
struct ethhdr {
unsigned char h_dest[6];
unsigned char h_source[6];
__be16 h_proto;
};
union ethtool_flow_union {
struct ethtool_tcpip4_spec tcp_ip4_spec;
struct ethtool_tcpip4_spec udp_ip4_spec;
struct ethtool_tcpip4_spec sctp_ip4_spec;
struct ethtool_ah_espip4_spec ah_ip4_spec;
struct ethtool_ah_espip4_spec esp_ip4_spec;
struct ethtool_usrip4_spec usr_ip4_spec;
struct ethtool_tcpip6_spec tcp_ip6_spec;
struct ethtool_tcpip6_spec udp_ip6_spec;
struct ethtool_tcpip6_spec sctp_ip6_spec;
struct ethtool_ah_espip6_spec ah_ip6_spec;
struct ethtool_ah_espip6_spec esp_ip6_spec;
struct ethtool_usrip6_spec usr_ip6_spec;
struct ethhdr ether_spec;
__u8 hdata[52];
};
struct ethtool_flow_ext {
__u8 padding[2];
unsigned char h_dest[6];
__be16 vlan_etype;
__be16 vlan_tci;
__be32 data[2];
};
struct ethtool_rx_flow_spec {
__u32 flow_type;
union ethtool_flow_union h_u;
struct ethtool_flow_ext h_ext;
union ethtool_flow_union m_u;
struct ethtool_flow_ext m_ext;
__u64 ring_cookie;
__u32 location;
};
struct ethtool_rxnfc {
__u32 cmd;
__u32 flow_type;
__u64 data;
struct ethtool_rx_flow_spec fs;
union {
__u32 rule_cnt;
__u32 rss_context;
};
__u32 rule_locs[0];
};
struct ethtool_flash {
__u32 cmd;
__u32 region;
char data[128];
};
struct ethtool_rxfh_param {
u8 hfunc;
u32 indir_size;
u32 *indir;
u32 key_size;
u8 *key;
u32 rss_context;
u8 rss_delete;
u8 input_xfrm;
};
struct ethtool_channels {
__u32 cmd;
__u32 max_rx;
__u32 max_tx;
__u32 max_other;
__u32 max_combined;
__u32 rx_count;
__u32 tx_count;
__u32 other_count;
__u32 combined_count;
};
struct ethtool_dump {
__u32 cmd;
__u32 version;
__u32 flag;
__u32 len;
__u8 data[0];
};
struct ethtool_ts_info {
__u32 cmd;
__u32 so_timestamping;
__s32 phc_index;
__u32 tx_types;
__u32 tx_reserved[3];
__u32 rx_filters;
__u32 rx_reserved[3];
};
struct ethtool_modinfo {
__u32 cmd;
__u32 type;
__u32 eeprom_len;
__u32 reserved[8];
};
struct ethtool_keee {
unsigned long supported[2];
unsigned long advertised[2];
unsigned long lp_advertised[2];
u32 tx_lpi_timer;
bool tx_lpi_enabled;
bool eee_active;
bool eee_enabled;
};
struct ethtool_tunable {
__u32 cmd;
__u32 id;
__u32 type_id;
__u32 len;
void *data[0];
};
struct ethtool_link_settings {
__u32 cmd;
__u32 speed;
__u8 duplex;
__u8 port;
__u8 phy_address;
__u8 autoneg;
__u8 mdio_support;
__u8 eth_tp_mdix;
__u8 eth_tp_mdix_ctrl;
__s8 link_mode_masks_nwords;
__u8 transceiver;
__u8 master_slave_cfg;
__u8 master_slave_state;
__u8 rate_matching;
__u32 reserved[7];
__u32 link_mode_masks[0];
};
struct ethtool_link_ksettings {
struct ethtool_link_settings base;
struct {
unsigned long supported[2];
unsigned long advertising[2];
unsigned long lp_advertising[2];
} link_modes;
u32 lanes;
};
struct ethtool_fec_stat {
u64 total;
u64 lanes[8];
};
struct ethtool_fec_stats {
struct ethtool_fec_stat corrected_blocks;
struct ethtool_fec_stat uncorrectable_blocks;
struct ethtool_fec_stat corrected_bits;
};
struct ethtool_fecparam {
__u32 cmd;
__u32 active_fec;
__u32 fec;
__u32 reserved;
};
struct ethtool_module_eeprom {
u32 offset;
u32 length;
u8 page;
u8 bank;
u8 i2c_address;
u8 *data;
};
struct ethtool_eth_phy_stats {
enum ethtool_mac_stats_src src;
union {
struct {
u64 SymbolErrorDuringCarrier;
};
struct {
u64 SymbolErrorDuringCarrier;
} stats;
};
};
struct ethtool_eth_mac_stats {
enum ethtool_mac_stats_src src;
union {
struct {
u64 FramesTransmittedOK;
u64 SingleCollisionFrames;
u64 MultipleCollisionFrames;
u64 FramesReceivedOK;
u64 FrameCheckSequenceErrors;
u64 AlignmentErrors;
u64 OctetsTransmittedOK;
u64 FramesWithDeferredXmissions;
u64 LateCollisions;
u64 FramesAbortedDueToXSColls;
u64 FramesLostDueToIntMACXmitError;
u64 CarrierSenseErrors;
u64 OctetsReceivedOK;
u64 FramesLostDueToIntMACRcvError;
u64 MulticastFramesXmittedOK;
u64 BroadcastFramesXmittedOK;
u64 FramesWithExcessiveDeferral;
u64 MulticastFramesReceivedOK;
u64 BroadcastFramesReceivedOK;
u64 InRangeLengthErrors;
u64 OutOfRangeLengthField;
u64 FrameTooLongErrors;
};
struct {
u64 FramesTransmittedOK;
u64 SingleCollisionFrames;
u64 MultipleCollisionFrames;
u64 FramesReceivedOK;
u64 FrameCheckSequenceErrors;
u64 AlignmentErrors;
u64 OctetsTransmittedOK;
u64 FramesWithDeferredXmissions;
u64 LateCollisions;
u64 FramesAbortedDueToXSColls;
u64 FramesLostDueToIntMACXmitError;
u64 CarrierSenseErrors;
u64 OctetsReceivedOK;
u64 FramesLostDueToIntMACRcvError;
u64 MulticastFramesXmittedOK;
u64 BroadcastFramesXmittedOK;
u64 FramesWithExcessiveDeferral;
u64 MulticastFramesReceivedOK;
u64 BroadcastFramesReceivedOK;
u64 InRangeLengthErrors;
u64 OutOfRangeLengthField;
u64 FrameTooLongErrors;
} stats;
};
};
struct ethtool_eth_ctrl_stats {
enum ethtool_mac_stats_src src;
union {
struct {
u64 MACControlFramesTransmitted;
u64 MACControlFramesReceived;
u64 UnsupportedOpcodesReceived;
};
struct {
u64 MACControlFramesTransmitted;
u64 MACControlFramesReceived;
u64 UnsupportedOpcodesReceived;
} stats;
};
};
struct ethtool_rmon_stats {
enum ethtool_mac_stats_src src;
union {
struct {
u64 undersize_pkts;
u64 oversize_pkts;
u64 fragments;
u64 jabbers;
u64 hist[10];
u64 hist_tx[10];
};
struct {
u64 undersize_pkts;
u64 oversize_pkts;
u64 fragments;
u64 jabbers;
u64 hist[10];
u64 hist_tx[10];
} stats;
};
};
struct ethtool_rmon_hist_range {
u16 low;
u16 high;
};
enum ethtool_module_power_mode_policy {
ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2,
};
enum ethtool_module_power_mode {
ETHTOOL_MODULE_POWER_MODE_LOW = 1,
ETHTOOL_MODULE_POWER_MODE_HIGH = 2,
};
struct ethtool_module_power_mode_params {
enum ethtool_module_power_mode_policy policy;
enum ethtool_module_power_mode mode;
};
enum ethtool_mm_verify_status {
ETHTOOL_MM_VERIFY_STATUS_UNKNOWN = 0,
ETHTOOL_MM_VERIFY_STATUS_INITIAL = 1,
ETHTOOL_MM_VERIFY_STATUS_VERIFYING = 2,
ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED = 3,
ETHTOOL_MM_VERIFY_STATUS_FAILED = 4,
ETHTOOL_MM_VERIFY_STATUS_DISABLED = 5,
};
struct ethtool_mm_state {
u32 verify_time;
u32 max_verify_time;
enum ethtool_mm_verify_status verify_status;
bool tx_enabled;
bool tx_active;
bool pmac_enabled;
bool verify_enabled;
u32 tx_min_frag_size;
u32 rx_min_frag_size;
};
struct ethtool_mm_cfg {
u32 verify_time;
bool verify_enabled;
bool tx_enabled;
bool pmac_enabled;
u32 tx_min_frag_size;
};
struct ethtool_mm_stats {
u64 MACMergeFrameAssErrorCount;
u64 MACMergeFrameSmdErrorCount;
u64 MACMergeFrameAssOkCount;
u64 MACMergeFragCountRx;
u64 MACMergeFragCountTx;
u64 MACMergeHoldCount;
};
enum nl80211_chan_width {
NL80211_CHAN_WIDTH_20_NOHT = 0,
NL80211_CHAN_WIDTH_20 = 1,
NL80211_CHAN_WIDTH_40 = 2,
NL80211_CHAN_WIDTH_80 = 3,
NL80211_CHAN_WIDTH_80P80 = 4,
NL80211_CHAN_WIDTH_160 = 5,
NL80211_CHAN_WIDTH_5 = 6,
NL80211_CHAN_WIDTH_10 = 7,
NL80211_CHAN_WIDTH_1 = 8,
NL80211_CHAN_WIDTH_2 = 9,
NL80211_CHAN_WIDTH_4 = 10,
NL80211_CHAN_WIDTH_8 = 11,
NL80211_CHAN_WIDTH_16 = 12,
NL80211_CHAN_WIDTH_320 = 13,
};
enum ieee80211_edmg_bw_config {
IEEE80211_EDMG_BW_CONFIG_4 = 4,
IEEE80211_EDMG_BW_CONFIG_5 = 5,
IEEE80211_EDMG_BW_CONFIG_6 = 6,
IEEE80211_EDMG_BW_CONFIG_7 = 7,
IEEE80211_EDMG_BW_CONFIG_8 = 8,
IEEE80211_EDMG_BW_CONFIG_9 = 9,
IEEE80211_EDMG_BW_CONFIG_10 = 10,
IEEE80211_EDMG_BW_CONFIG_11 = 11,
IEEE80211_EDMG_BW_CONFIG_12 = 12,
IEEE80211_EDMG_BW_CONFIG_13 = 13,
IEEE80211_EDMG_BW_CONFIG_14 = 14,
IEEE80211_EDMG_BW_CONFIG_15 = 15,
};
struct ieee80211_edmg {
u8 channels;
enum ieee80211_edmg_bw_config bw_config;
};
struct ieee80211_channel;
struct cfg80211_chan_def {
struct ieee80211_channel *chan;
enum nl80211_chan_width width;
u32 center_freq1;
u32 center_freq2;
struct ieee80211_edmg edmg;
u16 freq1_offset;
u16 punctured;
};
enum nl80211_iftype {
NL80211_IFTYPE_UNSPECIFIED = 0,
NL80211_IFTYPE_ADHOC = 1,
NL80211_IFTYPE_STATION = 2,
NL80211_IFTYPE_AP = 3,
NL80211_IFTYPE_AP_VLAN = 4,
NL80211_IFTYPE_WDS = 5,
NL80211_IFTYPE_MONITOR = 6,
NL80211_IFTYPE_MESH_POINT = 7,
NL80211_IFTYPE_P2P_CLIENT = 8,
NL80211_IFTYPE_P2P_GO = 9,
NL80211_IFTYPE_P2P_DEVICE = 10,
NL80211_IFTYPE_OCB = 11,
NL80211_IFTYPE_NAN = 12,
NUM_NL80211_IFTYPES = 13,
NL80211_IFTYPE_MAX = 12,
};
enum ieee80211_bss_type {
IEEE80211_BSS_TYPE_ESS = 0,
IEEE80211_BSS_TYPE_PBSS = 1,
IEEE80211_BSS_TYPE_IBSS = 2,
IEEE80211_BSS_TYPE_MBSS = 3,
IEEE80211_BSS_TYPE_ANY = 4,
};
struct wiphy;
struct wiphy_work;
typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *);
struct wiphy_work {
struct list_head entry;
wiphy_work_func_t func;
};
struct cfg80211_conn;
struct cfg80211_cached_keys;
struct cfg80211_cqm_config;
struct cfg80211_internal_bss;
struct wireless_dev {
struct wiphy *wiphy;
enum nl80211_iftype iftype;
struct list_head list;
struct net_device *netdev;
u32 identifier;
struct list_head mgmt_registrations;
u8 mgmt_registrations_need_update: 1;
bool use_4addr;
bool is_running;
bool registered;
bool registering;
short: 0;
u8 address[6];
struct cfg80211_conn *conn;
struct cfg80211_cached_keys *connect_keys;
enum ieee80211_bss_type conn_bss_type;
u32 conn_owner_nlportid;
struct work_struct disconnect_wk;
u8 disconnect_bssid[6];
struct list_head event_list;
spinlock_t event_lock;
u8 connected: 1;
bool ps;
int ps_timeout;
u32 ap_unexpected_nlportid;
u32 owner_nlportid;
bool nl_owner_dead;
bool cac_started;
unsigned long cac_start_time;
unsigned int cac_time_ms;
struct wiphy_work cqm_rssi_work;
struct cfg80211_cqm_config __attribute__((btf_type_tag("rcu"))) *cqm_config;
struct list_head pmsr_list;
spinlock_t pmsr_lock;
struct work_struct pmsr_free_wk;
unsigned long unprot_beacon_reported;
union {
struct {
u8 connected_addr[6];
u8 ssid[32];
u8 ssid_len;
long: 0;
} client;
struct {
int beacon_interval;
struct cfg80211_chan_def preset_chandef;
struct cfg80211_chan_def chandef;
u8 id[32];
u8 id_len;
u8 id_up_len;
} mesh;
struct {
struct cfg80211_chan_def preset_chandef;
u8 ssid[32];
u8 ssid_len;
} ap;
struct {
struct cfg80211_internal_bss *current_bss;
struct cfg80211_chan_def chandef;
int beacon_interval;
u8 ssid[32];
u8 ssid_len;
} ibss;
struct {
struct cfg80211_chan_def chandef;
} ocb;
} u;
struct {
u8 addr[6];
union {
struct {
unsigned int beacon_interval;
struct cfg80211_chan_def chandef;
} ap;
struct {
struct cfg80211_internal_bss *current_bss;
} client;
};
} links[15];
u16 valid_links;
};
enum cfg80211_signal_type {
CFG80211_SIGNAL_TYPE_NONE = 0,
CFG80211_SIGNAL_TYPE_MBM = 1,
CFG80211_SIGNAL_TYPE_UNSPEC = 2,
};
struct rfkill;
struct mac_address;
struct ieee80211_txrx_stypes;
struct ieee80211_iface_combination;
struct wiphy_iftype_akm_suites;
struct wiphy_wowlan_support;
struct cfg80211_wowlan;
struct wiphy_iftype_ext_capab;
struct ieee80211_supported_band;
struct regulatory_request;
struct ieee80211_regdomain;
struct ieee80211_ht_cap;
struct ieee80211_vht_cap;
struct wiphy_coalesce_support;
struct wiphy_vendor_command;
struct nl80211_vendor_cmd_info;
struct cfg80211_pmsr_capabilities;
struct cfg80211_sar_capa;
struct wiphy {
struct mutex mtx;
u8 perm_addr[6];
u8 addr_mask[6];
struct mac_address *addresses;
const struct ieee80211_txrx_stypes *mgmt_stypes;
const struct ieee80211_iface_combination *iface_combinations;
int n_iface_combinations;
u16 software_iftypes;
u16 n_addresses;
u16 interface_modes;
u16 max_acl_mac_addrs;
u32 flags;
u32 regulatory_flags;
u32 features;
u8 ext_features[9];
u32 ap_sme_capa;
enum cfg80211_signal_type signal_type;
int bss_priv_size;
u8 max_scan_ssids;
u8 max_sched_scan_reqs;
u8 max_sched_scan_ssids;
u8 max_match_sets;
u16 max_scan_ie_len;
u16 max_sched_scan_ie_len;
u32 max_sched_scan_plans;
u32 max_sched_scan_plan_interval;
u32 max_sched_scan_plan_iterations;
int n_cipher_suites;
const u32 *cipher_suites;
int n_akm_suites;
const u32 *akm_suites;
const struct wiphy_iftype_akm_suites *iftype_akm_suites;
unsigned int num_iftype_akm_suites;
u8 retry_short;
u8 retry_long;
u32 frag_threshold;
u32 rts_threshold;
u8 coverage_class;
char fw_version[32];
u32 hw_version;
const struct wiphy_wowlan_support *wowlan;
struct cfg80211_wowlan *wowlan_config;
u16 max_remain_on_channel_duration;
u8 max_num_pmkids;
u32 available_antennas_tx;
u32 available_antennas_rx;
u32 probe_resp_offload;
const u8 *extended_capabilities;
const u8 *extended_capabilities_mask;
u8 extended_capabilities_len;
const struct wiphy_iftype_ext_capab *iftype_ext_capab;
unsigned int num_iftype_ext_capab;
const void *privid;
struct ieee80211_supported_band *bands[6];
void (*reg_notifier)(struct wiphy *, struct regulatory_request *);
const struct ieee80211_regdomain __attribute__((btf_type_tag("rcu"))) *regd;
struct device dev;
bool registered;
struct dentry *debugfsdir;
const struct ieee80211_ht_cap *ht_capa_mod_mask;
const struct ieee80211_vht_cap *vht_capa_mod_mask;
struct list_head wdev_list;
possible_net_t _net;
const struct wiphy_coalesce_support *coalesce;
const struct wiphy_vendor_command *vendor_commands;
const struct nl80211_vendor_cmd_info *vendor_events;
int n_vendor_commands;
int n_vendor_events;
u16 max_ap_assoc_sta;
u8 max_num_csa_counters;
u32 bss_select_support;
u8 nan_supported_bands;
u32 txq_limit;
u32 txq_memory_limit;
u32 txq_quantum;
unsigned long tx_queue_len;
u8 support_mbssid: 1;
u8 support_only_he_mbssid: 1;
const struct cfg80211_pmsr_capabilities *pmsr_capa;
struct {
u64 peer;
u64 vif;
u8 max_retry;
} tid_config_support;
u8 max_data_retry_count;
const struct cfg80211_sar_capa *sar_capa;
struct rfkill *rfkill;
u8 mbssid_max_interfaces;
u8 ema_max_profile_periodicity;
u16 max_num_akm_suites;
u16 hw_timestamp_max_peers;
long: 0;
char priv[0];
};
struct mac_address {
u8 addr[6];
};
struct ieee80211_txrx_stypes {
u16 tx;
u16 rx;
};
struct ieee80211_iface_limit;
struct ieee80211_iface_combination {
const struct ieee80211_iface_limit *limits;
u32 num_different_channels;
u16 max_interfaces;
u8 n_limits;
bool beacon_int_infra_match;
u8 radar_detect_widths;
u8 radar_detect_regions;
u32 beacon_int_min_gcd;
};
struct ieee80211_iface_limit {
u16 max;
u16 types;
};
struct wiphy_iftype_akm_suites {
u16 iftypes_mask;
const u32 *akm_suites;
int n_akm_suites;
};
struct wiphy_wowlan_tcp_support;
struct wiphy_wowlan_support {
u32 flags;
int n_patterns;
int pattern_max_len;
int pattern_min_len;
int max_pkt_offset;
int max_nd_match_sets;
const struct wiphy_wowlan_tcp_support *tcp;
};
struct nl80211_wowlan_tcp_data_token_feature;
struct wiphy_wowlan_tcp_support {
const struct nl80211_wowlan_tcp_data_token_feature *tok;
u32 data_payload_max;
u32 data_interval_max;
u32 wake_payload_max;
bool seq;
};
struct nl80211_wowlan_tcp_data_token_feature {
__u32 min_len;
__u32 max_len;
__u32 bufsize;
};
struct cfg80211_pkt_pattern;
struct cfg80211_wowlan_tcp;
struct cfg80211_sched_scan_request;
struct cfg80211_wowlan {
bool any;
bool disconnect;
bool magic_pkt;
bool gtk_rekey_failure;
bool eap_identity_req;
bool four_way_handshake;
bool rfkill_release;
struct cfg80211_pkt_pattern *patterns;
struct cfg80211_wowlan_tcp *tcp;
int n_patterns;
struct cfg80211_sched_scan_request *nd_config;
};
struct cfg80211_pkt_pattern {
const u8 *mask;
const u8 *pattern;
int pattern_len;
int pkt_offset;
};
struct nl80211_wowlan_tcp_data_seq {
__u32 start;
__u32 offset;
__u32 len;
};
struct nl80211_wowlan_tcp_data_token {
__u32 offset;
__u32 len;
__u8 token_stream[0];
};
struct socket;
struct cfg80211_wowlan_tcp {
struct socket *sock;
__be32 src;
__be32 dst;
u16 src_port;
u16 dst_port;
u8 dst_mac[6];
int payload_len;
const u8 *payload;
struct nl80211_wowlan_tcp_data_seq payload_seq;
u32 data_interval;
u32 wake_len;
const u8 *wake_data;
const u8 *wake_mask;
u32 tokens_size;
struct nl80211_wowlan_tcp_data_token payload_tok;
};
typedef enum {
SS_FREE = 0,
SS_UNCONNECTED = 1,
SS_CONNECTING = 2,
SS_CONNECTED = 3,
SS_DISCONNECTING = 4,
} socket_state;
struct socket_wq {
wait_queue_head_t wait;
struct fasync_struct *fasync_list;
unsigned long flags;
struct callback_head rcu;
long: 64;
long: 64;
};
struct proto_ops;
struct socket {
socket_state state;
short type;
unsigned long flags;
struct file *file;
struct sock *sk;
const struct proto_ops *ops;
long: 64;
long: 64;
long: 64;
struct socket_wq wq;
};
typedef struct {
size_t written;
size_t count;
union {
char __attribute__((btf_type_tag("user"))) *buf;
void *data;
} arg;
int error;
} read_descriptor_t;
typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t);
typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *);
struct msghdr;
struct proto_ops {
int family;
struct module *owner;
int (*release)(struct socket *);
int (*bind)(struct socket *, struct sockaddr *, int);
int (*connect)(struct socket *, struct sockaddr *, int, int);
int (*socketpair)(struct socket *, struct socket *);
int (*accept)(struct socket *, struct socket *, int, bool);
int (*getname)(struct socket *, struct sockaddr *, int);
__poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *);
int (*ioctl)(struct socket *, unsigned int, unsigned long);
int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool);
int (*listen)(struct socket *, int);
int (*shutdown)(struct socket *, int);
int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int);
int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
void (*show_fdinfo)(struct seq_file *, struct socket *);
int (*sendmsg)(struct socket *, struct msghdr *, size_t);
int (*recvmsg)(struct socket *, struct msghdr *, size_t, int);
int (*mmap)(struct file *, struct socket *, struct vm_area_struct *);
ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
void (*splice_eof)(struct socket *);
int (*set_peek_off)(struct sock *, int);
int (*peek_len)(struct socket *);
int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t);
int (*read_skb)(struct sock *, skb_read_actor_t);
int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t);
int (*set_rcvlowat)(struct sock *, int);
};
struct ubuf_info;
struct msghdr {
void *msg_name;
int msg_namelen;
int msg_inq;
struct iov_iter msg_iter;
union {
void *msg_control;
void __attribute__((btf_type_tag("user"))) *msg_control_user;
};
bool msg_control_is_user: 1;
bool msg_get_inq: 1;
unsigned int msg_flags;
__kernel_size_t msg_controllen;
struct kiocb *msg_iocb;
struct ubuf_info *msg_ubuf;
int (*sg_from_iter)(struct sock *, struct sk_buff *, struct iov_iter *, size_t);
};
struct ubuf_info {
void (*callback)(struct sk_buff *, struct ubuf_info *, bool);
refcount_t refcnt;
u8 flags;
};
enum nl80211_band {
NL80211_BAND_2GHZ = 0,
NL80211_BAND_5GHZ = 1,
NL80211_BAND_60GHZ = 2,
NL80211_BAND_6GHZ = 3,
NL80211_BAND_S1GHZ = 4,
NL80211_BAND_LC = 5,
NUM_NL80211_BANDS = 6,
};
struct cfg80211_bss_select_adjust {
enum nl80211_band band;
s8 delta;
};
struct cfg80211_ssid;
struct cfg80211_match_set;
struct cfg80211_sched_scan_plan;
struct cfg80211_sched_scan_request {
u64 reqid;
struct cfg80211_ssid *ssids;
int n_ssids;
u32 n_channels;
const u8 *ie;
size_t ie_len;
u32 flags;
struct cfg80211_match_set *match_sets;
int n_match_sets;
s32 min_rssi_thold;
u32 delay;
struct cfg80211_sched_scan_plan *scan_plans;
int n_scan_plans;
u8 mac_addr[6];
u8 mac_addr_mask[6];
bool relative_rssi_set;
s8 relative_rssi;
struct cfg80211_bss_select_adjust rssi_adjust;
struct wiphy *wiphy;
struct net_device *dev;
unsigned long scan_start;
bool report_results;
struct callback_head callback_head;
u32 owner_nlportid;
bool nl_owner_dead;
struct list_head list;
struct ieee80211_channel *channels[0];
};
struct cfg80211_ssid {
u8 ssid[32];
u8 ssid_len;
};
struct cfg80211_match_set {
struct cfg80211_ssid ssid;
u8 bssid[6];
s32 rssi_thold;
};
struct cfg80211_sched_scan_plan {
u32 interval;
u32 iterations;
};
enum nl80211_dfs_state {
NL80211_DFS_USABLE = 0,
NL80211_DFS_UNAVAILABLE = 1,
NL80211_DFS_AVAILABLE = 2,
};
struct ieee80211_channel {
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
u16 hw_value;
u32 flags;
int max_antenna_gain;
int max_power;
int max_reg_power;
bool beacon_found;
u32 orig_flags;
int orig_mag;
int orig_mpwr;
enum nl80211_dfs_state dfs_state;
unsigned long dfs_state_entered;
unsigned int dfs_cac_ms;
s8 psd;
};
struct wiphy_iftype_ext_capab {
enum nl80211_iftype iftype;
const u8 *extended_capabilities;
const u8 *extended_capabilities_mask;
u8 extended_capabilities_len;
u16 eml_capabilities;
u16 mld_capa_and_ops;
};
struct ieee80211_mcs_info {
u8 rx_mask[10];
__le16 rx_highest;
u8 tx_params;
u8 reserved[3];
};
struct ieee80211_sta_ht_cap {
u16 cap;
bool ht_supported;
u8 ampdu_factor;
u8 ampdu_density;
struct ieee80211_mcs_info mcs;
short: 0;
} __attribute__((packed));
struct ieee80211_vht_mcs_info {
__le16 rx_mcs_map;
__le16 rx_highest;
__le16 tx_mcs_map;
__le16 tx_highest;
};
struct ieee80211_sta_vht_cap {
bool vht_supported;
u32 cap;
struct ieee80211_vht_mcs_info vht_mcs;
};
struct ieee80211_sta_s1g_cap {
bool s1g;
u8 cap[10];
u8 nss_mcs[5];
};
struct ieee80211_rate;
struct ieee80211_sband_iftype_data;
struct ieee80211_supported_band {
struct ieee80211_channel *channels;
struct ieee80211_rate *bitrates;
enum nl80211_band band;
int n_channels;
int n_bitrates;
struct ieee80211_sta_ht_cap ht_cap;
struct ieee80211_sta_vht_cap vht_cap;
struct ieee80211_sta_s1g_cap s1g_cap;
struct ieee80211_edmg edmg_cap;
u16 n_iftype_data;
const struct ieee80211_sband_iftype_data *iftype_data;
};
struct ieee80211_rate {
u32 flags;
u16 bitrate;
u16 hw_value;
u16 hw_value_short;
};
struct ieee80211_he_cap_elem {
u8 mac_cap_info[6];
u8 phy_cap_info[11];
};
struct ieee80211_he_mcs_nss_supp {
__le16 rx_mcs_80;
__le16 tx_mcs_80;
__le16 rx_mcs_160;
__le16 tx_mcs_160;
__le16 rx_mcs_80p80;
__le16 tx_mcs_80p80;
};
struct ieee80211_sta_he_cap {
bool has_he;
struct ieee80211_he_cap_elem he_cap_elem;
struct ieee80211_he_mcs_nss_supp he_mcs_nss_supp;
u8 ppe_thres[25];
} __attribute__((packed));
struct ieee80211_he_6ghz_capa {
__le16 capa;
};
struct ieee80211_eht_cap_elem_fixed {
u8 mac_cap_info[2];
u8 phy_cap_info[9];
};
struct ieee80211_eht_mcs_nss_supp_20mhz_only {
union {
struct {
u8 rx_tx_mcs7_max_nss;
u8 rx_tx_mcs9_max_nss;
u8 rx_tx_mcs11_max_nss;
u8 rx_tx_mcs13_max_nss;
};
u8 rx_tx_max_nss[4];
};
};
struct ieee80211_eht_mcs_nss_supp_bw {
union {
struct {
u8 rx_tx_mcs9_max_nss;
u8 rx_tx_mcs11_max_nss;
u8 rx_tx_mcs13_max_nss;
};
u8 rx_tx_max_nss[3];
};
};
struct ieee80211_eht_mcs_nss_supp {
union {
struct ieee80211_eht_mcs_nss_supp_20mhz_only only_20mhz;
struct {
struct ieee80211_eht_mcs_nss_supp_bw _80;
struct ieee80211_eht_mcs_nss_supp_bw _160;
struct ieee80211_eht_mcs_nss_supp_bw _320;
} bw;
};
};
struct ieee80211_sta_eht_cap {
bool has_eht;
struct ieee80211_eht_cap_elem_fixed eht_cap_elem;
struct ieee80211_eht_mcs_nss_supp eht_mcs_nss_supp;
u8 eht_ppe_thres[32];
};
struct ieee80211_sband_iftype_data {
u16 types_mask;
struct ieee80211_sta_he_cap he_cap;
struct ieee80211_he_6ghz_capa he_6ghz_capa;
struct ieee80211_sta_eht_cap eht_cap;
struct {
const u8 *data;
unsigned int len;
} vendor_elems;
} __attribute__((packed));
enum nl80211_reg_initiator {
NL80211_REGDOM_SET_BY_CORE = 0,
NL80211_REGDOM_SET_BY_USER = 1,
NL80211_REGDOM_SET_BY_DRIVER = 2,
NL80211_REGDOM_SET_BY_COUNTRY_IE = 3,
};
enum nl80211_user_reg_hint_type {
NL80211_USER_REG_HINT_USER = 0,
NL80211_USER_REG_HINT_CELL_BASE = 1,
NL80211_USER_REG_HINT_INDOOR = 2,
};
enum nl80211_dfs_regions {
NL80211_DFS_UNSET = 0,
NL80211_DFS_FCC = 1,
NL80211_DFS_ETSI = 2,
NL80211_DFS_JP = 3,
};
enum environment_cap {
ENVIRON_ANY = 0,
ENVIRON_INDOOR = 1,
ENVIRON_OUTDOOR = 2,
};
struct regulatory_request {
struct callback_head callback_head;
int wiphy_idx;
enum nl80211_reg_initiator initiator;
enum nl80211_user_reg_hint_type user_reg_hint_type;
char alpha2[3];
enum nl80211_dfs_regions dfs_region;
bool intersect;
bool processed;
enum environment_cap country_ie_env;
struct list_head list;
};
struct ieee80211_freq_range {
u32 start_freq_khz;
u32 end_freq_khz;
u32 max_bandwidth_khz;
};
struct ieee80211_power_rule {
u32 max_antenna_gain;
u32 max_eirp;
};
struct ieee80211_wmm_ac {
u16 cw_min;
u16 cw_max;
u16 cot;
u8 aifsn;
};
struct ieee80211_wmm_rule {
struct ieee80211_wmm_ac client[4];
struct ieee80211_wmm_ac ap[4];
};
struct ieee80211_reg_rule {
struct ieee80211_freq_range freq_range;
struct ieee80211_power_rule power_rule;
struct ieee80211_wmm_rule wmm_rule;
u32 flags;
u32 dfs_cac_ms;
bool has_wmm;
s8 psd;
};
struct ieee80211_regdomain {
struct callback_head callback_head;
u32 n_reg_rules;
char alpha2[3];
enum nl80211_dfs_regions dfs_region;
struct ieee80211_reg_rule reg_rules[0];
};
struct ieee80211_ht_cap {
__le16 cap_info;
u8 ampdu_params_info;
struct ieee80211_mcs_info mcs;
__le16 extended_ht_cap_info;
__le32 tx_BF_cap_info;
u8 antenna_selection_info;
} __attribute__((packed));
struct ieee80211_vht_cap {
__le32 vht_cap_info;
struct ieee80211_vht_mcs_info supp_mcs;
};
struct wiphy_coalesce_support {
int n_rules;
int max_delay;
int n_patterns;
int pattern_max_len;
int pattern_min_len;
int max_pkt_offset;
};
struct nl80211_vendor_cmd_info {
__u32 vendor_id;
__u32 subcmd;
};
struct wiphy_vendor_command {
struct nl80211_vendor_cmd_info info;
u32 flags;
int (*doit)(struct wiphy *, struct wireless_dev *, const void *, int);
int (*dumpit)(struct wiphy *, struct wireless_dev *, struct sk_buff *, const void *, int, unsigned long *);
const struct nla_policy *policy;
unsigned int maxattr;
};
struct cfg80211_pmsr_capabilities {
unsigned int max_peers;
u8 report_ap_tsf: 1;
u8 randomize_mac_addr: 1;
struct {
u32 preambles;
u32 bandwidths;
s8 max_bursts_exponent;
u8 max_ftms_per_burst;
u8 supported: 1;
u8 asap: 1;
u8 non_asap: 1;
u8 request_lci: 1;
u8 request_civicloc: 1;
u8 trigger_based: 1;
u8 non_trigger_based: 1;
} ftm;
};
enum nl80211_sar_type {
NL80211_SAR_TYPE_POWER = 0,
NUM_NL80211_SAR_TYPE = 1,
};
struct cfg80211_sar_freq_ranges;
struct cfg80211_sar_capa {
enum nl80211_sar_type type;
u32 num_freq_ranges;
const struct cfg80211_sar_freq_ranges *freq_ranges;
};
struct cfg80211_sar_freq_ranges {
u32 start_freq;
u32 end_freq;
};
enum nl80211_cqm_rssi_threshold_event {
NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0,
NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 1,
NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 2,
};
struct cfg80211_cqm_config {
struct callback_head callback_head;
u32 rssi_hyst;
s32 last_rssi_event_value;
enum nl80211_cqm_rssi_threshold_event last_rssi_event_type;
bool use_range_api;
int n_rssi_thresholds;
s32 rssi_thresholds[0];
};
enum iwl_device_family {
IWL_DEVICE_FAMILY_UNDEFINED = 0,
IWL_DEVICE_FAMILY_1000 = 1,
IWL_DEVICE_FAMILY_100 = 2,
IWL_DEVICE_FAMILY_2000 = 3,
IWL_DEVICE_FAMILY_2030 = 4,
IWL_DEVICE_FAMILY_105 = 5,
IWL_DEVICE_FAMILY_135 = 6,
IWL_DEVICE_FAMILY_5000 = 7,
IWL_DEVICE_FAMILY_5150 = 8,
IWL_DEVICE_FAMILY_6000 = 9,
IWL_DEVICE_FAMILY_6000i = 10,
IWL_DEVICE_FAMILY_6005 = 11,
IWL_DEVICE_FAMILY_6030 = 12,
IWL_DEVICE_FAMILY_6050 = 13,
IWL_DEVICE_FAMILY_6150 = 14,
IWL_DEVICE_FAMILY_7000 = 15,
IWL_DEVICE_FAMILY_8000 = 16,
IWL_DEVICE_FAMILY_9000 = 17,
IWL_DEVICE_FAMILY_22000 = 18,
IWL_DEVICE_FAMILY_AX210 = 19,
IWL_DEVICE_FAMILY_BZ = 20,
IWL_DEVICE_FAMILY_SC = 21,
};
enum iwl_led_mode {
IWL_LED_DEFAULT = 0,
IWL_LED_RF_STATE = 1,
IWL_LED_BLINK = 2,
IWL_LED_DISABLE = 3,
};
enum iwl_nvm_type {
IWL_NVM = 0,
IWL_NVM_EXT = 1,
IWL_NVM_SDP = 2,
};
enum iwl_fw_type {
IWL_FW_DVM = 0,
IWL_FW_MVM = 1,
};
enum iwl_fw_ini_time_point {
IWL_FW_INI_TIME_POINT_INVALID = 0,
IWL_FW_INI_TIME_POINT_EARLY = 1,
IWL_FW_INI_TIME_POINT_AFTER_ALIVE = 2,
IWL_FW_INI_TIME_POINT_POST_INIT = 3,
IWL_FW_INI_TIME_POINT_FW_ASSERT = 4,
IWL_FW_INI_TIME_POINT_FW_HW_ERROR = 5,
IWL_FW_INI_TIME_POINT_FW_TFD_Q_HANG = 6,
IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFICATION = 7,
IWL_FW_INI_TIME_POINT_FW_RSP_OR_NOTIF = 8,
IWL_FW_INI_TIME_POINT_USER_TRIGGER = 9,
IWL_FW_INI_TIME_POINT_PERIODIC = 10,
IWL_FW_INI_TIME_POINT_RESERVED = 11,
IWL_FW_INI_TIME_POINT_HOST_ASSERT = 12,
IWL_FW_INI_TIME_POINT_HOST_ALIVE_TIMEOUT = 13,
IWL_FW_INI_TIME_POINT_HOST_DEVICE_ENABLE = 14,
IWL_FW_INI_TIME_POINT_HOST_DEVICE_DISABLE = 15,
IWL_FW_INI_TIME_POINT_HOST_D3_START = 16,
IWL_FW_INI_TIME_POINT_HOST_D3_END = 17,
IWL_FW_INI_TIME_POINT_MISSED_BEACONS = 18,
IWL_FW_INI_TIME_POINT_ASSOC_FAILED = 19,
IWL_FW_INI_TIME_POINT_TX_FAILED = 20,
IWL_FW_INI_TIME_POINT_TX_WFD_ACTION_FRAME_FAILED = 21,
IWL_FW_INI_TIME_POINT_TX_LATENCY_THRESHOLD = 22,
IWL_FW_INI_TIME_POINT_HANG_OCCURRED = 23,
IWL_FW_INI_TIME_POINT_EAPOL_FAILED = 24,
IWL_FW_INI_TIME_POINT_FAKE_TX = 25,
IWL_FW_INI_TIME_POINT_DEASSOC = 26,
IWL_FW_INI_TIME_POINT_NUM = 27,
};
enum iwl_amsdu_size {
IWL_AMSDU_DEF = 0,
IWL_AMSDU_4K = 1,
IWL_AMSDU_8K = 2,
IWL_AMSDU_12K = 3,
IWL_AMSDU_2K = 4,
};
enum iwl_trans_state {
IWL_TRANS_NO_FW = 0,
IWL_TRANS_FW_STARTED = 1,
IWL_TRANS_FW_ALIVE = 2,
};
enum iwl_ini_cfg_state {
IWL_INI_CFG_STATE_NOT_LOADED = 0,
IWL_INI_CFG_STATE_LOADED = 1,
IWL_INI_CFG_STATE_CORRUPTED = 2,
};
enum iwl_fw_ini_buffer_location {
IWL_FW_INI_LOCATION_INVALID = 0,
IWL_FW_INI_LOCATION_SRAM_PATH = 1,
IWL_FW_INI_LOCATION_DRAM_PATH = 2,
IWL_FW_INI_LOCATION_NPK_PATH = 3,
IWL_FW_INI_LOCATION_NUM = 4,
};
enum iwl_plat_pm_mode {
IWL_PLAT_PM_MODE_DISABLED = 0,
IWL_PLAT_PM_MODE_D3 = 1,
};
enum ieee80211_smps_mode {
IEEE80211_SMPS_AUTOMATIC = 0,
IEEE80211_SMPS_OFF = 1,
IEEE80211_SMPS_STATIC = 2,
IEEE80211_SMPS_DYNAMIC = 3,
IEEE80211_SMPS_NUM_MODES = 4,
};
enum nl80211_tx_power_setting {
NL80211_TX_POWER_AUTOMATIC = 0,
NL80211_TX_POWER_LIMITED = 1,
NL80211_TX_POWER_FIXED = 2,
};
enum nl80211_txrate_gi {
NL80211_TXRATE_DEFAULT_GI = 0,
NL80211_TXRATE_FORCE_SGI = 1,
NL80211_TXRATE_FORCE_LGI = 2,
};
enum nl80211_he_gi {
NL80211_RATE_INFO_HE_GI_0_8 = 0,
NL80211_RATE_INFO_HE_GI_1_6 = 1,
NL80211_RATE_INFO_HE_GI_3_2 = 2,
};
enum nl80211_he_ltf {
NL80211_RATE_INFO_HE_1XLTF = 0,
NL80211_RATE_INFO_HE_2XLTF = 1,
NL80211_RATE_INFO_HE_4XLTF = 2,
};
enum ieee80211_ap_reg_power {
IEEE80211_REG_UNSET_AP = 0,
IEEE80211_REG_LPI_AP = 1,
IEEE80211_REG_SP_AP = 2,
IEEE80211_REG_VLP_AP = 3,
IEEE80211_REG_AP_POWER_AFTER_LAST = 4,
IEEE80211_REG_AP_POWER_MAX = 3,
};
enum ieee80211_sta_rx_bandwidth {
IEEE80211_STA_RX_BW_20 = 0,
IEEE80211_STA_RX_BW_40 = 1,
IEEE80211_STA_RX_BW_80 = 2,
IEEE80211_STA_RX_BW_160 = 3,
IEEE80211_STA_RX_BW_320 = 4,
};
enum iwl_scan_type {
IWL_SCAN_NORMAL = 0,
IWL_SCAN_RADIO_RESET = 1,
};
enum iwl_rxon_context_id {
IWL_RXON_CTX_BSS = 0,
IWL_RXON_CTX_PAN = 1,
NUM_IWL_RXON_CTX = 2,
};
enum iwl_tt_state {
IWL_TI_0 = 0,
IWL_TI_1 = 1,
IWL_TI_2 = 2,
IWL_TI_CT_KILL = 3,
IWL_TI_STATE_MAX = 4,
};
enum iwl_antenna_ok {
IWL_ANT_OK_NONE = 0,
IWL_ANT_OK_SINGLE = 1,
IWL_ANT_OK_MULTI = 2,
};
enum iwl_agg_state {
IWL_AGG_OFF = 0,
IWL_AGG_STARTING = 1,
IWL_AGG_ON = 2,
IWL_EMPTYING_HW_QUEUE_ADDBA = 3,
IWL_EMPTYING_HW_QUEUE_DELBA = 4,
};
enum iwl_ucode_type {
IWL_UCODE_REGULAR = 0,
IWL_UCODE_INIT = 1,
IWL_UCODE_WOWLAN = 2,
IWL_UCODE_REGULAR_USNIFFER = 3,
IWL_UCODE_TYPE_MAX = 4,
};
enum {
REPLY_ALIVE = 1,
REPLY_ERROR = 2,
REPLY_ECHO = 3,
REPLY_RXON = 16,
REPLY_RXON_ASSOC = 17,
REPLY_QOS_PARAM = 19,
REPLY_RXON_TIMING = 20,
REPLY_ADD_STA = 24,
REPLY_REMOVE_STA = 25,
REPLY_REMOVE_ALL_STA = 26,
REPLY_TXFIFO_FLUSH = 30,
REPLY_WEPKEY = 32,
REPLY_TX = 28,
REPLY_LEDS_CMD = 72,
REPLY_TX_LINK_QUALITY_CMD = 78,
COEX_PRIORITY_TABLE_CMD = 90,
COEX_MEDIUM_NOTIFICATION = 91,
COEX_EVENT_CMD = 92,
TEMPERATURE_NOTIFICATION = 98,
CALIBRATION_CFG_CMD = 101,
CALIBRATION_RES_NOTIFICATION = 102,
CALIBRATION_COMPLETE_NOTIFICATION = 103,
REPLY_QUIET_CMD = 113,
REPLY_CHANNEL_SWITCH = 114,
CHANNEL_SWITCH_NOTIFICATION = 115,
REPLY_SPECTRUM_MEASUREMENT_CMD = 116,
SPECTRUM_MEASURE_NOTIFICATION = 117,
POWER_TABLE_CMD = 119,
PM_SLEEP_NOTIFICATION = 122,
PM_DEBUG_STATISTIC_NOTIFIC = 123,
REPLY_SCAN_CMD = 128,
REPLY_SCAN_ABORT_CMD = 129,
SCAN_START_NOTIFICATION = 130,
SCAN_RESULTS_NOTIFICATION = 131,
SCAN_COMPLETE_NOTIFICATION = 132,
BEACON_NOTIFICATION = 144,
REPLY_TX_BEACON = 145,
WHO_IS_AWAKE_NOTIFICATION = 148,
REPLY_TX_POWER_DBM_CMD = 149,
QUIET_NOTIFICATION = 150,
REPLY_TX_PWR_TABLE_CMD = 151,
REPLY_TX_POWER_DBM_CMD_V1 = 152,
TX_ANT_CONFIGURATION_CMD = 152,
MEASURE_ABORT_NOTIFICATION = 153,
REPLY_BT_CONFIG = 155,
REPLY_STATISTICS_CMD = 156,
STATISTICS_NOTIFICATION = 157,
REPLY_CARD_STATE_CMD = 160,
CARD_STATE_NOTIFICATION = 161,
MISSED_BEACONS_NOTIFICATION = 162,
REPLY_CT_KILL_CONFIG_CMD = 164,
SENSITIVITY_CMD = 168,
REPLY_PHY_CALIBRATION_CMD = 176,
REPLY_RX_PHY_CMD = 192,
REPLY_RX_MPDU_CMD = 193,
REPLY_RX = 195,
REPLY_COMPRESSED_BA = 197,
REPLY_BT_COEX_PRIO_TABLE = 204,
REPLY_BT_COEX_PROT_ENV = 205,
REPLY_BT_COEX_PROFILE_NOTIF = 206,
REPLY_WIPAN_PARAMS = 178,
REPLY_WIPAN_RXON = 179,
REPLY_WIPAN_RXON_TIMING = 180,
REPLY_WIPAN_RXON_ASSOC = 182,
REPLY_WIPAN_QOS_PARAM = 183,
REPLY_WIPAN_WEPKEY = 184,
REPLY_WIPAN_P2P_CHANNEL_SWITCH = 185,
REPLY_WIPAN_NOA_NOTIFICATION = 188,
REPLY_WIPAN_DEACTIVATION_COMPLETE = 189,
REPLY_WOWLAN_PATTERNS = 224,
REPLY_WOWLAN_WAKEUP_FILTER = 225,
REPLY_WOWLAN_TSC_RSC_PARAMS = 226,
REPLY_WOWLAN_TKIP_PARAMS = 227,
REPLY_WOWLAN_KEK_KCK_MATERIAL = 228,
REPLY_WOWLAN_GET_STATUS = 229,
REPLY_D3_CONFIG = 211,
REPLY_MAX = 255,
};
enum iwl_bt_coex_profile_traffic_load {
IWL_BT_COEX_TRAFFIC_LOAD_NONE = 0,
IWL_BT_COEX_TRAFFIC_LOAD_LOW = 1,
IWL_BT_COEX_TRAFFIC_LOAD_HIGH = 2,
IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS = 3,
};
enum ieee80211_eid {
WLAN_EID_SSID = 0,
WLAN_EID_SUPP_RATES = 1,
WLAN_EID_FH_PARAMS = 2,
WLAN_EID_DS_PARAMS = 3,
WLAN_EID_CF_PARAMS = 4,
WLAN_EID_TIM = 5,
WLAN_EID_IBSS_PARAMS = 6,
WLAN_EID_COUNTRY = 7,
WLAN_EID_REQUEST = 10,
WLAN_EID_QBSS_LOAD = 11,
WLAN_EID_EDCA_PARAM_SET = 12,
WLAN_EID_TSPEC = 13,
WLAN_EID_TCLAS = 14,
WLAN_EID_SCHEDULE = 15,
WLAN_EID_CHALLENGE = 16,
WLAN_EID_PWR_CONSTRAINT = 32,
WLAN_EID_PWR_CAPABILITY = 33,
WLAN_EID_TPC_REQUEST = 34,
WLAN_EID_TPC_REPORT = 35,
WLAN_EID_SUPPORTED_CHANNELS = 36,
WLAN_EID_CHANNEL_SWITCH = 37,
WLAN_EID_MEASURE_REQUEST = 38,
WLAN_EID_MEASURE_REPORT = 39,
WLAN_EID_QUIET = 40,
WLAN_EID_IBSS_DFS = 41,
WLAN_EID_ERP_INFO = 42,
WLAN_EID_TS_DELAY = 43,
WLAN_EID_TCLAS_PROCESSING = 44,
WLAN_EID_HT_CAPABILITY = 45,
WLAN_EID_QOS_CAPA = 46,
WLAN_EID_RSN = 48,
WLAN_EID_802_15_COEX = 49,
WLAN_EID_EXT_SUPP_RATES = 50,
WLAN_EID_AP_CHAN_REPORT = 51,
WLAN_EID_NEIGHBOR_REPORT = 52,
WLAN_EID_RCPI = 53,
WLAN_EID_MOBILITY_DOMAIN = 54,
WLAN_EID_FAST_BSS_TRANSITION = 55,
WLAN_EID_TIMEOUT_INTERVAL = 56,
WLAN_EID_RIC_DATA = 57,
WLAN_EID_DSE_REGISTERED_LOCATION = 58,
WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59,
WLAN_EID_EXT_CHANSWITCH_ANN = 60,
WLAN_EID_HT_OPERATION = 61,
WLAN_EID_SECONDARY_CHANNEL_OFFSET = 62,
WLAN_EID_BSS_AVG_ACCESS_DELAY = 63,
WLAN_EID_ANTENNA_INFO = 64,
WLAN_EID_RSNI = 65,
WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66,
WLAN_EID_BSS_AVAILABLE_CAPACITY = 67,
WLAN_EID_BSS_AC_ACCESS_DELAY = 68,
WLAN_EID_TIME_ADVERTISEMENT = 69,
WLAN_EID_RRM_ENABLED_CAPABILITIES = 70,
WLAN_EID_MULTIPLE_BSSID = 71,
WLAN_EID_BSS_COEX_2040 = 72,
WLAN_EID_BSS_INTOLERANT_CHL_REPORT = 73,
WLAN_EID_OVERLAP_BSS_SCAN_PARAM = 74,
WLAN_EID_RIC_DESCRIPTOR = 75,
WLAN_EID_MMIE = 76,
WLAN_EID_ASSOC_COMEBACK_TIME = 77,
WLAN_EID_EVENT_REQUEST = 78,
WLAN_EID_EVENT_REPORT = 79,
WLAN_EID_DIAGNOSTIC_REQUEST = 80,
WLAN_EID_DIAGNOSTIC_REPORT = 81,
WLAN_EID_LOCATION_PARAMS = 82,
WLAN_EID_NON_TX_BSSID_CAP = 83,
WLAN_EID_SSID_LIST = 84,
WLAN_EID_MULTI_BSSID_IDX = 85,
WLAN_EID_FMS_DESCRIPTOR = 86,
WLAN_EID_FMS_REQUEST = 87,
WLAN_EID_FMS_RESPONSE = 88,
WLAN_EID_QOS_TRAFFIC_CAPA = 89,
WLAN_EID_BSS_MAX_IDLE_PERIOD = 90,
WLAN_EID_TSF_REQUEST = 91,
WLAN_EID_TSF_RESPOSNE = 92,
WLAN_EID_WNM_SLEEP_MODE = 93,
WLAN_EID_TIM_BCAST_REQ = 94,
WLAN_EID_TIM_BCAST_RESP = 95,
WLAN_EID_COLL_IF_REPORT = 96,
WLAN_EID_CHANNEL_USAGE = 97,
WLAN_EID_TIME_ZONE = 98,
WLAN_EID_DMS_REQUEST = 99,
WLAN_EID_DMS_RESPONSE = 100,
WLAN_EID_LINK_ID = 101,
WLAN_EID_WAKEUP_SCHEDUL = 102,
WLAN_EID_CHAN_SWITCH_TIMING = 104,
WLAN_EID_PTI_CONTROL = 105,
WLAN_EID_PU_BUFFER_STATUS = 106,
WLAN_EID_INTERWORKING = 107,
WLAN_EID_ADVERTISEMENT_PROTOCOL = 108,
WLAN_EID_EXPEDITED_BW_REQ = 109,
WLAN_EID_QOS_MAP_SET = 110,
WLAN_EID_ROAMING_CONSORTIUM = 111,
WLAN_EID_EMERGENCY_ALERT = 112,
WLAN_EID_MESH_CONFIG = 113,
WLAN_EID_MESH_ID = 114,
WLAN_EID_LINK_METRIC_REPORT = 115,
WLAN_EID_CONGESTION_NOTIFICATION = 116,
WLAN_EID_PEER_MGMT = 117,
WLAN_EID_CHAN_SWITCH_PARAM = 118,
WLAN_EID_MESH_AWAKE_WINDOW = 119,
WLAN_EID_BEACON_TIMING = 120,
WLAN_EID_MCCAOP_SETUP_REQ = 121,
WLAN_EID_MCCAOP_SETUP_RESP = 122,
WLAN_EID_MCCAOP_ADVERT = 123,
WLAN_EID_MCCAOP_TEARDOWN = 124,
WLAN_EID_GANN = 125,
WLAN_EID_RANN = 126,
WLAN_EID_EXT_CAPABILITY = 127,
WLAN_EID_PREQ = 130,
WLAN_EID_PREP = 131,
WLAN_EID_PERR = 132,
WLAN_EID_PXU = 137,
WLAN_EID_PXUC = 138,
WLAN_EID_AUTH_MESH_PEER_EXCH = 139,
WLAN_EID_MIC = 140,
WLAN_EID_DESTINATION_URI = 141,
WLAN_EID_UAPSD_COEX = 142,
WLAN_EID_WAKEUP_SCHEDULE = 143,
WLAN_EID_EXT_SCHEDULE = 144,
WLAN_EID_STA_AVAILABILITY = 145,
WLAN_EID_DMG_TSPEC = 146,
WLAN_EID_DMG_AT = 147,
WLAN_EID_DMG_CAP = 148,
WLAN_EID_CISCO_VENDOR_SPECIFIC = 150,
WLAN_EID_DMG_OPERATION = 151,
WLAN_EID_DMG_BSS_PARAM_CHANGE = 152,
WLAN_EID_DMG_BEAM_REFINEMENT = 153,
WLAN_EID_CHANNEL_MEASURE_FEEDBACK = 154,
WLAN_EID_AWAKE_WINDOW = 157,
WLAN_EID_MULTI_BAND = 158,
WLAN_EID_ADDBA_EXT = 159,
WLAN_EID_NEXT_PCP_LIST = 160,
WLAN_EID_PCP_HANDOVER = 161,
WLAN_EID_DMG_LINK_MARGIN = 162,
WLAN_EID_SWITCHING_STREAM = 163,
WLAN_EID_SESSION_TRANSITION = 164,
WLAN_EID_DYN_TONE_PAIRING_REPORT = 165,
WLAN_EID_CLUSTER_REPORT = 166,
WLAN_EID_RELAY_CAP = 167,
WLAN_EID_RELAY_XFER_PARAM_SET = 168,
WLAN_EID_BEAM_LINK_MAINT = 169,
WLAN_EID_MULTIPLE_MAC_ADDR = 170,
WLAN_EID_U_PID = 171,
WLAN_EID_DMG_LINK_ADAPT_ACK = 172,
WLAN_EID_MCCAOP_ADV_OVERVIEW = 174,
WLAN_EID_QUIET_PERIOD_REQ = 175,
WLAN_EID_QUIET_PERIOD_RESP = 177,
WLAN_EID_EPAC_POLICY = 182,
WLAN_EID_CLISTER_TIME_OFF = 183,
WLAN_EID_INTER_AC_PRIO = 184,
WLAN_EID_SCS_DESCRIPTOR = 185,
WLAN_EID_QLOAD_REPORT = 186,
WLAN_EID_HCCA_TXOP_UPDATE_COUNT = 187,
WLAN_EID_HL_STREAM_ID = 188,
WLAN_EID_GCR_GROUP_ADDR = 189,
WLAN_EID_ANTENNA_SECTOR_ID_PATTERN = 190,
WLAN_EID_VHT_CAPABILITY = 191,
WLAN_EID_VHT_OPERATION = 192,
WLAN_EID_EXTENDED_BSS_LOAD = 193,
WLAN_EID_WIDE_BW_CHANNEL_SWITCH = 194,
WLAN_EID_TX_POWER_ENVELOPE = 195,
WLAN_EID_CHANNEL_SWITCH_WRAPPER = 196,
WLAN_EID_AID = 197,
WLAN_EID_QUIET_CHANNEL = 198,
WLAN_EID_OPMODE_NOTIF = 199,
WLAN_EID_REDUCED_NEIGHBOR_REPORT = 201,
WLAN_EID_AID_REQUEST = 210,
WLAN_EID_AID_RESPONSE = 211,
WLAN_EID_S1G_BCN_COMPAT = 213,
WLAN_EID_S1G_SHORT_BCN_INTERVAL = 214,
WLAN_EID_S1G_TWT = 216,
WLAN_EID_S1G_CAPABILITIES = 217,
WLAN_EID_VENDOR_SPECIFIC = 221,
WLAN_EID_QOS_PARAMETER = 222,
WLAN_EID_S1G_OPERATION = 232,
WLAN_EID_CAG_NUMBER = 237,
WLAN_EID_AP_CSN = 239,
WLAN_EID_FILS_INDICATION = 240,
WLAN_EID_DILS = 241,
WLAN_EID_FRAGMENT = 242,
WLAN_EID_RSNX = 244,
WLAN_EID_EXTENSION = 255,
};
enum {
CHANNEL_MODE_LEGACY = 0,
CHANNEL_MODE_PURE_40 = 1,
CHANNEL_MODE_MIXED = 2,
CHANNEL_MODE_RESERVED = 3,
};
enum {
IWL_RATE_6M_PLCP = 13,
IWL_RATE_9M_PLCP = 15,
IWL_RATE_12M_PLCP = 5,
IWL_RATE_18M_PLCP = 7,
IWL_RATE_24M_PLCP = 9,
IWL_RATE_36M_PLCP = 11,
IWL_RATE_48M_PLCP = 1,
IWL_RATE_54M_PLCP = 3,
IWL_RATE_60M_PLCP = 3,
IWL_RATE_1M_PLCP = 10,
IWL_RATE_2M_PLCP = 20,
IWL_RATE_5M_PLCP = 55,
IWL_RATE_11M_PLCP = 110,
};
enum ieee80211_conf_flags {
IEEE80211_CONF_MONITOR = 1,
IEEE80211_CONF_PS = 2,
IEEE80211_CONF_IDLE = 4,
IEEE80211_CONF_OFFCHANNEL = 8,
};
enum iwl_hcmd_dataflag {
IWL_HCMD_DFL_NOCOPY = 1,
IWL_HCMD_DFL_DUP = 2,
};
enum iwl_err_mode {
IWL_ERR_MODE_REGULAR = 0,
IWL_ERR_MODE_RFKILL = 1,
IWL_ERR_MODE_TRACE_ONLY = 2,
IWL_ERR_MODE_RATELIMIT = 3,
};
enum ieee80211_channel_flags {
IEEE80211_CHAN_DISABLED = 1,
IEEE80211_CHAN_NO_IR = 2,
IEEE80211_CHAN_PSD = 4,
IEEE80211_CHAN_RADAR = 8,
IEEE80211_CHAN_NO_HT40PLUS = 16,
IEEE80211_CHAN_NO_HT40MINUS = 32,
IEEE80211_CHAN_NO_OFDM = 64,
IEEE80211_CHAN_NO_80MHZ = 128,
IEEE80211_CHAN_NO_160MHZ = 256,
IEEE80211_CHAN_INDOOR_ONLY = 512,
IEEE80211_CHAN_IR_CONCURRENT = 1024,
IEEE80211_CHAN_NO_20MHZ = 2048,
IEEE80211_CHAN_NO_10MHZ = 4096,
IEEE80211_CHAN_NO_HE = 8192,
IEEE80211_CHAN_1MHZ = 16384,
IEEE80211_CHAN_2MHZ = 32768,
IEEE80211_CHAN_4MHZ = 65536,
IEEE80211_CHAN_8MHZ = 131072,
IEEE80211_CHAN_16MHZ = 262144,
IEEE80211_CHAN_NO_320MHZ = 524288,
IEEE80211_CHAN_NO_EHT = 1048576,
IEEE80211_CHAN_DFS_CONCURRENT = 2097152,
IEEE80211_CHAN_NO_6GHZ_VLP_CLIENT = 4194304,
IEEE80211_CHAN_NO_6GHZ_AFC_CLIENT = 8388608,
IEEE80211_CHAN_CAN_MONITOR = 16777216,
};
enum {
RXON_DEV_TYPE_AP = 1,
RXON_DEV_TYPE_ESS = 3,
RXON_DEV_TYPE_IBSS = 4,
RXON_DEV_TYPE_SNIFFER = 6,
RXON_DEV_TYPE_CP = 7,
RXON_DEV_TYPE_2STA = 8,
RXON_DEV_TYPE_P2P = 9,
};
struct ieee80211_ext_chansw_ie {
u8 mode;
u8 new_operating_class;
u8 new_ch_num;
u8 count;
};
struct ieee80211_msrment_ie {
u8 token;
u8 mode;
u8 type;
u8 request[0];
};
struct ieee80211_tpc_report_ie {
u8 tx_power;
u8 link_margin;
};
struct ieee80211_mgmt {
__le16 frame_control;
__le16 duration;
u8 da[6];
u8 sa[6];
u8 bssid[6];
__le16 seq_ctrl;
union {
struct {
__le16 auth_alg;
__le16 auth_transaction;
__le16 status_code;
u8 variable[0];
} auth;
struct {
__le16 reason_code;
} deauth;
struct {
__le16 capab_info;
__le16 listen_interval;
u8 variable[0];
} assoc_req;
struct {
__le16 capab_info;
__le16 status_code;
__le16 aid;
u8 variable[0];
} assoc_resp;
struct {
__le16 capab_info;
__le16 status_code;
__le16 aid;
u8 variable[0];
} reassoc_resp;
struct {
__le16 capab_info;
__le16 status_code;
u8 variable[0];
} s1g_assoc_resp;
struct {
__le16 capab_info;
__le16 status_code;
u8 variable[0];
} s1g_reassoc_resp;
struct {
__le16 capab_info;
__le16 listen_interval;
u8 current_ap[6];
u8 variable[0];
} reassoc_req;
struct {
__le16 reason_code;
} disassoc;
struct {
__le64 timestamp;
__le16 beacon_int;
__le16 capab_info;
u8 variable[0];
} __attribute__((packed)) beacon;
struct {
struct {
struct {} __empty_variable;
u8 variable[0];
};
} probe_req;
struct {
__le64 timestamp;
__le16 beacon_int;
__le16 capab_info;
u8 variable[0];
} __attribute__((packed)) probe_resp;
struct {
u8 category;
union {
struct {
u8 action_code;
u8 dialog_token;
u8 status_code;
u8 variable[0];
} wme_action;
struct {
u8 action_code;
u8 variable[0];
} chan_switch;
struct {
u8 action_code;
struct ieee80211_ext_chansw_ie data;
u8 variable[0];
} ext_chan_switch;
struct {
u8 action_code;
u8 dialog_token;
u8 element_id;
u8 length;
struct ieee80211_msrment_ie msr_elem;
} measurement;
struct {
u8 action_code;
u8 dialog_token;
__le16 capab;
__le16 timeout;
__le16 start_seq_num;
u8 variable[0];
} addba_req;
struct {
u8 action_code;
u8 dialog_token;
__le16 status;
__le16 capab;
__le16 timeout;
} addba_resp;
struct {
u8 action_code;
__le16 params;
__le16 reason_code;
} __attribute__((packed)) delba;
struct {
u8 action_code;
u8 variable[0];
} self_prot;
struct {
u8 action_code;
u8 variable[0];
} mesh_action;
struct {
u8 action;
u8 trans_id[2];
} sa_query;
struct {
u8 action;
u8 smps_control;
} ht_smps;
struct {
u8 action_code;
u8 chanwidth;
} ht_notify_cw;
struct {
u8 action_code;
u8 dialog_token;
__le16 capability;
u8 variable[0];
} tdls_discover_resp;
struct {
u8 action_code;
u8 operating_mode;
} vht_opmode_notif;
struct {
u8 action_code;
u8 membership[8];
u8 position[16];
} vht_group_notif;
struct {
u8 action_code;
u8 dialog_token;
u8 tpc_elem_id;
u8 tpc_elem_length;
struct ieee80211_tpc_report_ie tpc;
} tpc_report;
struct {
u8 action_code;
u8 dialog_token;
u8 follow_up;
u8 tod[6];
u8 toa[6];
__le16 tod_error;
__le16 toa_error;
u8 variable[0];
} __attribute__((packed)) ftm;
struct {
u8 action_code;
u8 variable[0];
} s1g;
struct {
u8 action_code;
u8 dialog_token;
u8 follow_up;
u32 tod;
u32 toa;
u8 max_tod_error;
u8 max_toa_error;
} __attribute__((packed)) wnm_timing_msr;
struct {
u8 action_code;
u8 dialog_token;
u8 variable[0];
} ttlm_req;
struct {
u8 action_code;
u8 dialog_token;
u8 status_code;
u8 variable[0];
} ttlm_res;
struct {
u8 action_code;
} ttlm_tear_down;
} u;
} action;
struct {
struct {} __empty_body;
u8 body[0];
};
} u;
};
struct statistics_dbg {
__le32 burst_check;
__le32 burst_count;
__le32 wait_for_silence_timeout_cnt;
__le32 reserved[3];
};
struct statistics_div {
__le32 tx_on_a;
__le32 tx_on_b;
__le32 exec_time;
__le32 probe_time;
__le32 reserved1;
__le32 reserved2;
};
struct statistics_general_common {
__le32 temperature;
__le32 temperature_m;
struct statistics_dbg dbg;
__le32 sleep_time;
__le32 slots_out;
__le32 slots_idle;
__le32 ttl_timestamp;
struct statistics_div div;
__le32 rx_enable_counter;
__le32 num_of_sos_states;
};
struct statistics_rx_non_phy {
__le32 bogus_cts;
__le32 bogus_ack;
__le32 non_bssid_frames;
__le32 filtered_frames;
__le32 non_channel_beacons;
__le32 channel_beacons;
__le32 num_missed_bcon;
__le32 adc_rx_saturation_time;
__le32 ina_detection_search_time;
__le32 beacon_silence_rssi_a;
__le32 beacon_silence_rssi_b;
__le32 beacon_silence_rssi_c;
__le32 interference_data_flag;
__le32 channel_load;
__le32 dsp_false_alarms;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 beacon_rssi_c;
__le32 beacon_energy_a;
__le32 beacon_energy_b;
__le32 beacon_energy_c;
};
struct statistics_rx_phy {
__le32 ina_cnt;
__le32 fina_cnt;
__le32 plcp_err;
__le32 crc32_err;
__le32 overrun_err;
__le32 early_overrun_err;
__le32 crc32_good;
__le32 false_alarm_cnt;
__le32 fina_sync_err_cnt;
__le32 sfd_timeout;
__le32 fina_timeout;
__le32 unresponded_rts;
__le32 rxe_frame_limit_overrun;
__le32 sent_ack_cnt;
__le32 sent_cts_cnt;
__le32 sent_ba_rsp_cnt;
__le32 dsp_self_kill;
__le32 mh_format_err;
__le32 re_acq_main_rssi_sum;
__le32 reserved3;
};
struct statistics_rx_ht_phy {
__le32 plcp_err;
__le32 overrun_err;
__le32 early_overrun_err;
__le32 crc32_good;
__le32 crc32_err;
__le32 mh_format_err;
__le32 agg_crc32_good;
__le32 agg_mpdu_cnt;
__le32 agg_cnt;
__le32 unsupport_mcs;
};
struct statistics_tx_non_phy_agg {
__le32 ba_timeout;
__le32 ba_reschedule_frames;
__le32 scd_query_agg_frame_cnt;
__le32 scd_query_no_agg;
__le32 scd_query_agg;
__le32 scd_query_mismatch;
__le32 frame_not_ready;
__le32 underrun;
__le32 bt_prio_kill;
__le32 rx_ba_rsp_cnt;
};
struct statistics_tx_power {
u8 ant_a;
u8 ant_b;
u8 ant_c;
u8 reserved;
};
struct statistics_tx {
__le32 preamble_cnt;
__le32 rx_detected_cnt;
__le32 bt_prio_defer_cnt;
__le32 bt_prio_kill_cnt;
__le32 few_bytes_cnt;
__le32 cts_timeout;
__le32 ack_timeout;
__le32 expected_ack_cnt;
__le32 actual_ack_cnt;
__le32 dump_msdu_cnt;
__le32 burst_abort_next_frame_mismatch_cnt;
__le32 burst_abort_missing_next_frame_cnt;
__le32 cts_timeout_collision;
__le32 ack_or_ba_timeout_collision;
struct statistics_tx_non_phy_agg agg;
struct statistics_tx_power tx_power;
__le32 reserved1;
};
struct iwl_sensitivity_ranges;
struct iwl_hw_params {
u8 tx_chains_num;
u8 rx_chains_num;
bool use_rts_for_aggregation;
u32 ct_kill_threshold;
u32 ct_kill_exit_threshold;
const struct iwl_sensitivity_ranges *sens;
};
struct iwl_notif_wait_data {
struct list_head notif_waits;
spinlock_t notif_wait_lock;
wait_queue_head_t notif_waitq;
};
struct iwl_measurement_histogram {
__le32 ofdm[8];
__le32 cck[8];
};
struct iwl_spectrum_notification {
u8 id;
u8 token;
u8 channel_index;
u8 state;
__le32 start_time;
u8 band;
u8 channel;
u8 type;
u8 reserved1;
__le32 cca_ofdm;
__le32 cca_cck;
__le32 cca_time;
u8 basic_type;
u8 reserved2[3];
struct iwl_measurement_histogram histogram;
__le32 stop_time;
__le32 status;
};
struct iwl_rf_reset {
int reset_request_count;
int reset_success_count;
int reset_reject_count;
unsigned long last_reset_jiffies;
};
struct iwl_rxon_cmd {
u8 node_addr[6];
__le16 reserved1;
u8 bssid_addr[6];
__le16 reserved2;
u8 wlap_bssid_addr[6];
__le16 reserved3;
u8 dev_type;
u8 air_propagation;
__le16 rx_chain;
u8 ofdm_basic_rates;
u8 cck_basic_rates;
__le16 assoc_id;
__le32 flags;
__le32 filter_flags;
__le16 channel;
u8 ofdm_ht_single_stream_basic_rates;
u8 ofdm_ht_dual_stream_basic_rates;
u8 ofdm_ht_triple_stream_basic_rates;
u8 reserved5;
__le16 acquisition_data;
__le16 reserved6;
} __attribute__((packed));
struct iwl_rxon_time_cmd {
__le64 timestamp;
__le16 beacon_interval;
__le16 atim_window;
__le32 beacon_init_val;
__le16 listen_interval;
u8 dtim_period;
u8 delta_cp_bss_tbtts;
} __attribute__((packed));
struct iwl_ac_qos {
__le16 cw_min;
__le16 cw_max;
u8 aifsn;
u8 reserved1;
__le16 edca_txop;
};
struct iwl_qosparam_cmd {
__le32 qos_flags;
struct iwl_ac_qos ac[4];
};
struct iwl_qos_info {
int qos_active;
struct iwl_qosparam_cmd def_qos_parm;
};
struct iwl_wep_key {
u8 key_index;
u8 key_offset;
u8 reserved1[2];
u8 key_size;
u8 reserved2[3];
u8 key[16];
};
struct ieee80211_vif;
struct iwl_rxon_context {
struct ieee80211_vif *vif;
u8 mcast_queue;
u8 ac_to_queue[4];
u8 ac_to_fifo[4];
bool always_active;
bool is_active;
bool ht_need_multiple_chains;
enum iwl_rxon_context_id ctxid;
u32 interface_modes;
u32 exclusive_interface_modes;
u8 unused_devtype;
u8 ap_devtype;
u8 ibss_devtype;
u8 station_devtype;
const struct iwl_rxon_cmd active;
struct iwl_rxon_cmd staging;
struct iwl_rxon_time_cmd timing;
struct iwl_qos_info qos_data;
u8 bcast_sta_id;
u8 ap_sta_id;
u8 rxon_cmd;
u8 rxon_assoc_cmd;
u8 rxon_timing_cmd;
u8 qos_cmd;
u8 wep_key_cmd;
struct iwl_wep_key wep_keys[4];
u8 key_mapping_keys;
__le32 station_flags;
int beacon_int;
struct {
bool non_gf_sta_present;
u8 protection;
bool enabled;
bool is_40mhz;
u8 extension_chan_offset;
} ht;
};
struct iwl_sensitivity_data {
u32 auto_corr_ofdm;
u32 auto_corr_ofdm_mrc;
u32 auto_corr_ofdm_x1;
u32 auto_corr_ofdm_mrc_x1;
u32 auto_corr_cck;
u32 auto_corr_cck_mrc;
u32 last_bad_plcp_cnt_ofdm;
u32 last_fa_cnt_ofdm;
u32 last_bad_plcp_cnt_cck;
u32 last_fa_cnt_cck;
u32 nrg_curr_state;
u32 nrg_prev_state;
u32 nrg_value[10];
u8 nrg_silence_rssi[20];
u32 nrg_silence_ref;
u32 nrg_energy_idx;
u32 nrg_silence_idx;
u32 nrg_th_cck;
s32 nrg_auto_corr_silence_diff;
u32 num_in_cck_no_fa;
u32 nrg_th_ofdm;
u16 barker_corr_th_min;
u16 barker_corr_th_min_mrc;
u16 nrg_th_cca;
};
struct iwl_chain_noise_data {
u32 active_chains;
u32 chain_noise_a;
u32 chain_noise_b;
u32 chain_noise_c;
u32 chain_signal_a;
u32 chain_signal_b;
u32 chain_signal_c;
u16 beacon_count;
u8 disconn_array[3];
u8 delta_gain_code[3];
u8 radio_write;
u8 state;
};
struct iwl_ht_config {
bool single_chain_sufficient;
enum ieee80211_smps_mode smps;
};
struct iwl_powertable_cmd {
__le16 flags;
u8 keep_alive_seconds;
u8 debug_flags;
__le32 rx_data_timeout;
__le32 tx_data_timeout;
__le32 sleep_interval[5];
__le32 keep_alive_beacons;
};
struct iwl_power_mgr {
struct iwl_powertable_cmd sleep_cmd;
struct iwl_powertable_cmd sleep_cmd_next;
int debug_sleep_level_override;
bool bus_pm;
};
struct iwl_tt_restriction;
struct iwl_tt_trans;
struct iwl_tt_mgmt {
enum iwl_tt_state state;
bool advanced_tt;
u8 tt_power_mode;
bool ct_kill_toggle;
struct iwl_tt_restriction *restriction;
struct iwl_tt_trans *transaction;
struct timer_list ct_kill_exit_tm;
struct timer_list ct_kill_waiting_tm;
};
struct sta_id_modify {
u8 addr[6];
__le16 reserved1;
u8 sta_id;
u8 modify_mask;
__le16 reserved2;
};
struct iwl_keyinfo {
__le16 key_flags;
u8 tkip_rx_tsc_byte2;
u8 reserved1;
__le16 tkip_rx_ttak[5];
u8 key_offset;
u8 reserved2;
u8 key[16];
__le64 tx_secur_seq_cnt;
__le64 hw_tkip_mic_rx_key;
__le64 hw_tkip_mic_tx_key;
};
struct iwl_addsta_cmd {
u8 mode;
u8 reserved[3];
struct sta_id_modify sta;
struct iwl_keyinfo key;
__le32 station_flags;
__le32 station_flags_msk;
__le16 tid_disable_tx;
__le16 legacy_reserved;
u8 add_immediate_ba_tid;
u8 remove_immediate_ba_tid;
__le16 add_immediate_ba_ssn;
__le16 sleep_tx_count;
__le16 reserved2;
} __attribute__((packed));
struct iwl_link_quality_cmd;
struct iwl_station_entry {
struct iwl_addsta_cmd sta;
u8 used;
u8 ctxid;
struct iwl_link_quality_cmd *lq;
};
struct iwl_ht_agg {
u32 rate_n_flags;
enum iwl_agg_state state;
u16 txq_id;
u16 ssn;
bool wait_for_ba;
};
struct iwl_tid_data {
u16 seq_number;
u16 next_reclaimed;
struct iwl_ht_agg agg;
};
struct iwl_rx_phy_res {
u8 non_cfg_phy_cnt;
u8 cfg_phy_cnt;
u8 stat_id;
u8 reserved1;
__le64 timestamp;
__le32 beacon_time_stamp;
__le16 phy_flags;
__le16 channel;
u8 non_cfg_phy_buf[32];
__le32 rate_n_flags;
__le16 byte_count;
__le16 frame_time;
} __attribute__((packed));
struct reply_tx_error_statistics {
u32 pp_delay;
u32 pp_few_bytes;
u32 pp_bt_prio;
u32 pp_quiet_period;
u32 pp_calc_ttak;
u32 int_crossed_retry;
u32 short_limit;
u32 long_limit;
u32 fifo_underrun;
u32 drain_flow;
u32 rfkill_flush;
u32 life_expire;
u32 dest_ps;
u32 host_abort;
u32 bt_retry;
u32 sta_invalid;
u32 frag_drop;
u32 tid_disable;
u32 fifo_flush;
u32 insuff_cf_poll;
u32 fail_hw_drop;
u32 sta_color_mismatch;
u32 unknown;
};
struct reply_agg_tx_error_statistics {
u32 underrun;
u32 bt_prio;
u32 few_bytes;
u32 abort;
u32 last_sent_ttl;
u32 last_sent_try;
u32 last_sent_bt_kill;
u32 scd_query;
u32 bad_crc32;
u32 response;
u32 dump_tx;
u32 delay_tx;
u32 unknown;
};
struct iwl_event_log {
bool ucode_trace;
u32 num_wraps;
u32 next_entry;
int non_wraps_count;
int wraps_once_count;
int wraps_more_count;
};
struct iwl_trans;
struct iwl_cfg;
struct iwl_fw;
struct iwl_dvm_cfg;
struct ieee80211_hw;
struct iwl_rx_cmd_buffer;
struct iwl_wipan_noa_data;
struct cfg80211_scan_request;
struct iwl_nvm_data;
struct iwl_priv {
struct iwl_trans *trans;
struct device *dev;
const struct iwl_cfg *cfg;
const struct iwl_fw *fw;
const struct iwl_dvm_cfg *lib;
unsigned long status;
spinlock_t sta_lock;
struct mutex mutex;
unsigned long transport_queue_stop;
bool passive_no_rx;
u8 queue_to_mac80211[32];
atomic_t queue_stop_count[32];
unsigned long agg_q_alloc[1];
struct ieee80211_hw *hw;
struct napi_struct *napi;
struct list_head calib_results;
struct workqueue_struct *workqueue;
struct iwl_hw_params hw_params;
enum nl80211_band band;
u8 valid_contexts;
void (*rx_handlers[255])(struct iwl_priv *, struct iwl_rx_cmd_buffer *);
struct iwl_notif_wait_data notif_wait;
struct iwl_spectrum_notification measure_report;
u8 measurement_status;
u32 ucode_beacon_time;
int missed_beacon_threshold;
u32 ibss_manager;
unsigned long rx_statistics_jiffies;
u32 rx_handlers_stats[255];
struct iwl_rf_reset rf_reset;
unsigned long reload_jiffies;
int reload_count;
bool ucode_loaded;
u8 plcp_delta_threshold;
s32 temperature;
s32 last_temperature;
struct iwl_wipan_noa_data __attribute__((btf_type_tag("rcu"))) *noa_data;
unsigned long scan_start;
unsigned long scan_start_tsf;
size_t scan_cmd_size;
void *scan_cmd;
enum nl80211_band scan_band;
struct cfg80211_scan_request *scan_request;
struct ieee80211_vif *scan_vif;
enum iwl_scan_type scan_type;
u8 scan_tx_ant[6];
u8 mgmt_tx_ant;
u8 sta_key_max_num;
bool new_scan_threshold_behaviour;
bool wowlan;
struct mac_address addresses[2];
struct iwl_rxon_context contexts[2];
__le16 switch_channel;
u8 start_calib;
struct iwl_sensitivity_data sensitivity_data;
struct iwl_chain_noise_data chain_noise_data;
__le16 sensitivity_tbl[11];
__le16 enhance_sensitivity_tbl[12];
struct iwl_ht_config current_ht_config;
u8 retry_rate;
int activity_timer_active;
struct iwl_power_mgr power_data;
struct iwl_tt_mgmt thermal_throttle;
int num_stations;
struct iwl_station_entry stations[16];
unsigned long ucode_key_table;
struct iwl_tid_data tid_data[128];
atomic_t num_aux_in_flight;
u8 mac80211_registered;
u8 is_open;
enum nl80211_iftype iw_mode;
u64 timestamp;
struct {
__le32 flag;
struct statistics_general_common common;
struct statistics_rx_non_phy rx_non_phy;
struct statistics_rx_phy rx_ofdm;
struct statistics_rx_ht_phy rx_ofdm_ht;
struct statistics_rx_phy rx_cck;
struct statistics_tx tx;
spinlock_t lock;
} statistics;
u8 agg_tids_count;
struct iwl_rx_phy_res last_phy_res;
u32 ampdu_ref;
bool last_phy_res_valid;
u8 phy_calib_chain_noise_reset_cmd;
u8 phy_calib_chain_noise_gain_cmd;
struct reply_tx_error_statistics reply_tx_stats;
struct reply_agg_tx_error_statistics reply_agg_tx_stats;
u8 bt_enable_flag;
u8 bt_status;
u8 bt_traffic_load;
u8 last_bt_traffic_load;
bool bt_ch_announce;
bool bt_full_concurrent;
__le32 kill_ack_mask;
__le32 kill_cts_mask;
__le16 bt_valid;
bool reduced_txpower;
u16 bt_on_thresh;
u16 bt_duration;
u16 dynamic_frag_thresh;
u8 bt_ci_compliance;
struct work_struct bt_traffic_change_work;
bool bt_enable_pspoll;
struct iwl_rxon_context *cur_rssi_ctx;
bool bt_is_sco;
struct work_struct restart;
struct work_struct scan_completed;
struct work_struct abort_scan;
struct work_struct beacon_update;
struct iwl_rxon_context *beacon_ctx;
struct sk_buff *beacon_skb;
void *beacon_cmd;
struct work_struct tt_work;
struct work_struct ct_enter;
struct work_struct ct_exit;
struct work_struct start_internal_scan;
struct work_struct tx_flush;
struct work_struct bt_full_concurrency;
struct work_struct bt_runtime_config;
struct delayed_work scan_check;
s8 tx_power_user_lmt;
s8 tx_power_next;
struct iwl_nvm_data *nvm_data;
u8 *eeprom_blob;
size_t eeprom_blob_size;
struct work_struct txpower_work;
u32 calib_disabled;
struct work_struct run_time_calib_work;
struct timer_list statistics_periodic;
struct timer_list ucode_trace;
struct iwl_event_log event_log;
u8 kck[16];
u8 kek[16];
__le64 replay_ctr;
__le16 last_seq_ctl;
bool have_rekey_data;
struct wiphy_wowlan_support wowlan_support;
struct {
u32 error_event_table;
u32 log_event_table;
} device_pointers;
enum iwl_ucode_type cur_ucode;
};
struct iwl_fw_ini_header {
__le32 version;
__le32 domain;
};
struct iwl_fw_ini_allocation_tlv {
struct iwl_fw_ini_header hdr;
__le32 alloc_id;
__le32 buf_location;
__le32 req_size;
__le32 max_frags_num;
__le32 min_size;
};
struct iwl_dram_data;
struct iwl_fw_mon {
u32 num_frags;
struct iwl_dram_data *frags;
};
struct iwl_dram_data {
dma_addr_t physical;
void *block;
int size;
};
struct iwl_dbg_tlv_time_point_data {
struct list_head trig_list;
struct list_head active_trig_list;
struct list_head hcmd_list;
struct list_head config_list;
};
struct iwl_imr_data {
u32 imr_enable;
u32 imr_size;
u32 sram_addr;
u32 sram_size;
u32 imr2sram_remainbyte;
u64 imr_curr_addr;
__le64 imr_base_addr;
};
struct iwl_fw_dbg_dest_tlv_v1;
struct iwl_fw_dbg_conf_tlv;
struct iwl_fw_dbg_trigger_tlv;
struct iwl_ucode_tlv;
struct iwl_pc_data;
struct iwl_trans_debug {
u8 n_dest_reg;
bool rec_on;
const struct iwl_fw_dbg_dest_tlv_v1 *dest_tlv;
const struct iwl_fw_dbg_conf_tlv *conf_tlv[32];
struct iwl_fw_dbg_trigger_tlv * const *trigger_tlv;
u32 lmac_error_event_table[2];
u32 umac_error_event_table;
u32 tcm_error_event_table[2];
u32 rcm_error_event_table[2];
unsigned int error_event_table_tlv_status;
enum iwl_ini_cfg_state internal_ini_cfg;
enum iwl_ini_cfg_state external_ini_cfg;
struct iwl_fw_ini_allocation_tlv fw_mon_cfg[5];
struct iwl_fw_mon fw_mon_ini[5];
struct iwl_dram_data fw_mon;
bool hw_error;
enum iwl_fw_ini_buffer_location ini_dest;
u64 unsupported_region_msk;
struct iwl_ucode_tlv *active_regions[64];
struct list_head debug_info_tlv_list;
struct iwl_dbg_tlv_time_point_data time_point[27];
struct list_head periodic_trig_list;
u32 domains_bitmap;
u32 ucode_preset;
bool restart_required;
u32 last_tp_resetfw;
struct iwl_imr_data imr_data;
u8 dump_file_name_ext[32];
bool dump_file_name_ext_valid;
u32 num_pc;
struct iwl_pc_data *pc_data;
bool yoyo_bin_loaded;
};
struct iwl_self_init_dram {
struct iwl_dram_data *fw;
int fw_cnt;
struct iwl_dram_data *paging;
int paging_cnt;
};
struct iwl_dma_ptr {
dma_addr_t dma;
void *addr;
size_t size;
};
struct iwl_txq;
struct dma_pool;
struct iwl_tso_hdr_page;
struct iwl_trans_txqs {
unsigned long queue_used[8];
unsigned long queue_stopped[8];
struct iwl_txq *txq[512];
struct dma_pool *bc_pool;
size_t bc_tbl_size;
bool bc_table_dword;
u8 page_offs;
u8 dev_cmd_offs;
struct iwl_tso_hdr_page __attribute__((btf_type_tag("percpu"))) *tso_hdr_page;
struct {
u8 fifo;
u8 q_id;
unsigned int wdg_timeout;
} cmd;
struct {
u8 max_tbs;
u16 size;
u8 addr_size;
} tfd;
struct iwl_dma_ptr scd_bc_tbls;
u8 queue_alloc_cmd_ver;
};
struct iwl_trans_ops;
struct iwl_op_mode;
struct iwl_cfg_trans_params;
struct iwl_drv;
struct iwl_hcmd_arr;
struct iwl_trans {
bool csme_own;
const struct iwl_trans_ops *ops;
struct iwl_op_mode *op_mode;
const struct iwl_cfg_trans_params *trans_cfg;
const struct iwl_cfg *cfg;
struct iwl_drv *drv;
enum iwl_trans_state state;
unsigned long status;
struct device *dev;
u32 max_skb_frags;
u32 hw_rev;
u32 hw_rev_step;
u32 hw_rf_id;
u32 hw_crf_id;
u32 hw_cnv_id;
u32 hw_wfpm_id;
u32 hw_id;
char hw_id_str[52];
u32 sku_id[3];
bool reduced_cap_sku;
u8 no_160: 1;
u8 step_urm: 1;
u8 rx_mpdu_cmd;
u8 rx_mpdu_cmd_hdr_size;
bool pm_support;
bool ltr_enabled;
u8 pnvm_loaded: 1;
u8 fail_to_parse_pnvm_image: 1;
u8 reduce_power_loaded: 1;
u8 failed_to_load_reduce_power_image: 1;
const struct iwl_hcmd_arr *command_groups;
int command_groups_size;
bool wide_cmd_header;
wait_queue_head_t wait_command_queue;
u8 num_rx_queues;
size_t iml_len;
u8 *iml;
struct kmem_cache *dev_cmd_pool;
char dev_cmd_pool_name[50];
struct dentry *dbgfs_dir;
struct lockdep_map sync_cmd_lockdep_map;
struct iwl_trans_debug dbg;
struct iwl_self_init_dram init_dram;
enum iwl_plat_pm_mode system_pm_mode;
const char *name;
struct iwl_trans_txqs txqs;
u32 mbx_addr_0_step;
u32 mbx_addr_1_step;
u8 pcie_link_speed;
struct iwl_dma_ptr invalid_tx_cmd;
char trans_specific[0];
};
struct fw_img;
struct iwl_host_cmd;
struct iwl_device_tx_cmd;
struct iwl_trans_txq_scd_cfg;
struct iwl_trans_rxq_dma_data;
struct iwl_trans_config;
struct iwl_trans_dump_data;
struct iwl_dump_sanitize_ops;
struct iwl_pnvm_image;
struct iwl_ucode_capabilities;
struct iwl_trans_ops {
int (*start_hw)(struct iwl_trans *);
void (*op_mode_leave)(struct iwl_trans *);
int (*start_fw)(struct iwl_trans *, const struct fw_img *, bool);
void (*fw_alive)(struct iwl_trans *, u32);
void (*stop_device)(struct iwl_trans *);
int (*d3_suspend)(struct iwl_trans *, bool, bool);
int (*d3_resume)(struct iwl_trans *, enum iwl_d3_status *, bool, bool);
int (*send_cmd)(struct iwl_trans *, struct iwl_host_cmd *);
int (*tx)(struct iwl_trans *, struct sk_buff *, struct iwl_device_tx_cmd *, int);
void (*reclaim)(struct iwl_trans *, int, int, struct sk_buff_head *, bool);
void (*set_q_ptrs)(struct iwl_trans *, int, int);
bool (*txq_enable)(struct iwl_trans *, int, u16, const struct iwl_trans_txq_scd_cfg *, unsigned int);
void (*txq_disable)(struct iwl_trans *, int, bool);
int (*txq_alloc)(struct iwl_trans *, u32, u32, u8, int, unsigned int);
void (*txq_free)(struct iwl_trans *, int);
int (*rxq_dma_data)(struct iwl_trans *, int, struct iwl_trans_rxq_dma_data *);
void (*txq_set_shared_mode)(struct iwl_trans *, u32, bool);
int (*wait_tx_queues_empty)(struct iwl_trans *, u32);
int (*wait_txq_empty)(struct iwl_trans *, int);
void (*freeze_txq_timer)(struct iwl_trans *, unsigned long, bool);
void (*write8)(struct iwl_trans *, u32, u8);
void (*write32)(struct iwl_trans *, u32, u32);
u32 (*read32)(struct iwl_trans *, u32);
u32 (*read_prph)(struct iwl_trans *, u32);
void (*write_prph)(struct iwl_trans *, u32, u32);
int (*read_mem)(struct iwl_trans *, u32, void *, int);
int (*write_mem)(struct iwl_trans *, u32, const void *, int);
int (*read_config32)(struct iwl_trans *, u32, u32 *);
void (*configure)(struct iwl_trans *, const struct iwl_trans_config *);
void (*set_pmi)(struct iwl_trans *, bool);
int (*sw_reset)(struct iwl_trans *, bool);
bool (*grab_nic_access)(struct iwl_trans *);
void (*release_nic_access)(struct iwl_trans *);
void (*set_bits_mask)(struct iwl_trans *, u32, u32, u32);
struct iwl_trans_dump_data * (*dump_data)(struct iwl_trans *, u32, const struct iwl_dump_sanitize_ops *, void *);
void (*debugfs_cleanup)(struct iwl_trans *);
void (*sync_nmi)(struct iwl_trans *);
int (*load_pnvm)(struct iwl_trans *, const struct iwl_pnvm_image *, const struct iwl_ucode_capabilities *);
void (*set_pnvm)(struct iwl_trans *, const struct iwl_ucode_capabilities *);
int (*load_reduce_power)(struct iwl_trans *, const struct iwl_pnvm_image *, const struct iwl_ucode_capabilities *);
void (*set_reduce_power)(struct iwl_trans *, const struct iwl_ucode_capabilities *);
void (*interrupts)(struct iwl_trans *, bool);
int (*imr_dma_data)(struct iwl_trans *, u32, u64, u32);
};
struct fw_desc;
struct fw_img {
struct fw_desc *sec;
int num_sec;
bool is_dual_cpus;
u32 paging_mem_size;
};
struct fw_desc {
const void *data;
u32 len;
u32 offset;
};
struct iwl_rx_packet;
struct iwl_host_cmd {
const void *data[2];
struct iwl_rx_packet *resp_pkt;
unsigned long _rx_page_addr;
u32 _rx_page_order;
u32 flags;
u32 id;
u16 len[2];
u8 dataflags[2];
};
struct iwl_cmd_header {
u8 cmd;
u8 group_id;
__le16 sequence;
};
struct iwl_rx_packet {
__le32 len_n_flags;
struct iwl_cmd_header hdr;
u8 data[0];
};
struct iwl_device_tx_cmd {
struct iwl_cmd_header hdr;
u8 payload[0];
};
struct iwl_trans_txq_scd_cfg {
u8 fifo;
u8 sta_id;
u8 tid;
bool aggregate;
int frame_limit;
};
struct iwl_trans_rxq_dma_data {
u64 fr_bd_cb;
u32 fr_bd_wid;
u64 urbd_stts_wrptr;
u64 ur_bd_cb;
};
struct iwl_trans_config {
struct iwl_op_mode *op_mode;
u8 cmd_queue;
u8 cmd_fifo;
unsigned int cmd_q_wdg_timeout;
const u8 *no_reclaim_cmds;
unsigned int n_no_reclaim_cmds;
enum iwl_amsdu_size rx_buf_size;
bool bc_table_dword;
bool scd_set_active;
const struct iwl_hcmd_arr *command_groups;
int command_groups_size;
u8 cb_data_offs;
bool fw_reset_handshake;
u8 queue_alloc_cmd_ver;
};
struct iwl_op_mode_ops;
struct iwl_op_mode {
const struct iwl_op_mode_ops *ops;
char op_mode_specific[0];
};
union iwl_dbg_tlv_tp_data;
struct iwl_op_mode_ops {
struct iwl_op_mode * (*start)(struct iwl_trans *, const struct iwl_cfg *, const struct iwl_fw *, struct dentry *);
void (*stop)(struct iwl_op_mode *);
void (*rx)(struct iwl_op_mode *, struct napi_struct *, struct iwl_rx_cmd_buffer *);
void (*rx_rss)(struct iwl_op_mode *, struct napi_struct *, struct iwl_rx_cmd_buffer *, unsigned int);
void (*queue_full)(struct iwl_op_mode *, int);
void (*queue_not_full)(struct iwl_op_mode *, int);
bool (*hw_rf_kill)(struct iwl_op_mode *, bool);
void (*free_skb)(struct iwl_op_mode *, struct sk_buff *);
void (*nic_error)(struct iwl_op_mode *, bool);
void (*cmd_queue_full)(struct iwl_op_mode *);
void (*nic_config)(struct iwl_op_mode *);
void (*wimax_active)(struct iwl_op_mode *);
void (*time_point)(struct iwl_op_mode *, enum iwl_fw_ini_time_point, union iwl_dbg_tlv_tp_data *);
};
struct iwl_base_params;
struct iwl_cfg_trans_params {
const struct iwl_base_params *base_params;
enum iwl_device_family device_family;
u32 umac_prph_offset;
u32 xtal_latency;
u32 extra_phy_cfg_flags;
u32 rf_id: 1;
u32 gen2: 1;
u32 mq_rx_supported: 1;
u32 integrated: 1;
u32 low_latency_xtal: 1;
u32 bisr_workaround: 1;
u32 ltr_delay: 2;
u32 imr_enabled: 1;
};
struct iwl_fw_mon_reg {
u32 addr;
u32 mask;
};
struct iwl_fw_mon_regs {
struct iwl_fw_mon_reg write_ptr;
struct iwl_fw_mon_reg cycle_cnt;
struct iwl_fw_mon_reg cur_frag;
};
struct iwl_ht_params;
struct iwl_eeprom_params;
struct iwl_pwr_tx_backoff;
struct iwl_tt_params;
struct iwl_cfg {
struct iwl_cfg_trans_params trans;
const char *name;
const char *fw_name_pre;
const char *fw_name_mac;
const struct iwl_ht_params *ht_params;
const struct iwl_eeprom_params *eeprom_params;
const struct iwl_pwr_tx_backoff *pwr_tx_backoffs;
const char *default_nvm_file_C_step;
const struct iwl_tt_params *thermal_params;
enum iwl_led_mode led_mode;
enum iwl_nvm_type nvm_type;
u32 max_data_size;
u32 max_inst_size;
netdev_features_t features;
u32 dccm_offset;
u32 dccm_len;
u32 dccm2_offset;
u32 dccm2_len;
u32 smem_offset;
u32 smem_len;
u16 nvm_ver;
u16 nvm_calib_ver;
u32 rx_with_siso_diversity: 1;
u32 tx_with_siso_diversity: 1;
u32 internal_wimax_coex: 1;
u32 host_interrupt_operation_mode: 1;
u32 high_temp: 1;
u32 mac_addr_from_csr: 10;
u32 lp_xtal_workaround: 1;
u32 apmg_not_supported: 1;
u32 vht_mu_mimo_supported: 1;
u32 cdb: 1;
u32 dbgc_supported: 1;
u32 uhb_supported: 1;
u8 valid_tx_ant;
u8 valid_rx_ant;
u8 non_shared_ant;
u8 nvm_hw_section_num;
u8 max_tx_agg_size;
u8 ucode_api_max;
u8 ucode_api_min;
u16 num_rbds;
u32 min_umac_error_event_table;
u32 d3_debug_data_base_addr;
u32 d3_debug_data_length;
u32 min_txq_size;
u32 gp2_reg_addr;
u32 min_ba_txq_size;
const struct iwl_fw_mon_regs mon_dram_regs;
const struct iwl_fw_mon_regs mon_smem_regs;
const struct iwl_fw_mon_regs mon_dbgi_regs;
};
struct iwl_base_params {
unsigned int wd_timeout;
u16 eeprom_size;
u16 max_event_log_size;
u8 pll_cfg: 1;
u8 shadow_ram_support: 1;
u8 shadow_reg_enable: 1;
u8 pcie_l1_allowed: 1;
u8 apmg_wake_up_wa: 1;
u8 scd_chain_ext_wa: 1;
u16 num_of_queues;
u32 max_tfd_queue_size;
u8 max_ll_items;
u8 led_compensation;
};
struct iwl_ht_params {
u8 ht_greenfield_support: 1;
u8 stbc: 1;
u8 ldpc: 1;
u8 use_rts_for_aggregation: 1;
u8 ht40_bands;
};
struct iwl_eeprom_params {
const u8 regulatory_bands[7];
bool enhanced_txpower;
};
struct iwl_pwr_tx_backoff {
u32 pwr;
u32 backoff;
};
struct iwl_tt_tx_backoff {
s32 temperature;
u32 backoff;
};
struct iwl_tt_params {
u32 ct_kill_entry;
u32 ct_kill_exit;
u32 ct_kill_duration;
u32 dynamic_smps_entry;
u32 dynamic_smps_exit;
u32 tx_protection_entry;
u32 tx_protection_exit;
struct iwl_tt_tx_backoff tx_backoff[6];
u8 support_ct_kill: 1;
u8 support_dynamic_smps: 1;
u8 support_tx_protection: 1;
u8 support_tx_backoff: 1;
};
struct iwl_fw_cmd_version;
struct iwl_ucode_capabilities {
u32 max_probe_length;
u32 n_scan_channels;
u32 standard_phy_calibration_size;
u32 flags;
u32 error_log_addr;
u32 error_log_size;
u32 num_stations;
u32 num_beacons;
unsigned long _api[2];
unsigned long _capa[2];
const struct iwl_fw_cmd_version *cmd_versions;
u32 n_cmd_versions;
};
struct iwl_tlv_calib_ctrl {
__le32 flow_trigger;
__le32 event_trigger;
};
struct iwl_fw_dbg_mem_seg_tlv;
struct iwl_fw_dbg {
struct iwl_fw_dbg_dest_tlv_v1 *dest_tlv;
u8 n_dest_reg;
struct iwl_fw_dbg_conf_tlv *conf_tlv[32];
struct iwl_fw_dbg_trigger_tlv *trigger_tlv[17];
size_t trigger_tlv_len[17];
struct iwl_fw_dbg_mem_seg_tlv *mem_tlv;
size_t n_mem_tlv;
u32 dump_mask;
};
struct iwl_dump_exclude {
u32 addr;
u32 size;
};
struct iwl_fw {
u32 ucode_ver;
char fw_version[128];
struct fw_img img[4];
size_t iml_len;
u8 *iml;
struct iwl_ucode_capabilities ucode_capa;
bool enhance_sensitivity_table;
u32 init_evtlog_ptr;
u32 init_evtlog_size;
u32 init_errlog_ptr;
u32 inst_evtlog_ptr;
u32 inst_evtlog_size;
u32 inst_errlog_ptr;
struct iwl_tlv_calib_ctrl default_calib[4];
u32 phy_config;
u8 valid_tx_ant;
u8 valid_rx_ant;
enum iwl_fw_type type;
u8 human_readable[64];
struct iwl_fw_dbg dbg;
u8 *phy_integration_ver;
u32 phy_integration_ver_len;
struct iwl_dump_exclude dump_excl[2];
struct iwl_dump_exclude dump_excl_wowlan[2];
};
struct iwl_fw_cmd_version {
u8 cmd;
u8 group;
u8 cmd_ver;
u8 notif_ver;
};
struct iwl_fw_dbg_reg_op {
u8 op;
u8 reserved[3];
__le32 addr;
__le32 val;
};
struct iwl_fw_dbg_dest_tlv_v1 {
u8 version;
u8 monitor_mode;
u8 size_power;
u8 reserved;
__le32 base_reg;
__le32 end_reg;
__le32 write_ptr_reg;
__le32 wrap_count;
u8 base_shift;
u8 end_shift;
struct iwl_fw_dbg_reg_op reg_ops[0];
} __attribute__((packed));
struct iwl_fw_dbg_conf_hcmd {
u8 id;
u8 reserved;
__le16 len;
u8 data[0];
};
struct iwl_fw_dbg_conf_tlv {
u8 id;
u8 usniffer;
u8 reserved;
u8 num_of_hcmds;
struct iwl_fw_dbg_conf_hcmd hcmd;
};
struct iwl_fw_dbg_trigger_tlv {
__le32 id;
__le32 vif_type;
__le32 stop_conf_ids;
__le32 stop_delay;
u8 mode;
u8 start_conf_id;
__le16 occurrences;
__le16 trig_dis_ms;
u8 flags;
u8 reserved[5];
u8 data[0];
};
struct iwl_fw_dbg_mem_seg_tlv {
__le32 data_type;
__le32 ofs;
__le32 len;
};
struct iwl_rx_cmd_buffer {
struct page *_page;
int _offset;
bool _page_stolen;
u32 _rx_page_order;
unsigned int truesize;
};
union iwl_dbg_tlv_tp_data {
struct iwl_rx_packet *fw_pkt;
};
struct iwl_hcmd_names;
struct iwl_hcmd_arr {
const struct iwl_hcmd_names *arr;
int size;
};
struct iwl_hcmd_names {
u8 cmd_id;
const char * const cmd_name;
};
struct iwl_trans_dump_data {
u32 len;
u8 data[0];
};
struct iwl_dump_sanitize_ops {
void (*frob_txf)(void *, void *, size_t);
void (*frob_hcmd)(void *, void *, size_t);
void (*frob_mem)(void *, u32, void *, size_t);
};
struct iwl_pnvm_image {
struct {
const void *data;
u32 len;
} chunks[64];
u32 n_chunks;
u32 version;
};
struct iwl_ucode_tlv {
__le32 type;
__le32 length;
u8 data[0];
};
struct iwl_pc_data {
u8 pc_name[32];
u32 pc_address;
};
struct iwl_pcie_first_tb_buf;
struct iwl_pcie_txq_entry;
struct iwl_txq {
void *tfds;
struct iwl_pcie_first_tb_buf *first_tb_bufs;
dma_addr_t first_tb_dma;
struct iwl_pcie_txq_entry *entries;
spinlock_t lock;
unsigned long frozen_expiry_remainder;
struct timer_list stuck_timer;
struct iwl_trans *trans;
bool need_update;
bool frozen;
bool ampdu;
int block;
unsigned long wd_timeout;
struct sk_buff_head overflow_q;
struct iwl_dma_ptr bc_tbl;
int write_ptr;
int read_ptr;
dma_addr_t dma_addr;
int n_window;
u32 id;
int low_mark;
int high_mark;
bool overflow_tx;
};
struct iwl_pcie_first_tb_buf {
u8 buf[64];
};
struct iwl_cmd_meta {
struct iwl_host_cmd *source;
u32 flags;
u32 tbs;
};
struct iwl_pcie_txq_entry {
void *cmd;
struct sk_buff *skb;
const void *free_buf;
struct iwl_cmd_meta meta;
};
struct iwl_tso_hdr_page {
struct page *page;
u8 *pos;
};
struct ieee80211_channel_switch;
struct iwl_dvm_bt_params;
struct iwl_dvm_cfg {
void (*set_hw_params)(struct iwl_priv *);
int (*set_channel_switch)(struct iwl_priv *, struct ieee80211_channel_switch *);
void (*nic_config)(struct iwl_priv *);
void (*temperature)(struct iwl_priv *);
const struct iwl_dvm_bt_params *bt_params;
s32 chain_noise_scale;
u8 plcp_delta_threshold;
bool adv_thermal_throttle;
bool support_ct_kill_exit;
bool hd_v2;
bool no_idle_support;
bool need_temp_offset_calib;
bool no_xtal_calib;
bool temp_offset_v2;
bool adv_pm;
};
struct ieee80211_channel_switch {
u64 timestamp;
u32 device_timestamp;
bool block_tx;
struct cfg80211_chan_def chandef;
u8 count;
u8 link_id;
u32 delay;
};
struct iwl_dvm_bt_params {
bool advanced_bt_coexist;
u8 bt_init_traffic_load;
u32 bt_prio_boost;
u16 agg_time_limit;
bool bt_sco_disable;
bool bt_session_2;
};
struct ieee80211_conf {
u32 flags;
int power_level;
int dynamic_ps_timeout;
u16 listen_interval;
u8 ps_dtim_period;
u8 long_frame_max_tx_count;
u8 short_frame_max_tx_count;
struct cfg80211_chan_def chandef;
bool radar_enabled;
enum ieee80211_smps_mode smps_mode;
};
struct ieee80211_hw {
struct ieee80211_conf conf;
struct wiphy *wiphy;
const char *rate_control_algorithm;
void *priv;
unsigned long flags[1];
unsigned int extra_tx_headroom;
unsigned int extra_beacon_tailroom;
int vif_data_size;
int sta_data_size;
int chanctx_data_size;
int txq_data_size;
u16 queues;
u16 max_listen_interval;
s8 max_signal;
u8 max_rates;
u8 max_report_rates;
u8 max_rate_tries;
u16 max_rx_aggregation_subframes;
u16 max_tx_aggregation_subframes;
u8 max_tx_fragments;
u8 offchannel_tx_hw_queue;
u8 radiotap_mcs_details;
u16 radiotap_vht_details;
struct {
int units_pos;
s16 accuracy;
} radiotap_timestamp;
netdev_features_t netdev_features;
u8 uapsd_queues;
u8 uapsd_max_sp_len;
u8 max_nan_de_entries;
u8 tx_sk_pacing_shift;
u8 weight_multiplier;
u32 max_mtu;
const s8 *tx_power_levels;
u8 max_txpwr_levels_idx;
};
struct iwl_sensitivity_ranges {
u16 min_nrg_cck;
u16 nrg_th_cck;
u16 nrg_th_ofdm;
u16 auto_corr_min_ofdm;
u16 auto_corr_min_ofdm_mrc;
u16 auto_corr_min_ofdm_x1;
u16 auto_corr_min_ofdm_mrc_x1;
u16 auto_corr_max_ofdm;
u16 auto_corr_max_ofdm_mrc;
u16 auto_corr_max_ofdm_x1;
u16 auto_corr_max_ofdm_mrc_x1;
u16 auto_corr_max_cck;
u16 auto_corr_max_cck_mrc;
u16 auto_corr_min_cck;
u16 auto_corr_min_cck_mrc;
u16 barker_corr_th_min;
u16 barker_corr_th_min_mrc;
u16 nrg_th_cca;
};
struct iwl_wipan_noa_data {
struct callback_head callback_head;
u32 length;
u8 data[0];
};
struct cfg80211_scan_info {
u64 scan_start_tsf;
u8 tsf_bssid[6];
bool aborted;
};
struct cfg80211_scan_6ghz_params;
struct cfg80211_scan_request {
struct cfg80211_ssid *ssids;
int n_ssids;
u32 n_channels;
const u8 *ie;
size_t ie_len;
u16 duration;
bool duration_mandatory;
u32 flags;
u32 rates[6];
struct wireless_dev *wdev;
u8 mac_addr[6];
u8 mac_addr_mask[6];
u8 bssid[6];
struct wiphy *wiphy;
unsigned long scan_start;
struct cfg80211_scan_info info;
bool notified;
bool no_cck;
bool scan_6ghz;
u32 n_6ghz_params;
struct cfg80211_scan_6ghz_params *scan_6ghz_params;
s8 tsf_report_link_id;
struct ieee80211_channel *channels[0];
};
struct cfg80211_scan_6ghz_params {
u32 short_ssid;
u32 channel_idx;
u8 bssid[6];
bool unsolicited_probe;
bool short_ssid_valid;
bool psc_no_listen;
s8 psd_20;
};
struct ieee80211_vif_cfg {
bool assoc;
bool ibss_joined;
bool ibss_creator;
bool ps;
u16 aid;
u16 eml_cap;
u16 eml_med_sync_delay;
u16 mld_capa_op;
__be32 arp_addr_list[4];
int arp_addr_cnt;
u8 ssid[32];
size_t ssid_len;
bool s1g;
bool idle;
u8 ap_addr[6];
};
struct ieee80211_chan_req {
struct cfg80211_chan_def oper;
struct cfg80211_chan_def ap;
};
struct ieee80211_mu_group_data {
u8 membership[8];
u8 position[16];
};
struct ieee80211_p2p_noa_desc {
u8 count;
__le32 duration;
__le32 interval;
__le32 start_time;
} __attribute__((packed));
struct ieee80211_p2p_noa_attr {
u8 index;
u8 oppps_ctwindow;
struct ieee80211_p2p_noa_desc desc[4];
};
struct ieee80211_he_obss_pd {
bool enable;
u8 sr_ctrl;
u8 non_srg_max_offset;
u8 min_offset;
u8 max_offset;
u8 bss_color_bitmap[8];
u8 partial_bssid_bitmap[8];
};
struct cfg80211_he_bss_color {
u8 color;
bool enabled;
bool partial;
};
struct ieee80211_fils_discovery {
u32 min_interval;
u32 max_interval;
};
struct cfg80211_bitrate_mask {
struct {
u32 legacy;
u8 ht_mcs[10];
u16 vht_mcs[8];
u16 he_mcs[8];
enum nl80211_txrate_gi gi;
enum nl80211_he_gi he_gi;
enum nl80211_he_ltf he_ltf;
} control[6];
};
struct ieee80211_tx_pwr_env {
u8 tx_power_info;
s8 tx_power[8];
};
struct cfg80211_bss;
struct ieee80211_ftm_responder_params;
struct ieee80211_chanctx_conf;
struct ieee80211_bss_conf {
struct ieee80211_vif *vif;
struct cfg80211_bss *bss;
const u8 *bssid;
unsigned int link_id;
u8 addr[6];
u8 htc_trig_based_pkt_ext;
bool uora_exists;
u8 uora_ocw_range;
u16 frame_time_rts_th;
bool he_support;
bool twt_requester;
bool twt_responder;
bool twt_protected;
bool twt_broadcast;
bool use_cts_prot;
bool use_short_preamble;
bool use_short_slot;
bool enable_beacon;
u8 dtim_period;
u16 beacon_int;
u16 assoc_capability;
u64 sync_tsf;
u32 sync_device_ts;
u8 sync_dtim_count;
u32 basic_rates;
struct ieee80211_rate *beacon_rate;
int mcast_rate[6];
u16 ht_operation_mode;
s32 cqm_rssi_thold;
u32 cqm_rssi_hyst;
s32 cqm_rssi_low;
s32 cqm_rssi_high;
struct ieee80211_chan_req chanreq;
struct ieee80211_mu_group_data mu_group;
bool qos;
bool hidden_ssid;
int txpower;
enum nl80211_tx_power_setting txpower_type;
struct ieee80211_p2p_noa_attr p2p_noa_attr;
bool allow_p2p_go_ps;
u16 max_idle_period;
bool protected_keep_alive;
bool ftm_responder;
struct ieee80211_ftm_responder_params *ftmr_params;
bool nontransmitted;
u8 transmitter_bssid[6];
u8 bssid_index;
u8 bssid_indicator;
bool ema_ap;
u8 profile_periodicity;
struct {
u32 params;
u16 nss_set;
} he_oper;
struct ieee80211_he_obss_pd he_obss_pd;
struct cfg80211_he_bss_color he_bss_color;
struct ieee80211_fils_discovery fils_discovery;
u32 unsol_bcast_probe_resp_interval;
struct cfg80211_bitrate_mask beacon_tx_rate;
enum ieee80211_ap_reg_power power_type;
struct ieee80211_tx_pwr_env tx_pwr_env[8];
u8 tx_pwr_env_num;
u8 pwr_reduction;
bool eht_support;
bool csa_active;
bool mu_mimo_owner;
struct ieee80211_chanctx_conf __attribute__((btf_type_tag("rcu"))) *chanctx_conf;
bool color_change_active;
u8 color_change_color;
bool ht_ldpc;
bool vht_ldpc;
bool he_ldpc;
bool vht_su_beamformer;
bool vht_su_beamformee;
bool vht_mu_beamformer;
bool vht_mu_beamformee;
bool he_su_beamformer;
bool he_su_beamformee;
bool he_mu_beamformer;
bool he_full_ul_mumimo;
bool eht_su_beamformer;
bool eht_su_beamformee;
bool eht_mu_beamformer;
};
struct ieee80211_neg_ttlm {
u16 downlink[8];
u16 uplink[8];
bool valid;
};
struct ieee80211_txq;
struct ieee80211_vif {
enum nl80211_iftype type;
struct ieee80211_vif_cfg cfg;
struct ieee80211_bss_conf bss_conf;
struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_conf[15];
u16 valid_links;
u16 active_links;
u16 dormant_links;
u16 suspended_links;
struct ieee80211_neg_ttlm neg_ttlm;
u8 addr[6];
bool p2p;
u8 cab_queue;
u8 hw_queue[4];
struct ieee80211_txq *txq;
netdev_features_t netdev_features;
u32 driver_flags;
u32 offload_flags;
bool probe_req_reg;
bool rx_mcast_action_reg;
struct ieee80211_vif *mbssid_tx_vif;
u8 drv_priv[0];
};
struct cfg80211_bss_ies;
struct cfg80211_bss {
struct ieee80211_channel *channel;
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *ies;
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *beacon_ies;
const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *proberesp_ies;
struct cfg80211_bss *hidden_beacon_bss;
struct cfg80211_bss *transmitted_bss;
struct list_head nontrans_list;
s32 signal;
u16 beacon_interval;
u16 capability;
u8 bssid[6];
u8 chains;
s8 chain_signal[4];
u8 proberesp_ecsa_stuck: 1;
u8 bssid_index;
u8 max_bssid_indicator;
u8 use_for;
u8 cannot_use_reasons;
u8 priv[0];
};
struct cfg80211_bss_ies {
u64 tsf;
struct callback_head callback_head;
int len;
bool from_beacon;
u8 data[0];
};
struct ieee80211_ftm_responder_params {
const u8 *lci;
const u8 *civicloc;
size_t lci_len;
size_t civicloc_len;
};
struct ieee80211_chanctx_conf {
struct cfg80211_chan_def def;
struct cfg80211_chan_def min_def;
struct cfg80211_chan_def ap;
u8 rx_chains_static;
u8 rx_chains_dynamic;
bool radar_enabled;
long: 0;
u8 drv_priv[0];
};
struct ieee80211_sta;
struct ieee80211_txq {
struct ieee80211_vif *vif;
struct ieee80211_sta *sta;
u8 tid;
u8 ac;
long: 0;
u8 drv_priv[0];
};
struct ieee80211_sta_aggregates {
u16 max_amsdu_len;
u16 max_rc_amsdu_len;
u16 max_tid_amsdu_len[16];
};
struct ieee80211_sta_txpwr {
s16 power;
enum nl80211_tx_power_setting type;
};
struct ieee80211_link_sta {
struct ieee80211_sta *sta;
u8 addr[6];
u8 link_id;
long: 0;
enum ieee80211_smps_mode smps_mode;
u32 supp_rates[6];
struct ieee80211_sta_ht_cap ht_cap;
int: 0;
struct ieee80211_sta_vht_cap vht_cap;
struct ieee80211_sta_he_cap he_cap;
struct ieee80211_he_6ghz_capa he_6ghz_capa;
struct ieee80211_sta_eht_cap eht_cap;
struct ieee80211_sta_aggregates agg;
u8 rx_nss;
long: 0;
enum ieee80211_sta_rx_bandwidth bandwidth;
struct ieee80211_sta_txpwr txpwr;
long: 0;
} __attribute__((packed));
struct ieee80211_sta_rates;
struct ieee80211_sta {
u8 addr[6];
u16 aid;
u16 max_rx_aggregation_subframes;
bool wme;
u8 uapsd_queues;
u8 max_sp;
struct ieee80211_sta_rates __attribute__((btf_type_tag("rcu"))) *rates;
bool tdls;
bool tdls_initiator;
bool mfp;
bool mlo;
bool spp_amsdu;
u8 max_amsdu_subframes;
struct ieee80211_sta_aggregates *cur;
bool support_p2p_ps;
struct ieee80211_txq *txq[17];
u16 valid_links;
long: 0;
struct ieee80211_link_sta deflink;
struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15];
u8 drv_priv[0];
};
struct ieee80211_sta_rates {
struct callback_head callback_head;
struct {
s8 idx;
u8 count;
u8 count_cts;
u8 count_rts;
u16 flags;
} rate[4];
};
struct iwl_tt_restriction {
enum iwl_antenna_ok tx_stream;
enum iwl_antenna_ok rx_stream;
bool is_ht;
};
struct iwl_tt_trans {
enum iwl_tt_state next_state;
u32 tt_low;
u32 tt_high;
};
struct iwl_link_qual_general_params {
u8 flags;
u8 mimo_delimiter;
u8 single_stream_ant_msk;
u8 dual_stream_ant_msk;
u8 start_rate_index[4];
};
struct iwl_link_qual_agg_params {
__le16 agg_time_limit;
u8 agg_dis_start_th;
u8 agg_frame_cnt_limit;
__le32 reserved;
};
struct iwl_link_quality_cmd {
u8 sta_id;
u8 reserved1;
__le16 control;
struct iwl_link_qual_general_params general_params;
struct iwl_link_qual_agg_params agg_params;
struct {
__le32 rate_n_flags;
} rs_table[16];
__le32 reserved2;
};
struct iwl_nvm_data {
int n_hw_addrs;
u8 hw_addr[6];
u8 calib_version;
__le16 calib_voltage;
__le16 raw_temperature;
__le16 kelvin_temperature;
__le16 kelvin_voltage;
__le16 xtal_calib[2];
bool sku_cap_band_24ghz_enable;
bool sku_cap_band_52ghz_enable;
bool sku_cap_11n_enable;
bool sku_cap_11ac_enable;
bool sku_cap_11ax_enable;
bool sku_cap_amt_enable;
bool sku_cap_ipan_enable;
bool sku_cap_mimo_disabled;
bool sku_cap_11be_enable;
u16 radio_cfg_type;
u8 radio_cfg_step;
u8 radio_cfg_dash;
u8 radio_cfg_pnum;
u8 valid_tx_ant;
u8 valid_rx_ant;
u32 nvm_version;
s8 max_tx_pwr_half_dbm;
bool lar_enabled;
bool vht160_supported;
struct ieee80211_supported_band bands[6];
struct {
struct ieee80211_sband_iftype_data low[2];
struct ieee80211_sband_iftype_data high[2];
struct ieee80211_sband_iftype_data uhb[2];
} iftd;
struct ieee80211_channel channels[0];
};
struct iwl_dram_scratch {
u8 try_cnt;
u8 bt_kill_cnt;
__le16 reserved;
};
struct ieee80211_hdr {
__le16 frame_control;
__le16 duration_id;
union {
struct {
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
};
struct {
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
} addrs;
};
__le16 seq_ctrl;
u8 addr4[6];
};
struct iwl_tx_cmd {
__le16 len;
__le16 next_frame_len;
__le32 tx_flags;
struct iwl_dram_scratch scratch;
__le32 rate_n_flags;
u8 sta_id;
u8 sec_ctl;
u8 initial_rate_index;
u8 reserved;
u8 key[16];
__le16 next_frame_flags;
__le16 reserved2;
union {
__le32 life_time;
__le32 attempt;
} stop_time;
__le32 dram_lsb_ptr;
u8 dram_msb_ptr;
u8 rts_retry_limit;
u8 data_retry_limit;
u8 tid_tspec;
union {
__le16 pm_frame_timeout;
__le16 attempt_duration;
} timeout;
__le16 driver_txop;
union {
struct {
struct {} __empty_payload;
u8 payload[0];
};
struct {
struct {} __empty_hdr;
struct ieee80211_hdr hdr[0];
};
};
};
struct iwl_ssid_ie {
u8 id;
u8 len;
u8 ssid[32];
};
struct iwl_scan_cmd {
__le16 len;
u8 scan_flags;
u8 channel_count;
__le16 quiet_time;
__le16 quiet_plcp_th;
__le16 good_CRC_th;
__le16 rx_chain;
__le32 max_out_time;
__le32 suspend_time;
__le32 flags;
__le32 filter_flags;
struct iwl_tx_cmd tx_cmd;
struct iwl_ssid_ie direct_scan[20];
u8 data[0];
};
struct iwl_vif_priv {
struct iwl_rxon_context *ctx;
u8 ibss_bssid_sta_id;
};
struct iwl_scan_channel {
__le32 type;
__le16 channel;
u8 tx_gain;
u8 dsp_atten;
__le16 active_dwell;
__le16 passive_dwell;
};
struct iwl_scanstart_notification {
__le32 tsf_low;
__le32 tsf_high;
__le32 beacon_timer;
u8 channel;
u8 band;
u8 reserved[2];
__le32 status;
};
struct iwl_scancomplete_notification {
u8 scanned_channels;
u8 status;
u8 bt_status;
u8 last_channel;
__le32 tsf_low;
__le32 tsf_high;
};
enum usb_device_state {
USB_STATE_NOTATTACHED = 0,
USB_STATE_ATTACHED = 1,
USB_STATE_POWERED = 2,
USB_STATE_RECONNECTING = 3,
USB_STATE_UNAUTHENTICATED = 4,
USB_STATE_DEFAULT = 5,
USB_STATE_ADDRESS = 6,
USB_STATE_CONFIGURED = 7,
USB_STATE_SUSPENDED = 8,
};
enum usb_device_speed {
USB_SPEED_UNKNOWN = 0,
USB_SPEED_LOW = 1,
USB_SPEED_FULL = 2,
USB_SPEED_HIGH = 3,
USB_SPEED_WIRELESS = 4,
USB_SPEED_SUPER = 5,
USB_SPEED_SUPER_PLUS = 6,
};
enum usb_ssp_rate {
USB_SSP_GEN_UNKNOWN = 0,
USB_SSP_GEN_2x1 = 1,
USB_SSP_GEN_1x2 = 2,
USB_SSP_GEN_2x2 = 3,
};
enum usb_interface_condition {
USB_INTERFACE_UNBOUND = 0,
USB_INTERFACE_BINDING = 1,
USB_INTERFACE_BOUND = 2,
USB_INTERFACE_UNBINDING = 3,
};
enum usb_wireless_status {
USB_WIRELESS_STATUS_NA = 0,
USB_WIRELESS_STATUS_DISCONNECTED = 1,
USB_WIRELESS_STATUS_CONNECTED = 2,
};
struct usb_endpoint_descriptor;
struct usb_device;
struct ep_device {
struct usb_endpoint_descriptor *desc;
struct usb_device *udev;
struct device dev;
};
struct usb_endpoint_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bEndpointAddress;
__u8 bmAttributes;
__le16 wMaxPacketSize;
__u8 bInterval;
__u8 bRefresh;
__u8 bSynchAddress;
} __attribute__((packed));
struct usb_ss_ep_comp_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bMaxBurst;
__u8 bmAttributes;
__le16 wBytesPerInterval;
};
struct usb_ssp_isoc_ep_comp_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 wReseved;
__le32 dwBytesPerInterval;
};
struct usb_host_endpoint {
struct usb_endpoint_descriptor desc;
struct usb_ss_ep_comp_descriptor ss_ep_comp;
struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp;
long: 0;
struct list_head urb_list;
void *hcpriv;
struct ep_device *ep_dev;
unsigned char *extra;
int extralen;
int enabled;
int streams;
long: 0;
} __attribute__((packed));
struct usb_device_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 bcdUSB;
__u8 bDeviceClass;
__u8 bDeviceSubClass;
__u8 bDeviceProtocol;
__u8 bMaxPacketSize0;
__le16 idVendor;
__le16 idProduct;
__le16 bcdDevice;
__u8 iManufacturer;
__u8 iProduct;
__u8 iSerialNumber;
__u8 bNumConfigurations;
};
struct usb2_lpm_parameters {
unsigned int besl;
int timeout;
};
struct usb3_lpm_parameters {
unsigned int mel;
unsigned int pel;
unsigned int sel;
int timeout;
};
struct usb_tt;
struct usb_bus;
struct usb_host_bos;
struct usb_host_config;
struct usb_device {
int devnum;
char devpath[16];
u32 route;
enum usb_device_state state;
enum usb_device_speed speed;
unsigned int rx_lanes;
unsigned int tx_lanes;
enum usb_ssp_rate ssp_rate;
struct usb_tt *tt;
int ttport;
unsigned int toggle[2];
struct usb_device *parent;
struct usb_bus *bus;
struct usb_host_endpoint ep0;
struct device dev;
struct usb_device_descriptor descriptor;
struct usb_host_bos *bos;
struct usb_host_config *config;
struct usb_host_config *actconfig;
struct usb_host_endpoint *ep_in[16];
struct usb_host_endpoint *ep_out[16];
char **rawdescriptors;
unsigned short bus_mA;
u8 portnum;
u8 level;
u8 devaddr;
unsigned int can_submit: 1;
unsigned int persist_enabled: 1;
unsigned int reset_in_progress: 1;
unsigned int have_langid: 1;
unsigned int authorized: 1;
unsigned int authenticated: 1;
unsigned int lpm_capable: 1;
unsigned int lpm_devinit_allow: 1;
unsigned int usb2_hw_lpm_capable: 1;
unsigned int usb2_hw_lpm_besl_capable: 1;
unsigned int usb2_hw_lpm_enabled: 1;
unsigned int usb2_hw_lpm_allowed: 1;
unsigned int usb3_lpm_u1_enabled: 1;
unsigned int usb3_lpm_u2_enabled: 1;
int string_langid;
char *product;
char *manufacturer;
char *serial;
struct list_head filelist;
int maxchild;
u32 quirks;
atomic_t urbnum;
unsigned long active_duration;
unsigned long connect_time;
unsigned int do_remote_wakeup: 1;
unsigned int reset_resume: 1;
unsigned int port_is_suspended: 1;
int slot_id;
struct usb2_lpm_parameters l1_params;
struct usb3_lpm_parameters u1_params;
struct usb3_lpm_parameters u2_params;
unsigned int lpm_disable_count;
u16 hub_delay;
unsigned int use_generic_driver: 1;
};
struct usb_devmap {
unsigned long devicemap[2];
};
struct usb_bus {
struct device *controller;
struct device *sysdev;
int busnum;
const char *bus_name;
u8 uses_pio_for_control;
u8 otg_port;
unsigned int is_b_host: 1;
unsigned int b_hnp_enable: 1;
unsigned int no_stop_on_short: 1;
unsigned int no_sg_constraint: 1;
unsigned int sg_tablesize;
int devnum_next;
struct mutex devnum_next_mutex;
struct usb_devmap devmap;
struct usb_device *root_hub;
struct usb_bus *hs_companion;
int bandwidth_allocated;
int bandwidth_int_reqs;
int bandwidth_isoc_reqs;
unsigned int resuming_ports;
};
struct usb_bos_descriptor;
struct usb_ext_cap_descriptor;
struct usb_ss_cap_descriptor;
struct usb_ssp_cap_descriptor;
struct usb_ss_container_id_descriptor;
struct usb_ptm_cap_descriptor;
struct usb_host_bos {
struct usb_bos_descriptor *desc;
struct usb_ext_cap_descriptor *ext_cap;
struct usb_ss_cap_descriptor *ss_cap;
struct usb_ssp_cap_descriptor *ssp_cap;
struct usb_ss_container_id_descriptor *ss_id;
struct usb_ptm_cap_descriptor *ptm_cap;
};
struct usb_bos_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 wTotalLength;
__u8 bNumDeviceCaps;
} __attribute__((packed));
struct usb_ext_cap_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
__le32 bmAttributes;
} __attribute__((packed));
struct usb_ss_cap_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
__u8 bmAttributes;
__le16 wSpeedSupported;
__u8 bFunctionalitySupport;
__u8 bU1devExitLat;
__le16 bU2DevExitLat;
};
struct usb_ssp_cap_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
__u8 bReserved;
__le32 bmAttributes;
__le16 wFunctionalitySupport;
__le16 wReserved;
union {
__le32 legacy_padding;
struct {
struct {} __empty_bmSublinkSpeedAttr;
__le32 bmSublinkSpeedAttr[0];
};
};
};
struct usb_ss_container_id_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
__u8 bReserved;
__u8 ContainerID[16];
};
struct usb_ptm_cap_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
};
struct usb_config_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 wTotalLength;
__u8 bNumInterfaces;
__u8 bConfigurationValue;
__u8 iConfiguration;
__u8 bmAttributes;
__u8 bMaxPower;
} __attribute__((packed));
struct usb_interface_assoc_descriptor;
struct usb_interface;
struct usb_interface_cache;
struct usb_host_config {
struct usb_config_descriptor desc;
char *string;
struct usb_interface_assoc_descriptor *intf_assoc[16];
struct usb_interface *interface[32];
struct usb_interface_cache *intf_cache[32];
unsigned char *extra;
int extralen;
};
struct usb_interface_assoc_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bFirstInterface;
__u8 bInterfaceCount;
__u8 bFunctionClass;
__u8 bFunctionSubClass;
__u8 bFunctionProtocol;
__u8 iFunction;
};
struct usb_host_interface;
struct usb_interface {
struct usb_host_interface *altsetting;
struct usb_host_interface *cur_altsetting;
unsigned int num_altsetting;
struct usb_interface_assoc_descriptor *intf_assoc;
int minor;
enum usb_interface_condition condition;
unsigned int sysfs_files_created: 1;
unsigned int ep_devs_created: 1;
unsigned int unregistering: 1;
unsigned int needs_remote_wakeup: 1;
unsigned int needs_altsetting0: 1;
unsigned int needs_binding: 1;
unsigned int resetting_device: 1;
unsigned int authorized: 1;
enum usb_wireless_status wireless_status;
struct work_struct wireless_status_work;
struct device dev;
struct device *usb_dev;
struct work_struct reset_ws;
};
struct usb_interface_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bInterfaceNumber;
__u8 bAlternateSetting;
__u8 bNumEndpoints;
__u8 bInterfaceClass;
__u8 bInterfaceSubClass;
__u8 bInterfaceProtocol;
__u8 iInterface;
};
struct usb_host_interface {
struct usb_interface_descriptor desc;
int extralen;
unsigned char *extra;
struct usb_host_endpoint *endpoint;
char *string;
};
struct usb_interface_cache {
unsigned int num_altsetting;
struct kref ref;
struct usb_host_interface altsetting[0];
};
enum scsi_timeout_action {
SCSI_EH_DONE = 0,
SCSI_EH_RESET_TIMER = 1,
SCSI_EH_NOT_HANDLED = 2,
};
struct Scsi_Host;
struct scsi_cmnd;
struct scsi_device;
struct scsi_target;
struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, unsigned long);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
void (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
int can_queue;
int this_id;
unsigned short sg_tablesize;
unsigned short sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
unsigned long dma_boundary;
unsigned long virt_boundary_mask;
short cmd_per_lun;
int tag_alloc_policy;
unsigned int track_queue_depth: 1;
unsigned int supported_mode: 2;
unsigned int emulated: 1;
unsigned int skip_settle_delay: 1;
unsigned int no_write_same: 1;
unsigned int host_tagset: 1;
unsigned int queuecommand_may_block: 1;
unsigned int max_host_blocked;
const struct attribute_group **shost_groups;
const struct attribute_group **sdev_groups;
u64 vendor_id;
};
enum scsi_host_state {
SHOST_CREATED = 1,
SHOST_RUNNING = 2,
SHOST_CANCEL = 3,
SHOST_DEL = 4,
SHOST_RECOVERY = 5,
SHOST_CANCEL_RECOVERY = 6,
SHOST_DEL_RECOVERY = 7,
};
struct scsi_transport_template;
struct Scsi_Host {
struct list_head __devices;
struct list_head __targets;
struct list_head starved_list;
spinlock_t default_lock;
spinlock_t *host_lock;
struct mutex scan_mutex;
struct list_head eh_abort_list;
struct list_head eh_cmd_q;
struct task_struct *ehandler;
struct completion *eh_action;
wait_queue_head_t host_wait;
const struct scsi_host_template *hostt;
struct scsi_transport_template *transportt;
struct kref tagset_refcnt;
struct completion tagset_freed;
struct blk_mq_tag_set tag_set;
atomic_t host_blocked;
unsigned int host_failed;
unsigned int host_eh_scheduled;
unsigned int host_no;
int eh_deadline;
unsigned long last_reset;
unsigned int max_channel;
unsigned int max_id;
u64 max_lun;
unsigned int unique_id;
unsigned short max_cmd_len;
int this_id;
int can_queue;
short cmd_per_lun;
unsigned short sg_tablesize;
unsigned short sg_prot_tablesize;
unsigned int max_sectors;
unsigned int opt_sectors;
unsigned int max_segment_size;
unsigned long dma_boundary;
unsigned long virt_boundary_mask;
unsigned int nr_hw_queues;
unsigned int nr_maps;
unsigned int active_mode: 2;
unsigned int host_self_blocked: 1;
unsigned int reverse_ordering: 1;
unsigned int tmf_in_progress: 1;
unsigned int async_scan: 1;
unsigned int eh_noresume: 1;
unsigned int no_write_same: 1;
unsigned int host_tagset: 1;
unsigned int queuecommand_may_block: 1;
unsigned int short_inquiry: 1;
unsigned int no_scsi2_lun_in_cdb: 1;
char work_q_name[20];
struct workqueue_struct *work_q;
struct workqueue_struct *tmf_work_q;
unsigned int max_host_blocked;
unsigned int prot_capabilities;
unsigned char prot_guard_type;
unsigned long base;
unsigned long io_port;
unsigned char n_io_port;
unsigned char dma_channel;
unsigned int irq;
enum scsi_host_state shost_state;
struct device shost_gendev;
struct device shost_dev;
void *shost_data;
struct device *dma_dev;
int rpm_autosuspend_delay;
unsigned long hostdata[0];
};
enum scsi_cmnd_submitter {
SUBMITTED_BY_BLOCK_LAYER = 0,
SUBMITTED_BY_SCSI_ERROR_HANDLER = 1,
SUBMITTED_BY_SCSI_RESET_IOCTL = 2,
} __attribute__((mode(byte)));
enum dma_data_direction {
DMA_BIDIRECTIONAL = 0,
DMA_TO_DEVICE = 1,
DMA_FROM_DEVICE = 2,
DMA_NONE = 3,
};
struct sg_table {
struct scatterlist *sgl;
unsigned int nents;
unsigned int orig_nents;
};
struct scsi_data_buffer {
struct sg_table table;
unsigned int length;
};
struct scsi_cmnd {
struct scsi_device *device;
struct list_head eh_entry;
struct delayed_work abort_work;
struct callback_head rcu;
int eh_eflags;
int budget_token;
unsigned long jiffies_at_alloc;
int retries;
int allowed;
unsigned char prot_op;
unsigned char prot_type;
unsigned char prot_flags;
enum scsi_cmnd_submitter submitter;
unsigned short cmd_len;
enum dma_data_direction sc_data_direction;
unsigned char cmnd[32];
struct scsi_data_buffer sdb;
struct scsi_data_buffer *prot_sdb;
unsigned int underflow;
unsigned int transfersize;
unsigned int resid_len;
unsigned int sense_len;
unsigned char *sense_buffer;
int flags;
unsigned long state;
unsigned int extra_len;
unsigned char *host_scribble;
int result;
};
typedef __u64 blist_flags_t;
enum scsi_device_state {
SDEV_CREATED = 1,
SDEV_RUNNING = 2,
SDEV_CANCEL = 3,
SDEV_DEL = 4,
SDEV_QUIESCE = 5,
SDEV_OFFLINE = 6,
SDEV_TRANSPORT_OFFLINE = 7,
SDEV_BLOCK = 8,
SDEV_CREATED_BLOCK = 9,
};
struct scsi_vpd;
struct scsi_device_handler;
struct bsg_device;
struct scsi_device {
struct Scsi_Host *host;
struct request_queue *request_queue;
struct list_head siblings;
struct list_head same_target_siblings;
struct sbitmap budget_map;
atomic_t device_blocked;
atomic_t restarts;
spinlock_t list_lock;
struct list_head starved_entry;
unsigned short queue_depth;
unsigned short max_queue_depth;
unsigned short last_queue_full_depth;
unsigned short last_queue_full_count;
unsigned long last_queue_full_time;
unsigned long queue_ramp_up_period;
unsigned long last_queue_ramp_up;
unsigned int id;
unsigned int channel;
u64 lun;
unsigned int manufacturer;
unsigned int sector_size;
void *hostdata;
unsigned char type;
char scsi_level;
char inq_periph_qual;
struct mutex inquiry_mutex;
unsigned char inquiry_len;
unsigned char *inquiry;
const char *vendor;
const char *model;
const char *rev;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2;
struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb7;
struct scsi_target *sdev_target;
blist_flags_t sdev_bflags;
unsigned int eh_timeout;
unsigned int manage_system_start_stop: 1;
unsigned int manage_runtime_start_stop: 1;
unsigned int manage_shutdown: 1;
unsigned int force_runtime_start_on_system_start: 1;
unsigned int removable: 1;
unsigned int changed: 1;
unsigned int busy: 1;
unsigned int lockable: 1;
unsigned int locked: 1;
unsigned int borken: 1;
unsigned int disconnect: 1;
unsigned int soft_reset: 1;
unsigned int sdtr: 1;
unsigned int wdtr: 1;
unsigned int ppr: 1;
unsigned int tagged_supported: 1;
unsigned int simple_tags: 1;
unsigned int was_reset: 1;
unsigned int expecting_cc_ua: 1;
unsigned int use_10_for_rw: 1;
unsigned int use_10_for_ms: 1;
unsigned int set_dbd_for_ms: 1;
unsigned int read_before_ms: 1;
unsigned int no_report_opcodes: 1;
unsigned int no_write_same: 1;
unsigned int use_16_for_rw: 1;
unsigned int use_16_for_sync: 1;
unsigned int skip_ms_page_8: 1;
unsigned int skip_ms_page_3f: 1;
unsigned int skip_vpd_pages: 1;
unsigned int try_vpd_pages: 1;
unsigned int use_192_bytes_for_3f: 1;
unsigned int no_start_on_add: 1;
unsigned int allow_restart: 1;
unsigned int start_stop_pwr_cond: 1;
unsigned int no_uld_attach: 1;
unsigned int select_no_atn: 1;
unsigned int fix_capacity: 1;
unsigned int guess_capacity: 1;
unsigned int retry_hwerror: 1;
unsigned int last_sector_bug: 1;
unsigned int no_read_disc_info: 1;
unsigned int no_read_capacity_16: 1;
unsigned int try_rc_10_first: 1;
unsigned int security_supported: 1;
unsigned int is_visible: 1;
unsigned int wce_default_on: 1;
unsigned int no_dif: 1;
unsigned int broken_fua: 1;
unsigned int lun_in_cdb: 1;
unsigned int unmap_limit_for_ws: 1;
unsigned int rpm_autosuspend: 1;
unsigned int ignore_media_change: 1;
unsigned int silence_suspend: 1;
unsigned int no_vpd_size: 1;
unsigned int cdl_supported: 1;
unsigned int cdl_enable: 1;
unsigned int queue_stopped;
bool offline_already;
atomic_t disk_events_disable_depth;
unsigned long supported_events[1];
unsigned long pending_events[1];
struct list_head event_list;
struct work_struct event_work;
unsigned int max_device_blocked;
atomic_t iorequest_cnt;
atomic_t iodone_cnt;
atomic_t ioerr_cnt;
atomic_t iotmo_cnt;
struct device sdev_gendev;
struct device sdev_dev;
struct work_struct requeue_work;
struct scsi_device_handler *handler;
void *handler_data;
size_t dma_drain_len;
void *dma_drain_buf;
unsigned int sg_timeout;
unsigned int sg_reserved_size;
struct bsg_device *bsg_dev;
unsigned char access_state;
struct mutex state_mutex;
enum scsi_device_state sdev_state;
struct task_struct *quiesced_by;
unsigned long sdev_data[0];
};
struct scsi_vpd {
struct callback_head rcu;
int len;
unsigned char data[0];
};
enum scsi_target_state {
STARGET_CREATED = 1,
STARGET_RUNNING = 2,
STARGET_REMOVE = 3,
STARGET_CREATED_REMOVE = 4,
STARGET_DEL = 5,
};
struct scsi_target {
struct scsi_device *starget_sdev_user;
struct list_head siblings;
struct list_head devices;
struct device dev;
struct kref reap_ref;
unsigned int channel;
unsigned int id;
unsigned int create: 1;
unsigned int single_lun: 1;
unsigned int pdt_1f_for_no_lun: 1;
unsigned int no_report_luns: 1;
unsigned int expecting_lun_change: 1;
atomic_t target_busy;
atomic_t target_blocked;
unsigned int can_queue;
unsigned int max_target_blocked;
char scsi_level;
enum scsi_target_state state;
void *hostdata;
unsigned long starget_data[0];
};
enum {
US_FL_SINGLE_LUN = 1,
US_FL_NEED_OVERRIDE = 2,
US_FL_SCM_MULT_TARG = 4,
US_FL_FIX_INQUIRY = 8,
US_FL_FIX_CAPACITY = 16,
US_FL_IGNORE_RESIDUE = 32,
US_FL_BULK32 = 64,
US_FL_NOT_LOCKABLE = 128,
US_FL_GO_SLOW = 256,
US_FL_NO_WP_DETECT = 512,
US_FL_MAX_SECTORS_64 = 1024,
US_FL_IGNORE_DEVICE = 2048,
US_FL_CAPACITY_HEURISTICS = 4096,
US_FL_MAX_SECTORS_MIN = 8192,
US_FL_BULK_IGNORE_TAG = 16384,
US_FL_SANE_SENSE = 32768,
US_FL_CAPACITY_OK = 65536,
US_FL_BAD_SENSE = 131072,
US_FL_NO_READ_DISC_INFO = 262144,
US_FL_NO_READ_CAPACITY_16 = 524288,
US_FL_INITIAL_READ10 = 1048576,
US_FL_WRITE_CACHE = 2097152,
US_FL_NEEDS_CAP16 = 4194304,
US_FL_IGNORE_UAS = 8388608,
US_FL_BROKEN_FUA = 16777216,
US_FL_NO_ATA_1X = 33554432,
US_FL_NO_REPORT_OPCODES = 67108864,
US_FL_MAX_SECTORS_240 = 134217728,
US_FL_NO_REPORT_LUNS = 268435456,
US_FL_ALWAYS_SYNC = 536870912,
US_FL_NO_SAME = 1073741824,
US_FL_SENSE_AFTER_SYNC = 2147483648,
};
enum scsi_host_status {
DID_OK = 0,
DID_NO_CONNECT = 1,
DID_BUS_BUSY = 2,
DID_TIME_OUT = 3,
DID_BAD_TARGET = 4,
DID_ABORT = 5,
DID_PARITY = 6,
DID_ERROR = 7,
DID_RESET = 8,
DID_BAD_INTR = 9,
DID_PASSTHROUGH = 10,
DID_SOFT_ERROR = 11,
DID_IMM_RETRY = 12,
DID_REQUEUE = 13,
DID_TRANSPORT_DISRUPTED = 14,
DID_TRANSPORT_FAILFAST = 15,
DID_TRANSPORT_MARGINAL = 20,
};
enum sam_status {
SAM_STAT_GOOD = 0,
SAM_STAT_CHECK_CONDITION = 2,
SAM_STAT_CONDITION_MET = 4,
SAM_STAT_BUSY = 8,
SAM_STAT_INTERMEDIATE = 16,
SAM_STAT_INTERMEDIATE_CONDITION_MET = 20,
SAM_STAT_RESERVATION_CONFLICT = 24,
SAM_STAT_COMMAND_TERMINATED = 34,
SAM_STAT_TASK_SET_FULL = 40,
SAM_STAT_ACA_ACTIVE = 48,
SAM_STAT_TASK_ABORTED = 64,
};
enum scsi_disposition {
NEEDS_RETRY = 8193,
SUCCESS = 8194,
FAILED = 8195,
QUEUED = 8196,
SOFT_ERROR = 8197,
ADD_TO_MLQUEUE = 8198,
TIMEOUT_ERROR = 8199,
SCSI_RETURN_NOT_HANDLED = 8200,
FAST_IO_FAIL = 8201,
};
enum usb3_link_state {
USB3_LPM_U0 = 0,
USB3_LPM_U1 = 1,
USB3_LPM_U2 = 2,
USB3_LPM_U3 = 3,
};
enum usb_dev_authorize_policy {
USB_DEVICE_AUTHORIZE_NONE = 0,
USB_DEVICE_AUTHORIZE_ALL = 1,
USB_DEVICE_AUTHORIZE_INTERNAL = 2,
};
struct us_data;
typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *);
typedef int (*trans_reset)(struct us_data *);
typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *);
struct urb;
struct usb_sg_request {
int status;
size_t bytes;
spinlock_t lock;
struct usb_device *dev;
int pipe;
int entries;
struct urb **urbs;
int count;
struct completion complete;
};
typedef void (*extra_data_destructor)(void *);
typedef void (*pm_hook)(struct us_data *, int);
struct us_unusual_dev;
struct usb_ctrlrequest;
struct us_data {
struct mutex dev_mutex;
struct usb_device *pusb_dev;
struct usb_interface *pusb_intf;
const struct us_unusual_dev *unusual_dev;
u64 fflags;
unsigned long dflags;
unsigned int send_bulk_pipe;
unsigned int recv_bulk_pipe;
unsigned int send_ctrl_pipe;
unsigned int recv_ctrl_pipe;
unsigned int recv_intr_pipe;
char *transport_name;
char *protocol_name;
__le32 bcs_signature;
u8 subclass;
u8 protocol;
u8 max_lun;
u8 ifnum;
u8 ep_bInterval;
trans_cmnd transport;
trans_reset transport_reset;
proto_cmnd proto_handler;
struct scsi_cmnd *srb;
unsigned int tag;
char scsi_name[32];
struct urb *current_urb;
struct usb_ctrlrequest *cr;
struct usb_sg_request current_sg;
unsigned char *iobuf;
dma_addr_t iobuf_dma;
struct task_struct *ctl_thread;
struct completion cmnd_ready;
struct completion notify;
wait_queue_head_t delay_wait;
struct delayed_work scan_dwork;
void *extra;
extra_data_destructor extra_destructor;
pm_hook suspend_resume_hook;
int use_last_sector_hacks;
int last_sector_retries;
};
struct usb_tt {
struct usb_device *hub;
int multi;
unsigned int think_time;
void *hcpriv;
spinlock_t lock;
struct list_head clear_list;
struct work_struct clear_work;
};
struct us_unusual_dev {
const char *vendorName;
const char *productName;
__u8 useProtocol;
__u8 useTransport;
int (*initFunction)(struct us_data *);
};
typedef void (*usb_complete_t)(struct urb *);
struct usb_iso_packet_descriptor {
unsigned int offset;
unsigned int length;
unsigned int actual_length;
int status;
};
struct usb_anchor;
struct urb {
struct kref kref;
int unlinked;
void *hcpriv;
atomic_t use_count;
atomic_t reject;
struct list_head urb_list;
struct list_head anchor_list;
struct usb_anchor *anchor;
struct usb_device *dev;
struct usb_host_endpoint *ep;
unsigned int pipe;
unsigned int stream_id;
int status;
unsigned int transfer_flags;
void *transfer_buffer;
dma_addr_t transfer_dma;
struct scatterlist *sg;
int num_mapped_sgs;
int num_sgs;
u32 transfer_buffer_length;
u32 actual_length;
unsigned char *setup_packet;
dma_addr_t setup_dma;
int start_frame;
int number_of_packets;
int interval;
int error_count;
void *context;
usb_complete_t complete;
struct usb_iso_packet_descriptor iso_frame_desc[0];
};
struct usb_anchor {
struct list_head urb_list;
wait_queue_head_t wait;
spinlock_t lock;
atomic_t suspend_wakeups;
unsigned int poisoned: 1;
};
struct usb_ctrlrequest {
__u8 bRequestType;
__u8 bRequest;
__le16 wValue;
__le16 wIndex;
__le16 wLength;
};
struct giveback_urb_bh {
bool running;
bool high_prio;
spinlock_t lock;
struct list_head head;
struct work_struct bh;
struct usb_host_endpoint *completing_ep;
};
struct hc_driver;
struct usb_phy;
struct usb_phy_roothub;
struct gen_pool;
struct usb_hcd {
struct usb_bus self;
struct kref kref;
const char *product_desc;
int speed;
char irq_descr[24];
struct timer_list rh_timer;
struct urb *status_urb;
struct work_struct wakeup_work;
struct work_struct died_work;
const struct hc_driver *driver;
struct usb_phy *usb_phy;
struct usb_phy_roothub *phy_roothub;
unsigned long flags;
enum usb_dev_authorize_policy dev_policy;
unsigned int rh_registered: 1;
unsigned int rh_pollable: 1;
unsigned int msix_enabled: 1;
unsigned int msi_enabled: 1;
unsigned int skip_phy_initialization: 1;
unsigned int uses_new_polling: 1;
unsigned int has_tt: 1;
unsigned int amd_resume_bug: 1;
unsigned int can_do_streams: 1;
unsigned int tpl_support: 1;
unsigned int cant_recv_wakeups: 1;
unsigned int irq;
void *regs;
resource_size_t rsrc_start;
resource_size_t rsrc_len;
unsigned int power_budget;
struct giveback_urb_bh high_prio_bh;
struct giveback_urb_bh low_prio_bh;
struct mutex *address0_mutex;
struct mutex *bandwidth_mutex;
struct usb_hcd *shared_hcd;
struct usb_hcd *primary_hcd;
struct dma_pool *pool[4];
int state;
struct gen_pool *localmem_pool;
unsigned long hcd_priv[0];
};
struct hc_driver {
const char *description;
const char *product_desc;
size_t hcd_priv_size;
irqreturn_t (*irq)(struct usb_hcd *);
int flags;
int (*reset)(struct usb_hcd *);
int (*start)(struct usb_hcd *);
int (*pci_suspend)(struct usb_hcd *, bool);
int (*pci_resume)(struct usb_hcd *, pm_message_t);
int (*pci_poweroff_late)(struct usb_hcd *, bool);
void (*stop)(struct usb_hcd *);
void (*shutdown)(struct usb_hcd *);
int (*get_frame_number)(struct usb_hcd *);
int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t);
int (*urb_dequeue)(struct usb_hcd *, struct urb *, int);
int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t);
void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *);
void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *);
void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *);
int (*hub_status_data)(struct usb_hcd *, char *);
int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16);
int (*bus_suspend)(struct usb_hcd *);
int (*bus_resume)(struct usb_hcd *);
int (*start_port_reset)(struct usb_hcd *, unsigned int);
unsigned long (*get_resuming_ports)(struct usb_hcd *);
void (*relinquish_port)(struct usb_hcd *, int);
int (*port_handed_over)(struct usb_hcd *, int);
void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *);
int (*alloc_dev)(struct usb_hcd *, struct usb_device *);
void (*free_dev)(struct usb_hcd *, struct usb_device *);
int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t);
int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t);
int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
int (*address_device)(struct usb_hcd *, struct usb_device *, unsigned int);
int (*enable_device)(struct usb_hcd *, struct usb_device *);
int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
int (*reset_device)(struct usb_hcd *, struct usb_device *);
int (*update_device)(struct usb_hcd *, struct usb_device *);
int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int);
int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state);
int (*find_raw_port_number)(struct usb_hcd *, int);
int (*port_power)(struct usb_hcd *, int, bool);
int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int);
};
typedef void (*exitcall_t)();
struct cpufreq_policy;
struct od_ops {
unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int);
};
struct cpufreq_cpuinfo {
unsigned int max_freq;
unsigned int min_freq;
unsigned int transition_latency;
};
struct plist_head {
struct list_head node_list;
};
enum pm_qos_type {
PM_QOS_UNITIALIZED = 0,
PM_QOS_MAX = 1,
PM_QOS_MIN = 2,
};
struct pm_qos_constraints {
struct plist_head list;
s32 target_value;
s32 default_value;
s32 no_constraint_value;
enum pm_qos_type type;
struct blocking_notifier_head *notifiers;
};
struct freq_constraints {
struct pm_qos_constraints min_freq;
struct blocking_notifier_head min_freq_notifiers;
struct pm_qos_constraints max_freq;
struct blocking_notifier_head max_freq_notifiers;
};
enum cpufreq_table_sorting {
CPUFREQ_TABLE_UNSORTED = 0,
CPUFREQ_TABLE_SORTED_ASCENDING = 1,
CPUFREQ_TABLE_SORTED_DESCENDING = 2,
};
struct cpufreq_stats;
struct clk;
struct cpufreq_governor;
struct freq_qos_request;
struct cpufreq_frequency_table;
struct thermal_cooling_device;
struct cpufreq_policy {
cpumask_var_t cpus;
cpumask_var_t related_cpus;
cpumask_var_t real_cpus;
unsigned int shared_type;
unsigned int cpu;
struct clk *clk;
struct cpufreq_cpuinfo cpuinfo;
unsigned int min;
unsigned int max;
unsigned int cur;
unsigned int suspend_freq;
unsigned int policy;
unsigned int last_policy;
struct cpufreq_governor *governor;
void *governor_data;
char last_governor[16];
struct work_struct update;
struct freq_constraints constraints;
struct freq_qos_request *min_freq_req;
struct freq_qos_request *max_freq_req;
struct cpufreq_frequency_table *freq_table;
enum cpufreq_table_sorting freq_table_sorted;
struct list_head policy_list;
struct kobject kobj;
struct completion kobj_unregister;
struct rw_semaphore rwsem;
bool fast_switch_possible;
bool fast_switch_enabled;
bool strict_target;
bool efficiencies_available;
unsigned int transition_delay_us;
bool dvfs_possible_from_any_cpu;
bool boost_enabled;
unsigned int cached_target_freq;
unsigned int cached_resolved_idx;
bool transition_ongoing;
spinlock_t transition_lock;
wait_queue_head_t transition_wait;
struct task_struct *transition_task;
struct cpufreq_stats *stats;
void *driver_data;
struct thermal_cooling_device *cdev;
struct notifier_block nb_min;
struct notifier_block nb_max;
};
struct cpufreq_governor {
char name[16];
int (*init)(struct cpufreq_policy *);
void (*exit)(struct cpufreq_policy *);
int (*start)(struct cpufreq_policy *);
void (*stop)(struct cpufreq_policy *);
void (*limits)(struct cpufreq_policy *);
ssize_t (*show_setspeed)(struct cpufreq_policy *, char *);
int (*store_setspeed)(struct cpufreq_policy *, unsigned int);
struct list_head governor_list;
struct module *owner;
u8 flags;
};
enum freq_qos_req_type {
FREQ_QOS_MIN = 1,
FREQ_QOS_MAX = 2,
};
struct freq_qos_request {
enum freq_qos_req_type type;
struct plist_node pnode;
struct freq_constraints *qos;
};
struct cpufreq_frequency_table {
unsigned int flags;
unsigned int driver_data;
unsigned int frequency;
};
struct dbs_data;
struct policy_dbs_info;
struct dbs_governor {
struct cpufreq_governor gov;
struct kobj_type kobj_type;
struct dbs_data *gdbs_data;
unsigned int (*gov_dbs_update)(struct cpufreq_policy *);
struct policy_dbs_info * (*alloc)();
void (*free)(struct policy_dbs_info *);
int (*init)(struct dbs_data *);
void (*exit)(struct dbs_data *);
void (*start)(struct cpufreq_policy *);
};
struct gov_attr_set {
struct kobject kobj;
struct list_head policy_list;
struct mutex update_lock;
int usage_count;
};
struct dbs_data {
struct gov_attr_set attr_set;
struct dbs_governor *gov;
void *tuners;
unsigned int ignore_nice_load;
unsigned int sampling_rate;
unsigned int sampling_down_factor;
unsigned int up_threshold;
unsigned int io_is_busy;
};
struct policy_dbs_info {
struct cpufreq_policy *policy;
struct mutex update_mutex;
u64 last_sample_time;
s64 sample_delay_ns;
atomic_t work_count;
struct irq_work irq_work;
struct work_struct work;
struct dbs_data *dbs_data;
struct list_head list;
unsigned int rate_mult;
unsigned int idle_periods;
bool is_shared;
bool work_in_progress;
};
struct governor_attr {
struct attribute attr;
ssize_t (*show)(struct gov_attr_set *, char *);
ssize_t (*store)(struct gov_attr_set *, const char *, size_t);
};
enum {
OD_NORMAL_SAMPLE = 0,
OD_SUB_SAMPLE = 1,
};
struct od_policy_dbs_info {
struct policy_dbs_info policy_dbs;
unsigned int freq_lo;
unsigned int freq_lo_delay_us;
unsigned int freq_hi_delay_us;
unsigned int sample_type: 1;
};
struct od_dbs_tuners {
unsigned int powersave_bias;
};
struct hid_global {
unsigned int usage_page;
__s32 logical_minimum;
__s32 logical_maximum;
__s32 physical_minimum;
__s32 physical_maximum;
__s32 unit_exponent;
unsigned int unit;
unsigned int report_id;
unsigned int report_size;
unsigned int report_count;
};
struct hid_local {
unsigned int usage[12288];
u8 usage_size[12288];
unsigned int collection_index[12288];
unsigned int usage_index;
unsigned int usage_minimum;
unsigned int delimiter_depth;
unsigned int delimiter_branch;
};
struct hid_device;
struct hid_parser {
struct hid_global global;
struct hid_global global_stack[4];
unsigned int global_stack_ptr;
struct hid_local local;
unsigned int *collection_stack;
unsigned int collection_stack_ptr;
unsigned int collection_stack_size;
struct hid_device *device;
unsigned int scan_flags;
};
enum hid_type {
HID_TYPE_OTHER = 0,
HID_TYPE_USBMOUSE = 1,
HID_TYPE_USBNONE = 2,
};
struct hid_report;
struct hid_report_enum {
unsigned int numbered;
struct list_head report_list;
struct hid_report *report_id_hash[256];
};
struct semaphore {
raw_spinlock_t lock;
unsigned int count;
struct list_head wait_list;
};
struct hid_collection;
struct hid_driver;
struct hid_ll_driver;
struct hid_field;
struct hid_usage;
struct hid_device {
__u8 *dev_rdesc;
unsigned int dev_rsize;
__u8 *rdesc;
unsigned int rsize;
struct hid_collection *collection;
unsigned int collection_size;
unsigned int maxcollection;
unsigned int maxapplication;
__u16 bus;
__u16 group;
__u32 vendor;
__u32 product;
__u32 version;
enum hid_type type;
unsigned int country;
struct hid_report_enum report_enum[3];
struct work_struct led_work;
struct semaphore driver_input_lock;
struct device dev;
struct hid_driver *driver;
void *devres_group_id;
const struct hid_ll_driver *ll_driver;
struct mutex ll_open_lock;
unsigned int ll_open_count;
unsigned long status;
unsigned int claimed;
unsigned int quirks;
unsigned int initial_quirks;
bool io_started;
struct list_head inputs;
void *hiddev;
void *hidraw;
char name[128];
char phys[64];
char uniq[64];
void *driver_data;
int (*ff_init)(struct hid_device *);
int (*hiddev_connect)(struct hid_device *, unsigned int);
void (*hiddev_disconnect)(struct hid_device *);
void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
void (*hiddev_report_event)(struct hid_device *, struct hid_report *);
unsigned short debug;
struct dentry *debug_dir;
struct dentry *debug_rdesc;
struct dentry *debug_events;
struct list_head debug_list;
spinlock_t debug_list_lock;
wait_queue_head_t debug_wait;
struct kref ref;
unsigned int id;
};
struct hid_collection {
int parent_idx;
unsigned int type;
unsigned int usage;
unsigned int level;
};
enum hid_report_type {
HID_INPUT_REPORT = 0,
HID_OUTPUT_REPORT = 1,
HID_FEATURE_REPORT = 2,
HID_REPORT_TYPES = 3,
};
struct hid_field_entry;
struct hid_report {
struct list_head list;
struct list_head hidinput_list;
struct list_head field_entry_list;
unsigned int id;
enum hid_report_type type;
unsigned int application;
struct hid_field *field[256];
struct hid_field_entry *field_entries;
unsigned int maxfield;
unsigned int size;
struct hid_device *device;
bool tool_active;
unsigned int tool;
};
struct hid_input;
struct hid_field {
unsigned int physical;
unsigned int logical;
unsigned int application;
struct hid_usage *usage;
unsigned int maxusage;
unsigned int flags;
unsigned int report_offset;
unsigned int report_size;
unsigned int report_count;
unsigned int report_type;
__s32 *value;
__s32 *new_value;
__s32 *usages_priorities;
__s32 logical_minimum;
__s32 logical_maximum;
__s32 physical_minimum;
__s32 physical_maximum;
__s32 unit_exponent;
unsigned int unit;
bool ignored;
struct hid_report *report;
unsigned int index;
struct hid_input *hidinput;
__u16 dpad;
unsigned int slot_idx;
};
struct hid_usage {
unsigned int hid;
unsigned int collection_index;
unsigned int usage_index;
__s8 resolution_multiplier;
__s8 wheel_factor;
__u16 code;
__u8 type;
__s8 hat_min;
__s8 hat_max;
__s8 hat_dir;
__s16 wheel_accumulated;
};
struct input_dev;
struct hid_input {
struct list_head list;
struct hid_report *report;
struct input_dev *input;
const char *name;
struct list_head reports;
unsigned int application;
bool registered;
};
struct input_id {
__u16 bustype;
__u16 vendor;
__u16 product;
__u16 version;
};
struct input_keymap_entry;
struct ff_device;
struct input_dev_poller;
struct input_mt;
struct input_absinfo;
struct input_handle;
struct input_value;
struct input_dev {
const char *name;
const char *phys;
const char *uniq;
struct input_id id;
unsigned long propbit[1];
unsigned long evbit[1];
unsigned long keybit[12];
unsigned long relbit[1];
unsigned long absbit[1];
unsigned long mscbit[1];
unsigned long ledbit[1];
unsigned long sndbit[1];
unsigned long ffbit[2];
unsigned long swbit[1];
unsigned int hint_events_per_packet;
unsigned int keycodemax;
unsigned int keycodesize;
void *keycode;
int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *);
int (*getkeycode)(struct input_dev *, struct input_keymap_entry *);
struct ff_device *ff;
struct input_dev_poller *poller;
unsigned int repeat_key;
struct timer_list timer;
int rep[2];
struct input_mt *mt;
struct input_absinfo *absinfo;
unsigned long key[12];
unsigned long led[1];
unsigned long snd[1];
unsigned long sw[1];
int (*open)(struct input_dev *);
void (*close)(struct input_dev *);
int (*flush)(struct input_dev *, struct file *);
int (*event)(struct input_dev *, unsigned int, unsigned int, int);
struct input_handle __attribute__((btf_type_tag("rcu"))) *grab;
spinlock_t event_lock;
struct mutex mutex;
unsigned int users;
bool going_away;
struct device dev;
struct list_head h_list;
struct list_head node;
unsigned int num_vals;
unsigned int max_vals;
struct input_value *vals;
bool devres_managed;
ktime_t timestamp[3];
bool inhibited;
};
struct input_keymap_entry {
__u8 flags;
__u8 len;
__u16 index;
__u32 keycode;
__u8 scancode[32];
};
struct ff_effect;
struct ff_device {
int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *);
int (*erase)(struct input_dev *, int);
int (*playback)(struct input_dev *, int, int);
void (*set_gain)(struct input_dev *, u16);
void (*set_autocenter)(struct input_dev *, u16);
void (*destroy)(struct ff_device *);
void *private;
unsigned long ffbit[2];
struct mutex mutex;
int max_effects;
struct ff_effect *effects;
struct file *effect_owners[0];
};
struct ff_envelope {
__u16 attack_length;
__u16 attack_level;
__u16 fade_length;
__u16 fade_level;
};
struct ff_constant_effect {
__s16 level;
struct ff_envelope envelope;
};
struct ff_ramp_effect {
__s16 start_level;
__s16 end_level;
struct ff_envelope envelope;
};
struct ff_periodic_effect {
__u16 waveform;
__u16 period;
__s16 magnitude;
__s16 offset;
__u16 phase;
struct ff_envelope envelope;
__u32 custom_len;
__s16 __attribute__((btf_type_tag("user"))) *custom_data;
};
struct ff_condition_effect {
__u16 right_saturation;
__u16 left_saturation;
__s16 right_coeff;
__s16 left_coeff;
__u16 deadband;
__s16 center;
};
struct ff_rumble_effect {
__u16 strong_magnitude;
__u16 weak_magnitude;
};
struct ff_trigger {
__u16 button;
__u16 interval;
};
struct ff_replay {
__u16 length;
__u16 delay;
};
struct ff_effect {
__u16 type;
__s16 id;
__u16 direction;
struct ff_trigger trigger;
struct ff_replay replay;
union {
struct ff_constant_effect constant;
struct ff_ramp_effect ramp;
struct ff_periodic_effect periodic;
struct ff_condition_effect condition[2];
struct ff_rumble_effect rumble;
} u;
};
struct input_absinfo {
__s32 value;
__s32 minimum;
__s32 maximum;
__s32 fuzz;
__s32 flat;
__s32 resolution;
};
struct input_handler;
struct input_handle {
void *private;
int open;
const char *name;
struct input_dev *dev;
struct input_handler *handler;
struct list_head d_node;
struct list_head h_node;
};
struct input_device_id;
struct input_handler {
void *private;
void (*event)(struct input_handle *, unsigned int, unsigned int, int);
void (*events)(struct input_handle *, const struct input_value *, unsigned int);
bool (*filter)(struct input_handle *, unsigned int, unsigned int, int);
bool (*match)(struct input_handler *, struct input_dev *);
int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *);
void (*disconnect)(struct input_handle *);
void (*start)(struct input_handle *);
bool legacy_minors;
int minor;
const char *name;
const struct input_device_id *id_table;
struct list_head h_list;
struct list_head node;
};
struct input_value {
__u16 type;
__u16 code;
__s32 value;
};
struct input_device_id {
kernel_ulong_t flags;
__u16 bustype;
__u16 vendor;
__u16 product;
__u16 version;
kernel_ulong_t evbit[1];
kernel_ulong_t keybit[12];
kernel_ulong_t relbit[1];
kernel_ulong_t absbit[1];
kernel_ulong_t mscbit[1];
kernel_ulong_t ledbit[1];
kernel_ulong_t sndbit[1];
kernel_ulong_t ffbit[2];
kernel_ulong_t swbit[1];
kernel_ulong_t propbit[1];
kernel_ulong_t driver_info;
};
struct hid_field_entry {
struct list_head list;
struct hid_field *field;
unsigned int index;
__s32 priority;
};
struct hid_device_id;
struct hid_report_id;
struct hid_usage_id;
struct hid_driver {
char *name;
const struct hid_device_id *id_table;
struct list_head dyn_list;
spinlock_t dyn_lock;
bool (*match)(struct hid_device *, bool);
int (*probe)(struct hid_device *, const struct hid_device_id *);
void (*remove)(struct hid_device *);
const struct hid_report_id *report_table;
int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int);
const struct hid_usage_id *usage_table;
int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
void (*report)(struct hid_device *, struct hid_report *);
__u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *);
int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *);
int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *);
int (*input_configured)(struct hid_device *, struct hid_input *);
void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *);
int (*suspend)(struct hid_device *, pm_message_t);
int (*resume)(struct hid_device *);
int (*reset_resume)(struct hid_device *);
struct device_driver driver;
};
struct hid_device_id {
__u16 bus;
__u16 group;
__u32 vendor;
__u32 product;
kernel_ulong_t driver_data;
};
struct hid_report_id {
__u32 report_type;
};
struct hid_usage_id {
__u32 usage_hid;
__u32 usage_type;
__u32 usage_code;
};
struct hid_ll_driver {
int (*start)(struct hid_device *);
void (*stop)(struct hid_device *);
int (*open)(struct hid_device *);
void (*close)(struct hid_device *);
int (*power)(struct hid_device *, int);
int (*parse)(struct hid_device *);
void (*request)(struct hid_device *, struct hid_report *, int);
int (*wait)(struct hid_device *);
int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int);
int (*output_report)(struct hid_device *, __u8 *, size_t);
int (*idle)(struct hid_device *, int, int, int);
bool (*may_wakeup)(struct hid_device *);
unsigned int max_buffer_size;
};
struct hid_item {
unsigned int format;
__u8 size;
__u8 type;
__u8 tag;
union {
__u8 u8;
__s8 s8;
__u16 u16;
__s16 s16;
__u32 u32;
__s32 s32;
__u8 *longdata;
} data;
};
struct driver_attribute {
struct attribute attr;
ssize_t (*show)(struct device_driver *, char *);
ssize_t (*store)(struct device_driver *, const char *, size_t);
};
enum hid_class_request {
HID_REQ_GET_REPORT = 1,
HID_REQ_GET_IDLE = 2,
HID_REQ_GET_PROTOCOL = 3,
HID_REQ_SET_REPORT = 9,
HID_REQ_SET_IDLE = 10,
HID_REQ_SET_PROTOCOL = 11,
};
struct hiddev {
int minor;
int exist;
int open;
struct mutex existancelock;
wait_queue_head_t wait;
struct hid_device *hid;
struct list_head list;
spinlock_t list_lock;
bool initialized;
};
struct hidraw {
unsigned int minor;
int exist;
int open;
wait_queue_head_t wait;
struct hid_device *hid;
struct device *dev;
spinlock_t list_lock;
struct list_head list;
};
struct hid_dynid {
struct list_head list;
struct hid_device_id id;
};
struct page_pool_params_fast {
unsigned int flags;
unsigned int order;
unsigned int pool_size;
int nid;
struct device *dev;
struct napi_struct *napi;
enum dma_data_direction dma_dir;
unsigned int max_len;
unsigned int offset;
};
struct page_pool_alloc_stats {
u64 fast;
u64 slow;
u64 slow_high_order;
u64 empty;
u64 refill;
u64 waive;
};
struct pp_alloc_cache {
u32 count;
struct page *cache[128];
};
struct ptr_ring {
int producer;
spinlock_t producer_lock;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
int consumer_head;
int consumer_tail;
spinlock_t consumer_lock;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
int size;
int batch;
void **queue;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct page_pool_params_slow {
struct net_device *netdev;
void (*init_callback)(struct page *, void *);
void *init_arg;
};
struct page_pool_recycle_stats;
struct page_pool {
struct page_pool_params_fast p;
int cpuid;
bool has_init_callback;
long frag_users;
struct page *frag_page;
unsigned int frag_offset;
u32 pages_state_hold_cnt;
struct delayed_work release_dw;
void (*disconnect)(void *);
unsigned long defer_start;
unsigned long defer_warn;
struct page_pool_alloc_stats alloc_stats;
u32 xdp_mem_id;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct pp_alloc_cache alloc;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct ptr_ring ring;
struct page_pool_recycle_stats __attribute__((btf_type_tag("percpu"))) *recycle_stats;
atomic_t pages_state_release_cnt;
refcount_t user_cnt;
u64 destroy_cnt;
struct page_pool_params_slow slow;
struct {
struct hlist_node list;
u64 detach_time;
u32 napi_id;
u32 id;
} user;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef __u64 __addrpair;
typedef __u32 __portpair;
struct hlist_nulls_node {
struct hlist_nulls_node *next;
struct hlist_nulls_node **pprev;
};
struct proto;
struct sock_common {
union {
__addrpair skc_addrpair;
struct {
__be32 skc_daddr;
__be32 skc_rcv_saddr;
};
};
union {
unsigned int skc_hash;
__u16 skc_u16hashes[2];
};
union {
__portpair skc_portpair;
struct {
__be16 skc_dport;
__u16 skc_num;
};
};
unsigned short skc_family;
volatile unsigned char skc_state;
unsigned char skc_reuse: 4;
unsigned char skc_reuseport: 1;
unsigned char skc_ipv6only: 1;
unsigned char skc_net_refcnt: 1;
int skc_bound_dev_if;
union {
struct hlist_node skc_bind_node;
struct hlist_node skc_portaddr_node;
};
struct proto *skc_prot;
possible_net_t skc_net;
struct in6_addr skc_v6_daddr;
struct in6_addr skc_v6_rcv_saddr;
atomic64_t skc_cookie;
union {
unsigned long skc_flags;
struct sock *skc_listener;
struct inet_timewait_death_row *skc_tw_dr;
};
int skc_dontcopy_begin[0];
union {
struct hlist_node skc_node;
struct hlist_nulls_node skc_nulls_node;
};
unsigned short skc_tx_queue_mapping;
unsigned short skc_rx_queue_mapping;
union {
int skc_incoming_cpu;
u32 skc_rcv_wnd;
u32 skc_tw_rcv_nxt;
};
refcount_t skc_refcnt;
int skc_dontcopy_end[0];
union {
u32 skc_rxhash;
u32 skc_window_clamp;
u32 skc_tw_snd_nxt;
};
};
typedef struct {
spinlock_t slock;
int owned;
wait_queue_head_t wq;
struct lockdep_map dep_map;
} socket_lock_t;
struct sock_cgroup_data {
struct cgroup *cgroup;
u32 classid;
};
typedef struct {} netns_tracker;
struct sk_filter;
struct sock_reuseport;
struct sock {
struct sock_common __sk_common;
__u8 __cacheline_group_begin__sock_write_rx[0];
atomic_t sk_drops;
__s32 sk_peek_off;
struct sk_buff_head sk_error_queue;
struct sk_buff_head sk_receive_queue;
struct {
atomic_t rmem_alloc;
int len;
struct sk_buff *head;
struct sk_buff *tail;
} sk_backlog;
__u8 __cacheline_group_end__sock_write_rx[0];
__u8 __cacheline_group_begin__sock_read_rx[0];
struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_rx_dst;
int sk_rx_dst_ifindex;
u32 sk_rx_dst_cookie;
unsigned int sk_ll_usec;
unsigned int sk_napi_id;
u16 sk_busy_poll_budget;
u8 sk_prefer_busy_poll;
u8 sk_userlocks;
int sk_rcvbuf;
struct sk_filter __attribute__((btf_type_tag("rcu"))) *sk_filter;
union {
struct socket_wq __attribute__((btf_type_tag("rcu"))) *sk_wq;
struct socket_wq *sk_wq_raw;
};
void (*sk_data_ready)(struct sock *);
long sk_rcvtimeo;
int sk_rcvlowat;
__u8 __cacheline_group_end__sock_read_rx[0];
__u8 __cacheline_group_begin__sock_read_rxtx[0];
int sk_err;
struct socket *sk_socket;
struct mem_cgroup *sk_memcg;
__u8 __cacheline_group_end__sock_read_rxtx[0];
__u8 __cacheline_group_begin__sock_write_rxtx[0];
socket_lock_t sk_lock;
u32 sk_reserved_mem;
int sk_forward_alloc;
u32 sk_tsflags;
__u8 __cacheline_group_end__sock_write_rxtx[0];
__u8 __cacheline_group_begin__sock_write_tx[0];
int sk_write_pending;
atomic_t sk_omem_alloc;
int sk_sndbuf;
int sk_wmem_queued;
refcount_t sk_wmem_alloc;
unsigned long sk_tsq_flags;
union {
struct sk_buff *sk_send_head;
struct rb_root tcp_rtx_queue;
};
struct sk_buff_head sk_write_queue;
u32 sk_dst_pending_confirm;
u32 sk_pacing_status;
struct page_frag sk_frag;
struct timer_list sk_timer;
unsigned long sk_pacing_rate;
atomic_t sk_zckey;
atomic_t sk_tskey;
__u8 __cacheline_group_end__sock_write_tx[0];
__u8 __cacheline_group_begin__sock_read_tx[0];
unsigned long sk_max_pacing_rate;
long sk_sndtimeo;
u32 sk_priority;
u32 sk_mark;
struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_dst_cache;
netdev_features_t sk_route_caps;
u16 sk_gso_type;
u16 sk_gso_max_segs;
unsigned int sk_gso_max_size;
gfp_t sk_allocation;
u32 sk_txhash;
u8 sk_pacing_shift;
bool sk_use_task_frag;
__u8 __cacheline_group_end__sock_read_tx[0];
u8 sk_gso_disabled: 1;
u8 sk_kern_sock: 1;
u8 sk_no_check_tx: 1;
u8 sk_no_check_rx: 1;
u8 sk_shutdown;
u16 sk_type;
u16 sk_protocol;
unsigned long sk_lingertime;
struct proto *sk_prot_creator;
rwlock_t sk_callback_lock;
int sk_err_soft;
u32 sk_ack_backlog;
u32 sk_max_ack_backlog;
kuid_t sk_uid;
spinlock_t sk_peer_lock;
int sk_bind_phc;
struct pid *sk_peer_pid;
const struct cred *sk_peer_cred;
ktime_t sk_stamp;
int sk_disconnects;
u8 sk_txrehash;
u8 sk_clockid;
u8 sk_txtime_deadline_mode: 1;
u8 sk_txtime_report_errors: 1;
u8 sk_txtime_unused: 6;
void *sk_user_data;
struct sock_cgroup_data sk_cgrp_data;
void (*sk_state_change)(struct sock *);
void (*sk_write_space)(struct sock *);
void (*sk_error_report)(struct sock *);
int (*sk_backlog_rcv)(struct sock *, struct sk_buff *);
void (*sk_destruct)(struct sock *);
struct sock_reuseport __attribute__((btf_type_tag("rcu"))) *sk_reuseport_cb;
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *sk_bpf_storage;
struct callback_head sk_rcu;
netns_tracker ns_tracker;
};
struct smc_hashinfo;
typedef unsigned int slab_flags_t;
struct sk_psock;
struct request_sock_ops;
struct timewait_sock_ops;
struct raw_hashinfo;
struct proto {
void (*close)(struct sock *, long);
int (*pre_connect)(struct sock *, struct sockaddr *, int);
int (*connect)(struct sock *, struct sockaddr *, int);
int (*disconnect)(struct sock *, int);
struct sock * (*accept)(struct sock *, int, int *, bool);
int (*ioctl)(struct sock *, int, int *);
int (*init)(struct sock *);
void (*destroy)(struct sock *);
void (*shutdown)(struct sock *, int);
int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
void (*keepalive)(struct sock *, int);
int (*sendmsg)(struct sock *, struct msghdr *, size_t);
int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *);
void (*splice_eof)(struct socket *);
int (*bind)(struct sock *, struct sockaddr *, int);
int (*bind_add)(struct sock *, struct sockaddr *, int);
int (*backlog_rcv)(struct sock *, struct sk_buff *);
bool (*bpf_bypass_getsockopt)(int, int);
void (*release_cb)(struct sock *);
int (*hash)(struct sock *);
void (*unhash)(struct sock *);
void (*rehash)(struct sock *);
int (*get_port)(struct sock *, unsigned short);
void (*put_port)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
unsigned int inuse_idx;
bool (*stream_memory_free)(const struct sock *, int);
bool (*sock_is_readable)(struct sock *);
void (*enter_memory_pressure)(struct sock *);
void (*leave_memory_pressure)(struct sock *);
atomic_long_t *memory_allocated;
int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc;
struct percpu_counter *sockets_allocated;
unsigned long *memory_pressure;
long *sysctl_mem;
int *sysctl_wmem;
int *sysctl_rmem;
u32 sysctl_wmem_offset;
u32 sysctl_rmem_offset;
int max_header;
bool no_autobind;
struct kmem_cache *slab;
unsigned int obj_size;
unsigned int ipv6_pinfo_offset;
slab_flags_t slab_flags;
unsigned int useroffset;
unsigned int usersize;
unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count;
struct request_sock_ops *rsk_prot;
struct timewait_sock_ops *twsk_prot;
union {
struct inet_hashinfo *hashinfo;
struct udp_table *udp_table;
struct raw_hashinfo *raw_hash;
struct smc_hashinfo *smc_hash;
} h;
struct module *owner;
char name[32];
struct list_head node;
int (*diag_destroy)(struct sock *, int);
};
struct bpf_mem_caches;
struct bpf_mem_cache;
struct bpf_mem_alloc {
struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches;
struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache;
struct obj_cgroup *objcg;
bool percpu;
struct work_struct work;
};
struct bpf_local_storage_map_bucket;
struct bpf_local_storage_map {
struct bpf_map map;
struct bpf_local_storage_map_bucket *buckets;
u32 bucket_log;
u16 elem_size;
u16 cache_idx;
struct bpf_mem_alloc selem_ma;
struct bpf_mem_alloc storage_ma;
bool bpf_ma;
};
struct bpf_local_storage_map_bucket {
struct hlist_head list;
raw_spinlock_t lock;
};
struct bpf_mem_cache {
struct llist_head free_llist;
local_t active;
struct llist_head free_llist_extra;
struct irq_work refill_work;
struct obj_cgroup *objcg;
int unit_size;
int free_cnt;
int low_watermark;
int high_watermark;
int batch;
int percpu_size;
bool draining;
struct bpf_mem_cache *tgt;
struct llist_head free_by_rcu;
struct llist_node *free_by_rcu_tail;
struct llist_head waiting_for_gp;
struct llist_node *waiting_for_gp_tail;
struct callback_head rcu;
atomic_t call_rcu_in_progress;
struct llist_head free_llist_extra_rcu;
struct llist_head free_by_rcu_ttrace;
struct llist_head waiting_for_gp_ttrace;
struct callback_head rcu_ttrace;
atomic_t call_rcu_ttrace_in_progress;
};
struct bpf_mem_caches {
struct bpf_mem_cache cache[11];
};
struct bpf_local_storage_data {
struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap;
u8 data[0];
};
struct neigh_parms {
possible_net_t net;
struct net_device *dev;
netdevice_tracker dev_tracker;
struct list_head list;
int (*neigh_setup)(struct neighbour *);
struct neigh_table *tbl;
void *sysctl_table;
int dead;
refcount_t refcnt;
struct callback_head callback_head;
int reachable_time;
u32 qlen;
int data[14];
unsigned long data_state[1];
};
struct inet_ehash_bucket;
struct inet_bind_hashbucket;
struct inet_listen_hashbucket;
struct inet_hashinfo {
struct inet_ehash_bucket *ehash;
spinlock_t *ehash_locks;
unsigned int ehash_mask;
unsigned int ehash_locks_mask;
struct kmem_cache *bind_bucket_cachep;
struct inet_bind_hashbucket *bhash;
struct kmem_cache *bind2_bucket_cachep;
struct inet_bind_hashbucket *bhash2;
unsigned int bhash_size;
unsigned int lhash2_mask;
struct inet_listen_hashbucket *lhash2;
bool pernet;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct hlist_nulls_head {
struct hlist_nulls_node *first;
};
struct inet_ehash_bucket {
struct hlist_nulls_head chain;
};
struct inet_bind_hashbucket {
spinlock_t lock;
struct hlist_head chain;
};
struct inet_listen_hashbucket {
spinlock_t lock;
struct hlist_nulls_head nulls_head;
};
struct inet_peer_base {
struct rb_root rb_root;
seqlock_t lock;
int total;
};
struct ack_sample {
u32 pkts_acked;
s32 rtt_us;
u32 in_flight;
};
struct rate_sample {
u64 prior_mstamp;
u32 prior_delivered;
u32 prior_delivered_ce;
s32 delivered;
s32 delivered_ce;
long interval_us;
u32 snd_interval_us;
u32 rcv_interval_us;
long rtt_us;
int losses;
u32 acked_sacked;
u32 prior_in_flight;
u32 last_end_seq;
bool is_app_limited;
bool is_retrans;
bool is_ack_delayed;
};
struct fib_notifier_ops {
int family;
struct list_head list;
unsigned int (*fib_seq_read)(struct net *);
int (*fib_dump)(struct net *, struct notifier_block *, struct netlink_ext_ack *);
struct module *owner;
struct callback_head rcu;
};
struct lwtunnel_state {
__u16 type;
__u16 flags;
__u16 headroom;
atomic_t refcnt;
int (*orig_output)(struct net *, struct sock *, struct sk_buff *);
int (*orig_input)(struct sk_buff *);
struct callback_head rcu;
__u8 data[0];
};
struct pneigh_entry;
struct neigh_statistics;
struct neigh_hash_table;
struct neigh_table {
int family;
unsigned int entry_size;
unsigned int key_len;
__be16 protocol;
__u32 (*hash)(const void *, const struct net_device *, __u32 *);
bool (*key_eq)(const struct neighbour *, const void *);
int (*constructor)(struct neighbour *);
int (*pconstructor)(struct pneigh_entry *);
void (*pdestructor)(struct pneigh_entry *);
void (*proxy_redo)(struct sk_buff *);
int (*is_multicast)(const void *);
bool (*allow_add)(const struct net_device *, struct netlink_ext_ack *);
char *id;
struct neigh_parms parms;
struct list_head parms_list;
int gc_interval;
int gc_thresh1;
int gc_thresh2;
int gc_thresh3;
unsigned long last_flush;
struct delayed_work gc_work;
struct delayed_work managed_work;
struct timer_list proxy_timer;
struct sk_buff_head proxy_queue;
atomic_t entries;
atomic_t gc_entries;
struct list_head gc_list;
struct list_head managed_list;
rwlock_t lock;
unsigned long last_rand;
struct neigh_statistics __attribute__((btf_type_tag("percpu"))) *stats;
struct neigh_hash_table __attribute__((btf_type_tag("rcu"))) *nht;
struct pneigh_entry **phash_buckets;
};
struct pneigh_entry {
struct pneigh_entry *next;
possible_net_t net;
struct net_device *dev;
netdevice_tracker dev_tracker;
u32 flags;
u8 protocol;
u32 key[0];
};
struct neigh_statistics {
unsigned long allocs;
unsigned long destroys;
unsigned long hash_grows;
unsigned long res_failed;
unsigned long lookups;
unsigned long hits;
unsigned long rcv_probes_mcast;
unsigned long rcv_probes_ucast;
unsigned long periodic_gc_runs;
unsigned long forced_gc_runs;
unsigned long unres_discards;
unsigned long table_fulls;
};
struct neigh_hash_table {
struct neighbour __attribute__((btf_type_tag("rcu"))) **hash_buckets;
unsigned int hash_shift;
__u32 hash_rnd[4];
struct callback_head rcu;
};
struct neigh_ops {
int family;
void (*solicit)(struct neighbour *, struct sk_buff *);
void (*error_report)(struct neighbour *, struct sk_buff *);
int (*output)(struct neighbour *, struct sk_buff *);
int (*connected_output)(struct neighbour *, struct sk_buff *);
};
struct nf_hook_state {
u8 hook;
u8 pf;
struct net_device *in;
struct net_device *out;
struct sock *sk;
struct net *net;
int (*okfn)(struct net *, struct sock *, struct sk_buff *);
};
struct xdp_mem_info {
u32 type;
u32 id;
};
struct xdp_frame {
void *data;
u16 len;
u16 headroom;
u32 metasize;
struct xdp_mem_info mem;
struct net_device *dev_rx;
u32 frame_sz;
u32 flags;
};
struct xdp_rxq_info;
struct xdp_txq_info;
struct xdp_buff {
void *data;
void *data_end;
void *data_meta;
void *data_hard_start;
struct xdp_rxq_info *rxq;
struct xdp_txq_info *txq;
u32 frame_sz;
u32 flags;
};
struct xdp_rxq_info {
struct net_device *dev;
u32 queue_index;
u32 reg_state;
struct xdp_mem_info mem;
unsigned int napi_id;
u32 frag_size;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct xdp_txq_info {
struct net_device *dev;
};
enum hwtstamp_source {
HWTSTAMP_SOURCE_NETDEV = 0,
HWTSTAMP_SOURCE_PHYLIB = 1,
};
struct kernel_hwtstamp_config {
int flags;
int tx_type;
int rx_filter;
struct ifreq *ifr;
bool copied_to_user;
enum hwtstamp_source source;
};
struct ip6_sf_list;
struct ifmcaddr6 {
struct in6_addr mca_addr;
struct inet6_dev *idev;
struct ifmcaddr6 __attribute__((btf_type_tag("rcu"))) *next;
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_sources;
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *mca_tomb;
unsigned int mca_sfmode;
unsigned char mca_crcount;
unsigned long mca_sfcount[2];
struct delayed_work mca_work;
unsigned int mca_flags;
int mca_users;
refcount_t mca_refcnt;
unsigned long mca_cstamp;
unsigned long mca_tstamp;
struct callback_head rcu;
};
struct ip6_sf_list {
struct ip6_sf_list __attribute__((btf_type_tag("rcu"))) *sf_next;
struct in6_addr sf_addr;
unsigned long sf_count[2];
unsigned char sf_gsresp;
unsigned char sf_oldin;
unsigned char sf_crcount;
struct callback_head rcu;
};
struct ifacaddr6 {
struct in6_addr aca_addr;
struct fib6_info *aca_rt;
struct ifacaddr6 __attribute__((btf_type_tag("rcu"))) *aca_next;
struct hlist_node aca_addr_lst;
int aca_users;
refcount_t aca_refcnt;
unsigned long aca_cstamp;
unsigned long aca_tstamp;
struct callback_head rcu;
};
struct icmpv6_mib_device {
atomic_long_t mibs[7];
};
struct icmpv6msg_mib_device {
atomic_long_t mibs[512];
};
struct rps_map;
struct rps_dev_flow_table;
struct netdev_rx_queue {
struct xdp_rxq_info xdp_rxq;
struct rps_map __attribute__((btf_type_tag("rcu"))) *rps_map;
struct rps_dev_flow_table __attribute__((btf_type_tag("rcu"))) *rps_flow_table;
struct kobject kobj;
struct net_device *dev;
netdevice_tracker dev_tracker;
struct napi_struct *napi;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rps_map {
unsigned int len;
struct callback_head rcu;
u16 cpus[0];
};
struct rps_dev_flow {
u16 cpu;
u16 filter;
unsigned int last_qtail;
};
struct rps_dev_flow_table {
unsigned int mask;
struct callback_head rcu;
struct rps_dev_flow flows[0];
};
struct xdp_md {
__u32 data;
__u32 data_end;
__u32 data_meta;
__u32 ingress_ifindex;
__u32 rx_queue_index;
__u32 egress_ifindex;
};
struct nd_opt_hdr {
__u8 nd_opt_type;
__u8 nd_opt_len;
};
struct ndisc_options {
struct nd_opt_hdr *nd_opt_array[15];
struct nd_opt_hdr *nd_useropts;
struct nd_opt_hdr *nd_useropts_end;
};
struct prefix_info {
__u8 type;
__u8 length;
__u8 prefix_len;
union {
__u8 flags;
struct {
__u8 reserved: 6;
__u8 autoconf: 1;
__u8 onlink: 1;
};
};
__be32 valid;
__be32 prefered;
__be32 reserved2;
struct in6_addr prefix;
};
struct bpf_cgroup_storage_key {
__u64 cgroup_inode_id;
__u32 attach_type;
};
struct bpf_storage_buffer;
struct bpf_cgroup_storage_map;
struct bpf_cgroup_storage {
union {
struct bpf_storage_buffer *buf;
void __attribute__((btf_type_tag("percpu"))) *percpu_buf;
};
struct bpf_cgroup_storage_map *map;
struct bpf_cgroup_storage_key key;
struct list_head list_map;
struct list_head list_cg;
struct rb_node node;
struct callback_head rcu;
};
struct bpf_storage_buffer {
struct callback_head rcu;
char data[0];
};
struct request_sock;
struct request_sock_ops {
int family;
unsigned int obj_size;
struct kmem_cache *slab;
char *slab_name;
int (*rtx_syn_ack)(const struct sock *, struct request_sock *);
void (*send_ack)(const struct sock *, struct sk_buff *, struct request_sock *);
void (*send_reset)(const struct sock *, struct sk_buff *);
void (*destructor)(struct request_sock *);
void (*syn_ack_timeout)(const struct request_sock *);
};
struct saved_syn;
struct request_sock {
struct sock_common __req_common;
struct request_sock *dl_next;
u16 mss;
u8 num_retrans;
u8 syncookie: 1;
u8 num_timeout: 7;
u32 ts_recent;
struct timer_list rsk_timer;
const struct request_sock_ops *rsk_ops;
struct sock *sk;
struct saved_syn *saved_syn;
u32 secid;
u32 peer_secid;
u32 timeout;
};
struct saved_syn {
u32 mac_hdrlen;
u32 network_hdrlen;
u32 tcp_hdrlen;
u8 data[0];
};
struct timewait_sock_ops {
struct kmem_cache *twsk_slab;
char *twsk_slab_name;
unsigned int twsk_obj_size;
int (*twsk_unique)(struct sock *, struct sock *, void *);
void (*twsk_destructor)(struct sock *);
};
struct sk_filter {
refcount_t refcnt;
struct callback_head rcu;
struct bpf_prog *prog;
};
struct sock_reuseport {
struct callback_head rcu;
u16 max_socks;
u16 num_socks;
u16 num_closed_socks;
u16 incoming_cpu;
unsigned int synq_overflow_ts;
unsigned int reuseport_id;
unsigned int bind_inany: 1;
unsigned int has_conns: 1;
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *prog;
struct sock *socks[0];
};
struct page_pool_recycle_stats {
u64 cached;
u64 cache_full;
u64 ring;
u64 ring_full;
u64 released_refcnt;
};
typedef void (*btf_trace_bpf_trigger_tp)(void *, int);
typedef void (*btf_trace_bpf_test_finish)(void *, int *);
typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32);
struct btf_id_set8;
struct btf_kfunc_id_set {
struct module *owner;
struct btf_id_set8 *set;
btf_kfunc_filter_t filter;
};
struct btf_id_set8 {
u32 cnt;
u32 flags;
struct {
u32 id;
u32 flags;
} pairs[0];
};
struct bpf_test_timer {
enum {
NO_PREEMPT = 0,
NO_MIGRATE = 1,
} mode;
u32 i;
u64 time_start;
u64 time_spent;
};
enum sk_action {
SK_DROP = 0,
SK_PASS = 1,
};
enum nf_inet_hooks {
NF_INET_PRE_ROUTING = 0,
NF_INET_LOCAL_IN = 1,
NF_INET_FORWARD = 2,
NF_INET_LOCAL_OUT = 3,
NF_INET_POST_ROUTING = 4,
NF_INET_NUMHOOKS = 5,
NF_INET_INGRESS = 5,
};
enum {
NFPROTO_UNSPEC = 0,
NFPROTO_INET = 1,
NFPROTO_IPV4 = 2,
NFPROTO_ARP = 3,
NFPROTO_NETDEV = 5,
NFPROTO_BRIDGE = 7,
NFPROTO_IPV6 = 10,
NFPROTO_NUMPROTO = 11,
};
enum {
EVENT_FILE_FL_ENABLED = 1,
EVENT_FILE_FL_RECORDED_CMD = 2,
EVENT_FILE_FL_RECORDED_TGID = 4,
EVENT_FILE_FL_FILTERED = 8,
EVENT_FILE_FL_NO_SET_FILTER = 16,
EVENT_FILE_FL_SOFT_MODE = 32,
EVENT_FILE_FL_SOFT_DISABLED = 64,
EVENT_FILE_FL_TRIGGER_MODE = 128,
EVENT_FILE_FL_TRIGGER_COND = 256,
EVENT_FILE_FL_PID_FILTER = 512,
EVENT_FILE_FL_WAS_ENABLED = 1024,
EVENT_FILE_FL_FREED = 2048,
};
enum bpf_cgroup_storage_type {
BPF_CGROUP_STORAGE_SHARED = 0,
BPF_CGROUP_STORAGE_PERCPU = 1,
__BPF_CGROUP_STORAGE_MAX = 2,
};
enum xdp_action {
XDP_ABORTED = 0,
XDP_DROP = 1,
XDP_PASS = 2,
XDP_TX = 3,
XDP_REDIRECT = 4,
};
enum net_device_flags {
IFF_UP = 1,
IFF_BROADCAST = 2,
IFF_DEBUG = 4,
IFF_LOOPBACK = 8,
IFF_POINTOPOINT = 16,
IFF_NOTRAILERS = 32,
IFF_RUNNING = 64,
IFF_NOARP = 128,
IFF_PROMISC = 256,
IFF_ALLMULTI = 512,
IFF_MASTER = 1024,
IFF_SLAVE = 2048,
IFF_MULTICAST = 4096,
IFF_PORTSEL = 8192,
IFF_AUTOMEDIA = 16384,
IFF_DYNAMIC = 32768,
IFF_LOWER_UP = 65536,
IFF_DORMANT = 131072,
IFF_ECHO = 262144,
};
enum netdev_priv_flags {
IFF_802_1Q_VLAN = 1ULL,
IFF_EBRIDGE = 2ULL,
IFF_BONDING = 4ULL,
IFF_ISATAP = 8ULL,
IFF_WAN_HDLC = 16ULL,
IFF_XMIT_DST_RELEASE = 32ULL,
IFF_DONT_BRIDGE = 64ULL,
IFF_DISABLE_NETPOLL = 128ULL,
IFF_MACVLAN_PORT = 256ULL,
IFF_BRIDGE_PORT = 512ULL,
IFF_OVS_DATAPATH = 1024ULL,
IFF_TX_SKB_SHARING = 2048ULL,
IFF_UNICAST_FLT = 4096ULL,
IFF_TEAM_PORT = 8192ULL,
IFF_SUPP_NOFCS = 16384ULL,
IFF_LIVE_ADDR_CHANGE = 32768ULL,
IFF_MACVLAN = 65536ULL,
IFF_XMIT_DST_RELEASE_PERM = 131072ULL,
IFF_L3MDEV_MASTER = 262144ULL,
IFF_NO_QUEUE = 524288ULL,
IFF_OPENVSWITCH = 1048576ULL,
IFF_L3MDEV_SLAVE = 2097152ULL,
IFF_TEAM = 4194304ULL,
IFF_RXFH_CONFIGURED = 8388608ULL,
IFF_PHONY_HEADROOM = 16777216ULL,
IFF_MACSEC = 33554432ULL,
IFF_NO_RX_HANDLER = 67108864ULL,
IFF_FAILOVER = 134217728ULL,
IFF_FAILOVER_SLAVE = 268435456ULL,
IFF_L3MDEV_RX_HANDLER = 536870912ULL,
IFF_NO_ADDRCONF = 1073741824ULL,
IFF_TX_SKB_NO_LINEAR = 2147483648ULL,
IFF_CHANGE_PROTO_DOWN = 4294967296ULL,
IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL,
};
enum skb_drop_reason {
SKB_NOT_DROPPED_YET = 0,
SKB_CONSUMED = 1,
SKB_DROP_REASON_NOT_SPECIFIED = 2,
SKB_DROP_REASON_NO_SOCKET = 3,
SKB_DROP_REASON_PKT_TOO_SMALL = 4,
SKB_DROP_REASON_TCP_CSUM = 5,
SKB_DROP_REASON_SOCKET_FILTER = 6,
SKB_DROP_REASON_UDP_CSUM = 7,
SKB_DROP_REASON_NETFILTER_DROP = 8,
SKB_DROP_REASON_OTHERHOST = 9,
SKB_DROP_REASON_IP_CSUM = 10,
SKB_DROP_REASON_IP_INHDR = 11,
SKB_DROP_REASON_IP_RPFILTER = 12,
SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13,
SKB_DROP_REASON_XFRM_POLICY = 14,
SKB_DROP_REASON_IP_NOPROTO = 15,
SKB_DROP_REASON_SOCKET_RCVBUFF = 16,
SKB_DROP_REASON_PROTO_MEM = 17,
SKB_DROP_REASON_TCP_AUTH_HDR = 18,
SKB_DROP_REASON_TCP_MD5NOTFOUND = 19,
SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20,
SKB_DROP_REASON_TCP_MD5FAILURE = 21,
SKB_DROP_REASON_TCP_AONOTFOUND = 22,
SKB_DROP_REASON_TCP_AOUNEXPECTED = 23,
SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24,
SKB_DROP_REASON_TCP_AOFAILURE = 25,
SKB_DROP_REASON_SOCKET_BACKLOG = 26,
SKB_DROP_REASON_TCP_FLAGS = 27,
SKB_DROP_REASON_TCP_ABORT_ON_DATA = 28,
SKB_DROP_REASON_TCP_ZEROWINDOW = 29,
SKB_DROP_REASON_TCP_OLD_DATA = 30,
SKB_DROP_REASON_TCP_OVERWINDOW = 31,
SKB_DROP_REASON_TCP_OFOMERGE = 32,
SKB_DROP_REASON_TCP_RFC7323_PAWS = 33,
SKB_DROP_REASON_TCP_OLD_SEQUENCE = 34,
SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 35,
SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE = 36,
SKB_DROP_REASON_TCP_RESET = 37,
SKB_DROP_REASON_TCP_INVALID_SYN = 38,
SKB_DROP_REASON_TCP_CLOSE = 39,
SKB_DROP_REASON_TCP_FASTOPEN = 40,
SKB_DROP_REASON_TCP_OLD_ACK = 41,
SKB_DROP_REASON_TCP_TOO_OLD_ACK = 42,
SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 43,
SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 44,
SKB_DROP_REASON_TCP_OFO_DROP = 45,
SKB_DROP_REASON_IP_OUTNOROUTES = 46,
SKB_DROP_REASON_BPF_CGROUP_EGRESS = 47,
SKB_DROP_REASON_IPV6DISABLED = 48,
SKB_DROP_REASON_NEIGH_CREATEFAIL = 49,
SKB_DROP_REASON_NEIGH_FAILED = 50,
SKB_DROP_REASON_NEIGH_QUEUEFULL = 51,
SKB_DROP_REASON_NEIGH_DEAD = 52,
SKB_DROP_REASON_TC_EGRESS = 53,
SKB_DROP_REASON_SECURITY_HOOK = 54,
SKB_DROP_REASON_QDISC_DROP = 55,
SKB_DROP_REASON_CPU_BACKLOG = 56,
SKB_DROP_REASON_XDP = 57,
SKB_DROP_REASON_TC_INGRESS = 58,
SKB_DROP_REASON_UNHANDLED_PROTO = 59,
SKB_DROP_REASON_SKB_CSUM = 60,
SKB_DROP_REASON_SKB_GSO_SEG = 61,
SKB_DROP_REASON_SKB_UCOPY_FAULT = 62,
SKB_DROP_REASON_DEV_HDR = 63,
SKB_DROP_REASON_DEV_READY = 64,
SKB_DROP_REASON_FULL_RING = 65,
SKB_DROP_REASON_NOMEM = 66,
SKB_DROP_REASON_HDR_TRUNC = 67,
SKB_DROP_REASON_TAP_FILTER = 68,
SKB_DROP_REASON_TAP_TXFILTER = 69,
SKB_DROP_REASON_ICMP_CSUM = 70,
SKB_DROP_REASON_INVALID_PROTO = 71,
SKB_DROP_REASON_IP_INADDRERRORS = 72,
SKB_DROP_REASON_IP_INNOROUTES = 73,
SKB_DROP_REASON_PKT_TOO_BIG = 74,
SKB_DROP_REASON_DUP_FRAG = 75,
SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 76,
SKB_DROP_REASON_FRAG_TOO_FAR = 77,
SKB_DROP_REASON_TCP_MINTTL = 78,
SKB_DROP_REASON_IPV6_BAD_EXTHDR = 79,
SKB_DROP_REASON_IPV6_NDISC_FRAG = 80,
SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 81,
SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 82,
SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 83,
SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 84,
SKB_DROP_REASON_QUEUE_PURGE = 85,
SKB_DROP_REASON_TC_COOKIE_ERROR = 86,
SKB_DROP_REASON_PACKET_SOCK_ERROR = 87,
SKB_DROP_REASON_TC_CHAIN_NOTFOUND = 88,
SKB_DROP_REASON_TC_RECLASSIFY_LOOP = 89,
SKB_DROP_REASON_MAX = 90,
SKB_DROP_REASON_SUBSYS_MASK = 4294901760,
};
enum xdp_buff_flags {
XDP_FLAGS_HAS_FRAGS = 1,
XDP_FLAGS_FRAGS_PF_MEMALLOC = 2,
};
enum xdp_mem_type {
MEM_TYPE_PAGE_SHARED = 0,
MEM_TYPE_PAGE_ORDER0 = 1,
MEM_TYPE_PAGE_POOL = 2,
MEM_TYPE_XSK_BUFF_POOL = 3,
MEM_TYPE_MAX = 4,
};
struct bpf_fentry_test_t {
struct bpf_fentry_test_t *a;
};
struct trace_event_raw_bpf_trigger_tp {
struct trace_entry ent;
int nonce;
char __data[0];
};
struct trace_event_raw_bpf_test_finish {
struct trace_entry ent;
int err;
char __data[0];
};
typedef __u16 __sum16;
struct iphdr {
__u8 ihl: 4;
__u8 version: 4;
__u8 tos;
__be16 tot_len;
__be16 id;
__be16 frag_off;
__u8 ttl;
__u8 protocol;
__sum16 check;
union {
struct {
__be32 saddr;
__be32 daddr;
};
struct {
__be32 saddr;
__be32 daddr;
} addrs;
};
};
struct ipv6hdr {
__u8 priority: 4;
__u8 version: 4;
__u8 flow_lbl[3];
__be16 payload_len;
__u8 nexthdr;
__u8 hop_limit;
union {
struct {
struct in6_addr saddr;
struct in6_addr daddr;
};
struct {
struct in6_addr saddr;
struct in6_addr daddr;
} addrs;
};
};
struct qdisc_skb_cb {
struct {
unsigned int pkt_len;
u16 slave_dev_queue_mapping;
u16 tc_classid;
};
unsigned char data[20];
};
struct bpf_skb_data_end {
struct qdisc_skb_cb qdisc_cb;
void *data_meta;
void *data_end;
};
struct xsk_tx_metadata_compl {
__u64 *tx_timestamp;
};
typedef unsigned long netmem_ref;
struct skb_frag {
netmem_ref netmem;
unsigned int len;
unsigned int offset;
};
typedef struct skb_frag skb_frag_t;
struct skb_shared_info {
__u8 flags;
__u8 meta_len;
__u8 nr_frags;
__u8 tx_flags;
unsigned short gso_size;
unsigned short gso_segs;
struct sk_buff *frag_list;
union {
struct skb_shared_hwtstamps hwtstamps;
struct xsk_tx_metadata_compl xsk_meta;
};
unsigned int gso_type;
u32 tskey;
atomic_t dataref;
unsigned int xdp_frags_size;
void *destructor_arg;
skb_frag_t frags[17];
};
struct bpf_nh_params {
u32 nh_family;
union {
u32 ipv4_nh;
struct in6_addr ipv6_nh;
};
};
struct bpf_redirect_info {
u64 tgt_index;
void *tgt_value;
struct bpf_map *map;
u32 flags;
u32 kern_flags;
u32 map_id;
enum bpf_map_type map_type;
struct bpf_nh_params nh;
};
struct eventfs_inode;
struct trace_subsystem_dir;
struct trace_event_file {
struct list_head list;
struct trace_event_call *event_call;
struct event_filter __attribute__((btf_type_tag("rcu"))) *filter;
struct eventfs_inode *ei;
struct trace_array *tr;
struct trace_subsystem_dir *system;
struct list_head triggers;
unsigned long flags;
atomic_t ref;
atomic_t sm_ref;
atomic_t tm_ref;
};
struct prog_entry;
struct event_filter {
struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog;
char *filter_string;
};
struct trace_buffer;
struct ring_buffer_event;
struct trace_event_buffer {
struct trace_buffer *buffer;
struct ring_buffer_event *event;
struct trace_event_file *trace_file;
void *entry;
unsigned int trace_ctx;
struct pt_regs *regs;
};
struct ring_buffer_event {
u32 type_len: 5;
u32 time_delta: 27;
u32 array[0];
};
struct bpf_raw_tp_link {
struct bpf_link link;
struct bpf_raw_event_map *btp;
u64 cookie;
};
typedef void (*smp_call_func_t)(void *);
struct xdp_test_data {
struct xdp_buff *orig_ctx;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct xdp_rxq_info rxq;
struct net_device *dev;
struct page_pool *pp;
struct xdp_frame **frames;
struct sk_buff **skbs;
struct xdp_mem_info mem;
u32 batch_size;
u32 frame_cnt;
long: 64;
long: 64;
};
struct page_pool_params {
union {
struct {
unsigned int flags;
unsigned int order;
unsigned int pool_size;
int nid;
struct device *dev;
struct napi_struct *napi;
enum dma_data_direction dma_dir;
unsigned int max_len;
unsigned int offset;
};
struct page_pool_params_fast fast;
};
union {
struct {
struct net_device *netdev;
void (*init_callback)(struct page *, void *);
void *init_arg;
};
struct page_pool_params_slow slow;
};
};
struct xdp_page_head {
struct xdp_buff orig_ctx;
struct xdp_buff ctx;
union {
struct {
struct {} __empty_frame;
struct xdp_frame frame[0];
};
struct {
struct {} __empty_data;
u8 data[0];
};
};
};
struct bpf_flow_keys;
struct bpf_flow_dissector {
struct bpf_flow_keys *flow_keys;
const struct sk_buff *skb;
const void *data;
const void *data_end;
};
struct bpf_flow_keys {
__u16 nhoff;
__u16 thoff;
__u16 addr_proto;
__u8 is_frag;
__u8 is_first_frag;
__u8 is_encap;
__u8 ip_proto;
__be16 n_proto;
__be16 sport;
__be16 dport;
union {
struct {
__be32 ipv4_src;
__be32 ipv4_dst;
};
struct {
__u32 ipv6_src[4];
__u32 ipv6_dst[4];
};
};
__u32 flags;
__be32 flow_label;
};
struct btf_id_dtor_kfunc {
u32 btf_id;
u32 kfunc_btf_id;
};
struct trace_event_data_offsets_bpf_trigger_tp {};
struct trace_event_data_offsets_bpf_test_finish {};
struct prog_test_member1 {
int a;
};
struct prog_test_member {
struct prog_test_member1 m;
int c;
};
struct prog_test_ref_kfunc {
int a;
int b;
struct prog_test_member memb;
struct prog_test_ref_kfunc *next;
refcount_t cnt;
};
struct bpf_raw_tp_test_run_info {
struct bpf_prog *prog;
void *ctx;
u32 retval;
};
struct bpf_sock;
struct __sk_buff {
__u32 len;
__u32 pkt_type;
__u32 mark;
__u32 queue_mapping;
__u32 protocol;
__u32 vlan_present;
__u32 vlan_tci;
__u32 vlan_proto;
__u32 priority;
__u32 ingress_ifindex;
__u32 ifindex;
__u32 tc_index;
__u32 cb[5];
__u32 hash;
__u32 tc_classid;
__u32 data;
__u32 data_end;
__u32 napi_id;
__u32 family;
__u32 remote_ip4;
__u32 local_ip4;
__u32 remote_ip6[4];
__u32 local_ip6[4];
__u32 remote_port;
__u32 local_port;
__u32 data_meta;
union {
struct bpf_flow_keys *flow_keys;
};
__u64 tstamp;
__u32 wire_len;
__u32 gso_segs;
union {
struct bpf_sock *sk;
};
__u32 gso_size;
__u8 tstamp_type;
__u64 hwtstamp;
};
struct bpf_sock {
__u32 bound_dev_if;
__u32 family;
__u32 type;
__u32 protocol;
__u32 mark;
__u32 priority;
__u32 src_ip4;
__u32 src_ip6[4];
__u32 src_port;
__be16 dst_port;
__u32 dst_ip4;
__u32 dst_ip6[4];
__u32 state;
__s32 rx_queue_mapping;
};
struct bpf_cg_run_ctx {
struct bpf_run_ctx run_ctx;
const struct bpf_prog_array_item *prog_item;
int retval;
};
struct bpf_sk_lookup_kern {
u16 family;
u16 protocol;
__be16 sport;
u16 dport;
struct {
__be32 saddr;
__be32 daddr;
} v4;
struct {
const struct in6_addr *saddr;
const struct in6_addr *daddr;
} v6;
struct sock *selected_sk;
u32 ingress_ifindex;
bool no_reuseport;
};
struct bpf_sk_lookup {
union {
union {
struct bpf_sock *sk;
};
__u64 cookie;
};
__u32 family;
__u32 protocol;
__u32 remote_ip4;
__u32 remote_ip6[4];
__be16 remote_port;
__u32 local_ip4;
__u32 local_ip6[4];
__u32 local_port;
__u32 ingress_ifindex;
};
struct bpf_nf_ctx {
const struct nf_hook_state *state;
struct sk_buff *skb;
};
enum nft_set_class {
NFT_SET_CLASS_O_1 = 0,
NFT_SET_CLASS_O_LOG_N = 1,
NFT_SET_CLASS_O_N = 2,
};
enum nft_set_flags {
NFT_SET_ANONYMOUS = 1,
NFT_SET_CONSTANT = 2,
NFT_SET_INTERVAL = 4,
NFT_SET_MAP = 8,
NFT_SET_TIMEOUT = 16,
NFT_SET_EVAL = 32,
NFT_SET_OBJECT = 64,
NFT_SET_CONCAT = 128,
NFT_SET_EXPR = 256,
};
enum nft_trans_phase {
NFT_TRANS_PREPARE = 0,
NFT_TRANS_PREPARE_ERROR = 1,
NFT_TRANS_ABORT = 2,
NFT_TRANS_COMMIT = 3,
NFT_TRANS_RELEASE = 4,
};
enum flow_action_hw_stats {
FLOW_ACTION_HW_STATS_IMMEDIATE = 1,
FLOW_ACTION_HW_STATS_DELAYED = 2,
FLOW_ACTION_HW_STATS_ANY = 3,
FLOW_ACTION_HW_STATS_DISABLED = 4,
FLOW_ACTION_HW_STATS_DONT_CARE = 7,
};
enum nft_set_extensions {
NFT_SET_EXT_KEY = 0,
NFT_SET_EXT_KEY_END = 1,
NFT_SET_EXT_DATA = 2,
NFT_SET_EXT_FLAGS = 3,
NFT_SET_EXT_TIMEOUT = 4,
NFT_SET_EXT_EXPIRATION = 5,
NFT_SET_EXT_USERDATA = 6,
NFT_SET_EXT_EXPRESSIONS = 7,
NFT_SET_EXT_OBJREF = 8,
NFT_SET_EXT_NUM = 9,
};
union nft_pipapo_map_bucket;
struct nft_pipapo_field {
unsigned int rules;
unsigned int bsize;
unsigned int rules_alloc;
u8 groups;
u8 bb;
unsigned long *lt;
union nft_pipapo_map_bucket *mt;
};
struct nft_pipapo_scratch;
struct nft_pipapo_match {
u8 field_count;
unsigned int bsize_max;
struct nft_pipapo_scratch * __attribute__((btf_type_tag("percpu"))) *scratch;
struct callback_head rcu;
struct nft_pipapo_field f[0];
};
struct nft_pipapo_scratch {
u8 map_index;
u32 align_off;
unsigned long map[0];
};
struct nft_pipapo_elem;
union nft_pipapo_map_bucket {
struct {
u32 to;
u32 n;
};
struct nft_pipapo_elem *e;
};
struct nft_elem_priv {};
struct nft_set_ext {
u8 genmask;
u8 offset[9];
char data[0];
};
struct nft_pipapo_elem {
struct nft_elem_priv priv;
struct nft_set_ext ext;
};
struct nft_set_desc {
u32 ktype;
unsigned int klen;
u32 dtype;
unsigned int dlen;
u32 objtype;
unsigned int size;
u32 policy;
u32 gc_int;
u64 timeout;
u8 field_len[16];
u8 field_count;
bool expr;
};
struct nft_table;
struct nft_set_ops;
struct nft_expr;
struct nft_set {
struct list_head list;
struct list_head bindings;
refcount_t refs;
struct nft_table *table;
possible_net_t net;
char *name;
u64 handle;
u32 ktype;
u32 dtype;
u32 objtype;
u32 size;
u8 field_len[16];
u8 field_count;
u32 use;
atomic_t nelems;
u32 ndeact;
u64 timeout;
u32 gc_int;
u16 policy;
u16 udlen;
unsigned char *udata;
struct list_head pending_update;
long: 64;
long: 64;
long: 64;
long: 64;
const struct nft_set_ops *ops;
u16 flags: 13;
u16 dead: 1;
u16 genmask: 2;
u8 klen;
u8 dlen;
u8 num_exprs;
struct nft_expr *exprs[2];
struct list_head catchall_list;
unsigned char data[0];
long: 64;
long: 64;
};
struct rhltable {
struct rhashtable ht;
};
struct nft_table {
struct list_head list;
struct rhltable chains_ht;
struct list_head chains;
struct list_head sets;
struct list_head objects;
struct list_head flowtables;
u64 hgenerator;
u64 handle;
u32 use;
u16 family: 6;
u16 flags: 8;
u16 genmask: 2;
u32 nlpid;
char *name;
u16 udlen;
u8 *udata;
u8 validate_state;
};
struct nft_regs;
struct nft_set_elem;
struct nft_ctx;
struct nft_set_iter;
struct nft_set_estimate;
struct nft_set_ops {
bool (*lookup)(const struct net *, const struct nft_set *, const u32 *, const struct nft_set_ext **);
bool (*update)(struct nft_set *, const u32 *, struct nft_elem_priv * (*)(struct nft_set *, const struct nft_expr *, struct nft_regs *), const struct nft_expr *, struct nft_regs *, const struct nft_set_ext **);
bool (*delete)(const struct nft_set *, const u32 *);
int (*insert)(const struct net *, const struct nft_set *, const struct nft_set_elem *, struct nft_elem_priv **);
void (*activate)(const struct net *, const struct nft_set *, struct nft_elem_priv *);
struct nft_elem_priv * (*deactivate)(const struct net *, const struct nft_set *, const struct nft_set_elem *);
void (*flush)(const struct net *, const struct nft_set *, struct nft_elem_priv *);
void (*remove)(const struct net *, const struct nft_set *, struct nft_elem_priv *);
void (*walk)(const struct nft_ctx *, struct nft_set *, struct nft_set_iter *);
struct nft_elem_priv * (*get)(const struct net *, const struct nft_set *, const struct nft_set_elem *, unsigned int);
void (*commit)(struct nft_set *);
void (*abort)(const struct nft_set *);
u64 (*privsize)(const struct nlattr * const *, const struct nft_set_desc *);
bool (*estimate)(const struct nft_set_desc *, u32, struct nft_set_estimate *);
int (*init)(const struct nft_set *, const struct nft_set_desc *, const struct nlattr * const *);
void (*destroy)(const struct nft_ctx *, const struct nft_set *);
void (*gc_init)(const struct nft_set *);
unsigned int elemsize;
};
struct nft_expr_ops;
struct nft_expr {
const struct nft_expr_ops *ops;
unsigned char data[0];
};
struct nft_pktinfo;
struct nft_data;
struct nft_regs_track;
struct nft_offload_ctx;
struct nft_flow_rule;
struct flow_stats;
struct nft_expr_type;
struct nft_expr_ops {
void (*eval)(const struct nft_expr *, struct nft_regs *, const struct nft_pktinfo *);
int (*clone)(struct nft_expr *, const struct nft_expr *);
unsigned int size;
int (*init)(const struct nft_ctx *, const struct nft_expr *, const struct nlattr * const *);
void (*activate)(const struct nft_ctx *, const struct nft_expr *);
void (*deactivate)(const struct nft_ctx *, const struct nft_expr *, enum nft_trans_phase);
void (*destroy)(const struct nft_ctx *, const struct nft_expr *);
void (*destroy_clone)(const struct nft_ctx *, const struct nft_expr *);
int (*dump)(struct sk_buff *, const struct nft_expr *, bool);
int (*validate)(const struct nft_ctx *, const struct nft_expr *, const struct nft_data **);
bool (*reduce)(struct nft_regs_track *, const struct nft_expr *);
bool (*gc)(struct net *, const struct nft_expr *);
int (*offload)(struct nft_offload_ctx *, struct nft_flow_rule *, const struct nft_expr *);
bool (*offload_action)(const struct nft_expr *);
void (*offload_stats)(struct nft_expr *, const struct flow_stats *);
const struct nft_expr_type *type;
void *data;
};
struct nft_chain;
struct nft_verdict {
u32 code;
struct nft_chain *chain;
};
struct nft_regs {
union {
u32 data[20];
struct nft_verdict verdict;
};
};
struct nft_rule_blob;
struct nft_chain {
struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_0;
struct nft_rule_blob __attribute__((btf_type_tag("rcu"))) *blob_gen_1;
struct list_head rules;
struct list_head list;
struct rhlist_head rhlhead;
struct nft_table *table;
u64 handle;
u32 use;
u8 flags: 5;
u8 bound: 1;
u8 genmask: 2;
char *name;
u16 udlen;
u8 *udata;
struct nft_rule_blob *blob_next;
};
struct nft_rule_blob {
unsigned long size;
unsigned char data[0];
};
struct nft_pktinfo {
struct sk_buff *skb;
const struct nf_hook_state *state;
u8 flags;
u8 tprot;
u16 fragoff;
u16 thoff;
u16 inneroff;
};
struct nft_ctx {
struct net *net;
struct nft_table *table;
struct nft_chain *chain;
const struct nlattr * const *nla;
u32 portid;
u32 seq;
u16 flags;
u8 family;
u8 level;
bool report;
};
struct nft_data {
union {
u32 data[4];
struct nft_verdict verdict;
};
};
struct nft_regs_track {
struct {
const struct nft_expr *selector;
const struct nft_expr *bitwise;
u8 num_reg;
} regs[20];
const struct nft_expr *cur;
const struct nft_expr *last;
};
struct flow_stats {
u64 pkts;
u64 bytes;
u64 drops;
u64 lastused;
enum flow_action_hw_stats used_hw_stats;
bool used_hw_stats_valid;
};
struct nft_expr_type {
const struct nft_expr_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *);
void (*release_ops)(const struct nft_expr_ops *);
const struct nft_expr_ops *ops;
const struct nft_expr_ops *inner_ops;
struct list_head list;
const char *name;
struct module *owner;
const struct nla_policy *policy;
unsigned int maxattr;
u8 family;
u8 flags;
};
struct nft_set_elem {
union {
u32 buf[16];
struct nft_data val;
} key;
union {
u32 buf[16];
struct nft_data val;
} key_end;
union {
u32 buf[16];
struct nft_data val;
} data;
struct nft_elem_priv *priv;
};
struct nft_set_iter {
u8 genmask;
unsigned int count;
unsigned int skip;
int err;
int (*fn)(const struct nft_ctx *, struct nft_set *, const struct nft_set_iter *, struct nft_elem_priv *);
};
struct nft_set_estimate {
u64 size;
enum nft_set_class lookup;
enum nft_set_class space;
};
struct nft_pipapo {
struct nft_pipapo_match __attribute__((btf_type_tag("rcu"))) *match;
struct nft_pipapo_match *clone;
int width;
bool dirty;
unsigned long last_gc;
};
struct udp_tunnel_nic_ops {
void (*get_port)(struct net_device *, unsigned int, unsigned int, struct udp_tunnel_info *);
void (*set_port_priv)(struct net_device *, unsigned int, unsigned int, u8);
void (*add_port)(struct net_device *, struct udp_tunnel_info *);
void (*del_port)(struct net_device *, struct udp_tunnel_info *);
void (*reset_ntf)(struct net_device *);
size_t (*dump_size)(struct net_device *, unsigned int);
int (*dump_write)(struct net_device *, unsigned int, struct sk_buff *);
};
struct udp_hslot;
struct udp_table {
struct udp_hslot *hash;
struct udp_hslot *hash2;
unsigned int mask;
unsigned int log;
};
struct udp_hslot {
struct hlist_head head;
int count;
spinlock_t lock;
};
struct rt6key {
struct in6_addr addr;
int plen;
};
struct rtable;
struct fnhe_hash_bucket;
struct fib_nh_common {
struct net_device *nhc_dev;
netdevice_tracker nhc_dev_tracker;
int nhc_oif;
unsigned char nhc_scope;
u8 nhc_family;
u8 nhc_gw_family;
unsigned char nhc_flags;
struct lwtunnel_state *nhc_lwtstate;
union {
__be32 ipv4;
struct in6_addr ipv6;
} nhc_gw;
int nhc_weight;
atomic_t nhc_upper_bound;
struct rtable __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("percpu"))) *nhc_pcpu_rth_output;
struct rtable __attribute__((btf_type_tag("rcu"))) *nhc_rth_input;
struct fnhe_hash_bucket __attribute__((btf_type_tag("rcu"))) *nhc_exceptions;
};
struct rt6_exception_bucket;
struct fib6_nh {
struct fib_nh_common nh_common;
struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu;
struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket;
};
struct fib6_node;
struct dst_metrics;
struct nexthop;
struct fib6_info {
struct fib6_table *fib6_table;
struct fib6_info __attribute__((btf_type_tag("rcu"))) *fib6_next;
struct fib6_node __attribute__((btf_type_tag("rcu"))) *fib6_node;
union {
struct list_head fib6_siblings;
struct list_head nh_list;
};
unsigned int fib6_nsiblings;
refcount_t fib6_ref;
unsigned long expires;
struct hlist_node gc_link;
struct dst_metrics *fib6_metrics;
struct rt6key fib6_dst;
u32 fib6_flags;
struct rt6key fib6_src;
struct rt6key fib6_prefsrc;
u32 fib6_metric;
u8 fib6_protocol;
u8 fib6_type;
u8 offload;
u8 trap;
u8 offload_failed;
u8 should_flush: 1;
u8 dst_nocount: 1;
u8 dst_nopolicy: 1;
u8 fib6_destroying: 1;
u8 unused: 4;
struct callback_head rcu;
struct nexthop *nh;
struct fib6_nh fib6_nh[0];
};
struct fib6_node {
struct fib6_node __attribute__((btf_type_tag("rcu"))) *parent;
struct fib6_node __attribute__((btf_type_tag("rcu"))) *left;
struct fib6_node __attribute__((btf_type_tag("rcu"))) *right;
struct fib6_info __attribute__((btf_type_tag("rcu"))) *leaf;
__u16 fn_bit;
__u16 fn_flags;
int fn_sernum;
struct fib6_info __attribute__((btf_type_tag("rcu"))) *rr_ptr;
struct callback_head rcu;
};
struct fib6_table {
struct hlist_node tb6_hlist;
u32 tb6_id;
spinlock_t tb6_lock;
struct fib6_node tb6_root;
struct inet_peer_base tb6_peers;
unsigned int flags;
unsigned int fib_seq;
struct hlist_head tb6_gc_hlist;
};
struct dst_metrics {
u32 metrics[17];
refcount_t refcnt;
};
struct nh_info;
struct nh_group;
struct nexthop {
struct rb_node rb_node;
struct list_head fi_list;
struct list_head f6i_list;
struct list_head fdb_list;
struct list_head grp_list;
struct net *net;
u32 id;
u8 protocol;
u8 nh_flags;
bool is_group;
refcount_t refcnt;
struct callback_head rcu;
union {
struct nh_info __attribute__((btf_type_tag("rcu"))) *nh_info;
struct nh_group __attribute__((btf_type_tag("rcu"))) *nh_grp;
};
};
struct fib_info;
struct fib_nh {
struct fib_nh_common nh_common;
struct hlist_node nh_hash;
struct fib_info *nh_parent;
__be32 nh_saddr;
int nh_saddr_genid;
};
struct nh_info {
struct hlist_node dev_hash;
struct nexthop *nh_parent;
u8 family;
bool reject_nh;
bool fdb_nh;
union {
struct fib_nh_common fib_nhc;
struct fib_nh fib_nh;
struct fib6_nh fib6_nh;
};
};
struct rtable {
struct dst_entry dst;
int rt_genid;
unsigned int rt_flags;
__u16 rt_type;
__u8 rt_is_input;
__u8 rt_uses_gateway;
int rt_iif;
u8 rt_gw_family;
union {
__be32 rt_gw4;
struct in6_addr rt_gw6;
};
u32 rt_mtu_locked: 1;
u32 rt_pmtu: 31;
};
struct fib_nh_exception;
struct fnhe_hash_bucket {
struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain;
};
struct fib_nh_exception {
struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *fnhe_next;
int fnhe_genid;
__be32 fnhe_daddr;
u32 fnhe_pmtu;
bool fnhe_mtu_locked;
__be32 fnhe_gw;
unsigned long fnhe_expires;
struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_input;
struct rtable __attribute__((btf_type_tag("rcu"))) *fnhe_rth_output;
unsigned long fnhe_stamp;
struct callback_head rcu;
};
struct fib_info {
struct hlist_node fib_hash;
struct hlist_node fib_lhash;
struct list_head nh_list;
struct net *fib_net;
refcount_t fib_treeref;
refcount_t fib_clntref;
unsigned int fib_flags;
unsigned char fib_dead;
unsigned char fib_protocol;
unsigned char fib_scope;
unsigned char fib_type;
__be32 fib_prefsrc;
u32 fib_tb_id;
u32 fib_priority;
struct dst_metrics *fib_metrics;
int fib_nhs;
bool fib_nh_is_v6;
bool nh_updated;
bool pfsrc_removed;
struct nexthop *nh;
struct callback_head rcu;
struct fib_nh fib_nh[0];
};
struct rt6_info {
struct dst_entry dst;
struct fib6_info __attribute__((btf_type_tag("rcu"))) *from;
int sernum;
struct rt6key rt6i_dst;
struct rt6key rt6i_src;
struct in6_addr rt6i_gateway;
struct inet6_dev *rt6i_idev;
u32 rt6i_flags;
unsigned short rt6i_nfheader_len;
};
struct rt6_exception_bucket {
struct hlist_head chain;
int depth;
};
struct nh_grp_entry_stats;
struct nh_grp_entry {
struct nexthop *nh;
struct nh_grp_entry_stats __attribute__((btf_type_tag("percpu"))) *stats;
u8 weight;
union {
struct {
atomic_t upper_bound;
} hthr;
struct {
struct list_head uw_nh_entry;
u16 count_buckets;
u16 wants_buckets;
} res;
};
struct list_head nh_list;
struct nexthop *nh_parent;
u64 packets_hw;
};
struct nh_res_table;
struct nh_group {
struct nh_group *spare;
u16 num_nh;
bool is_multipath;
bool hash_threshold;
bool resilient;
bool fdb_nh;
bool has_v4;
bool hw_stats;
struct nh_res_table __attribute__((btf_type_tag("rcu"))) *res_table;
struct nh_grp_entry nh_entries[0];
};
struct nh_res_bucket {
struct nh_grp_entry __attribute__((btf_type_tag("rcu"))) *nh_entry;
atomic_long_t used_time;
unsigned long migrated_time;
bool occupied;
u8 nh_flags;
};
struct nh_res_table {
struct net *net;
u32 nhg_id;
struct delayed_work upkeep_dw;
struct list_head uw_nh_entries;
unsigned long unbalanced_since;
u32 idle_timer;
u32 unbalanced_timer;
u16 num_nh_buckets;
struct nh_res_bucket nh_buckets[0];
};
struct nh_grp_entry_stats {
u64_stats_t packets;
struct u64_stats_sync syncp;
};
struct rt6_statistics {
__u32 fib_nodes;
__u32 fib_route_nodes;
__u32 fib_rt_entries;
__u32 fib_rt_cache;
__u32 fib_discarded_routes;
atomic_t fib_rt_alloc;
};
struct ip_tunnel_parm {
char name[16];
int link;
__be16 i_flags;
__be16 o_flags;
__be32 i_key;
__be32 o_key;
struct iphdr iph;
};
struct udp_tunnel_info {
unsigned short type;
sa_family_t sa_family;
__be16 port;
u8 hw_priv;
};
struct udp_tunnel_nic_shared {
struct udp_tunnel_nic *udp_tunnel_nic_info;
struct list_head devices;
};
struct pernet_operations {
struct list_head list;
int (*init)(struct net *);
void (*pre_exit)(struct net *);
void (*exit)(struct net *);
void (*exit_batch)(struct list_head *);
void (*exit_batch_rtnl)(struct list_head *, struct list_head *);
unsigned int *id;
size_t size;
};
enum netevent_notif_type {
NETEVENT_NEIGH_UPDATE = 1,
NETEVENT_REDIRECT = 2,
NETEVENT_DELAY_PROBE_TIME_UPDATE = 3,
NETEVENT_IPV4_MPATH_HASH_UPDATE = 4,
NETEVENT_IPV6_MPATH_HASH_UPDATE = 5,
NETEVENT_IPV4_FWD_UPDATE_PRIORITY_UPDATE = 6,
};
enum nl80211_key_mode {
NL80211_KEY_RX_TX = 0,
NL80211_KEY_NO_TX = 1,
NL80211_KEY_SET_TX = 2,
};
struct key_params {
const u8 *key;
const u8 *seq;
int key_len;
int seq_len;
u16 vlan_id;
u32 cipher;
enum nl80211_key_mode mode;
};
struct cfg80211_cached_keys {
struct key_params params[4];
u8 data[52];
int def;
};
struct cfg80211_internal_bss {
struct list_head list;
struct list_head hidden_list;
struct rb_node rbn;
u64 ts_boottime;
unsigned long ts;
unsigned long refcount;
atomic_t hold;
u64 parent_tsf;
u8 parent_bssid[6];
struct cfg80211_bss pub;
};
enum nl80211_hidden_ssid {
NL80211_HIDDEN_SSID_NOT_IN_USE = 0,
NL80211_HIDDEN_SSID_ZERO_LEN = 1,
NL80211_HIDDEN_SSID_ZERO_CONTENTS = 2,
};
enum nl80211_sae_pwe_mechanism {
NL80211_SAE_PWE_UNSPECIFIED = 0,
NL80211_SAE_PWE_HUNT_AND_PECK = 1,
NL80211_SAE_PWE_HASH_TO_ELEMENT = 2,
NL80211_SAE_PWE_BOTH = 3,
};
enum nl80211_auth_type {
NL80211_AUTHTYPE_OPEN_SYSTEM = 0,
NL80211_AUTHTYPE_SHARED_KEY = 1,
NL80211_AUTHTYPE_FT = 2,
NL80211_AUTHTYPE_NETWORK_EAP = 3,
NL80211_AUTHTYPE_SAE = 4,
NL80211_AUTHTYPE_FILS_SK = 5,
NL80211_AUTHTYPE_FILS_SK_PFS = 6,
NL80211_AUTHTYPE_FILS_PK = 7,
__NL80211_AUTHTYPE_NUM = 8,
NL80211_AUTHTYPE_MAX = 7,
NL80211_AUTHTYPE_AUTOMATIC = 8,
};
enum nl80211_smps_mode {
NL80211_SMPS_OFF = 0,
NL80211_SMPS_STATIC = 1,
NL80211_SMPS_DYNAMIC = 2,
__NL80211_SMPS_AFTER_LAST = 3,
NL80211_SMPS_MAX = 2,
};
enum nl80211_acl_policy {
NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0,
NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1,
};
enum nl80211_mesh_power_mode {
NL80211_MESH_POWER_UNKNOWN = 0,
NL80211_MESH_POWER_ACTIVE = 1,
NL80211_MESH_POWER_LIGHT_SLEEP = 2,
NL80211_MESH_POWER_DEEP_SLEEP = 3,
__NL80211_MESH_POWER_AFTER_LAST = 4,
NL80211_MESH_POWER_MAX = 3,
};
enum nl80211_ac {
NL80211_AC_VO = 0,
NL80211_AC_VI = 1,
NL80211_AC_BE = 2,
NL80211_AC_BK = 3,
NL80211_NUM_ACS = 4,
};
enum nl80211_mfp {
NL80211_MFP_NO = 0,
NL80211_MFP_REQUIRED = 1,
NL80211_MFP_OPTIONAL = 2,
};
enum nl80211_bss_select_attr {
__NL80211_BSS_SELECT_ATTR_INVALID = 0,
NL80211_BSS_SELECT_ATTR_RSSI = 1,
NL80211_BSS_SELECT_ATTR_BAND_PREF = 2,
NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 3,
__NL80211_BSS_SELECT_ATTR_AFTER_LAST = 4,
NL80211_BSS_SELECT_ATTR_MAX = 3,
};
enum nl80211_tdls_operation {
NL80211_TDLS_DISCOVERY_REQ = 0,
NL80211_TDLS_SETUP = 1,
NL80211_TDLS_TEARDOWN = 2,
NL80211_TDLS_ENABLE_LINK = 3,
NL80211_TDLS_DISABLE_LINK = 4,
};
enum nl80211_crit_proto_id {
NL80211_CRIT_PROTO_UNSPEC = 0,
NL80211_CRIT_PROTO_DHCP = 1,
NL80211_CRIT_PROTO_EAPOL = 2,
NL80211_CRIT_PROTO_APIPA = 3,
NUM_NL80211_CRIT_PROTO = 4,
};
enum nl80211_coalesce_condition {
NL80211_COALESCE_CONDITION_MATCH = 0,
NL80211_COALESCE_CONDITION_NO_MATCH = 1,
};
enum nl80211_nan_function_type {
NL80211_NAN_FUNC_PUBLISH = 0,
NL80211_NAN_FUNC_SUBSCRIBE = 1,
NL80211_NAN_FUNC_FOLLOW_UP = 2,
__NL80211_NAN_FUNC_TYPE_AFTER_LAST = 3,
NL80211_NAN_FUNC_MAX_TYPE = 2,
};
enum nl80211_external_auth_action {
NL80211_EXTERNAL_AUTH_START = 0,
NL80211_EXTERNAL_AUTH_ABORT = 1,
};
enum nl80211_preamble {
NL80211_PREAMBLE_LEGACY = 0,
NL80211_PREAMBLE_HT = 1,
NL80211_PREAMBLE_VHT = 2,
NL80211_PREAMBLE_DMG = 3,
NL80211_PREAMBLE_HE = 4,
};
enum nl80211_tid_config {
NL80211_TID_CONFIG_ENABLE = 0,
NL80211_TID_CONFIG_DISABLE = 1,
};
enum nl80211_tx_rate_setting {
NL80211_TX_RATE_AUTOMATIC = 0,
NL80211_TX_RATE_LIMITED = 1,
NL80211_TX_RATE_FIXED = 2,
};
struct rfkill_ops {
void (*poll)(struct rfkill *, void *);
void (*query)(struct rfkill *, void *);
int (*set_block)(void *, bool);
};
struct cfg80211_ops;
struct genl_info;
struct cfg80211_coalesce;
struct cfg80211_registered_device {
const struct cfg80211_ops *ops;
struct list_head list;
struct rfkill_ops rfkill_ops;
struct work_struct rfkill_block;
char country_ie_alpha2[2];
const struct ieee80211_regdomain *requested_regd;
enum environment_cap env;
int wiphy_idx;
int devlist_generation;
int wdev_id;
int opencount;
wait_queue_head_t dev_wait;
struct list_head beacon_registrations;
spinlock_t beacon_registrations_lock;
int num_running_ifaces;
int num_running_monitor_ifaces;
u64 cookie_counter;
spinlock_t bss_lock;
struct list_head bss_list;
struct rb_root bss_tree;
u32 bss_generation;
u32 bss_entries;
struct cfg80211_scan_request *scan_req;
struct cfg80211_scan_request *int_scan_req;
struct sk_buff *scan_msg;
struct list_head sched_scan_req_list;
time64_t suspend_at;
struct wiphy_work scan_done_wk;
struct genl_info *cur_cmd_info;
struct work_struct conn_work;
struct work_struct event_work;
struct delayed_work dfs_update_channels_wk;
struct wireless_dev *background_radar_wdev;
struct cfg80211_chan_def background_radar_chandef;
struct delayed_work background_cac_done_wk;
struct work_struct background_cac_abort_wk;
u32 crit_proto_nlportid;
struct cfg80211_coalesce *coalesce;
struct work_struct destroy_work;
struct wiphy_work sched_scan_stop_wk;
struct work_struct sched_scan_res_wk;
struct cfg80211_chan_def radar_chandef;
struct work_struct propagate_radar_detect_wk;
struct cfg80211_chan_def cac_done_chandef;
struct work_struct propagate_cac_done_wk;
struct work_struct mgmt_registrations_update_wk;
spinlock_t mgmt_registrations_lock;
struct work_struct wiphy_work;
struct list_head wiphy_work_list;
spinlock_t wiphy_work_lock;
bool suspended;
struct wiphy wiphy;
};
struct vif_params;
struct cfg80211_ap_settings;
struct cfg80211_ap_update;
struct station_parameters;
struct station_del_parameters;
struct station_info;
struct mpath_info;
struct mesh_config;
struct mesh_setup;
struct ocb_setup;
struct bss_parameters;
struct ieee80211_txq_params;
struct cfg80211_auth_request;
struct cfg80211_assoc_request;
struct cfg80211_deauth_request;
struct cfg80211_disassoc_request;
struct cfg80211_connect_params;
struct cfg80211_ibss_params;
struct survey_info;
struct cfg80211_pmksa;
struct cfg80211_mgmt_tx_params;
struct mgmt_frame_regs;
struct cfg80211_gtk_rekey_data;
struct cfg80211_acl_data;
struct cfg80211_update_ft_ies_params;
struct cfg80211_csa_settings;
struct cfg80211_qos_map;
struct cfg80211_nan_conf;
struct cfg80211_nan_func;
struct cfg80211_txq_stats;
struct cfg80211_pmk_conf;
struct cfg80211_external_auth_params;
struct cfg80211_ftm_responder_stats;
struct cfg80211_pmsr_request;
struct cfg80211_update_owe_info;
struct cfg80211_tid_config;
struct cfg80211_sar_specs;
struct cfg80211_color_change_settings;
struct cfg80211_fils_aad;
struct link_station_parameters;
struct link_station_del_parameters;
struct cfg80211_set_hw_timestamp;
struct cfg80211_ttlm_params;
struct cfg80211_ops {
int (*suspend)(struct wiphy *, struct cfg80211_wowlan *);
int (*resume)(struct wiphy *);
void (*set_wakeup)(struct wiphy *, bool);
struct wireless_dev * (*add_virtual_intf)(struct wiphy *, const char *, unsigned char, enum nl80211_iftype, struct vif_params *);
int (*del_virtual_intf)(struct wiphy *, struct wireless_dev *);
int (*change_virtual_intf)(struct wiphy *, struct net_device *, enum nl80211_iftype, struct vif_params *);
int (*add_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int);
void (*del_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int);
int (*add_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, struct key_params *);
int (*get_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, void *, void (*)(void *, struct key_params *));
int (*del_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
int (*set_default_key)(struct wiphy *, struct net_device *, int, u8, bool, bool);
int (*set_default_mgmt_key)(struct wiphy *, struct net_device *, int, u8);
int (*set_default_beacon_key)(struct wiphy *, struct net_device *, int, u8);
int (*start_ap)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *);
int (*change_beacon)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *);
int (*stop_ap)(struct wiphy *, struct net_device *, unsigned int);
int (*add_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *);
int (*del_station)(struct wiphy *, struct net_device *, struct station_del_parameters *);
int (*change_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *);
int (*get_station)(struct wiphy *, struct net_device *, const u8 *, struct station_info *);
int (*dump_station)(struct wiphy *, struct net_device *, int, u8 *, struct station_info *);
int (*add_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *);
int (*del_mpath)(struct wiphy *, struct net_device *, const u8 *);
int (*change_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *);
int (*get_mpath)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *);
int (*dump_mpath)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *);
int (*get_mpp)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *);
int (*dump_mpp)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *);
int (*get_mesh_config)(struct wiphy *, struct net_device *, struct mesh_config *);
int (*update_mesh_config)(struct wiphy *, struct net_device *, u32, const struct mesh_config *);
int (*join_mesh)(struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *);
int (*leave_mesh)(struct wiphy *, struct net_device *);
int (*join_ocb)(struct wiphy *, struct net_device *, struct ocb_setup *);
int (*leave_ocb)(struct wiphy *, struct net_device *);
int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *);
void (*inform_bss)(struct wiphy *, struct cfg80211_bss *, const struct cfg80211_bss_ies *, void *);
int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *);
int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *);
int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *);
int (*scan)(struct wiphy *, struct cfg80211_scan_request *);
void (*abort_scan)(struct wiphy *, struct wireless_dev *);
int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *);
int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *);
int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *);
int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *);
int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *);
int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32);
int (*disconnect)(struct wiphy *, struct net_device *, u16);
int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *);
int (*leave_ibss)(struct wiphy *, struct net_device *);
int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *);
int (*set_wiphy_params)(struct wiphy *, u32);
int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int);
int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *);
void (*rfkill_poll)(struct wiphy *);
int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *);
int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *);
int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
int (*flush_pmksa)(struct wiphy *, struct net_device *);
int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *);
int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64);
int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *);
int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64);
int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int);
int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32);
int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32);
int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32);
void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *);
int (*set_antenna)(struct wiphy *, u32, u32);
int (*get_antenna)(struct wiphy *, u32 *, u32 *);
int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *);
int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64);
int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *);
int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t);
int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation);
int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *);
int (*set_noack_map)(struct wiphy *, struct net_device *, u16);
int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *);
int (*start_p2p_device)(struct wiphy *, struct wireless_dev *);
void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *);
int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *);
int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32);
void (*end_cac)(struct wiphy *, struct net_device *);
int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *);
int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16);
void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *);
int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *);
int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *);
int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *);
int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *);
int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16);
int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *);
int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *);
void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *);
int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *);
void (*stop_nan)(struct wiphy *, struct wireless_dev *);
int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *);
void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64);
int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32);
int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool);
int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *);
int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *);
int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *);
int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *);
int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *);
int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *);
int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *);
void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *);
int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t);
int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *);
int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8);
int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *);
int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *);
int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *);
int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *);
int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *);
int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *);
int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *);
int (*set_hw_timestamp)(struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *);
int (*set_ttlm)(struct wiphy *, struct net_device *, struct cfg80211_ttlm_params *);
};
struct vif_params {
u32 flags;
int use_4addr;
u8 macaddr[6];
const u8 *vht_mumimo_groups;
const u8 *vht_mumimo_follow_addr;
};
struct cfg80211_mbssid_elems;
struct cfg80211_rnr_elems;
struct cfg80211_beacon_data {
unsigned int link_id;
const u8 *head;
const u8 *tail;
const u8 *beacon_ies;
const u8 *proberesp_ies;
const u8 *assocresp_ies;
const u8 *probe_resp;
const u8 *lci;
const u8 *civicloc;
struct cfg80211_mbssid_elems *mbssid_ies;
struct cfg80211_rnr_elems *rnr_ies;
s8 ftm_responder;
size_t head_len;
size_t tail_len;
size_t beacon_ies_len;
size_t proberesp_ies_len;
size_t assocresp_ies_len;
size_t probe_resp_len;
size_t lci_len;
size_t civicloc_len;
struct cfg80211_he_bss_color he_bss_color;
bool he_bss_color_valid;
};
struct cfg80211_crypto_settings {
u32 wpa_versions;
u32 cipher_group;
int n_ciphers_pairwise;
u32 ciphers_pairwise[5];
int n_akm_suites;
u32 akm_suites[10];
bool control_port;
__be16 control_port_ethertype;
bool control_port_no_encrypt;
bool control_port_over_nl80211;
bool control_port_no_preauth;
const u8 *psk;
const u8 *sae_pwd;
u8 sae_pwd_len;
enum nl80211_sae_pwe_mechanism sae_pwe;
};
struct cfg80211_fils_discovery {
bool update;
u32 min_interval;
u32 max_interval;
size_t tmpl_len;
const u8 *tmpl;
};
struct cfg80211_unsol_bcast_probe_resp {
bool update;
u32 interval;
size_t tmpl_len;
const u8 *tmpl;
};
struct cfg80211_mbssid_config {
struct wireless_dev *tx_wdev;
u8 index;
bool ema;
};
struct ieee80211_he_operation;
struct ieee80211_eht_cap_elem;
struct ieee80211_eht_operation;
struct cfg80211_ap_settings {
struct cfg80211_chan_def chandef;
struct cfg80211_beacon_data beacon;
int beacon_interval;
int dtim_period;
const u8 *ssid;
size_t ssid_len;
enum nl80211_hidden_ssid hidden_ssid;
struct cfg80211_crypto_settings crypto;
bool privacy;
enum nl80211_auth_type auth_type;
enum nl80211_smps_mode smps_mode;
int inactivity_timeout;
u8 p2p_ctwindow;
bool p2p_opp_ps;
const struct cfg80211_acl_data *acl;
bool pbss;
struct cfg80211_bitrate_mask beacon_rate;
const struct ieee80211_ht_cap *ht_cap;
const struct ieee80211_vht_cap *vht_cap;
const struct ieee80211_he_cap_elem *he_cap;
const struct ieee80211_he_operation *he_oper;
const struct ieee80211_eht_cap_elem *eht_cap;
const struct ieee80211_eht_operation *eht_oper;
bool ht_required;
bool vht_required;
bool he_required;
bool sae_h2e_required;
bool twt_responder;
u32 flags;
struct ieee80211_he_obss_pd he_obss_pd;
struct cfg80211_fils_discovery fils_discovery;
struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
struct cfg80211_mbssid_config mbssid_config;
};
struct cfg80211_mbssid_elems {
u8 cnt;
struct {
const u8 *data;
size_t len;
} elem[0];
};
struct cfg80211_rnr_elems {
u8 cnt;
struct {
const u8 *data;
size_t len;
} elem[0];
};
struct cfg80211_acl_data {
enum nl80211_acl_policy acl_policy;
int n_acl_entries;
struct mac_address mac_addrs[0];
};
struct ieee80211_he_operation {
__le32 he_oper_params;
__le16 he_mcs_nss_set;
u8 optional[0];
} __attribute__((packed));
struct ieee80211_eht_cap_elem {
struct ieee80211_eht_cap_elem_fixed fixed;
u8 optional[0];
};
struct ieee80211_eht_operation {
u8 params;
struct ieee80211_eht_mcs_nss_supp_20mhz_only basic_mcs_nss;
u8 optional[0];
};
struct cfg80211_ap_update {
struct cfg80211_beacon_data beacon;
struct cfg80211_fils_discovery fils_discovery;
struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
};
struct sta_txpwr {
s16 power;
enum nl80211_tx_power_setting type;
};
struct link_station_parameters {
const u8 *mld_mac;
int link_id;
const u8 *link_mac;
const u8 *supported_rates;
u8 supported_rates_len;
const struct ieee80211_ht_cap *ht_capa;
const struct ieee80211_vht_cap *vht_capa;
u8 opmode_notif;
bool opmode_notif_used;
const struct ieee80211_he_cap_elem *he_capa;
u8 he_capa_len;
struct sta_txpwr txpwr;
bool txpwr_set;
const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
const struct ieee80211_eht_cap_elem *eht_capa;
u8 eht_capa_len;
};
struct station_parameters {
struct net_device *vlan;
u32 sta_flags_mask;
u32 sta_flags_set;
u32 sta_modify_mask;
int listen_interval;
u16 aid;
u16 vlan_id;
u16 peer_aid;
u8 plink_action;
u8 plink_state;
u8 uapsd_queues;
u8 max_sp;
enum nl80211_mesh_power_mode local_pm;
u16 capability;
const u8 *ext_capab;
u8 ext_capab_len;
const u8 *supported_channels;
u8 supported_channels_len;
const u8 *supported_oper_classes;
u8 supported_oper_classes_len;
int support_p2p_ps;
u16 airtime_weight;
struct link_station_parameters link_sta_params;
};
struct station_del_parameters {
const u8 *mac;
u8 subtype;
u16 reason_code;
int link_id;
};
struct rate_info {
u16 flags;
u16 legacy;
u8 mcs;
u8 nss;
u8 bw;
u8 he_gi;
u8 he_dcm;
u8 he_ru_alloc;
u8 n_bonded_ch;
u8 eht_gi;
u8 eht_ru_alloc;
};
struct sta_bss_parameters {
u8 flags;
u8 dtim_period;
u16 beacon_interval;
};
struct nl80211_sta_flag_update {
__u32 mask;
__u32 set;
};
struct cfg80211_tid_stats;
struct station_info {
u64 filled;
u32 connected_time;
u32 inactive_time;
u64 assoc_at;
u64 rx_bytes;
u64 tx_bytes;
u16 llid;
u16 plid;
u8 plink_state;
s8 signal;
s8 signal_avg;
u8 chains;
s8 chain_signal[4];
s8 chain_signal_avg[4];
struct rate_info txrate;
struct rate_info rxrate;
u32 rx_packets;
u32 tx_packets;
u32 tx_retries;
u32 tx_failed;
u32 rx_dropped_misc;
struct sta_bss_parameters bss_param;
struct nl80211_sta_flag_update sta_flags;
int generation;
const u8 *assoc_req_ies;
size_t assoc_req_ies_len;
u32 beacon_loss_count;
s64 t_offset;
enum nl80211_mesh_power_mode local_pm;
enum nl80211_mesh_power_mode peer_pm;
enum nl80211_mesh_power_mode nonpeer_pm;
u32 expected_throughput;
u64 tx_duration;
u64 rx_duration;
u64 rx_beacon;
u8 rx_beacon_signal_avg;
u8 connected_to_gate;
struct cfg80211_tid_stats *pertid;
s8 ack_signal;
s8 avg_ack_signal;
u16 airtime_weight;
u32 rx_mpdu_count;
u32 fcs_err_count;
u32 airtime_link_metric;
u8 connected_to_as;
bool mlo_params_valid;
u8 assoc_link_id;
int: 0;
u8 mld_addr[6];
const u8 *assoc_resp_ies;
size_t assoc_resp_ies_len;
};
struct cfg80211_txq_stats {
u32 filled;
u32 backlog_bytes;
u32 backlog_packets;
u32 flows;
u32 drops;
u32 ecn_marks;
u32 overlimit;
u32 overmemory;
u32 collisions;
u32 tx_bytes;
u32 tx_packets;
u32 max_flows;
};
struct cfg80211_tid_stats {
u32 filled;
u64 rx_msdu;
u64 tx_msdu;
u64 tx_msdu_retries;
u64 tx_msdu_failed;
struct cfg80211_txq_stats txq_stats;
};
struct mpath_info {
u32 filled;
u32 frame_qlen;
u32 sn;
u32 metric;
u32 exptime;
u32 discovery_timeout;
u8 discovery_retries;
u8 flags;
u8 hop_count;
u32 path_change_count;
int generation;
};
struct mesh_config {
u16 dot11MeshRetryTimeout;
u16 dot11MeshConfirmTimeout;
u16 dot11MeshHoldingTimeout;
u16 dot11MeshMaxPeerLinks;
u8 dot11MeshMaxRetries;
u8 dot11MeshTTL;
u8 element_ttl;
bool auto_open_plinks;
u32 dot11MeshNbrOffsetMaxNeighbor;
u8 dot11MeshHWMPmaxPREQretries;
u32 path_refresh_time;
u16 min_discovery_timeout;
u32 dot11MeshHWMPactivePathTimeout;
u16 dot11MeshHWMPpreqMinInterval;
u16 dot11MeshHWMPperrMinInterval;
u16 dot11MeshHWMPnetDiameterTraversalTime;
u8 dot11MeshHWMPRootMode;
bool dot11MeshConnectedToMeshGate;
bool dot11MeshConnectedToAuthServer;
u16 dot11MeshHWMPRannInterval;
bool dot11MeshGateAnnouncementProtocol;
bool dot11MeshForwarding;
s32 rssi_threshold;
u16 ht_opmode;
u32 dot11MeshHWMPactivePathToRootTimeout;
u16 dot11MeshHWMProotInterval;
u16 dot11MeshHWMPconfirmationInterval;
enum nl80211_mesh_power_mode power_mode;
u16 dot11MeshAwakeWindowDuration;
u32 plink_timeout;
bool dot11MeshNolearn;
};
struct mesh_setup {
struct cfg80211_chan_def chandef;
const u8 *mesh_id;
u8 mesh_id_len;
u8 sync_method;
u8 path_sel_proto;
u8 path_metric;
u8 auth_id;
const u8 *ie;
u8 ie_len;
bool is_authenticated;
bool is_secure;
bool user_mpm;
u8 dtim_period;
u16 beacon_interval;
int mcast_rate[6];
u32 basic_rates;
struct cfg80211_bitrate_mask beacon_rate;
bool userspace_handles_dfs;
bool control_port_over_nl80211;
};
struct ocb_setup {
struct cfg80211_chan_def chandef;
};
struct bss_parameters {
int link_id;
int use_cts_prot;
int use_short_preamble;
int use_short_slot_time;
const u8 *basic_rates;
u8 basic_rates_len;
int ap_isolate;
int ht_opmode;
s8 p2p_ctwindow;
s8 p2p_opp_ps;
};
struct ieee80211_txq_params {
enum nl80211_ac ac;
u16 txop;
u16 cwmin;
u16 cwmax;
u8 aifs;
int link_id;
};
struct cfg80211_auth_request {
struct cfg80211_bss *bss;
const u8 *ie;
size_t ie_len;
enum nl80211_auth_type auth_type;
const u8 *key;
u8 key_len;
s8 key_idx;
const u8 *auth_data;
size_t auth_data_len;
s8 link_id;
const u8 *ap_mld_addr;
};
struct ieee80211_s1g_cap {
u8 capab_info[10];
u8 supp_mcs_nss[5];
};
struct cfg80211_assoc_link {
struct cfg80211_bss *bss;
const u8 *elems;
size_t elems_len;
bool disabled;
int error;
};
struct cfg80211_assoc_request {
struct cfg80211_bss *bss;
const u8 *ie;
const u8 *prev_bssid;
size_t ie_len;
struct cfg80211_crypto_settings crypto;
bool use_mfp;
u32 flags;
struct ieee80211_ht_cap ht_capa;
struct ieee80211_ht_cap ht_capa_mask;
struct ieee80211_vht_cap vht_capa;
struct ieee80211_vht_cap vht_capa_mask;
const u8 *fils_kek;
size_t fils_kek_len;
const u8 *fils_nonces;
struct ieee80211_s1g_cap s1g_capa;
struct ieee80211_s1g_cap s1g_capa_mask;
struct cfg80211_assoc_link links[15];
const u8 *ap_mld_addr;
s8 link_id;
};
struct cfg80211_deauth_request {
const u8 *bssid;
const u8 *ie;
size_t ie_len;
u16 reason_code;
bool local_state_change;
};
struct cfg80211_disassoc_request {
const u8 *ap_addr;
const u8 *ie;
size_t ie_len;
u16 reason_code;
bool local_state_change;
};
struct cfg80211_bss_selection {
enum nl80211_bss_select_attr behaviour;
union {
enum nl80211_band band_pref;
struct cfg80211_bss_select_adjust adjust;
} param;
};
struct cfg80211_connect_params {
struct ieee80211_channel *channel;
struct ieee80211_channel *channel_hint;
const u8 *bssid;
const u8 *bssid_hint;
const u8 *ssid;
size_t ssid_len;
enum nl80211_auth_type auth_type;
const u8 *ie;
size_t ie_len;
bool privacy;
enum nl80211_mfp mfp;
struct cfg80211_crypto_settings crypto;
const u8 *key;
u8 key_len;
u8 key_idx;
u32 flags;
int bg_scan_period;
struct ieee80211_ht_cap ht_capa;
struct ieee80211_ht_cap ht_capa_mask;
struct ieee80211_vht_cap vht_capa;
struct ieee80211_vht_cap vht_capa_mask;
bool pbss;
struct cfg80211_bss_selection bss_select;
const u8 *prev_bssid;
const u8 *fils_erp_username;
size_t fils_erp_username_len;
const u8 *fils_erp_realm;
size_t fils_erp_realm_len;
u16 fils_erp_next_seq_num;
const u8 *fils_erp_rrk;
size_t fils_erp_rrk_len;
bool want_1x;
struct ieee80211_edmg edmg;
};
struct cfg80211_ibss_params {
const u8 *ssid;
const u8 *bssid;
struct cfg80211_chan_def chandef;
const u8 *ie;
u8 ssid_len;
u8 ie_len;
u16 beacon_interval;
u32 basic_rates;
bool channel_fixed;
bool privacy;
bool control_port;
bool control_port_over_nl80211;
bool userspace_handles_dfs;
int mcast_rate[6];
struct ieee80211_ht_cap ht_capa;
struct ieee80211_ht_cap ht_capa_mask;
struct key_params *wep_keys;
int wep_tx_key;
};
struct survey_info {
struct ieee80211_channel *channel;
u64 time;
u64 time_busy;
u64 time_ext_busy;
u64 time_rx;
u64 time_tx;
u64 time_scan;
u64 time_bss_rx;
u32 filled;
s8 noise;
};
struct cfg80211_pmksa {
const u8 *bssid;
const u8 *pmkid;
const u8 *pmk;
size_t pmk_len;
const u8 *ssid;
size_t ssid_len;
const u8 *cache_id;
u32 pmk_lifetime;
u8 pmk_reauth_threshold;
};
struct cfg80211_mgmt_tx_params {
struct ieee80211_channel *chan;
bool offchan;
unsigned int wait;
const u8 *buf;
size_t len;
bool no_cck;
bool dont_wait_for_ack;
int n_csa_offsets;
const u16 *csa_offsets;
int link_id;
};
struct mgmt_frame_regs {
u32 global_stypes;
u32 interface_stypes;
u32 global_mcast_stypes;
u32 interface_mcast_stypes;
};
struct cfg80211_gtk_rekey_data {
const u8 *kek;
const u8 *kck;
const u8 *replay_ctr;
u32 akm;
u8 kek_len;
u8 kck_len;
};
struct cfg80211_update_ft_ies_params {
u16 md;
const u8 *ie;
size_t ie_len;
};
struct cfg80211_coalesce_rules;
struct cfg80211_coalesce {
struct cfg80211_coalesce_rules *rules;
int n_rules;
};
struct cfg80211_coalesce_rules {
int delay;
enum nl80211_coalesce_condition condition;
struct cfg80211_pkt_pattern *patterns;
int n_patterns;
};
struct cfg80211_csa_settings {
struct cfg80211_chan_def chandef;
struct cfg80211_beacon_data beacon_csa;
const u16 *counter_offsets_beacon;
const u16 *counter_offsets_presp;
unsigned int n_counter_offsets_beacon;
unsigned int n_counter_offsets_presp;
struct cfg80211_beacon_data beacon_after;
bool radar_required;
bool block_tx;
u8 count;
u8 link_id;
};
struct cfg80211_dscp_exception {
u8 dscp;
u8 up;
};
struct cfg80211_dscp_range {
u8 low;
u8 high;
};
struct cfg80211_qos_map {
u8 num_des;
struct cfg80211_dscp_exception dscp_exception[21];
struct cfg80211_dscp_range up[8];
};
struct cfg80211_nan_conf {
u8 master_pref;
u8 bands;
};
struct cfg80211_nan_func_filter;
struct cfg80211_nan_func {
enum nl80211_nan_function_type type;
u8 service_id[6];
u8 publish_type;
bool close_range;
bool publish_bcast;
bool subscribe_active;
u8 followup_id;
u8 followup_reqid;
struct mac_address followup_dest;
u32 ttl;
const u8 *serv_spec_info;
u8 serv_spec_info_len;
bool srf_include;
const u8 *srf_bf;
u8 srf_bf_len;
u8 srf_bf_idx;
struct mac_address *srf_macs;
int srf_num_macs;
struct cfg80211_nan_func_filter *rx_filters;
struct cfg80211_nan_func_filter *tx_filters;
u8 num_tx_filters;
u8 num_rx_filters;
u8 instance_id;
u64 cookie;
};
struct cfg80211_nan_func_filter {
const u8 *filter;
u8 len;
};
struct cfg80211_pmk_conf {
const u8 *aa;
u8 pmk_len;
const u8 *pmk;
const u8 *pmk_r0_name;
};
struct cfg80211_external_auth_params {
enum nl80211_external_auth_action action;
u8 bssid[6];
struct cfg80211_ssid ssid;
unsigned int key_mgmt_suite;
u16 status;
const u8 *pmkid;
u8 mld_addr[6];
};
struct cfg80211_ftm_responder_stats {
u32 filled;
u32 success_num;
u32 partial_num;
u32 failed_num;
u32 asap_num;
u32 non_asap_num;
u64 total_duration_ms;
u32 unknown_triggers_num;
u32 reschedule_requests_num;
u32 out_of_window_triggers_num;
};
struct cfg80211_pmsr_ftm_request_peer {
enum nl80211_preamble preamble;
u16 burst_period;
u8 requested: 1;
u8 asap: 1;
u8 request_lci: 1;
u8 request_civicloc: 1;
u8 trigger_based: 1;
u8 non_trigger_based: 1;
u8 lmr_feedback: 1;
u8 num_bursts_exp;
u8 burst_duration;
u8 ftms_per_burst;
u8 ftmr_retries;
u8 bss_color;
};
struct cfg80211_pmsr_request_peer {
u8 addr[6];
struct cfg80211_chan_def chandef;
u8 report_ap_tsf: 1;
struct cfg80211_pmsr_ftm_request_peer ftm;
};
struct cfg80211_pmsr_request {
u64 cookie;
void *drv_data;
u32 n_peers;
u32 nl_portid;
u32 timeout;
u8 mac_addr[6];
u8 mac_addr_mask[6];
struct list_head list;
struct cfg80211_pmsr_request_peer peers[0];
};
struct cfg80211_update_owe_info {
u8 peer[6];
u16 status;
const u8 *ie;
size_t ie_len;
int assoc_link_id;
u8 peer_mld_addr[6];
};
struct cfg80211_tid_cfg {
bool config_override;
u8 tids;
u64 mask;
enum nl80211_tid_config noack;
u8 retry_long;
u8 retry_short;
enum nl80211_tid_config ampdu;
enum nl80211_tid_config rtscts;
enum nl80211_tid_config amsdu;
enum nl80211_tx_rate_setting txrate_type;
struct cfg80211_bitrate_mask txrate_mask;
};
struct cfg80211_tid_config {
const u8 *peer;
u32 n_tid_conf;
struct cfg80211_tid_cfg tid_conf[0];
};
struct cfg80211_sar_sub_specs {
s32 power;
u32 freq_range_index;
};
struct cfg80211_sar_specs {
enum nl80211_sar_type type;
u32 num_sub_specs;
struct cfg80211_sar_sub_specs sub_specs[0];
};
struct cfg80211_color_change_settings {
struct cfg80211_beacon_data beacon_color_change;
u16 counter_offset_beacon;
u16 counter_offset_presp;
struct cfg80211_beacon_data beacon_next;
u8 count;
u8 color;
};
struct cfg80211_fils_aad {
const u8 *macaddr;
const u8 *kek;
u8 kek_len;
const u8 *snonce;
const u8 *anonce;
};
struct link_station_del_parameters {
const u8 *mld_mac;
u32 link_id;
};
struct cfg80211_set_hw_timestamp {
const u8 *macaddr;
bool enable;
};
struct cfg80211_ttlm_params {
u16 dlink[8];
u16 ulink[8];
};
struct genl_family;
struct genlmsghdr;
struct genl_info {
u32 snd_seq;
u32 snd_portid;
const struct genl_family *family;
const struct nlmsghdr *nlhdr;
struct genlmsghdr *genlhdr;
struct nlattr **attrs;
possible_net_t _net;
void *user_ptr[2];
struct netlink_ext_ack *extack;
};
struct genl_split_ops;
struct genl_ops;
struct genl_small_ops;
struct genl_multicast_group;
struct genl_family {
unsigned int hdrsize;
char name[16];
unsigned int version;
unsigned int maxattr;
u8 netnsok: 1;
u8 parallel_ops: 1;
u8 n_ops;
u8 n_small_ops;
u8 n_split_ops;
u8 n_mcgrps;
u8 resv_start_op;
const struct nla_policy *policy;
int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
int (*bind)(int);
void (*unbind)(int);
const struct genl_ops *ops;
const struct genl_small_ops *small_ops;
const struct genl_split_ops *split_ops;
const struct genl_multicast_group *mcgrps;
struct module *module;
size_t sock_priv_size;
void (*sock_priv_init)(void *);
void (*sock_priv_destroy)(void *);
int id;
unsigned int mcgrp_offset;
struct xarray *sock_privs;
};
struct genl_split_ops {
union {
struct {
int (*pre_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
int (*doit)(struct sk_buff *, struct genl_info *);
void (*post_doit)(const struct genl_split_ops *, struct sk_buff *, struct genl_info *);
};
struct {
int (*start)(struct netlink_callback *);
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
int (*done)(struct netlink_callback *);
};
};
const struct nla_policy *policy;
unsigned int maxattr;
u8 cmd;
u8 internal_flags;
u8 flags;
u8 validate;
};
struct genl_ops {
int (*doit)(struct sk_buff *, struct genl_info *);
int (*start)(struct netlink_callback *);
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
int (*done)(struct netlink_callback *);
const struct nla_policy *policy;
unsigned int maxattr;
u8 cmd;
u8 internal_flags;
u8 flags;
u8 validate;
};
struct genl_small_ops {
int (*doit)(struct sk_buff *, struct genl_info *);
int (*dumpit)(struct sk_buff *, struct netlink_callback *);
u8 cmd;
u8 internal_flags;
u8 flags;
u8 validate;
};
struct genl_multicast_group {
char name[16];
u8 flags;
};
struct genlmsghdr {
__u8 cmd;
__u8 version;
__u16 reserved;
};
enum {
LOGIC_PIO_INDIRECT = 0,
LOGIC_PIO_CPU_MMIO = 1,
};
struct logic_pio_host_ops;
struct logic_pio_hwaddr {
struct list_head list;
struct fwnode_handle *fwnode;
resource_size_t hw_start;
resource_size_t io_start;
resource_size_t size;
unsigned long flags;
void *hostdata;
const struct logic_pio_host_ops *ops;
};
struct logic_pio_host_ops {
u32 (*in)(void *, unsigned long, size_t);
void (*out)(void *, unsigned long, u32, size_t);
u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int);
void (*outs)(void *, unsigned long, const void *, size_t, unsigned int);
};
struct ma_state;
typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *);
struct maple_enode;
enum maple_status {
ma_active = 0,
ma_start = 1,
ma_root = 2,
ma_none = 3,
ma_pause = 4,
ma_overflow = 5,
ma_underflow = 6,
ma_error = 7,
};
struct maple_alloc;
struct ma_state {
struct maple_tree *tree;
unsigned long index;
unsigned long last;
struct maple_enode *node;
unsigned long min;
unsigned long max;
struct maple_alloc *alloc;
enum maple_status status;
unsigned char depth;
unsigned char offset;
unsigned char mas_flags;
unsigned char end;
};
struct maple_alloc {
unsigned long total;
unsigned char node_count;
unsigned int request_count;
struct maple_alloc *slot[30];
};
typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *);
typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *);
enum maple_type {
maple_dense = 0,
maple_leaf_64 = 1,
maple_range_64 = 2,
maple_arange_64 = 3,
};
enum _slab_flag_bits {
_SLAB_CONSISTENCY_CHECKS = 0,
_SLAB_RED_ZONE = 1,
_SLAB_POISON = 2,
_SLAB_KMALLOC = 3,
_SLAB_HWCACHE_ALIGN = 4,
_SLAB_CACHE_DMA = 5,
_SLAB_CACHE_DMA32 = 6,
_SLAB_STORE_USER = 7,
_SLAB_PANIC = 8,
_SLAB_TYPESAFE_BY_RCU = 9,
_SLAB_TRACE = 10,
_SLAB_NOLEAKTRACE = 11,
_SLAB_NO_MERGE = 12,
_SLAB_ACCOUNT = 13,
_SLAB_NO_USER_FLAGS = 14,
_SLAB_RECLAIM_ACCOUNT = 15,
_SLAB_OBJECT_POISON = 16,
_SLAB_CMPXCHG_DOUBLE = 17,
_SLAB_FLAGS_LAST_BIT = 18,
};
struct maple_pnode;
struct maple_metadata {
unsigned char end;
unsigned char gap;
};
struct maple_range_64 {
struct maple_pnode *parent;
unsigned long pivot[15];
union {
void __attribute__((btf_type_tag("rcu"))) *slot[16];
struct {
void __attribute__((btf_type_tag("rcu"))) *pad[15];
struct maple_metadata meta;
};
};
};
struct maple_arange_64 {
struct maple_pnode *parent;
unsigned long pivot[9];
void __attribute__((btf_type_tag("rcu"))) *slot[10];
unsigned long gap[10];
struct maple_metadata meta;
};
struct maple_node {
union {
struct {
struct maple_pnode *parent;
void __attribute__((btf_type_tag("rcu"))) *slot[31];
};
struct {
void *pad;
struct callback_head rcu;
struct maple_enode *piv_parent;
unsigned char parent_slot;
enum maple_type type;
unsigned char slot_len;
unsigned int ma_flags;
};
struct maple_range_64 mr64;
struct maple_arange_64 ma64;
struct maple_alloc alloc;
};
};
struct trace_event_raw_ma_op {
struct trace_entry ent;
const char *fn;
unsigned long min;
unsigned long max;
unsigned long index;
unsigned long last;
void *node;
char __data[0];
};
struct trace_event_raw_ma_read {
struct trace_entry ent;
const char *fn;
unsigned long min;
unsigned long max;
unsigned long index;
unsigned long last;
void *node;
char __data[0];
};
struct trace_event_raw_ma_write {
struct trace_entry ent;
const char *fn;
unsigned long min;
unsigned long max;
unsigned long index;
unsigned long last;
unsigned long piv;
void *val;
void *node;
char __data[0];
};
struct maple_topiary {
struct maple_pnode *parent;
struct maple_enode *next;
};
struct ma_wr_state {
struct ma_state *mas;
struct maple_node *node;
unsigned long r_min;
unsigned long r_max;
enum maple_type type;
unsigned char offset_end;
unsigned long *pivots;
unsigned long end_piv;
void __attribute__((btf_type_tag("rcu"))) **slots;
void *entry;
void *content;
};
struct maple_big_node {
struct maple_pnode *parent;
unsigned long pivot[33];
union {
struct maple_enode *slot[34];
struct {
unsigned long padding[21];
unsigned long gap[21];
};
};
unsigned char b_end;
enum maple_type type;
};
struct ma_topiary;
struct maple_subtree_state {
struct ma_state *orig_l;
struct ma_state *orig_r;
struct ma_state *l;
struct ma_state *m;
struct ma_state *r;
struct ma_topiary *free;
struct ma_topiary *destroy;
struct maple_big_node *bn;
};
struct ma_topiary {
struct maple_enode *head;
struct maple_enode *tail;
struct maple_tree *mtree;
};
struct trace_event_data_offsets_ma_op {};
struct trace_event_data_offsets_ma_read {};
struct trace_event_data_offsets_ma_write {};
struct linux_binprm;
struct coredump_params;
struct linux_binfmt {
struct list_head lh;
struct module *module;
int (*load_binary)(struct linux_binprm *);
int (*load_shlib)(struct file *);
int (*core_dump)(struct coredump_params *);
unsigned long min_coredump;
};
struct linux_binprm {
struct vm_area_struct *vma;
unsigned long vma_pages;
struct mm_struct *mm;
unsigned long p;
unsigned long argmin;
unsigned int have_execfd: 1;
unsigned int execfd_creds: 1;
unsigned int secureexec: 1;
unsigned int point_of_no_return: 1;
struct file *executable;
struct file *interpreter;
struct file *file;
struct cred *cred;
int unsafe;
unsigned int per_clear;
int argc;
int envc;
const char *filename;
const char *interp;
const char *fdpath;
unsigned int interp_flags;
int execfd;
unsigned long loader;
unsigned long exec;
struct rlimit rlim_stack;
char buf[256];
};
struct binfmt_misc {
struct list_head entries;
rwlock_t entries_lock;
bool enabled;
};
struct ldt_struct {
struct desc_struct *entries;
unsigned int nr_entries;
int slot;
};
struct anon_vma {
struct anon_vma *root;
struct rw_semaphore rwsem;
atomic_t refcount;
unsigned long num_children;
unsigned long num_active_vmas;
struct anon_vma *parent;
struct rb_root_cached rb_root;
};
struct mempolicy {
atomic_t refcnt;
unsigned short mode;
unsigned short flags;
nodemask_t nodes;
int home_node;
union {
nodemask_t cpuset_mems_allowed;
nodemask_t user_nodemask;
} w;
};
struct task_delay_info {
raw_spinlock_t lock;
u64 blkio_start;
u64 blkio_delay;
u64 swapin_start;
u64 swapin_delay;
u32 blkio_count;
u32 swapin_count;
u64 freepages_start;
u64 freepages_delay;
u64 thrashing_start;
u64 thrashing_delay;
u64 compact_start;
u64 compact_delay;
u64 wpcopy_start;
u64 wpcopy_delay;
u64 irq_delay;
u32 freepages_count;
u32 thrashing_count;
u32 compact_count;
u32 wpcopy_count;
u32 irq_count;
};
typedef void (*btf_trace_initcall_level)(void *, const char *);
typedef int (*initcall_t)();
typedef void (*btf_trace_initcall_start)(void *, initcall_t);
typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int);
enum system_states {
SYSTEM_BOOTING = 0,
SYSTEM_SCHEDULING = 1,
SYSTEM_FREEING_INITMEM = 2,
SYSTEM_RUNNING = 3,
SYSTEM_HALT = 4,
SYSTEM_POWER_OFF = 5,
SYSTEM_RESTART = 6,
SYSTEM_SUSPEND = 7,
};
typedef int initcall_entry_t;
struct trace_event_raw_initcall_level {
struct trace_entry ent;
u32 __data_loc_level;
char __data[0];
};
struct trace_event_raw_initcall_start {
struct trace_entry ent;
initcall_t func;
char __data[0];
};
struct trace_event_raw_initcall_finish {
struct trace_entry ent;
initcall_t func;
int ret;
char __data[0];
};
struct blacklist_entry {
struct list_head next;
char *buf;
};
struct trace_event_data_offsets_initcall_level {
u32 level;
const void *level_ptr_;
};
typedef int (*parse_unknown_fn)(char *, char *, const char *, void *);
struct trace_event_data_offsets_initcall_start {};
struct trace_event_data_offsets_initcall_finish {};
enum acpi_irq_model_id {
ACPI_IRQ_MODEL_PIC = 0,
ACPI_IRQ_MODEL_IOAPIC = 1,
ACPI_IRQ_MODEL_IOSAPIC = 2,
ACPI_IRQ_MODEL_PLATFORM = 3,
ACPI_IRQ_MODEL_GIC = 4,
ACPI_IRQ_MODEL_LPIC = 5,
ACPI_IRQ_MODEL_COUNT = 6,
};
struct serial_icounter_struct {
int cts;
int dsr;
int rng;
int dcd;
int rx;
int tx;
int frame;
int overrun;
int parity;
int brk;
int buf_overrun;
int reserved[9];
};
struct serial_struct {
int type;
int line;
unsigned int port;
int irq;
int flags;
int xmit_fifo_size;
int custom_divisor;
int baud_base;
unsigned short close_delay;
char io_type;
char reserved_char[1];
int hub6;
unsigned short closing_wait;
unsigned short closing_wait2;
unsigned char *iomem_base;
unsigned short iomem_reg_shift;
unsigned int port_high;
unsigned long iomap_base;
};
struct pm_qos_flags {
struct list_head list;
s32 effective_flags;
};
struct dev_pm_qos_request;
struct dev_pm_qos {
struct pm_qos_constraints resume_latency;
struct pm_qos_constraints latency_tolerance;
struct freq_constraints freq;
struct pm_qos_flags flags;
struct dev_pm_qos_request *resume_latency_req;
struct dev_pm_qos_request *latency_tolerance_req;
struct dev_pm_qos_request *flags_req;
};
struct pm_qos_flags_request {
struct list_head node;
s32 flags;
};
enum dev_pm_qos_req_type {
DEV_PM_QOS_RESUME_LATENCY = 1,
DEV_PM_QOS_LATENCY_TOLERANCE = 2,
DEV_PM_QOS_MIN_FREQUENCY = 3,
DEV_PM_QOS_MAX_FREQUENCY = 4,
DEV_PM_QOS_FLAGS = 5,
};
struct dev_pm_qos_request {
enum dev_pm_qos_req_type type;
union {
struct plist_node pnode;
struct pm_qos_flags_request flr;
struct freq_qos_request freq;
} data;
struct device *dev;
};
struct resource {
resource_size_t start;
resource_size_t end;
const char *name;
unsigned long flags;
unsigned long desc;
struct resource *parent;
struct resource *sibling;
struct resource *child;
};
struct dmi_strmatch {
unsigned char slot: 7;
unsigned char exact_match: 1;
char substr[79];
};
struct dmi_system_id {
int (*callback)(const struct dmi_system_id *);
const char *ident;
struct dmi_strmatch matches[4];
void *driver_data;
};
struct acpi_madt_multiproc_wakeup_mailbox {
u16 command;
u16 reserved;
u32 apic_id;
u64 wakeup_vector;
u8 reserved_os[2032];
u8 reserved_firmware[2048];
};
enum ioapic_domain_type {
IOAPIC_DOMAIN_INVALID = 0,
IOAPIC_DOMAIN_LEGACY = 1,
IOAPIC_DOMAIN_STRICT = 2,
IOAPIC_DOMAIN_DYNAMIC = 3,
};
enum e820_type {
E820_TYPE_RAM = 1,
E820_TYPE_RESERVED = 2,
E820_TYPE_ACPI = 3,
E820_TYPE_NVS = 4,
E820_TYPE_UNUSABLE = 5,
E820_TYPE_PMEM = 7,
E820_TYPE_PRAM = 12,
E820_TYPE_SOFT_RESERVED = 4026531839,
E820_TYPE_RESERVED_KERN = 128,
};
enum acpi_madt_type {
ACPI_MADT_TYPE_LOCAL_APIC = 0,
ACPI_MADT_TYPE_IO_APIC = 1,
ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
ACPI_MADT_TYPE_NMI_SOURCE = 3,
ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
ACPI_MADT_TYPE_IO_SAPIC = 6,
ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
ACPI_MADT_TYPE_LOCAL_X2APIC = 9,
ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10,
ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11,
ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12,
ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13,
ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16,
ACPI_MADT_TYPE_CORE_PIC = 17,
ACPI_MADT_TYPE_LIO_PIC = 18,
ACPI_MADT_TYPE_HT_PIC = 19,
ACPI_MADT_TYPE_EIO_PIC = 20,
ACPI_MADT_TYPE_MSI_PIC = 21,
ACPI_MADT_TYPE_BIO_PIC = 22,
ACPI_MADT_TYPE_LPC_PIC = 23,
ACPI_MADT_TYPE_RINTC = 24,
ACPI_MADT_TYPE_IMSIC = 25,
ACPI_MADT_TYPE_APLIC = 26,
ACPI_MADT_TYPE_PLIC = 27,
ACPI_MADT_TYPE_RESERVED = 28,
ACPI_MADT_TYPE_OEM_RESERVED = 128,
};
enum x86_legacy_i8042_state {
X86_LEGACY_I8042_PLATFORM_ABSENT = 0,
X86_LEGACY_I8042_FIRMWARE_ABSENT = 1,
X86_LEGACY_I8042_EXPECTED_PRESENT = 2,
};
enum mp_irq_source_types {
mp_INT = 0,
mp_NMI = 1,
mp_SMI = 2,
mp_ExtINT = 3,
};
enum {
MEMREMAP_WB = 1,
MEMREMAP_WT = 2,
MEMREMAP_WC = 4,
MEMREMAP_ENC = 8,
MEMREMAP_DEC = 16,
};
struct acpi_table_boot {
struct acpi_table_header header;
u8 cmos_index;
u8 reserved[3];
};
struct acpi_table_madt {
struct acpi_table_header header;
u32 address;
u32 flags;
};
struct acpi_subtable_header {
u8 type;
u8 length;
};
struct acpi_madt_local_apic_override {
struct acpi_subtable_header header;
u16 reserved;
u64 address;
} __attribute__((packed));
struct acpi_madt_local_sapic {
struct acpi_subtable_header header;
u8 processor_id;
u8 id;
u8 eid;
u8 reserved[3];
u32 lapic_flags;
u32 uid;
char uid_string[0];
};
struct acpi_madt_local_apic {
struct acpi_subtable_header header;
u8 processor_id;
u8 id;
u32 lapic_flags;
};
struct acpi_madt_local_x2apic {
struct acpi_subtable_header header;
u16 reserved;
u32 local_apic_id;
u32 lapic_flags;
u32 uid;
};
struct acpi_madt_local_x2apic_nmi {
struct acpi_subtable_header header;
u16 inti_flags;
u32 uid;
u8 lint;
u8 reserved[3];
};
struct acpi_madt_local_apic_nmi {
struct acpi_subtable_header header;
u8 processor_id;
u16 inti_flags;
u8 lint;
} __attribute__((packed));
struct acpi_madt_io_apic {
struct acpi_subtable_header header;
u8 id;
u8 reserved;
u32 address;
u32 global_irq_base;
};
struct acpi_madt_interrupt_override {
struct acpi_subtable_header header;
u8 bus;
u8 source_irq;
u32 global_irq;
u16 inti_flags;
} __attribute__((packed));
struct acpi_madt_nmi_source {
struct acpi_subtable_header header;
u16 inti_flags;
u32 global_irq;
};
struct acpi_madt_multiproc_wakeup {
struct acpi_subtable_header header;
u16 mailbox_version;
u32 reserved;
u64 base_address;
};
struct acpi_table_hpet {
struct acpi_table_header header;
u32 id;
struct acpi_generic_address address;
u8 sequence;
u16 minimum_tick;
u8 flags;
} __attribute__((packed));
struct ioapic_domain_cfg {
enum ioapic_domain_type type;
const struct irq_domain_ops *ops;
struct device_node *dev;
};
typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *);
union acpi_subtable_headers;
typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long);
struct acpi_hmat_structure {
u16 type;
u16 reserved;
u32 length;
};
struct acpi_prmt_module_header {
u16 revision;
u16 length;
};
struct acpi_cedt_header {
u8 type;
u8 reserved;
u16 length;
};
struct acpi_cdat_header {
u8 type;
u8 reserved;
u16 length;
};
union acpi_subtable_headers {
struct acpi_subtable_header common;
struct acpi_hmat_structure hmat;
struct acpi_prmt_module_header prmt;
struct acpi_cedt_header cedt;
struct acpi_cdat_header cdat;
};
struct mpc_intsrc {
unsigned char type;
unsigned char irqtype;
unsigned short irqflag;
unsigned char srcbus;
unsigned char srcbusirq;
unsigned char dstapic;
unsigned char dstirq;
};
typedef u32 phys_cpuid_t;
enum {
PAT_UC = 0,
PAT_WC = 1,
PAT_WT = 4,
PAT_WP = 5,
PAT_WB = 6,
PAT_UC_MINUS = 7,
};
enum page_cache_mode {
_PAGE_CACHE_MODE_WB = 0,
_PAGE_CACHE_MODE_WC = 1,
_PAGE_CACHE_MODE_UC_MINUS = 2,
_PAGE_CACHE_MODE_UC = 3,
_PAGE_CACHE_MODE_WT = 4,
_PAGE_CACHE_MODE_WP = 5,
_PAGE_CACHE_MODE_NUM = 8,
};
struct memtype {
u64 start;
u64 end;
u64 subtree_max_end;
enum page_cache_mode type;
struct rb_node rb;
};
struct pagerange_state {
unsigned long cur_pfn;
int ram;
int not_ram;
};
typedef struct {
u64 val;
} pfn_t;
struct cpuinfo_topology {
u32 apicid;
u32 initial_apicid;
u32 pkg_id;
u32 die_id;
u32 cu_id;
u32 core_id;
u32 logical_pkg_id;
u32 logical_die_id;
u32 amd_node_id;
u32 llc_id;
u32 l2c_id;
};
struct cpuinfo_x86 {
__u8 x86;
__u8 x86_vendor;
__u8 x86_model;
__u8 x86_stepping;
int x86_tlbsize;
__u32 vmx_capability[5];
__u8 x86_virt_bits;
__u8 x86_phys_bits;
__u32 extended_cpuid_level;
int cpuid_level;
union {
__u32 x86_capability[23];
unsigned long x86_capability_alignment;
};
char x86_vendor_id[16];
char x86_model_id[64];
struct cpuinfo_topology topo;
unsigned int x86_cache_size;
int x86_cache_alignment;
int x86_cache_max_rmid;
int x86_cache_occ_scale;
int x86_cache_mbm_width_offset;
int x86_power;
unsigned long loops_per_jiffy;
u64 ppin;
u16 x86_clflush_size;
u16 booted_cores;
u16 cpu_index;
bool smt_active;
u32 microcode;
u8 x86_cache_bits;
unsigned int initialized: 1;
};
enum {
IRQD_TRIGGER_MASK = 15,
IRQD_SETAFFINITY_PENDING = 256,
IRQD_ACTIVATED = 512,
IRQD_NO_BALANCING = 1024,
IRQD_PER_CPU = 2048,
IRQD_AFFINITY_SET = 4096,
IRQD_LEVEL = 8192,
IRQD_WAKEUP_STATE = 16384,
IRQD_MOVE_PCNTXT = 32768,
IRQD_IRQ_DISABLED = 65536,
IRQD_IRQ_MASKED = 131072,
IRQD_IRQ_INPROGRESS = 262144,
IRQD_WAKEUP_ARMED = 524288,
IRQD_FORWARDED_TO_VCPU = 1048576,
IRQD_AFFINITY_MANAGED = 2097152,
IRQD_IRQ_STARTED = 4194304,
IRQD_MANAGED_SHUTDOWN = 8388608,
IRQD_SINGLE_TARGET = 16777216,
IRQD_DEFAULT_TRIGGER_SET = 33554432,
IRQD_CAN_RESERVE = 67108864,
IRQD_HANDLE_ENFORCE_IRQCTX = 134217728,
IRQD_AFFINITY_ON_ACTIVATE = 268435456,
IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912,
IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824,
};
enum audit_ntp_type {
AUDIT_NTP_OFFSET = 0,
AUDIT_NTP_FREQ = 1,
AUDIT_NTP_STATUS = 2,
AUDIT_NTP_TAI = 3,
AUDIT_NTP_TICK = 4,
AUDIT_NTP_ADJUST = 5,
AUDIT_NTP_NVALS = 6,
};
struct __kernel_timex_timeval {
__kernel_time64_t tv_sec;
long long tv_usec;
};
struct __kernel_timex {
unsigned int modes;
long long offset;
long long freq;
long long maxerror;
long long esterror;
int status;
long long constant;
long long precision;
long long tolerance;
struct __kernel_timex_timeval time;
long long tick;
long long ppsfreq;
long long jitter;
int shift;
long long stabil;
long long jitcnt;
long long calcnt;
long long errcnt;
long long stbcnt;
int tai;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rtc_device;
struct rtc_timer {
struct timerqueue_node node;
ktime_t period;
void (*func)(struct rtc_device *);
struct rtc_device *rtc;
int enabled;
};
typedef __u64 timeu64_t;
struct rtc_class_ops;
struct rtc_device {
struct device dev;
struct module *owner;
int id;
const struct rtc_class_ops *ops;
struct mutex ops_lock;
struct cdev char_dev;
unsigned long flags;
unsigned long irq_data;
spinlock_t irq_lock;
wait_queue_head_t irq_queue;
struct fasync_struct *async_queue;
int irq_freq;
int max_user_freq;
struct timerqueue_head timerqueue;
struct rtc_timer aie_timer;
struct rtc_timer uie_rtctimer;
struct hrtimer pie_timer;
int pie_enabled;
struct work_struct irqwork;
unsigned long set_offset_nsec;
unsigned long features[1];
time64_t range_min;
timeu64_t range_max;
timeu64_t alarm_offset_max;
time64_t start_secs;
time64_t offset_secs;
bool set_start_time;
};
struct rtc_wkalrm;
struct rtc_param;
struct rtc_class_ops {
int (*ioctl)(struct device *, unsigned int, unsigned long);
int (*read_time)(struct device *, struct rtc_time *);
int (*set_time)(struct device *, struct rtc_time *);
int (*read_alarm)(struct device *, struct rtc_wkalrm *);
int (*set_alarm)(struct device *, struct rtc_wkalrm *);
int (*proc)(struct device *, struct seq_file *);
int (*alarm_irq_enable)(struct device *, unsigned int);
int (*read_offset)(struct device *, long *);
int (*set_offset)(struct device *, long);
int (*param_get)(struct device *, struct rtc_param *);
int (*param_set)(struct device *, struct rtc_param *);
};
struct rtc_wkalrm {
unsigned char enabled;
unsigned char pending;
struct rtc_time time;
};
struct rtc_param {
__u64 param;
union {
__u64 uvalue;
__s64 svalue;
__u64 ptr;
};
__u32 index;
__u32 __pad;
};
struct audit_ntp_data {};
struct tracing_map;
struct tracing_map_field;
struct tracing_map_elt {
struct tracing_map *map;
struct tracing_map_field *fields;
atomic64_t *vars;
bool *var_set;
void *key;
void *private_data;
};
typedef int (*tracing_map_cmp_fn_t)(void *, void *);
struct tracing_map_field {
tracing_map_cmp_fn_t cmp_fn;
union {
atomic64_t sum;
unsigned int offset;
};
};
struct tracing_map_sort_key {
unsigned int field_idx;
bool descending;
};
struct tracing_map_array;
struct tracing_map_ops;
struct tracing_map {
unsigned int key_size;
unsigned int map_bits;
unsigned int map_size;
unsigned int max_elts;
atomic_t next_elt;
struct tracing_map_array *elts;
struct tracing_map_array *map;
const struct tracing_map_ops *ops;
void *private_data;
struct tracing_map_field fields[6];
unsigned int n_fields;
int key_idx[3];
unsigned int n_keys;
struct tracing_map_sort_key sort_key;
unsigned int n_vars;
atomic64_t hits;
atomic64_t drops;
};
struct tracing_map_array {
unsigned int entries_per_page;
unsigned int entry_size_shift;
unsigned int entry_shift;
unsigned int entry_mask;
unsigned int n_pages;
void **pages;
};
struct tracing_map_ops {
int (*elt_alloc)(struct tracing_map_elt *);
void (*elt_free)(struct tracing_map_elt *);
void (*elt_clear)(struct tracing_map_elt *);
void (*elt_init)(struct tracing_map_elt *);
};
struct tracing_map_entry {
u32 key;
struct tracing_map_elt *val;
};
struct tracing_map_sort_entry {
void *key;
struct tracing_map_elt *elt;
bool elt_copied;
bool dup;
};
struct __una_u32 {
u32 x;
};
typedef void (*swap_func_t)(void *, void *, int);
struct ftrace_graph_ret;
typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *);
struct ftrace_graph_ret {
unsigned long func;
int depth;
unsigned int overrun;
unsigned long long calltime;
unsigned long long rettime;
};
struct ftrace_graph_ent;
typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *);
struct ftrace_graph_ent {
unsigned long func;
int depth;
} __attribute__((packed));
enum {
FTRACE_UPDATE_CALLS = 1,
FTRACE_DISABLE_CALLS = 2,
FTRACE_UPDATE_TRACE_FUNC = 4,
FTRACE_START_FUNC_RET = 8,
FTRACE_STOP_FUNC_RET = 16,
FTRACE_MAY_SLEEP = 32,
};
struct trace_array_cpu;
struct array_buffer {
struct trace_array *tr;
struct trace_buffer *buffer;
struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data;
u64 time_start;
int cpu;
};
struct trace_pid_list;
struct trace_options;
struct trace_func_repeats;
struct trace_array {
struct list_head list;
char *name;
struct array_buffer array_buffer;
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_pids;
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *filtered_no_pids;
arch_spinlock_t max_lock;
int buffer_disabled;
int sys_refcount_enter;
int sys_refcount_exit;
struct trace_event_file __attribute__((btf_type_tag("rcu"))) *enter_syscall_files[462];
struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[462];
int stop_count;
int clock_id;
int nr_topts;
bool clear_trace;
int buffer_percent;
unsigned int n_err_log_entries;
struct tracer *current_trace;
unsigned int trace_flags;
unsigned char trace_flags_index[32];
unsigned int flags;
raw_spinlock_t start_lock;
const char *system_names;
struct list_head err_log;
struct dentry *dir;
struct dentry *options;
struct dentry *percpu_dir;
struct eventfs_inode *event_dir;
struct trace_options *topts;
struct list_head systems;
struct list_head events;
struct trace_event_file *trace_marker_file;
cpumask_var_t tracing_cpumask;
cpumask_var_t pipe_cpumask;
int ref;
int trace_ref;
struct ftrace_ops *ops;
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids;
struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids;
struct list_head func_probes;
struct list_head mod_trace;
struct list_head mod_notrace;
int function_enabled;
int no_filter_buffering_ref;
struct list_head hist_vars;
struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats;
bool ring_buffer_expanded;
};
struct trace_array_cpu {
atomic_t disabled;
void *buffer_page;
unsigned long entries;
unsigned long saved_latency;
unsigned long critical_start;
unsigned long critical_end;
unsigned long critical_sequence;
unsigned long nice;
unsigned long policy;
unsigned long rt_priority;
unsigned long skipped_entries;
u64 preempt_timestamp;
pid_t pid;
kuid_t uid;
char comm[16];
int ftrace_ignore_pid;
bool ignore_pid;
};
union upper_chunk;
union lower_chunk;
struct trace_pid_list {
raw_spinlock_t lock;
struct irq_work refill_irqwork;
union upper_chunk *upper[256];
union upper_chunk *upper_list;
union lower_chunk *lower_list;
int free_upper_chunks;
int free_lower_chunks;
};
union upper_chunk {
union upper_chunk *next;
union lower_chunk *data[256];
};
union lower_chunk {
union lower_chunk *next;
unsigned long data[256];
};
struct filter_pred;
struct prog_entry {
int target;
int when_to_branch;
struct filter_pred *pred;
};
struct event_subsystem;
struct trace_subsystem_dir {
struct list_head list;
struct event_subsystem *subsystem;
struct trace_array *tr;
struct eventfs_inode *ei;
int ref_count;
int nr_events;
};
struct event_subsystem {
struct list_head list;
const char *name;
struct event_filter *filter;
int ref_count;
};
struct tracer_flags;
struct tracer {
const char *name;
int (*init)(struct trace_array *);
void (*reset)(struct trace_array *);
void (*start)(struct trace_array *);
void (*stop)(struct trace_array *);
int (*update_thresh)(struct trace_array *);
void (*open)(struct trace_iterator *);
void (*pipe_open)(struct trace_iterator *);
void (*close)(struct trace_iterator *);
void (*pipe_close)(struct trace_iterator *);
ssize_t (*read)(struct trace_iterator *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int);
void (*print_header)(struct seq_file *);
enum print_line_t (*print_line)(struct trace_iterator *);
int (*set_flag)(struct trace_array *, u32, u32, int);
int (*flag_changed)(struct trace_array *, u32, int);
struct tracer *next;
struct tracer_flags *flags;
int enabled;
bool print_max;
bool allow_instances;
bool noboot;
};
struct tracer_opt;
struct tracer_flags {
u32 val;
struct tracer_opt *opts;
struct tracer *trace;
};
struct tracer_opt {
const char *name;
u32 bit;
};
struct trace_option_dentry;
struct trace_options {
struct tracer *tracer;
struct trace_option_dentry *topts;
};
struct trace_option_dentry {
struct tracer_opt *opt;
struct tracer_flags *flags;
struct trace_array *tr;
struct dentry *entry;
};
struct trace_func_repeats {
unsigned long ip;
unsigned long parent_ip;
unsigned long count;
u64 ts_last_call;
};
struct fgraph_ret_regs {
unsigned long ax;
unsigned long dx;
unsigned long bp;
};
struct fgraph_ops {
trace_func_graph_ent_t entryfunc;
trace_func_graph_ret_t retfunc;
};
enum netdev_xdp_act {
NETDEV_XDP_ACT_BASIC = 1,
NETDEV_XDP_ACT_REDIRECT = 2,
NETDEV_XDP_ACT_NDO_XMIT = 4,
NETDEV_XDP_ACT_XSK_ZEROCOPY = 8,
NETDEV_XDP_ACT_HW_OFFLOAD = 16,
NETDEV_XDP_ACT_RX_SG = 32,
NETDEV_XDP_ACT_NDO_XMIT_SG = 64,
NETDEV_XDP_ACT_MASK = 127,
};
enum {
BPF_F_NO_PREALLOC = 1,
BPF_F_NO_COMMON_LRU = 2,
BPF_F_NUMA_NODE = 4,
BPF_F_RDONLY = 8,
BPF_F_WRONLY = 16,
BPF_F_STACK_BUILD_ID = 32,
BPF_F_ZERO_SEED = 64,
BPF_F_RDONLY_PROG = 128,
BPF_F_WRONLY_PROG = 256,
BPF_F_CLONE = 512,
BPF_F_MMAPABLE = 1024,
BPF_F_PRESERVE_ELEMS = 2048,
BPF_F_INNER_MAP = 4096,
BPF_F_LINK = 8192,
BPF_F_PATH_FD = 16384,
BPF_F_VTYPE_BTF_OBJ_FD = 32768,
BPF_F_TOKEN_FD = 65536,
BPF_F_SEGV_ON_FAULT = 131072,
BPF_F_NO_USER_CONV = 262144,
};
enum {
BPF_ANY = 0,
BPF_NOEXIST = 1,
BPF_EXIST = 2,
BPF_F_LOCK = 4,
};
enum {
BPF_F_BROADCAST = 8,
BPF_F_EXCLUDE_INGRESS = 16,
};
enum netdev_cmd {
NETDEV_UP = 1,
NETDEV_DOWN = 2,
NETDEV_REBOOT = 3,
NETDEV_CHANGE = 4,
NETDEV_REGISTER = 5,
NETDEV_UNREGISTER = 6,
NETDEV_CHANGEMTU = 7,
NETDEV_CHANGEADDR = 8,
NETDEV_PRE_CHANGEADDR = 9,
NETDEV_GOING_DOWN = 10,
NETDEV_CHANGENAME = 11,
NETDEV_FEAT_CHANGE = 12,
NETDEV_BONDING_FAILOVER = 13,
NETDEV_PRE_UP = 14,
NETDEV_PRE_TYPE_CHANGE = 15,
NETDEV_POST_TYPE_CHANGE = 16,
NETDEV_POST_INIT = 17,
NETDEV_PRE_UNINIT = 18,
NETDEV_RELEASE = 19,
NETDEV_NOTIFY_PEERS = 20,
NETDEV_JOIN = 21,
NETDEV_CHANGEUPPER = 22,
NETDEV_RESEND_IGMP = 23,
NETDEV_PRECHANGEMTU = 24,
NETDEV_CHANGEINFODATA = 25,
NETDEV_BONDING_INFO = 26,
NETDEV_PRECHANGEUPPER = 27,
NETDEV_CHANGELOWERSTATE = 28,
NETDEV_UDP_TUNNEL_PUSH_INFO = 29,
NETDEV_UDP_TUNNEL_DROP_INFO = 30,
NETDEV_CHANGE_TX_QUEUE_LEN = 31,
NETDEV_CVLAN_FILTER_PUSH_INFO = 32,
NETDEV_CVLAN_FILTER_DROP_INFO = 33,
NETDEV_SVLAN_FILTER_PUSH_INFO = 34,
NETDEV_SVLAN_FILTER_DROP_INFO = 35,
NETDEV_OFFLOAD_XSTATS_ENABLE = 36,
NETDEV_OFFLOAD_XSTATS_DISABLE = 37,
NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38,
NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39,
NETDEV_XDP_FEAT_CHANGE = 40,
};
struct bpf_dtab_netdev;
struct bpf_dtab {
struct bpf_map map;
struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map;
struct list_head list;
struct hlist_head *dev_index_head;
spinlock_t index_lock;
unsigned int items;
u32 n_buckets;
};
struct bpf_devmap_val {
__u32 ifindex;
union {
int fd;
__u32 id;
} bpf_prog;
};
struct bpf_dtab_netdev {
struct net_device *dev;
struct hlist_node index_hlist;
struct bpf_prog *xdp_prog;
struct callback_head rcu;
unsigned int idx;
struct bpf_devmap_val val;
};
struct netdev_notifier_info {
struct net_device *dev;
struct netlink_ext_ack *extack;
};
typedef unsigned long ulong;
enum zpool_mapmode {
ZPOOL_MM_RW = 0,
ZPOOL_MM_RO = 1,
ZPOOL_MM_WO = 2,
ZPOOL_MM_DEFAULT = 0,
};
struct zpool_driver {
char *type;
struct module *owner;
atomic_t refcount;
struct list_head list;
void * (*create)(const char *, gfp_t);
void (*destroy)(void *);
bool malloc_support_movable;
int (*malloc)(void *, size_t, gfp_t, unsigned long *);
void (*free)(void *, unsigned long);
bool sleep_mapped;
void * (*map)(void *, unsigned long, enum zpool_mapmode);
void (*unmap)(void *, unsigned long);
u64 (*total_size)(void *);
};
struct zpool {
struct zpool_driver *driver;
void *pool;
};
struct fs_pin {
wait_queue_head_t wait;
int done;
struct hlist_node s_list;
struct hlist_node m_list;
void (*kill)(struct fs_pin *);
};
struct mnt_pcp;
struct mountpoint;
struct mount {
struct hlist_node mnt_hash;
struct mount *mnt_parent;
struct dentry *mnt_mountpoint;
struct vfsmount mnt;
union {
struct callback_head mnt_rcu;
struct llist_node mnt_llist;
};
struct mnt_pcp __attribute__((btf_type_tag("percpu"))) *mnt_pcp;
struct list_head mnt_mounts;
struct list_head mnt_child;
struct list_head mnt_instance;
const char *mnt_devname;
union {
struct rb_node mnt_node;
struct list_head mnt_list;
};
struct list_head mnt_expire;
struct list_head mnt_share;
struct list_head mnt_slave_list;
struct list_head mnt_slave;
struct mount *mnt_master;
struct mnt_namespace *mnt_ns;
struct mountpoint *mnt_mp;
union {
struct hlist_node mnt_mp_list;
struct hlist_node mnt_umount;
};
struct list_head mnt_umounting;
struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *mnt_fsnotify_marks;
__u32 mnt_fsnotify_mask;
int mnt_id;
u64 mnt_id_unique;
int mnt_group_id;
int mnt_expiry_mark;
struct hlist_head mnt_pins;
struct hlist_head mnt_stuck_children;
};
struct mnt_pcp {
int mnt_count;
int mnt_writers;
};
struct mnt_namespace {
struct ns_common ns;
struct mount *root;
struct rb_root mounts;
struct user_namespace *user_ns;
struct ucounts *ucounts;
u64 seq;
wait_queue_head_t poll;
u64 event;
unsigned int nr_mounts;
unsigned int pending_mounts;
};
struct mountpoint {
struct hlist_node m_hash;
struct dentry *m_dentry;
struct hlist_head m_list;
int m_count;
};
typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *);
typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int);
typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int);
typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int);
typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int);
typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lease *);
typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lease *, struct file_lease *);
struct srcu_notifier_head {
struct mutex mutex;
struct srcu_usage srcuu;
struct srcu_struct srcu;
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
};
struct trace_print_flags {
unsigned long mask;
const char *name;
};
struct file_lock_list_struct {
spinlock_t lock;
struct hlist_head hlist;
};
enum proc_hidepid {
HIDEPID_OFF = 0,
HIDEPID_NO_ACCESS = 1,
HIDEPID_INVISIBLE = 2,
HIDEPID_NOT_PTRACEABLE = 4,
};
enum proc_pidonly {
PROC_PIDONLY_OFF = 0,
PROC_PIDONLY_ON = 1,
};
struct trace_event_raw_locks_get_lock_context {
struct trace_entry ent;
unsigned long i_ino;
dev_t s_dev;
unsigned char type;
struct file_lock_context *ctx;
char __data[0];
};
struct trace_event_raw_filelock_lock {
struct trace_entry ent;
struct file_lock *fl;
unsigned long i_ino;
dev_t s_dev;
struct file_lock_core *blocker;
fl_owner_t owner;
unsigned int pid;
unsigned int flags;
unsigned char type;
loff_t fl_start;
loff_t fl_end;
int ret;
char __data[0];
};
struct trace_event_raw_filelock_lease {
struct trace_entry ent;
struct file_lease *fl;
unsigned long i_ino;
dev_t s_dev;
struct file_lock_core *blocker;
fl_owner_t owner;
unsigned int flags;
unsigned char type;
unsigned long break_time;
unsigned long downgrade_time;
char __data[0];
};
struct trace_event_raw_generic_add_lease {
struct trace_entry ent;
unsigned long i_ino;
int wcount;
int rcount;
int icount;
dev_t s_dev;
fl_owner_t owner;
unsigned int flags;
unsigned char type;
char __data[0];
};
struct trace_event_raw_leases_conflict {
struct trace_entry ent;
void *lease;
void *breaker;
unsigned int l_fl_flags;
unsigned int b_fl_flags;
unsigned char l_fl_type;
unsigned char b_fl_type;
bool conflict;
char __data[0];
};
typedef __kernel_long_t __kernel_off_t;
struct flock {
short l_type;
short l_whence;
__kernel_off_t l_start;
__kernel_off_t l_len;
__kernel_pid_t l_pid;
};
struct flock64 {
short l_type;
short l_whence;
__kernel_loff_t l_start;
__kernel_loff_t l_len;
__kernel_pid_t l_pid;
};
struct proc_fs_info {
struct pid_namespace *pid_ns;
struct dentry *proc_self;
struct dentry *proc_thread_self;
kgid_t pid_gid;
enum proc_hidepid hide_pid;
enum proc_pidonly pidonly;
struct callback_head rcu;
};
struct trace_event_data_offsets_locks_get_lock_context {};
struct trace_event_data_offsets_filelock_lock {};
struct trace_event_data_offsets_filelock_lease {};
struct trace_event_data_offsets_generic_add_lease {};
struct trace_event_data_offsets_leases_conflict {};
struct locks_iterator {
int li_cpu;
loff_t li_pos;
};
struct workspace_manager;
struct btrfs_compress_op {
struct workspace_manager *workspace_manager;
unsigned int max_level;
unsigned int default_level;
};
struct workspace_manager {
struct list_head idle_ws;
spinlock_t ws_lock;
int free_ws;
atomic_t total_ws;
wait_queue_head_t ws_wait;
};
struct zstd_workspace_manager {
const struct btrfs_compress_op *ops;
spinlock_t lock;
struct list_head lru_list;
struct list_head idle_ws[15];
unsigned long active_map;
wait_queue_head_t wait;
struct timer_list timer;
};
enum btrfs_rsv_type {
BTRFS_BLOCK_RSV_GLOBAL = 0,
BTRFS_BLOCK_RSV_DELALLOC = 1,
BTRFS_BLOCK_RSV_TRANS = 2,
BTRFS_BLOCK_RSV_CHUNK = 3,
BTRFS_BLOCK_RSV_DELOPS = 4,
BTRFS_BLOCK_RSV_DELREFS = 5,
BTRFS_BLOCK_RSV_EMPTY = 6,
BTRFS_BLOCK_RSV_TEMP = 7,
};
enum btrfs_exclusive_operation {
BTRFS_EXCLOP_NONE = 0,
BTRFS_EXCLOP_BALANCE_PAUSED = 1,
BTRFS_EXCLOP_BALANCE = 2,
BTRFS_EXCLOP_DEV_ADD = 3,
BTRFS_EXCLOP_DEV_REMOVE = 4,
BTRFS_EXCLOP_DEV_REPLACE = 5,
BTRFS_EXCLOP_RESIZE = 6,
BTRFS_EXCLOP_SWAP_ACTIVATE = 7,
};
struct ZSTD_inBuffer_s {
const void *src;
size_t size;
size_t pos;
};
typedef struct ZSTD_inBuffer_s ZSTD_inBuffer;
typedef ZSTD_inBuffer zstd_in_buffer;
struct ZSTD_outBuffer_s {
void *dst;
size_t size;
size_t pos;
};
typedef struct ZSTD_outBuffer_s ZSTD_outBuffer;
typedef ZSTD_outBuffer zstd_out_buffer;
struct workspace {
void *mem;
size_t size;
char *buf;
unsigned int level;
unsigned int req_level;
unsigned long last_used;
struct list_head list;
struct list_head lru_list;
zstd_in_buffer in_buf;
zstd_out_buffer out_buf;
};
typedef enum {
ZSTD_fast = 1,
ZSTD_dfast = 2,
ZSTD_greedy = 3,
ZSTD_lazy = 4,
ZSTD_lazy2 = 5,
ZSTD_btlazy2 = 6,
ZSTD_btopt = 7,
ZSTD_btultra = 8,
ZSTD_btultra2 = 9,
} ZSTD_strategy;
typedef struct {
unsigned int windowLog;
unsigned int chainLog;
unsigned int hashLog;
unsigned int searchLog;
unsigned int minMatch;
unsigned int targetLength;
ZSTD_strategy strategy;
} ZSTD_compressionParameters;
typedef struct {
int contentSizeFlag;
int checksumFlag;
int noDictIDFlag;
} ZSTD_frameParameters;
typedef struct {
ZSTD_compressionParameters cParams;
ZSTD_frameParameters fParams;
} ZSTD_parameters;
typedef ZSTD_parameters zstd_parameters;
typedef ZSTD_compressionParameters zstd_compression_parameters;
typedef enum {
ZSTDcs_created = 0,
ZSTDcs_init = 1,
ZSTDcs_ongoing = 2,
ZSTDcs_ending = 3,
} ZSTD_compressionStage_e;
typedef enum {
ZSTD_f_zstd1 = 0,
ZSTD_f_zstd1_magicless = 1,
} ZSTD_format_e;
typedef enum {
ZSTD_dictDefaultAttach = 0,
ZSTD_dictForceAttach = 1,
ZSTD_dictForceCopy = 2,
ZSTD_dictForceLoad = 3,
} ZSTD_dictAttachPref_e;
typedef enum {
ZSTD_ps_auto = 0,
ZSTD_ps_enable = 1,
ZSTD_ps_disable = 2,
} ZSTD_paramSwitch_e;
typedef uint32_t U32;
typedef struct {
ZSTD_paramSwitch_e enableLdm;
U32 hashLog;
U32 bucketSizeLog;
U32 minMatchLength;
U32 hashRateLog;
U32 windowLog;
} ldmParams_t;
typedef enum {
ZSTD_bm_buffered = 0,
ZSTD_bm_stable = 1,
} ZSTD_bufferMode_e;
typedef enum {
ZSTD_sf_noBlockDelimiters = 0,
ZSTD_sf_explicitBlockDelimiters = 1,
} ZSTD_sequenceFormat_e;
typedef void * (*ZSTD_allocFunction)(void *, size_t);
typedef void (*ZSTD_freeFunction)(void *, void *);
typedef struct {
ZSTD_allocFunction customAlloc;
ZSTD_freeFunction customFree;
void *opaque;
} ZSTD_customMem;
struct ZSTD_CCtx_params_s {
ZSTD_format_e format;
ZSTD_compressionParameters cParams;
ZSTD_frameParameters fParams;
int compressionLevel;
int forceWindow;
size_t targetCBlockSize;
int srcSizeHint;
ZSTD_dictAttachPref_e attachDictPref;
ZSTD_paramSwitch_e literalCompressionMode;
int nbWorkers;
size_t jobSize;
int overlapLog;
int rsyncable;
ldmParams_t ldmParams;
int enableDedicatedDictSearch;
ZSTD_bufferMode_e inBufferMode;
ZSTD_bufferMode_e outBufferMode;
ZSTD_sequenceFormat_e blockDelimiters;
int validateSequences;
ZSTD_paramSwitch_e useBlockSplitter;
ZSTD_paramSwitch_e useRowMatchFinder;
int deterministicRefPrefix;
ZSTD_customMem customMem;
};
typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params;
typedef u8 uint8_t;
typedef uint8_t BYTE;
typedef enum {
ZSTD_cwksp_alloc_objects = 0,
ZSTD_cwksp_alloc_buffers = 1,
ZSTD_cwksp_alloc_aligned = 2,
} ZSTD_cwksp_alloc_phase_e;
typedef enum {
ZSTD_cwksp_dynamic_alloc = 0,
ZSTD_cwksp_static_alloc = 1,
} ZSTD_cwksp_static_alloc_e;
typedef struct {
void *workspace;
void *workspaceEnd;
void *objectEnd;
void *tableEnd;
void *tableValidEnd;
void *allocStart;
BYTE allocFailed;
int workspaceOversizedDuration;
ZSTD_cwksp_alloc_phase_e phase;
ZSTD_cwksp_static_alloc_e isStatic;
} ZSTD_cwksp;
struct xxh64_state {
uint64_t total_len;
uint64_t v1;
uint64_t v2;
uint64_t v3;
uint64_t v4;
uint64_t mem64[4];
uint32_t memsize;
};
struct POOL_ctx_s;
typedef struct POOL_ctx_s ZSTD_threadPool;
typedef struct {
unsigned int offset;
unsigned int litLength;
unsigned int matchLength;
unsigned int rep;
} ZSTD_Sequence;
typedef struct {
int collectSequences;
ZSTD_Sequence *seqStart;
size_t seqIndex;
size_t maxSequences;
} SeqCollector;
typedef enum {
ZSTD_llt_none = 0,
ZSTD_llt_literalLength = 1,
ZSTD_llt_matchLength = 2,
} ZSTD_longLengthType_e;
struct seqDef_s;
typedef struct seqDef_s seqDef;
typedef struct {
seqDef *sequencesStart;
seqDef *sequences;
BYTE *litStart;
BYTE *lit;
BYTE *llCode;
BYTE *mlCode;
BYTE *ofCode;
size_t maxNbSeq;
size_t maxNbLit;
ZSTD_longLengthType_e longLengthType;
U32 longLengthPos;
} seqStore_t;
typedef struct {
const BYTE *nextSrc;
const BYTE *base;
const BYTE *dictBase;
U32 dictLimit;
U32 lowLimit;
U32 nbOverflowCorrections;
} ZSTD_window_t;
typedef struct {
U32 offset;
U32 checksum;
} ldmEntry_t;
typedef struct {
const BYTE *split;
U32 hash;
U32 checksum;
ldmEntry_t *bucket;
} ldmMatchCandidate_t;
typedef struct {
ZSTD_window_t window;
ldmEntry_t *hashTable;
U32 loadedDictEnd;
BYTE *bucketOffsets;
size_t splitIndices[64];
ldmMatchCandidate_t matchCandidates[64];
} ldmState_t;
typedef struct {
U32 offset;
U32 litLength;
U32 matchLength;
} rawSeq;
typedef struct {
rawSeq *seq;
size_t pos;
size_t posInSequence;
size_t size;
size_t capacity;
} rawSeqStore_t;
typedef size_t HUF_CElt;
typedef enum {
HUF_repeat_none = 0,
HUF_repeat_check = 1,
HUF_repeat_valid = 2,
} HUF_repeat;
typedef struct {
HUF_CElt CTable[257];
HUF_repeat repeatMode;
} ZSTD_hufCTables_t;
typedef unsigned int FSE_CTable;
typedef enum {
FSE_repeat_none = 0,
FSE_repeat_check = 1,
FSE_repeat_valid = 2,
} FSE_repeat;
typedef struct {
FSE_CTable offcodeCTable[193];
FSE_CTable matchlengthCTable[363];
FSE_CTable litlengthCTable[329];
FSE_repeat offcode_repeatMode;
FSE_repeat matchlength_repeatMode;
FSE_repeat litlength_repeatMode;
} ZSTD_fseCTables_t;
typedef struct {
ZSTD_hufCTables_t huf;
ZSTD_fseCTables_t fse;
} ZSTD_entropyCTables_t;
typedef struct {
ZSTD_entropyCTables_t entropy;
U32 rep[3];
} ZSTD_compressedBlockState_t;
typedef u16 uint16_t;
typedef uint16_t U16;
typedef struct {
U32 off;
U32 len;
} ZSTD_match_t;
typedef struct {
int price;
U32 off;
U32 mlen;
U32 litlen;
U32 rep[3];
} ZSTD_optimal_t;
typedef enum {
zop_dynamic = 0,
zop_predef = 1,
} ZSTD_OptPrice_e;
typedef struct {
unsigned int *litFreq;
unsigned int *litLengthFreq;
unsigned int *matchLengthFreq;
unsigned int *offCodeFreq;
ZSTD_match_t *matchTable;
ZSTD_optimal_t *priceTable;
U32 litSum;
U32 litLengthSum;
U32 matchLengthSum;
U32 offCodeSum;
U32 litSumBasePrice;
U32 litLengthSumBasePrice;
U32 matchLengthSumBasePrice;
U32 offCodeSumBasePrice;
ZSTD_OptPrice_e priceType;
const ZSTD_entropyCTables_t *symbolCosts;
ZSTD_paramSwitch_e literalCompressionMode;
} optState_t;
struct ZSTD_matchState_t;
typedef struct ZSTD_matchState_t ZSTD_matchState_t;
struct ZSTD_matchState_t {
ZSTD_window_t window;
U32 loadedDictEnd;
U32 nextToUpdate;
U32 hashLog3;
U32 rowHashLog;
U16 *tagTable;
U32 hashCache[8];
U32 *hashTable;
U32 *hashTable3;
U32 *chainTable;
U32 forceNonContiguous;
int dedicatedDictSearch;
optState_t opt;
const ZSTD_matchState_t *dictMatchState;
ZSTD_compressionParameters cParams;
const rawSeqStore_t *ldmSeqStore;
};
typedef struct {
ZSTD_compressedBlockState_t *prevCBlock;
ZSTD_compressedBlockState_t *nextCBlock;
ZSTD_matchState_t matchState;
} ZSTD_blockState_t;
typedef enum {
ZSTDb_not_buffered = 0,
ZSTDb_buffered = 1,
} ZSTD_buffered_policy_e;
typedef enum {
zcss_init = 0,
zcss_load = 1,
zcss_flush = 2,
} ZSTD_cStreamStage;
typedef enum {
ZSTD_dct_auto = 0,
ZSTD_dct_rawContent = 1,
ZSTD_dct_fullDict = 2,
} ZSTD_dictContentType_e;
struct ZSTD_CDict_s;
typedef struct ZSTD_CDict_s ZSTD_CDict;
typedef struct {
void *dictBuffer;
const void *dict;
size_t dictSize;
ZSTD_dictContentType_e dictContentType;
ZSTD_CDict *cdict;
} ZSTD_localDict;
struct ZSTD_prefixDict_s {
const void *dict;
size_t dictSize;
ZSTD_dictContentType_e dictContentType;
};
typedef struct ZSTD_prefixDict_s ZSTD_prefixDict;
typedef enum {
set_basic = 0,
set_rle = 1,
set_compressed = 2,
set_repeat = 3,
} symbolEncodingType_e;
typedef struct {
symbolEncodingType_e hType;
BYTE hufDesBuffer[128];
size_t hufDesSize;
} ZSTD_hufCTablesMetadata_t;
typedef struct {
symbolEncodingType_e llType;
symbolEncodingType_e ofType;
symbolEncodingType_e mlType;
BYTE fseTablesBuffer[133];
size_t fseTablesSize;
size_t lastCountSize;
} ZSTD_fseCTablesMetadata_t;
typedef struct {
ZSTD_hufCTablesMetadata_t hufMetadata;
ZSTD_fseCTablesMetadata_t fseMetadata;
} ZSTD_entropyCTablesMetadata_t;
typedef struct {
seqStore_t fullSeqStoreChunk;
seqStore_t firstHalfSeqStore;
seqStore_t secondHalfSeqStore;
seqStore_t currSeqStore;
seqStore_t nextSeqStore;
U32 partitions[196];
ZSTD_entropyCTablesMetadata_t entropyMetadata;
} ZSTD_blockSplitCtx;
struct ZSTD_CCtx_s {
ZSTD_compressionStage_e stage;
int cParamsChanged;
int bmi2;
ZSTD_CCtx_params requestedParams;
ZSTD_CCtx_params appliedParams;
ZSTD_CCtx_params simpleApiParams;
U32 dictID;
size_t dictContentSize;
ZSTD_cwksp workspace;
size_t blockSize;
unsigned long long pledgedSrcSizePlusOne;
unsigned long long consumedSrcSize;
unsigned long long producedCSize;
struct xxh64_state xxhState;
ZSTD_customMem customMem;
ZSTD_threadPool *pool;
size_t staticSize;
SeqCollector seqCollector;
int isFirstBlock;
int initialized;
seqStore_t seqStore;
ldmState_t ldmState;
rawSeq *ldmSequences;
size_t maxNbLdmSequences;
rawSeqStore_t externSeqStore;
ZSTD_blockState_t blockState;
U32 *entropyWorkspace;
ZSTD_buffered_policy_e bufferedPolicy;
char *inBuff;
size_t inBuffSize;
size_t inToCompress;
size_t inBuffPos;
size_t inBuffTarget;
char *outBuff;
size_t outBuffSize;
size_t outBuffContentSize;
size_t outBuffFlushedSize;
ZSTD_cStreamStage streamStage;
U32 frameEnded;
ZSTD_inBuffer expectedInBuffer;
size_t expectedOutBufferSize;
ZSTD_localDict localDict;
const ZSTD_CDict *cdict;
ZSTD_prefixDict prefixDict;
ZSTD_blockSplitCtx blockSplitCtx;
};
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
typedef ZSTD_CCtx ZSTD_CStream;
typedef ZSTD_CStream zstd_cstream;
typedef unsigned int fgf_t;
typedef enum {
ZSTD_error_no_error = 0,
ZSTD_error_GENERIC = 1,
ZSTD_error_prefix_unknown = 10,
ZSTD_error_version_unsupported = 12,
ZSTD_error_frameParameter_unsupported = 14,
ZSTD_error_frameParameter_windowTooLarge = 16,
ZSTD_error_corruption_detected = 20,
ZSTD_error_checksum_wrong = 22,
ZSTD_error_dictionary_corrupted = 30,
ZSTD_error_dictionary_wrong = 32,
ZSTD_error_dictionaryCreation_failed = 34,
ZSTD_error_parameter_unsupported = 40,
ZSTD_error_parameter_outOfBound = 42,
ZSTD_error_tableLog_tooLarge = 44,
ZSTD_error_maxSymbolValue_tooLarge = 46,
ZSTD_error_maxSymbolValue_tooSmall = 48,
ZSTD_error_stage_wrong = 60,
ZSTD_error_init_missing = 62,
ZSTD_error_memory_allocation = 64,
ZSTD_error_workSpace_tooSmall = 66,
ZSTD_error_dstSize_tooSmall = 70,
ZSTD_error_srcSize_wrong = 72,
ZSTD_error_dstBuffer_null = 74,
ZSTD_error_frameIndex_tooLarge = 100,
ZSTD_error_seekableIO = 102,
ZSTD_error_dstBuffer_wrong = 104,
ZSTD_error_srcBuffer_wrong = 105,
ZSTD_error_maxCode = 120,
} ZSTD_ErrorCode;
typedef ZSTD_ErrorCode zstd_error_code;
typedef struct {
U16 nextState;
BYTE nbAdditionalBits;
BYTE nbBits;
U32 baseValue;
} ZSTD_seqSymbol;
typedef U32 HUF_DTable;
typedef struct {
ZSTD_seqSymbol LLTable[513];
ZSTD_seqSymbol OFTable[257];
ZSTD_seqSymbol MLTable[513];
HUF_DTable hufTable[4097];
U32 rep[3];
U32 workspace[157];
} ZSTD_entropyDTables_t;
typedef enum {
ZSTD_frame = 0,
ZSTD_skippableFrame = 1,
} ZSTD_frameType_e;
typedef struct {
unsigned long long frameContentSize;
unsigned long long windowSize;
unsigned int blockSizeMax;
ZSTD_frameType_e frameType;
unsigned int headerSize;
unsigned int dictID;
unsigned int checksumFlag;
} ZSTD_frameHeader;
typedef uint64_t U64;
typedef enum {
bt_raw = 0,
bt_rle = 1,
bt_compressed = 2,
bt_reserved = 3,
} blockType_e;
typedef enum {
ZSTDds_getFrameHeaderSize = 0,
ZSTDds_decodeFrameHeader = 1,
ZSTDds_decodeBlockHeader = 2,
ZSTDds_decompressBlock = 3,
ZSTDds_decompressLastBlock = 4,
ZSTDds_checkChecksum = 5,
ZSTDds_decodeSkippableHeader = 6,
ZSTDds_skipFrame = 7,
} ZSTD_dStage;
typedef enum {
ZSTD_d_validateChecksum = 0,
ZSTD_d_ignoreChecksum = 1,
} ZSTD_forceIgnoreChecksum_e;
typedef enum {
ZSTD_use_indefinitely = -1,
ZSTD_dont_use = 0,
ZSTD_use_once = 1,
} ZSTD_dictUses_e;
struct ZSTD_DDict_s;
typedef struct ZSTD_DDict_s ZSTD_DDict;
typedef struct {
const ZSTD_DDict **ddictPtrTable;
size_t ddictPtrTableSize;
size_t ddictPtrCount;
} ZSTD_DDictHashSet;
typedef enum {
ZSTD_rmd_refSingleDDict = 0,
ZSTD_rmd_refMultipleDDicts = 1,
} ZSTD_refMultipleDDicts_e;
typedef enum {
zdss_init = 0,
zdss_loadHeader = 1,
zdss_read = 2,
zdss_load = 3,
zdss_flush = 4,
} ZSTD_dStreamStage;
typedef enum {
ZSTD_not_in_dst = 0,
ZSTD_in_dst = 1,
ZSTD_split = 2,
} ZSTD_litLocation_e;
struct ZSTD_DCtx_s {
const ZSTD_seqSymbol *LLTptr;
const ZSTD_seqSymbol *MLTptr;
const ZSTD_seqSymbol *OFTptr;
const HUF_DTable *HUFptr;
ZSTD_entropyDTables_t entropy;
U32 workspace[640];
const void *previousDstEnd;
const void *prefixStart;
const void *virtualStart;
const void *dictEnd;
size_t expected;
ZSTD_frameHeader fParams;
U64 processedCSize;
U64 decodedSize;
blockType_e bType;
ZSTD_dStage stage;
U32 litEntropy;
U32 fseEntropy;
struct xxh64_state xxhState;
size_t headerSize;
ZSTD_format_e format;
ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum;
U32 validateChecksum;
const BYTE *litPtr;
ZSTD_customMem customMem;
size_t litSize;
size_t rleSize;
size_t staticSize;
int bmi2;
ZSTD_DDict *ddictLocal;
const ZSTD_DDict *ddict;
U32 dictID;
int ddictIsCold;
ZSTD_dictUses_e dictUses;
ZSTD_DDictHashSet *ddictSet;
ZSTD_refMultipleDDicts_e refMultipleDDicts;
ZSTD_dStreamStage streamStage;
char *inBuff;
size_t inBuffSize;
size_t inPos;
size_t maxWindowSize;
char *outBuff;
size_t outBuffSize;
size_t outStart;
size_t outEnd;
size_t lhSize;
U32 hostageByte;
int noForwardProgress;
ZSTD_bufferMode_e outBufferMode;
ZSTD_outBuffer expectedOutBuffer;
BYTE *litBuffer;
const BYTE *litBufferEnd;
ZSTD_litLocation_e litBufferLocation;
BYTE litExtraBuffer[65568];
BYTE headerBuffer[18];
size_t oversizedDuration;
};
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
typedef ZSTD_DCtx ZSTD_DStream;
typedef ZSTD_DStream zstd_dstream;
struct btrfs_key {
__u64 objectid;
__u8 type;
__u64 offset;
} __attribute__((packed));
struct btrfs_tree_parent_check {
u64 owner_root;
u64 transid;
struct btrfs_key first_key;
bool has_first_key;
u8 level;
};
struct btrfs_bio;
typedef void (*btrfs_bio_end_io_t)(struct btrfs_bio *);
struct btrfs_inode;
struct btrfs_ordered_extent;
struct btrfs_ordered_sum;
struct btrfs_fs_info;
struct btrfs_bio {
struct btrfs_inode *inode;
u64 file_offset;
union {
struct {
u8 *csum;
u8 csum_inline[64];
struct bvec_iter saved_iter;
};
struct {
struct btrfs_ordered_extent *ordered;
struct btrfs_ordered_sum *sums;
u64 orig_physical;
};
struct btrfs_tree_parent_check parent_check;
};
btrfs_bio_end_io_t end_io;
void *private;
unsigned int mirror_num;
atomic_t pending_ios;
struct work_struct end_io_work;
struct btrfs_fs_info *fs_info;
struct bio bio;
};
struct compressed_bio {
unsigned int nr_pages;
struct page **compressed_pages;
u64 start;
unsigned int len;
unsigned int compressed_len;
u8 compress_type;
bool writeback;
union {
struct btrfs_bio *orig_bbio;
struct work_struct write_end_work;
};
struct btrfs_bio bbio;
};
struct extent_io_tree {
struct rb_root state;
union {
struct btrfs_fs_info *fs_info;
struct btrfs_inode *inode;
};
u8 owner;
spinlock_t lock;
};
struct btrfs_space_info;
struct btrfs_block_rsv {
u64 size;
u64 reserved;
struct btrfs_space_info *space_info;
spinlock_t lock;
bool full;
bool failfast;
enum btrfs_rsv_type type: 8;
u64 qgroup_rsv_size;
u64 qgroup_rsv_reserved;
};
struct btrfs_block_group;
struct btrfs_free_cluster {
spinlock_t lock;
spinlock_t refill_lock;
struct rb_root root;
u64 max_size;
u64 window_start;
bool fragmented;
struct btrfs_block_group *block_group;
struct list_head block_group_list;
};
struct btrfs_discard_ctl {
struct workqueue_struct *discard_workers;
struct delayed_work work;
spinlock_t lock;
struct btrfs_block_group *block_group;
struct list_head discard_list[3];
u64 prev_discard;
u64 prev_discard_time;
atomic_t discardable_extents;
atomic64_t discardable_bytes;
u64 max_discard_size;
u64 delay_ms;
u32 iops_limit;
u32 kbps_limit;
u64 discard_extent_bytes;
u64 discard_bitmap_bytes;
atomic64_t discard_bytes_saved;
};
struct btrfs_work;
typedef void (*btrfs_func_t)(struct btrfs_work *);
typedef void (*btrfs_ordered_func_t)(struct btrfs_work *, bool);
struct btrfs_workqueue;
struct btrfs_work {
btrfs_func_t func;
btrfs_ordered_func_t ordered_func;
struct work_struct normal_work;
struct list_head ordered_list;
struct btrfs_workqueue *wq;
unsigned long flags;
};
struct btrfs_scrub_progress {
__u64 data_extents_scrubbed;
__u64 tree_extents_scrubbed;
__u64 data_bytes_scrubbed;
__u64 tree_bytes_scrubbed;
__u64 read_errors;
__u64 csum_errors;
__u64 verify_errors;
__u64 no_csum;
__u64 csum_discards;
__u64 super_errors;
__u64 malloc_errors;
__u64 uncorrectable_errors;
__u64 corrected_errors;
__u64 last_physical;
__u64 unverified_errors;
};
struct btrfs_device;
struct btrfs_dev_replace {
u64 replace_state;
time64_t time_started;
time64_t time_stopped;
atomic64_t num_write_errors;
atomic64_t num_uncorrectable_read_errors;
u64 cursor_left;
u64 committed_cursor_left;
u64 cursor_left_last_write_of_item;
u64 cursor_right;
u64 cont_reading_from_srcdev_mode;
int is_valid;
int item_needs_writeback;
struct btrfs_device *srcdev;
struct btrfs_device *tgtdev;
struct mutex lock_finishing_cancel_unmount;
struct rw_semaphore rwsem;
struct btrfs_scrub_progress scrub_progress;
struct percpu_counter bio_counter;
wait_queue_head_t replace_wait;
};
struct btrfs_commit_stats {
u64 commit_count;
u64 max_commit_dur;
u64 last_commit_dur;
u64 total_commit_dur;
};
struct btrfs_root;
struct btrfs_transaction;
struct btrfs_super_block;
struct btrfs_stripe_hash_table;
struct btrfs_fs_devices;
struct reloc_control;
struct btrfs_balance_control;
struct btrfs_subpage_info;
struct ulist;
struct btrfs_delayed_root;
struct btrfs_fs_info {
u8 chunk_tree_uuid[16];
unsigned long flags;
struct btrfs_root *tree_root;
struct btrfs_root *chunk_root;
struct btrfs_root *dev_root;
struct btrfs_root *fs_root;
struct btrfs_root *quota_root;
struct btrfs_root *uuid_root;
struct btrfs_root *data_reloc_root;
struct btrfs_root *block_group_root;
struct btrfs_root *stripe_root;
struct btrfs_root *log_root_tree;
rwlock_t global_root_lock;
struct rb_root global_root_tree;
spinlock_t fs_roots_radix_lock;
struct xarray fs_roots_radix;
rwlock_t block_group_cache_lock;
struct rb_root_cached block_group_cache_tree;
atomic64_t free_chunk_space;
struct extent_io_tree excluded_extents;
struct rb_root_cached mapping_tree;
rwlock_t mapping_tree_lock;
struct btrfs_block_rsv global_block_rsv;
struct btrfs_block_rsv trans_block_rsv;
struct btrfs_block_rsv chunk_block_rsv;
struct btrfs_block_rsv delayed_block_rsv;
struct btrfs_block_rsv delayed_refs_rsv;
struct btrfs_block_rsv empty_block_rsv;
u64 generation;
u64 last_trans_committed;
u64 last_reloc_trans;
u64 last_trans_log_full_commit;
unsigned long mount_opt;
unsigned long compress_type: 4;
unsigned int compress_level;
u32 commit_interval;
u64 max_inline;
struct btrfs_transaction *running_transaction;
wait_queue_head_t transaction_throttle;
wait_queue_head_t transaction_wait;
wait_queue_head_t transaction_blocked_wait;
wait_queue_head_t async_submit_wait;
spinlock_t super_lock;
struct btrfs_super_block *super_copy;
struct btrfs_super_block *super_for_commit;
struct super_block *sb;
struct inode *btree_inode;
struct mutex tree_log_mutex;
struct mutex transaction_kthread_mutex;
struct mutex cleaner_mutex;
struct mutex chunk_mutex;
struct mutex ro_block_group_mutex;
struct btrfs_stripe_hash_table *stripe_hash_table;
struct mutex ordered_operations_mutex;
struct rw_semaphore commit_root_sem;
struct rw_semaphore cleanup_work_sem;
struct rw_semaphore subvol_sem;
spinlock_t trans_lock;
struct mutex reloc_mutex;
struct list_head trans_list;
struct list_head dead_roots;
struct list_head caching_block_groups;
spinlock_t delayed_iput_lock;
struct list_head delayed_iputs;
atomic_t nr_delayed_iputs;
wait_queue_head_t delayed_iputs_wait;
atomic64_t tree_mod_seq;
rwlock_t tree_mod_log_lock;
struct rb_root tree_mod_log;
struct list_head tree_mod_seq_list;
atomic_t async_delalloc_pages;
spinlock_t ordered_root_lock;
struct list_head ordered_roots;
struct mutex delalloc_root_mutex;
spinlock_t delalloc_root_lock;
struct list_head delalloc_roots;
struct btrfs_workqueue *workers;
struct btrfs_workqueue *delalloc_workers;
struct btrfs_workqueue *flush_workers;
struct workqueue_struct *endio_workers;
struct workqueue_struct *endio_meta_workers;
struct workqueue_struct *rmw_workers;
struct workqueue_struct *compressed_write_workers;
struct btrfs_workqueue *endio_write_workers;
struct btrfs_workqueue *endio_freespace_worker;
struct btrfs_workqueue *caching_workers;
struct btrfs_workqueue *fixup_workers;
struct btrfs_workqueue *delayed_workers;
struct task_struct *transaction_kthread;
struct task_struct *cleaner_kthread;
u32 thread_pool_size;
struct kobject *space_info_kobj;
struct kobject *qgroups_kobj;
struct kobject *discard_kobj;
struct percpu_counter dirty_metadata_bytes;
struct percpu_counter delalloc_bytes;
struct percpu_counter ordered_bytes;
s32 dirty_metadata_batch;
s32 delalloc_batch;
struct list_head dirty_cowonly_roots;
struct btrfs_fs_devices *fs_devices;
struct list_head space_info;
struct btrfs_space_info *data_sinfo;
struct reloc_control *reloc_ctl;
struct btrfs_free_cluster data_alloc_cluster;
struct btrfs_free_cluster meta_alloc_cluster;
spinlock_t defrag_inodes_lock;
struct rb_root defrag_inodes;
atomic_t defrag_running;
seqlock_t profiles_lock;
u64 avail_data_alloc_bits;
u64 avail_metadata_alloc_bits;
u64 avail_system_alloc_bits;
spinlock_t balance_lock;
struct mutex balance_mutex;
atomic_t balance_pause_req;
atomic_t balance_cancel_req;
struct btrfs_balance_control *balance_ctl;
wait_queue_head_t balance_wait_q;
atomic_t reloc_cancel_req;
u32 data_chunk_allocations;
u32 metadata_ratio;
void *bdev_holder;
struct mutex scrub_lock;
atomic_t scrubs_running;
atomic_t scrub_pause_req;
atomic_t scrubs_paused;
atomic_t scrub_cancel_req;
wait_queue_head_t scrub_pause_wait;
refcount_t scrub_workers_refcnt;
struct workqueue_struct *scrub_workers;
struct btrfs_subpage_info *subpage_info;
struct btrfs_discard_ctl discard_ctl;
u64 qgroup_flags;
struct rb_root qgroup_tree;
spinlock_t qgroup_lock;
struct ulist *qgroup_ulist;
struct mutex qgroup_ioctl_lock;
struct list_head dirty_qgroups;
u64 qgroup_seq;
struct mutex qgroup_rescan_lock;
struct btrfs_key qgroup_rescan_progress;
struct btrfs_workqueue *qgroup_rescan_workers;
struct completion qgroup_rescan_completion;
struct btrfs_work qgroup_rescan_work;
bool qgroup_rescan_running;
u8 qgroup_drop_subtree_thres;
u64 qgroup_enable_gen;
int fs_error;
unsigned long fs_state;
struct btrfs_delayed_root *delayed_root;
spinlock_t buffer_lock;
struct xarray buffer_radix;
int backup_root_index;
struct btrfs_dev_replace dev_replace;
struct semaphore uuid_tree_rescan_sem;
struct work_struct async_reclaim_work;
struct work_struct async_data_reclaim_work;
struct work_struct preempt_reclaim_work;
struct work_struct reclaim_bgs_work;
struct list_head reclaim_bgs;
int bg_reclaim_threshold;
spinlock_t unused_bgs_lock;
struct list_head unused_bgs;
struct mutex unused_bg_unpin_mutex;
struct mutex reclaim_bgs_lock;
u32 nodesize;
u32 sectorsize;
u32 sectorsize_bits;
u32 csum_size;
u32 csums_per_leaf;
u32 stripesize;
u64 max_extent_size;
spinlock_t swapfile_pins_lock;
struct rb_root swapfile_pins;
struct crypto_shash *csum_shash;
enum btrfs_exclusive_operation exclusive_operation;
u64 zone_size;
struct queue_limits limits;
u64 max_zone_append_size;
struct mutex zoned_meta_io_lock;
spinlock_t treelog_bg_lock;
u64 treelog_bg;
spinlock_t relocation_bg_lock;
u64 data_reloc_bg;
struct mutex zoned_data_reloc_io_lock;
struct btrfs_block_group *active_meta_bg;
struct btrfs_block_group *active_system_bg;
u64 nr_global_roots;
spinlock_t zone_active_bgs_lock;
struct list_head zone_active_bgs;
struct btrfs_commit_stats commit_stats;
u64 last_root_drop_gen;
struct lockdep_map btrfs_trans_num_writers_map;
struct lockdep_map btrfs_trans_num_extwriters_map;
struct lockdep_map btrfs_state_change_map[4];
struct lockdep_map btrfs_trans_pending_ordered_map;
struct lockdep_map btrfs_ordered_extent_map;
};
struct btrfs_dev_item {
__le64 devid;
__le64 total_bytes;
__le64 bytes_used;
__le32 io_align;
__le32 io_width;
__le32 sector_size;
__le64 type;
__le64 generation;
__le64 start_offset;
__le32 dev_group;
__u8 seek_speed;
__u8 bandwidth;
__u8 uuid[16];
__u8 fsid[16];
} __attribute__((packed));
struct btrfs_root_backup {
__le64 tree_root;
__le64 tree_root_gen;
__le64 chunk_root;
__le64 chunk_root_gen;
__le64 extent_root;
__le64 extent_root_gen;
__le64 fs_root;
__le64 fs_root_gen;
__le64 dev_root;
__le64 dev_root_gen;
__le64 csum_root;
__le64 csum_root_gen;
__le64 total_bytes;
__le64 bytes_used;
__le64 num_devices;
__le64 unused_64[4];
__u8 tree_root_level;
__u8 chunk_root_level;
__u8 extent_root_level;
__u8 fs_root_level;
__u8 dev_root_level;
__u8 csum_root_level;
__u8 unused_8[10];
};
struct btrfs_super_block {
__u8 csum[32];
__u8 fsid[16];
__le64 bytenr;
__le64 flags;
__le64 magic;
__le64 generation;
__le64 root;
__le64 chunk_root;
__le64 log_root;
__le64 __unused_log_root_transid;
__le64 total_bytes;
__le64 bytes_used;
__le64 root_dir_objectid;
__le64 num_devices;
__le32 sectorsize;
__le32 nodesize;
__le32 __unused_leafsize;
__le32 stripesize;
__le32 sys_chunk_array_size;
__le64 chunk_root_generation;
__le64 compat_flags;
__le64 compat_ro_flags;
__le64 incompat_flags;
__le16 csum_type;
__u8 root_level;
__u8 chunk_root_level;
__u8 log_root_level;
struct btrfs_dev_item dev_item;
char label[256];
__le64 cache_generation;
__le64 uuid_tree_generation;
__u8 metadata_uuid[16];
__u64 nr_global_roots;
__le64 reserved[27];
__u8 sys_chunk_array[2048];
struct btrfs_root_backup super_roots[4];
__u8 padding[565];
} __attribute__((packed));
enum {
CRYPTO_MSG_ALG_REQUEST = 0,
CRYPTO_MSG_ALG_REGISTER = 1,
CRYPTO_MSG_ALG_LOADED = 2,
};
struct crypto_larval {
struct crypto_alg alg;
struct crypto_alg *adult;
struct completion completion;
u32 mask;
bool test_started;
};
struct crypto_wait {
struct completion completion;
int err;
};
struct skcipher_alg_common {
unsigned int min_keysize;
unsigned int max_keysize;
unsigned int ivsize;
unsigned int chunksize;
unsigned int statesize;
struct crypto_alg base;
};
struct crypto_lskcipher;
struct lskcipher_alg {
int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int);
int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32);
int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, u32);
int (*init)(struct crypto_lskcipher *);
void (*exit)(struct crypto_lskcipher *);
struct skcipher_alg_common co;
};
struct lskcipher_instance {
void (*free)(struct lskcipher_instance *);
union {
struct {
char head[64];
struct crypto_instance base;
} s;
struct lskcipher_alg alg;
};
};
struct crypto_lskcipher {
struct crypto_tfm base;
};
enum rq_qos_id {
RQ_QOS_WBT = 0,
RQ_QOS_LATENCY = 1,
RQ_QOS_COST = 2,
};
struct rq_wait;
typedef bool acquire_inflight_cb_t(struct rq_wait *, void *);
struct rq_qos_wait_data {
struct wait_queue_entry wq;
struct task_struct *task;
struct rq_wait *rqw;
acquire_inflight_cb_t *cb;
void *private_data;
bool got_token;
};
struct rq_qos_ops;
struct rq_qos {
const struct rq_qos_ops *ops;
struct gendisk *disk;
enum rq_qos_id id;
struct rq_qos *next;
struct dentry *debugfs_dir;
};
struct blk_mq_debugfs_attr;
struct rq_qos_ops {
void (*throttle)(struct rq_qos *, struct bio *);
void (*track)(struct rq_qos *, struct request *, struct bio *);
void (*merge)(struct rq_qos *, struct request *, struct bio *);
void (*issue)(struct rq_qos *, struct request *);
void (*requeue)(struct rq_qos *, struct request *);
void (*done)(struct rq_qos *, struct request *);
void (*done_bio)(struct rq_qos *, struct bio *);
void (*cleanup)(struct rq_qos *, struct bio *);
void (*queue_depth_changed)(struct rq_qos *);
void (*exit)(struct rq_qos *);
const struct blk_mq_debugfs_attr *debugfs_attrs;
};
struct blk_mq_debugfs_attr {
const char *name;
umode_t mode;
int (*show)(void *, struct seq_file *);
ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
const struct seq_operations *seq_ops;
};
struct rq_wait {
wait_queue_head_t wait;
atomic_t inflight;
};
struct rq_depth {
unsigned int max_depth;
int scale_step;
bool scaled_max;
unsigned int queue_depth;
unsigned int default_depth;
};
typedef void cleanup_cb_t(struct rq_wait *, void *);
typedef ZSTD_DCtx zstd_dctx;
typedef ZSTD_frameHeader zstd_frame_header;
typedef struct {
U32 tableTime;
U32 decode256Time;
} algo_time_t;
typedef struct {
BYTE nbBits;
BYTE byte;
} HUF_DEltX1;
typedef struct {
U32 rankVal[13];
U32 rankStart[13];
U32 statsWksp[218];
BYTE symbols[256];
BYTE huffWeight[256];
} HUF_ReadDTableX1_Workspace;
typedef struct {
U16 sequence;
BYTE nbBits;
BYTE length;
} HUF_DEltX2;
typedef U32 rankValCol_t[13];
typedef struct {
BYTE symbol;
} sortedSymbol_t;
typedef struct {
rankValCol_t rankVal[12];
U32 rankStats[13];
U32 rankStart0[15];
sortedSymbol_t sortedSymbol[256];
BYTE weightList[256];
U32 calleeWksp[218];
} HUF_ReadDTableX2_Workspace;
typedef struct {
BYTE maxTableLog;
BYTE tableType;
BYTE tableLog;
BYTE reserved;
} DTableDesc;
typedef struct {
size_t bitContainer;
unsigned int bitsConsumed;
const char *ptr;
const char *start;
const char *limitPtr;
} BIT_DStream_t;
typedef enum {
BIT_DStream_unfinished = 0,
BIT_DStream_endOfBuffer = 1,
BIT_DStream_completed = 2,
BIT_DStream_overflow = 3,
} BIT_DStream_status;
enum dim_tune_state {
DIM_PARKING_ON_TOP = 0,
DIM_PARKING_TIRED = 1,
DIM_GOING_RIGHT = 2,
DIM_GOING_LEFT = 3,
};
struct dim_stats {
int ppms;
int bpms;
int epms;
int cpms;
int cpe_ratio;
};
struct dim_sample {
ktime_t time;
u32 pkt_ctr;
u32 byte_ctr;
u16 event_ctr;
u32 comp_ctr;
};
struct dim {
u8 state;
struct dim_stats prev_stats;
struct dim_sample start_sample;
struct dim_sample measuring_sample;
struct work_struct work;
void *priv;
u8 profile_ix;
u8 mode;
u8 tune_state;
u8 steps_right;
u8 steps_left;
u8 tired;
};
enum acpi_subtable_type {
ACPI_SUBTABLE_COMMON = 0,
ACPI_SUBTABLE_HMAT = 1,
ACPI_SUBTABLE_PRMT = 2,
ACPI_SUBTABLE_CEDT = 3,
CDAT_SUBTABLE = 4,
};
enum acpi_cdat_type {
ACPI_CDAT_TYPE_DSMAS = 0,
ACPI_CDAT_TYPE_DSLBIS = 1,
ACPI_CDAT_TYPE_DSMSCIS = 2,
ACPI_CDAT_TYPE_DSIS = 3,
ACPI_CDAT_TYPE_DSEMTS = 4,
ACPI_CDAT_TYPE_SSLBIS = 5,
ACPI_CDAT_TYPE_RESERVED = 6,
};
struct acpi_table_cdat {
u32 length;
u8 revision;
u8 checksum;
u8 reserved[6];
u32 sequence;
};
union fw_table_header {
struct acpi_table_header acpi;
struct acpi_table_cdat cdat;
};
struct acpi_subtable_entry {
union acpi_subtable_headers *hdr;
enum acpi_subtable_type type;
};
typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long);
struct acpi_subtable_proc {
int id;
acpi_tbl_entry_handler handler;
acpi_tbl_entry_handler_arg handler_arg;
void *arg;
int count;
};
enum {
PCI_STD_RESOURCES = 0,
PCI_STD_RESOURCE_END = 5,
PCI_ROM_RESOURCE = 6,
PCI_BRIDGE_RESOURCES = 7,
PCI_BRIDGE_RESOURCE_END = 10,
PCI_NUM_RESOURCES = 11,
DEVICE_COUNT_RESOURCE = 11,
};
typedef unsigned short pci_bus_flags_t;
struct pci_dev;
struct pci_ops;
struct pci_bus {
struct list_head node;
struct pci_bus *parent;
struct list_head children;
struct list_head devices;
struct pci_dev *self;
struct list_head slots;
struct resource *resource[4];
struct list_head resources;
struct resource busn_res;
struct pci_ops *ops;
void *sysdata;
struct proc_dir_entry *procdir;
unsigned char number;
unsigned char primary;
unsigned char max_bus_speed;
unsigned char cur_bus_speed;
char name[48];
unsigned short bridge_ctl;
pci_bus_flags_t bus_flags;
struct device *bridge;
struct device dev;
struct bin_attribute *legacy_io;
struct bin_attribute *legacy_mem;
unsigned int is_added: 1;
unsigned int unsafe_warn: 1;
};
typedef int pci_power_t;
typedef unsigned int pci_channel_state_t;
typedef unsigned short pci_dev_flags_t;
struct pci_vpd {
struct mutex lock;
unsigned int len;
u8 cap;
};
struct pci_slot;
struct pci_driver;
struct pcie_link_state;
struct pci_dev {
struct list_head bus_list;
struct pci_bus *bus;
struct pci_bus *subordinate;
void *sysdata;
struct proc_dir_entry *procent;
struct pci_slot *slot;
unsigned int devfn;
unsigned short vendor;
unsigned short device;
unsigned short subsystem_vendor;
unsigned short subsystem_device;
unsigned int class;
u8 revision;
u8 hdr_type;
u32 devcap;
u8 pcie_cap;
u8 msi_cap;
u8 msix_cap;
u8 pcie_mpss: 3;
u8 rom_base_reg;
u8 pin;
u16 pcie_flags_reg;
unsigned long *dma_alias_mask;
struct pci_driver *driver;
u64 dma_mask;
struct device_dma_parameters dma_parms;
pci_power_t current_state;
u8 pm_cap;
unsigned int imm_ready: 1;
unsigned int pme_support: 5;
unsigned int pme_poll: 1;
unsigned int d1_support: 1;
unsigned int d2_support: 1;
unsigned int no_d1d2: 1;
unsigned int no_d3cold: 1;
unsigned int bridge_d3: 1;
unsigned int d3cold_allowed: 1;
unsigned int mmio_always_on: 1;
unsigned int wakeup_prepared: 1;
unsigned int skip_bus_pm: 1;
unsigned int ignore_hotplug: 1;
unsigned int hotplug_user_indicators: 1;
unsigned int clear_retrain_link: 1;
unsigned int d3hot_delay;
unsigned int d3cold_delay;
u16 l1ss;
struct pcie_link_state *link_state;
unsigned int ltr_path: 1;
unsigned int pasid_no_tlp: 1;
unsigned int eetlp_prefix_path: 1;
pci_channel_state_t error_state;
struct device dev;
int cfg_size;
unsigned int irq;
struct resource resource[11];
struct resource driver_exclusive_resource;
bool match_driver;
unsigned int transparent: 1;
unsigned int io_window: 1;
unsigned int pref_window: 1;
unsigned int pref_64_window: 1;
unsigned int multifunction: 1;
unsigned int is_busmaster: 1;
unsigned int no_msi: 1;
unsigned int no_64bit_msi: 1;
unsigned int block_cfg_access: 1;
unsigned int broken_parity_status: 1;
unsigned int irq_reroute_variant: 2;
unsigned int msi_enabled: 1;
unsigned int msix_enabled: 1;
unsigned int ari_enabled: 1;
unsigned int ats_enabled: 1;
unsigned int pasid_enabled: 1;
unsigned int pri_enabled: 1;
unsigned int is_managed: 1;
unsigned int is_msi_managed: 1;
unsigned int needs_freset: 1;
unsigned int state_saved: 1;
unsigned int is_physfn: 1;
unsigned int is_virtfn: 1;
unsigned int is_hotplug_bridge: 1;
unsigned int shpc_managed: 1;
unsigned int is_thunderbolt: 1;
unsigned int untrusted: 1;
unsigned int external_facing: 1;
unsigned int broken_intx_masking: 1;
unsigned int io_window_1k: 1;
unsigned int irq_managed: 1;
unsigned int non_compliant_bars: 1;
unsigned int is_probed: 1;
unsigned int link_active_reporting: 1;
unsigned int no_vf_scan: 1;
unsigned int no_command_memory: 1;
unsigned int rom_bar_overlap: 1;
unsigned int rom_attr_enabled: 1;
pci_dev_flags_t dev_flags;
atomic_t enable_cnt;
spinlock_t pcie_cap_lock;
u32 saved_config_space[16];
struct hlist_head saved_cap_space;
struct bin_attribute *res_attr[11];
struct bin_attribute *res_attr_wc[11];
void *msix_base;
raw_spinlock_t msi_lock;
struct pci_vpd vpd;
u16 acs_cap;
phys_addr_t rom;
size_t romlen;
const char *driver_override;
unsigned long priv_flags;
u8 reset_methods[7];
};
struct hotplug_slot;
struct pci_slot {
struct pci_bus *bus;
struct list_head list;
struct hotplug_slot *hotplug;
unsigned char number;
struct kobject kobj;
};
struct pci_dynids {
spinlock_t lock;
struct list_head list;
};
struct pci_device_id;
struct pci_error_handlers;
struct pci_driver {
const char *name;
const struct pci_device_id *id_table;
int (*probe)(struct pci_dev *, const struct pci_device_id *);
void (*remove)(struct pci_dev *);
int (*suspend)(struct pci_dev *, pm_message_t);
int (*resume)(struct pci_dev *);
void (*shutdown)(struct pci_dev *);
int (*sriov_configure)(struct pci_dev *, int);
int (*sriov_set_msix_vec_count)(struct pci_dev *, int);
u32 (*sriov_get_vf_total_msix)(struct pci_dev *);
const struct pci_error_handlers *err_handler;
const struct attribute_group **groups;
const struct attribute_group **dev_groups;
struct device_driver driver;
struct pci_dynids dynids;
bool driver_managed_dma;
};
struct pci_device_id {
__u32 vendor;
__u32 device;
__u32 subvendor;
__u32 subdevice;
__u32 class;
__u32 class_mask;
kernel_ulong_t driver_data;
__u32 override_only;
};
typedef unsigned int pci_ers_result_t;
struct pci_error_handlers {
pci_ers_result_t (*error_detected)(struct pci_dev *, pci_channel_state_t);
pci_ers_result_t (*mmio_enabled)(struct pci_dev *);
pci_ers_result_t (*slot_reset)(struct pci_dev *);
void (*reset_prepare)(struct pci_dev *);
void (*reset_done)(struct pci_dev *);
void (*resume)(struct pci_dev *);
void (*cor_error_detected)(struct pci_dev *);
};
struct pci_ops {
int (*add_bus)(struct pci_bus *);
void (*remove_bus)(struct pci_bus *);
void * (*map_bus)(struct pci_bus *, unsigned int, int);
int (*read)(struct pci_bus *, unsigned int, int, int, u32 *);
int (*write)(struct pci_bus *, unsigned int, int, int, u32);
};
typedef u64 pci_bus_addr_t;
struct pci_bus_region {
pci_bus_addr_t start;
pci_bus_addr_t end;
};
typedef u32 (*acpi_osd_handler)(void *);
struct acpi_gpe_device_info {
u32 index;
u32 next_block_base_index;
acpi_status status;
struct acpi_namespace_node *gpe_device;
};
union acpi_predefined_info;
struct acpi_evaluate_info {
struct acpi_namespace_node *prefix_node;
const char *relative_pathname;
union acpi_operand_object **parameters;
struct acpi_namespace_node *node;
union acpi_operand_object *obj_desc;
char *full_pathname;
const union acpi_predefined_info *predefined;
union acpi_operand_object *return_object;
union acpi_operand_object *parent_package;
u32 return_flags;
u32 return_btype;
u16 param_count;
u16 node_flags;
u8 pass_number;
u8 return_object_type;
u8 flags;
};
struct acpi_name_info {
char name[4];
u16 argument_list;
u8 expected_btypes;
} __attribute__((packed));
struct acpi_package_info {
u8 type;
u8 object_type1;
u8 count1;
u8 object_type2;
u8 count2;
u16 reserved;
} __attribute__((packed));
struct acpi_package_info2 {
u8 type;
u8 count;
u8 object_type[4];
u8 reserved;
};
struct acpi_package_info3 {
u8 type;
u8 count;
u8 object_type[2];
u8 tail_object_type;
u16 reserved;
} __attribute__((packed));
struct acpi_package_info4 {
u8 type;
u8 object_type1;
u8 count1;
u8 sub_object_types;
u8 pkg_count;
u16 reserved;
} __attribute__((packed));
union acpi_predefined_info {
struct acpi_name_info info;
struct acpi_package_info ret_info;
struct acpi_package_info2 ret_info2;
struct acpi_package_info3 ret_info3;
struct acpi_package_info4 ret_info4;
};
struct clk_bulk_data {
const char *id;
struct clk *clk;
};
enum pm_qos_flags_status {
PM_QOS_FLAGS_UNDEFINED = -1,
PM_QOS_FLAGS_NONE = 0,
PM_QOS_FLAGS_SOME = 1,
PM_QOS_FLAGS_ALL = 2,
};
enum pm_qos_req_action {
PM_QOS_ADD_REQ = 0,
PM_QOS_UPDATE_REQ = 1,
PM_QOS_REMOVE_REQ = 2,
};
struct wake_irq {
struct device *dev;
unsigned int status;
int irq;
const char *name;
};
struct e1000_info {
s32 (*get_invariants)(struct e1000_hw *);
struct e1000_mac_operations *mac_ops;
const struct e1000_phy_operations *phy_ops;
struct e1000_nvm_operations *nvm_ops;
};
enum igb_tx_buf_type {
IGB_TYPE_SKB = 0,
IGB_TYPE_XDP = 1,
};
struct ptp_extts_request {
unsigned int index;
unsigned int flags;
unsigned int rsv[2];
};
struct ptp_clock_time {
__s64 sec;
__u32 nsec;
__u32 reserved;
};
struct ptp_perout_request {
union {
struct ptp_clock_time start;
struct ptp_clock_time phase;
};
struct ptp_clock_time period;
unsigned int index;
unsigned int flags;
union {
struct ptp_clock_time on;
unsigned int rsv[4];
};
};
struct ptp_clock_request {
enum {
PTP_CLK_REQ_EXTTS = 0,
PTP_CLK_REQ_PEROUT = 1,
PTP_CLK_REQ_PPS = 2,
} type;
union {
struct ptp_extts_request extts;
struct ptp_perout_request perout;
};
};
enum ptp_pin_function {
PTP_PF_NONE = 0,
PTP_PF_EXTTS = 1,
PTP_PF_PEROUT = 2,
PTP_PF_PHYSYNC = 3,
};
struct msix_entry {
u32 vector;
u16 entry;
};
struct e1000_hw_stats {
u64 crcerrs;
u64 algnerrc;
u64 symerrs;
u64 rxerrc;
u64 mpc;
u64 scc;
u64 ecol;
u64 mcc;
u64 latecol;
u64 colc;
u64 dc;
u64 tncrs;
u64 sec;
u64 cexterr;
u64 rlec;
u64 xonrxc;
u64 xontxc;
u64 xoffrxc;
u64 xofftxc;
u64 fcruc;
u64 prc64;
u64 prc127;
u64 prc255;
u64 prc511;
u64 prc1023;
u64 prc1522;
u64 gprc;
u64 bprc;
u64 mprc;
u64 gptc;
u64 gorc;
u64 gotc;
u64 rnbc;
u64 ruc;
u64 rfc;
u64 roc;
u64 rjc;
u64 mgprc;
u64 mgpdc;
u64 mgptc;
u64 tor;
u64 tot;
u64 tpr;
u64 tpt;
u64 ptc64;
u64 ptc127;
u64 ptc255;
u64 ptc511;
u64 ptc1023;
u64 ptc1522;
u64 mptc;
u64 bptc;
u64 tsctc;
u64 tsctfc;
u64 iac;
u64 icrxptc;
u64 icrxatc;
u64 ictxptc;
u64 ictxatc;
u64 ictxqec;
u64 ictxqmtc;
u64 icrxdmtc;
u64 icrxoc;
u64 cbtmpc;
u64 htdpmc;
u64 cbrdpc;
u64 cbrmpc;
u64 rpthc;
u64 hgptc;
u64 htcbdpc;
u64 hgorc;
u64 hgotc;
u64 lenerrs;
u64 scvpc;
u64 hrmpc;
u64 doosync;
u64 o2bgptc;
u64 o2bspc;
u64 b2ospc;
u64 b2ogprc;
};
struct igb_tx_queue_stats {
u64 packets;
u64 bytes;
u64 restart_queue;
u64 restart_queue2;
};
struct igb_rx_queue_stats {
u64 packets;
u64 bytes;
u64 drops;
u64 csum_err;
u64 alloc_failed;
};
struct igb_q_vector;
struct igb_tx_buffer;
struct igb_rx_buffer;
struct igb_ring {
struct igb_q_vector *q_vector;
struct net_device *netdev;
struct bpf_prog *xdp_prog;
struct device *dev;
union {
struct igb_tx_buffer *tx_buffer_info;
struct igb_rx_buffer *rx_buffer_info;
};
void *desc;
unsigned long flags;
void *tail;
dma_addr_t dma;
unsigned int size;
u16 count;
u8 queue_index;
u8 reg_idx;
bool launchtime_enable;
bool cbs_enable;
s32 idleslope;
s32 sendslope;
s32 hicredit;
s32 locredit;
u16 next_to_clean;
u16 next_to_use;
u16 next_to_alloc;
union {
struct {
struct igb_tx_queue_stats tx_stats;
struct u64_stats_sync tx_syncp;
struct u64_stats_sync tx_syncp2;
};
struct {
struct sk_buff *skb;
struct igb_rx_queue_stats rx_stats;
struct u64_stats_sync rx_syncp;
};
};
long: 64;
long: 64;
long: 64;
long: 64;
struct xdp_rxq_info xdp_rxq;
};
struct ptp_pin_desc;
struct ptp_system_timestamp;
struct system_device_crosststamp;
struct ptp_clock_info {
struct module *owner;
char name[32];
s32 max_adj;
int n_alarm;
int n_ext_ts;
int n_per_out;
int n_pins;
int pps;
struct ptp_pin_desc *pin_config;
int (*adjfine)(struct ptp_clock_info *, long);
int (*adjphase)(struct ptp_clock_info *, s32);
s32 (*getmaxphase)(struct ptp_clock_info *);
int (*adjtime)(struct ptp_clock_info *, s64);
int (*gettime64)(struct ptp_clock_info *, struct timespec64 *);
int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *);
int (*settime64)(struct ptp_clock_info *, const struct timespec64 *);
int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *);
int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *);
int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *);
int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int);
int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int);
long (*do_aux_work)(struct ptp_clock_info *);
};
struct hwtstamp_config {
int flags;
int tx_type;
int rx_filter;
};
struct cyclecounter {
u64 (*read)(const struct cyclecounter *);
u64 mask;
u32 mult;
u32 shift;
};
struct timecounter {
const struct cyclecounter *cc;
u64 cycle_last;
u64 nsec;
u64 mask;
u64 frac;
};
struct ptp_pin_desc {
char name[64];
unsigned int index;
unsigned int func;
unsigned int chan;
unsigned int rsv[5];
};
struct i2c_adapter;
struct i2c_algo_bit_data {
void *data;
void (*setsda)(void *, int);
void (*setscl)(void *, int);
int (*getsda)(void *);
int (*getscl)(void *);
int (*pre_xfer)(struct i2c_adapter *);
void (*post_xfer)(struct i2c_adapter *);
int udelay;
int timeout;
bool can_do_atomic;
};
struct rt_mutex_base {
raw_spinlock_t wait_lock;
struct rb_root_cached waiters;
struct task_struct *owner;
};
struct rt_mutex {
struct rt_mutex_base rtmutex;
struct lockdep_map dep_map;
};
struct regulator;
struct i2c_algorithm;
struct i2c_lock_operations;
struct i2c_bus_recovery_info;
struct i2c_adapter_quirks;
struct i2c_adapter {
struct module *owner;
unsigned int class;
const struct i2c_algorithm *algo;
void *algo_data;
const struct i2c_lock_operations *lock_ops;
struct rt_mutex bus_lock;
struct rt_mutex mux_lock;
int timeout;
int retries;
struct device dev;
unsigned long locked_flags;
int nr;
char name[48];
struct completion dev_released;
struct mutex userspace_clients_lock;
struct list_head userspace_clients;
struct i2c_bus_recovery_info *bus_recovery_info;
const struct i2c_adapter_quirks *quirks;
struct irq_domain *host_notify_domain;
struct regulator *bus_regulator;
struct dentry *debugfs;
};
struct vf_mac_filter {
struct list_head l;
int vf;
bool free;
u8 vf_mac[6];
};
struct vf_data_storage;
struct ptp_clock;
struct hwmon_buff;
struct i2c_client;
struct igb_mac_addr;
struct igb_adapter {
unsigned long active_vlans[64];
struct net_device *netdev;
struct bpf_prog *xdp_prog;
unsigned long state;
unsigned int flags;
unsigned int num_q_vectors;
struct msix_entry msix_entries[10];
u32 rx_itr_setting;
u32 tx_itr_setting;
u16 tx_itr;
u16 rx_itr;
u16 tx_work_limit;
u32 tx_timeout_count;
int num_tx_queues;
struct igb_ring *tx_ring[16];
int num_rx_queues;
struct igb_ring *rx_ring[16];
u32 max_frame_size;
u32 min_frame_size;
struct timer_list watchdog_timer;
struct timer_list phy_info_timer;
u16 mng_vlan_id;
u32 bd_number;
u32 wol;
u32 en_mng_pt;
u16 link_speed;
u16 link_duplex;
u8 *io_addr;
struct work_struct reset_task;
struct work_struct watchdog_task;
bool fc_autoneg;
u8 tx_timeout_factor;
struct timer_list blink_timer;
unsigned long led_status;
struct pci_dev *pdev;
spinlock_t stats64_lock;
struct rtnl_link_stats64 stats64;
struct e1000_hw hw;
struct e1000_hw_stats stats;
struct e1000_phy_info phy_info;
u32 test_icr;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct igb_ring test_tx_ring;
struct igb_ring test_rx_ring;
int msg_enable;
struct igb_q_vector *q_vector[8];
u32 eims_enable_mask;
u32 eims_other;
u16 tx_ring_count;
u16 rx_ring_count;
unsigned int vfs_allocated_count;
struct vf_data_storage *vf_data;
int vf_rate_link_speed;
u32 rss_queues;
u32 wvbr;
u32 *shadow_vfta;
struct ptp_clock *ptp_clock;
struct ptp_clock_info ptp_caps;
struct delayed_work ptp_overflow_work;
struct work_struct ptp_tx_work;
struct sk_buff *ptp_tx_skb;
struct hwtstamp_config tstamp_config;
unsigned long ptp_tx_start;
unsigned long last_rx_ptp_check;
unsigned long last_rx_timestamp;
unsigned int ptp_flags;
spinlock_t tmreg_lock;
struct cyclecounter cc;
struct timecounter tc;
u32 tx_hwtstamp_timeouts;
u32 tx_hwtstamp_skipped;
u32 rx_hwtstamp_cleared;
bool pps_sys_wrap_on;
struct ptp_pin_desc sdp_config[4];
struct {
struct timespec64 start;
struct timespec64 period;
} perout[2];
char fw_version[48];
struct hwmon_buff *igb_hwmon_buff;
bool ets;
struct i2c_algo_bit_data i2c_algo;
struct i2c_adapter i2c_adap;
struct i2c_client *i2c_client;
u32 rss_indir_tbl_init;
u8 rss_indir_tbl[128];
unsigned long link_check_timeout;
int copper_tries;
struct e1000_info ei;
u16 eee_advert;
struct hlist_head nfc_filter_list;
struct hlist_head cls_flower_list;
unsigned int nfc_filter_count;
spinlock_t nfc_lock;
bool etype_bitmap[3];
struct igb_mac_addr *mac_table;
struct vf_mac_filter vf_macs;
struct vf_mac_filter *vf_mac_list;
spinlock_t vfs_lock;
long: 64;
};
struct igb_ring_container {
struct igb_ring *ring;
unsigned int total_bytes;
unsigned int total_packets;
u16 work_limit;
u8 count;
u8 itr;
};
struct igb_q_vector {
struct igb_adapter *adapter;
int cpu;
u32 eims_value;
u16 itr_val;
u8 set_itr;
void *itr_register;
struct igb_ring_container rx;
struct igb_ring_container tx;
struct napi_struct napi;
struct callback_head rcu;
char name[25];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct igb_ring ring[0];
};
union e1000_adv_tx_desc;
struct igb_tx_buffer {
union e1000_adv_tx_desc *next_to_watch;
unsigned long time_stamp;
enum igb_tx_buf_type type;
union {
struct sk_buff *skb;
struct xdp_frame *xdpf;
};
unsigned int bytecount;
u16 gso_segs;
__be16 protocol;
dma_addr_t dma;
__u32 len;
u32 tx_flags;
};
union e1000_adv_tx_desc {
struct {
__le64 buffer_addr;
__le32 cmd_type_len;
__le32 olinfo_status;
} read;
struct {
__le64 rsvd;
__le32 nxtseq_seed;
__le32 status;
} wb;
};
struct igb_rx_buffer {
dma_addr_t dma;
struct page *page;
__u32 page_offset;
__u16 pagecnt_bias;
};
struct vf_data_storage {
unsigned char vf_mac_addresses[6];
u16 vf_mc_hashes[30];
u16 num_vf_mc_hashes;
u32 flags;
unsigned long last_nack;
u16 pf_vlan;
u16 pf_qos;
u16 tx_rate;
bool spoofchk_enabled;
bool trusted;
};
struct ptp_system_timestamp {
struct timespec64 pre_ts;
struct timespec64 post_ts;
};
struct system_device_crosststamp {
ktime_t device;
ktime_t sys_realtime;
ktime_t sys_monoraw;
};
struct hwmon_attr {
struct device_attribute dev_attr;
struct e1000_hw *hw;
struct e1000_thermal_diode_data *sensor;
char name[12];
};
struct hwmon_buff {
struct attribute_group group;
const struct attribute_group *groups[2];
struct attribute *attrs[13];
struct hwmon_attr hwmon_list[12];
unsigned int n_hwmon;
};
struct i2c_msg;
union i2c_smbus_data;
struct i2c_algorithm {
int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int);
int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int);
int (*smbus_xfer)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *);
int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, unsigned short, char, u8, int, union i2c_smbus_data *);
u32 (*functionality)(struct i2c_adapter *);
};
struct i2c_msg {
__u16 addr;
__u16 flags;
__u16 len;
__u8 *buf;
};
union i2c_smbus_data {
__u8 byte;
__u16 word;
__u8 block[34];
};
struct i2c_lock_operations {
void (*lock_bus)(struct i2c_adapter *, unsigned int);
int (*trylock_bus)(struct i2c_adapter *, unsigned int);
void (*unlock_bus)(struct i2c_adapter *, unsigned int);
};
struct gpio_desc;
struct pinctrl;
struct pinctrl_state;
struct i2c_bus_recovery_info {
int (*recover_bus)(struct i2c_adapter *);
int (*get_scl)(struct i2c_adapter *);
void (*set_scl)(struct i2c_adapter *, int);
int (*get_sda)(struct i2c_adapter *);
void (*set_sda)(struct i2c_adapter *, int);
int (*get_bus_free)(struct i2c_adapter *);
void (*prepare_recovery)(struct i2c_adapter *);
void (*unprepare_recovery)(struct i2c_adapter *);
struct gpio_desc *scl_gpiod;
struct gpio_desc *sda_gpiod;
struct pinctrl *pinctrl;
struct pinctrl_state *pins_default;
struct pinctrl_state *pins_gpio;
};
struct i2c_adapter_quirks {
u64 flags;
int max_num_msgs;
u16 max_write_len;
u16 max_read_len;
u16 max_comb_1st_msg_len;
u16 max_comb_2nd_msg_len;
};
struct i2c_client {
unsigned short flags;
unsigned short addr;
char name[20];
struct i2c_adapter *adapter;
struct device dev;
int init_irq;
int irq;
struct list_head detected;
void *devres_group_id;
};
struct igb_mac_addr {
u8 addr[6];
u8 queue;
u8 state;
};
enum data_queue_qid {
QID_AC_VO = 0,
QID_AC_VI = 1,
QID_AC_BE = 2,
QID_AC_BK = 3,
QID_HCCA = 4,
QID_MGMT = 13,
QID_RX = 14,
QID_OTHER = 15,
QID_BEACON = 16,
QID_ATIM = 17,
};
enum dev_state {
STATE_DEEP_SLEEP = 0,
STATE_SLEEP = 1,
STATE_STANDBY = 2,
STATE_AWAKE = 3,
STATE_RADIO_ON = 4,
STATE_RADIO_OFF = 5,
STATE_RADIO_IRQ_ON = 6,
STATE_RADIO_IRQ_OFF = 7,
};
enum ifs {
IFS_BACKOFF = 0,
IFS_SIFS = 1,
IFS_NEW_BACKOFF = 2,
IFS_NONE = 3,
};
enum txop {
TXOP_HTTXOP = 0,
TXOP_PIFS = 1,
TXOP_SIFS = 2,
TXOP_BACKOFF = 3,
};
enum rate_modulation {
RATE_MODE_CCK = 0,
RATE_MODE_OFDM = 1,
RATE_MODE_HT_MIX = 2,
RATE_MODE_HT_GREENFIELD = 3,
};
enum cipher {
CIPHER_NONE = 0,
CIPHER_WEP64 = 1,
CIPHER_WEP128 = 2,
CIPHER_TKIP = 3,
CIPHER_AES = 4,
CIPHER_CKIP64 = 5,
CIPHER_CKIP128 = 6,
CIPHER_TKIP_NO_MIC = 7,
CIPHER_MAX = 4,
};
enum mac80211_rx_encoding {
RX_ENC_LEGACY = 0,
RX_ENC_HT = 1,
RX_ENC_VHT = 2,
RX_ENC_HE = 3,
RX_ENC_EHT = 4,
};
enum rate_info_bw {
RATE_INFO_BW_20 = 0,
RATE_INFO_BW_5 = 1,
RATE_INFO_BW_10 = 2,
RATE_INFO_BW_40 = 3,
RATE_INFO_BW_80 = 4,
RATE_INFO_BW_160 = 5,
RATE_INFO_BW_HE_RU = 6,
RATE_INFO_BW_320 = 7,
RATE_INFO_BW_EHT_RU = 8,
RATE_INFO_BW_1 = 9,
RATE_INFO_BW_2 = 10,
RATE_INFO_BW_4 = 11,
RATE_INFO_BW_8 = 12,
RATE_INFO_BW_16 = 13,
};
enum set_key_cmd {
SET_KEY = 0,
DISABLE_KEY = 1,
};
enum tsf_sync {
TSF_SYNC_NONE = 0,
TSF_SYNC_INFRA = 1,
TSF_SYNC_ADHOC = 2,
TSF_SYNC_AP_NONE = 3,
};
enum antenna {
ANTENNA_SW_DIVERSITY = 0,
ANTENNA_A = 1,
ANTENNA_B = 2,
ANTENNA_HW_DIVERSITY = 3,
};
enum sta_notify_cmd {
STA_NOTIFY_SLEEP = 0,
STA_NOTIFY_AWAKE = 1,
};
enum ieee80211_sta_state {
IEEE80211_STA_NOTEXIST = 0,
IEEE80211_STA_NONE = 1,
IEEE80211_STA_AUTH = 2,
IEEE80211_STA_ASSOC = 3,
IEEE80211_STA_AUTHORIZED = 4,
};
enum ieee80211_ampdu_mlme_action {
IEEE80211_AMPDU_RX_START = 0,
IEEE80211_AMPDU_RX_STOP = 1,
IEEE80211_AMPDU_TX_START = 2,
IEEE80211_AMPDU_TX_STOP_CONT = 3,
IEEE80211_AMPDU_TX_STOP_FLUSH = 4,
IEEE80211_AMPDU_TX_STOP_FLUSH_CONT = 5,
IEEE80211_AMPDU_TX_OPERATIONAL = 6,
};
enum ieee80211_roc_type {
IEEE80211_ROC_TYPE_NORMAL = 0,
IEEE80211_ROC_TYPE_MGMT_TX = 1,
};
enum ieee80211_event_type {
RSSI_EVENT = 0,
MLME_EVENT = 1,
BAR_RX_EVENT = 2,
BA_FRAME_TIMEOUT = 3,
};
enum ieee80211_rssi_event_data {
RSSI_EVENT_HIGH = 0,
RSSI_EVENT_LOW = 1,
};
enum ieee80211_mlme_event_data {
AUTH_EVENT = 0,
ASSOC_EVENT = 1,
DEAUTH_RX_EVENT = 2,
DEAUTH_TX_EVENT = 3,
};
enum ieee80211_mlme_event_status {
MLME_SUCCESS = 0,
MLME_DENIED = 1,
MLME_TIMEOUT = 2,
};
enum ieee80211_frame_release_type {
IEEE80211_FRAME_RELEASE_PSPOLL = 0,
IEEE80211_FRAME_RELEASE_UAPSD = 1,
};
enum ieee80211_chanctx_switch_mode {
CHANCTX_SWMODE_REASSIGN_VIF = 0,
CHANCTX_SWMODE_SWAP_CONTEXTS = 1,
};
enum ieee80211_reconfig_type {
IEEE80211_RECONFIG_TYPE_RESTART = 0,
IEEE80211_RECONFIG_TYPE_SUSPEND = 1,
};
enum ieee80211_neg_ttlm_res {
NEG_TTLM_RES_ACCEPT = 0,
NEG_TTLM_RES_REJECT = 1,
NEG_TTLM_RES_SUGGEST_PREFERRED = 2,
};
enum rt2x00_chip_intf {
RT2X00_CHIP_INTF_PCI = 0,
RT2X00_CHIP_INTF_PCIE = 1,
RT2X00_CHIP_INTF_USB = 2,
RT2X00_CHIP_INTF_SOC = 3,
};
enum rt2x00_capability_flags {
REQUIRE_FIRMWARE = 0,
REQUIRE_BEACON_GUARD = 1,
REQUIRE_ATIM_QUEUE = 2,
REQUIRE_DMA = 3,
REQUIRE_COPY_IV = 4,
REQUIRE_L2PAD = 5,
REQUIRE_TXSTATUS_FIFO = 6,
REQUIRE_TASKLET_CONTEXT = 7,
REQUIRE_SW_SEQNO = 8,
REQUIRE_HT_TX_DESC = 9,
REQUIRE_PS_AUTOWAKE = 10,
REQUIRE_DELAYED_RFKILL = 11,
CAPABILITY_HW_BUTTON = 12,
CAPABILITY_HW_CRYPTO = 13,
CAPABILITY_POWER_LIMIT = 14,
CAPABILITY_CONTROL_FILTERS = 15,
CAPABILITY_CONTROL_FILTER_PSPOLL = 16,
CAPABILITY_PRE_TBTT_INTERRUPT = 17,
CAPABILITY_LINK_TUNING = 18,
CAPABILITY_FRAME_TYPE = 19,
CAPABILITY_RF_SEQUENCE = 20,
CAPABILITY_EXTERNAL_LNA_A = 21,
CAPABILITY_EXTERNAL_LNA_BG = 22,
CAPABILITY_DOUBLE_ANTENNA = 23,
CAPABILITY_BT_COEXIST = 24,
CAPABILITY_VCO_RECALIBRATION = 25,
CAPABILITY_EXTERNAL_PA_TX0 = 26,
CAPABILITY_EXTERNAL_PA_TX1 = 27,
CAPABILITY_RESTART_HW = 28,
};
enum firmware_errors {
FW_OK = 0,
FW_BAD_CRC = 1,
FW_BAD_LENGTH = 2,
FW_BAD_VERSION = 3,
};
struct rt2x00_chip {
u16 rt;
u16 rf;
u16 rev;
enum rt2x00_chip_intf intf;
};
struct rf_channel;
struct channel_info;
struct hw_mode_spec {
unsigned int supported_bands;
unsigned int supported_rates;
unsigned int num_channels;
const struct rf_channel *channels;
const struct channel_info *channels_info;
struct ieee80211_sta_ht_cap ht;
};
struct antenna_setup {
enum antenna rx;
enum antenna tx;
u8 rx_chain_num;
u8 tx_chain_num;
};
union csr {
void *base;
void *cache;
};
struct link_qual {
int rssi;
int false_cca;
u8 vgc_level;
u8 vgc_level_reg;
int rx_success;
int rx_failed;
int tx_success;
int tx_failed;
};
struct ewma_rssi {
unsigned long internal;
};
struct link_ant {
unsigned int flags;
struct antenna_setup active;
int rssi_history;
struct ewma_rssi rssi_ant;
};
struct link {
u32 count;
struct link_qual qual;
struct link_ant ant;
struct ewma_rssi avg_rssi;
struct delayed_work work;
struct delayed_work watchdog_work;
unsigned int watchdog_interval;
unsigned int watchdog;
struct delayed_work agc_work;
struct delayed_work vco_work;
};
struct ieee80211_low_level_stats {
unsigned int dot11ACKFailureCount;
unsigned int dot11RTSFailureCount;
unsigned int dot11FCSErrorCount;
unsigned int dot11RTSSuccessCount;
};
struct tasklet_struct {
struct tasklet_struct *next;
unsigned long state;
atomic_t count;
bool use_callback;
union {
void (*func)(unsigned long);
void (*callback)(struct tasklet_struct *);
};
unsigned long data;
};
struct rt2x00_ops;
struct rt2x00_chan_survey;
struct data_queue;
struct firmware;
struct rt2x00_dev {
struct device *dev;
const struct rt2x00_ops *ops;
void *drv_data;
struct ieee80211_hw *hw;
struct ieee80211_supported_band bands[6];
struct rt2x00_chan_survey *chan_survey;
enum nl80211_band curr_band;
int curr_freq;
unsigned long flags;
unsigned long cap_flags;
int irq;
const char *name;
struct rt2x00_chip chip;
struct hw_mode_spec spec;
struct antenna_setup default_ant;
union csr csr;
struct mutex csr_mutex;
struct mutex conf_mutex;
unsigned int packet_filter;
unsigned int intf_ap_count;
unsigned int intf_sta_count;
unsigned int intf_associated;
unsigned int intf_beaconing;
struct ieee80211_iface_limit if_limits_ap;
struct ieee80211_iface_combination if_combinations[1];
struct link link;
__le16 *eeprom;
u32 *rf;
short lna_gain;
u16 tx_power;
u8 short_retry;
u8 long_retry;
u8 rssi_offset;
u8 freq_offset;
u16 aid;
u16 beacon_int;
u16 rxdma_busy;
u16 txdma_busy;
unsigned long last_beacon;
struct ieee80211_low_level_stats low_level_stats;
struct workqueue_struct *workqueue;
struct work_struct intf_work;
struct work_struct rxdone_work;
struct work_struct txdone_work;
struct delayed_work autowakeup_work;
struct work_struct sleep_work;
unsigned int data_queues;
struct data_queue *rx;
struct data_queue *tx;
struct data_queue *bcn;
struct data_queue *atim;
const struct firmware *fw;
struct {
union {
struct __kfifo kfifo;
u32 *type;
const u32 *const_type;
char (*rectype)[0];
u32 *ptr;
const u32 *ptr_const;
};
u32 buf[0];
} txstatus_fifo;
struct hrtimer txstatus_timer;
struct tasklet_struct txstatus_tasklet;
struct tasklet_struct pretbtt_tasklet;
struct tasklet_struct tbtt_tasklet;
struct tasklet_struct rxdone_tasklet;
struct tasklet_struct autowake_tasklet;
int rf_channel;
spinlock_t irqmask_lock;
struct list_head bar_list;
spinlock_t bar_list_lock;
unsigned int extra_tx_headroom;
struct usb_anchor *anchor;
unsigned int num_proto_errs;
struct clk *clk;
};
struct rt2x00lib_ops;
struct ieee80211_ops;
struct rt2x00_ops {
const char *name;
const unsigned int drv_data_size;
const unsigned int max_ap_intf;
const unsigned int eeprom_size;
const unsigned int rf_size;
const unsigned int tx_queues;
void (*queue_init)(struct data_queue *);
const struct rt2x00lib_ops *lib;
const void *drv;
const struct ieee80211_ops *hw;
};
struct queue_entry;
struct data_queue {
struct rt2x00_dev *rt2x00dev;
struct queue_entry *entries;
enum data_queue_qid qid;
unsigned long flags;
struct mutex status_lock;
spinlock_t tx_lock;
spinlock_t index_lock;
unsigned int count;
unsigned short limit;
unsigned short threshold;
unsigned short length;
unsigned short index[3];
unsigned short wd_count;
unsigned int wd_idx;
unsigned short txop;
unsigned short aifs;
unsigned short cw_min;
unsigned short cw_max;
unsigned short data_size;
unsigned char desc_size;
unsigned char winfo_size;
unsigned short priv_size;
unsigned short usb_endpoint;
unsigned short usb_maxpacket;
};
struct queue_entry {
unsigned long flags;
unsigned long last_action;
struct data_queue *queue;
struct sk_buff *skb;
unsigned int entry_idx;
void *priv_data;
};
struct txentry_desc;
struct rxdone_entry_desc;
struct rt2x00lib_crypto;
struct ieee80211_key_conf;
struct rt2x00_intf;
struct rt2x00intf_conf;
struct rt2x00lib_erp;
struct rt2x00lib_conf;
struct rt2x00lib_ops {
irq_handler_t irq_handler;
void (*txstatus_tasklet)(struct tasklet_struct *);
void (*pretbtt_tasklet)(struct tasklet_struct *);
void (*tbtt_tasklet)(struct tasklet_struct *);
void (*rxdone_tasklet)(struct tasklet_struct *);
void (*autowake_tasklet)(struct tasklet_struct *);
int (*probe_hw)(struct rt2x00_dev *);
char * (*get_firmware_name)(struct rt2x00_dev *);
int (*check_firmware)(struct rt2x00_dev *, const u8 *, const size_t);
int (*load_firmware)(struct rt2x00_dev *, const u8 *, const size_t);
int (*initialize)(struct rt2x00_dev *);
void (*uninitialize)(struct rt2x00_dev *);
bool (*get_entry_state)(struct queue_entry *);
void (*clear_entry)(struct queue_entry *);
int (*set_device_state)(struct rt2x00_dev *, enum dev_state);
int (*rfkill_poll)(struct rt2x00_dev *);
void (*link_stats)(struct rt2x00_dev *, struct link_qual *);
void (*reset_tuner)(struct rt2x00_dev *, struct link_qual *);
void (*link_tuner)(struct rt2x00_dev *, struct link_qual *, const u32);
void (*gain_calibration)(struct rt2x00_dev *);
void (*vco_calibration)(struct rt2x00_dev *);
void (*watchdog)(struct rt2x00_dev *);
void (*start_queue)(struct data_queue *);
void (*kick_queue)(struct data_queue *);
void (*stop_queue)(struct data_queue *);
void (*flush_queue)(struct data_queue *, bool);
void (*tx_dma_done)(struct queue_entry *);
void (*write_tx_desc)(struct queue_entry *, struct txentry_desc *);
void (*write_tx_data)(struct queue_entry *, struct txentry_desc *);
void (*write_beacon)(struct queue_entry *, struct txentry_desc *);
void (*clear_beacon)(struct queue_entry *);
int (*get_tx_data_len)(struct queue_entry *);
void (*fill_rxdone)(struct queue_entry *, struct rxdone_entry_desc *);
int (*config_shared_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *);
int (*config_pairwise_key)(struct rt2x00_dev *, struct rt2x00lib_crypto *, struct ieee80211_key_conf *);
void (*config_filter)(struct rt2x00_dev *, const unsigned int);
void (*config_intf)(struct rt2x00_dev *, struct rt2x00_intf *, struct rt2x00intf_conf *, const unsigned int);
void (*config_erp)(struct rt2x00_dev *, struct rt2x00lib_erp *, u32);
void (*config_ant)(struct rt2x00_dev *, struct antenna_setup *);
void (*config)(struct rt2x00_dev *, struct rt2x00lib_conf *, const unsigned int);
void (*pre_reset_hw)(struct rt2x00_dev *);
int (*sta_add)(struct rt2x00_dev *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*sta_remove)(struct rt2x00_dev *, struct ieee80211_sta *);
};
struct txentry_desc {
unsigned long flags;
u16 length;
u16 header_length;
union {
struct {
u16 length_high;
u16 length_low;
u16 signal;
u16 service;
enum ifs ifs;
} plcp;
struct {
u16 mcs;
u8 stbc;
u8 ba_size;
u8 mpdu_density;
enum txop txop;
int wcid;
} ht;
} u;
enum rate_modulation rate_mode;
short retry_limit;
enum cipher cipher;
u16 key_idx;
u16 iv_offset;
u16 iv_len;
};
struct rxdone_entry_desc {
u64 timestamp;
int signal;
int rssi;
int size;
int flags;
int dev_flags;
u16 rate_mode;
u16 enc_flags;
enum mac80211_rx_encoding encoding;
enum rate_info_bw bw;
u8 cipher;
u8 cipher_status;
__le32 iv[2];
__le32 icv;
};
struct rt2x00lib_crypto {
enum cipher cipher;
enum set_key_cmd cmd;
const u8 *address;
u32 bssidx;
u8 key[16];
u8 tx_mic[8];
u8 rx_mic[8];
int wcid;
};
struct ieee80211_key_conf {
atomic64_t tx_pn;
u32 cipher;
u8 icv_len;
u8 iv_len;
u8 hw_key_idx;
s8 keyidx;
u16 flags;
s8 link_id;
u8 keylen;
u8 key[0];
};
struct rt2x00_intf {
struct mutex beacon_skb_mutex;
struct queue_entry *beacon;
bool enable_beacon;
unsigned long delayed_flags;
atomic_t seqno;
};
struct rt2x00intf_conf {
enum nl80211_iftype type;
enum tsf_sync sync;
__le32 mac[2];
__le32 bssid[2];
};
struct rt2x00lib_erp {
int short_preamble;
int cts_protection;
u32 basic_rates;
int slot_time;
short sifs;
short pifs;
short difs;
short eifs;
u16 beacon_int;
u16 ht_opmode;
};
struct rf_channel {
int channel;
u32 rf1;
u32 rf2;
u32 rf3;
u32 rf4;
};
struct channel_info {
unsigned int flags;
short max_power;
short default_power1;
short default_power2;
short default_power3;
};
struct rt2x00lib_conf {
struct ieee80211_conf *conf;
struct rf_channel rf;
struct channel_info channel;
};
struct ieee80211_tx_control;
struct ieee80211_scan_request;
struct ieee80211_scan_ies;
struct ieee80211_key_seq;
struct ieee80211_tx_queue_params;
struct ieee80211_ampdu_params;
struct ieee80211_event;
struct ieee80211_prep_tx_info;
struct ieee80211_vif_chanctx_switch;
struct ieee80211_tdls_ch_sw_params;
struct ieee80211_twt_setup;
struct ieee80211_ops {
void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *);
int (*start)(struct ieee80211_hw *);
void (*stop)(struct ieee80211_hw *);
int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *);
int (*resume)(struct ieee80211_hw *);
void (*set_wakeup)(struct ieee80211_hw *, bool);
int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool);
void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*config)(struct ieee80211_hw *, u32);
void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64);
void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64);
int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *);
void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64);
void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int);
int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool);
int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *);
void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *);
void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *);
void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int);
int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *);
void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *);
int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *);
void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *);
void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *);
void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *);
int (*set_frag_threshold)(struct ieee80211_hw *, u32);
int (*set_rts_threshold)(struct ieee80211_hw *, u32);
int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *);
int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state);
void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32);
void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *);
int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *);
u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *);
void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64);
void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64);
void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*tx_last_beacon)(struct ieee80211_hw *);
int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *);
int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *);
void (*rfkill_poll)(struct ieee80211_hw *);
void (*set_coverage_class)(struct ieee80211_hw *, s16);
void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool);
void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
int (*set_antenna)(struct ieee80211_hw *, u32, u32);
int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *);
int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type);
int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*set_ringparam)(struct ieee80211_hw *, u32, u32);
void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *);
bool (*tx_frames_pending)(struct ieee80211_hw *);
int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *);
void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *);
void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int);
void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *);
void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *);
void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *);
void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *);
void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int);
int (*add_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *);
void (*remove_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *);
void (*change_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, u32);
int (*assign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *);
int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type);
void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *);
void (*channel_switch_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_chan_def *);
int (*pre_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
int (*post_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
void (*channel_switch_rx_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *);
int (*join_ibss)(struct ieee80211_hw *, struct ieee80211_vif *);
void (*leave_ibss)(struct ieee80211_hw *, struct ieee80211_vif *);
u32 (*get_expected_throughput)(struct ieee80211_hw *, struct ieee80211_sta *);
int (*get_txpower)(struct ieee80211_hw *, struct ieee80211_vif *, int *);
int (*tdls_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *, struct sk_buff *, u32);
void (*tdls_cancel_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *);
void (*tdls_recv_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_tdls_ch_sw_params *);
void (*wake_tx_queue)(struct ieee80211_hw *, struct ieee80211_txq *);
void (*sync_rx_queues)(struct ieee80211_hw *);
int (*start_nan)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *);
int (*stop_nan)(struct ieee80211_hw *, struct ieee80211_vif *);
int (*nan_change_conf)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_nan_conf *, u32);
int (*add_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_nan_func *);
void (*del_nan_func)(struct ieee80211_hw *, struct ieee80211_vif *, u8);
bool (*can_aggregate_in_amsdu)(struct ieee80211_hw *, struct sk_buff *, struct sk_buff *);
int (*get_ftm_responder_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_ftm_responder_stats *);
int (*start_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *);
void (*abort_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *);
int (*set_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct cfg80211_tid_config *);
int (*reset_tid_config)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u8);
void (*update_vif_offload)(struct ieee80211_hw *, struct ieee80211_vif *);
void (*sta_set_4addr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool);
int (*set_sar_specs)(struct ieee80211_hw *, const struct cfg80211_sar_specs *);
void (*sta_set_decap_offload)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool);
void (*add_twt_setup)(struct ieee80211_hw *, struct ieee80211_sta *, struct ieee80211_twt_setup *);
void (*twt_teardown_request)(struct ieee80211_hw *, struct ieee80211_sta *, u8);
int (*set_radar_background)(struct ieee80211_hw *, struct cfg80211_chan_def *);
int (*net_fill_forward_path)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct net_device_path_ctx *, struct net_device_path *);
bool (*can_activate_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16);
int (*change_vif_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16, u16, struct ieee80211_bss_conf **);
int (*change_sta_links)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u16, u16);
int (*set_hw_timestamp)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_set_hw_timestamp *);
int (*net_setup_tc)(struct ieee80211_hw *, struct ieee80211_vif *, struct net_device *, enum tc_setup_type, void *);
enum ieee80211_neg_ttlm_res (*can_neg_ttlm)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_neg_ttlm *);
};
struct ieee80211_tx_control {
struct ieee80211_sta *sta;
};
struct ieee80211_scan_ies {
const u8 *ies[6];
size_t len[6];
const u8 *common_ies;
size_t common_ie_len;
};
struct ieee80211_scan_request {
struct ieee80211_scan_ies ies;
struct cfg80211_scan_request req;
};
struct ieee80211_key_seq {
union {
struct {
u32 iv32;
u16 iv16;
} tkip;
struct {
u8 pn[6];
} ccmp;
struct {
u8 pn[6];
} aes_cmac;
struct {
u8 pn[6];
} aes_gmac;
struct {
u8 pn[6];
} gcmp;
struct {
u8 seq[16];
u8 seq_len;
} hw;
};
};
struct ieee80211_he_mu_edca_param_ac_rec {
u8 aifsn;
u8 ecw_min_max;
u8 mu_edca_timer;
};
struct ieee80211_tx_queue_params {
u16 txop;
u16 cw_min;
u16 cw_max;
u8 aifs;
bool acm;
bool uapsd;
bool mu_edca;
struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec;
};
struct ieee80211_ampdu_params {
enum ieee80211_ampdu_mlme_action action;
struct ieee80211_sta *sta;
u16 tid;
u16 ssn;
u16 buf_size;
bool amsdu;
u16 timeout;
};
struct ieee80211_rssi_event {
enum ieee80211_rssi_event_data data;
};
struct ieee80211_mlme_event {
enum ieee80211_mlme_event_data data;
enum ieee80211_mlme_event_status status;
u16 reason;
};
struct ieee80211_ba_event {
struct ieee80211_sta *sta;
u16 tid;
u16 ssn;
};
struct ieee80211_event {
enum ieee80211_event_type type;
union {
struct ieee80211_rssi_event rssi;
struct ieee80211_mlme_event mlme;
struct ieee80211_ba_event ba;
} u;
};
struct ieee80211_prep_tx_info {
u16 duration;
u16 subtype;
u8 success: 1;
int link_id;
};
struct ieee80211_vif_chanctx_switch {
struct ieee80211_vif *vif;
struct ieee80211_bss_conf *link_conf;
struct ieee80211_chanctx_conf *old_ctx;
struct ieee80211_chanctx_conf *new_ctx;
};
struct ieee80211_tdls_ch_sw_params {
struct ieee80211_sta *sta;
struct cfg80211_chan_def *chandef;
u8 action_code;
u32 status;
u32 timestamp;
u16 switch_time;
u16 switch_timeout;
struct sk_buff *tmpl_skb;
u32 ch_sw_tm_ie;
};
struct ieee80211_twt_setup {
u8 dialog_token;
u8 element_id;
u8 length;
u8 control;
u8 params[0];
};
struct rt2x00_chan_survey {
u64 time_idle;
u64 time_busy;
u64 time_ext_busy;
};
struct firmware {
size_t size;
const u8 *data;
void *priv;
};
struct ehci_driver_overrides {
size_t extra_priv_size;
int (*reset)(struct usb_hcd *);
int (*port_power)(struct usb_hcd *, int, bool);
};
enum ehci_hrtimer_event {
EHCI_HRTIMER_POLL_ASS = 0,
EHCI_HRTIMER_POLL_PSS = 1,
EHCI_HRTIMER_POLL_DEAD = 2,
EHCI_HRTIMER_UNLINK_INTR = 3,
EHCI_HRTIMER_FREE_ITDS = 4,
EHCI_HRTIMER_ACTIVE_UNLINK = 5,
EHCI_HRTIMER_START_UNLINK_INTR = 6,
EHCI_HRTIMER_ASYNC_UNLINKS = 7,
EHCI_HRTIMER_IAA_WATCHDOG = 8,
EHCI_HRTIMER_DISABLE_PERIODIC = 9,
EHCI_HRTIMER_DISABLE_ASYNC = 10,
EHCI_HRTIMER_IO_WATCHDOG = 11,
EHCI_HRTIMER_NUM_EVENTS = 12,
};
enum ehci_rh_state {
EHCI_RH_HALTED = 0,
EHCI_RH_SUSPENDED = 1,
EHCI_RH_RUNNING = 2,
EHCI_RH_STOPPING = 3,
};
struct ehci_stats {
unsigned long normal;
unsigned long error;
unsigned long iaa;
unsigned long lost_iaa;
unsigned long complete;
unsigned long unlink;
};
struct ehci_caps;
struct ehci_regs;
struct ehci_dbg_port;
struct ehci_qh;
union ehci_shadow;
struct ehci_itd;
struct ehci_sitd;
struct ehci_hcd {
enum ehci_hrtimer_event next_hrtimer_event;
unsigned int enabled_hrtimer_events;
ktime_t hr_timeouts[12];
struct hrtimer hrtimer;
int PSS_poll_count;
int ASS_poll_count;
int died_poll_count;
struct ehci_caps *caps;
struct ehci_regs *regs;
struct ehci_dbg_port *debug;
__u32 hcs_params;
spinlock_t lock;
enum ehci_rh_state rh_state;
bool scanning: 1;
bool need_rescan: 1;
bool intr_unlinking: 1;
bool iaa_in_progress: 1;
bool async_unlinking: 1;
bool shutdown: 1;
struct ehci_qh *qh_scan_next;
struct ehci_qh *async;
struct ehci_qh *dummy;
struct list_head async_unlink;
struct list_head async_idle;
unsigned int async_unlink_cycle;
unsigned int async_count;
__le32 old_current;
__le32 old_token;
unsigned int periodic_size;
__le32 *periodic;
dma_addr_t periodic_dma;
struct list_head intr_qh_list;
unsigned int i_thresh;
union ehci_shadow *pshadow;
struct list_head intr_unlink_wait;
struct list_head intr_unlink;
unsigned int intr_unlink_wait_cycle;
unsigned int intr_unlink_cycle;
unsigned int now_frame;
unsigned int last_iso_frame;
unsigned int intr_count;
unsigned int isoc_count;
unsigned int periodic_count;
unsigned int uframe_periodic_max;
struct list_head cached_itd_list;
struct ehci_itd *last_itd_to_free;
struct list_head cached_sitd_list;
struct ehci_sitd *last_sitd_to_free;
unsigned long reset_done[15];
unsigned long bus_suspended;
unsigned long companion_ports;
unsigned long owned_ports;
unsigned long port_c_suspend;
unsigned long suspended_ports;
unsigned long resuming_ports;
struct dma_pool *qh_pool;
struct dma_pool *qtd_pool;
struct dma_pool *itd_pool;
struct dma_pool *sitd_pool;
unsigned int random_frame;
unsigned long next_statechange;
ktime_t last_periodic_enable;
u32 command;
unsigned int no_selective_suspend: 1;
unsigned int has_fsl_port_bug: 1;
unsigned int has_fsl_hs_errata: 1;
unsigned int has_fsl_susp_errata: 1;
unsigned int has_ci_pec_bug: 1;
unsigned int big_endian_mmio: 1;
unsigned int big_endian_desc: 1;
unsigned int big_endian_capbase: 1;
unsigned int has_amcc_usb23: 1;
unsigned int need_io_watchdog: 1;
unsigned int amd_pll_fix: 1;
unsigned int use_dummy_qh: 1;
unsigned int has_synopsys_hc_bug: 1;
unsigned int frame_index_bug: 1;
unsigned int need_oc_pp_cycle: 1;
unsigned int imx28_write_fix: 1;
unsigned int spurious_oc: 1;
unsigned int is_aspeed: 1;
unsigned int zx_wakeup_clear_needed: 1;
__le32 *ohci_hcctrl_reg;
unsigned int has_hostpc: 1;
unsigned int has_tdi_phy_lpm: 1;
unsigned int has_ppcd: 1;
u8 sbrn;
struct ehci_stats stats;
struct dentry *debug_dir;
u8 bandwidth[64];
u8 tt_budget[64];
struct list_head tt_list;
unsigned long priv[0];
};
struct ehci_caps {
u32 hc_capbase;
u32 hcs_params;
u32 hcc_params;
u8 portroute[8];
};
struct ehci_regs {
u32 command;
u32 status;
u32 intr_enable;
u32 frame_index;
u32 segment;
u32 frame_list;
u32 async_next;
u32 reserved1[2];
u32 txfill_tuning;
u32 reserved2[6];
u32 configured_flag;
union {
u32 port_status[15];
struct {
u32 reserved3[9];
u32 usbmode;
};
};
union {
struct {
u32 reserved4;
u32 hostpc[15];
};
u32 brcm_insnreg[4];
};
u32 reserved5[2];
u32 usbmode_ex;
};
struct ehci_dbg_port {
u32 control;
u32 pids;
u32 data03;
u32 data47;
u32 address;
};
struct ehci_fstn;
union ehci_shadow {
struct ehci_qh *qh;
struct ehci_itd *itd;
struct ehci_sitd *sitd;
struct ehci_fstn *fstn;
__le32 *hw_next;
void *ptr;
};
struct ehci_per_sched {
struct usb_device *udev;
struct usb_host_endpoint *ep;
struct list_head ps_list;
u16 tt_usecs;
u16 cs_mask;
u16 period;
u16 phase;
u8 bw_phase;
u8 phase_uf;
u8 usecs;
u8 c_usecs;
u8 bw_uperiod;
u8 bw_period;
};
struct ehci_qh_hw;
struct ehci_qtd;
struct ehci_qh {
struct ehci_qh_hw *hw;
dma_addr_t qh_dma;
union ehci_shadow qh_next;
struct list_head qtd_list;
struct list_head intr_node;
struct ehci_qtd *dummy;
struct list_head unlink_node;
struct ehci_per_sched ps;
unsigned int unlink_cycle;
u8 qh_state;
u8 xacterrs;
u8 unlink_reason;
u8 gap_uf;
unsigned int is_out: 1;
unsigned int clearing_tt: 1;
unsigned int dequeue_during_giveback: 1;
unsigned int should_be_inactive: 1;
};
struct ehci_qh_hw {
__le32 hw_next;
__le32 hw_info1;
__le32 hw_info2;
__le32 hw_current;
__le32 hw_qtd_next;
__le32 hw_alt_next;
__le32 hw_token;
__le32 hw_buf[5];
__le32 hw_buf_hi[5];
long: 64;
long: 64;
long: 64;
};
struct ehci_iso_stream;
struct ehci_itd {
__le32 hw_next;
__le32 hw_transaction[8];
__le32 hw_bufp[7];
__le32 hw_bufp_hi[7];
dma_addr_t itd_dma;
union ehci_shadow itd_next;
struct urb *urb;
struct ehci_iso_stream *stream;
struct list_head itd_list;
unsigned int frame;
unsigned int pg;
unsigned int index[8];
long: 64;
};
struct ehci_iso_stream {
struct ehci_qh_hw *hw;
u8 bEndpointAddress;
u8 highspeed;
struct list_head td_list;
struct list_head free_list;
struct ehci_per_sched ps;
unsigned int next_uframe;
__le32 splits;
u16 uperiod;
u16 maxp;
unsigned int bandwidth;
__le32 buf0;
__le32 buf1;
__le32 buf2;
__le32 address;
};
struct ehci_sitd {
__le32 hw_next;
__le32 hw_fullspeed_ep;
__le32 hw_uframe;
__le32 hw_results;
__le32 hw_buf[2];
__le32 hw_backpointer;
__le32 hw_buf_hi[2];
dma_addr_t sitd_dma;
union ehci_shadow sitd_next;
struct urb *urb;
struct ehci_iso_stream *stream;
struct list_head sitd_list;
unsigned int frame;
unsigned int index;
};
struct ehci_fstn {
__le32 hw_next;
__le32 hw_prev;
dma_addr_t fstn_dma;
union ehci_shadow fstn_next;
long: 64;
};
struct ehci_qtd {
__le32 hw_next;
__le32 hw_alt_next;
__le32 hw_token;
__le32 hw_buf[5];
__le32 hw_buf_hi[5];
dma_addr_t qtd_dma;
struct list_head qtd_list;
struct urb *urb;
size_t length;
};
enum rc_proto {
RC_PROTO_UNKNOWN = 0,
RC_PROTO_OTHER = 1,
RC_PROTO_RC5 = 2,
RC_PROTO_RC5X_20 = 3,
RC_PROTO_RC5_SZ = 4,
RC_PROTO_JVC = 5,
RC_PROTO_SONY12 = 6,
RC_PROTO_SONY15 = 7,
RC_PROTO_SONY20 = 8,
RC_PROTO_NEC = 9,
RC_PROTO_NECX = 10,
RC_PROTO_NEC32 = 11,
RC_PROTO_SANYO = 12,
RC_PROTO_MCIR2_KBD = 13,
RC_PROTO_MCIR2_MSE = 14,
RC_PROTO_RC6_0 = 15,
RC_PROTO_RC6_6A_20 = 16,
RC_PROTO_RC6_6A_24 = 17,
RC_PROTO_RC6_6A_32 = 18,
RC_PROTO_RC6_MCE = 19,
RC_PROTO_SHARP = 20,
RC_PROTO_XMP = 21,
RC_PROTO_CEC = 22,
RC_PROTO_IMON = 23,
RC_PROTO_RCMM12 = 24,
RC_PROTO_RCMM24 = 25,
RC_PROTO_RCMM32 = 26,
RC_PROTO_XBOX_DVD = 27,
RC_PROTO_MAX = 27,
};
struct rc_map_table;
struct rc_map {
struct rc_map_table *scan;
unsigned int size;
unsigned int len;
unsigned int alloc;
enum rc_proto rc_proto;
const char *name;
spinlock_t lock;
};
struct rc_map_list {
struct list_head list;
struct rc_map map;
};
struct rc_map_table {
u64 scancode;
u32 keycode;
};
struct ptp_extts_event {
struct ptp_clock_time t;
unsigned int index;
unsigned int flags;
unsigned int rsv[2];
};
struct debugfs_u32_array {
u32 *array;
u32 n_elements;
};
struct timestamp_event_queue {
struct ptp_extts_event buf[128];
int head;
int tail;
spinlock_t lock;
struct list_head qlist;
unsigned long *mask;
struct dentry *debugfs_instance;
struct debugfs_u32_array dfs_bitmap;
};
struct ptp_vclock {
struct ptp_clock *pclock;
struct ptp_clock_info info;
struct ptp_clock *clock;
struct hlist_node vclock_hash_node;
struct cyclecounter cc;
struct timecounter tc;
struct mutex lock;
};
typedef unsigned int uint;
struct posix_clock;
struct posix_clock_context;
struct posix_clock_operations {
struct module *owner;
int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *);
int (*clock_gettime)(struct posix_clock *, struct timespec64 *);
int (*clock_getres)(struct posix_clock *, struct timespec64 *);
int (*clock_settime)(struct posix_clock *, const struct timespec64 *);
long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long);
int (*open)(struct posix_clock_context *, fmode_t);
__poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *);
int (*release)(struct posix_clock_context *);
ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t);
};
struct posix_clock {
struct posix_clock_operations ops;
struct cdev cdev;
struct device *dev;
struct rw_semaphore rwsem;
bool zombie;
};
struct kthread_work;
typedef void (*kthread_work_func_t)(struct kthread_work *);
struct kthread_worker;
struct kthread_work {
struct list_head node;
kthread_work_func_t func;
struct kthread_worker *worker;
int canceling;
};
struct kthread_delayed_work {
struct kthread_work work;
struct timer_list timer;
};
struct pps_device;
struct ptp_clock {
struct posix_clock clock;
struct device dev;
struct ptp_clock_info *info;
dev_t devid;
int index;
struct pps_device *pps_source;
long dialed_frequency;
struct list_head tsevqs;
spinlock_t tsevqs_lock;
struct mutex pincfg_mux;
wait_queue_head_t tsev_wq;
int defunct;
struct device_attribute *pin_dev_attr;
struct attribute **pin_attr;
struct attribute_group pin_attr_group;
const struct attribute_group *pin_attr_groups[2];
struct kthread_worker *kworker;
struct kthread_delayed_work aux_work;
unsigned int max_vclocks;
unsigned int n_vclocks;
int *vclock_index;
struct mutex n_vclocks_mux;
bool is_virtual_clock;
bool has_cycles;
struct dentry *debugfs_root;
};
struct posix_clock_context {
struct posix_clock *clk;
void *private_clkdata;
};
struct pps_source_info {
char name[32];
char path[32];
int mode;
void (*echo)(struct pps_device *, int, void *);
struct module *owner;
struct device *dev;
};
struct pps_ktime {
__s64 sec;
__s32 nsec;
__u32 flags;
};
struct pps_kparams {
int api_version;
int mode;
struct pps_ktime assert_off_tu;
struct pps_ktime clear_off_tu;
};
struct pps_device {
struct pps_source_info info;
struct pps_kparams params;
__u32 assert_sequence;
__u32 clear_sequence;
struct pps_ktime assert_tu;
struct pps_ktime clear_tu;
int current_mode;
unsigned int last_ev;
wait_queue_head_t queue;
unsigned int id;
const void *lookup_cookie;
struct cdev cdev;
struct device *dev;
struct fasync_struct *async_queue;
spinlock_t lock;
};
struct kthread_worker {
unsigned int flags;
raw_spinlock_t lock;
struct list_head work_list;
struct list_head delayed_work_list;
struct task_struct *task;
struct kthread_work *current_work;
};
struct sch_frag_data {
unsigned long dst;
struct qdisc_skb_cb cb;
__be16 inner_protocol;
u16 vlan_tci;
__be16 vlan_proto;
unsigned int l2_len;
u8 l2_data[18];
int (*xmit)(struct sk_buff *);
};
struct qdisc_walker {
int stop;
int skip;
int count;
int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *);
};
struct tc_skb_cb {
struct qdisc_skb_cb qdisc_cb;
u32 drop_reason;
u16 zone;
u16 mru;
u8 post_ct: 1;
u8 post_ct_snat: 1;
u8 post_ct_dnat: 1;
};
struct ip_options {
__be32 faddr;
__be32 nexthop;
unsigned char optlen;
unsigned char srr;
unsigned char rr;
unsigned char ts;
unsigned char is_strictroute: 1;
unsigned char srr_is_hit: 1;
unsigned char is_changed: 1;
unsigned char rr_needaddr: 1;
unsigned char ts_needtime: 1;
unsigned char ts_needaddr: 1;
unsigned char router_alert;
unsigned char cipso;
unsigned char __pad2;
unsigned char __data[0];
};
struct inet_skb_parm {
int iif;
struct ip_options opt;
u16 flags;
u16 frag_max_size;
};
struct inet6_skb_parm {
int iif;
__be16 ra;
__u16 dst0;
__u16 srcrt;
__u16 dst1;
__u16 lastopt;
__u16 nhoff;
__u16 flags;
__u16 frag_max_size;
__u16 srhoff;
};
struct vlan_hdr {
__be16 h_vlan_TCI;
__be16 h_vlan_encapsulated_proto;
};
struct in_ifaddr {
struct hlist_node hash;
struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_next;
struct in_device *ifa_dev;
struct callback_head callback_head;
__be32 ifa_local;
__be32 ifa_address;
__be32 ifa_mask;
__u32 ifa_rt_priority;
__be32 ifa_broadcast;
unsigned char ifa_scope;
unsigned char ifa_prefixlen;
unsigned char ifa_proto;
__u32 ifa_flags;
char ifa_label[16];
__u32 ifa_valid_lft;
__u32 ifa_preferred_lft;
unsigned long ifa_cstamp;
unsigned long ifa_tstamp;
};
struct ip_sf_list;
struct ip_mc_list {
struct in_device *interface;
__be32 multiaddr;
unsigned int sfmode;
struct ip_sf_list *sources;
struct ip_sf_list *tomb;
unsigned long sfcount[2];
union {
struct ip_mc_list *next;
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu;
};
struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_hash;
struct timer_list timer;
int users;
refcount_t refcnt;
spinlock_t lock;
char tm_running;
char reporter;
char unsolicit_count;
char loaded;
unsigned char gsquery;
unsigned char crcount;
struct callback_head rcu;
};
enum sctp_conntrack {
SCTP_CONNTRACK_NONE = 0,
SCTP_CONNTRACK_CLOSED = 1,
SCTP_CONNTRACK_COOKIE_WAIT = 2,
SCTP_CONNTRACK_COOKIE_ECHOED = 3,
SCTP_CONNTRACK_ESTABLISHED = 4,
SCTP_CONNTRACK_SHUTDOWN_SENT = 5,
SCTP_CONNTRACK_SHUTDOWN_RECD = 6,
SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7,
SCTP_CONNTRACK_HEARTBEAT_SENT = 8,
SCTP_CONNTRACK_HEARTBEAT_ACKED = 9,
SCTP_CONNTRACK_MAX = 10,
};
enum ip_conntrack_info {
IP_CT_ESTABLISHED = 0,
IP_CT_RELATED = 1,
IP_CT_NEW = 2,
IP_CT_IS_REPLY = 3,
IP_CT_ESTABLISHED_REPLY = 3,
IP_CT_RELATED_REPLY = 4,
IP_CT_NUMBER = 5,
IP_CT_UNTRACKED = 7,
};
enum ip_conntrack_dir {
IP_CT_DIR_ORIGINAL = 0,
IP_CT_DIR_REPLY = 1,
IP_CT_DIR_MAX = 2,
};
enum rt_scope_t {
RT_SCOPE_UNIVERSE = 0,
RT_SCOPE_SITE = 200,
RT_SCOPE_LINK = 253,
RT_SCOPE_HOST = 254,
RT_SCOPE_NOWHERE = 255,
};
enum nf_nat_manip_type {
NF_NAT_MANIP_SRC = 0,
NF_NAT_MANIP_DST = 1,
};
enum nf_ct_ext_id {
NF_CT_EXT_HELPER = 0,
NF_CT_EXT_NAT = 1,
NF_CT_EXT_SEQADJ = 2,
NF_CT_EXT_ACCT = 3,
NF_CT_EXT_NUM = 4,
};
struct nf_conntrack {
refcount_t use;
};
struct in_addr {
__be32 s_addr;
};
union nf_inet_addr {
__u32 all[4];
__be32 ip;
__be32 ip6[4];
struct in_addr in;
struct in6_addr in6;
};
union nf_conntrack_man_proto {
__be16 all;
struct {
__be16 port;
} tcp;
struct {
__be16 port;
} udp;
struct {
__be16 id;
} icmp;
struct {
__be16 port;
} dccp;
struct {
__be16 port;
} sctp;
struct {
__be16 key;
} gre;
};
typedef u16 u_int16_t;
struct nf_conntrack_man {
union nf_inet_addr u3;
union nf_conntrack_man_proto u;
u_int16_t l3num;
};
struct nf_conntrack_tuple {
struct nf_conntrack_man src;
struct {
union nf_inet_addr u3;
union {
__be16 all;
struct {
__be16 port;
} tcp;
struct {
__be16 port;
} udp;
struct {
u_int8_t type;
u_int8_t code;
} icmp;
struct {
__be16 port;
} dccp;
struct {
__be16 port;
} sctp;
struct {
__be16 key;
} gre;
} u;
u_int8_t protonum;
struct {} __nfct_hash_offsetend;
u_int8_t dir;
} dst;
};
struct nf_conntrack_tuple_hash {
struct hlist_nulls_node hnnode;
struct nf_conntrack_tuple tuple;
};
typedef u32 u_int32_t;
typedef u64 u_int64_t;
struct nf_ct_dccp {
u_int8_t role[2];
u_int8_t state;
u_int8_t last_pkt;
u_int8_t last_dir;
u_int64_t handshake_seq;
};
struct ip_ct_sctp {
enum sctp_conntrack state;
__be32 vtag[2];
u8 init[2];
u8 last_dir;
u8 flags;
};
struct ip_ct_tcp_state {
u_int32_t td_end;
u_int32_t td_maxend;
u_int32_t td_maxwin;
u_int32_t td_maxack;
u_int8_t td_scale;
u_int8_t flags;
};
struct ip_ct_tcp {
struct ip_ct_tcp_state seen[2];
u_int8_t state;
u_int8_t last_dir;
u_int8_t retrans;
u_int8_t last_index;
u_int32_t last_seq;
u_int32_t last_ack;
u_int32_t last_end;
u_int16_t last_win;
u_int8_t last_wscale;
u_int8_t last_flags;
};
struct nf_ct_udp {
unsigned long stream_ts;
};
struct nf_ct_gre {
unsigned int stream_timeout;
unsigned int timeout;
};
union nf_conntrack_proto {
struct nf_ct_dccp dccp;
struct ip_ct_sctp sctp;
struct ip_ct_tcp tcp;
struct nf_ct_udp udp;
struct nf_ct_gre gre;
unsigned int tmpl_padto;
};
struct nf_ct_ext;
struct nf_conn {
struct nf_conntrack ct_general;
spinlock_t lock;
u32 timeout;
struct nf_conntrack_tuple_hash tuplehash[2];
unsigned long status;
possible_net_t ct_net;
struct hlist_node nat_bysource;
struct {} __nfct_init_offset;
struct nf_conn *master;
u_int32_t mark;
struct nf_ct_ext *ext;
union nf_conntrack_proto proto;
};
struct nf_ct_ext {
u8 offset[4];
u8 len;
unsigned int gen_id;
long: 0;
char data[0];
};
struct masq_dev_work {
struct work_struct work;
struct net *net;
netns_tracker ns_tracker;
union nf_inet_addr addr;
int ifindex;
int (*iter)(struct nf_conn *, void *);
};
union nf_conntrack_nat_help {};
struct nf_conn_nat {
union nf_conntrack_nat_help help;
int masq_index;
};
struct nf_nat_range2 {
unsigned int flags;
union nf_inet_addr min_addr;
union nf_inet_addr max_addr;
union nf_conntrack_man_proto min_proto;
union nf_conntrack_man_proto max_proto;
union nf_conntrack_man_proto base_proto;
};
struct nf_ct_iter_data {
struct net *net;
void *data;
u32 portid;
int report;
};
struct inet6_ifaddr {
struct in6_addr addr;
__u32 prefix_len;
__u32 rt_priority;
__u32 valid_lft;
__u32 prefered_lft;
refcount_t refcnt;
spinlock_t lock;
int state;
__u32 flags;
__u8 dad_probes;
__u8 stable_privacy_retry;
__u16 scope;
__u64 dad_nonce;
unsigned long cstamp;
unsigned long tstamp;
struct delayed_work dad_work;
struct inet6_dev *idev;
struct fib6_info *rt;
struct hlist_node addr_lst;
struct list_head if_list;
struct list_head if_list_aux;
struct list_head tmp_list;
struct inet6_ifaddr *ifpub;
int regen_count;
bool tokenized;
u8 ifa_proto;
struct callback_head rcu;
struct in6_addr peer_addr;
};
enum tcp_tw_status {
TCP_TW_SUCCESS = 0,
TCP_TW_RST = 1,
TCP_TW_ACK = 2,
TCP_TW_SYN = 3,
};
enum {
TCP_ESTABLISHED = 1,
TCP_SYN_SENT = 2,
TCP_SYN_RECV = 3,
TCP_FIN_WAIT1 = 4,
TCP_FIN_WAIT2 = 5,
TCP_TIME_WAIT = 6,
TCP_CLOSE = 7,
TCP_CLOSE_WAIT = 8,
TCP_LAST_ACK = 9,
TCP_LISTEN = 10,
TCP_CLOSING = 11,
TCP_NEW_SYN_RECV = 12,
TCP_BOUND_INACTIVE = 13,
TCP_MAX_STATES = 14,
};
enum {
LINUX_MIB_NUM = 0,
LINUX_MIB_SYNCOOKIESSENT = 1,
LINUX_MIB_SYNCOOKIESRECV = 2,
LINUX_MIB_SYNCOOKIESFAILED = 3,
LINUX_MIB_EMBRYONICRSTS = 4,
LINUX_MIB_PRUNECALLED = 5,
LINUX_MIB_RCVPRUNED = 6,
LINUX_MIB_OFOPRUNED = 7,
LINUX_MIB_OUTOFWINDOWICMPS = 8,
LINUX_MIB_LOCKDROPPEDICMPS = 9,
LINUX_MIB_ARPFILTER = 10,
LINUX_MIB_TIMEWAITED = 11,
LINUX_MIB_TIMEWAITRECYCLED = 12,
LINUX_MIB_TIMEWAITKILLED = 13,
LINUX_MIB_PAWSACTIVEREJECTED = 14,
LINUX_MIB_PAWSESTABREJECTED = 15,
LINUX_MIB_DELAYEDACKS = 16,
LINUX_MIB_DELAYEDACKLOCKED = 17,
LINUX_MIB_DELAYEDACKLOST = 18,
LINUX_MIB_LISTENOVERFLOWS = 19,
LINUX_MIB_LISTENDROPS = 20,
LINUX_MIB_TCPHPHITS = 21,
LINUX_MIB_TCPPUREACKS = 22,
LINUX_MIB_TCPHPACKS = 23,
LINUX_MIB_TCPRENORECOVERY = 24,
LINUX_MIB_TCPSACKRECOVERY = 25,
LINUX_MIB_TCPSACKRENEGING = 26,
LINUX_MIB_TCPSACKREORDER = 27,
LINUX_MIB_TCPRENOREORDER = 28,
LINUX_MIB_TCPTSREORDER = 29,
LINUX_MIB_TCPFULLUNDO = 30,
LINUX_MIB_TCPPARTIALUNDO = 31,
LINUX_MIB_TCPDSACKUNDO = 32,
LINUX_MIB_TCPLOSSUNDO = 33,
LINUX_MIB_TCPLOSTRETRANSMIT = 34,
LINUX_MIB_TCPRENOFAILURES = 35,
LINUX_MIB_TCPSACKFAILURES = 36,
LINUX_MIB_TCPLOSSFAILURES = 37,
LINUX_MIB_TCPFASTRETRANS = 38,
LINUX_MIB_TCPSLOWSTARTRETRANS = 39,
LINUX_MIB_TCPTIMEOUTS = 40,
LINUX_MIB_TCPLOSSPROBES = 41,
LINUX_MIB_TCPLOSSPROBERECOVERY = 42,
LINUX_MIB_TCPRENORECOVERYFAIL = 43,
LINUX_MIB_TCPSACKRECOVERYFAIL = 44,
LINUX_MIB_TCPRCVCOLLAPSED = 45,
LINUX_MIB_TCPDSACKOLDSENT = 46,
LINUX_MIB_TCPDSACKOFOSENT = 47,
LINUX_MIB_TCPDSACKRECV = 48,
LINUX_MIB_TCPDSACKOFORECV = 49,
LINUX_MIB_TCPABORTONDATA = 50,
LINUX_MIB_TCPABORTONCLOSE = 51,
LINUX_MIB_TCPABORTONMEMORY = 52,
LINUX_MIB_TCPABORTONTIMEOUT = 53,
LINUX_MIB_TCPABORTONLINGER = 54,
LINUX_MIB_TCPABORTFAILED = 55,
LINUX_MIB_TCPMEMORYPRESSURES = 56,
LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57,
LINUX_MIB_TCPSACKDISCARD = 58,
LINUX_MIB_TCPDSACKIGNOREDOLD = 59,
LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60,
LINUX_MIB_TCPSPURIOUSRTOS = 61,
LINUX_MIB_TCPMD5NOTFOUND = 62,
LINUX_MIB_TCPMD5UNEXPECTED = 63,
LINUX_MIB_TCPMD5FAILURE = 64,
LINUX_MIB_SACKSHIFTED = 65,
LINUX_MIB_SACKMERGED = 66,
LINUX_MIB_SACKSHIFTFALLBACK = 67,
LINUX_MIB_TCPBACKLOGDROP = 68,
LINUX_MIB_PFMEMALLOCDROP = 69,
LINUX_MIB_TCPMINTTLDROP = 70,
LINUX_MIB_TCPDEFERACCEPTDROP = 71,
LINUX_MIB_IPRPFILTER = 72,
LINUX_MIB_TCPTIMEWAITOVERFLOW = 73,
LINUX_MIB_TCPREQQFULLDOCOOKIES = 74,
LINUX_MIB_TCPREQQFULLDROP = 75,
LINUX_MIB_TCPRETRANSFAIL = 76,
LINUX_MIB_TCPRCVCOALESCE = 77,
LINUX_MIB_TCPBACKLOGCOALESCE = 78,
LINUX_MIB_TCPOFOQUEUE = 79,
LINUX_MIB_TCPOFODROP = 80,
LINUX_MIB_TCPOFOMERGE = 81,
LINUX_MIB_TCPCHALLENGEACK = 82,
LINUX_MIB_TCPSYNCHALLENGE = 83,
LINUX_MIB_TCPFASTOPENACTIVE = 84,
LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85,
LINUX_MIB_TCPFASTOPENPASSIVE = 86,
LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87,
LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88,
LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89,
LINUX_MIB_TCPFASTOPENBLACKHOLE = 90,
LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91,
LINUX_MIB_BUSYPOLLRXPACKETS = 92,
LINUX_MIB_TCPAUTOCORKING = 93,
LINUX_MIB_TCPFROMZEROWINDOWADV = 94,
LINUX_MIB_TCPTOZEROWINDOWADV = 95,
LINUX_MIB_TCPWANTZEROWINDOWADV = 96,
LINUX_MIB_TCPSYNRETRANS = 97,
LINUX_MIB_TCPORIGDATASENT = 98,
LINUX_MIB_TCPHYSTARTTRAINDETECT = 99,
LINUX_MIB_TCPHYSTARTTRAINCWND = 100,
LINUX_MIB_TCPHYSTARTDELAYDETECT = 101,
LINUX_MIB_TCPHYSTARTDELAYCWND = 102,
LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103,
LINUX_MIB_TCPACKSKIPPEDPAWS = 104,
LINUX_MIB_TCPACKSKIPPEDSEQ = 105,
LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106,
LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107,
LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108,
LINUX_MIB_TCPWINPROBE = 109,
LINUX_MIB_TCPKEEPALIVE = 110,
LINUX_MIB_TCPMTUPFAIL = 111,
LINUX_MIB_TCPMTUPSUCCESS = 112,
LINUX_MIB_TCPDELIVERED = 113,
LINUX_MIB_TCPDELIVEREDCE = 114,
LINUX_MIB_TCPACKCOMPRESSED = 115,
LINUX_MIB_TCPZEROWINDOWDROP = 116,
LINUX_MIB_TCPRCVQDROP = 117,
LINUX_MIB_TCPWQUEUETOOBIG = 118,
LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119,
LINUX_MIB_TCPTIMEOUTREHASH = 120,
LINUX_MIB_TCPDUPLICATEDATAREHASH = 121,
LINUX_MIB_TCPDSACKRECVSEGS = 122,
LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123,
LINUX_MIB_TCPMIGRATEREQSUCCESS = 124,
LINUX_MIB_TCPMIGRATEREQFAILURE = 125,
LINUX_MIB_TCPPLBREHASH = 126,
LINUX_MIB_TCPAOREQUIRED = 127,
LINUX_MIB_TCPAOBAD = 128,
LINUX_MIB_TCPAOKEYNOTFOUND = 129,
LINUX_MIB_TCPAOGOOD = 130,
LINUX_MIB_TCPAODROPPEDICMPS = 131,
__LINUX_MIB_MAX = 132,
};
enum {
INET_FLAGS_PKTINFO = 0,
INET_FLAGS_TTL = 1,
INET_FLAGS_TOS = 2,
INET_FLAGS_RECVOPTS = 3,
INET_FLAGS_RETOPTS = 4,
INET_FLAGS_PASSSEC = 5,
INET_FLAGS_ORIGDSTADDR = 6,
INET_FLAGS_CHECKSUM = 7,
INET_FLAGS_RECVFRAGSIZE = 8,
INET_FLAGS_RECVERR = 9,
INET_FLAGS_RECVERR_RFC4884 = 10,
INET_FLAGS_FREEBIND = 11,
INET_FLAGS_HDRINCL = 12,
INET_FLAGS_MC_LOOP = 13,
INET_FLAGS_MC_ALL = 14,
INET_FLAGS_TRANSPARENT = 15,
INET_FLAGS_IS_ICSK = 16,
INET_FLAGS_NODEFRAG = 17,
INET_FLAGS_BIND_ADDRESS_NO_PORT = 18,
INET_FLAGS_DEFER_CONNECT = 19,
INET_FLAGS_MC6_LOOP = 20,
INET_FLAGS_RECVERR6_RFC4884 = 21,
INET_FLAGS_MC6_ALL = 22,
INET_FLAGS_AUTOFLOWLABEL_SET = 23,
INET_FLAGS_AUTOFLOWLABEL = 24,
INET_FLAGS_DONTFRAG = 25,
INET_FLAGS_RECVERR6 = 26,
INET_FLAGS_REPFLOW = 27,
INET_FLAGS_RTALERT_ISOLATE = 28,
INET_FLAGS_SNDFLOW = 29,
INET_FLAGS_RTALERT = 30,
};
enum {
RTAX_UNSPEC = 0,
RTAX_LOCK = 1,
RTAX_MTU = 2,
RTAX_WINDOW = 3,
RTAX_RTT = 4,
RTAX_RTTVAR = 5,
RTAX_SSTHRESH = 6,
RTAX_CWND = 7,
RTAX_ADVMSS = 8,
RTAX_REORDERING = 9,
RTAX_HOPLIMIT = 10,
RTAX_INITCWND = 11,
RTAX_FEATURES = 12,
RTAX_RTO_MIN = 13,
RTAX_INITRWND = 14,
RTAX_QUICKACK = 15,
RTAX_CC_ALGO = 16,
RTAX_FASTOPEN_NO_COOKIE = 17,
__RTAX_MAX = 18,
};
enum tcp_ca_state {
TCP_CA_Open = 0,
TCP_CA_Disorder = 1,
TCP_CA_CWR = 2,
TCP_CA_Recovery = 3,
TCP_CA_Loss = 4,
};
enum tcp_synack_type {
TCP_SYNACK_NORMAL = 0,
TCP_SYNACK_FASTOPEN = 1,
TCP_SYNACK_COOKIE = 2,
};
enum sock_flags {
SOCK_DEAD = 0,
SOCK_DONE = 1,
SOCK_URGINLINE = 2,
SOCK_KEEPOPEN = 3,
SOCK_LINGER = 4,
SOCK_DESTROY = 5,
SOCK_BROADCAST = 6,
SOCK_TIMESTAMP = 7,
SOCK_ZAPPED = 8,
SOCK_USE_WRITE_QUEUE = 9,
SOCK_DBG = 10,
SOCK_RCVTSTAMP = 11,
SOCK_RCVTSTAMPNS = 12,
SOCK_LOCALROUTE = 13,
SOCK_MEMALLOC = 14,
SOCK_TIMESTAMPING_RX_SOFTWARE = 15,
SOCK_FASYNC = 16,
SOCK_RXQ_OVFL = 17,
SOCK_ZEROCOPY = 18,
SOCK_WIFI_STATUS = 19,
SOCK_NOFCS = 20,
SOCK_FILTER_LOCKED = 21,
SOCK_SELECT_ERR_QUEUE = 22,
SOCK_RCU_FREE = 23,
SOCK_TXTIME = 24,
SOCK_XDP = 25,
SOCK_TSTAMP_NEW = 26,
SOCK_RCVMARK = 27,
};
enum {
TCP_MIB_NUM = 0,
TCP_MIB_RTOALGORITHM = 1,
TCP_MIB_RTOMIN = 2,
TCP_MIB_RTOMAX = 3,
TCP_MIB_MAXCONN = 4,
TCP_MIB_ACTIVEOPENS = 5,
TCP_MIB_PASSIVEOPENS = 6,
TCP_MIB_ATTEMPTFAILS = 7,
TCP_MIB_ESTABRESETS = 8,
TCP_MIB_CURRESTAB = 9,
TCP_MIB_INSEGS = 10,
TCP_MIB_OUTSEGS = 11,
TCP_MIB_RETRANSSEGS = 12,
TCP_MIB_INERRS = 13,
TCP_MIB_OUTRSTS = 14,
TCP_MIB_CSUMERRORS = 15,
__TCP_MIB_MAX = 16,
};
enum {
TCP_FLAG_CWR = 32768,
TCP_FLAG_ECE = 16384,
TCP_FLAG_URG = 8192,
TCP_FLAG_ACK = 4096,
TCP_FLAG_PSH = 2048,
TCP_FLAG_RST = 1024,
TCP_FLAG_SYN = 512,
TCP_FLAG_FIN = 256,
TCP_RESERVED_BITS = 15,
TCP_DATA_OFFSET = 240,
};
enum {
TCPF_ESTABLISHED = 2,
TCPF_SYN_SENT = 4,
TCPF_SYN_RECV = 8,
TCPF_FIN_WAIT1 = 16,
TCPF_FIN_WAIT2 = 32,
TCPF_TIME_WAIT = 64,
TCPF_CLOSE = 128,
TCPF_CLOSE_WAIT = 256,
TCPF_LAST_ACK = 512,
TCPF_LISTEN = 1024,
TCPF_CLOSING = 2048,
TCPF_NEW_SYN_RECV = 4096,
TCPF_BOUND_INACTIVE = 8192,
};
enum {
BPF_SOCK_OPS_VOID = 0,
BPF_SOCK_OPS_TIMEOUT_INIT = 1,
BPF_SOCK_OPS_RWND_INIT = 2,
BPF_SOCK_OPS_TCP_CONNECT_CB = 3,
BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 4,
BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 5,
BPF_SOCK_OPS_NEEDS_ECN = 6,
BPF_SOCK_OPS_BASE_RTT = 7,
BPF_SOCK_OPS_RTO_CB = 8,
BPF_SOCK_OPS_RETRANS_CB = 9,
BPF_SOCK_OPS_STATE_CB = 10,
BPF_SOCK_OPS_TCP_LISTEN_CB = 11,
BPF_SOCK_OPS_RTT_CB = 12,
BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 13,
BPF_SOCK_OPS_HDR_OPT_LEN_CB = 14,
BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 15,
};
enum cgroup_bpf_attach_type {
CGROUP_BPF_ATTACH_TYPE_INVALID = -1,
CGROUP_INET_INGRESS = 0,
CGROUP_INET_EGRESS = 1,
CGROUP_INET_SOCK_CREATE = 2,
CGROUP_SOCK_OPS = 3,
CGROUP_DEVICE = 4,
CGROUP_INET4_BIND = 5,
CGROUP_INET6_BIND = 6,
CGROUP_INET4_CONNECT = 7,
CGROUP_INET6_CONNECT = 8,
CGROUP_UNIX_CONNECT = 9,
CGROUP_INET4_POST_BIND = 10,
CGROUP_INET6_POST_BIND = 11,
CGROUP_UDP4_SENDMSG = 12,
CGROUP_UDP6_SENDMSG = 13,
CGROUP_UNIX_SENDMSG = 14,
CGROUP_SYSCTL = 15,
CGROUP_UDP4_RECVMSG = 16,
CGROUP_UDP6_RECVMSG = 17,
CGROUP_UNIX_RECVMSG = 18,
CGROUP_GETSOCKOPT = 19,
CGROUP_SETSOCKOPT = 20,
CGROUP_INET4_GETPEERNAME = 21,
CGROUP_INET6_GETPEERNAME = 22,
CGROUP_UNIX_GETPEERNAME = 23,
CGROUP_INET4_GETSOCKNAME = 24,
CGROUP_INET6_GETSOCKNAME = 25,
CGROUP_UNIX_GETSOCKNAME = 26,
CGROUP_INET_SOCK_RELEASE = 27,
CGROUP_LSM_START = 28,
CGROUP_LSM_END = 27,
MAX_CGROUP_BPF_ATTACH_TYPE = 28,
};
struct tcp_skb_cb {
__u32 seq;
__u32 end_seq;
union {
__u32 tcp_tw_isn;
struct {
u16 tcp_gso_segs;
u16 tcp_gso_size;
};
};
__u8 tcp_flags;
__u8 sacked;
__u8 ip_dsfield;
__u8 txstamp_ack: 1;
__u8 eor: 1;
__u8 has_rxtstamp: 1;
__u8 unused: 5;
__u32 ack_seq;
union {
struct {
__u32 is_app_limited: 1;
__u32 delivered_ce: 20;
__u32 unused: 11;
__u32 delivered;
u64 first_tx_mstamp;
u64 delivered_mstamp;
} tx;
union {
struct inet_skb_parm h4;
struct inet6_skb_parm h6;
} header;
};
};
struct inet_cork {
unsigned int flags;
__be32 addr;
struct ip_options *opt;
unsigned int fragsize;
int length;
struct dst_entry *dst;
u8 tx_flags;
__u8 ttl;
__s16 tos;
char priority;
__u16 gso_size;
u64 transmit_time;
u32 mark;
};
typedef __u64 __be64;
struct flowi_tunnel {
__be64 tun_id;
};
struct flowi_common {
int flowic_oif;
int flowic_iif;
int flowic_l3mdev;
__u32 flowic_mark;
__u8 flowic_tos;
__u8 flowic_scope;
__u8 flowic_proto;
__u8 flowic_flags;
__u32 flowic_secid;
kuid_t flowic_uid;
__u32 flowic_multipath_hash;
struct flowi_tunnel flowic_tun_key;
};
union flowi_uli {
struct {
__be16 dport;
__be16 sport;
} ports;
struct {
__u8 type;
__u8 code;
} icmpt;
__be32 gre_key;
struct {
__u8 type;
} mht;
};
struct flowi4 {
struct flowi_common __fl_common;
__be32 saddr;
__be32 daddr;
union flowi_uli uli;
};
struct flowi6 {
struct flowi_common __fl_common;
struct in6_addr daddr;
struct in6_addr saddr;
__be32 flowlabel;
union flowi_uli uli;
__u32 mp_hash;
};
struct flowi {
union {
struct flowi_common __fl_common;
struct flowi4 ip4;
struct flowi6 ip6;
} u;
};
struct inet_cork_full {
struct inet_cork base;
struct flowi fl;
};
struct ipv6_pinfo;
struct ip_options_rcu;
struct ip_mc_socklist;
struct inet_sock {
struct sock sk;
struct ipv6_pinfo *pinet6;
unsigned long inet_flags;
__be32 inet_saddr;
__s16 uc_ttl;
__be16 inet_sport;
struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt;
atomic_t inet_id;
__u8 tos;
__u8 min_ttl;
__u8 mc_ttl;
__u8 pmtudisc;
__u8 rcv_tos;
__u8 convert_csum;
int uc_index;
int mc_index;
__be32 mc_addr;
u32 local_port_range;
struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list;
struct inet_cork_full cork;
};
struct fastopen_queue {
struct request_sock *rskq_rst_head;
struct request_sock *rskq_rst_tail;
spinlock_t lock;
int qlen;
int max_qlen;
struct tcp_fastopen_context __attribute__((btf_type_tag("rcu"))) *ctx;
};
struct request_sock_queue {
spinlock_t rskq_lock;
u8 rskq_defer_accept;
u32 synflood_warned;
atomic_t qlen;
atomic_t young;
struct request_sock *rskq_accept_head;
struct request_sock *rskq_accept_tail;
struct fastopen_queue fastopenq;
};
struct inet_bind_bucket;
struct inet_bind2_bucket;
struct inet_connection_sock_af_ops;
struct tcp_ulp_ops;
struct inet_connection_sock {
struct inet_sock icsk_inet;
struct request_sock_queue icsk_accept_queue;
struct inet_bind_bucket *icsk_bind_hash;
struct inet_bind2_bucket *icsk_bind2_hash;
unsigned long icsk_timeout;
struct timer_list icsk_retransmit_timer;
struct timer_list icsk_delack_timer;
__u32 icsk_rto;
__u32 icsk_rto_min;
__u32 icsk_delack_max;
__u32 icsk_pmtu_cookie;
const struct tcp_congestion_ops *icsk_ca_ops;
const struct inet_connection_sock_af_ops *icsk_af_ops;
const struct tcp_ulp_ops *icsk_ulp_ops;
void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data;
void (*icsk_clean_acked)(struct sock *, u32);
unsigned int (*icsk_sync_mss)(struct sock *, u32);
__u8 icsk_ca_state: 5;
__u8 icsk_ca_initialized: 1;
__u8 icsk_ca_setsockopt: 1;
__u8 icsk_ca_dst_locked: 1;
__u8 icsk_retransmits;
__u8 icsk_pending;
__u8 icsk_backoff;
__u8 icsk_syn_retries;
__u8 icsk_probes_out;
__u16 icsk_ext_hdr_len;
struct {
__u8 pending;
__u8 quick;
__u8 pingpong;
__u8 retry;
__u32 ato: 8;
__u32 lrcv_flowlabel: 20;
__u32 unused: 4;
unsigned long timeout;
__u32 lrcvtime;
__u16 last_seg_size;
__u16 rcv_mss;
} icsk_ack;
struct {
int search_high;
int search_low;
u32 probe_size: 31;
u32 enabled: 1;
u32 probe_timestamp;
} icsk_mtup;
u32 icsk_probes_tstamp;
u32 icsk_user_timeout;
u64 icsk_ca_priv[13];
};
struct minmax_sample {
u32 t;
u32 v;
};
struct minmax {
struct minmax_sample s[3];
};
struct tcp_options_received {
int ts_recent_stamp;
u32 ts_recent;
u32 rcv_tsval;
u32 rcv_tsecr;
u16 saw_tstamp: 1;
u16 tstamp_ok: 1;
u16 dsack: 1;
u16 wscale_ok: 1;
u16 sack_ok: 3;
u16 smc_ok: 1;
u16 snd_wscale: 4;
u16 rcv_wscale: 4;
u8 saw_unknown: 1;
u8 unused: 7;
u8 num_sacks;
u16 user_mss;
u16 mss_clamp;
};
struct tcp_rack {
u64 mstamp;
u32 rtt_us;
u32 end_seq;
u32 last_delivered;
u8 reo_wnd_steps;
u8 reo_wnd_persist: 5;
u8 dsack_seen: 1;
u8 advanced: 1;
};
struct tcp_sack_block {
u32 start_seq;
u32 end_seq;
};
struct tcp_fastopen_request;
struct tcp_sock {
struct inet_connection_sock inet_conn;
__u8 __cacheline_group_begin__tcp_sock_read_tx[0];
u32 max_window;
u32 rcv_ssthresh;
u32 reordering;
u32 notsent_lowat;
u16 gso_segs;
struct sk_buff *lost_skb_hint;
struct sk_buff *retransmit_skb_hint;
__u8 __cacheline_group_end__tcp_sock_read_tx[0];
__u8 __cacheline_group_begin__tcp_sock_read_txrx[0];
u32 tsoffset;
u32 snd_wnd;
u32 mss_cache;
u32 snd_cwnd;
u32 prr_out;
u32 lost_out;
u32 sacked_out;
u16 tcp_header_len;
u8 scaling_ratio;
u8 chrono_type: 2;
u8 repair: 1;
u8 tcp_usec_ts: 1;
u8 is_sack_reneg: 1;
u8 is_cwnd_limited: 1;
__u8 __cacheline_group_end__tcp_sock_read_txrx[0];
__u8 __cacheline_group_begin__tcp_sock_read_rx[0];
u32 copied_seq;
u32 rcv_tstamp;
u32 snd_wl1;
u32 tlp_high_seq;
u32 rttvar_us;
u32 retrans_out;
u16 advmss;
u16 urg_data;
u32 lost;
struct minmax rtt_min;
struct rb_root out_of_order_queue;
u32 snd_ssthresh;
__u8 __cacheline_group_end__tcp_sock_read_rx[0];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
__u8 __cacheline_group_begin__tcp_sock_write_tx[0];
u32 segs_out;
u32 data_segs_out;
u64 bytes_sent;
u32 snd_sml;
u32 chrono_start;
u32 chrono_stat[3];
u32 write_seq;
u32 pushed_seq;
u32 lsndtime;
u32 mdev_us;
u32 rtt_seq;
u64 tcp_wstamp_ns;
u64 tcp_clock_cache;
u64 tcp_mstamp;
struct list_head tsorted_sent_queue;
struct sk_buff *highest_sack;
u8 ecn_flags;
__u8 __cacheline_group_end__tcp_sock_write_tx[0];
__u8 __cacheline_group_begin__tcp_sock_write_txrx[0];
__be32 pred_flags;
u32 rcv_nxt;
u32 snd_nxt;
u32 snd_una;
u32 window_clamp;
u32 srtt_us;
u32 packets_out;
u32 snd_up;
u32 delivered;
u32 delivered_ce;
u32 app_limited;
u32 rcv_wnd;
struct tcp_options_received rx_opt;
u8 nonagle: 4;
u8 rate_app_limited: 1;
__u8 __cacheline_group_end__tcp_sock_write_txrx[0];
long: 0;
__u8 __cacheline_group_begin__tcp_sock_write_rx[0];
u64 bytes_received;
u32 segs_in;
u32 data_segs_in;
u32 rcv_wup;
u32 max_packets_out;
u32 cwnd_usage_seq;
u32 rate_delivered;
u32 rate_interval_us;
u32 rcv_rtt_last_tsecr;
u64 first_tx_mstamp;
u64 delivered_mstamp;
u64 bytes_acked;
struct {
u32 rtt_us;
u32 seq;
u64 time;
} rcv_rtt_est;
struct {
u32 space;
u32 seq;
u64 time;
} rcvq_space;
__u8 __cacheline_group_end__tcp_sock_write_rx[0];
u32 dsack_dups;
u32 compressed_ack_rcv_nxt;
struct list_head tsq_node;
struct tcp_rack rack;
u8 compressed_ack;
u8 dup_ack_counter: 2;
u8 tlp_retrans: 1;
u8 unused: 5;
u8 thin_lto: 1;
u8 recvmsg_inq: 1;
u8 fastopen_connect: 1;
u8 fastopen_no_cookie: 1;
u8 fastopen_client_fail: 2;
u8 frto: 1;
u8 repair_queue;
u8 save_syn: 2;
u8 syn_data: 1;
u8 syn_fastopen: 1;
u8 syn_fastopen_exp: 1;
u8 syn_fastopen_ch: 1;
u8 syn_data_acked: 1;
u8 keepalive_probes;
u32 tcp_tx_delay;
u32 mdev_max_us;
u32 reord_seen;
u32 snd_cwnd_cnt;
u32 snd_cwnd_clamp;
u32 snd_cwnd_used;
u32 snd_cwnd_stamp;
u32 prior_cwnd;
u32 prr_delivered;
u32 last_oow_ack_time;
struct hrtimer pacing_timer;
struct hrtimer compressed_ack_timer;
struct sk_buff *ooo_last_skb;
struct tcp_sack_block duplicate_sack[1];
struct tcp_sack_block selective_acks[4];
struct tcp_sack_block recv_sack_cache[4];
int lost_cnt_hint;
u32 prior_ssthresh;
u32 high_seq;
u32 retrans_stamp;
u32 undo_marker;
int undo_retrans;
u64 bytes_retrans;
u32 total_retrans;
u32 rto_stamp;
u16 total_rto;
u16 total_rto_recoveries;
u32 total_rto_time;
u32 urg_seq;
unsigned int keepalive_time;
unsigned int keepalive_intvl;
int linger2;
u8 bpf_sock_ops_cb_flags;
u8 bpf_chg_cc_inprogress: 1;
u16 timeout_rehash;
u32 rcv_ooopack;
struct {
u32 probe_seq_start;
u32 probe_seq_end;
} mtu_probe;
u32 plb_rehash;
u32 mtu_info;
struct tcp_fastopen_request *fastopen_req;
struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk;
struct saved_syn *saved_syn;
long: 64;
};
struct in6_pktinfo {
struct in6_addr ipi6_addr;
int ipi6_ifindex;
};
struct ipv6_txoptions;
struct inet6_cork {
struct ipv6_txoptions *opt;
u8 hop_limit;
u8 tclass;
};
struct ipv6_mc_socklist;
struct ipv6_ac_socklist;
struct ipv6_fl_socklist;
struct ipv6_pinfo {
struct in6_addr saddr;
struct in6_pktinfo sticky_pktinfo;
const struct in6_addr *daddr_cache;
__be32 flow_label;
__u32 frag_size;
s16 hop_limit;
u8 mcast_hops;
int ucast_oif;
int mcast_oif;
union {
struct {
__u16 srcrt: 1;
__u16 osrcrt: 1;
__u16 rxinfo: 1;
__u16 rxoinfo: 1;
__u16 rxhlim: 1;
__u16 rxohlim: 1;
__u16 hopopts: 1;
__u16 ohopopts: 1;
__u16 dstopts: 1;
__u16 odstopts: 1;
__u16 rxflow: 1;
__u16 rxtclass: 1;
__u16 rxpmtu: 1;
__u16 rxorigdstaddr: 1;
__u16 recvfragsize: 1;
} bits;
__u16 all;
} rxopt;
__u8 srcprefs;
__u8 pmtudisc;
__u8 min_hopcount;
__u8 tclass;
__be32 rcv_flowinfo;
__u32 dst_cookie;
struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list;
struct ipv6_ac_socklist *ipv6_ac_list;
struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list;
struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt;
struct sk_buff *pktoptions;
struct sk_buff *rxpmtu;
struct inet6_cork cork;
};
struct ip6_sf_socklist;
struct ipv6_mc_socklist {
struct in6_addr addr;
int ifindex;
unsigned int sfmode;
struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *next;
struct ip6_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist;
struct callback_head rcu;
};
struct ip6_sf_socklist {
unsigned int sl_max;
unsigned int sl_count;
struct callback_head rcu;
struct in6_addr sl_addr[0];
};
struct ipv6_ac_socklist {
struct in6_addr acl_addr;
int acl_ifindex;
struct ipv6_ac_socklist *acl_next;
};
struct ip6_flowlabel;
struct ipv6_fl_socklist {
struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next;
struct ip6_flowlabel *fl;
struct callback_head rcu;
};
struct ip6_flowlabel {
struct ip6_flowlabel __attribute__((btf_type_tag("rcu"))) *next;
__be32 label;
atomic_t users;
struct in6_addr dst;
struct ipv6_txoptions *opt;
unsigned long linger;
struct callback_head rcu;
u8 share;
union {
struct pid *pid;
kuid_t uid;
} owner;
unsigned long lastuse;
unsigned long expires;
struct net *fl_net;
};
struct ipv6_opt_hdr;
struct ipv6_rt_hdr;
struct ipv6_txoptions {
refcount_t refcnt;
int tot_len;
__u16 opt_flen;
__u16 opt_nflen;
struct ipv6_opt_hdr *hopopt;
struct ipv6_opt_hdr *dst0opt;
struct ipv6_rt_hdr *srcrt;
struct ipv6_opt_hdr *dst1opt;
struct callback_head rcu;
};
struct ipv6_opt_hdr {
__u8 nexthdr;
__u8 hdrlen;
};
struct ipv6_rt_hdr {
__u8 nexthdr;
__u8 hdrlen;
__u8 type;
__u8 segments_left;
};
struct ip_options_rcu {
struct callback_head rcu;
struct ip_options opt;
};
struct ip_mreqn {
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct ip_sf_socklist;
struct ip_mc_socklist {
struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *next_rcu;
struct ip_mreqn multi;
unsigned int sfmode;
struct ip_sf_socklist __attribute__((btf_type_tag("rcu"))) *sflist;
struct callback_head rcu;
};
struct inet_bind_bucket {
possible_net_t ib_net;
int l3mdev;
unsigned short port;
signed char fastreuse;
signed char fastreuseport;
kuid_t fastuid;
struct in6_addr fast_v6_rcv_saddr;
__be32 fast_rcv_saddr;
unsigned short fast_sk_family;
bool fast_ipv6_only;
struct hlist_node node;
struct hlist_head bhash2;
};
struct inet_bind2_bucket {
possible_net_t ib_net;
int l3mdev;
unsigned short port;
unsigned short addr_type;
struct in6_addr v6_rcv_saddr;
struct hlist_node node;
struct hlist_node bhash_node;
struct hlist_head owners;
};
struct inet_connection_sock_af_ops {
int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *);
void (*send_check)(struct sock *, struct sk_buff *);
int (*rebuild_header)(struct sock *);
void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *);
int (*conn_request)(struct sock *, struct sk_buff *);
struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *);
u16 net_header_len;
u16 sockaddr_len;
int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *);
void (*addr2sockaddr)(struct sock *, struct sockaddr *);
void (*mtu_reduced)(struct sock *);
};
struct tcp_ulp_ops {
struct list_head list;
int (*init)(struct sock *);
void (*update)(struct sock *, struct proto *, void (*)(struct sock *));
void (*release)(struct sock *);
int (*get_info)(struct sock *, struct sk_buff *);
size_t (*get_info_size)(const struct sock *);
void (*clone)(const struct request_sock *, struct sock *, const gfp_t);
char name[16];
struct module *owner;
};
struct tcp_fastopen_cookie {
__le64 val[2];
s8 len;
bool exp;
};
struct tcp_fastopen_request {
struct tcp_fastopen_cookie cookie;
struct msghdr *data;
size_t size;
int copied;
struct ubuf_info *uarg;
};
struct tcphdr {
__be16 source;
__be16 dest;
__be32 seq;
__be32 ack_seq;
__u16 res1: 4;
__u16 doff: 4;
__u16 fin: 1;
__u16 syn: 1;
__u16 rst: 1;
__u16 psh: 1;
__u16 ack: 1;
__u16 urg: 1;
__u16 ece: 1;
__u16 cwr: 1;
__be16 window;
__sum16 check;
__be16 urg_ptr;
};
union tcp_word_hdr {
struct tcphdr hdr;
__be32 words[5];
};
struct inet_timewait_sock {
struct sock_common __tw_common;
__u32 tw_mark;
volatile unsigned char tw_substate;
unsigned char tw_rcv_wscale;
__be16 tw_sport;
unsigned int tw_transparent: 1;
unsigned int tw_flowlabel: 20;
unsigned int tw_usec_ts: 1;
unsigned int tw_pad: 2;
unsigned int tw_tos: 8;
u32 tw_txhash;
u32 tw_priority;
struct timer_list tw_timer;
struct inet_bind_bucket *tw_tb;
struct inet_bind2_bucket *tw_tb2;
};
struct tcp_timewait_sock {
struct inet_timewait_sock tw_sk;
u32 tw_rcv_wnd;
u32 tw_ts_offset;
u32 tw_ts_recent;
u32 tw_last_oow_ack_time;
int tw_ts_recent_stamp;
u32 tw_tx_delay;
};
struct inet_request_sock {
struct request_sock req;
u16 snd_wscale: 4;
u16 rcv_wscale: 4;
u16 tstamp_ok: 1;
u16 sack_ok: 1;
u16 wscale_ok: 1;
u16 ecn_ok: 1;
u16 acked: 1;
u16 no_srccheck: 1;
u16 smc_ok: 1;
u32 ir_mark;
union {
struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *ireq_opt;
struct {
struct ipv6_txoptions *ipv6_opt;
struct sk_buff *pktopts;
};
};
};
struct tcp_request_sock_ops;
struct tcp_request_sock {
struct inet_request_sock req;
const struct tcp_request_sock_ops *af_specific;
u64 snt_synack;
bool tfo_listener;
bool is_mptcp;
bool req_usec_ts;
u32 txhash;
u32 rcv_isn;
u32 snt_isn;
u32 ts_off;
u32 last_oow_ack_time;
u32 rcv_nxt;
u8 syn_tos;
};
struct tcp_request_sock_ops {
u16 mss_clamp;
__u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *);
struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *);
u32 (*init_seq)(const struct sk_buff *);
u32 (*init_ts_off)(const struct net *, const struct sk_buff *);
int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *);
};
struct bpf_sock_ops_kern {
struct sock *sk;
union {
u32 args[4];
u32 reply;
u32 replylong[4];
};
struct sk_buff *syn_skb;
struct sk_buff *skb;
void *skb_data_end;
u8 op;
u8 is_fullsock;
u8 remaining_opt_len;
u64 temp;
};
struct static_key_false_deferred {
struct static_key_false key;
unsigned long timeout;
struct delayed_work work;
};
struct raw_hashinfo {
spinlock_t lock;
struct hlist_head ht[256];
};
enum {
IPPROTO_IP = 0,
IPPROTO_ICMP = 1,
IPPROTO_IGMP = 2,
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6,
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17,
IPPROTO_IDP = 22,
IPPROTO_TP = 29,
IPPROTO_DCCP = 33,
IPPROTO_IPV6 = 41,
IPPROTO_RSVP = 46,
IPPROTO_GRE = 47,
IPPROTO_ESP = 50,
IPPROTO_AH = 51,
IPPROTO_MTP = 92,
IPPROTO_BEETPH = 94,
IPPROTO_ENCAP = 98,
IPPROTO_PIM = 103,
IPPROTO_COMP = 108,
IPPROTO_L2TP = 115,
IPPROTO_SCTP = 132,
IPPROTO_UDPLITE = 136,
IPPROTO_MPLS = 137,
IPPROTO_ETHERNET = 143,
IPPROTO_RAW = 255,
IPPROTO_MPTCP = 262,
IPPROTO_MAX = 263,
};
struct seq_net_private {
struct net *net;
netns_tracker ns_tracker;
};
struct ip6fl_iter_state {
struct seq_net_private p;
struct pid_namespace *pid_ns;
int bucket;
};
struct in6_flowlabel_req {
struct in6_addr flr_dst;
__be32 flr_label;
__u8 flr_action;
__u8 flr_share;
__u16 flr_flags;
__u16 flr_expires;
__u16 flr_linger;
__u32 __flr_pad;
};
struct sockcm_cookie {
u64 transmit_time;
u32 mark;
u32 tsflags;
};
struct ipcm6_cookie {
struct sockcm_cookie sockc;
__s16 hlimit;
__s16 tclass;
__u16 gso_size;
__s8 dontfrag;
struct ipv6_txoptions *opt;
};
struct cfg80211_conn {
struct cfg80211_connect_params params;
enum {
CFG80211_CONN_SCANNING = 0,
CFG80211_CONN_SCAN_AGAIN = 1,
CFG80211_CONN_AUTHENTICATE_NEXT = 2,
CFG80211_CONN_AUTHENTICATING = 3,
CFG80211_CONN_AUTH_FAILED_TIMEOUT = 4,
CFG80211_CONN_ASSOCIATE_NEXT = 5,
CFG80211_CONN_ASSOCIATING = 6,
CFG80211_CONN_ASSOC_FAILED = 7,
CFG80211_CONN_ASSOC_FAILED_TIMEOUT = 8,
CFG80211_CONN_DEAUTH = 9,
CFG80211_CONN_ABANDON = 10,
CFG80211_CONN_CONNECTED = 11,
} state;
u8 bssid[6];
u8 prev_bssid[6];
const u8 *ie;
size_t ie_len;
bool auto_auth;
bool prev_bssid_valid;
};
enum nl80211_timeout_reason {
NL80211_TIMEOUT_UNSPECIFIED = 0,
NL80211_TIMEOUT_SCAN = 1,
NL80211_TIMEOUT_AUTH = 2,
NL80211_TIMEOUT_ASSOC = 3,
};
enum ieee80211_statuscode {
WLAN_STATUS_SUCCESS = 0,
WLAN_STATUS_UNSPECIFIED_FAILURE = 1,
WLAN_STATUS_CAPS_UNSUPPORTED = 10,
WLAN_STATUS_REASSOC_NO_ASSOC = 11,
WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12,
WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13,
WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14,
WLAN_STATUS_CHALLENGE_FAIL = 15,
WLAN_STATUS_AUTH_TIMEOUT = 16,
WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17,
WLAN_STATUS_ASSOC_DENIED_RATES = 18,
WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19,
WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20,
WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21,
WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22,
WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23,
WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24,
WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25,
WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26,
WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY = 30,
WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION = 31,
WLAN_STATUS_INVALID_IE = 40,
WLAN_STATUS_INVALID_GROUP_CIPHER = 41,
WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42,
WLAN_STATUS_INVALID_AKMP = 43,
WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
WLAN_STATUS_UNSPECIFIED_QOS = 32,
WLAN_STATUS_ASSOC_DENIED_NOBANDWIDTH = 33,
WLAN_STATUS_ASSOC_DENIED_LOWACK = 34,
WLAN_STATUS_ASSOC_DENIED_UNSUPP_QOS = 35,
WLAN_STATUS_REQUEST_DECLINED = 37,
WLAN_STATUS_INVALID_QOS_PARAM = 38,
WLAN_STATUS_CHANGE_TSPEC = 39,
WLAN_STATUS_WAIT_TS_DELAY = 47,
WLAN_STATUS_NO_DIRECT_LINK = 48,
WLAN_STATUS_STA_NOT_PRESENT = 49,
WLAN_STATUS_STA_NOT_QSTA = 50,
WLAN_STATUS_ANTI_CLOG_REQUIRED = 76,
WLAN_STATUS_FCG_NOT_SUPP = 78,
WLAN_STATUS_STA_NO_TBTT = 78,
WLAN_STATUS_REJECTED_WITH_SUGGESTED_CHANGES = 39,
WLAN_STATUS_REJECTED_FOR_DELAY_PERIOD = 47,
WLAN_STATUS_REJECT_WITH_SCHEDULE = 83,
WLAN_STATUS_PENDING_ADMITTING_FST_SESSION = 86,
WLAN_STATUS_PERFORMING_FST_NOW = 87,
WLAN_STATUS_PENDING_GAP_IN_BA_WINDOW = 88,
WLAN_STATUS_REJECT_U_PID_SETTING = 89,
WLAN_STATUS_REJECT_DSE_BAND = 96,
WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL = 99,
WLAN_STATUS_DENIED_DUE_TO_SPECTRUM_MANAGEMENT = 103,
WLAN_STATUS_FILS_AUTHENTICATION_FAILURE = 108,
WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER = 109,
WLAN_STATUS_SAE_HASH_TO_ELEMENT = 126,
WLAN_STATUS_SAE_PK = 127,
WLAN_STATUS_DENIED_TID_TO_LINK_MAPPING = 133,
WLAN_STATUS_PREF_TID_TO_LINK_MAPPING_SUGGESTED = 134,
};
enum ieee80211_privacy {
IEEE80211_PRIVACY_ON = 0,
IEEE80211_PRIVACY_OFF = 1,
IEEE80211_PRIVACY_ANY = 2,
};
enum cfg80211_event_type {
EVENT_CONNECT_RESULT = 0,
EVENT_ROAMED = 1,
EVENT_DISCONNECTED = 2,
EVENT_IBSS_JOINED = 3,
EVENT_STOPPED = 4,
EVENT_PORT_AUTHORIZED = 5,
};
enum nl80211_ext_feature_index {
NL80211_EXT_FEATURE_VHT_IBSS = 0,
NL80211_EXT_FEATURE_RRM = 1,
NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2,
NL80211_EXT_FEATURE_SCAN_START_TIME = 3,
NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4,
NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5,
NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6,
NL80211_EXT_FEATURE_BEACON_RATE_HT = 7,
NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8,
NL80211_EXT_FEATURE_FILS_STA = 9,
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10,
NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11,
NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12,
NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13,
NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14,
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15,
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16,
NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17,
NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18,
NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19,
NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20,
NL80211_EXT_FEATURE_MFP_OPTIONAL = 21,
NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22,
NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23,
NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24,
NL80211_EXT_FEATURE_DFS_OFFLOAD = 25,
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26,
NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27,
NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27,
NL80211_EXT_FEATURE_TXQS = 28,
NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29,
NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30,
NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31,
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32,
NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33,
NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34,
NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35,
NL80211_EXT_FEATURE_EXT_KEY_ID = 36,
NL80211_EXT_FEATURE_STA_TX_PWR = 37,
NL80211_EXT_FEATURE_SAE_OFFLOAD = 38,
NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39,
NL80211_EXT_FEATURE_AQL = 40,
NL80211_EXT_FEATURE_BEACON_PROTECTION = 41,
NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42,
NL80211_EXT_FEATURE_PROTECTED_TWT = 43,
NL80211_EXT_FEATURE_DEL_IBSS_STA = 44,
NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45,
NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46,
NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47,
NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48,
NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49,
NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50,
NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51,
NL80211_EXT_FEATURE_FILS_DISCOVERY = 52,
NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53,
NL80211_EXT_FEATURE_BEACON_RATE_HE = 54,
NL80211_EXT_FEATURE_SECURE_LTF = 55,
NL80211_EXT_FEATURE_SECURE_RTT = 56,
NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57,
NL80211_EXT_FEATURE_BSS_COLOR = 58,
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59,
NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61,
NL80211_EXT_FEATURE_PUNCT = 62,
NL80211_EXT_FEATURE_SECURE_NAN = 63,
NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 64,
NL80211_EXT_FEATURE_OWE_OFFLOAD = 65,
NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 66,
NL80211_EXT_FEATURE_DFS_CONCURRENT = 67,
NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 68,
NUM_NL80211_EXT_FEATURES = 69,
MAX_NL80211_EXT_FEATURES = 68,
};
enum ieee80211_reasoncode {
WLAN_REASON_UNSPECIFIED = 1,
WLAN_REASON_PREV_AUTH_NOT_VALID = 2,
WLAN_REASON_DEAUTH_LEAVING = 3,
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4,
WLAN_REASON_DISASSOC_AP_BUSY = 5,
WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6,
WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7,
WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8,
WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9,
WLAN_REASON_DISASSOC_BAD_POWER = 10,
WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11,
WLAN_REASON_INVALID_IE = 13,
WLAN_REASON_MIC_FAILURE = 14,
WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15,
WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16,
WLAN_REASON_IE_DIFFERENT = 17,
WLAN_REASON_INVALID_GROUP_CIPHER = 18,
WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19,
WLAN_REASON_INVALID_AKMP = 20,
WLAN_REASON_UNSUPP_RSN_VERSION = 21,
WLAN_REASON_INVALID_RSN_IE_CAP = 22,
WLAN_REASON_IEEE8021X_FAILED = 23,
WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
WLAN_REASON_TDLS_TEARDOWN_UNREACHABLE = 25,
WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED = 26,
WLAN_REASON_DISASSOC_UNSPECIFIED_QOS = 32,
WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH = 33,
WLAN_REASON_DISASSOC_LOW_ACK = 34,
WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP = 35,
WLAN_REASON_QSTA_LEAVE_QBSS = 36,
WLAN_REASON_QSTA_NOT_USE = 37,
WLAN_REASON_QSTA_REQUIRE_SETUP = 38,
WLAN_REASON_QSTA_TIMEOUT = 39,
WLAN_REASON_QSTA_CIPHER_NOT_SUPP = 45,
WLAN_REASON_MESH_PEER_CANCELED = 52,
WLAN_REASON_MESH_MAX_PEERS = 53,
WLAN_REASON_MESH_CONFIG = 54,
WLAN_REASON_MESH_CLOSE = 55,
WLAN_REASON_MESH_MAX_RETRIES = 56,
WLAN_REASON_MESH_CONFIRM_TIMEOUT = 57,
WLAN_REASON_MESH_INVALID_GTK = 58,
WLAN_REASON_MESH_INCONSISTENT_PARAM = 59,
WLAN_REASON_MESH_INVALID_SECURITY = 60,
WLAN_REASON_MESH_PATH_ERROR = 61,
WLAN_REASON_MESH_PATH_NOFORWARD = 62,
WLAN_REASON_MESH_PATH_DEST_UNREACHABLE = 63,
WLAN_REASON_MAC_EXISTS_IN_MBSS = 64,
WLAN_REASON_MESH_CHAN_REGULATORY = 65,
WLAN_REASON_MESH_CHAN = 66,
};
enum netdev_state_t {
__LINK_STATE_START = 0,
__LINK_STATE_PRESENT = 1,
__LINK_STATE_NOCARRIER = 2,
__LINK_STATE_LINKWATCH_PENDING = 3,
__LINK_STATE_DORMANT = 4,
__LINK_STATE_TESTING = 5,
};
enum nl80211_bss_use_for {
NL80211_BSS_USE_FOR_NORMAL = 1,
NL80211_BSS_USE_FOR_MLD_LINK = 2,
};
struct cfg80211_fils_resp_params {
const u8 *kek;
size_t kek_len;
bool update_erp_next_seq_num;
u16 erp_next_seq_num;
const u8 *pmk;
size_t pmk_len;
const u8 *pmkid;
};
struct cfg80211_connect_resp_params {
int status;
const u8 *req_ie;
size_t req_ie_len;
const u8 *resp_ie;
size_t resp_ie_len;
struct cfg80211_fils_resp_params fils;
enum nl80211_timeout_reason timeout_reason;
const u8 *ap_mld_addr;
u16 valid_links;
struct {
const u8 *addr;
const u8 *bssid;
struct cfg80211_bss *bss;
u16 status;
} links[15];
};
struct element {
u8 id;
u8 datalen;
u8 data[0];
};
struct cfg80211_roam_info {
const u8 *req_ie;
size_t req_ie_len;
const u8 *resp_ie;
size_t resp_ie_len;
struct cfg80211_fils_resp_params fils;
const u8 *ap_mld_addr;
u16 valid_links;
struct {
const u8 *addr;
const u8 *bssid;
struct ieee80211_channel *channel;
struct cfg80211_bss *bss;
} links[15];
};
struct cfg80211_event {
struct list_head list;
enum cfg80211_event_type type;
union {
struct cfg80211_connect_resp_params cr;
struct cfg80211_roam_info rm;
struct {
const u8 *ie;
size_t ie_len;
u16 reason;
bool locally_generated;
} dc;
struct {
u8 bssid[6];
struct ieee80211_channel *channel;
} ij;
struct {
u8 peer_addr[6];
const u8 *td_bitmap;
u8 td_bitmap_len;
} pa;
};
};
typedef __u32 Elf32_Word;
struct elf32_note {
Elf32_Word n_namesz;
Elf32_Word n_descsz;
Elf32_Word n_type;
};
struct cpu_dev {
const char *c_vendor;
const char *c_ident[2];
void (*c_early_init)(struct cpuinfo_x86 *);
void (*c_bsp_init)(struct cpuinfo_x86 *);
void (*c_init)(struct cpuinfo_x86 *);
void (*c_identify)(struct cpuinfo_x86 *);
void (*c_detect_tlb)(struct cpuinfo_x86 *);
int c_x86_vendor;
};
enum tlb_infos {
ENTRIES = 0,
NR_INFO = 1,
};
typedef __u8 mtrr_type;
struct mtrr_ops {
u32 var_regs;
void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type);
void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *);
int (*get_free_region)(unsigned long, unsigned long, int);
int (*validate_add_page)(unsigned long, unsigned long, unsigned int);
int (*have_wrcomb)();
};
struct set_mtrr_data {
unsigned long smp_base;
unsigned long smp_size;
unsigned int smp_reg;
mtrr_type smp_type;
};
typedef int (*cpu_stop_fn_t)(void *);
struct nbcon_write_context;
struct printk_buffers;
struct console {
char name[16];
void (*write)(struct console *, const char *, unsigned int);
int (*read)(struct console *, char *, unsigned int);
struct tty_driver * (*device)(struct console *, int *);
void (*unblank)();
int (*setup)(struct console *, char *);
int (*exit)(struct console *);
int (*match)(struct console *, char *, int, char *);
short flags;
short index;
int cflag;
uint ispeed;
uint ospeed;
u64 seq;
unsigned long dropped;
void *data;
struct hlist_node node;
bool (*write_atomic)(struct console *, struct nbcon_write_context *);
atomic_t nbcon_state;
atomic_long_t nbcon_seq;
struct printk_buffers *pbufs;
};
enum nbcon_prio {
NBCON_PRIO_NONE = 0,
NBCON_PRIO_NORMAL = 1,
NBCON_PRIO_EMERGENCY = 2,
NBCON_PRIO_PANIC = 3,
NBCON_PRIO_MAX = 4,
};
struct nbcon_context {
struct console *console;
unsigned int spinwait_max_us;
enum nbcon_prio prio;
unsigned int allow_unsafe_takeover: 1;
unsigned int backlog: 1;
struct printk_buffers *pbufs;
u64 seq;
};
struct nbcon_write_context {
struct nbcon_context ctxt;
char *outbuf;
unsigned int len;
bool unsafe_takeover;
};
enum cons_flags {
CON_PRINTBUFFER = 1,
CON_CONSDEV = 2,
CON_ENABLED = 4,
CON_BOOT = 8,
CON_ANYTIME = 16,
CON_BRL = 32,
CON_EXTENDED = 64,
CON_SUSPENDED = 128,
CON_NBCON = 256,
};
struct arch_uprobe;
struct uprobe_xol_ops {
bool (*emulate)(struct arch_uprobe *, struct pt_regs *);
int (*pre_xol)(struct arch_uprobe *, struct pt_regs *);
int (*post_xol)(struct arch_uprobe *, struct pt_regs *);
void (*abort)(struct arch_uprobe *, struct pt_regs *);
};
struct arch_uprobe {
union {
u8 insn[16];
u8 ixol[16];
};
const struct uprobe_xol_ops *ops;
union {
struct {
s32 offs;
u8 ilen;
u8 opc1;
} branch;
struct {
u8 fixups;
u8 ilen;
} defparam;
struct {
u8 reg_offset;
u8 ilen;
} push;
};
};
enum die_val {
DIE_OOPS = 1,
DIE_INT3 = 2,
DIE_DEBUG = 3,
DIE_PANIC = 4,
DIE_NMI = 5,
DIE_DIE = 6,
DIE_KERNELDEBUG = 7,
DIE_TRAP = 8,
DIE_GPF = 9,
DIE_CALL = 10,
DIE_PAGE_FAULT = 11,
DIE_NMIUNKNOWN = 12,
};
enum rp_check {
RP_CHECK_CALL = 0,
RP_CHECK_CHAIN_CALL = 1,
RP_CHECK_RET = 2,
};
enum insn_mode {
INSN_MODE_32 = 0,
INSN_MODE_64 = 1,
INSN_MODE_KERN = 2,
INSN_NUM_MODES = 3,
};
typedef int insn_value_t;
typedef unsigned char insn_byte_t;
struct insn_field {
union {
insn_value_t value;
insn_byte_t bytes[4];
};
unsigned char got;
unsigned char nbytes;
};
typedef unsigned int insn_attr_t;
struct insn {
struct insn_field prefixes;
struct insn_field rex_prefix;
struct insn_field vex_prefix;
struct insn_field opcode;
struct insn_field modrm;
struct insn_field sib;
struct insn_field displacement;
union {
struct insn_field immediate;
struct insn_field moffset1;
struct insn_field immediate1;
};
union {
struct insn_field moffset2;
struct insn_field immediate2;
};
int emulate_prefix_size;
insn_attr_t attr;
unsigned char opnd_bytes;
unsigned char addr_bytes;
unsigned char length;
unsigned char x86_64;
const insn_byte_t *kaddr;
const insn_byte_t *end_kaddr;
const insn_byte_t *next_byte;
};
struct die_args {
struct pt_regs *regs;
const char *str;
long err;
int trapnr;
int signr;
};
enum {
IRQS_AUTODETECT = 1,
IRQS_SPURIOUS_DISABLED = 2,
IRQS_POLL_INPROGRESS = 8,
IRQS_ONESHOT = 32,
IRQS_REPLAY = 64,
IRQS_WAITING = 128,
IRQS_PENDING = 512,
IRQS_SUSPENDED = 2048,
IRQS_TIMINGS = 4096,
IRQS_NMI = 8192,
IRQS_SYSFS = 16384,
};
enum pci_p2pdma_map_type {
PCI_P2PDMA_MAP_UNKNOWN = 0,
PCI_P2PDMA_MAP_NOT_SUPPORTED = 1,
PCI_P2PDMA_MAP_BUS_ADDR = 2,
PCI_P2PDMA_MAP_THRU_HOST_BRIDGE = 3,
};
struct io_tlb_area;
struct io_tlb_slot;
struct io_tlb_pool {
phys_addr_t start;
phys_addr_t end;
void *vaddr;
unsigned long nslabs;
bool late_alloc;
unsigned int nareas;
unsigned int area_nslabs;
struct io_tlb_area *areas;
struct io_tlb_slot *slots;
};
struct io_tlb_mem {
struct io_tlb_pool defpool;
unsigned long nslabs;
struct dentry *debugfs;
bool force_bounce;
bool for_alloc;
atomic_long_t total_used;
atomic_long_t used_hiwater;
atomic_long_t transient_nslabs;
};
struct pci_p2pdma_map_state {
struct dev_pagemap *pgmap;
int map;
u64 bus_off;
};
struct cgroup_taskset {
struct list_head src_csets;
struct list_head dst_csets;
int nr_tasks;
int ssid;
struct list_head *csets;
struct css_set *cur_cset;
struct task_struct *cur_task;
};
struct cgrp_cset_link {
struct cgroup *cgrp;
struct css_set *cset;
struct list_head cset_link;
struct list_head cgrp_link;
};
struct bpf_mprog_cp {
struct bpf_link *link;
};
struct bpf_mprog_bundle {
struct bpf_mprog_entry a;
struct bpf_mprog_entry b;
struct bpf_mprog_cp cp_items[64];
struct bpf_prog *ref;
atomic64_t revision;
u32 count;
};
struct mini_Qdisc;
struct tcx_entry {
struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq;
struct bpf_mprog_bundle bundle;
bool miniq_active;
struct callback_head rcu;
};
struct mini_Qdisc {
struct tcf_proto *filter_list;
struct tcf_block *block;
struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats;
struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats;
unsigned long rcu_state;
};
struct tcx_link {
struct bpf_link link;
struct net_device *dev;
u32 location;
};
struct bpf_tuple {
struct bpf_prog *prog;
struct bpf_link *link;
};
struct compact_control;
struct capture_control {
struct compact_control *cc;
struct page *page;
};
struct compact_control {
struct list_head freepages[11];
struct list_head migratepages;
unsigned int nr_freepages;
unsigned int nr_migratepages;
unsigned long free_pfn;
unsigned long migrate_pfn;
unsigned long fast_start_pfn;
struct zone *zone;
unsigned long total_migrate_scanned;
unsigned long total_free_scanned;
unsigned short fast_search_fail;
short search_order;
const gfp_t gfp_mask;
int order;
int migratetype;
const unsigned int alloc_flags;
const int highest_zoneidx;
enum migrate_mode mode;
bool ignore_skip_hint;
bool no_set_skip_hint;
bool ignore_block_suitable;
bool direct_compaction;
bool proactive_compaction;
bool whole_zone;
bool contended;
bool finish_pageblock;
bool alloc_contig;
};
struct mempolicy_operations {
int (*create)(struct mempolicy *, const nodemask_t *);
void (*rebind)(struct mempolicy *, const nodemask_t *);
};
typedef struct {
pgd_t pgd;
} p4d_t;
enum page_walk_lock {
PGWALK_RDLOCK = 0,
PGWALK_WRLOCK = 1,
PGWALK_WRLOCK_VERIFY = 2,
};
struct mm_walk;
struct mm_walk_ops {
int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *);
int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *);
int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *);
int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *);
int (*test_walk)(unsigned long, unsigned long, struct mm_walk *);
int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *);
void (*post_vma)(struct mm_walk *);
enum page_walk_lock walk_lock;
};
enum page_walk_action {
ACTION_SUBTREE = 0,
ACTION_CONTINUE = 1,
ACTION_AGAIN = 2,
};
struct mm_walk {
const struct mm_walk_ops *ops;
struct mm_struct *mm;
pgd_t *pgd;
struct vm_area_struct *vma;
enum page_walk_action action;
bool no_vma;
void *private;
};
struct kobj_attribute {
struct attribute attr;
ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *);
ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t);
};
struct iw_node_attr {
struct kobj_attribute kobj_attr;
int nid;
};
enum {
MPOL_DEFAULT = 0,
MPOL_PREFERRED = 1,
MPOL_BIND = 2,
MPOL_INTERLEAVE = 3,
MPOL_LOCAL = 4,
MPOL_PREFERRED_MANY = 5,
MPOL_WEIGHTED_INTERLEAVE = 6,
MPOL_MAX = 7,
};
enum {
ZONELIST_FALLBACK = 0,
ZONELIST_NOFALLBACK = 1,
MAX_ZONELISTS = 2,
};
enum migrate_reason {
MR_COMPACTION = 0,
MR_MEMORY_FAILURE = 1,
MR_MEMORY_HOTPLUG = 2,
MR_SYSCALL = 3,
MR_MEMPOLICY_MBIND = 4,
MR_NUMA_MISPLACED = 5,
MR_CONTIG_RANGE = 6,
MR_LONGTERM_PIN = 7,
MR_DEMOTION = 8,
MR_TYPES = 9,
};
struct sp_node {
struct rb_node nd;
unsigned long start;
unsigned long end;
struct mempolicy *policy;
};
struct ptdesc {
unsigned long __page_flags;
union {
struct callback_head pt_rcu_head;
struct list_head pt_list;
struct {
unsigned long _pt_pad_1;
pgtable_t pmd_huge_pte;
};
};
unsigned long __page_mapping;
union {
unsigned long pt_index;
struct mm_struct *pt_mm;
atomic_t pt_frag_refcount;
};
union {
unsigned long _pt_pad_2;
spinlock_t *ptl;
};
unsigned int __page_type;
atomic_t __page_refcount;
unsigned long pt_memcg_data;
};
typedef u32 compat_ulong_t;
struct migration_mpol {
struct mempolicy *pol;
unsigned long ilx;
};
struct vma_iterator {
struct ma_state mas;
};
struct migration_target_control {
int nid;
nodemask_t *nmask;
gfp_t gfp_mask;
};
struct queue_pages {
struct list_head *pagelist;
unsigned long flags;
nodemask_t *nmask;
unsigned long start;
unsigned long end;
struct vm_area_struct *first;
struct folio *large;
long nr_failed;
};
typedef struct folio *new_folio_t(struct folio *, unsigned long);
typedef void free_folio_t(struct folio *, unsigned long);
struct nodemask_scratch {
nodemask_t mask1;
nodemask_t mask2;
};
struct hstate {
struct mutex resize_lock;
int next_nid_to_alloc;
int next_nid_to_free;
unsigned int order;
unsigned int demote_order;
unsigned long mask;
unsigned long max_huge_pages;
unsigned long nr_huge_pages;
unsigned long free_huge_pages;
unsigned long resv_huge_pages;
unsigned long surplus_huge_pages;
unsigned long nr_overcommit_huge_pages;
struct list_head hugepage_activelist;
struct list_head hugepage_freelists[1024];
unsigned int max_huge_pages_node[1024];
unsigned int nr_huge_pages_node[1024];
unsigned int free_huge_pages_node[1024];
unsigned int surplus_huge_pages_node[1024];
struct cftype cgroup_files_dfl[8];
struct cftype cgroup_files_legacy[10];
char name[32];
};
struct hugepage_subpool;
struct hugetlbfs_sb_info {
long max_inodes;
long free_inodes;
spinlock_t stat_lock;
struct hstate *hstate;
struct hugepage_subpool *spool;
kuid_t uid;
kgid_t gid;
umode_t mode;
};
struct hugepage_subpool {
spinlock_t lock;
long count;
long max_hpages;
long used_hpages;
struct hstate *hstate;
long min_hpages;
long rsv_hpages;
};
struct shared_policy {
struct rb_root root;
rwlock_t lock;
};
typedef struct pglist_data pg_data_t;
struct anon_vma_name {
struct kref kref;
char name[0];
};
struct core_vma_metadata;
struct coredump_params {
const kernel_siginfo_t *siginfo;
struct file *file;
unsigned long limit;
unsigned long mm_flags;
int cpu;
loff_t written;
loff_t pos;
loff_t to_skip;
int vma_count;
size_t vma_data_size;
struct core_vma_metadata *vma_meta;
};
struct core_vma_metadata {
unsigned long start;
unsigned long end;
unsigned long flags;
unsigned long dump_size;
unsigned long pgoff;
struct file *file;
};
struct core_name {
char *corename;
int used;
int size;
};
struct subprocess_info {
struct work_struct work;
struct completion *complete;
const char *path;
char **argv;
char **envp;
int wait;
int retval;
int (*init)(struct subprocess_info *, struct cred *);
void (*cleanup)(struct subprocess_info *);
void *data;
};
struct __va_list_tag {
unsigned int gp_offset;
unsigned int fp_offset;
void *overflow_arg_area;
void *reg_save_area;
};
typedef __builtin_va_list va_list;
struct posix_acl_entry {
short e_tag;
unsigned short e_perm;
union {
kuid_t e_uid;
kgid_t e_gid;
};
};
struct posix_acl {
refcount_t a_refcount;
struct callback_head a_rcu;
unsigned int a_count;
struct posix_acl_entry a_entries[0];
};
typedef struct {
__le32 a_version;
} ext4_acl_header;
typedef struct {
__le16 e_tag;
__le16 e_perm;
__le32 e_id;
} ext4_acl_entry;
struct miscdevice {
int minor;
const char *name;
const struct file_operations *fops;
struct list_head list;
struct device *parent;
struct device *this_device;
const struct attribute_group **groups;
const char *nodename;
umode_t mode;
};
struct autofs_dev_ioctl;
typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *);
struct args_protover {
__u32 version;
};
struct args_protosubver {
__u32 sub_version;
};
struct args_openmount {
__u32 devid;
};
struct args_ready {
__u32 token;
};
struct args_fail {
__u32 token;
__s32 status;
};
struct args_setpipefd {
__s32 pipefd;
};
struct args_timeout {
__u64 timeout;
};
struct args_requester {
__u32 uid;
__u32 gid;
};
struct args_expire {
__u32 how;
};
struct args_askumount {
__u32 may_umount;
};
struct args_in {
__u32 type;
};
struct args_out {
__u32 devid;
__u32 magic;
};
struct args_ismountpoint {
union {
struct args_in in;
struct args_out out;
};
};
struct autofs_dev_ioctl {
__u32 ver_major;
__u32 ver_minor;
__u32 size;
__s32 ioctlfd;
union {
struct args_protover protover;
struct args_protosubver protosubver;
struct args_openmount openmount;
struct args_ready ready;
struct args_fail fail;
struct args_setpipefd setpipefd;
struct args_timeout timeout;
struct args_requester requester;
struct args_expire expire;
struct args_askumount askumount;
struct args_ismountpoint ismountpoint;
};
char path[0];
};
enum {
AUTOFS_DEV_IOCTL_VERSION_CMD = 113,
AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114,
AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115,
AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116,
AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117,
AUTOFS_DEV_IOCTL_READY_CMD = 118,
AUTOFS_DEV_IOCTL_FAIL_CMD = 119,
AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120,
AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121,
AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122,
AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123,
AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124,
AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125,
AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126,
};
enum {
BTRFS_FS_CLOSING_START = 0,
BTRFS_FS_CLOSING_DONE = 1,
BTRFS_FS_LOG_RECOVERING = 2,
BTRFS_FS_OPEN = 3,
BTRFS_FS_QUOTA_ENABLED = 4,
BTRFS_FS_UPDATE_UUID_TREE_GEN = 5,
BTRFS_FS_CREATING_FREE_SPACE_TREE = 6,
BTRFS_FS_BTREE_ERR = 7,
BTRFS_FS_LOG1_ERR = 8,
BTRFS_FS_LOG2_ERR = 9,
BTRFS_FS_QUOTA_OVERRIDE = 10,
BTRFS_FS_FROZEN = 11,
BTRFS_FS_BALANCE_RUNNING = 12,
BTRFS_FS_RELOC_RUNNING = 13,
BTRFS_FS_CLEANER_RUNNING = 14,
BTRFS_FS_CSUM_IMPL_FAST = 15,
BTRFS_FS_DISCARD_RUNNING = 16,
BTRFS_FS_CLEANUP_SPACE_CACHE_V1 = 17,
BTRFS_FS_FREE_SPACE_TREE_UNTRUSTED = 18,
BTRFS_FS_TREE_MOD_LOG_USERS = 19,
BTRFS_FS_COMMIT_TRANS = 20,
BTRFS_FS_UNFINISHED_DROPS = 21,
BTRFS_FS_NEED_ZONE_FINISH = 22,
BTRFS_FS_NEED_TRANS_COMMIT = 23,
BTRFS_FS_ACTIVE_ZONE_TRACKING = 24,
BTRFS_FS_FEATURE_CHANGED = 25,
BTRFS_FS_UNALIGNED_TREE_BLOCK = 26,
};
enum btrfs_mod_log_op {
BTRFS_MOD_LOG_KEY_REPLACE = 0,
BTRFS_MOD_LOG_KEY_ADD = 1,
BTRFS_MOD_LOG_KEY_REMOVE = 2,
BTRFS_MOD_LOG_KEY_REMOVE_WHILE_FREEING = 3,
BTRFS_MOD_LOG_KEY_REMOVE_WHILE_MOVING = 4,
BTRFS_MOD_LOG_MOVE_KEYS = 5,
BTRFS_MOD_LOG_ROOT_REPLACE = 6,
};
enum {
EXTENT_BUFFER_UPTODATE = 0,
EXTENT_BUFFER_DIRTY = 1,
EXTENT_BUFFER_CORRUPT = 2,
EXTENT_BUFFER_READAHEAD = 3,
EXTENT_BUFFER_TREE_REF = 4,
EXTENT_BUFFER_STALE = 5,
EXTENT_BUFFER_WRITEBACK = 6,
EXTENT_BUFFER_READ_ERR = 7,
EXTENT_BUFFER_UNMAPPED = 8,
EXTENT_BUFFER_IN_TREE = 9,
EXTENT_BUFFER_WRITE_ERR = 10,
EXTENT_BUFFER_ZONED_ZEROOUT = 11,
EXTENT_BUFFER_READING = 12,
};
struct btrfs_seq_list {
struct list_head list;
u64 seq;
};
struct btrfs_disk_key {
__le64 objectid;
__u8 type;
__le64 offset;
} __attribute__((packed));
struct tree_mod_root {
u64 logical;
u8 level;
};
struct tree_mod_elem {
struct rb_node node;
u64 logical;
u64 seq;
enum btrfs_mod_log_op op;
int slot;
u64 generation;
struct btrfs_disk_key key;
u64 blockptr;
struct {
int dst_slot;
int nr_items;
} move;
struct tree_mod_root old_root;
};
struct btrfs_key_ptr {
struct btrfs_disk_key key;
__le64 blockptr;
__le64 generation;
} __attribute__((packed));
struct btrfs_timespec {
__le64 sec;
__le32 nsec;
} __attribute__((packed));
struct btrfs_inode_item {
__le64 generation;
__le64 transid;
__le64 size;
__le64 nbytes;
__le64 block_group;
__le32 nlink;
__le32 uid;
__le32 gid;
__le32 mode;
__le64 rdev;
__le64 flags;
__le64 sequence;
__le64 reserved[4];
struct btrfs_timespec atime;
struct btrfs_timespec ctime;
struct btrfs_timespec mtime;
struct btrfs_timespec otime;
};
struct btrfs_root_item {
struct btrfs_inode_item inode;
__le64 generation;
__le64 root_dirid;
__le64 bytenr;
__le64 byte_limit;
__le64 bytes_used;
__le64 last_snapshot;
__le64 flags;
__le32 refs;
struct btrfs_disk_key drop_progress;
__u8 drop_level;
__u8 level;
__le64 generation_v2;
__u8 uuid[16];
__u8 parent_uuid[16];
__u8 received_uuid[16];
__le64 ctransid;
__le64 otransid;
__le64 stransid;
__le64 rtransid;
struct btrfs_timespec ctime;
struct btrfs_timespec otime;
struct btrfs_timespec stime;
struct btrfs_timespec rtime;
__le64 reserved[8];
} __attribute__((packed));
struct btrfs_drew_lock {
atomic_t readers;
atomic_t writers;
wait_queue_head_t pending_writers;
wait_queue_head_t pending_readers;
};
struct btrfs_qgroup_swapped_blocks {
spinlock_t lock;
bool swapped;
struct rb_root blocks[8];
};
struct extent_buffer;
struct btrfs_root {
struct rb_node rb_node;
struct extent_buffer *node;
struct extent_buffer *commit_root;
struct btrfs_root *log_root;
struct btrfs_root *reloc_root;
unsigned long state;
struct btrfs_root_item root_item;
struct btrfs_key root_key;
struct btrfs_fs_info *fs_info;
struct extent_io_tree dirty_log_pages;
struct mutex objectid_mutex;
spinlock_t accounting_lock;
struct btrfs_block_rsv *block_rsv;
struct mutex log_mutex;
wait_queue_head_t log_writer_wait;
wait_queue_head_t log_commit_wait[2];
struct list_head log_ctxs[2];
atomic_t log_writers;
atomic_t log_commit[2];
atomic_t log_batch;
int log_transid;
int log_transid_committed;
int last_log_commit;
pid_t log_start_pid;
u64 last_trans;
u64 free_objectid;
struct btrfs_key defrag_progress;
struct btrfs_key defrag_max;
struct list_head dirty_list;
struct list_head root_list;
spinlock_t inode_lock;
struct rb_root inode_tree;
struct xarray delayed_nodes;
dev_t anon_dev;
spinlock_t root_item_lock;
refcount_t refs;
struct mutex delalloc_mutex;
spinlock_t delalloc_lock;
struct list_head delalloc_inodes;
struct list_head delalloc_root;
u64 nr_delalloc_inodes;
struct mutex ordered_extent_mutex;
spinlock_t ordered_extent_lock;
struct list_head ordered_extents;
struct list_head ordered_root;
u64 nr_ordered_extents;
struct list_head reloc_dirty_list;
int send_in_progress;
int dedupe_in_progress;
struct btrfs_drew_lock snapshot_lock;
atomic_t snapshot_force_cow;
spinlock_t qgroup_meta_rsv_lock;
u64 qgroup_meta_rsv_pertrans;
u64 qgroup_meta_rsv_prealloc;
wait_queue_head_t qgroup_flush_wait;
atomic_t nr_swapfiles;
struct btrfs_qgroup_swapped_blocks swapped_blocks;
struct extent_io_tree log_csum_range;
u64 relocation_src_root;
};
struct extent_buffer {
u64 start;
u32 len;
u32 folio_size;
unsigned long bflags;
struct btrfs_fs_info *fs_info;
void *addr;
spinlock_t refs_lock;
atomic_t refs;
int read_mirror;
s8 log_index;
u8 folio_shift;
struct callback_head callback_head;
struct rw_semaphore lock;
struct folio *folios[16];
};
struct ulist {
unsigned long nnodes;
struct list_head nodes;
struct rb_root root;
};
struct btrfs_header {
__u8 csum[32];
__u8 fsid[16];
__le64 bytenr;
__le64 flags;
__u8 chunk_tree_uuid[16];
__le64 generation;
__le64 owner;
__le32 nritems;
__u8 level;
} __attribute__((packed));
struct btrfs_path {
struct extent_buffer *nodes[8];
int slots[8];
u8 locks[8];
u8 reada;
u8 lowest_level;
unsigned int search_for_split: 1;
unsigned int keep_locks: 1;
unsigned int skip_locking: 1;
unsigned int search_commit_root: 1;
unsigned int need_commit_sem: 1;
unsigned int skip_release_on_error: 1;
unsigned int search_for_extension: 1;
unsigned int nowait: 1;
};
struct rtattr {
unsigned short rta_len;
unsigned short rta_type;
};
struct crypto_rng;
struct rng_alg {
int (*generate)(struct crypto_rng *, const u8 *, unsigned int, u8 *, unsigned int);
int (*seed)(struct crypto_rng *, const u8 *, unsigned int);
void (*set_ent)(struct crypto_rng *, const u8 *, unsigned int);
unsigned int seedsize;
struct crypto_alg base;
};
struct crypto_rng {
struct crypto_tfm base;
};
struct crypto_sync_skcipher;
struct aead_geniv_ctx {
spinlock_t lock;
struct crypto_aead *child;
struct crypto_sync_skcipher *sknull;
u8 salt[0];
};
typedef __kernel_long_t __kernel_ptrdiff_t;
typedef __kernel_ptrdiff_t ptrdiff_t;
typedef struct {
U64 rolling;
U64 stopMask;
} ldmRollingHashState_t;
typedef enum {
ZSTD_noDict = 0,
ZSTD_extDict = 1,
ZSTD_dictMatchState = 2,
ZSTD_dedicatedDictSearch = 3,
} ZSTD_dictMode_e;
struct seqDef_s {
U32 offBase;
U16 litLength;
U16 mlBase;
};
typedef enum {
ZSTD_no_overlap = 0,
ZSTD_overlap_src_before_dst = 1,
} ZSTD_overlap_e;
typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t);
typedef enum {
ZSTD_dtlm_fast = 0,
ZSTD_dtlm_full = 1,
} ZSTD_dictTableLoadMethod_e;
typedef uint8_t U8;
struct ZSTD_DDict_s {
void *dictBuffer;
const void *dictContent;
size_t dictSize;
ZSTD_entropyDTables_t entropy;
U32 dictID;
U32 entropyPresent;
ZSTD_customMem cMem;
};
typedef struct {
U32 f1c;
U32 f1d;
U32 f7b;
U32 f7c;
} ZSTD_cpuid_t;
typedef struct {
size_t compressedSize;
unsigned long long decompressedBound;
} ZSTD_frameSizeInfo;
typedef struct {
blockType_e blockType;
U32 lastBlock;
U32 origSize;
} blockProperties_t;
typedef enum {
not_streaming = 0,
is_streaming = 1,
} streaming_operation;
typedef enum {
ZSTD_dlm_byCopy = 0,
ZSTD_dlm_byRef = 1,
} ZSTD_dictLoadMethod_e;
typedef enum {
ZSTD_reset_session_only = 1,
ZSTD_reset_parameters = 2,
ZSTD_reset_session_and_parameters = 3,
} ZSTD_ResetDirective;
typedef enum {
ZSTD_d_windowLogMax = 100,
ZSTD_d_experimentalParam1 = 1000,
ZSTD_d_experimentalParam2 = 1001,
ZSTD_d_experimentalParam3 = 1002,
ZSTD_d_experimentalParam4 = 1003,
} ZSTD_dParameter;
typedef struct {
size_t error;
int lowerBound;
int upperBound;
} ZSTD_bounds;
typedef enum {
ZSTDnit_frameHeader = 0,
ZSTDnit_blockHeader = 1,
ZSTDnit_block = 2,
ZSTDnit_lastBlock = 3,
ZSTDnit_checksum = 4,
ZSTDnit_skippableFrame = 5,
} ZSTD_nextInputType_e;
struct raid6_recov_calls {
void (*data2)(int, size_t, int, int, void **);
void (*datap)(int, size_t, int, void **);
int (*valid)();
const char *name;
int priority;
};
struct raid6_calls {
void (*gen_syndrome)(int, size_t, void **);
void (*xor_syndrome)(int, int, int, size_t, void **);
int (*valid)();
const char *name;
int priority;
};
typedef u64 unative_t;
struct proc_ops {
unsigned int proc_flags;
int (*proc_open)(struct inode *, struct file *);
ssize_t (*proc_read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *);
ssize_t (*proc_write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *);
loff_t (*proc_lseek)(struct file *, loff_t, int);
int (*proc_release)(struct inode *, struct file *);
__poll_t (*proc_poll)(struct file *, struct poll_table_struct *);
long (*proc_ioctl)(struct file *, unsigned int, unsigned long);
int (*proc_mmap)(struct file *, struct vm_area_struct *);
unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
};
enum netdev_reg_state {
NETREG_UNINITIALIZED = 0,
NETREG_REGISTERED = 1,
NETREG_UNREGISTERING = 2,
NETREG_UNREGISTERED = 3,
NETREG_RELEASED = 4,
NETREG_DUMMY = 5,
};
struct ddebug_table {
struct list_head link;
struct list_head maps;
const char *mod_name;
unsigned int num_ddebugs;
struct _ddebug *ddebugs;
};
struct ddebug_class_param {
union {
unsigned long *bits;
unsigned int *lvl;
};
char flags[8];
const struct ddebug_class_map *map;
};
struct ddebug_query {
const char *filename;
const char *module;
const char *function;
const char *format;
const char *class_string;
unsigned int first_lineno;
unsigned int last_lineno;
};
struct flag_settings {
unsigned int flags;
unsigned int mask;
};
struct flagsbuf {
char buf[8];
};
struct ddebug_iter {
struct ddebug_table *table;
int idx;
};
struct va_format {
const char *fmt;
va_list *va;
};
struct acpi_mem_mapping;
struct acpi_mem_space_context {
u32 length;
acpi_physical_address address;
struct acpi_mem_mapping *cur_mm;
struct acpi_mem_mapping *first_mm;
};
struct acpi_mem_mapping {
acpi_physical_address physical_address;
u8 *logical_address;
acpi_size length;
struct acpi_mem_mapping *next_mm;
};
struct acpi_pci_id {
u16 segment;
u16 bus;
u16 device;
u16 function;
};
struct acpi_pnp_device_id {
u32 length;
char *string;
};
struct acpi_pnp_device_id_list {
u32 count;
u32 list_size;
struct acpi_pnp_device_id ids[0];
};
struct acpi_data_table_mapping {
void *pointer;
};
struct acpi_processor_flags {
u8 power: 1;
u8 performance: 1;
u8 throttling: 1;
u8 limit: 1;
u8 bm_control: 1;
u8 bm_check: 1;
u8 has_cst: 1;
u8 has_lpi: 1;
u8 power_setup_done: 1;
u8 bm_rld_set: 1;
u8 need_hotplug_init: 1;
};
struct acpi_processor_cx {
u8 valid;
u8 type;
u32 address;
u8 entry_method;
u8 index;
u32 latency;
u8 bm_sts_skip;
char desc[32];
};
struct acpi_lpi_state {
u32 min_residency;
u32 wake_latency;
u32 flags;
u32 arch_flags;
u32 res_cnt_freq;
u32 enable_parent_state;
u64 address;
u8 index;
u8 entry_method;
char desc[32];
};
struct acpi_processor_power {
int count;
union {
struct acpi_processor_cx states[8];
struct acpi_lpi_state lpi_states[8];
};
int timer_broadcast_on_state;
};
struct acpi_pct_register {
u8 descriptor;
u16 length;
u8 space_id;
u8 bit_width;
u8 bit_offset;
u8 reserved;
u64 address;
} __attribute__((packed));
struct acpi_tsd_package {
u64 num_entries;
u64 revision;
u64 domain;
u64 coord_type;
u64 num_processors;
};
struct acpi_processor_tx {
u16 power;
u16 performance;
};
struct acpi_processor_tx_tss;
struct acpi_processor;
struct acpi_processor_throttling {
unsigned int state;
unsigned int platform_limit;
struct acpi_pct_register control_register;
struct acpi_pct_register status_register;
unsigned int state_count;
struct acpi_processor_tx_tss *states_tss;
struct acpi_tsd_package domain_info;
cpumask_var_t shared_cpu_map;
int (*acpi_processor_get_throttling)(struct acpi_processor *);
int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool);
u32 address;
u8 duty_offset;
u8 duty_width;
u8 tsd_valid_flag;
unsigned int shared_type;
struct acpi_processor_tx states[16];
};
struct acpi_processor_lx {
int px;
int tx;
};
struct acpi_processor_limit {
struct acpi_processor_lx state;
struct acpi_processor_lx thermal;
struct acpi_processor_lx user;
};
struct acpi_processor_performance;
struct acpi_processor {
acpi_handle handle;
u32 acpi_id;
phys_cpuid_t phys_id;
u32 id;
u32 pblk;
int performance_platform_limit;
int throttling_platform_limit;
struct acpi_processor_flags flags;
struct acpi_processor_power power;
struct acpi_processor_performance *performance;
struct acpi_processor_throttling throttling;
struct acpi_processor_limit limit;
struct thermal_cooling_device *cdev;
struct device *dev;
struct freq_qos_request perflib_req;
struct freq_qos_request thermal_req;
};
struct acpi_psd_package {
u64 num_entries;
u64 revision;
u64 domain;
u64 coord_type;
u64 num_processors;
};
struct acpi_processor_px;
struct acpi_processor_performance {
unsigned int state;
unsigned int platform_limit;
struct acpi_pct_register control_register;
struct acpi_pct_register status_register;
unsigned int state_count;
struct acpi_processor_px *states;
struct acpi_psd_package domain_info;
cpumask_var_t shared_cpu_map;
unsigned int shared_type;
};
struct acpi_processor_px {
u64 core_frequency;
u64 power;
u64 transition_latency;
u64 bus_master_latency;
u64 control;
u64 status;
};
struct acpi_processor_tx_tss {
u64 freqpercentage;
u64 power;
u64 transition_latency;
u64 control;
u64 status;
};
struct thermal_cooling_device_ops;
struct thermal_cooling_device {
int id;
const char *type;
unsigned long max_state;
struct device device;
struct device_node *np;
void *devdata;
void *stats;
const struct thermal_cooling_device_ops *ops;
bool updated;
struct mutex lock;
struct list_head thermal_instances;
struct list_head node;
};
struct thermal_cooling_device_ops {
int (*get_max_state)(struct thermal_cooling_device *, unsigned long *);
int (*get_cur_state)(struct thermal_cooling_device *, unsigned long *);
int (*set_cur_state)(struct thermal_cooling_device *, unsigned long);
int (*get_requested_power)(struct thermal_cooling_device *, u32 *);
int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *);
int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *);
};
struct cpuidle_device;
struct cpuidle_driver;
struct cpuidle_state {
char name[16];
char desc[32];
s64 exit_latency_ns;
s64 target_residency_ns;
unsigned int flags;
unsigned int exit_latency;
int power_usage;
unsigned int target_residency;
int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int);
int (*enter_dead)(struct cpuidle_device *, int);
int (*enter_s2idle)(struct cpuidle_device *, struct cpuidle_driver *, int);
};
struct cpuidle_driver {
const char *name;
struct module *owner;
unsigned int bctimer: 1;
struct cpuidle_state states[10];
int state_count;
int safe_state_index;
struct cpumask *cpumask;
const char *governor;
};
struct cpuidle_state_usage {
unsigned long long disable;
unsigned long long usage;
u64 time_ns;
unsigned long long above;
unsigned long long below;
unsigned long long rejected;
unsigned long long s2idle_usage;
unsigned long long s2idle_time;
};
struct cpuidle_driver_kobj;
struct cpuidle_state_kobj;
struct cpuidle_device_kobj;
struct cpuidle_device {
unsigned int registered: 1;
unsigned int enabled: 1;
unsigned int poll_time_limit: 1;
unsigned int cpu;
ktime_t next_hrtimer;
int last_state_idx;
u64 last_residency_ns;
u64 poll_limit_ns;
u64 forced_idle_latency_limit_ns;
struct cpuidle_state_usage states_usage[10];
struct cpuidle_state_kobj *kobjs[10];
struct cpuidle_driver_kobj *kobj_driver;
struct cpuidle_device_kobj *kobj_dev;
struct list_head device_list;
};
struct device_private {
struct klist klist_children;
struct klist_node knode_parent;
struct klist_node knode_driver;
struct klist_node knode_bus;
struct klist_node knode_class;
struct list_head deferred_probe;
struct device_driver *async_driver;
char *deferred_probe_reason;
struct device *device;
u8 dead: 1;
};
struct driver_private {
struct kobject kobj;
struct klist klist_devices;
struct klist_node knode_bus;
struct module_kobject *mkobj;
struct device_driver *driver;
};
struct iommu_group {};
struct ida {
struct xarray xa;
};
struct mfd_cell;
struct pdev_archdata {};
struct platform_device_id;
struct platform_device {
const char *name;
int id;
bool id_auto;
struct device dev;
u64 platform_dma_mask;
struct device_dma_parameters dma_parms;
u32 num_resources;
struct resource *resource;
const struct platform_device_id *id_entry;
const char *driver_override;
struct mfd_cell *mfd_cell;
struct pdev_archdata archdata;
};
struct platform_device_id {
char name[20];
kernel_ulong_t driver_data;
};
struct platform_object {
struct platform_device pdev;
char name[0];
};
struct platform_driver {
int (*probe)(struct platform_device *);
int (*remove)(struct platform_device *);
void (*remove_new)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t);
int (*resume)(struct platform_device *);
struct device_driver driver;
const struct platform_device_id *id_table;
bool prevent_deferred_probe;
bool driver_managed_dma;
};
struct irq_affinity {
unsigned int pre_vectors;
unsigned int post_vectors;
unsigned int nr_sets;
unsigned int set_size[4];
void (*calc_sets)(struct irq_affinity *, unsigned int);
void *priv;
};
typedef void (*dr_release_t)(struct device *, void *);
struct irq_affinity_devres {
unsigned int count;
unsigned int irq[0];
};
struct platform_device_info {
struct device *parent;
struct fwnode_handle *fwnode;
bool of_node_reused;
const char *name;
int id;
const struct resource *res;
unsigned int num_res;
const void *data;
size_t size_data;
u64 dma_mask;
const struct property_entry *properties;
};
enum ata_completion_errors {
AC_ERR_OK = 0,
AC_ERR_DEV = 1,
AC_ERR_HSM = 2,
AC_ERR_TIMEOUT = 4,
AC_ERR_MEDIA = 8,
AC_ERR_ATA_BUS = 16,
AC_ERR_HOST_BUS = 32,
AC_ERR_SYSTEM = 64,
AC_ERR_INVALID = 128,
AC_ERR_OTHER = 256,
AC_ERR_NODEV_HINT = 512,
AC_ERR_NCQ = 1024,
};
struct ata_link;
typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long);
typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long);
typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *);
enum ata_lpm_policy {
ATA_LPM_UNKNOWN = 0,
ATA_LPM_MAX_POWER = 1,
ATA_LPM_MED_POWER = 2,
ATA_LPM_MED_POWER_WITH_DIPM = 3,
ATA_LPM_MIN_POWER_WITH_PARTIAL = 4,
ATA_LPM_MIN_POWER = 5,
};
enum sw_activity {
OFF = 0,
BLINK_ON = 1,
BLINK_OFF = 2,
};
struct ata_queued_cmd;
struct ata_port;
struct ata_device;
struct ata_taskfile;
struct ata_host;
struct ata_port_operations {
int (*qc_defer)(struct ata_queued_cmd *);
int (*check_atapi_dma)(struct ata_queued_cmd *);
enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *);
unsigned int (*qc_issue)(struct ata_queued_cmd *);
void (*qc_fill_rtf)(struct ata_queued_cmd *);
void (*qc_ncq_fill_rtf)(struct ata_port *, u64);
int (*cable_detect)(struct ata_port *);
unsigned int (*mode_filter)(struct ata_device *, unsigned int);
void (*set_piomode)(struct ata_port *, struct ata_device *);
void (*set_dmamode)(struct ata_port *, struct ata_device *);
int (*set_mode)(struct ata_link *, struct ata_device **);
unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *);
void (*dev_config)(struct ata_device *);
void (*freeze)(struct ata_port *);
void (*thaw)(struct ata_port *);
ata_prereset_fn_t prereset;
ata_reset_fn_t softreset;
ata_reset_fn_t hardreset;
ata_postreset_fn_t postreset;
ata_prereset_fn_t pmp_prereset;
ata_reset_fn_t pmp_softreset;
ata_reset_fn_t pmp_hardreset;
ata_postreset_fn_t pmp_postreset;
void (*error_handler)(struct ata_port *);
void (*lost_interrupt)(struct ata_port *);
void (*post_internal_cmd)(struct ata_queued_cmd *);
void (*sched_eh)(struct ata_port *);
void (*end_eh)(struct ata_port *);
int (*scr_read)(struct ata_link *, unsigned int, u32 *);
int (*scr_write)(struct ata_link *, unsigned int, u32);
void (*pmp_attach)(struct ata_port *);
void (*pmp_detach)(struct ata_port *);
int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int);
int (*port_suspend)(struct ata_port *, pm_message_t);
int (*port_resume)(struct ata_port *);
int (*port_start)(struct ata_port *);
void (*port_stop)(struct ata_port *);
void (*host_stop)(struct ata_host *);
void (*sff_dev_select)(struct ata_port *, unsigned int);
void (*sff_set_devctl)(struct ata_port *, u8);
u8 (*sff_check_status)(struct ata_port *);
u8 (*sff_check_altstatus)(struct ata_port *);
void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *);
void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *);
void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *);
unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int);
void (*sff_irq_on)(struct ata_port *);
bool (*sff_irq_check)(struct ata_port *);
void (*sff_irq_clear)(struct ata_port *);
void (*sff_drain_fifo)(struct ata_queued_cmd *);
void (*bmdma_setup)(struct ata_queued_cmd *);
void (*bmdma_start)(struct ata_queued_cmd *);
void (*bmdma_stop)(struct ata_queued_cmd *);
u8 (*bmdma_status)(struct ata_port *);
ssize_t (*em_show)(struct ata_port *, char *);
ssize_t (*em_store)(struct ata_port *, const char *, size_t);
ssize_t (*sw_activity_show)(struct ata_device *, char *);
ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity);
ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t);
const struct ata_port_operations *inherits;
};
struct ata_taskfile {
unsigned long flags;
u8 protocol;
u8 ctl;
u8 hob_feature;
u8 hob_nsect;
u8 hob_lbal;
u8 hob_lbam;
u8 hob_lbah;
union {
u8 error;
u8 feature;
};
u8 nsect;
u8 lbal;
u8 lbam;
u8 lbah;
u8 device;
union {
u8 status;
u8 command;
};
u32 auxiliary;
};
typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *);
struct ata_queued_cmd {
struct ata_port *ap;
struct ata_device *dev;
struct scsi_cmnd *scsicmd;
void (*scsidone)(struct scsi_cmnd *);
struct ata_taskfile tf;
u8 cdb[16];
unsigned long flags;
unsigned int tag;
unsigned int hw_tag;
unsigned int n_elem;
unsigned int orig_n_elem;
int dma_dir;
unsigned int sect_size;
unsigned int nbytes;
unsigned int extrabytes;
unsigned int curbytes;
struct scatterlist sgent;
struct scatterlist *sg;
struct scatterlist *cursg;
unsigned int cursg_ofs;
unsigned int err_mask;
struct ata_taskfile result_tf;
ata_qc_cb_t complete_fn;
void *private_data;
void *lldd_task;
};
struct ata_ioports {
void *cmd_addr;
void *data_addr;
void *error_addr;
void *feature_addr;
void *nsect_addr;
void *lbal_addr;
void *lbam_addr;
void *lbah_addr;
void *device_addr;
void *status_addr;
void *command_addr;
void *altstatus_addr;
void *ctl_addr;
void *bmdma_addr;
void *scr_addr;
};
struct ata_eh_info {
struct ata_device *dev;
u32 serror;
unsigned int err_mask;
unsigned int action;
unsigned int dev_action[2];
unsigned int flags;
unsigned int probe_mask;
char desc[80];
int desc_len;
};
struct ata_eh_context {
struct ata_eh_info i;
int tries[2];
int cmd_timeout_idx[16];
unsigned int classes[2];
unsigned int did_probe_mask;
unsigned int unloaded_mask;
unsigned int saved_ncq_enabled;
u8 saved_xfer_mode[2];
unsigned long last_reset;
};
struct ata_ering_entry {
unsigned int eflags;
unsigned int err_mask;
u64 timestamp;
};
struct ata_ering {
int cursor;
struct ata_ering_entry ring[32];
};
struct ata_cpr_log;
struct ata_device {
struct ata_link *link;
unsigned int devno;
unsigned int horkage;
unsigned long flags;
struct scsi_device *sdev;
void *private_data;
union acpi_object *gtf_cache;
unsigned int gtf_filter;
struct device tdev;
u64 n_sectors;
u64 n_native_sectors;
unsigned int class;
unsigned long unpark_deadline;
u8 pio_mode;
u8 dma_mode;
u8 xfer_mode;
unsigned int xfer_shift;
unsigned int multi_count;
unsigned int max_sectors;
unsigned int cdb_len;
unsigned int pio_mask;
unsigned int mwdma_mask;
unsigned int udma_mask;
u16 cylinders;
u16 heads;
u16 sectors;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
union {
u16 id[256];
u32 gscr[128];
};
u8 devslp_timing[8];
u8 ncq_send_recv_cmds[20];
u8 ncq_non_data_cmds[64];
u32 zac_zoned_cap;
u32 zac_zones_optimal_open;
u32 zac_zones_optimal_nonseq;
u32 zac_zones_max_open;
struct ata_cpr_log *cpr_log;
u8 cdl[512];
int spdn_cnt;
struct ata_ering ering;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct ata_link {
struct ata_port *ap;
int pmp;
struct device tdev;
unsigned int active_tag;
u32 sactive;
unsigned int flags;
u32 saved_scontrol;
unsigned int hw_sata_spd_limit;
unsigned int sata_spd_limit;
unsigned int sata_spd;
enum ata_lpm_policy lpm_policy;
struct ata_eh_info eh_info;
struct ata_eh_context eh_context;
long: 64;
long: 64;
long: 64;
long: 64;
struct ata_device device[2];
unsigned long last_lpm_change;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct ata_port_stats {
unsigned long unhandled_irq;
unsigned long idle_irq;
unsigned long rw_reqbuf;
};
typedef u64 async_cookie_t;
struct ata_acpi_drive {
u32 pio;
u32 dma;
};
struct ata_acpi_gtm {
struct ata_acpi_drive drive[2];
u32 flags;
};
struct ata_bmdma_prd;
struct ata_port {
struct Scsi_Host *scsi_host;
struct ata_port_operations *ops;
spinlock_t *lock;
unsigned long flags;
unsigned int pflags;
unsigned int print_id;
unsigned int local_port_no;
unsigned int port_no;
struct ata_ioports ioaddr;
u8 ctl;
u8 last_ctl;
struct ata_link *sff_pio_task_link;
struct delayed_work sff_pio_task;
struct ata_bmdma_prd *bmdma_prd;
dma_addr_t bmdma_prd_dma;
unsigned int pio_mask;
unsigned int mwdma_mask;
unsigned int udma_mask;
unsigned int cbl;
struct ata_queued_cmd qcmd[33];
u64 qc_active;
int nr_active_links;
struct ata_link link;
struct ata_link *slave_link;
int nr_pmp_links;
struct ata_link *pmp_link;
struct ata_link *excl_link;
struct ata_port_stats stats;
struct ata_host *host;
struct device *dev;
struct device tdev;
struct mutex scsi_scan_mutex;
struct delayed_work hotplug_task;
struct delayed_work scsi_rescan_task;
unsigned int hsm_task_state;
struct list_head eh_done_q;
wait_queue_head_t eh_wait_q;
int eh_tries;
struct completion park_req_pending;
pm_message_t pm_mesg;
enum ata_lpm_policy target_lpm_policy;
struct timer_list fastdrain_timer;
unsigned int fastdrain_cnt;
async_cookie_t cookie;
int em_message_type;
void *private_data;
struct ata_acpi_gtm __acpi_init_gtm;
u8 *ncq_sense_buf;
long: 64;
long: 64;
long: 64;
long: 64;
u8 sector_buf[512];
};
struct ata_cpr {
u8 num;
u8 num_storage_elements;
u64 start_lba;
u64 num_lbas;
};
struct ata_cpr_log {
u8 nr_cpr;
struct ata_cpr cpr[0];
};
struct ata_bmdma_prd {
__le32 addr;
__le32 flags_len;
};
struct ata_host {
spinlock_t lock;
struct device *dev;
void * const *iomap;
unsigned int n_ports;
unsigned int n_tags;
void *private_data;
struct ata_port_operations *ops;
unsigned long flags;
struct kref kref;
struct mutex eh_mutex;
struct task_struct *eh_owner;
struct ata_port *simplex_claimed;
struct ata_port *ports[0];
};
enum {
ATA_MAX_DEVICES = 2,
ATA_MAX_PRD = 256,
ATA_SECT_SIZE = 512,
ATA_MAX_SECTORS_128 = 128,
ATA_MAX_SECTORS = 256,
ATA_MAX_SECTORS_1024 = 1024,
ATA_MAX_SECTORS_LBA48 = 65535,
ATA_MAX_SECTORS_TAPE = 65535,
ATA_MAX_TRIM_RNUM = 64,
ATA_ID_WORDS = 256,
ATA_ID_CONFIG = 0,
ATA_ID_CYLS = 1,
ATA_ID_HEADS = 3,
ATA_ID_SECTORS = 6,
ATA_ID_SERNO = 10,
ATA_ID_BUF_SIZE = 21,
ATA_ID_FW_REV = 23,
ATA_ID_PROD = 27,
ATA_ID_MAX_MULTSECT = 47,
ATA_ID_DWORD_IO = 48,
ATA_ID_TRUSTED = 48,
ATA_ID_CAPABILITY = 49,
ATA_ID_OLD_PIO_MODES = 51,
ATA_ID_OLD_DMA_MODES = 52,
ATA_ID_FIELD_VALID = 53,
ATA_ID_CUR_CYLS = 54,
ATA_ID_CUR_HEADS = 55,
ATA_ID_CUR_SECTORS = 56,
ATA_ID_MULTSECT = 59,
ATA_ID_LBA_CAPACITY = 60,
ATA_ID_SWDMA_MODES = 62,
ATA_ID_MWDMA_MODES = 63,
ATA_ID_PIO_MODES = 64,
ATA_ID_EIDE_DMA_MIN = 65,
ATA_ID_EIDE_DMA_TIME = 66,
ATA_ID_EIDE_PIO = 67,
ATA_ID_EIDE_PIO_IORDY = 68,
ATA_ID_ADDITIONAL_SUPP = 69,
ATA_ID_QUEUE_DEPTH = 75,
ATA_ID_SATA_CAPABILITY = 76,
ATA_ID_SATA_CAPABILITY_2 = 77,
ATA_ID_FEATURE_SUPP = 78,
ATA_ID_MAJOR_VER = 80,
ATA_ID_COMMAND_SET_1 = 82,
ATA_ID_COMMAND_SET_2 = 83,
ATA_ID_CFSSE = 84,
ATA_ID_CFS_ENABLE_1 = 85,
ATA_ID_CFS_ENABLE_2 = 86,
ATA_ID_CSF_DEFAULT = 87,
ATA_ID_UDMA_MODES = 88,
ATA_ID_HW_CONFIG = 93,
ATA_ID_SPG = 98,
ATA_ID_LBA_CAPACITY_2 = 100,
ATA_ID_SECTOR_SIZE = 106,
ATA_ID_WWN = 108,
ATA_ID_LOGICAL_SECTOR_SIZE = 117,
ATA_ID_COMMAND_SET_3 = 119,
ATA_ID_COMMAND_SET_4 = 120,
ATA_ID_LAST_LUN = 126,
ATA_ID_DLF = 128,
ATA_ID_CSFO = 129,
ATA_ID_CFA_POWER = 160,
ATA_ID_CFA_KEY_MGMT = 162,
ATA_ID_CFA_MODES = 163,
ATA_ID_DATA_SET_MGMT = 169,
ATA_ID_SCT_CMD_XPORT = 206,
ATA_ID_ROT_SPEED = 217,
ATA_ID_PIO4 = 2,
ATA_ID_SERNO_LEN = 20,
ATA_ID_FW_REV_LEN = 8,
ATA_ID_PROD_LEN = 40,
ATA_ID_WWN_LEN = 8,
ATA_PCI_CTL_OFS = 2,
ATA_PIO0 = 1,
ATA_PIO1 = 3,
ATA_PIO2 = 7,
ATA_PIO3 = 15,
ATA_PIO4 = 31,
ATA_PIO5 = 63,
ATA_PIO6 = 127,
ATA_PIO4_ONLY = 16,
ATA_SWDMA0 = 1,
ATA_SWDMA1 = 3,
ATA_SWDMA2 = 7,
ATA_SWDMA2_ONLY = 4,
ATA_MWDMA0 = 1,
ATA_MWDMA1 = 3,
ATA_MWDMA2 = 7,
ATA_MWDMA3 = 15,
ATA_MWDMA4 = 31,
ATA_MWDMA12_ONLY = 6,
ATA_MWDMA2_ONLY = 4,
ATA_UDMA0 = 1,
ATA_UDMA1 = 3,
ATA_UDMA2 = 7,
ATA_UDMA3 = 15,
ATA_UDMA4 = 31,
ATA_UDMA5 = 63,
ATA_UDMA6 = 127,
ATA_UDMA7 = 255,
ATA_UDMA24_ONLY = 20,
ATA_UDMA_MASK_40C = 7,
ATA_PRD_SZ = 8,
ATA_PRD_TBL_SZ = 2048,
ATA_PRD_EOT = -2147483648,
ATA_DMA_TABLE_OFS = 4,
ATA_DMA_STATUS = 2,
ATA_DMA_CMD = 0,
ATA_DMA_WR = 8,
ATA_DMA_START = 1,
ATA_DMA_INTR = 4,
ATA_DMA_ERR = 2,
ATA_DMA_ACTIVE = 1,
ATA_HOB = 128,
ATA_NIEN = 2,
ATA_LBA = 64,
ATA_DEV1 = 16,
ATA_DEVICE_OBS = 160,
ATA_DEVCTL_OBS = 8,
ATA_BUSY = 128,
ATA_DRDY = 64,
ATA_DF = 32,
ATA_DSC = 16,
ATA_DRQ = 8,
ATA_CORR = 4,
ATA_SENSE = 2,
ATA_ERR = 1,
ATA_SRST = 4,
ATA_ICRC = 128,
ATA_BBK = 128,
ATA_UNC = 64,
ATA_MC = 32,
ATA_IDNF = 16,
ATA_MCR = 8,
ATA_ABORTED = 4,
ATA_TRK0NF = 2,
ATA_AMNF = 1,
ATAPI_LFS = 240,
ATAPI_EOM = 2,
ATAPI_ILI = 1,
ATAPI_IO = 2,
ATAPI_COD = 1,
ATA_REG_DATA = 0,
ATA_REG_ERR = 1,
ATA_REG_NSECT = 2,
ATA_REG_LBAL = 3,
ATA_REG_LBAM = 4,
ATA_REG_LBAH = 5,
ATA_REG_DEVICE = 6,
ATA_REG_STATUS = 7,
ATA_REG_FEATURE = 1,
ATA_REG_CMD = 7,
ATA_REG_BYTEL = 4,
ATA_REG_BYTEH = 5,
ATA_REG_DEVSEL = 6,
ATA_REG_IRQ = 2,
ATA_CMD_DEV_RESET = 8,
ATA_CMD_CHK_POWER = 229,
ATA_CMD_STANDBY = 226,
ATA_CMD_IDLE = 227,
ATA_CMD_EDD = 144,
ATA_CMD_DOWNLOAD_MICRO = 146,
ATA_CMD_DOWNLOAD_MICRO_DMA = 147,
ATA_CMD_NOP = 0,
ATA_CMD_FLUSH = 231,
ATA_CMD_FLUSH_EXT = 234,
ATA_CMD_ID_ATA = 236,
ATA_CMD_ID_ATAPI = 161,
ATA_CMD_SERVICE = 162,
ATA_CMD_READ = 200,
ATA_CMD_READ_EXT = 37,
ATA_CMD_READ_QUEUED = 38,
ATA_CMD_READ_STREAM_EXT = 43,
ATA_CMD_READ_STREAM_DMA_EXT = 42,
ATA_CMD_WRITE = 202,
ATA_CMD_WRITE_EXT = 53,
ATA_CMD_WRITE_QUEUED = 54,
ATA_CMD_WRITE_STREAM_EXT = 59,
ATA_CMD_WRITE_STREAM_DMA_EXT = 58,
ATA_CMD_WRITE_FUA_EXT = 61,
ATA_CMD_WRITE_QUEUED_FUA_EXT = 62,
ATA_CMD_FPDMA_READ = 96,
ATA_CMD_FPDMA_WRITE = 97,
ATA_CMD_NCQ_NON_DATA = 99,
ATA_CMD_FPDMA_SEND = 100,
ATA_CMD_FPDMA_RECV = 101,
ATA_CMD_PIO_READ = 32,
ATA_CMD_PIO_READ_EXT = 36,
ATA_CMD_PIO_WRITE = 48,
ATA_CMD_PIO_WRITE_EXT = 52,
ATA_CMD_READ_MULTI = 196,
ATA_CMD_READ_MULTI_EXT = 41,
ATA_CMD_WRITE_MULTI = 197,
ATA_CMD_WRITE_MULTI_EXT = 57,
ATA_CMD_WRITE_MULTI_FUA_EXT = 206,
ATA_CMD_SET_FEATURES = 239,
ATA_CMD_SET_MULTI = 198,
ATA_CMD_PACKET = 160,
ATA_CMD_VERIFY = 64,
ATA_CMD_VERIFY_EXT = 66,
ATA_CMD_WRITE_UNCORR_EXT = 69,
ATA_CMD_STANDBYNOW1 = 224,
ATA_CMD_IDLEIMMEDIATE = 225,
ATA_CMD_SLEEP = 230,
ATA_CMD_INIT_DEV_PARAMS = 145,
ATA_CMD_READ_NATIVE_MAX = 248,
ATA_CMD_READ_NATIVE_MAX_EXT = 39,
ATA_CMD_SET_MAX = 249,
ATA_CMD_SET_MAX_EXT = 55,
ATA_CMD_READ_LOG_EXT = 47,
ATA_CMD_WRITE_LOG_EXT = 63,
ATA_CMD_READ_LOG_DMA_EXT = 71,
ATA_CMD_WRITE_LOG_DMA_EXT = 87,
ATA_CMD_TRUSTED_NONDATA = 91,
ATA_CMD_TRUSTED_RCV = 92,
ATA_CMD_TRUSTED_RCV_DMA = 93,
ATA_CMD_TRUSTED_SND = 94,
ATA_CMD_TRUSTED_SND_DMA = 95,
ATA_CMD_PMP_READ = 228,
ATA_CMD_PMP_READ_DMA = 233,
ATA_CMD_PMP_WRITE = 232,
ATA_CMD_PMP_WRITE_DMA = 235,
ATA_CMD_CONF_OVERLAY = 177,
ATA_CMD_SEC_SET_PASS = 241,
ATA_CMD_SEC_UNLOCK = 242,
ATA_CMD_SEC_ERASE_PREP = 243,
ATA_CMD_SEC_ERASE_UNIT = 244,
ATA_CMD_SEC_FREEZE_LOCK = 245,
ATA_CMD_SEC_DISABLE_PASS = 246,
ATA_CMD_CONFIG_STREAM = 81,
ATA_CMD_SMART = 176,
ATA_CMD_MEDIA_LOCK = 222,
ATA_CMD_MEDIA_UNLOCK = 223,
ATA_CMD_DSM = 6,
ATA_CMD_CHK_MED_CRD_TYP = 209,
ATA_CMD_CFA_REQ_EXT_ERR = 3,
ATA_CMD_CFA_WRITE_NE = 56,
ATA_CMD_CFA_TRANS_SECT = 135,
ATA_CMD_CFA_ERASE = 192,
ATA_CMD_CFA_WRITE_MULT_NE = 205,
ATA_CMD_REQ_SENSE_DATA = 11,
ATA_CMD_SANITIZE_DEVICE = 180,
ATA_CMD_ZAC_MGMT_IN = 74,
ATA_CMD_ZAC_MGMT_OUT = 159,
ATA_CMD_RESTORE = 16,
ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1,
ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2,
ATA_SUBCMD_FPDMA_SEND_DSM = 0,
ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2,
ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0,
ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5,
ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6,
ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7,
ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0,
ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1,
ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2,
ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3,
ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4,
ATA_LOG_DIRECTORY = 0,
ATA_LOG_SATA_NCQ = 16,
ATA_LOG_NCQ_NON_DATA = 18,
ATA_LOG_NCQ_SEND_RECV = 19,
ATA_LOG_CDL = 24,
ATA_LOG_CDL_SIZE = 512,
ATA_LOG_IDENTIFY_DEVICE = 48,
ATA_LOG_SENSE_NCQ = 15,
ATA_LOG_SENSE_NCQ_SIZE = 1024,
ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71,
ATA_LOG_SUPPORTED_CAPABILITIES = 3,
ATA_LOG_CURRENT_SETTINGS = 4,
ATA_LOG_SECURITY = 6,
ATA_LOG_SATA_SETTINGS = 8,
ATA_LOG_ZONED_INFORMATION = 9,
ATA_LOG_DEVSLP_OFFSET = 48,
ATA_LOG_DEVSLP_SIZE = 8,
ATA_LOG_DEVSLP_MDAT = 0,
ATA_LOG_DEVSLP_MDAT_MASK = 31,
ATA_LOG_DEVSLP_DETO = 1,
ATA_LOG_DEVSLP_VALID = 7,
ATA_LOG_DEVSLP_VALID_MASK = 128,
ATA_LOG_NCQ_PRIO_OFFSET = 9,
ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0,
ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1,
ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4,
ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1,
ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8,
ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1,
ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12,
ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1,
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16,
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1,
ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2,
ATA_LOG_NCQ_SEND_RECV_SIZE = 20,
ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0,
ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0,
ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1,
ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2,
ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4,
ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8,
ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16,
ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28,
ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1,
ATA_LOG_NCQ_NON_DATA_SIZE = 64,
ATA_CMD_READ_LONG = 34,
ATA_CMD_READ_LONG_ONCE = 35,
ATA_CMD_WRITE_LONG = 50,
ATA_CMD_WRITE_LONG_ONCE = 51,
SETFEATURES_XFER = 3,
XFER_UDMA_7 = 71,
XFER_UDMA_6 = 70,
XFER_UDMA_5 = 69,
XFER_UDMA_4 = 68,
XFER_UDMA_3 = 67,
XFER_UDMA_2 = 66,
XFER_UDMA_1 = 65,
XFER_UDMA_0 = 64,
XFER_MW_DMA_4 = 36,
XFER_MW_DMA_3 = 35,
XFER_MW_DMA_2 = 34,
XFER_MW_DMA_1 = 33,
XFER_MW_DMA_0 = 32,
XFER_SW_DMA_2 = 18,
XFER_SW_DMA_1 = 17,
XFER_SW_DMA_0 = 16,
XFER_PIO_6 = 14,
XFER_PIO_5 = 13,
XFER_PIO_4 = 12,
XFER_PIO_3 = 11,
XFER_PIO_2 = 10,
XFER_PIO_1 = 9,
XFER_PIO_0 = 8,
XFER_PIO_SLOW = 0,
SETFEATURES_WC_ON = 2,
SETFEATURES_WC_OFF = 130,
SETFEATURES_RA_ON = 170,
SETFEATURES_RA_OFF = 85,
SETFEATURES_AAM_ON = 66,
SETFEATURES_AAM_OFF = 194,
SETFEATURES_SPINUP = 7,
SETFEATURES_SPINUP_TIMEOUT = 30000,
SETFEATURES_SATA_ENABLE = 16,
SETFEATURES_SATA_DISABLE = 144,
SETFEATURES_CDL = 13,
SATA_FPDMA_OFFSET = 1,
SATA_FPDMA_AA = 2,
SATA_DIPM = 3,
SATA_FPDMA_IN_ORDER = 4,
SATA_AN = 5,
SATA_SSP = 6,
SATA_DEVSLP = 9,
SETFEATURE_SENSE_DATA = 195,
SETFEATURE_SENSE_DATA_SUCC_NCQ = 196,
ATA_SET_MAX_ADDR = 0,
ATA_SET_MAX_PASSWD = 1,
ATA_SET_MAX_LOCK = 2,
ATA_SET_MAX_UNLOCK = 3,
ATA_SET_MAX_FREEZE_LOCK = 4,
ATA_SET_MAX_PASSWD_DMA = 5,
ATA_SET_MAX_UNLOCK_DMA = 6,
ATA_DCO_RESTORE = 192,
ATA_DCO_FREEZE_LOCK = 193,
ATA_DCO_IDENTIFY = 194,
ATA_DCO_SET = 195,
ATA_SMART_ENABLE = 216,
ATA_SMART_READ_VALUES = 208,
ATA_SMART_READ_THRESHOLDS = 209,
ATA_DSM_TRIM = 1,
ATA_SMART_LBAM_PASS = 79,
ATA_SMART_LBAH_PASS = 194,
ATAPI_PKT_DMA = 1,
ATAPI_DMADIR = 4,
ATAPI_CDB_LEN = 16,
SATA_PMP_MAX_PORTS = 15,
SATA_PMP_CTRL_PORT = 15,
SATA_PMP_GSCR_DWORDS = 128,
SATA_PMP_GSCR_PROD_ID = 0,
SATA_PMP_GSCR_REV = 1,
SATA_PMP_GSCR_PORT_INFO = 2,
SATA_PMP_GSCR_ERROR = 32,
SATA_PMP_GSCR_ERROR_EN = 33,
SATA_PMP_GSCR_FEAT = 64,
SATA_PMP_GSCR_FEAT_EN = 96,
SATA_PMP_PSCR_STATUS = 0,
SATA_PMP_PSCR_ERROR = 1,
SATA_PMP_PSCR_CONTROL = 2,
SATA_PMP_FEAT_BIST = 1,
SATA_PMP_FEAT_PMREQ = 2,
SATA_PMP_FEAT_DYNSSC = 4,
SATA_PMP_FEAT_NOTIFY = 8,
ATA_CBL_NONE = 0,
ATA_CBL_PATA40 = 1,
ATA_CBL_PATA80 = 2,
ATA_CBL_PATA40_SHORT = 3,
ATA_CBL_PATA_UNK = 4,
ATA_CBL_PATA_IGN = 5,
ATA_CBL_SATA = 6,
SCR_STATUS = 0,
SCR_ERROR = 1,
SCR_CONTROL = 2,
SCR_ACTIVE = 3,
SCR_NOTIFICATION = 4,
SERR_DATA_RECOVERED = 1,
SERR_COMM_RECOVERED = 2,
SERR_DATA = 256,
SERR_PERSISTENT = 512,
SERR_PROTOCOL = 1024,
SERR_INTERNAL = 2048,
SERR_PHYRDY_CHG = 65536,
SERR_PHY_INT_ERR = 131072,
SERR_COMM_WAKE = 262144,
SERR_10B_8B_ERR = 524288,
SERR_DISPARITY = 1048576,
SERR_CRC = 2097152,
SERR_HANDSHAKE = 4194304,
SERR_LINK_SEQ_ERR = 8388608,
SERR_TRANS_ST_ERROR = 16777216,
SERR_UNRECOG_FIS = 33554432,
SERR_DEV_XCHG = 67108864,
};
enum {
LIBATA_MAX_PRD = 128,
LIBATA_DUMB_MAX_PRD = 64,
ATA_DEF_QUEUE = 1,
ATA_MAX_QUEUE = 32,
ATA_TAG_INTERNAL = 32,
ATA_SHORT_PAUSE = 16,
ATAPI_MAX_DRAIN = 16384,
ATA_ALL_DEVICES = 3,
ATA_SHT_EMULATED = 1,
ATA_SHT_THIS_ID = -1,
ATA_TFLAG_LBA48 = 1,
ATA_TFLAG_ISADDR = 2,
ATA_TFLAG_DEVICE = 4,
ATA_TFLAG_WRITE = 8,
ATA_TFLAG_LBA = 16,
ATA_TFLAG_FUA = 32,
ATA_TFLAG_POLLING = 64,
ATA_DFLAG_LBA = 1,
ATA_DFLAG_LBA48 = 2,
ATA_DFLAG_CDB_INTR = 4,
ATA_DFLAG_NCQ = 8,
ATA_DFLAG_FLUSH_EXT = 16,
ATA_DFLAG_ACPI_PENDING = 32,
ATA_DFLAG_ACPI_FAILED = 64,
ATA_DFLAG_AN = 128,
ATA_DFLAG_TRUSTED = 256,
ATA_DFLAG_FUA = 512,
ATA_DFLAG_DMADIR = 1024,
ATA_DFLAG_NCQ_SEND_RECV = 2048,
ATA_DFLAG_NCQ_PRIO = 4096,
ATA_DFLAG_CDL = 8192,
ATA_DFLAG_CFG_MASK = 16383,
ATA_DFLAG_PIO = 16384,
ATA_DFLAG_NCQ_OFF = 32768,
ATA_DFLAG_SLEEPING = 65536,
ATA_DFLAG_DUBIOUS_XFER = 131072,
ATA_DFLAG_NO_UNLOAD = 262144,
ATA_DFLAG_UNLOCK_HPA = 524288,
ATA_DFLAG_INIT_MASK = 1048575,
ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576,
ATA_DFLAG_CDL_ENABLED = 2097152,
ATA_DFLAG_DETACH = 16777216,
ATA_DFLAG_DETACHED = 33554432,
ATA_DFLAG_DA = 67108864,
ATA_DFLAG_DEVSLP = 134217728,
ATA_DFLAG_ACPI_DISABLED = 268435456,
ATA_DFLAG_D_SENSE = 536870912,
ATA_DFLAG_ZAC = 1073741824,
ATA_DFLAG_FEATURES_MASK = 201341696,
ATA_DEV_UNKNOWN = 0,
ATA_DEV_ATA = 1,
ATA_DEV_ATA_UNSUP = 2,
ATA_DEV_ATAPI = 3,
ATA_DEV_ATAPI_UNSUP = 4,
ATA_DEV_PMP = 5,
ATA_DEV_PMP_UNSUP = 6,
ATA_DEV_SEMB = 7,
ATA_DEV_SEMB_UNSUP = 8,
ATA_DEV_ZAC = 9,
ATA_DEV_ZAC_UNSUP = 10,
ATA_DEV_NONE = 11,
ATA_LFLAG_NO_HRST = 2,
ATA_LFLAG_NO_SRST = 4,
ATA_LFLAG_ASSUME_ATA = 8,
ATA_LFLAG_ASSUME_SEMB = 16,
ATA_LFLAG_ASSUME_CLASS = 24,
ATA_LFLAG_NO_RETRY = 32,
ATA_LFLAG_DISABLED = 64,
ATA_LFLAG_SW_ACTIVITY = 128,
ATA_LFLAG_NO_LPM = 256,
ATA_LFLAG_RST_ONCE = 512,
ATA_LFLAG_CHANGED = 1024,
ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048,
ATA_FLAG_SLAVE_POSS = 1,
ATA_FLAG_SATA = 2,
ATA_FLAG_NO_LPM = 4,
ATA_FLAG_NO_LOG_PAGE = 32,
ATA_FLAG_NO_ATAPI = 64,
ATA_FLAG_PIO_DMA = 128,
ATA_FLAG_PIO_LBA48 = 256,
ATA_FLAG_PIO_POLLING = 512,
ATA_FLAG_NCQ = 1024,
ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048,
ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096,
ATA_FLAG_DEBUGMSG = 8192,
ATA_FLAG_FPDMA_AA = 16384,
ATA_FLAG_IGN_SIMPLEX = 32768,
ATA_FLAG_NO_IORDY = 65536,
ATA_FLAG_ACPI_SATA = 131072,
ATA_FLAG_AN = 262144,
ATA_FLAG_PMP = 524288,
ATA_FLAG_FPDMA_AUX = 1048576,
ATA_FLAG_EM = 2097152,
ATA_FLAG_SW_ACTIVITY = 4194304,
ATA_FLAG_NO_DIPM = 8388608,
ATA_FLAG_SAS_HOST = 16777216,
ATA_PFLAG_EH_PENDING = 1,
ATA_PFLAG_EH_IN_PROGRESS = 2,
ATA_PFLAG_FROZEN = 4,
ATA_PFLAG_RECOVERED = 8,
ATA_PFLAG_LOADING = 16,
ATA_PFLAG_SCSI_HOTPLUG = 64,
ATA_PFLAG_INITIALIZING = 128,
ATA_PFLAG_RESETTING = 256,
ATA_PFLAG_UNLOADING = 512,
ATA_PFLAG_UNLOADED = 1024,
ATA_PFLAG_RESUMING = 65536,
ATA_PFLAG_SUSPENDED = 131072,
ATA_PFLAG_PM_PENDING = 262144,
ATA_PFLAG_INIT_GTM_VALID = 524288,
ATA_PFLAG_PIO32 = 1048576,
ATA_PFLAG_PIO32CHANGE = 2097152,
ATA_PFLAG_EXTERNAL = 4194304,
ATA_QCFLAG_ACTIVE = 1,
ATA_QCFLAG_DMAMAP = 2,
ATA_QCFLAG_RTF_FILLED = 4,
ATA_QCFLAG_IO = 8,
ATA_QCFLAG_RESULT_TF = 16,
ATA_QCFLAG_CLEAR_EXCL = 32,
ATA_QCFLAG_QUIET = 64,
ATA_QCFLAG_RETRY = 128,
ATA_QCFLAG_HAS_CDL = 256,
ATA_QCFLAG_EH = 65536,
ATA_QCFLAG_SENSE_VALID = 131072,
ATA_QCFLAG_EH_SCHEDULED = 262144,
ATA_QCFLAG_EH_SUCCESS_CMD = 524288,
ATA_HOST_SIMPLEX = 1,
ATA_HOST_STARTED = 2,
ATA_HOST_PARALLEL_SCAN = 4,
ATA_HOST_IGNORE_ATA = 8,
ATA_HOST_NO_PART = 16,
ATA_HOST_NO_SSC = 32,
ATA_HOST_NO_DEVSLP = 64,
ATA_TMOUT_BOOT = 30000,
ATA_TMOUT_BOOT_QUICK = 7000,
ATA_TMOUT_INTERNAL_QUICK = 5000,
ATA_TMOUT_MAX_PARK = 30000,
ATA_TMOUT_FF_WAIT_LONG = 2000,
ATA_TMOUT_FF_WAIT = 800,
ATA_WAIT_AFTER_RESET = 150,
ATA_TMOUT_PMP_SRST_WAIT = 10000,
ATA_TMOUT_SPURIOUS_PHY = 10000,
BUS_UNKNOWN = 0,
BUS_DMA = 1,
BUS_IDLE = 2,
BUS_NOINTR = 3,
BUS_NODATA = 4,
BUS_TIMER = 5,
BUS_PIO = 6,
BUS_EDD = 7,
BUS_IDENTIFY = 8,
BUS_PACKET = 9,
PORT_UNKNOWN = 0,
PORT_ENABLED = 1,
PORT_DISABLED = 2,
ATA_NR_PIO_MODES = 7,
ATA_NR_MWDMA_MODES = 5,
ATA_NR_UDMA_MODES = 8,
ATA_SHIFT_PIO = 0,
ATA_SHIFT_MWDMA = 7,
ATA_SHIFT_UDMA = 12,
ATA_SHIFT_PRIO = 6,
ATA_PRIO_HIGH = 2,
ATA_DMA_PAD_SZ = 4,
ATA_ERING_SIZE = 32,
ATA_DEFER_LINK = 1,
ATA_DEFER_PORT = 2,
ATA_EH_DESC_LEN = 80,
ATA_EH_REVALIDATE = 1,
ATA_EH_SOFTRESET = 2,
ATA_EH_HARDRESET = 4,
ATA_EH_RESET = 6,
ATA_EH_ENABLE_LINK = 8,
ATA_EH_PARK = 32,
ATA_EH_GET_SUCCESS_SENSE = 64,
ATA_EH_SET_ACTIVE = 128,
ATA_EH_PERDEV_MASK = 225,
ATA_EH_ALL_ACTIONS = 15,
ATA_EHI_HOTPLUGGED = 1,
ATA_EHI_NO_AUTOPSY = 4,
ATA_EHI_QUIET = 8,
ATA_EHI_NO_RECOVERY = 16,
ATA_EHI_DID_SOFTRESET = 65536,
ATA_EHI_DID_HARDRESET = 131072,
ATA_EHI_PRINTINFO = 262144,
ATA_EHI_SETMODE = 524288,
ATA_EHI_POST_SETMODE = 1048576,
ATA_EHI_DID_RESET = 196608,
ATA_EHI_TO_SLAVE_MASK = 12,
ATA_EH_MAX_TRIES = 5,
ATA_LINK_RESUME_TRIES = 5,
ATA_EH_DEV_TRIES = 3,
ATA_EH_PMP_TRIES = 5,
ATA_EH_PMP_LINK_TRIES = 3,
SATA_PMP_RW_TIMEOUT = 3000,
ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8,
ATA_HORKAGE_DIAGNOSTIC = 1,
ATA_HORKAGE_NODMA = 2,
ATA_HORKAGE_NONCQ = 4,
ATA_HORKAGE_MAX_SEC_128 = 8,
ATA_HORKAGE_BROKEN_HPA = 16,
ATA_HORKAGE_DISABLE = 32,
ATA_HORKAGE_HPA_SIZE = 64,
ATA_HORKAGE_IVB = 256,
ATA_HORKAGE_STUCK_ERR = 512,
ATA_HORKAGE_BRIDGE_OK = 1024,
ATA_HORKAGE_ATAPI_MOD16_DMA = 2048,
ATA_HORKAGE_FIRMWARE_WARN = 4096,
ATA_HORKAGE_1_5_GBPS = 8192,
ATA_HORKAGE_NOSETXFER = 16384,
ATA_HORKAGE_BROKEN_FPDMA_AA = 32768,
ATA_HORKAGE_DUMP_ID = 65536,
ATA_HORKAGE_MAX_SEC_LBA48 = 131072,
ATA_HORKAGE_ATAPI_DMADIR = 262144,
ATA_HORKAGE_NO_NCQ_TRIM = 524288,
ATA_HORKAGE_NOLPM = 1048576,
ATA_HORKAGE_WD_BROKEN_LPM = 2097152,
ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304,
ATA_HORKAGE_NO_DMA_LOG = 8388608,
ATA_HORKAGE_NOTRIM = 16777216,
ATA_HORKAGE_MAX_SEC_1024 = 33554432,
ATA_HORKAGE_MAX_TRIM_128M = 67108864,
ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728,
ATA_HORKAGE_NO_ID_DEV_LOG = 268435456,
ATA_HORKAGE_NO_LOG_DIR = 536870912,
ATA_HORKAGE_NO_FUA = 1073741824,
ATA_DMA_MASK_ATA = 1,
ATA_DMA_MASK_ATAPI = 2,
ATA_DMA_MASK_CFA = 4,
ATAPI_READ = 0,
ATAPI_WRITE = 1,
ATAPI_READ_CD = 2,
ATAPI_PASS_THRU = 3,
ATAPI_MISC = 4,
ATA_TIMING_SETUP = 1,
ATA_TIMING_ACT8B = 2,
ATA_TIMING_REC8B = 4,
ATA_TIMING_CYC8B = 8,
ATA_TIMING_8BIT = 14,
ATA_TIMING_ACTIVE = 16,
ATA_TIMING_RECOVER = 32,
ATA_TIMING_DMACK_HOLD = 64,
ATA_TIMING_CYCLE = 128,
ATA_TIMING_UDMA = 256,
ATA_TIMING_ALL = 511,
ATA_ACPI_FILTER_SETXFER = 1,
ATA_ACPI_FILTER_LOCK = 2,
ATA_ACPI_FILTER_DIPM = 4,
ATA_ACPI_FILTER_FPDMA_OFFSET = 8,
ATA_ACPI_FILTER_FPDMA_AA = 16,
ATA_ACPI_FILTER_DEFAULT = 7,
};
enum hsm_task_states {
HSM_ST_IDLE = 0,
HSM_ST_FIRST = 1,
HSM_ST = 2,
HSM_ST_LAST = 3,
HSM_ST_ERR = 4,
};
enum ata_prot_flags {
ATA_PROT_FLAG_PIO = 1,
ATA_PROT_FLAG_DMA = 2,
ATA_PROT_FLAG_NCQ = 4,
ATA_PROT_FLAG_ATAPI = 8,
ATA_PROT_UNKNOWN = 255,
ATA_PROT_NODATA = 0,
ATA_PROT_PIO = 1,
ATA_PROT_DMA = 2,
ATA_PROT_NCQ_NODATA = 4,
ATA_PROT_NCQ = 6,
ATAPI_PROT_NODATA = 8,
ATAPI_PROT_PIO = 9,
ATAPI_PROT_DMA = 10,
};
enum wq_consts {
WQ_MAX_ACTIVE = 512,
WQ_UNBOUND_MAX_ACTIVE = 512,
WQ_DFL_ACTIVE = 256,
WQ_DFL_MIN_ACTIVE = 8,
};
struct ata_port_info {
unsigned long flags;
unsigned long link_flags;
unsigned int pio_mask;
unsigned int mwdma_mask;
unsigned int udma_mask;
struct ata_port_operations *port_ops;
void *private_data;
};
struct iwl_fw_error_dump_trigger_desc {
__le32 type;
u8 data[0];
};
struct iwl_fw_dump_desc {
size_t len;
struct iwl_fw_error_dump_trigger_desc trig_desc;
};
struct iwl_fw_runtime;
struct iwl_dump_ini_region_data;
struct iwl_dump_ini_mem_ops {
u32 (*get_num_of_ranges)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *);
u32 (*get_size)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *);
void * (*fill_mem_hdr)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32);
int (*fill_range)(struct iwl_fw_runtime *, struct iwl_dump_ini_region_data *, void *, u32, int);
};
struct iwl_fw_ini_trigger_tlv;
struct iwl_fwrt_dump_data {
union {
struct {
struct iwl_fw_ini_trigger_tlv *trig;
struct iwl_rx_packet *fw_pkt;
};
struct {
const struct iwl_fw_dump_desc *desc;
bool monitor_only;
};
};
};
struct iwl_fwrt_wk_data {
u8 idx;
struct delayed_work wk;
struct iwl_fwrt_dump_data dump_data;
};
struct iwl_txf_iter_data {
int fifo;
int lmac;
u32 fifo_size;
u8 internal_txf;
};
struct iwl_fw_paging {
dma_addr_t fw_paging_phys;
struct page *fw_paging_block;
u32 fw_paging_size;
u32 fw_offs;
};
struct iwl_fwrt_shared_mem_cfg {
int num_lmacs;
int num_txfifo_entries;
struct {
u32 txfifo_size[15];
u32 rxfifo1_size;
} lmac[2];
u32 rxfifo2_size;
u32 rxfifo2_control_size;
u32 internal_txfifo_addr;
u32 internal_txfifo_size[6];
};
struct iwl_sar_profile_chain {
u8 subbands[11];
};
struct iwl_sar_profile {
bool enabled;
struct iwl_sar_profile_chain chains[4];
};
struct iwl_geo_profile_band {
u8 max;
u8 chains[2];
};
struct iwl_geo_profile {
struct iwl_geo_profile_band bands[3];
};
struct iwl_ppag_chain {
s8 subbands[11];
};
struct iwl_sar_offset_mapping_cmd {
u8 offset_map[338];
__le16 reserved;
};
struct iwl_uats_table_cmd {
u8 offset_map[338];
__le16 reserved;
};
struct iwl_fw_runtime_ops;
struct iwl_fw_runtime {
struct iwl_trans *trans;
const struct iwl_fw *fw;
struct device *dev;
const struct iwl_fw_runtime_ops *ops;
void *ops_ctx;
const struct iwl_dump_sanitize_ops *sanitize_ops;
void *sanitize_ctx;
struct iwl_fw_paging fw_paging_db[33];
u16 num_of_paging_blk;
u16 num_of_pages_in_last_blk;
enum iwl_ucode_type cur_fw_img;
struct iwl_fwrt_shared_mem_cfg smem_cfg;
long: 0;
struct {
struct iwl_fwrt_wk_data wks[5];
unsigned long active_wks;
u8 conf;
unsigned long non_collect_ts_start[27];
u32 *d3_debug_data;
u32 lmac_err_id[2];
u32 tcm_err_id[2];
u32 rcm_err_id[2];
u32 umac_err_id;
struct iwl_txf_iter_data txf_iter_data;
struct {
u8 type;
u8 subtype;
u32 lmac_major;
u32 lmac_minor;
u32 umac_major;
u32 umac_minor;
} fw_ver;
} dump;
struct {
u64 seq;
} timestamp;
struct iwl_sar_profile sar_profiles[4];
u8 sar_chain_a_profile;
u8 sar_chain_b_profile;
u8 reduced_power_flags;
struct iwl_geo_profile geo_profiles[8];
long: 0;
u32 geo_rev;
u32 geo_num_profiles;
bool geo_enabled;
struct iwl_ppag_chain ppag_chains[2];
long: 0;
u32 ppag_flags;
u8 ppag_ver;
struct iwl_sar_offset_mapping_cmd sgom_table;
bool sgom_enabled;
struct iwl_uats_table_cmd uats_table;
u8 uefi_tables_lock_status;
bool uats_enabled;
} __attribute__((packed));
struct iwl_fw_runtime_ops {
void (*dump_start)(void *);
void (*dump_end)(void *);
bool (*fw_running)(void *);
int (*send_hcmd)(void *, struct iwl_host_cmd *);
bool (*d3_debug_enable)(void *);
};
struct iwl_fw_ini_trigger_tlv {
struct iwl_fw_ini_header hdr;
__le32 time_point;
__le32 trigger_reason;
__le32 apply_policy;
__le32 dump_delay;
__le32 occurrences;
__le32 reserved;
__le32 ignore_consec;
__le32 reset_fw;
__le32 multi_dut;
__le64 regions_mask;
__le32 data[0];
} __attribute__((packed));
struct iwl_dump_ini_region_data {
struct iwl_ucode_tlv *reg_tlv;
struct iwl_fwrt_dump_data *dump_data;
};
struct iwl_prph_range {
u32 start;
u32 end;
};
enum iwl_fw_dbg_trigger {
FW_DBG_TRIGGER_INVALID = 0,
FW_DBG_TRIGGER_USER = 1,
FW_DBG_TRIGGER_FW_ASSERT = 2,
FW_DBG_TRIGGER_MISSED_BEACONS = 3,
FW_DBG_TRIGGER_CHANNEL_SWITCH = 4,
FW_DBG_TRIGGER_FW_NOTIF = 5,
FW_DBG_TRIGGER_MLME = 6,
FW_DBG_TRIGGER_STATS = 7,
FW_DBG_TRIGGER_RSSI = 8,
FW_DBG_TRIGGER_TXQ_TIMERS = 9,
FW_DBG_TRIGGER_TIME_EVENT = 10,
FW_DBG_TRIGGER_BA = 11,
FW_DBG_TRIGGER_TX_LATENCY = 12,
FW_DBG_TRIGGER_TDLS = 13,
FW_DBG_TRIGGER_TX_STATUS = 14,
FW_DBG_TRIGGER_ALIVE_TIMEOUT = 15,
FW_DBG_TRIGGER_DRIVER = 16,
FW_DBG_TRIGGER_MAX = 17,
};
enum iwl_trans_status {
STATUS_SYNC_HCMD_ACTIVE = 0,
STATUS_DEVICE_ENABLED = 1,
STATUS_TPOWER_PMI = 2,
STATUS_INT_ENABLED = 3,
STATUS_RFKILL_HW = 4,
STATUS_RFKILL_OPMODE = 5,
STATUS_FW_ERROR = 6,
STATUS_TRANS_GOING_IDLE = 7,
STATUS_TRANS_IDLE = 8,
STATUS_TRANS_DEAD = 9,
STATUS_SUPPRESS_CMD_ERROR_ONCE = 10,
};
enum iwl_fw_dbg_trigger_flags {
IWL_FW_DBG_FORCE_RESTART = 1,
};
enum iwl_fw_dbg_trigger_mode {
IWL_FW_DBG_TRIGGER_START = 1,
IWL_FW_DBG_TRIGGER_STOP = 2,
IWL_FW_DBG_TRIGGER_MONITOR_ONLY = 4,
};
enum iwl_mvm_command_groups {
LEGACY_GROUP = 0,
LONG_GROUP = 1,
SYSTEM_GROUP = 2,
MAC_CONF_GROUP = 3,
PHY_OPS_GROUP = 4,
DATA_PATH_GROUP = 5,
SCAN_GROUP = 6,
NAN_GROUP = 7,
LOCATION_GROUP = 8,
PROT_OFFLOAD_GROUP = 11,
REGULATORY_AND_NVM_GROUP = 12,
DEBUG_GROUP = 15,
STATISTICS_GROUP = 16,
};
enum iwl_debug_cmds {
LMAC_RD_WR = 0,
UMAC_RD_WR = 1,
HOST_EVENT_CFG = 3,
INVALID_WR_PTR_CMD = 6,
DBGC_SUSPEND_RESUME = 7,
BUFFER_ALLOCATION = 8,
GET_TAS_STATUS = 10,
FW_DUMP_COMPLETE_CMD = 11,
FW_CLEAR_BUFFER = 13,
MFU_ASSERT_DUMP_NTF = 254,
};
enum iwl_ucode_tlv_capa {
IWL_UCODE_TLV_CAPA_D0I3_SUPPORT = 0,
IWL_UCODE_TLV_CAPA_LAR_SUPPORT = 1,
IWL_UCODE_TLV_CAPA_UMAC_SCAN = 2,
IWL_UCODE_TLV_CAPA_BEAMFORMER = 3,
IWL_UCODE_TLV_CAPA_TDLS_SUPPORT = 6,
IWL_UCODE_TLV_CAPA_TXPOWER_INSERTION_SUPPORT = 8,
IWL_UCODE_TLV_CAPA_DS_PARAM_SET_IE_SUPPORT = 9,
IWL_UCODE_TLV_CAPA_WFA_TPC_REP_IE_SUPPORT = 10,
IWL_UCODE_TLV_CAPA_QUIET_PERIOD_SUPPORT = 11,
IWL_UCODE_TLV_CAPA_DQA_SUPPORT = 12,
IWL_UCODE_TLV_CAPA_TDLS_CHANNEL_SWITCH = 13,
IWL_UCODE_TLV_CAPA_CNSLDTD_D3_D0_IMG = 17,
IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT = 18,
IWL_UCODE_TLV_CAPA_CSUM_SUPPORT = 21,
IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS = 22,
IWL_UCODE_TLV_CAPA_P2P_SCM_UAPSD = 26,
IWL_UCODE_TLV_CAPA_BT_COEX_PLCR = 28,
IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC = 29,
IWL_UCODE_TLV_CAPA_BT_COEX_RRC = 30,
IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT = 31,
IWL_UCODE_TLV_CAPA_FRAGMENTED_PNVM_IMG = 32,
IWL_UCODE_TLV_CAPA_SOC_LATENCY_SUPPORT = 37,
IWL_UCODE_TLV_CAPA_STA_PM_NOTIF = 38,
IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT = 39,
IWL_UCODE_TLV_CAPA_CDB_SUPPORT = 40,
IWL_UCODE_TLV_CAPA_D0I3_END_FIRST = 41,
IWL_UCODE_TLV_CAPA_TLC_OFFLOAD = 43,
IWL_UCODE_TLV_CAPA_DYNAMIC_QUOTA = 44,
IWL_UCODE_TLV_CAPA_COEX_SCHEMA_2 = 45,
IWL_UCODE_TLV_CAPA_CHANNEL_SWITCH_CMD = 46,
IWL_UCODE_TLV_CAPA_FTM_CALIBRATED = 47,
IWL_UCODE_TLV_CAPA_ULTRA_HB_CHANNELS = 48,
IWL_UCODE_TLV_CAPA_CS_MODIFY = 49,
IWL_UCODE_TLV_CAPA_SET_LTR_GEN2 = 50,
IWL_UCODE_TLV_CAPA_SET_PPAG = 52,
IWL_UCODE_TLV_CAPA_TAS_CFG = 53,
IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD = 54,
IWL_UCODE_TLV_CAPA_PROTECTED_TWT = 56,
IWL_UCODE_TLV_CAPA_FW_RESET_HANDSHAKE = 57,
IWL_UCODE_TLV_CAPA_PASSIVE_6GHZ_SCAN = 58,
IWL_UCODE_TLV_CAPA_HIDDEN_6GHZ_SCAN = 59,
IWL_UCODE_TLV_CAPA_BROADCAST_TWT = 60,
IWL_UCODE_TLV_CAPA_COEX_HIGH_PRIO = 61,
IWL_UCODE_TLV_CAPA_RFIM_SUPPORT = 62,
IWL_UCODE_TLV_CAPA_BAID_ML_SUPPORT = 63,
IWL_UCODE_TLV_CAPA_EXTENDED_DTS_MEASURE = 64,
IWL_UCODE_TLV_CAPA_SHORT_PM_TIMEOUTS = 65,
IWL_UCODE_TLV_CAPA_BT_MPLUT_SUPPORT = 67,
IWL_UCODE_TLV_CAPA_MULTI_QUEUE_RX_SUPPORT = 68,
IWL_UCODE_TLV_CAPA_CSA_AND_TBTT_OFFLOAD = 70,
IWL_UCODE_TLV_CAPA_BEACON_ANT_SELECTION = 71,
IWL_UCODE_TLV_CAPA_BEACON_STORING = 72,
IWL_UCODE_TLV_CAPA_LAR_SUPPORT_V3 = 73,
IWL_UCODE_TLV_CAPA_CT_KILL_BY_FW = 74,
IWL_UCODE_TLV_CAPA_TEMP_THS_REPORT_SUPPORT = 75,
IWL_UCODE_TLV_CAPA_CTDP_SUPPORT = 76,
IWL_UCODE_TLV_CAPA_USNIFFER_UNIFIED = 77,
IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = 80,
IWL_UCODE_TLV_CAPA_LQM_SUPPORT = 81,
IWL_UCODE_TLV_CAPA_TX_POWER_ACK = 84,
IWL_UCODE_TLV_CAPA_D3_DEBUG = 87,
IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = 88,
IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT = 89,
IWL_UCODE_TLV_CAPA_CSI_REPORTING = 90,
IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP = 92,
IWL_UCODE_TLV_CAPA_DBG_BUF_ALLOC_CMD_SUPP = 93,
IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = 96,
IWL_UCODE_TLV_CAPA_PSC_CHAN_SUPPORT = 98,
IWL_UCODE_TLV_CAPA_BIGTK_SUPPORT = 100,
IWL_UCODE_TLV_CAPA_SPP_AMSDU_SUPPORT = 103,
IWL_UCODE_TLV_CAPA_DRAM_FRAG_SUPPORT = 104,
IWL_UCODE_TLV_CAPA_DUMP_COMPLETE_SUPPORT = 105,
IWL_UCODE_TLV_CAPA_SYNCED_TIME = 106,
IWL_UCODE_TLV_CAPA_TIME_SYNC_BOTH_FTM_TM = 108,
IWL_UCODE_TLV_CAPA_BIGTK_TX_SUPPORT = 109,
IWL_UCODE_TLV_CAPA_MLD_API_SUPPORT = 110,
IWL_UCODE_TLV_CAPA_SCAN_DONT_TOGGLE_ANT = 111,
IWL_UCODE_TLV_CAPA_PPAG_CHINA_BIOS_SUPPORT = 112,
IWL_UCODE_TLV_CAPA_OFFLOAD_BTM_SUPPORT = 113,
IWL_UCODE_TLV_CAPA_STA_EXP_MFP_SUPPORT = 114,
IWL_UCODE_TLV_CAPA_SNIFF_VALIDATE_SUPPORT = 116,
IWL_UCODE_TLV_CAPA_CHINA_22_REG_SUPPORT = 117,
IWL_UCODE_TLV_CAPA_SECURE_LTF_SUPPORT = 121,
NUM_IWL_UCODE_TLV_CAPA = 122,
};
enum iwl_legacy_cmds {
UCODE_ALIVE_NTFY = 1,
REPLY_ERROR___2 = 2,
ECHO_CMD = 3,
INIT_COMPLETE_NOTIF = 4,
PHY_CONTEXT_CMD = 8,
DBG_CFG = 9,
SCAN_ITERATION_COMPLETE_UMAC = 181,
SCAN_CFG_CMD = 12,
SCAN_REQ_UMAC = 13,
SCAN_ABORT_UMAC = 14,
SCAN_COMPLETE_UMAC = 15,
BA_WINDOW_STATUS_NOTIFICATION_ID = 19,
ADD_STA_KEY = 23,
ADD_STA = 24,
REMOVE_STA = 25,
TX_CMD = 28,
TXPATH_FLUSH = 30,
MGMT_MCAST_KEY = 31,
SCD_QUEUE_CFG = 29,
WEP_KEY = 32,
SHARED_MEM_CFG = 37,
TDLS_CHANNEL_SWITCH_CMD = 39,
TDLS_CHANNEL_SWITCH_NOTIFICATION = 170,
TDLS_CONFIG_CMD = 167,
MAC_CONTEXT_CMD = 40,
TIME_EVENT_CMD = 41,
TIME_EVENT_NOTIFICATION = 42,
BINDING_CONTEXT_CMD = 43,
TIME_QUOTA_CMD = 44,
NON_QOS_TX_COUNTER_CMD = 45,
LEDS_CMD = 72,
LQ_CMD = 78,
FW_PAGING_BLOCK_CMD = 79,
SCAN_OFFLOAD_REQUEST_CMD = 81,
SCAN_OFFLOAD_ABORT_CMD = 82,
HOT_SPOT_CMD = 83,
WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 103,
WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 104,
SCAN_OFFLOAD_COMPLETE = 109,
SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 110,
MATCH_FOUND_NOTIFICATION = 217,
SCAN_ITERATION_COMPLETE = 231,
PHY_CONFIGURATION_CMD = 106,
CALIB_RES_NOTIF_PHY_DB = 107,
PHY_DB_CMD = 108,
POWER_TABLE_CMD___2 = 119,
PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 120,
LTR_CONFIG = 238,
REPLY_THERMAL_MNG_BACKOFF = 126,
NVM_ACCESS_CMD = 136,
BEACON_NOTIFICATION___2 = 144,
BEACON_TEMPLATE_CMD = 145,
TX_ANT_CONFIGURATION_CMD___2 = 152,
STATISTICS_CMD = 156,
STATISTICS_NOTIFICATION___2 = 157,
EOSP_NOTIFICATION = 158,
REDUCE_TX_POWER_CMD = 159,
MISSED_BEACONS_NOTIFICATION___2 = 162,
MAC_PM_POWER_TABLE = 169,
MFUART_LOAD_NOTIFICATION = 177,
RSS_CONFIG_CMD = 179,
REPLY_RX_PHY_CMD___2 = 192,
REPLY_RX_MPDU_CMD___2 = 193,
BAR_FRAME_RELEASE = 194,
FRAME_RELEASE = 195,
BA_NOTIF = 197,
MCC_UPDATE_CMD = 200,
MCC_CHUB_UPDATE_CMD = 201,
MARKER_CMD = 203,
BT_PROFILE_NOTIFICATION = 206,
BT_CONFIG = 155,
BT_COEX_UPDATE_REDUCED_TXP = 92,
BT_COEX_CI = 93,
REPLY_SF_CFG_CMD = 209,
REPLY_BEACON_FILTERING_CMD = 210,
DTS_MEASUREMENT_NOTIFICATION = 221,
LDBG_CONFIG_CMD = 246,
DEBUG_LOG_MSG = 247,
MCAST_FILTER_CMD = 208,
D3_CONFIG_CMD = 211,
PROT_OFFLOAD_CONFIG_CMD = 212,
D0I3_END_CMD = 237,
WOWLAN_PATTERNS = 224,
WOWLAN_CONFIGURATION = 225,
WOWLAN_TSC_RSC_PARAM = 226,
WOWLAN_TKIP_PARAM = 227,
WOWLAN_KEK_KCK_MATERIAL = 228,
WOWLAN_GET_STATUSES = 229,
SCAN_OFFLOAD_PROFILES_QUERY_CMD = 86,
};
enum iwl_ucode_tlv_api {
IWL_UCODE_TLV_API_FRAGMENTED_SCAN = 8,
IWL_UCODE_TLV_API_WIFI_MCC_UPDATE = 9,
IWL_UCODE_TLV_API_LQ_SS_PARAMS = 18,
IWL_UCODE_TLV_API_NEW_VERSION = 20,
IWL_UCODE_TLV_API_SCAN_TSF_REPORT = 28,
IWL_UCODE_TLV_API_TKIP_MIC_KEYS = 29,
IWL_UCODE_TLV_API_STA_TYPE = 30,
IWL_UCODE_TLV_API_NAN2_VER2 = 31,
IWL_UCODE_TLV_API_ADAPTIVE_DWELL = 32,
IWL_UCODE_TLV_API_OCE = 33,
IWL_UCODE_TLV_API_NEW_BEACON_TEMPLATE = 34,
IWL_UCODE_TLV_API_NEW_RX_STATS = 35,
IWL_UCODE_TLV_API_WOWLAN_KEY_MATERIAL = 36,
IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY = 38,
IWL_UCODE_TLV_API_DEPRECATE_TTAK = 41,
IWL_UCODE_TLV_API_ADAPTIVE_DWELL_V2 = 42,
IWL_UCODE_TLV_API_FRAG_EBS = 44,
IWL_UCODE_TLV_API_REDUCE_TX_POWER = 45,
IWL_UCODE_TLV_API_SHORT_BEACON_NOTIF = 46,
IWL_UCODE_TLV_API_BEACON_FILTER_V4 = 47,
IWL_UCODE_TLV_API_REGULATORY_NVM_INFO = 48,
IWL_UCODE_TLV_API_FTM_NEW_RANGE_REQ = 49,
IWL_UCODE_TLV_API_SCAN_OFFLOAD_CHANS = 50,
IWL_UCODE_TLV_API_MBSSID_HE = 52,
IWL_UCODE_TLV_API_WOWLAN_TCP_SYN_WAKE = 53,
IWL_UCODE_TLV_API_FTM_RTT_ACCURACY = 54,
IWL_UCODE_TLV_API_SAR_TABLE_VER = 55,
IWL_UCODE_TLV_API_REDUCED_SCAN_CONFIG = 56,
IWL_UCODE_TLV_API_ADWELL_HB_DEF_N_AP = 57,
IWL_UCODE_TLV_API_SCAN_EXT_CHAN_VER = 58,
IWL_UCODE_TLV_API_BAND_IN_RX_DATA = 59,
IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX = 66,
IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR = 67,
IWL_UCODE_TLV_API_SMART_FIFO_OFFLOAD = 68,
NUM_IWL_UCODE_TLV_API = 69,
};
enum iwl_fw_ini_trigger_apply_policy {
IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT = 1,
IWL_FW_INI_APPLY_POLICY_MATCH_DATA = 2,
IWL_FW_INI_APPLY_POLICY_OVERRIDE_REGIONS = 256,
IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG = 512,
IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA = 1024,
IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD = 65536,
};
enum iwl_fw_ini_trigger_reset_fw_policy {
IWL_FW_INI_RESET_FW_MODE_NOTHING = 0,
IWL_FW_INI_RESET_FW_MODE_STOP_FW_ONLY = 1,
IWL_FW_INI_RESET_FW_MODE_STOP_AND_RELOAD_FW = 2,
};
enum iwl_fw_ini_region_type {
IWL_FW_INI_REGION_INVALID = 0,
IWL_FW_INI_REGION_TLV = 1,
IWL_FW_INI_REGION_INTERNAL_BUFFER = 2,
IWL_FW_INI_REGION_DRAM_BUFFER = 3,
IWL_FW_INI_REGION_TXF = 4,
IWL_FW_INI_REGION_RXF = 5,
IWL_FW_INI_REGION_LMAC_ERROR_TABLE = 6,
IWL_FW_INI_REGION_UMAC_ERROR_TABLE = 7,
IWL_FW_INI_REGION_RSP_OR_NOTIF = 8,
IWL_FW_INI_REGION_DEVICE_MEMORY = 9,
IWL_FW_INI_REGION_PERIPHERY_MAC = 10,
IWL_FW_INI_REGION_PERIPHERY_PHY = 11,
IWL_FW_INI_REGION_PERIPHERY_AUX = 12,
IWL_FW_INI_REGION_PAGING = 13,
IWL_FW_INI_REGION_CSR = 14,
IWL_FW_INI_REGION_DRAM_IMR = 15,
IWL_FW_INI_REGION_PCI_IOSF_CONFIG = 16,
IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY = 17,
IWL_FW_INI_REGION_DBGI_SRAM = 18,
IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE = 19,
IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE = 20,
IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP = 21,
IWL_FW_INI_REGION_NUM = 22,
};
enum iwl_fw_ini_dump_type {
IWL_FW_INI_DUMP_BRIEF = 0,
IWL_FW_INI_DUMP_MEDIUM = 1,
IWL_FW_INI_DUMP_VERBOSE = 2,
};
enum iwl_fw_ini_dump_policy {
IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT = 1,
IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB = 2,
IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB = 4,
};
enum iwl_fw_ini_allocation_id {
IWL_FW_INI_ALLOCATION_INVALID = 0,
IWL_FW_INI_ALLOCATION_ID_DBGC1 = 1,
IWL_FW_INI_ALLOCATION_ID_DBGC2 = 2,
IWL_FW_INI_ALLOCATION_ID_DBGC3 = 3,
IWL_FW_INI_ALLOCATION_ID_DBGC4 = 4,
IWL_FW_INI_ALLOCATION_NUM = 5,
};
enum iwl_system_subcmd_ids {
SHARED_MEM_CFG_CMD = 0,
SOC_CONFIGURATION_CMD = 1,
INIT_EXTENDED_CFG_CMD = 3,
FW_ERROR_RECOVERY_CMD = 7,
RFI_CONFIG_CMD = 11,
RFI_GET_FREQ_TABLE_CMD = 12,
SYSTEM_FEATURES_CONTROL_CMD = 13,
SYSTEM_STATISTICS_CMD = 15,
SYSTEM_STATISTICS_END_NOTIF = 253,
RFI_DEACTIVATE_NOTIF = 255,
};
enum iwl_fw_ini_region_device_memory_subtype {
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_HW_SMEM = 1,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_UMAC_ERROR_TABLE = 5,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_1_ERROR_TABLE = 7,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_2_ERROR_TABLE = 10,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_1_ERROR_TABLE = 14,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_2_ERROR_TABLE = 16,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_1_ERROR_TABLE = 18,
IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_2_ERROR_TABLE = 20,
};
enum iwl_fw_error_dump_type {
IWL_FW_ERROR_DUMP_CSR = 1,
IWL_FW_ERROR_DUMP_RXF = 2,
IWL_FW_ERROR_DUMP_TXCMD = 3,
IWL_FW_ERROR_DUMP_DEV_FW_INFO = 4,
IWL_FW_ERROR_DUMP_FW_MONITOR = 5,
IWL_FW_ERROR_DUMP_PRPH = 6,
IWL_FW_ERROR_DUMP_TXF = 7,
IWL_FW_ERROR_DUMP_FH_REGS = 8,
IWL_FW_ERROR_DUMP_MEM = 9,
IWL_FW_ERROR_DUMP_ERROR_INFO = 10,
IWL_FW_ERROR_DUMP_RB = 11,
IWL_FW_ERROR_DUMP_PAGING = 12,
IWL_FW_ERROR_DUMP_RADIO_REG = 13,
IWL_FW_ERROR_DUMP_INTERNAL_TXF = 14,
IWL_FW_ERROR_DUMP_EXTERNAL = 15,
IWL_FW_ERROR_DUMP_MEM_CFG = 16,
IWL_FW_ERROR_DUMP_D3_DEBUG_DATA = 17,
};
enum iwl_ucode_sec {
IWL_UCODE_SECTION_DATA = 0,
IWL_UCODE_SECTION_INST = 1,
};
enum iwl_fw_error_dump_mem_type {
IWL_FW_ERROR_DUMP_MEM_SRAM = 0,
IWL_FW_ERROR_DUMP_MEM_SMEM = 1,
IWL_FW_ERROR_DUMP_MEM_NAMED_MEM = 10,
};
enum iwl_dbg_suspend_resume_cmds {
DBGC_RESUME_CMD = 0,
DBGC_SUSPEND_CMD = 1,
};
struct iwl_fw_ini_dump_entry {
struct list_head list;
u32 size;
u8 data[0];
} __attribute__((packed));
struct iwl_dbg_tlv_node {
struct list_head list;
struct iwl_ucode_tlv tlv;
};
struct iwl_fw_error_dump_data {
__le32 type;
__le32 len;
__u8 data[0];
};
typedef unsigned int iwl_ucode_tlv_capa_t;
struct iwl_fw_ini_dump_file_hdr {
__le32 barker;
__le32 file_len;
};
struct iwl_fw_ini_region_dev_addr {
__le32 size;
__le32 offset;
};
struct iwl_fw_ini_region_dev_addr_range {
__le32 offset;
};
struct iwl_fw_ini_region_fifos {
__le32 fid[2];
__le32 hdr_only;
__le32 offset;
};
struct iwl_fw_ini_region_err_table {
__le32 version;
__le32 base_addr;
__le32 size;
__le32 offset;
};
struct iwl_fw_ini_region_internal_buffer {
__le32 alloc_id;
__le32 base_addr;
__le32 size;
};
struct iwl_fw_ini_region_special_device_memory {
__le16 type;
__le16 version;
__le32 base_addr;
__le32 size;
__le32 offset;
};
struct iwl_fw_ini_region_tlv {
struct iwl_fw_ini_header hdr;
__le32 id;
u8 type;
u8 sub_type;
u8 sub_type_ver;
u8 reserved;
u8 name[32];
union {
struct iwl_fw_ini_region_dev_addr dev_addr;
struct iwl_fw_ini_region_dev_addr_range dev_addr_range;
struct iwl_fw_ini_region_fifos fifos;
struct iwl_fw_ini_region_err_table err_table;
struct iwl_fw_ini_region_internal_buffer internal_buffer;
struct iwl_fw_ini_region_special_device_memory special_mem;
__le32 dram_alloc_id;
__le32 tlv_mask;
};
__le32 addrs[0];
};
struct iwl_fw_dump_ptrs {
struct iwl_trans_dump_data *trans_ptr;
void *fwrt_ptr;
u32 fwrt_len;
};
struct iwl_fw_error_dump_file {
__le32 barker;
__le32 file_len;
u8 data[0];
};
struct iwl_fw_error_dump_info {
__le32 hw_type;
__le32 hw_step;
u8 fw_human_readable[64];
u8 dev_human_readable[64];
u8 bus_human_readable[8];
u8 num_of_lmacs;
__le32 umac_err_id;
__le32 lmac_err_id[2];
} __attribute__((packed));
struct iwl_fw_error_dump_smem_cfg {
__le32 num_lmacs;
__le32 num_txfifo_entries;
struct {
__le32 txfifo_size[15];
__le32 rxfifo1_size;
} lmac[2];
__le32 rxfifo2_size;
__le32 internal_txfifo_addr;
__le32 internal_txfifo_size[6];
};
struct iwl_dump_file_name_info {
__le32 type;
__le32 len;
__u8 data[0];
};
struct iwl_fw_ini_dump_cfg_name {
__le32 image_type;
__le32 cfg_name_len;
u8 cfg_name[64];
};
struct iwl_fw_ini_dump_info {
__le32 version;
__le32 time_point;
__le32 trigger_reason;
__le32 external_cfg_state;
__le32 ver_type;
__le32 ver_subtype;
__le32 hw_step;
__le32 hw_type;
__le32 rf_id_flavor;
__le32 rf_id_dash;
__le32 rf_id_step;
__le32 rf_id_type;
__le32 lmac_major;
__le32 lmac_minor;
__le32 umac_major;
__le32 umac_minor;
__le32 fw_mon_mode;
__le64 regions_mask;
__le32 build_tag_len;
u8 build_tag[64];
__le32 num_of_cfg_names;
struct iwl_fw_ini_dump_cfg_name cfg_names[0];
} __attribute__((packed));
struct iwl_fw_ini_debug_info_tlv {
struct iwl_fw_ini_header hdr;
__le32 image_type;
u8 debug_cfg_name[64];
};
struct iwl_dbg_dump_complete_cmd {
__le32 tp;
__le32 tp_data;
};
struct iwl_fw_error_dump_fifo {
__le32 fifo_num;
__le32 available_bytes;
__le32 wr_ptr;
__le32 rd_ptr;
__le32 fence_ptr;
__le32 fence_mode;
u8 data[0];
};
struct iwl_fw_error_dump_mem {
__le32 type;
__le32 offset;
u8 data[0];
};
struct iwl_fw_error_dump_paging {
__le32 index;
__le32 reserved;
u8 data[0];
};
struct iwl_fw_error_dump_prph {
__le32 prph_start;
__le32 data[0];
};
typedef __kernel_off_t off_t;
struct iwl_fw_dbg_params {
u32 in_sample;
u32 out_ctrl;
};
struct iwl_dbg_suspend_resume_cmd {
__le32 operation;
};
typedef unsigned int iwl_ucode_tlv_api_t;
struct iwl_fw_ini_fifo_hdr {
__le32 fifo_num;
__le32 num_of_registers;
};
struct iwl_fw_ini_error_dump_range {
__le32 range_data_size;
union {
__le32 internal_base_addr;
__le64 dram_base_addr;
__le32 page_num;
struct iwl_fw_ini_fifo_hdr fifo_hdr;
struct iwl_cmd_header fw_pkt_hdr;
};
__le32 data[0];
} __attribute__((packed));
struct iwl_mvm_marker {
u8 dw_len;
u8 marker_id;
__le16 reserved;
__le64 timestamp;
__le32 metadata[0];
} __attribute__((packed));
struct iwl_mvm_marker_rsp {
__le32 gp2;
};
struct iwl_fw_dbg_config_cmd {
__le32 type;
__le32 conf;
};
struct iwl_fw_ini_error_dump_data {
u8 type;
u8 sub_type;
u8 sub_type_ver;
u8 reserved;
__le32 len;
__u8 data[0];
};
struct iwl_fw_ini_error_dump_header {
__le32 version;
__le32 region_id;
__le32 num_of_ranges;
__le32 name_len;
u8 name[32];
};
struct iwl_fw_ini_monitor_dump {
struct iwl_fw_ini_error_dump_header header;
__le32 write_ptr;
__le32 cycle_cnt;
__le32 cur_frag;
u8 data[0];
};
struct iwl_fw_ini_error_dump {
struct iwl_fw_ini_error_dump_header header;
u8 data[0];
};
struct iwl_fw_ini_error_dump_register {
__le32 addr;
__le32 data;
};
struct iwl_ini_rxf_data {
u32 fifo_num;
u32 size;
u32 offset;
};
struct iwl_fw_ini_err_table_dump {
struct iwl_fw_ini_error_dump_header header;
__le32 version;
u8 data[0];
};
struct iwl_fw_ini_special_device_memory {
struct iwl_fw_ini_error_dump_header header;
__le16 type;
__le16 version;
u8 data[0];
};
struct iwl_fw_ini_addr_size {
__le32 addr;
__le32 size;
};
struct rtw_regulatory {
char alpha2[2];
u8 txpwr_regd_2g;
u8 txpwr_regd_5g;
};
enum rtw_hci_type {
RTW_HCI_TYPE_PCIE = 0,
RTW_HCI_TYPE_USB = 1,
RTW_HCI_TYPE_SDIO = 2,
RTW_HCI_TYPE_UNDEFINE = 3,
};
struct rtw_hci_ops;
struct rtw_hci {
struct rtw_hci_ops *ops;
enum rtw_hci_type type;
u32 rpwm_addr;
u32 cpwm_addr;
u8 bulkout_num;
};
struct rtw_hw_scan_info {
struct ieee80211_vif *scanning_vif;
u8 probe_pg_size;
u8 op_pri_ch_idx;
u8 op_pri_ch;
u8 op_chan;
u8 op_bw;
};
struct rtw_phy_cond {
u32 rfe: 8;
u32 intf: 4;
u32 pkg: 4;
u32 plat: 4;
u32 intf_rsvd: 4;
u32 cut: 4;
u32 branch: 2;
u32 neg: 1;
u32 pos: 1;
};
enum rtw_sar_bands {
RTW_SAR_BAND_0 = 0,
RTW_SAR_BAND_1 = 1,
RTW_SAR_BAND_3 = 2,
RTW_SAR_BAND_4 = 3,
RTW_SAR_BAND_NR = 4,
};
enum rtw_sar_sources {
RTW_SAR_SOURCE_NONE = 0,
RTW_SAR_SOURCE_COMMON = 1,
};
union rtw_sar_cfg {
s8 common[4];
};
struct rtw_sar {
enum rtw_sar_sources src;
union rtw_sar_cfg cfg[24];
};
struct rtw_hal {
u32 rcr;
u32 chip_version;
u8 cut_version;
u8 mp_chip;
u8 oem_id;
u8 pkg_type;
struct rtw_phy_cond phy_cond;
bool rfe_btg;
u8 ps_mode;
u8 current_channel;
u8 current_primary_channel_index;
u8 current_band_width;
u8 current_band_type;
u8 primary_channel;
u8 cch_by_bw[3];
u8 sec_ch_offset;
u8 rf_type;
u8 rf_path_num;
u8 rf_phy_num;
u32 antenna_tx;
u32 antenna_rx;
u8 bfee_sts_cap;
bool txrx_1ss;
struct mutex tx_power_mutex;
s8 tx_pwr_by_rate_offset_2g[336];
s8 tx_pwr_by_rate_offset_5g[336];
s8 tx_pwr_by_rate_base_2g[24];
s8 tx_pwr_by_rate_base_5g[24];
s8 tx_pwr_limit_2g[3276];
s8 tx_pwr_limit_5g[11466];
s8 tx_pwr_tbl[336];
enum rtw_sar_bands sar_band;
struct rtw_sar sar;
u32 ch_param[3];
};
struct rtw_rqpn;
struct rtw_fifo_conf {
u16 rsvd_boundary;
u16 rsvd_pg_num;
u16 rsvd_drv_pg_num;
u16 txff_pg_num;
u16 acq_pg_num;
u16 rsvd_drv_addr;
u16 rsvd_h2c_info_addr;
u16 rsvd_h2c_sta_info_addr;
u16 rsvd_h2cq_addr;
u16 rsvd_cpu_instr_addr;
u16 rsvd_fw_txbuf_addr;
u16 rsvd_csibuf_addr;
const struct rtw_rqpn *rqpn;
};
struct rtw_fwcd_desc {
u32 size;
u8 *next;
u8 *data;
};
enum rtw_fw_type {
RTW_NORMAL_FW = 0,
RTW_WOWLAN_FW = 1,
};
struct rtw_dev;
struct rtw_fw_state {
const struct firmware *firmware;
struct rtw_dev *rtwdev;
struct completion completion;
struct rtw_fwcd_desc fwcd_desc;
u16 version;
u8 sub_version;
u8 sub_index;
u16 h2c_version;
u32 feature;
u32 feature_ext;
enum rtw_fw_type type;
};
struct rtw_2g_1s_pwr_idx_diff {
s8 ofdm: 4;
s8 bw20: 4;
};
struct rtw_2g_ns_pwr_idx_diff {
s8 bw20: 4;
s8 bw40: 4;
s8 cck: 4;
s8 ofdm: 4;
};
struct rtw_2g_txpwr_idx {
u8 cck_base[6];
u8 bw40_base[5];
struct rtw_2g_1s_pwr_idx_diff ht_1s_diff;
struct rtw_2g_ns_pwr_idx_diff ht_2s_diff;
struct rtw_2g_ns_pwr_idx_diff ht_3s_diff;
struct rtw_2g_ns_pwr_idx_diff ht_4s_diff;
};
struct rtw_5g_ht_1s_pwr_idx_diff {
s8 ofdm: 4;
s8 bw20: 4;
};
struct rtw_5g_ht_ns_pwr_idx_diff {
s8 bw20: 4;
s8 bw40: 4;
};
struct rtw_5g_ofdm_ns_pwr_idx_diff {
s8 ofdm_3s: 4;
s8 ofdm_2s: 4;
s8 ofdm_4s: 4;
s8 res: 4;
};
struct rtw_5g_vht_ns_pwr_idx_diff {
s8 bw160: 4;
s8 bw80: 4;
};
struct rtw_5g_txpwr_idx {
u8 bw40_base[14];
struct rtw_5g_ht_1s_pwr_idx_diff ht_1s_diff;
struct rtw_5g_ht_ns_pwr_idx_diff ht_2s_diff;
struct rtw_5g_ht_ns_pwr_idx_diff ht_3s_diff;
struct rtw_5g_ht_ns_pwr_idx_diff ht_4s_diff;
struct rtw_5g_ofdm_ns_pwr_idx_diff ofdm_diff;
struct rtw_5g_vht_ns_pwr_idx_diff vht_1s_diff;
struct rtw_5g_vht_ns_pwr_idx_diff vht_2s_diff;
struct rtw_5g_vht_ns_pwr_idx_diff vht_3s_diff;
struct rtw_5g_vht_ns_pwr_idx_diff vht_4s_diff;
};
struct rtw_txpwr_idx {
struct rtw_2g_txpwr_idx pwr_idx_2g;
struct rtw_5g_txpwr_idx pwr_idx_5g;
};
struct rtw_efuse {
u32 size;
u32 physical_size;
u32 logical_size;
u32 protect_size;
u8 addr[6];
u8 channel_plan;
u8 country_code[2];
u8 rf_board_option;
u8 rfe_option;
u8 power_track_type;
u8 thermal_meter[4];
u8 thermal_meter_k;
u8 crystal_cap;
u8 ant_div_cfg;
u8 ant_div_type;
u8 regd;
u8 afe;
u8 lna_type_2g;
u8 lna_type_5g;
u8 glna_type;
u8 alna_type;
bool ext_lna_2g;
bool ext_lna_5g;
u8 pa_type_2g;
u8 pa_type_5g;
u8 gpa_type;
u8 apa_type;
bool ext_pa_2g;
bool ext_pa_5g;
u8 tx_bb_swing_setting_2g;
u8 tx_bb_swing_setting_5g;
bool btcoex;
bool share_ant;
u8 bt_setting;
struct {
u8 hci;
u8 bw;
u8 ptcl;
u8 nss;
u8 ant_num;
} hw_cap;
struct rtw_txpwr_idx txpwr_idx_table[4];
};
struct rtw_cam_entry {
bool valid;
bool group;
u8 addr[6];
u8 hw_key_type;
struct ieee80211_key_conf *key;
};
struct rtw_sec_desc {
bool default_key_search;
u32 total_cam_num;
struct rtw_cam_entry cam_table[32];
unsigned long cam_map[1];
};
struct ewma_tp {
unsigned long internal;
};
struct rtw_traffic_stats {
u64 tx_unicast;
u64 rx_unicast;
u64 tx_cnt;
u64 rx_cnt;
u32 tx_throughput;
u32 rx_throughput;
struct ewma_tp tx_ewma_tp;
struct ewma_tp rx_ewma_tp;
};
enum rtw_regd_state {
RTW_REGD_STATE_WORLDWIDE = 0,
RTW_REGD_STATE_PROGRAMMED = 1,
RTW_REGD_STATE_SETTING = 2,
RTW_REGD_STATE_NR = 3,
};
struct rtw_regd {
enum rtw_regd_state state;
const struct rtw_regulatory *regulatory;
enum nl80211_dfs_regions dfs_region;
};
struct rtw_bf_info {
u8 bfer_mu_cnt;
u8 bfer_su_cnt;
unsigned long bfer_su_reg_maping[1];
u8 cur_csi_rpt_rate;
};
struct ewma_thermal {
unsigned long internal;
};
struct rtw_dpk_info {
bool is_dpk_pwr_on;
bool is_reload;
unsigned long dpk_path_ok[1];
u8 thermal_dpk[2];
struct ewma_thermal avg_thermal[2];
u32 gnt_control;
u32 gnt_value;
u8 result[4];
u8 dpk_txagc[4];
u32 coef[80];
u16 dpk_gs[4];
u8 thermal_dpk_delta[4];
u8 pre_pwsf[4];
u8 dpk_band;
u8 dpk_ch;
u8 dpk_bw;
};
struct rtw_cfo_track {
bool is_adjust;
u8 crystal_cap;
s32 cfo_tail[4];
s32 cfo_cnt[4];
u32 packet_count;
u32 packet_count_pre;
};
struct rtw_pkt_count {
u16 num_bcn_pkt;
u16 num_qry_pkt[84];
};
struct ewma_evm {
unsigned long internal;
};
struct ewma_snr {
unsigned long internal;
};
struct rtw_iqk_info {
bool done;
struct {
u32 s1_x;
u32 s1_y;
u32 s0_x;
u32 s0_y;
} result;
};
struct rtw_gapk_info {
u32 rf3f_bp[220];
u32 rf3f_fs[44];
bool txgapk_bp_done;
s8 offset[44];
s8 fianl_offset[44];
u8 read_txgain;
u8 channel;
};
enum rtw_edcca_mode {
RTW_EDCCA_NORMAL = 0,
RTW_EDCCA_ADAPTIVITY = 1,
};
struct rtw_dm_info {
u32 cck_fa_cnt;
u32 ofdm_fa_cnt;
u32 total_fa_cnt;
u32 cck_cca_cnt;
u32 ofdm_cca_cnt;
u32 total_cca_cnt;
u32 cck_ok_cnt;
u32 cck_err_cnt;
u32 ofdm_ok_cnt;
u32 ofdm_err_cnt;
u32 ht_ok_cnt;
u32 ht_err_cnt;
u32 vht_ok_cnt;
u32 vht_err_cnt;
u8 min_rssi;
u8 pre_min_rssi;
u16 fa_history[4];
u8 igi_history[4];
u8 igi_bitmap;
bool damping;
u8 damping_cnt;
u8 damping_rssi;
u8 cck_gi_u_bnd;
u8 cck_gi_l_bnd;
u8 fix_rate;
u8 tx_rate;
u32 rrsr_val_init;
u32 rrsr_mask_min;
u8 thermal_avg[4];
u8 thermal_meter_k;
u8 thermal_meter_lck;
s8 delta_power_index[4];
s8 delta_power_index_last[4];
u8 default_ofdm_index;
bool pwr_trk_triggered;
bool pwr_trk_init_trigger;
struct ewma_thermal avg_thermal[4];
s8 txagc_remnant_cck;
s8 txagc_remnant_ofdm;
u32 dack_adck[4];
u16 dack_msbk[120];
u8 dack_dck[16];
struct rtw_dpk_info dpk_info;
struct rtw_cfo_track cfo_track;
u8 cck_pd_lv[8];
u32 cck_fa_avg;
u8 cck_pd_default;
s8 rx_snr[4];
u8 rx_evm_dbm[4];
s16 cfo_tail[4];
u8 rssi[4];
u8 curr_rx_rate;
struct rtw_pkt_count cur_pkt_count;
struct rtw_pkt_count last_pkt_count;
struct ewma_evm ewma_evm[4];
struct ewma_snr ewma_snr[12];
u32 dm_flags;
struct rtw_iqk_info iqk;
struct rtw_gapk_info gapk;
bool is_bt_iqk_timeout;
s8 l2h_th_ini;
enum rtw_edcca_mode edcca_mode;
u8 scan_density;
};
struct rtw_coex_hid {
u8 hid_handle;
u8 hid_vendor;
u8 hid_name[3];
bool hid_info_completed;
bool is_game_hid;
};
struct rtw_coex_hid_handle_list {
u8 cmd_id;
u8 len;
u8 subid;
u8 handle_cnt;
u8 handle[4];
};
struct rtw_coex_stat {
bool bt_disabled;
bool bt_disabled_pre;
bool bt_link_exist;
bool bt_whck_test;
bool bt_inq_page;
bool bt_inq_remain;
bool bt_inq;
bool bt_page;
bool bt_ble_voice;
bool bt_ble_exist;
bool bt_hfp_exist;
bool bt_a2dp_exist;
bool bt_hid_exist;
bool bt_pan_exist;
bool bt_opp_exist;
bool bt_acl_busy;
bool bt_fix_2M;
bool bt_setup_link;
bool bt_multi_link;
bool bt_multi_link_pre;
bool bt_multi_link_remain;
bool bt_a2dp_sink;
bool bt_a2dp_active;
bool bt_reenable;
bool bt_ble_scan_en;
bool bt_init_scan;
bool bt_slave;
bool bt_418_hid_exist;
bool bt_ble_hid_exist;
bool bt_game_hid_exist;
bool bt_hid_handle_cnt;
bool bt_mailbox_reply;
bool wl_under_lps;
bool wl_under_ips;
bool wl_hi_pri_task1;
bool wl_hi_pri_task2;
bool wl_force_lps_ctrl;
bool wl_gl_busy;
bool wl_linkscan_proc;
bool wl_ps_state_fail;
bool wl_tx_limit_en;
bool wl_ampdu_limit_en;
bool wl_connected;
bool wl_slot_extend;
bool wl_cck_lock;
bool wl_cck_lock_pre;
bool wl_cck_lock_ever;
bool wl_connecting;
bool wl_slot_toggle;
bool wl_slot_toggle_change;
bool wl_mimo_ps;
u32 bt_supported_version;
u32 bt_supported_feature;
u32 hi_pri_tx;
u32 hi_pri_rx;
u32 lo_pri_tx;
u32 lo_pri_rx;
u32 patch_ver;
u16 bt_reg_vendor_ae;
u16 bt_reg_vendor_ac;
s8 bt_rssi;
u8 kt_ver;
u8 gnt_workaround_state;
u8 tdma_timer_base;
u8 bt_profile_num;
u8 bt_info_c2h[60];
u8 bt_info_lb2;
u8 bt_info_lb3;
u8 bt_info_hb0;
u8 bt_info_hb1;
u8 bt_info_hb2;
u8 bt_info_hb3;
u8 bt_ble_scan_type;
u8 bt_hid_pair_num;
u8 bt_hid_slot;
u8 bt_a2dp_bitpool;
u8 bt_iqk_state;
u16 wl_beacon_interval;
u8 wl_noisy_level;
u8 wl_fw_dbg_info[10];
u8 wl_fw_dbg_info_pre[10];
u8 wl_rx_rate;
u8 wl_tx_rate;
u8 wl_rts_rx_rate;
u8 wl_coex_mode;
u8 wl_iot_peer;
u8 ampdu_max_time;
u8 wl_tput_dir;
u8 wl_toggle_para[6];
u8 wl_toggle_interval;
u16 score_board;
u16 retry_limit;
u32 cnt_bt[13];
u32 cnt_wl[8];
u32 cnt_bt_info_c2h[6];
u32 darfrc;
u32 darfrch;
struct rtw_coex_hid hid_info[4];
struct rtw_coex_hid_handle_list hid_handle_list;
};
struct rtw_coex_dm {
bool cur_ps_tdma_on;
bool cur_wl_rx_low_gain_en;
bool ignore_wl_act;
u8 reason;
u8 bt_rssi_state[4];
u8 wl_rssi_state[4];
u8 wl_ch_info[3];
u8 cur_ps_tdma;
u8 cur_table;
u8 ps_tdma_para[5];
u8 cur_bt_pwr_lvl;
u8 cur_bt_lna_lvl;
u8 cur_wl_pwr_lvl;
u8 bt_status;
u32 cur_ant_pos_type;
u32 cur_switch_status;
u32 setting_tdma;
u8 fw_tdma_para[5];
};
struct rtw_coex_rfe {
bool ant_switch_exist;
bool ant_switch_diversity;
bool ant_switch_with_bt;
u8 rfe_module_type;
u8 ant_switch_polarity;
bool wlg_at_btg;
};
struct rtw_coex {
struct sk_buff_head queue;
wait_queue_head_t wait;
bool under_5g;
bool stop_dm;
bool freeze;
bool freerun;
bool wl_rf_off;
bool manual_control;
struct rtw_coex_stat stat;
struct rtw_coex_dm dm;
struct rtw_coex_rfe rfe;
struct delayed_work bt_relink_work;
struct delayed_work bt_reenable_work;
struct delayed_work defreeze_work;
struct delayed_work wl_remain_work;
struct delayed_work bt_remain_work;
struct delayed_work wl_connecting_work;
struct delayed_work bt_multi_link_remain_work;
struct delayed_work wl_ccklock_work;
};
struct rtw_tx_report {
spinlock_t q_lock;
struct sk_buff_head queue;
atomic_t sn;
struct timer_list purge_timer;
};
enum rtw_lps_mode {
RTW_MODE_ACTIVE = 0,
RTW_MODE_LPS = 1,
RTW_MODE_WMM_PS = 2,
};
enum rtw_lps_deep_mode {
LPS_DEEP_MODE_NONE = 0,
LPS_DEEP_MODE_LCLK = 1,
LPS_DEEP_MODE_PG = 2,
};
enum rtw_pwr_state {
RTW_RF_OFF = 0,
RTW_RF_ON = 4,
RTW_ALL_ON = 12,
};
struct rtw_lps_conf {
enum rtw_lps_mode mode;
enum rtw_lps_deep_mode deep_mode;
enum rtw_lps_deep_mode wow_deep_mode;
enum rtw_pwr_state state;
u8 awake_interval;
u8 rlbm;
u8 smart_ps;
u8 port_id;
bool sec_cam_backup;
bool pattern_cam_backup;
};
enum rtw_bb_path {
BB_PATH_A = 1,
BB_PATH_B = 2,
BB_PATH_C = 4,
BB_PATH_D = 8,
BB_PATH_AB = 3,
BB_PATH_AC = 5,
BB_PATH_AD = 9,
BB_PATH_BC = 6,
BB_PATH_BD = 10,
BB_PATH_CD = 12,
BB_PATH_ABC = 7,
BB_PATH_ABD = 11,
BB_PATH_ACD = 13,
BB_PATH_BCD = 14,
BB_PATH_ABCD = 15,
};
struct rtw_path_div {
enum rtw_bb_path current_tx_path;
u32 path_a_sum;
u32 path_b_sum;
u16 path_a_cnt;
u16 path_b_cnt;
};
struct rtw_wow_pattern {
u16 crc;
u8 type;
u8 valid;
u8 mask[16];
};
struct rtw_pno_request {
bool inited;
u32 match_set_cnt;
struct cfg80211_match_set *match_sets;
u8 channel_cnt;
struct ieee80211_channel *channels;
struct cfg80211_sched_scan_plan scan_plan;
};
struct rtw_wow_param {
struct ieee80211_vif *wow_vif;
unsigned long flags[1];
u8 txpause;
u8 pattern_cnt;
struct rtw_wow_pattern patterns[12];
bool ips_enabled;
struct rtw_pno_request pno_req;
};
struct rtw_chip_info;
struct rtw_dev {
struct ieee80211_hw *hw;
struct device *dev;
struct rtw_hci hci;
struct rtw_hw_scan_info scan_info;
const struct rtw_chip_info *chip;
struct rtw_hal hal;
struct rtw_fifo_conf fifo;
struct rtw_fw_state fw;
struct rtw_efuse efuse;
struct rtw_sec_desc sec;
struct rtw_traffic_stats stats;
struct rtw_regd regd;
struct rtw_bf_info bf_info;
struct rtw_dm_info dm_info;
struct rtw_coex coex;
struct mutex mutex;
struct delayed_work watch_dog_work;
u32 watch_dog_cnt;
struct list_head rsvd_page_list;
struct sk_buff_head c2h_queue;
struct work_struct c2h_work;
struct work_struct ips_work;
struct work_struct fw_recovery_work;
struct work_struct update_beacon_work;
spinlock_t txq_lock;
struct list_head txqs;
struct workqueue_struct *tx_wq;
struct work_struct tx_work;
struct work_struct ba_work;
struct rtw_tx_report tx_report;
struct {
u8 last_box_num;
u32 seq;
} h2c;
struct rtw_lps_conf lps_conf;
bool ps_enabled;
bool beacon_loss;
struct completion lps_leave_check;
struct dentry *debugfs;
u8 sta_cnt;
u32 rts_threshold;
unsigned long hw_port[1];
unsigned long mac_id_map[1];
unsigned long flags[1];
u8 mp_mode;
struct rtw_path_div dm_path_div;
struct rtw_fw_state wow_fw;
struct rtw_wow_param wow;
bool need_rfk;
struct completion fw_scan_density;
bool ap_active;
long: 0;
u8 priv[0];
};
struct rtw_tx_pkt_info;
struct rtw_hci_ops {
int (*tx_write)(struct rtw_dev *, struct rtw_tx_pkt_info *, struct sk_buff *);
void (*tx_kick_off)(struct rtw_dev *);
void (*flush_queues)(struct rtw_dev *, u32, bool);
int (*setup)(struct rtw_dev *);
int (*start)(struct rtw_dev *);
void (*stop)(struct rtw_dev *);
void (*deep_ps)(struct rtw_dev *, bool);
void (*link_ps)(struct rtw_dev *, bool);
void (*interface_cfg)(struct rtw_dev *);
int (*write_data_rsvd_page)(struct rtw_dev *, u8 *, u32);
int (*write_data_h2c)(struct rtw_dev *, u8 *, u32);
u8 (*read8)(struct rtw_dev *, u32);
u16 (*read16)(struct rtw_dev *, u32);
u32 (*read32)(struct rtw_dev *, u32);
void (*write8)(struct rtw_dev *, u32, u8);
void (*write16)(struct rtw_dev *, u32, u16);
void (*write32)(struct rtw_dev *, u32, u32);
};
struct rtw_tx_pkt_info {
u32 tx_pkt_size;
u8 offset;
u8 pkt_offset;
u8 tim_offset;
u8 mac_id;
u8 rate_id;
u8 rate;
u8 qsel;
u8 bw;
u8 sec_type;
u8 sn;
bool ampdu_en;
u8 ampdu_factor;
u8 ampdu_density;
u16 seq;
bool stbc;
bool ldpc;
bool dis_rate_fallback;
bool bmc;
bool use_rate;
bool ls;
bool fs;
bool short_gi;
bool report;
bool rts;
bool dis_qselseq;
bool en_hwseq;
u8 hw_ssn_sel;
bool nav_use_hdr;
bool bt_null;
};
enum rtw_wlan_cpu {
RTW_WCPU_11AC = 0,
RTW_WCPU_11N = 1,
};
struct rtw_chip_ops;
struct rtw_fwcd_segs;
struct rtw_pwr_seq_cmd;
struct rtw_prioq_addrs;
struct rtw_page_table;
struct rtw_intf_phy_para_table;
struct rtw_hw_reg;
struct rtw_rf_sipi_addr;
struct rtw_ltecoex_addr;
struct rtw_table;
struct rtw_rfe_def;
struct rtw_pwr_track_tbl;
struct rtw_hw_reg_offset;
struct coex_table_para;
struct coex_tdma_para;
struct coex_rf_para;
struct coex_5g_afh_map;
struct rtw_reg_domain;
struct rtw_chip_info {
struct rtw_chip_ops *ops;
u8 id;
const char *fw_name;
enum rtw_wlan_cpu wlan_cpu;
u8 tx_pkt_desc_sz;
u8 tx_buf_desc_sz;
u8 rx_pkt_desc_sz;
u8 rx_buf_desc_sz;
u32 phy_efuse_size;
u32 log_efuse_size;
u32 ptct_efuse_size;
u32 txff_size;
u32 rxff_size;
u32 fw_rxff_size;
u16 rsvd_drv_pg_num;
u8 band;
u8 page_size;
u8 csi_buf_pg_num;
u8 dig_max;
u8 dig_min;
u8 txgi_factor;
bool is_pwr_by_rate_dec;
bool rx_ldpc;
bool tx_stbc;
u8 max_power_index;
u8 ampdu_density;
u16 fw_fifo_addr[6];
const struct rtw_fwcd_segs *fwcd_segs;
u8 default_1ss_tx_path;
bool path_div_supported;
bool ht_supported;
bool vht_supported;
u8 lps_deep_mode_supported;
u8 sys_func_en;
const struct rtw_pwr_seq_cmd **pwr_on_seq;
const struct rtw_pwr_seq_cmd **pwr_off_seq;
const struct rtw_rqpn *rqpn_table;
const struct rtw_prioq_addrs *prioq_addrs;
const struct rtw_page_table *page_table;
const struct rtw_intf_phy_para_table *intf_table;
const struct rtw_hw_reg *dig;
const struct rtw_hw_reg *dig_cck;
u32 rf_base_addr[2];
u32 rf_sipi_addr[2];
const struct rtw_rf_sipi_addr *rf_sipi_read_addr;
u8 fix_rf_phy_num;
const struct rtw_ltecoex_addr *ltecoex_addr;
const struct rtw_table *mac_tbl;
const struct rtw_table *agc_tbl;
const struct rtw_table *bb_tbl;
const struct rtw_table *rf_tbl[4];
const struct rtw_table *rfk_init_tbl;
const struct rtw_rfe_def *rfe_defs;
u32 rfe_defs_size;
bool en_dis_dpd;
u16 dpd_ratemask;
u8 iqk_threshold;
u8 lck_threshold;
const struct rtw_pwr_track_tbl *pwr_track_tbl;
u8 bfer_su_max_num;
u8 bfer_mu_max_num;
struct rtw_hw_reg_offset *edcca_th;
s8 l2h_th_ini_cs;
s8 l2h_th_ini_ad;
const char *wow_fw_name;
const struct wiphy_wowlan_support *wowlan_stub;
const u8 max_sched_scan_ssids;
const u16 max_scan_ie_len;
u32 coex_para_ver;
u8 bt_desired_ver;
bool scbd_support;
bool new_scbd10_def;
bool ble_hid_profile_support;
bool wl_mimo_ps_support;
u8 pstdma_type;
u8 bt_rssi_type;
u8 ant_isolation;
u8 rssi_tolerance;
u8 table_sant_num;
u8 table_nsant_num;
u8 tdma_sant_num;
u8 tdma_nsant_num;
u8 bt_afh_span_bw20;
u8 bt_afh_span_bw40;
u8 afh_5g_num;
u8 wl_rf_para_num;
u8 coex_info_hw_regs_num;
const u8 *bt_rssi_step;
const u8 *wl_rssi_step;
const struct coex_table_para *table_nsant;
const struct coex_table_para *table_sant;
const struct coex_tdma_para *tdma_sant;
const struct coex_tdma_para *tdma_nsant;
const struct coex_rf_para *wl_rf_para_tx;
const struct coex_rf_para *wl_rf_para_rx;
const struct coex_5g_afh_map *afh_5g;
const struct rtw_hw_reg *btg_reg;
const struct rtw_reg_domain *coex_info_hw_regs;
u32 wl_fw_desired_ver;
};
enum rtw_rf_path {
RF_PATH_A = 0,
RF_PATH_B = 1,
RF_PATH_C = 2,
RF_PATH_D = 3,
};
struct rtw_rx_pkt_stat;
struct ieee80211_rx_status;
struct rtw_vif;
struct rtw_bfee;
struct rtw_chip_ops {
int (*mac_init)(struct rtw_dev *);
int (*dump_fw_crash)(struct rtw_dev *);
void (*shutdown)(struct rtw_dev *);
int (*read_efuse)(struct rtw_dev *, u8 *);
void (*phy_set_param)(struct rtw_dev *);
void (*set_channel)(struct rtw_dev *, u8, u8, u8);
void (*query_rx_desc)(struct rtw_dev *, u8 *, struct rtw_rx_pkt_stat *, struct ieee80211_rx_status *);
u32 (*read_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32);
bool (*write_rf)(struct rtw_dev *, enum rtw_rf_path, u32, u32, u32);
void (*set_tx_power_index)(struct rtw_dev *);
int (*rsvd_page_dump)(struct rtw_dev *, u8 *, u32, u32);
int (*set_antenna)(struct rtw_dev *, u32, u32);
void (*cfg_ldo25)(struct rtw_dev *, bool);
void (*efuse_grant)(struct rtw_dev *, bool);
void (*false_alarm_statistics)(struct rtw_dev *);
void (*phy_calibration)(struct rtw_dev *);
void (*dpk_track)(struct rtw_dev *);
void (*cck_pd_set)(struct rtw_dev *, u8);
void (*pwr_track)(struct rtw_dev *);
void (*config_bfee)(struct rtw_dev *, struct rtw_vif *, struct rtw_bfee *, bool);
void (*set_gid_table)(struct rtw_dev *, struct ieee80211_vif *, struct ieee80211_bss_conf *);
void (*cfg_csi_rate)(struct rtw_dev *, u8, u8, u8, u8 *);
void (*adaptivity_init)(struct rtw_dev *);
void (*adaptivity)(struct rtw_dev *);
void (*cfo_init)(struct rtw_dev *);
void (*cfo_track)(struct rtw_dev *);
void (*config_tx_path)(struct rtw_dev *, u8, enum rtw_bb_path, enum rtw_bb_path, bool);
void (*config_txrx_mode)(struct rtw_dev *, u8, u8, bool);
void (*fill_txdesc_checksum)(struct rtw_dev *, struct rtw_tx_pkt_info *, u8 *);
void (*coex_set_init)(struct rtw_dev *);
void (*coex_set_ant_switch)(struct rtw_dev *, u8, u8);
void (*coex_set_gnt_fix)(struct rtw_dev *);
void (*coex_set_gnt_debug)(struct rtw_dev *);
void (*coex_set_rfe_type)(struct rtw_dev *);
void (*coex_set_wl_tx_power)(struct rtw_dev *, u8);
void (*coex_set_wl_rx_gain)(struct rtw_dev *, bool);
};
struct rtw_sta_info;
struct rtw_rx_pkt_stat {
bool phy_status;
bool icv_err;
bool crc_err;
bool decrypted;
bool is_c2h;
s32 signal_power;
u16 pkt_len;
u8 bw;
u8 drv_info_sz;
u8 shift;
u8 rate;
u8 mac_id;
u8 cam_id;
u8 ppdu_cnt;
u32 tsf_low;
s8 rx_power[4];
u8 rssi;
u8 rxsc;
s8 rx_snr[4];
u8 rx_evm[4];
s8 cfo_tail[4];
u16 freq;
u8 band;
struct rtw_sta_info *si;
struct ieee80211_vif *vif;
struct ieee80211_hdr *hdr;
};
enum rtw_bandwidth {
RTW_CHANNEL_WIDTH_20 = 0,
RTW_CHANNEL_WIDTH_40 = 1,
RTW_CHANNEL_WIDTH_80 = 2,
RTW_CHANNEL_WIDTH_160 = 3,
RTW_CHANNEL_WIDTH_80_80 = 4,
RTW_CHANNEL_WIDTH_5 = 5,
RTW_CHANNEL_WIDTH_10 = 6,
};
enum rtw_rf_type {
RF_1T1R = 0,
RF_1T2R = 1,
RF_2T2R = 2,
RF_2T3R = 3,
RF_2T4R = 4,
RF_3T3R = 5,
RF_3T4R = 6,
RF_4T4R = 7,
RF_TYPE_MAX = 8,
};
struct rtw_ra_report {
struct rate_info txrate;
u32 bit_rate;
u8 desc_rate;
};
struct rtw_sta_info {
struct rtw_dev *rtwdev;
struct ieee80211_sta *sta;
struct ieee80211_vif *vif;
struct ewma_rssi avg_rssi;
u8 rssi_level;
u8 mac_id;
u8 rate_id;
enum rtw_bandwidth bw_mode;
enum rtw_rf_type rf_type;
u8 stbc_en: 2;
u8 ldpc_en: 2;
bool sgi_enable;
bool vht_enable;
u8 init_ra_lv;
u64 ra_mask;
unsigned long tid_ba[1];
struct rtw_ra_report ra_report;
bool use_cfg_mask;
struct cfg80211_bitrate_mask *mask;
struct work_struct rc_work;
};
struct ieee80211_rx_status {
u64 mactime;
union {
u64 boottime_ns;
ktime_t ack_tx_hwtstamp;
};
u32 device_timestamp;
u32 ampdu_reference;
u32 flag;
u16 freq: 13;
u16 freq_offset: 1;
u8 enc_flags;
u8 encoding: 3;
u8 bw: 4;
union {
struct {
u8 he_ru: 3;
u8 he_gi: 2;
u8 he_dcm: 1;
};
struct {
u8 ru: 4;
u8 gi: 2;
} eht;
};
u8 rate_idx;
u8 nss;
u8 rx_flags;
u8 band;
u8 antenna;
s8 signal;
u8 chains;
s8 chain_signal[4];
u8 ampdu_delimiter_crc;
u8 zero_length_psdu_type;
u8 link_valid: 1;
u8 link_id: 4;
};
enum rtw_net_type {
RTW_NET_NO_LINK = 0,
RTW_NET_AD_HOC = 1,
RTW_NET_MGD_LINKED = 2,
RTW_NET_AP_MODE = 3,
};
enum rtw_bfee_role {
RTW_BFEE_NONE = 0,
RTW_BFEE_SU = 1,
RTW_BFEE_MU = 2,
};
struct rtw_bfee {
enum rtw_bfee_role role;
u16 p_aid;
u8 g_id;
u8 mac_addr[6];
u8 sound_dim;
u8 su_reg_index;
u16 aid;
};
struct rtw_vif_port;
struct rtw_vif {
enum rtw_net_type net_type;
u16 aid;
u8 mac_id;
u8 mac_addr[6];
u8 bssid[6];
u8 port;
u8 bcn_ctrl;
struct list_head rsvd_page_list;
struct ieee80211_tx_queue_params tx_params[4];
const struct rtw_vif_port *conf;
struct cfg80211_scan_request *scan_req;
struct ieee80211_scan_ies *scan_ies;
struct rtw_traffic_stats stats;
struct rtw_bfee bfee;
};
struct rtw_hw_reg {
u32 addr;
u32 mask;
};
struct rtw_vif_port {
struct rtw_hw_reg mac_addr;
struct rtw_hw_reg bssid;
struct rtw_hw_reg net_type;
struct rtw_hw_reg aid;
struct rtw_hw_reg bcn_ctrl;
};
struct rtw_fwcd_segs {
const u32 *segs;
u8 num;
};
struct rtw_pwr_seq_cmd {
u16 offset;
u8 cut_mask;
u8 intf_mask;
u8 base: 4;
u8 cmd: 4;
u8 mask;
u8 value;
};
enum rtw_dma_mapping {
RTW_DMA_MAPPING_EXTRA = 0,
RTW_DMA_MAPPING_LOW = 1,
RTW_DMA_MAPPING_NORMAL = 2,
RTW_DMA_MAPPING_HIGH = 3,
RTW_DMA_MAPPING_MAX = 4,
RTW_DMA_MAPPING_UNDEF = 5,
};
struct rtw_rqpn {
enum rtw_dma_mapping dma_map_vo;
enum rtw_dma_mapping dma_map_vi;
enum rtw_dma_mapping dma_map_be;
enum rtw_dma_mapping dma_map_bk;
enum rtw_dma_mapping dma_map_mg;
enum rtw_dma_mapping dma_map_hi;
};
struct rtw_prioq_addr {
u32 rsvd;
u32 avail;
};
struct rtw_prioq_addrs {
struct rtw_prioq_addr prio[4];
bool wsize;
};
struct rtw_page_table {
u16 hq_num;
u16 nq_num;
u16 lq_num;
u16 exq_num;
u16 gapq_num;
};
struct rtw_intf_phy_para;
struct rtw_intf_phy_para_table {
const struct rtw_intf_phy_para *usb2_para;
const struct rtw_intf_phy_para *usb3_para;
const struct rtw_intf_phy_para *gen1_para;
const struct rtw_intf_phy_para *gen2_para;
u8 n_usb2_para;
u8 n_usb3_para;
u8 n_gen1_para;
u8 n_gen2_para;
};
struct rtw_intf_phy_para {
u16 offset;
u16 value;
u16 ip_sel;
u16 cut_mask;
u16 platform;
};
struct rtw_rf_sipi_addr {
u32 hssi_1;
u32 hssi_2;
u32 lssi_read;
u32 lssi_read_pi;
};
struct rtw_ltecoex_addr {
u32 ctrl;
u32 wdata;
u32 rdata;
};
struct rtw_table {
const void *data;
const u32 size;
void (*parse)(struct rtw_dev *, const struct rtw_table *);
void (*do_cfg)(struct rtw_dev *, const struct rtw_table *, u32, u32);
enum rtw_rf_path rf_path;
};
struct rtw_rfe_def {
const struct rtw_table *phy_pg_tbl;
const struct rtw_table *txpwr_lmt_tbl;
const struct rtw_table *agc_btg_tbl;
};
struct rtw_pwr_track_tbl {
const u8 *pwrtrk_5gb_n[3];
const u8 *pwrtrk_5gb_p[3];
const u8 *pwrtrk_5ga_n[3];
const u8 *pwrtrk_5ga_p[3];
const u8 *pwrtrk_2gb_n;
const u8 *pwrtrk_2gb_p;
const u8 *pwrtrk_2ga_n;
const u8 *pwrtrk_2ga_p;
const u8 *pwrtrk_2g_cckb_n;
const u8 *pwrtrk_2g_cckb_p;
const u8 *pwrtrk_2g_ccka_n;
const u8 *pwrtrk_2g_ccka_p;
const s8 *pwrtrk_xtal_n;
const s8 *pwrtrk_xtal_p;
};
struct rtw_hw_reg_offset {
struct rtw_hw_reg hw_reg;
u8 offset;
};
struct coex_table_para {
u32 bt;
u32 wl;
};
struct coex_tdma_para {
u8 para[5];
};
struct coex_rf_para {
u8 wl_pwr_dec_lvl;
u8 bt_pwr_dec_lvl;
bool wl_low_gain_en;
u8 bt_lna_lvl;
};
struct coex_5g_afh_map {
u32 wl_5g_ch;
u8 bt_skip_ch;
u8 bt_skip_span;
};
struct rtw_reg_domain {
u32 addr;
u32 mask;
u8 domain;
};
struct rtw_regd_alternative_t {
bool set;
u8 alt;
};
enum ieee80211_regulatory_flags {
REGULATORY_CUSTOM_REG = 1,
REGULATORY_STRICT_REG = 2,
REGULATORY_DISABLE_BEACON_HINTS = 4,
REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8,
REGULATORY_COUNTRY_IE_IGNORE = 16,
REGULATORY_ENABLE_RELAX_NO_IR = 32,
REGULATORY_WIPHY_SELF_MANAGED = 128,
};
enum rtw_debug_mask {
RTW_DBG_PCI = 1,
RTW_DBG_TX = 2,
RTW_DBG_RX = 4,
RTW_DBG_PHY = 8,
RTW_DBG_FW = 16,
RTW_DBG_EFUSE = 32,
RTW_DBG_COEX = 64,
RTW_DBG_RFK = 128,
RTW_DBG_REGD = 256,
RTW_DBG_DEBUGFS = 512,
RTW_DBG_PS = 1024,
RTW_DBG_BF = 2048,
RTW_DBG_WOW = 4096,
RTW_DBG_CFO = 8192,
RTW_DBG_PATH_DIV = 16384,
RTW_DBG_ADAPTIVITY = 32768,
RTW_DBG_HW_SCAN = 65536,
RTW_DBG_STATE = 131072,
RTW_DBG_SDIO = 262144,
RTW_DBG_ALL = 4294967295,
};
enum rtw_supported_band {
RTW_BAND_2G = 1,
RTW_BAND_5G = 2,
RTW_BAND_60G = 4,
};
struct mddev;
struct md_rdev;
struct md_personality {
char *name;
int level;
struct list_head list;
struct module *owner;
bool (*make_request)(struct mddev *, struct bio *);
int (*run)(struct mddev *);
int (*start)(struct mddev *);
void (*free)(struct mddev *, void *);
void (*status)(struct seq_file *, struct mddev *);
void (*error_handler)(struct mddev *, struct md_rdev *);
int (*hot_add_disk)(struct mddev *, struct md_rdev *);
int (*hot_remove_disk)(struct mddev *, struct md_rdev *);
int (*spare_active)(struct mddev *);
sector_t (*sync_request)(struct mddev *, sector_t, int *);
int (*resize)(struct mddev *, sector_t);
sector_t (*size)(struct mddev *, sector_t, int);
int (*check_reshape)(struct mddev *);
int (*start_reshape)(struct mddev *);
void (*finish_reshape)(struct mddev *);
void (*update_reshape_pos)(struct mddev *);
void (*prepare_suspend)(struct mddev *);
void (*quiesce)(struct mddev *, int);
void * (*takeover)(struct mddev *);
int (*change_consistency_policy)(struct mddev *, const char *);
};
struct badblocks {
struct device *dev;
int count;
int unacked_exist;
int shift;
u64 *page;
int changed;
seqlock_t lock;
sector_t sector;
sector_t size;
};
struct rchan_callbacks;
struct rchan_buf;
struct rchan {
u32 version;
size_t subbuf_size;
size_t n_subbufs;
size_t alloc_size;
const struct rchan_callbacks *cb;
struct kref kref;
void *private_data;
size_t last_toobig;
struct rchan_buf * __attribute__((btf_type_tag("percpu"))) *buf;
int is_global;
struct list_head list;
struct dentry *parent;
int has_base_filename;
char base_filename[255];
};
struct rchan_callbacks {
int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t);
struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *);
int (*remove_buf_file)(struct dentry *);
};
struct rchan_buf {
void *start;
void *data;
size_t offset;
size_t subbufs_produced;
size_t subbufs_consumed;
struct rchan *chan;
wait_queue_head_t read_wait;
struct irq_work wakeup_work;
struct dentry *dentry;
struct kref kref;
struct page **page_array;
unsigned int page_count;
unsigned int finalized;
size_t *padding;
size_t prev_padding;
size_t bytes_consumed;
size_t early_bytes;
unsigned int cpu;
long: 64;
long: 64;
long: 64;
};
struct md_cluster_info;
struct md_thread;
struct bitmap;
struct mddev {
void *private;
struct md_personality *pers;
dev_t unit;
int md_minor;
struct list_head disks;
unsigned long flags;
unsigned long sb_flags;
int suspended;
struct mutex suspend_mutex;
struct percpu_ref active_io;
int ro;
int sysfs_active;
struct gendisk *gendisk;
struct kobject kobj;
int hold_active;
int major_version;
int minor_version;
int patch_version;
int persistent;
int external;
char metadata_type[17];
int chunk_sectors;
time64_t ctime;
time64_t utime;
int level;
int layout;
char clevel[16];
int raid_disks;
int max_disks;
sector_t dev_sectors;
sector_t array_sectors;
int external_size;
__u64 events;
int can_decrease_events;
char uuid[16];
sector_t reshape_position;
int delta_disks;
int new_level;
int new_layout;
int new_chunk_sectors;
int reshape_backwards;
struct md_thread __attribute__((btf_type_tag("rcu"))) *thread;
struct md_thread __attribute__((btf_type_tag("rcu"))) *sync_thread;
char *last_sync_action;
sector_t curr_resync;
sector_t curr_resync_completed;
unsigned long resync_mark;
sector_t resync_mark_cnt;
sector_t curr_mark_cnt;
sector_t resync_max_sectors;
atomic64_t resync_mismatches;
sector_t suspend_lo;
sector_t suspend_hi;
int sync_speed_min;
int sync_speed_max;
int parallel_resync;
int ok_start_degraded;
unsigned long recovery;
int recovery_disabled;
int in_sync;
struct mutex open_mutex;
struct mutex reconfig_mutex;
atomic_t active;
atomic_t openers;
int changed;
int degraded;
atomic_t recovery_active;
wait_queue_head_t recovery_wait;
sector_t recovery_cp;
sector_t resync_min;
sector_t resync_max;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_action;
struct kernfs_node *sysfs_completed;
struct kernfs_node *sysfs_degraded;
struct kernfs_node *sysfs_level;
struct work_struct del_work;
struct work_struct sync_work;
spinlock_t lock;
wait_queue_head_t sb_wait;
atomic_t pending_writes;
unsigned int safemode;
unsigned int safemode_delay;
struct timer_list safemode_timer;
struct percpu_ref writes_pending;
int sync_checkers;
struct bitmap *bitmap;
struct {
struct file *file;
loff_t offset;
unsigned long space;
loff_t default_offset;
unsigned long default_space;
struct mutex mutex;
unsigned long chunksize;
unsigned long daemon_sleep;
unsigned long max_write_behind;
int external;
int nodes;
char cluster_name[64];
} bitmap_info;
atomic_t max_corr_read_errors;
struct list_head all_mddevs;
const struct attribute_group *to_remove;
struct bio_set bio_set;
struct bio_set sync_set;
struct bio_set io_clone_set;
struct bio *flush_bio;
atomic_t flush_pending;
ktime_t start_flush;
ktime_t prev_flush_start;
struct work_struct flush_work;
struct work_struct event_work;
mempool_t *serial_info_pool;
void (*sync_super)(struct mddev *, struct md_rdev *);
struct md_cluster_info *cluster_info;
unsigned int good_device_nr;
unsigned int noio_flag;
struct list_head deleting;
struct mutex sync_mutex;
atomic_t sync_seq;
bool has_superblocks: 1;
bool fail_last_dev: 1;
bool serialize_policy: 1;
};
struct md_thread {
void (*run)(struct md_thread *);
struct mddev *mddev;
wait_queue_head_t wqueue;
unsigned long flags;
struct task_struct *tsk;
unsigned long timeout;
void *private;
};
struct bitmap_page;
struct bitmap_counts {
spinlock_t lock;
struct bitmap_page *bp;
unsigned long pages;
unsigned long missing_pages;
unsigned long chunkshift;
unsigned long chunks;
};
struct bitmap_storage {
struct file *file;
struct page *sb_page;
unsigned long sb_index;
struct page **filemap;
unsigned long *filemap_attr;
unsigned long file_pages;
unsigned long bytes;
};
struct bitmap {
struct bitmap_counts counts;
struct mddev *mddev;
__u64 events_cleared;
int need_sync;
struct bitmap_storage storage;
unsigned long flags;
int allclean;
atomic_t behind_writes;
unsigned long behind_writes_used;
unsigned long daemon_lastrun;
unsigned long last_end_sync;
atomic_t pending_writes;
wait_queue_head_t write_wait;
wait_queue_head_t overflow_wait;
wait_queue_head_t behind_wait;
struct kernfs_node *sysfs_can_clear;
int cluster_slot;
};
struct bitmap_page {
char *map;
unsigned int hijacked: 1;
unsigned int pending: 1;
unsigned int count: 30;
};
struct serial_in_rdev;
struct md_rdev {
struct list_head same_set;
sector_t sectors;
struct mddev *mddev;
int last_events;
struct block_device *meta_bdev;
struct block_device *bdev;
struct file *bdev_file;
struct page *sb_page;
struct page *bb_page;
int sb_loaded;
__u64 sb_events;
sector_t data_offset;
sector_t new_data_offset;
sector_t sb_start;
int sb_size;
int preferred_minor;
struct kobject kobj;
unsigned long flags;
wait_queue_head_t blocked_wait;
int desc_nr;
int raid_disk;
int new_raid_disk;
int saved_raid_disk;
union {
sector_t recovery_offset;
sector_t journal_tail;
};
atomic_t nr_pending;
atomic_t read_errors;
time64_t last_read_error;
atomic_t corrected_errors;
struct serial_in_rdev *serial;
struct kernfs_node *sysfs_state;
struct kernfs_node *sysfs_unack_badblocks;
struct kernfs_node *sysfs_badblocks;
struct badblocks badblocks;
struct {
short offset;
unsigned int size;
sector_t sector;
} ppl;
};
struct serial_in_rdev {
struct rb_root_cached serial_rb;
spinlock_t serial_lock;
wait_queue_head_t serial_io_wait;
};
enum req_flag_bits {
__REQ_FAILFAST_DEV = 8,
__REQ_FAILFAST_TRANSPORT = 9,
__REQ_FAILFAST_DRIVER = 10,
__REQ_SYNC = 11,
__REQ_META = 12,
__REQ_PRIO = 13,
__REQ_NOMERGE = 14,
__REQ_IDLE = 15,
__REQ_INTEGRITY = 16,
__REQ_FUA = 17,
__REQ_PREFLUSH = 18,
__REQ_RAHEAD = 19,
__REQ_BACKGROUND = 20,
__REQ_NOWAIT = 21,
__REQ_POLLED = 22,
__REQ_ALLOC_CACHE = 23,
__REQ_SWAP = 24,
__REQ_DRV = 25,
__REQ_FS_PRIVATE = 26,
__REQ_NOUNMAP = 27,
__REQ_NR_BITS = 28,
};
enum recovery_flags {
MD_RECOVERY_RUNNING = 0,
MD_RECOVERY_SYNC = 1,
MD_RECOVERY_RECOVER = 2,
MD_RECOVERY_INTR = 3,
MD_RECOVERY_DONE = 4,
MD_RECOVERY_NEEDED = 5,
MD_RECOVERY_REQUESTED = 6,
MD_RECOVERY_CHECK = 7,
MD_RECOVERY_RESHAPE = 8,
MD_RECOVERY_FROZEN = 9,
MD_RECOVERY_ERROR = 10,
MD_RECOVERY_WAIT = 11,
MD_RESYNCING_REMOTE = 12,
};
enum r10bio_state {
R10BIO_Uptodate = 0,
R10BIO_IsSync = 1,
R10BIO_IsRecover = 2,
R10BIO_IsReshape = 3,
R10BIO_Degraded = 4,
R10BIO_ReadError = 5,
R10BIO_MadeGood = 6,
R10BIO_WriteError = 7,
R10BIO_Previous = 8,
R10BIO_FailFast = 9,
R10BIO_Discard = 10,
};
enum flag_bits {
Faulty = 0,
In_sync = 1,
Bitmap_sync = 2,
WriteMostly = 3,
AutoDetected = 4,
Blocked = 5,
WriteErrorSeen = 6,
FaultRecorded = 7,
BlockedBadBlocks = 8,
WantReplacement = 9,
Replacement = 10,
Candidate = 11,
Journal = 12,
ClusterRemove = 13,
ExternalBbl = 14,
FailFast = 15,
LastDev = 16,
CollisionCheck = 17,
Nonrot = 18,
};
enum mddev_sb_flags {
MD_SB_CHANGE_DEVS = 0,
MD_SB_CHANGE_CLEAN = 1,
MD_SB_CHANGE_PENDING = 2,
MD_SB_NEED_REWRITE = 3,
};
enum bitmap_state {
BITMAP_STALE = 1,
BITMAP_WRITE_ERROR = 2,
BITMAP_HOSTENDIAN = 15,
};
enum mddev_flags {
MD_ARRAY_FIRST_USE = 0,
MD_CLOSING = 1,
MD_JOURNAL_CLEAN = 2,
MD_HAS_JOURNAL = 3,
MD_CLUSTER_RESYNC_LOCKED = 4,
MD_FAILFAST_SUPPORTED = 5,
MD_HAS_PPL = 6,
MD_HAS_MULTIPLE_PPLS = 7,
MD_NOT_READY = 8,
MD_BROKEN = 9,
MD_DELETED = 10,
};
enum geo_type {
geo_new = 0,
geo_old = 1,
geo_start = 2,
};
enum r0layout {
RAID0_ORIG_LAYOUT = 1,
RAID0_ALT_MULTIZONE_LAYOUT = 2,
};
struct r10dev {
struct bio *bio;
union {
struct bio *repl_bio;
struct md_rdev *rdev;
};
sector_t addr;
int devnum;
};
struct r10bio {
atomic_t remaining;
sector_t sector;
int sectors;
unsigned long state;
struct mddev *mddev;
struct bio *master_bio;
int read_slot;
struct list_head retry_list;
struct r10dev devs[0];
};
struct blk_plug_cb;
typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool);
struct blk_plug_cb {
struct list_head list;
blk_plug_cb_fn callback;
void *data;
};
struct raid1_plug_cb {
struct blk_plug_cb cb;
struct bio_list pending;
unsigned int count;
};
struct geom {
int raid_disks;
int near_copies;
int far_copies;
int far_offset;
sector_t stride;
int far_set_size;
int chunk_shift;
sector_t chunk_mask;
};
struct raid10_info;
struct r10conf {
struct mddev *mddev;
struct raid10_info *mirrors;
struct raid10_info *mirrors_new;
struct raid10_info *mirrors_old;
spinlock_t device_lock;
struct geom prev;
struct geom geo;
int copies;
sector_t dev_sectors;
sector_t reshape_progress;
sector_t reshape_safe;
unsigned long reshape_checkpoint;
sector_t offset_diff;
struct list_head retry_list;
struct list_head bio_end_io_list;
struct bio_list pending_bio_list;
seqlock_t resync_lock;
atomic_t nr_pending;
int nr_waiting;
int nr_queued;
int barrier;
int array_freeze_pending;
sector_t next_resync;
int fullsync;
int have_replacement;
wait_queue_head_t wait_barrier;
mempool_t r10bio_pool;
mempool_t r10buf_pool;
struct page *tmppage;
struct bio_set bio_split;
struct md_thread __attribute__((btf_type_tag("rcu"))) *thread;
sector_t cluster_sync_low;
sector_t cluster_sync_high;
};
struct raid10_info {
struct md_rdev *rdev;
struct md_rdev *replacement;
sector_t head_position;
int recovery_disabled;
};
struct resync_pages {
void *raid_bio;
struct page *pages[16];
};
struct mdp_superblock_1 {
__le32 magic;
__le32 major_version;
__le32 feature_map;
__le32 pad0;
__u8 set_uuid[16];
char set_name[32];
__le64 ctime;
__le32 level;
__le32 layout;
__le64 size;
__le32 chunksize;
__le32 raid_disks;
union {
__le32 bitmap_offset;
struct {
__le16 offset;
__le16 size;
} ppl;
};
__le32 new_level;
__le64 reshape_position;
__le32 delta_disks;
__le32 new_layout;
__le32 new_chunk;
__le32 new_offset;
__le64 data_offset;
__le64 data_size;
__le64 super_offset;
union {
__le64 recovery_offset;
__le64 journal_tail;
};
__le32 dev_number;
__le32 cnt_corrected_read;
__u8 device_uuid[16];
__u8 devflags;
__u8 bblog_shift;
__le16 bblog_size;
__le32 bblog_offset;
__le64 utime;
__le64 events;
__le64 resync_offset;
__le32 sb_csum;
__le32 max_dev;
__u8 pad3[32];
__le16 dev_roles[0];
};
struct rsync_pages;
struct strip_zone;
struct r0conf {
struct strip_zone *strip_zone;
struct md_rdev **devlist;
int nr_strip_zones;
enum r0layout layout;
};
struct strip_zone {
sector_t zone_end;
sector_t dev_start;
int nb_dev;
int disk_shift;
};
struct nf_loginfo {
u_int8_t type;
union {
struct {
u_int32_t copy_len;
u_int16_t group;
u_int16_t qthreshold;
u_int16_t flags;
} ulog;
struct {
u_int8_t level;
u_int8_t logflags;
} log;
} u;
};
struct nf_hook_ops;
struct nf_ct_bridge_info {
struct nf_hook_ops *ops;
unsigned int ops_size;
struct module *me;
};
enum nf_hook_ops_type {
NF_HOOK_OP_UNDEFINED = 0,
NF_HOOK_OP_NF_TABLES = 1,
NF_HOOK_OP_BPF = 2,
};
struct nf_hook_ops {
nf_hookfn *hook;
struct net_device *dev;
void *priv;
u8 pf;
enum nf_hook_ops_type hook_ops_type: 8;
unsigned int hooknum;
int priority;
};
struct nf_sockopt_ops {
struct list_head list;
u_int8_t pf;
int set_optmin;
int set_optmax;
int (*set)(struct sock *, int, sockptr_t, unsigned int);
int get_optmin;
int get_optmax;
int (*get)(struct sock *, int, void __attribute__((btf_type_tag("user"))) *, int *);
struct module *owner;
};
enum ip_conntrack_status {
IPS_EXPECTED_BIT = 0,
IPS_EXPECTED = 1,
IPS_SEEN_REPLY_BIT = 1,
IPS_SEEN_REPLY = 2,
IPS_ASSURED_BIT = 2,
IPS_ASSURED = 4,
IPS_CONFIRMED_BIT = 3,
IPS_CONFIRMED = 8,
IPS_SRC_NAT_BIT = 4,
IPS_SRC_NAT = 16,
IPS_DST_NAT_BIT = 5,
IPS_DST_NAT = 32,
IPS_NAT_MASK = 48,
IPS_SEQ_ADJUST_BIT = 6,
IPS_SEQ_ADJUST = 64,
IPS_SRC_NAT_DONE_BIT = 7,
IPS_SRC_NAT_DONE = 128,
IPS_DST_NAT_DONE_BIT = 8,
IPS_DST_NAT_DONE = 256,
IPS_NAT_DONE_MASK = 384,
IPS_DYING_BIT = 9,
IPS_DYING = 512,
IPS_FIXED_TIMEOUT_BIT = 10,
IPS_FIXED_TIMEOUT = 1024,
IPS_TEMPLATE_BIT = 11,
IPS_TEMPLATE = 2048,
IPS_UNTRACKED_BIT = 12,
IPS_UNTRACKED = 4096,
IPS_NAT_CLASH_BIT = 12,
IPS_NAT_CLASH = 4096,
IPS_HELPER_BIT = 13,
IPS_HELPER = 8192,
IPS_OFFLOAD_BIT = 14,
IPS_OFFLOAD = 16384,
IPS_HW_OFFLOAD_BIT = 15,
IPS_HW_OFFLOAD = 32768,
IPS_UNCHANGEABLE_MASK = 56313,
__IPS_MAX_BIT = 16,
};
enum tcp_conntrack {
TCP_CONNTRACK_NONE = 0,
TCP_CONNTRACK_SYN_SENT = 1,
TCP_CONNTRACK_SYN_RECV = 2,
TCP_CONNTRACK_ESTABLISHED = 3,
TCP_CONNTRACK_FIN_WAIT = 4,
TCP_CONNTRACK_CLOSE_WAIT = 5,
TCP_CONNTRACK_LAST_ACK = 6,
TCP_CONNTRACK_TIME_WAIT = 7,
TCP_CONNTRACK_CLOSE = 8,
TCP_CONNTRACK_LISTEN = 9,
TCP_CONNTRACK_MAX = 10,
TCP_CONNTRACK_IGNORE = 11,
TCP_CONNTRACK_RETRANS = 12,
TCP_CONNTRACK_UNACK = 13,
TCP_CONNTRACK_TIMEOUT_MAX = 14,
};
struct nf_conntrack_expect_policy;
struct nf_conntrack_helper {
struct hlist_node hnode;
char name[16];
refcount_t refcnt;
struct module *me;
const struct nf_conntrack_expect_policy *expect_policy;
struct nf_conntrack_tuple tuple;
int (*help)(struct sk_buff *, unsigned int, struct nf_conn *, enum ip_conntrack_info);
void (*destroy)(struct nf_conn *);
int (*from_nlattr)(struct nlattr *, struct nf_conn *);
int (*to_nlattr)(struct sk_buff *, const struct nf_conn *);
unsigned int expect_class_max;
unsigned int flags;
unsigned int queue_num;
u16 data_len;
char nat_mod_name[16];
};
struct nf_conntrack_expect_policy {
unsigned int max_expected;
unsigned int timeout;
char name[16];
};
struct nf_conn_help {
struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper;
struct hlist_head expectations;
u8 expecting[4];
long: 0;
char data[32];
};
struct nf_conntrack_net {
atomic_t count;
unsigned int expect_count;
unsigned int users4;
unsigned int users6;
unsigned int users_bridge;
struct ctl_table_header *sysctl_header;
};
struct nf_conntrack_zone {
u16 id;
u8 flags;
u8 dir;
};
struct nf_conntrack_l4proto {
u_int8_t l4proto;
bool allow_clash;
u16 nlattr_size;
bool (*can_early_drop)(const struct nf_conn *);
int (*to_nlattr)(struct sk_buff *, struct nlattr *, struct nf_conn *, bool);
int (*from_nlattr)(struct nlattr **, struct nf_conn *);
int (*tuple_to_nlattr)(struct sk_buff *, const struct nf_conntrack_tuple *);
unsigned int (*nlattr_tuple_size)();
int (*nlattr_to_tuple)(struct nlattr **, struct nf_conntrack_tuple *, u_int32_t);
const struct nla_policy *nla_policy;
struct {
int (*nlattr_to_obj)(struct nlattr **, struct net *, void *);
int (*obj_to_nlattr)(struct sk_buff *, const void *);
u16 obj_size;
u16 nlattr_max;
const struct nla_policy *nla_policy;
} ctnl_timeout;
void (*print_conntrack)(struct seq_file *, struct nf_conn *);
};
struct sockaddr_in {
__kernel_sa_family_t sin_family;
__be16 sin_port;
struct in_addr sin_addr;
unsigned char __pad[8];
};
struct sockaddr_in6 {
unsigned short sin6_family;
__be16 sin6_port;
__be32 sin6_flowinfo;
struct in6_addr sin6_addr;
__u32 sin6_scope_id;
};
enum inet_csk_ack_state_t {
ICSK_ACK_SCHED = 1,
ICSK_ACK_TIMER = 2,
ICSK_ACK_PUSHED = 4,
ICSK_ACK_PUSHED2 = 8,
ICSK_ACK_NOW = 16,
ICSK_ACK_NOMEM = 32,
};
enum {
BPF_SOCK_OPS_RTO_CB_FLAG = 1,
BPF_SOCK_OPS_RETRANS_CB_FLAG = 2,
BPF_SOCK_OPS_STATE_CB_FLAG = 4,
BPF_SOCK_OPS_RTT_CB_FLAG = 8,
BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 16,
BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 32,
BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 64,
BPF_SOCK_OPS_ALL_CB_FLAGS = 127,
};
enum tsq_enum {
TSQ_THROTTLED = 0,
TSQ_QUEUED = 1,
TCP_TSQ_DEFERRED = 2,
TCP_WRITE_TIMER_DEFERRED = 3,
TCP_DELACK_TIMER_DEFERRED = 4,
TCP_MTU_REDUCED_DEFERRED = 5,
TCP_ACK_DEFERRED = 6,
};
struct ip6_ra_chain {
struct ip6_ra_chain *next;
struct sock *sk;
int sel;
void (*destructor)(struct sock *);
};
struct seg6_pernet_data {
struct mutex lock;
struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src;
};
enum sock_type {
SOCK_STREAM = 1,
SOCK_DGRAM = 2,
SOCK_RAW = 3,
SOCK_RDM = 4,
SOCK_SEQPACKET = 5,
SOCK_DCCP = 6,
SOCK_PACKET = 10,
};
enum {
INET_ECN_NOT_ECT = 0,
INET_ECN_ECT_1 = 1,
INET_ECN_ECT_0 = 2,
INET_ECN_CE = 3,
INET_ECN_MASK = 3,
};
struct udp_sock {
struct inet_sock inet;
unsigned long udp_flags;
int pending;
__u8 encap_type;
__u16 len;
__u16 gso_size;
__u16 pcslen;
__u16 pcrlen;
int (*encap_rcv)(struct sock *, struct sk_buff *);
void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
int (*encap_err_lookup)(struct sock *, struct sk_buff *);
void (*encap_destroy)(struct sock *);
struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *);
int (*gro_complete)(struct sock *, struct sk_buff *, int);
long: 64;
struct sk_buff_head reader_queue;
int forward_deficit;
int forward_threshold;
bool peeking_with_offset;
long: 64;
long: 64;
long: 64;
};
struct ipv6_sr_hdr {
__u8 nexthdr;
__u8 hdrlen;
__u8 type;
__u8 segments_left;
__u8 first_segment;
__u8 flags;
__u16 tag;
struct in6_addr segments[0];
};
struct __kernel_sockaddr_storage {
union {
struct {
__kernel_sa_family_t ss_family;
char __data[126];
};
void *__align;
};
};
struct group_source_req {
__u32 gsr_interface;
struct __kernel_sockaddr_storage gsr_group;
struct __kernel_sockaddr_storage gsr_source;
};
struct compat_group_source_req {
__u32 gsr_interface;
struct __kernel_sockaddr_storage gsr_group;
struct __kernel_sockaddr_storage gsr_source;
} __attribute__((packed));
struct group_filter {
union {
struct {
__u32 gf_interface_aux;
struct __kernel_sockaddr_storage gf_group_aux;
__u32 gf_fmode_aux;
__u32 gf_numsrc_aux;
struct __kernel_sockaddr_storage gf_slist[1];
};
struct {
__u32 gf_interface;
struct __kernel_sockaddr_storage gf_group;
__u32 gf_fmode;
__u32 gf_numsrc;
struct __kernel_sockaddr_storage gf_slist_flex[0];
};
};
};
struct ipv6_mreq {
struct in6_addr ipv6mr_multiaddr;
int ipv6mr_ifindex;
};
struct group_req {
__u32 gr_interface;
struct __kernel_sockaddr_storage gr_group;
};
struct ip6_mtuinfo {
struct sockaddr_in6 ip6m_addr;
__u32 ip6m_mtu;
};
enum mac80211_scan_state {
SCAN_DECISION = 0,
SCAN_SET_CHANNEL = 1,
SCAN_SEND_PROBE = 2,
SCAN_SUSPEND = 3,
SCAN_RESUME = 4,
SCAN_ABORT = 5,
};
enum ieee80211_internal_tkip_state {
TKIP_STATE_NOT_INIT = 0,
TKIP_STATE_PHASE1_DONE = 1,
TKIP_STATE_PHASE1_HW_UPLOADED = 2,
};
enum ieee80211_conn_mode {
IEEE80211_CONN_MODE_S1G = 0,
IEEE80211_CONN_MODE_LEGACY = 1,
IEEE80211_CONN_MODE_HT = 2,
IEEE80211_CONN_MODE_VHT = 3,
IEEE80211_CONN_MODE_HE = 4,
IEEE80211_CONN_MODE_EHT = 5,
};
enum ieee80211_conn_bw_limit {
IEEE80211_CONN_BW_LIMIT_20 = 0,
IEEE80211_CONN_BW_LIMIT_40 = 1,
IEEE80211_CONN_BW_LIMIT_80 = 2,
IEEE80211_CONN_BW_LIMIT_160 = 3,
IEEE80211_CONN_BW_LIMIT_320 = 4,
};
struct wiphy_delayed_work {
struct wiphy_work work;
struct wiphy *wiphy;
struct timer_list timer;
};
struct ieee80211_sta_tx_tspec {
unsigned long time_slice_start;
u32 admitted_time;
u8 tsid;
s8 up;
u32 consumed_tx_time;
enum {
TX_TSPEC_ACTION_NONE = 0,
TX_TSPEC_ACTION_DOWNGRADE = 1,
TX_TSPEC_ACTION_STOP_DOWNGRADE = 2,
} action;
bool downgraded;
};
struct ieee80211_adv_ttlm_info {
u16 switch_time;
u32 duration;
u16 map;
bool active;
};
struct ieee80211_mgd_auth_data;
struct ieee80211_mgd_assoc_data;
struct ieee80211_if_managed {
struct timer_list timer;
struct timer_list conn_mon_timer;
struct timer_list bcn_mon_timer;
struct wiphy_work monitor_work;
struct wiphy_work beacon_connection_loss_work;
struct wiphy_work csa_connection_drop_work;
unsigned long beacon_timeout;
unsigned long probe_timeout;
int probe_send_count;
bool nullfunc_failed;
u8 connection_loss: 1;
u8 driver_disconnect: 1;
u8 reconnect: 1;
u8 associated: 1;
struct ieee80211_mgd_auth_data *auth_data;
struct ieee80211_mgd_assoc_data *assoc_data;
bool powersave;
bool broken_ap;
unsigned int flags;
u16 mcast_seq_last;
bool status_acked;
bool status_received;
__le16 status_fc;
enum {
IEEE80211_MFP_DISABLED = 0,
IEEE80211_MFP_OPTIONAL = 1,
IEEE80211_MFP_REQUIRED = 2,
} mfp;
unsigned int uapsd_queues;
unsigned int uapsd_max_sp_len;
u8 use_4addr;
int rssi_min_thold;
int rssi_max_thold;
struct ieee80211_ht_cap ht_capa;
struct ieee80211_ht_cap ht_capa_mask;
struct ieee80211_vht_cap vht_capa;
struct ieee80211_vht_cap vht_capa_mask;
struct ieee80211_s1g_cap s1g_capa;
struct ieee80211_s1g_cap s1g_capa_mask;
u8 tdls_peer[6];
struct wiphy_delayed_work tdls_peer_del_work;
struct sk_buff *orig_teardown_skb;
struct sk_buff *teardown_skb;
spinlock_t teardown_lock;
bool tdls_wider_bw_prohibited;
struct ieee80211_sta_tx_tspec tx_tspec[4];
struct wiphy_delayed_work tx_tspec_wk;
u8 *assoc_req_ies;
size_t assoc_req_ies_len;
struct wiphy_delayed_work ml_reconf_work;
u16 removed_links;
struct wiphy_delayed_work ttlm_work;
struct ieee80211_adv_ttlm_info ttlm_info;
u8 dialog_token_alloc;
struct wiphy_delayed_work neg_ttlm_timeout_work;
};
struct ieee80211_mgd_auth_data {
struct cfg80211_bss *bss;
unsigned long timeout;
int tries;
u16 algorithm;
u16 expected_transaction;
u8 key[13];
u8 key_len;
u8 key_idx;
bool done;
bool waiting;
bool peer_confirmed;
bool timeout_started;
int link_id;
u8 ap_addr[6];
u16 sae_trans;
u16 sae_status;
size_t data_len;
u8 data[0];
};
struct ieee80211_conn_settings {
enum ieee80211_conn_mode mode;
enum ieee80211_conn_bw_limit bw_limit;
};
struct ieee80211_mgd_assoc_data {
struct {
struct cfg80211_bss *bss;
u8 addr[6];
u8 ap_ht_param;
struct ieee80211_vht_cap ap_vht_cap;
long: 0;
size_t elems_len;
u8 *elems;
struct ieee80211_conn_settings conn;
u16 status;
bool disabled;
long: 0;
} __attribute__((packed)) link[15];
u8 ap_addr[6];
const u8 *supp_rates;
u8 supp_rates_len;
unsigned long timeout;
int tries;
u8 prev_ap_addr[6];
u8 ssid[32];
u8 ssid_len;
bool wmm;
bool uapsd;
bool need_beacon;
bool synced;
bool timeout_started;
bool comeback;
bool s1g;
bool spp_amsdu;
unsigned int assoc_link_id;
u8 fils_nonces[32];
u8 fils_kek[64];
size_t fils_kek_len;
size_t ie_len;
u8 *ie_pos;
u8 ie[0];
};
struct beacon_data;
struct ieee80211_if_ibss {
struct timer_list timer;
struct wiphy_work csa_connection_drop_work;
unsigned long last_scan_completed;
u32 basic_rates;
bool fixed_bssid;
bool fixed_channel;
bool privacy;
bool control_port;
bool userspace_handles_dfs;
short: 0;
u8 bssid[6];
u8 ssid[32];
u8 ssid_len;
u8 ie_len;
u8 *ie;
struct cfg80211_chan_def chandef;
unsigned long ibss_join_req;
struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp;
struct ieee80211_ht_cap ht_capa;
struct ieee80211_ht_cap ht_capa_mask;
spinlock_t incomplete_lock;
struct list_head incomplete_stations;
enum {
IEEE80211_IBSS_MLME_SEARCH = 0,
IEEE80211_IBSS_MLME_JOINED = 1,
} state;
};
struct ieee80211_meshconf_ie;
struct beacon_data {
u8 *head;
u8 *tail;
int head_len;
int tail_len;
struct ieee80211_meshconf_ie *meshconf;
u16 cntdwn_counter_offsets[2];
u8 cntdwn_current_counter;
struct cfg80211_mbssid_elems *mbssid_ies;
struct cfg80211_rnr_elems *rnr_ies;
struct callback_head callback_head;
};
struct ieee80211_meshconf_ie {
u8 meshconf_psel;
u8 meshconf_pmetric;
u8 meshconf_congest;
u8 meshconf_synch;
u8 meshconf_auth;
u8 meshconf_form;
u8 meshconf_cap;
};
struct mesh_preq_queue {
struct list_head list;
u8 dst[6];
u8 flags;
};
struct mesh_stats {
__u32 fwded_mcast;
__u32 fwded_unicast;
__u32 fwded_frames;
__u32 dropped_frames_ttl;
__u32 dropped_frames_no_route;
};
struct ps_data {
u8 tim[256];
struct sk_buff_head bc_buf;
atomic_t num_sta_ps;
int dtim_count;
bool dtim_bc_mc;
};
struct mesh_table {
struct hlist_head known_gates;
spinlock_t gates_lock;
struct rhashtable rhead;
struct hlist_head walk_head;
spinlock_t walk_lock;
atomic_t entries;
};
struct mesh_tx_cache {
struct rhashtable rht;
struct hlist_head walk_head;
spinlock_t walk_lock;
};
struct mesh_rmc;
struct ieee80211_mesh_sync_ops;
struct mesh_csa_settings;
struct ieee80211_if_mesh {
struct timer_list housekeeping_timer;
struct timer_list mesh_path_timer;
struct timer_list mesh_path_root_timer;
unsigned long wrkq_flags;
unsigned long mbss_changed[1];
bool userspace_handles_dfs;
u8 mesh_id[32];
size_t mesh_id_len;
u8 mesh_pp_id;
u8 mesh_pm_id;
u8 mesh_cc_id;
u8 mesh_sp_id;
u8 mesh_auth_id;
u32 sn;
u32 preq_id;
atomic_t mpaths;
unsigned long last_sn_update;
unsigned long next_perr;
unsigned long last_preq;
struct mesh_rmc *rmc;
spinlock_t mesh_preq_queue_lock;
struct mesh_preq_queue preq_queue;
int preq_queue_len;
struct mesh_stats mshstats;
struct mesh_config mshcfg;
atomic_t estab_plinks;
atomic_t mesh_seqnum;
bool accepting_plinks;
int num_gates;
struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon;
const u8 *ie;
u8 ie_len;
enum {
IEEE80211_MESH_SEC_NONE = 0,
IEEE80211_MESH_SEC_AUTHED = 1,
IEEE80211_MESH_SEC_SECURED = 2,
} security;
bool user_mpm;
const struct ieee80211_mesh_sync_ops *sync_ops;
s64 sync_offset_clockdrift_max;
spinlock_t sync_offset_lock;
enum nl80211_mesh_power_mode nonpeer_pm;
int ps_peers_light_sleep;
int ps_peers_deep_sleep;
struct ps_data ps;
struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa;
enum {
IEEE80211_MESH_CSA_ROLE_NONE = 0,
IEEE80211_MESH_CSA_ROLE_INIT = 1,
IEEE80211_MESH_CSA_ROLE_REPEATER = 2,
} csa_role;
u8 chsw_ttl;
u16 pre_value;
int meshconf_offset;
struct mesh_table mesh_paths;
struct mesh_table mpp_paths;
int mesh_paths_generation;
int mpp_paths_generation;
struct mesh_tx_cache tx_cache;
};
struct ieee80211_sub_if_data;
struct ieee80211_mesh_sync_ops {
void (*rx_bcn_presp)(struct ieee80211_sub_if_data *, u16, struct ieee80211_mgmt *, unsigned int, const struct ieee80211_meshconf_ie *, struct ieee80211_rx_status *);
void (*adjust_tsf)(struct ieee80211_sub_if_data *, struct beacon_data *);
};
struct ieee80211_if_ap {
struct list_head vlans;
struct ps_data ps;
atomic_t num_mcast_sta;
bool multicast_to_unicast;
bool active;
};
struct sta_info;
struct ieee80211_if_vlan {
struct list_head list;
struct sta_info __attribute__((btf_type_tag("rcu"))) *sta;
atomic_t num_mcast_sta;
};
struct ieee80211_if_ocb {
struct timer_list housekeeping_timer;
unsigned long wrkq_flags;
spinlock_t incomplete_lock;
struct list_head incomplete_stations;
bool joined;
};
struct ieee80211_if_mntr {
u32 flags;
u8 mu_follow_addr[6];
struct list_head list;
};
struct ieee80211_if_nan {
struct cfg80211_nan_conf conf;
spinlock_t func_lock;
struct idr function_inst_ids;
};
struct ieee80211_fragment_entry {
struct sk_buff_head skb_list;
unsigned long first_frag_time;
u16 seq;
u16 extra_len;
u16 last_frag;
u8 rx_queue;
u8 check_sequential_pn: 1;
u8 is_protected: 1;
u8 last_pn[6];
unsigned int key_color;
};
struct ieee80211_fragment_cache {
struct ieee80211_fragment_entry entries[4];
unsigned int next;
};
struct ewma_beacon_signal {
unsigned long internal;
};
struct ieee80211_link_data_managed {
u8 bssid[6];
u8 dtim_period;
enum ieee80211_smps_mode req_smps;
enum ieee80211_smps_mode driver_smps_mode;
struct ieee80211_conn_settings conn;
s16 p2p_noa_index;
bool tdls_chan_switch_prohibited;
bool have_beacon;
bool tracking_signal_avg;
bool disable_wmm_tracking;
bool operating_11g_mode;
bool csa_waiting_bcn;
bool csa_ignored_same_chan;
struct wiphy_delayed_work chswitch_work;
struct wiphy_work request_smps_work;
struct wiphy_work recalc_smps;
bool beacon_crc_valid;
u32 beacon_crc;
struct ewma_beacon_signal ave_beacon_signal;
int last_ave_beacon_signal;
unsigned int count_beacon_signal;
unsigned int beacon_loss_count;
int last_cqm_event_signal;
int wmm_last_param_set;
int mu_edca_last_param_set;
u8 bss_param_ch_cnt;
};
struct probe_resp;
struct fils_discovery_data;
struct unsol_bcast_probe_resp_data;
struct ieee80211_link_data_ap {
struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon;
struct probe_resp __attribute__((btf_type_tag("rcu"))) *probe_resp;
struct fils_discovery_data __attribute__((btf_type_tag("rcu"))) *fils_discovery;
struct unsol_bcast_probe_resp_data __attribute__((btf_type_tag("rcu"))) *unsol_bcast_probe_resp;
struct cfg80211_beacon_data *next_beacon;
};
struct ieee80211_key;
struct ieee80211_chanctx;
struct ieee80211_link_data {
struct ieee80211_sub_if_data *sdata;
unsigned int link_id;
struct list_head assigned_chanctx_list;
struct list_head reserved_chanctx_list;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8];
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_multicast_key;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_mgmt_key;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_beacon_key;
struct wiphy_work csa_finalize_work;
bool operating_11g_mode;
struct ieee80211_chan_req csa_chanreq;
struct wiphy_work color_change_finalize_work;
struct delayed_work color_collision_detect_work;
u64 color_bitmap;
struct ieee80211_chanctx *reserved_chanctx;
struct ieee80211_chan_req reserved;
bool reserved_radar_required;
bool reserved_ready;
u8 needed_rx_chains;
enum ieee80211_smps_mode smps_mode;
int user_power_level;
int ap_power_level;
bool radar_required;
struct wiphy_delayed_work dfs_cac_timer_work;
union {
struct ieee80211_link_data_managed mgd;
struct ieee80211_link_data_ap ap;
} u;
struct ieee80211_tx_queue_params tx_conf[4];
struct ieee80211_bss_conf *conf;
};
struct ieee80211_local;
struct mac80211_qos_map;
struct ieee80211_sub_if_data {
struct list_head list;
struct wireless_dev wdev;
struct list_head key_list;
int crypto_tx_tailroom_needed_cnt;
int crypto_tx_tailroom_pending_dec;
struct wiphy_delayed_work dec_tailroom_needed_wk;
struct net_device *dev;
struct ieee80211_local *local;
unsigned int flags;
unsigned long state;
bool csa_blocked_tx;
char name[16];
struct ieee80211_fragment_cache frags;
u16 noack_map;
u8 wmm_acm;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *keys[4];
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_unicast_key;
u16 sequence_number;
u16 mld_mcast_seq;
__be16 control_port_protocol;
bool control_port_no_encrypt;
bool control_port_no_preauth;
bool control_port_over_nl80211;
atomic_t num_tx_queued;
struct mac80211_qos_map __attribute__((btf_type_tag("rcu"))) *qos_map;
struct wiphy_work work;
struct sk_buff_head skb_queue;
struct sk_buff_head status_queue;
struct ieee80211_if_ap *bss;
u32 rc_rateidx_mask[6];
bool rc_has_mcs_mask[6];
u8 rc_rateidx_mcs_mask[60];
bool rc_has_vht_mcs_mask[6];
u16 rc_rateidx_vht_mcs_mask[48];
u32 beacon_rateidx_mask[6];
bool beacon_rate_set;
union {
struct ieee80211_if_ap ap;
struct ieee80211_if_vlan vlan;
struct ieee80211_if_managed mgd;
struct ieee80211_if_ibss ibss;
struct ieee80211_if_mesh mesh;
struct ieee80211_if_ocb ocb;
struct ieee80211_if_mntr mntr;
struct ieee80211_if_nan nan;
} u;
struct ieee80211_link_data deflink;
struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15];
struct wiphy_work activate_links_work;
u16 desired_active_links;
struct ieee80211_vif vif;
};
struct fq_flow;
struct fq {
struct fq_flow *flows;
unsigned long *flows_bitmap;
struct list_head tin_backlog;
spinlock_t lock;
u32 flows_cnt;
u32 limit;
u32 memory_limit;
u32 memory_usage;
u32 quantum;
u32 backlog;
u32 overlimit;
u32 overmemory;
u32 collisions;
};
typedef u32 codel_time_t;
struct codel_params {
codel_time_t target;
codel_time_t ce_threshold;
codel_time_t interval;
u32 mtu;
bool ecn;
u8 ce_threshold_selector;
u8 ce_threshold_mask;
};
struct arc4_ctx {
u32 S[256];
u32 x;
u32 y;
};
struct codel_vars;
struct rate_control_ref;
struct ieee80211_local {
struct ieee80211_hw hw;
struct fq fq;
struct codel_vars *cvars;
struct codel_params cparams;
spinlock_t active_txq_lock[4];
struct list_head active_txqs[4];
u16 schedule_round[4];
spinlock_t handle_wake_tx_queue_lock;
u16 airtime_flags;
u32 aql_txq_limit_low[4];
u32 aql_txq_limit_high[4];
u32 aql_threshold;
atomic_t aql_total_pending_airtime;
atomic_t aql_ac_pending_airtime[4];
const struct ieee80211_ops *ops;
struct workqueue_struct *workqueue;
unsigned long queue_stop_reasons[16];
int q_stop_reasons[176];
spinlock_t queue_stop_reason_lock;
int open_count;
int monitors;
int cooked_mntrs;
int fif_fcsfail;
int fif_plcpfail;
int fif_control;
int fif_other_bss;
int fif_pspoll;
int fif_probe_req;
bool probe_req_reg;
bool rx_mcast_action_reg;
unsigned int filter_flags;
bool wiphy_ciphers_allocated;
struct cfg80211_chan_def dflt_chandef;
bool emulate_chanctx;
spinlock_t filter_lock;
struct wiphy_work reconfig_filter;
struct netdev_hw_addr_list mc_list;
bool tim_in_locked_section;
bool suspended;
bool suspending;
bool resuming;
bool quiescing;
bool started;
bool in_reconfig;
bool reconfig_failure;
bool wowlan;
struct wiphy_work radar_detected_work;
u8 rx_chains;
u8 sband_allocated;
int tx_headroom;
struct tasklet_struct tasklet;
struct sk_buff_head skb_queue;
struct sk_buff_head skb_queue_unreliable;
spinlock_t rx_path_lock;
spinlock_t tim_lock;
unsigned long num_sta;
struct list_head sta_list;
struct rhltable sta_hash;
struct rhltable link_sta_hash;
struct timer_list sta_cleanup;
int sta_generation;
struct sk_buff_head pending[16];
struct tasklet_struct tx_pending_tasklet;
struct tasklet_struct wake_txqs_tasklet;
atomic_t agg_queue_stop[16];
atomic_t iff_allmultis;
struct rate_control_ref *rate_ctrl;
struct arc4_ctx wep_tx_ctx;
struct arc4_ctx wep_rx_ctx;
u32 wep_iv;
struct list_head interfaces;
struct list_head mon_list;
struct mutex iflist_mtx;
unsigned long scanning;
struct cfg80211_ssid scan_ssid;
struct cfg80211_scan_request *int_scan_req;
struct cfg80211_scan_request __attribute__((btf_type_tag("rcu"))) *scan_req;
struct ieee80211_scan_request *hw_scan_req;
struct cfg80211_chan_def scan_chandef;
enum nl80211_band hw_scan_band;
int scan_channel_idx;
int scan_ies_len;
int hw_scan_ies_bufsize;
struct cfg80211_scan_info scan_info;
struct wiphy_work sched_scan_stopped_work;
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *sched_scan_sdata;
struct cfg80211_sched_scan_request __attribute__((btf_type_tag("rcu"))) *sched_scan_req;
u8 scan_addr[6];
unsigned long leave_oper_channel_time;
enum mac80211_scan_state next_scan_state;
struct wiphy_delayed_work scan_work;
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata;
struct ieee80211_channel *tmp_channel;
struct list_head chanctx_list;
int total_ps_buffered;
bool pspolling;
struct ieee80211_sub_if_data *ps_sdata;
struct wiphy_work dynamic_ps_enable_work;
struct wiphy_work dynamic_ps_disable_work;
struct timer_list dynamic_ps_timer;
struct notifier_block ifa_notifier;
struct notifier_block ifa6_notifier;
int dynamic_ps_forced_timeout;
int user_power_level;
struct work_struct restart_work;
struct wiphy_delayed_work roc_work;
struct list_head roc_list;
struct wiphy_work hw_roc_start;
struct wiphy_work hw_roc_done;
unsigned long hw_roc_start_time;
u64 roc_cookie_counter;
struct idr ack_status_frames;
spinlock_t ack_status_lock;
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *p2p_sdata;
struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *monitor_sdata;
struct ieee80211_chan_req monitor_chanreq;
u8 ext_capa[8];
bool wbrf_supported;
};
struct fq_tin;
struct fq_flow {
struct fq_tin *tin;
struct list_head flowchain;
struct sk_buff_head queue;
u32 backlog;
int deficit;
};
struct fq_tin {
struct list_head new_flows;
struct list_head old_flows;
struct list_head tin_list;
struct fq_flow default_flow;
u32 backlog_bytes;
u32 backlog_packets;
u32 overlimit;
u32 collisions;
u32 flows;
u32 tx_bytes;
u32 tx_packets;
};
struct codel_vars {
u32 count;
u32 lastcount;
bool dropping;
u16 rec_inv_sqrt;
codel_time_t first_above_time;
codel_time_t drop_next;
codel_time_t ldelay;
};
struct tkip_ctx {
u16 p1k[5];
u32 p1k_iv32;
enum ieee80211_internal_tkip_state state;
};
struct tkip_ctx_rx {
struct tkip_ctx ctx;
u32 iv32;
u16 iv16;
};
struct ieee80211_key {
struct ieee80211_local *local;
struct ieee80211_sub_if_data *sdata;
struct sta_info *sta;
struct list_head list;
unsigned int flags;
union {
struct {
spinlock_t txlock;
struct tkip_ctx tx;
struct tkip_ctx_rx rx[16];
u32 mic_failures;
} tkip;
struct {
u8 rx_pn[102];
struct crypto_aead *tfm;
u32 replays;
} ccmp;
struct {
u8 rx_pn[6];
struct crypto_shash *tfm;
u32 replays;
u32 icverrors;
} aes_cmac;
struct {
u8 rx_pn[6];
struct crypto_aead *tfm;
u32 replays;
u32 icverrors;
} aes_gmac;
struct {
u8 rx_pn[102];
struct crypto_aead *tfm;
u32 replays;
} gcmp;
struct {
u8 rx_pn[272];
} gen;
} u;
unsigned int color;
struct ieee80211_key_conf conf;
};
struct airtime_info {
u64 rx_airtime;
u64 tx_airtime;
unsigned long last_active;
s32 deficit;
atomic_t aql_tx_pending;
u32 aql_limit_low;
u32 aql_limit_high;
};
struct tid_ampdu_rx;
struct tid_ampdu_tx;
struct sta_ampdu_mlme {
struct tid_ampdu_rx __attribute__((btf_type_tag("rcu"))) *tid_rx[16];
u8 tid_rx_token[16];
unsigned long tid_rx_timer_expired[1];
unsigned long tid_rx_stop_requested[1];
unsigned long tid_rx_manage_offl[1];
unsigned long agg_session_valid[1];
unsigned long unexpected_agg[1];
struct wiphy_work work;
struct tid_ampdu_tx __attribute__((btf_type_tag("rcu"))) *tid_tx[16];
struct tid_ampdu_tx *tid_start_tx[16];
unsigned long last_addba_req_time[16];
u8 addba_req_num[16];
u8 dialog_token_allocator;
};
struct ieee80211_sta_rx_stats {
unsigned long packets;
unsigned long last_rx;
unsigned long num_duplicates;
unsigned long fragments;
unsigned long dropped;
int last_signal;
u8 chains;
s8 chain_signal_last[4];
u32 last_rate;
struct u64_stats_sync syncp;
u64 bytes;
u64 msdu[17];
};
struct ewma_signal {
unsigned long internal;
};
struct ewma_avg_signal {
unsigned long internal;
};
struct ieee80211_tx_rate {
s8 idx;
u16 count: 5;
u16 flags: 11;
} __attribute__((packed));
struct link_sta_info {
u8 addr[6];
u8 link_id;
u8 op_mode_nss;
u8 capa_nss;
struct rhlist_head link_hash_node;
struct sta_info *sta;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8];
struct ieee80211_sta_rx_stats __attribute__((btf_type_tag("percpu"))) *pcpu_rx_stats;
struct ieee80211_sta_rx_stats rx_stats;
struct {
struct ewma_signal signal;
struct ewma_signal chain_signal[4];
} rx_stats_avg;
struct {
unsigned long filtered;
unsigned long retry_failed;
unsigned long retry_count;
unsigned int lost_packets;
unsigned long last_pkt_time;
u64 msdu_retries[17];
u64 msdu_failed[17];
unsigned long last_ack;
s8 last_ack_signal;
bool ack_signal_filled;
struct ewma_avg_signal avg_ack_signal;
} status_stats;
struct {
u64 packets[4];
u64 bytes[4];
struct ieee80211_tx_rate last_rate;
struct rate_info last_rate_info;
u64 msdu[17];
} tx_stats;
enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
struct ieee80211_link_sta *pub;
};
struct ieee80211_fast_tx;
struct ieee80211_fast_rx;
struct sta_info {
struct list_head list;
struct list_head free_list;
struct callback_head callback_head;
struct rhlist_head hash_node;
u8 addr[6];
struct ieee80211_local *local;
struct ieee80211_sub_if_data *sdata;
struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *ptk[4];
u8 ptk_idx;
struct rate_control_ref *rate_ctrl;
void *rate_ctrl_priv;
spinlock_t rate_ctrl_lock;
spinlock_t lock;
struct ieee80211_fast_tx __attribute__((btf_type_tag("rcu"))) *fast_tx;
struct ieee80211_fast_rx __attribute__((btf_type_tag("rcu"))) *fast_rx;
struct work_struct drv_deliver_wk;
u16 listen_interval;
bool dead;
bool removed;
bool uploaded;
enum ieee80211_sta_state sta_state;
unsigned long _flags;
spinlock_t ps_lock;
struct sk_buff_head ps_tx_buf[4];
struct sk_buff_head tx_filtered[4];
unsigned long driver_buffered_tids;
unsigned long txq_buffered_tids;
u64 assoc_at;
long last_connected;
__le16 last_seq_ctrl[17];
u16 tid_seq[16];
struct airtime_info airtime[4];
u16 airtime_weight;
struct sta_ampdu_mlme ampdu_mlme;
struct codel_params cparams;
u8 reserved_tid;
s8 amsdu_mesh_control;
struct cfg80211_chan_def tdls_chandef;
struct ieee80211_fragment_cache frags;
struct ieee80211_sta_aggregates cur;
struct link_sta_info deflink;
struct link_sta_info __attribute__((btf_type_tag("rcu"))) *link[15];
struct ieee80211_sta sta;
};
struct ieee80211_fast_tx {
struct ieee80211_key *key;
u8 hdr_len;
u8 sa_offs;
u8 da_offs;
u8 pn_offs;
u8 band;
short: 0;
u8 hdr[56];
struct callback_head callback_head;
};
struct ieee80211_fast_rx {
struct net_device *dev;
enum nl80211_iftype vif_type;
u8 vif_addr[6];
u8 rfc1042_hdr[6];
__be16 control_port_protocol;
__le16 expected_ds_bits;
u8 icv_len;
u8 key: 1;
u8 internal_forward: 1;
u8 uses_rss: 1;
u8 da_offs;
u8 sa_offs;
struct callback_head callback_head;
};
struct tid_ampdu_rx {
struct callback_head callback_head;
spinlock_t reorder_lock;
u64 reorder_buf_filtered;
struct sk_buff_head *reorder_buf;
unsigned long *reorder_time;
struct sta_info *sta;
struct timer_list session_timer;
struct timer_list reorder_timer;
unsigned long last_rx;
u16 head_seq_num;
u16 stored_mpdu_num;
u16 ssn;
u16 buf_size;
u16 timeout;
u8 tid;
u8 auto_seq: 1;
u8 removed: 1;
u8 started: 1;
};
struct tid_ampdu_tx {
struct callback_head callback_head;
struct timer_list session_timer;
struct timer_list addba_resp_timer;
struct sk_buff_head pending;
struct sta_info *sta;
unsigned long state;
unsigned long last_tx;
u16 timeout;
u8 dialog_token;
u8 stop_initiator;
bool tx_stop;
u16 buf_size;
u16 ssn;
u16 failed_bar_ssn;
bool bar_pending;
bool amsdu;
u8 tid;
};
struct mac80211_qos_map {
struct cfg80211_qos_map qos_map;
struct callback_head callback_head;
};
enum ieee80211_chanctx_replace_state {
IEEE80211_CHANCTX_REPLACE_NONE = 0,
IEEE80211_CHANCTX_WILL_BE_REPLACED = 1,
IEEE80211_CHANCTX_REPLACES_OTHER = 2,
};
enum ieee80211_chanctx_mode {
IEEE80211_CHANCTX_SHARED = 0,
IEEE80211_CHANCTX_EXCLUSIVE = 1,
};
struct ieee80211_chanctx {
struct list_head list;
struct callback_head callback_head;
struct list_head assigned_links;
struct list_head reserved_links;
enum ieee80211_chanctx_replace_state replace_state;
struct ieee80211_chanctx *replace_ctx;
enum ieee80211_chanctx_mode mode;
bool driver_present;
struct ieee80211_chan_req req;
struct ieee80211_chanctx_conf conf;
};
struct probe_resp {
struct callback_head callback_head;
int len;
u16 cntdwn_counter_offsets[2];
u8 data[0];
};
struct fils_discovery_data {
struct callback_head callback_head;
int len;
u8 data[0];
};
struct unsol_bcast_probe_resp_data {
struct callback_head callback_head;
int len;
u8 data[0];
};
struct mesh_csa_settings {
struct callback_head callback_head;
struct cfg80211_csa_settings settings;
};
enum {
Root_NFS = 255,
Root_CIFS = 254,
Root_Generic = 253,
Root_RAM0 = 1048576,
};
struct wakeup_header {
u16 video_mode;
u32 pmode_entry;
u16 pmode_cs;
u32 pmode_cr0;
u32 pmode_cr3;
u32 pmode_cr4;
u32 pmode_efer_low;
u32 pmode_efer_high;
u64 pmode_gdt;
u32 pmode_misc_en_low;
u32 pmode_misc_en_high;
u32 pmode_behavior;
u32 realmode_flags;
u32 real_magic;
u32 signature;
} __attribute__((packed));
struct apic_override {
void (*eoi)();
void (*native_eoi)();
void (*write)(u32, u32);
u32 (*read)(u32);
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
int (*wakeup_secondary_cpu)(u32, unsigned long);
int (*wakeup_secondary_cpu_64)(u32, unsigned long);
};
struct apic {
void (*eoi)();
void (*native_eoi)();
void (*write)(u32, u32);
u32 (*read)(u32);
void (*wait_icr_idle)();
u32 (*safe_wait_icr_idle)();
void (*send_IPI)(int, int);
void (*send_IPI_mask)(const struct cpumask *, int);
void (*send_IPI_mask_allbutself)(const struct cpumask *, int);
void (*send_IPI_allbutself)(int);
void (*send_IPI_all)(int);
void (*send_IPI_self)(int);
u32 disable_esr: 1;
u32 dest_mode_logical: 1;
u32 x2apic_set_max_apicid: 1;
u32 nmi_to_offline_cpu: 1;
u32 (*calc_dest_apicid)(unsigned int);
u64 (*icr_read)();
void (*icr_write)(u32, u32);
u32 max_apic_id;
int (*probe)();
int (*acpi_madt_oem_check)(char *, char *);
void (*init_apic_ldr)();
u32 (*cpu_present_to_apicid)(int);
u32 (*get_apic_id)(u32);
int (*wakeup_secondary_cpu)(u32, unsigned long);
int (*wakeup_secondary_cpu_64)(u32, unsigned long);
char *name;
};
enum fixed_addresses {
VSYSCALL_PAGE = 511,
FIX_DBGP_BASE = 512,
FIX_EARLYCON_MEM_BASE = 513,
FIX_APIC_BASE = 514,
FIX_IO_APIC_BASE_0 = 515,
FIX_IO_APIC_BASE_END = 642,
__end_of_permanent_fixed_addresses = 643,
FIX_BTMAP_END = 1024,
FIX_BTMAP_BEGIN = 1535,
__end_of_fixed_addresses = 1536,
};
enum {
IORES_MAP_SYSTEM_RAM = 1,
IORES_MAP_ENCRYPTED = 2,
};
enum {
SECTION_MARKED_PRESENT_BIT = 0,
SECTION_HAS_MEM_MAP_BIT = 1,
SECTION_IS_ONLINE_BIT = 2,
SECTION_IS_EARLY_BIT = 3,
SECTION_MAP_LAST_BIT = 4,
};
enum cc_attr {
CC_ATTR_MEM_ENCRYPT = 0,
CC_ATTR_HOST_MEM_ENCRYPT = 1,
CC_ATTR_GUEST_MEM_ENCRYPT = 2,
CC_ATTR_GUEST_STATE_ENCRYPT = 3,
CC_ATTR_GUEST_UNROLL_STRING_IO = 4,
CC_ATTR_GUEST_SEV_SNP = 5,
CC_ATTR_HOTPLUG_DISABLED = 6,
};
enum {
IORES_DESC_NONE = 0,
IORES_DESC_CRASH_KERNEL = 1,
IORES_DESC_ACPI_TABLES = 2,
IORES_DESC_ACPI_NV_STORAGE = 3,
IORES_DESC_PERSISTENT_MEMORY = 4,
IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5,
IORES_DESC_DEVICE_PRIVATE_MEMORY = 6,
IORES_DESC_RESERVED = 7,
IORES_DESC_SOFT_RESERVED = 8,
IORES_DESC_CXL = 9,
};
struct mem_section_usage {
struct callback_head rcu;
unsigned long subsection_map[1];
unsigned long pageblock_flags[0];
};
struct ioremap_desc {
unsigned int flags;
};
struct mem_section {
unsigned long section_mem_map;
struct mem_section_usage *usage;
};
enum {
AFFINITY = 0,
AFFINITY_LIST = 1,
EFFECTIVE = 2,
EFFECTIVE_LIST = 3,
};
enum {
_IRQ_DEFAULT_INIT_FLAGS = 0,
_IRQ_PER_CPU = 512,
_IRQ_LEVEL = 256,
_IRQ_NOPROBE = 1024,
_IRQ_NOREQUEST = 2048,
_IRQ_NOTHREAD = 65536,
_IRQ_NOAUTOEN = 4096,
_IRQ_MOVE_PCNTXT = 16384,
_IRQ_NO_BALANCING = 8192,
_IRQ_NESTED_THREAD = 32768,
_IRQ_PER_CPU_DEVID = 131072,
_IRQ_IS_POLLED = 262144,
_IRQ_DISABLE_UNLAZY = 524288,
_IRQ_HIDDEN = 1048576,
_IRQ_NO_DEBUG = 2097152,
_IRQF_MODIFY_MASK = 2096911,
};
struct k_itimer;
struct itimerspec64;
struct k_clock {
int (*clock_getres)(const clockid_t, struct timespec64 *);
int (*clock_set)(const clockid_t, const struct timespec64 *);
int (*clock_get_timespec)(const clockid_t, struct timespec64 *);
ktime_t (*clock_get_ktime)(const clockid_t);
int (*clock_adj)(const clockid_t, struct __kernel_timex *);
int (*timer_create)(struct k_itimer *);
int (*nsleep)(const clockid_t, int, const struct timespec64 *);
int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *);
int (*timer_del)(struct k_itimer *);
void (*timer_get)(struct k_itimer *, struct itimerspec64 *);
void (*timer_rearm)(struct k_itimer *);
s64 (*timer_forward)(struct k_itimer *, ktime_t);
ktime_t (*timer_remaining)(struct k_itimer *, ktime_t);
int (*timer_try_to_cancel)(struct k_itimer *);
void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool);
void (*timer_wait_running)(struct k_itimer *);
};
enum alarmtimer_restart {
ALARMTIMER_NORESTART = 0,
ALARMTIMER_RESTART = 1,
};
enum alarmtimer_type {
ALARM_REALTIME = 0,
ALARM_BOOTTIME = 1,
ALARM_NUMTYPE = 2,
ALARM_REALTIME_FREEZER = 3,
ALARM_BOOTTIME_FREEZER = 4,
};
struct alarm {
struct timerqueue_node node;
struct hrtimer timer;
enum alarmtimer_restart (*function)(struct alarm *, ktime_t);
enum alarmtimer_type type;
int state;
void *data;
};
struct cpu_timer {
struct timerqueue_node node;
struct timerqueue_head *head;
struct pid *pid;
struct list_head elist;
int firing;
struct task_struct __attribute__((btf_type_tag("rcu"))) *handling;
};
typedef __kernel_timer_t timer_t;
struct sigqueue;
struct k_itimer {
struct list_head list;
struct hlist_node t_hash;
spinlock_t it_lock;
const struct k_clock *kclock;
clockid_t it_clock;
timer_t it_id;
int it_active;
s64 it_overrun;
s64 it_overrun_last;
int it_requeue_pending;
int it_sigev_notify;
ktime_t it_interval;
struct signal_struct *it_signal;
union {
struct pid *it_pid;
struct task_struct *it_process;
};
struct sigqueue *sigq;
union {
struct {
struct hrtimer timer;
} real;
struct cpu_timer cpu;
struct {
struct alarm alarmtimer;
} alarm;
} it;
struct callback_head rcu;
};
struct sigqueue {
struct list_head list;
int flags;
kernel_siginfo_t info;
struct ucounts *ucounts;
};
struct itimerspec64 {
struct timespec64 it_interval;
struct timespec64 it_value;
};
enum tick_dep_bits {
TICK_DEP_BIT_POSIX_TIMER = 0,
TICK_DEP_BIT_PERF_EVENTS = 1,
TICK_DEP_BIT_SCHED = 2,
TICK_DEP_BIT_CLOCK_UNSTABLE = 3,
TICK_DEP_BIT_RCU = 4,
TICK_DEP_BIT_RCU_EXP = 5,
};
enum task_work_notify_mode {
TWA_NONE = 0,
TWA_RESUME = 1,
TWA_SIGNAL = 2,
TWA_SIGNAL_NO_IPI = 3,
};
typedef void (*task_work_func_t)(struct callback_head *);
struct ustring_buffer {
char buffer[1024];
};
enum regex_type {
MATCH_FULL = 0,
MATCH_FRONT_ONLY = 1,
MATCH_MIDDLE_ONLY = 2,
MATCH_END_ONLY = 3,
MATCH_GLOB = 4,
MATCH_INDEX = 5,
};
enum filter_pred_fn {
FILTER_PRED_FN_NOP = 0,
FILTER_PRED_FN_64 = 1,
FILTER_PRED_FN_64_CPUMASK = 2,
FILTER_PRED_FN_S64 = 3,
FILTER_PRED_FN_U64 = 4,
FILTER_PRED_FN_32 = 5,
FILTER_PRED_FN_32_CPUMASK = 6,
FILTER_PRED_FN_S32 = 7,
FILTER_PRED_FN_U32 = 8,
FILTER_PRED_FN_16 = 9,
FILTER_PRED_FN_16_CPUMASK = 10,
FILTER_PRED_FN_S16 = 11,
FILTER_PRED_FN_U16 = 12,
FILTER_PRED_FN_8 = 13,
FILTER_PRED_FN_8_CPUMASK = 14,
FILTER_PRED_FN_S8 = 15,
FILTER_PRED_FN_U8 = 16,
FILTER_PRED_FN_COMM = 17,
FILTER_PRED_FN_STRING = 18,
FILTER_PRED_FN_STRLOC = 19,
FILTER_PRED_FN_STRRELLOC = 20,
FILTER_PRED_FN_PCHAR_USER = 21,
FILTER_PRED_FN_PCHAR = 22,
FILTER_PRED_FN_CPU = 23,
FILTER_PRED_FN_CPU_CPUMASK = 24,
FILTER_PRED_FN_CPUMASK = 25,
FILTER_PRED_FN_CPUMASK_CPU = 26,
FILTER_PRED_FN_FUNCTION = 27,
FILTER_PRED_FN_ = 28,
FILTER_PRED_TEST_VISITED = 29,
};
enum {
FILTER_OTHER = 0,
FILTER_STATIC_STRING = 1,
FILTER_DYN_STRING = 2,
FILTER_RDYN_STRING = 3,
FILTER_PTR_STRING = 4,
FILTER_TRACE_FN = 5,
FILTER_CPUMASK = 6,
FILTER_COMM = 7,
FILTER_CPU = 8,
FILTER_STACKTRACE = 9,
};
enum filter_op_ids {
OP_GLOB = 0,
OP_NE = 1,
OP_EQ = 2,
OP_LE = 3,
OP_LT = 4,
OP_GE = 5,
OP_GT = 6,
OP_BAND = 7,
OP_MAX = 8,
};
enum {
TASK_COMM_LEN = 16,
};
enum {
TOO_MANY_CLOSE = -1,
TOO_MANY_OPEN = -2,
MISSING_QUOTE = -3,
};
enum {
FILT_ERR_NONE = 0,
FILT_ERR_INVALID_OP = 1,
FILT_ERR_TOO_MANY_OPEN = 2,
FILT_ERR_TOO_MANY_CLOSE = 3,
FILT_ERR_MISSING_QUOTE = 4,
FILT_ERR_MISSING_BRACE_OPEN = 5,
FILT_ERR_MISSING_BRACE_CLOSE = 6,
FILT_ERR_OPERAND_TOO_LONG = 7,
FILT_ERR_EXPECT_STRING = 8,
FILT_ERR_EXPECT_DIGIT = 9,
FILT_ERR_ILLEGAL_FIELD_OP = 10,
FILT_ERR_FIELD_NOT_FOUND = 11,
FILT_ERR_ILLEGAL_INTVAL = 12,
FILT_ERR_BAD_SUBSYS_FILTER = 13,
FILT_ERR_TOO_MANY_PREDS = 14,
FILT_ERR_INVALID_FILTER = 15,
FILT_ERR_INVALID_CPULIST = 16,
FILT_ERR_IP_FIELD_ONLY = 17,
FILT_ERR_INVALID_VALUE = 18,
FILT_ERR_NO_FUNCTION = 19,
FILT_ERR_ERRNO = 20,
FILT_ERR_NO_FILTER = 21,
};
enum {
INVERT = 1,
PROCESS_AND = 2,
PROCESS_OR = 4,
};
struct regex;
struct ftrace_event_field;
struct filter_pred {
struct regex *regex;
struct cpumask *mask;
unsigned short *ops;
struct ftrace_event_field *field;
u64 val;
u64 val2;
enum filter_pred_fn fn_num;
int offset;
int not;
int op;
};
typedef int (*regex_match_func)(char *, struct regex *, int);
struct regex {
char pattern[256];
int len;
int field_len;
regex_match_func match;
};
struct ftrace_event_field {
struct list_head link;
const char *name;
const char *type;
int filter_type;
int offset;
int size;
int is_signed;
int len;
};
struct filter_list {
struct list_head list;
struct event_filter *filter;
};
struct filter_parse_error {
int lasterr;
int lasterr_pos;
};
struct function_filter_data {
struct ftrace_ops *ops;
int first_filter;
int first_notrace;
};
typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **);
typedef void (*btf_trace_percpu_alloc_percpu)(void *, unsigned long, bool, bool, size_t, size_t, void *, int, void __attribute__((btf_type_tag("percpu"))) *, size_t, gfp_t);
typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *);
typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t);
typedef void (*btf_trace_percpu_create_chunk)(void *, void *);
typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *);
enum pcpu_fc {
PCPU_FC_AUTO = 0,
PCPU_FC_EMBED = 1,
PCPU_FC_PAGE = 2,
PCPU_FC_NR = 3,
};
struct pcpu_block_md {
int scan_hint;
int scan_hint_start;
int contig_hint;
int contig_hint_start;
int left_free;
int right_free;
int first_free;
int nr_bits;
};
struct pcpu_chunk {
struct list_head list;
int free_bytes;
struct pcpu_block_md chunk_md;
unsigned long *bound_map;
void *base_addr;
unsigned long *alloc_map;
struct pcpu_block_md *md_blocks;
void *data;
bool immutable;
bool isolated;
int start_offset;
int end_offset;
struct obj_cgroup **obj_cgroups;
int nr_pages;
int nr_populated;
int nr_empty_pop_pages;
unsigned long populated[0];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum memcg_stat_item {
MEMCG_SWAP = 44,
MEMCG_SOCK = 45,
MEMCG_PERCPU_B = 46,
MEMCG_VMALLOC = 47,
MEMCG_KMEM = 48,
MEMCG_ZSWAP_B = 49,
MEMCG_ZSWAPPED = 50,
MEMCG_NR_STAT = 51,
};
struct trace_event_raw_percpu_alloc_percpu {
struct trace_entry ent;
unsigned long call_site;
bool reserved;
bool is_atomic;
size_t size;
size_t align;
void *base_addr;
int off;
void __attribute__((btf_type_tag("percpu"))) *ptr;
size_t bytes_alloc;
unsigned long gfp_flags;
char __data[0];
};
struct trace_event_raw_percpu_free_percpu {
struct trace_entry ent;
void *base_addr;
int off;
void __attribute__((btf_type_tag("percpu"))) *ptr;
char __data[0];
};
struct trace_event_raw_percpu_alloc_percpu_fail {
struct trace_entry ent;
bool reserved;
bool is_atomic;
size_t size;
size_t align;
char __data[0];
};
struct trace_event_raw_percpu_create_chunk {
struct trace_entry ent;
void *base_addr;
char __data[0];
};
struct trace_event_raw_percpu_destroy_chunk {
struct trace_entry ent;
void *base_addr;
char __data[0];
};
struct pcpu_group_info {
int nr_units;
unsigned long base_offset;
unsigned int *cpu_map;
};
struct pcpu_alloc_info {
size_t static_size;
size_t reserved_size;
size_t dyn_size;
size_t unit_size;
size_t atom_size;
size_t alloc_size;
size_t __ai_size;
int nr_groups;
struct pcpu_group_info groups[0];
};
struct trace_event_data_offsets_percpu_alloc_percpu {};
struct trace_event_data_offsets_percpu_free_percpu {};
struct trace_event_data_offsets_percpu_alloc_percpu_fail {};
struct trace_event_data_offsets_percpu_create_chunk {};
struct trace_event_data_offsets_percpu_destroy_chunk {};
typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int);
typedef int pcpu_fc_cpu_to_node_fn_t(int);
struct posix_acl_xattr_header {
__le32 a_version;
};
struct posix_acl_xattr_entry {
__le16 e_tag;
__le16 e_perm;
__le32 e_id;
};
struct iomap_iter;
struct iomap_dio_ops {
int (*end_io)(struct kiocb *, ssize_t, int, unsigned int);
void (*submit_io)(const struct iomap_iter *, struct bio *, loff_t);
struct bio_set *bio_set;
};
struct iomap_folio_ops;
struct iomap {
u64 addr;
loff_t offset;
u64 length;
u16 type;
u16 flags;
struct block_device *bdev;
struct dax_device *dax_dev;
void *inline_data;
void *private;
const struct iomap_folio_ops *folio_ops;
u64 validity_cookie;
};
struct iomap_iter {
struct inode *inode;
loff_t pos;
u64 len;
s64 processed;
unsigned int flags;
struct iomap iomap;
struct iomap srcmap;
void *private;
};
struct iomap_folio_ops {
struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int);
void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *);
bool (*iomap_valid)(struct inode *, const struct iomap *);
};
enum {
EXT4_STATE_NEW = 0,
EXT4_STATE_XATTR = 1,
EXT4_STATE_NO_EXPAND = 2,
EXT4_STATE_DA_ALLOC_CLOSE = 3,
EXT4_STATE_EXT_MIGRATE = 4,
EXT4_STATE_NEWENTRY = 5,
EXT4_STATE_MAY_INLINE_DATA = 6,
EXT4_STATE_EXT_PRECACHED = 7,
EXT4_STATE_LUSTRE_EA_INODE = 8,
EXT4_STATE_VERITY_IN_PROGRESS = 9,
EXT4_STATE_FC_COMMITTING = 10,
EXT4_STATE_ORPHAN_FILE = 11,
};
enum {
EXT4_MF_MNTDIR_SAMPLED = 0,
EXT4_MF_FC_INELIGIBLE = 1,
};
struct iomap_ops {
int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *);
int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *);
};
struct fname;
struct dir_private_info {
struct rb_root root;
struct rb_node *curr_node;
struct fname *extra_fname;
loff_t last_pos;
__u32 curr_hash;
__u32 curr_minor_hash;
__u32 next_hash;
};
enum btrfs_trans_state {
TRANS_STATE_RUNNING = 0,
TRANS_STATE_COMMIT_PREP = 1,
TRANS_STATE_COMMIT_START = 2,
TRANS_STATE_COMMIT_DOING = 3,
TRANS_STATE_UNBLOCKED = 4,
TRANS_STATE_SUPER_COMMITTED = 5,
TRANS_STATE_COMPLETED = 6,
TRANS_STATE_MAX = 7,
};
enum btrfs_chunk_allocation_policy {
BTRFS_CHUNK_ALLOC_REGULAR = 0,
BTRFS_CHUNK_ALLOC_ZONED = 1,
};
enum btrfs_read_policy {
BTRFS_READ_POLICY_PID = 0,
BTRFS_NR_READ_POLICY = 1,
};
enum btrfs_trim_state {
BTRFS_TRIM_STATE_UNTRIMMED = 0,
BTRFS_TRIM_STATE_TRIMMED = 1,
BTRFS_TRIM_STATE_TRIMMING = 2,
};
enum btrfs_discard_state {
BTRFS_DISCARD_EXTENTS = 0,
BTRFS_DISCARD_BITMAPS = 1,
BTRFS_DISCARD_RESET_CURSOR = 2,
};
enum btrfs_block_group_size_class {
BTRFS_BG_SZ_NONE = 0,
BTRFS_BG_SZ_SMALL = 1,
BTRFS_BG_SZ_MEDIUM = 2,
BTRFS_BG_SZ_LARGE = 3,
};
enum btrfs_reserve_flush_enum {
BTRFS_RESERVE_NO_FLUSH = 0,
BTRFS_RESERVE_FLUSH_LIMIT = 1,
BTRFS_RESERVE_FLUSH_EVICT = 2,
BTRFS_RESERVE_FLUSH_DATA = 3,
BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE = 4,
BTRFS_RESERVE_FLUSH_ALL = 5,
BTRFS_RESERVE_FLUSH_ALL_STEAL = 6,
BTRFS_RESERVE_FLUSH_EMERGENCY = 7,
};
enum btrfs_chunk_alloc_enum {
CHUNK_ALLOC_NO_FORCE = 0,
CHUNK_ALLOC_LIMITED = 1,
CHUNK_ALLOC_FORCE = 2,
CHUNK_ALLOC_FORCE_FOR_EXTENT = 3,
};
enum {
BTRFS_MOUNT_NODATASUM = 1,
BTRFS_MOUNT_NODATACOW = 2,
BTRFS_MOUNT_NOBARRIER = 4,
BTRFS_MOUNT_SSD = 8,
BTRFS_MOUNT_DEGRADED = 16,
BTRFS_MOUNT_COMPRESS = 32,
BTRFS_MOUNT_NOTREELOG = 64,
BTRFS_MOUNT_FLUSHONCOMMIT = 128,
BTRFS_MOUNT_SSD_SPREAD = 256,
BTRFS_MOUNT_NOSSD = 512,
BTRFS_MOUNT_DISCARD_SYNC = 1024,
BTRFS_MOUNT_FORCE_COMPRESS = 2048,
BTRFS_MOUNT_SPACE_CACHE = 4096,
BTRFS_MOUNT_CLEAR_CACHE = 8192,
BTRFS_MOUNT_USER_SUBVOL_RM_ALLOWED = 16384,
BTRFS_MOUNT_ENOSPC_DEBUG = 32768,
BTRFS_MOUNT_AUTO_DEFRAG = 65536,
BTRFS_MOUNT_USEBACKUPROOT = 131072,
BTRFS_MOUNT_SKIP_BALANCE = 262144,
BTRFS_MOUNT_PANIC_ON_FATAL_ERROR = 524288,
BTRFS_MOUNT_RESCAN_UUID_TREE = 1048576,
BTRFS_MOUNT_FRAGMENT_DATA = 2097152,
BTRFS_MOUNT_FRAGMENT_METADATA = 4194304,
BTRFS_MOUNT_FREE_SPACE_TREE = 8388608,
BTRFS_MOUNT_NOLOGREPLAY = 16777216,
BTRFS_MOUNT_REF_VERIFY = 33554432,
BTRFS_MOUNT_DISCARD_ASYNC = 67108864,
BTRFS_MOUNT_IGNOREBADROOTS = 134217728,
BTRFS_MOUNT_IGNOREDATACSUMS = 268435456,
BTRFS_MOUNT_NODISCARD = 536870912,
BTRFS_MOUNT_NOSPACECACHE = 1073741824,
};
enum {
BTRFS_ROOT_IN_TRANS_SETUP = 0,
BTRFS_ROOT_SHAREABLE = 1,
BTRFS_ROOT_TRACK_DIRTY = 2,
BTRFS_ROOT_IN_RADIX = 3,
BTRFS_ROOT_ORPHAN_ITEM_INSERTED = 4,
BTRFS_ROOT_DEFRAG_RUNNING = 5,
BTRFS_ROOT_FORCE_COW = 6,
BTRFS_ROOT_MULTI_LOG_TASKS = 7,
BTRFS_ROOT_DIRTY = 8,
BTRFS_ROOT_DELETING = 9,
BTRFS_ROOT_DEAD_RELOC_TREE = 10,
BTRFS_ROOT_DEAD_TREE = 11,
BTRFS_ROOT_HAS_LOG_TREE = 12,
BTRFS_ROOT_QGROUP_FLUSHING = 13,
BTRFS_ROOT_ORPHAN_CLEANUP = 14,
BTRFS_ROOT_UNFINISHED_DROP = 15,
BTRFS_ROOT_RESET_LOCKDEP_CLASS = 16,
};
struct extent_map_tree {
struct rb_root_cached map;
struct list_head modified_extents;
rwlock_t lock;
};
struct btrfs_delayed_node;
struct btrfs_inode {
struct btrfs_root *root;
struct btrfs_key location;
u8 prop_compress;
u8 defrag_compress;
spinlock_t lock;
struct extent_map_tree extent_tree;
struct extent_io_tree io_tree;
struct extent_io_tree *file_extent_tree;
struct mutex log_mutex;
unsigned int outstanding_extents;
spinlock_t ordered_tree_lock;
struct rb_root ordered_tree;
struct rb_node *ordered_tree_last;
struct list_head delalloc_inodes;
struct rb_node rb_node;
unsigned long runtime_flags;
u64 generation;
u64 last_trans;
u64 logged_trans;
int last_sub_trans;
int last_log_commit;
union {
u64 delalloc_bytes;
u64 first_dir_index_to_log;
};
union {
u64 new_delalloc_bytes;
u64 last_dir_index_offset;
};
u64 defrag_bytes;
u64 disk_i_size;
u64 index_cnt;
u64 dir_index;
u64 last_unlink_trans;
u64 last_reflink_trans;
u64 csum_bytes;
u32 flags;
u32 ro_flags;
struct btrfs_block_rsv block_rsv;
struct btrfs_delayed_node *delayed_node;
u64 i_otime_sec;
u32 i_otime_nsec;
struct list_head delayed_iput;
struct rw_semaphore i_mmap_lock;
struct inode vfs_inode;
};
struct btrfs_space_info {
spinlock_t lock;
u64 total_bytes;
u64 bytes_used;
u64 bytes_pinned;
u64 bytes_reserved;
u64 bytes_may_use;
u64 bytes_readonly;
u64 bytes_zone_unusable;
u64 max_extent_size;
u64 chunk_size;
int bg_reclaim_threshold;
int clamp;
unsigned int full: 1;
unsigned int chunk_alloc: 1;
unsigned int flush: 1;
unsigned int force_alloc;
u64 disk_used;
u64 disk_total;
u64 flags;
struct list_head list;
struct list_head ro_bgs;
struct list_head priority_tickets;
struct list_head tickets;
u64 reclaim_size;
u64 tickets_id;
struct rw_semaphore groups_sem;
struct list_head block_groups[9];
struct kobject kobj;
struct kobject *block_group_kobjs[9];
};
struct btrfs_delayed_node {
u64 inode_id;
u64 bytes_reserved;
struct btrfs_root *root;
struct list_head n_list;
struct list_head p_list;
struct rb_root_cached ins_root;
struct rb_root_cached del_root;
struct mutex mutex;
struct btrfs_inode_item inode_item;
refcount_t refs;
u64 index_cnt;
unsigned long flags;
int count;
u32 curr_index_batch_size;
u32 index_item_leaves;
};
struct btrfs_delayed_ref_root {
struct rb_root_cached href_root;
struct rb_root dirty_extent_root;
spinlock_t lock;
atomic_t num_entries;
unsigned long num_heads;
unsigned long num_heads_ready;
u64 pending_csums;
unsigned long flags;
u64 run_delayed_start;
u64 qgroup_to_skip;
};
struct btrfs_transaction {
u64 transid;
atomic_t num_extwriters;
atomic_t num_writers;
refcount_t use_count;
unsigned long flags;
enum btrfs_trans_state state;
int aborted;
struct list_head list;
struct extent_io_tree dirty_pages;
time64_t start_time;
wait_queue_head_t writer_wait;
wait_queue_head_t commit_wait;
struct list_head pending_snapshots;
struct list_head dev_update_list;
struct list_head switch_commits;
struct list_head dirty_bgs;
struct list_head io_bgs;
struct list_head dropped_roots;
struct extent_io_tree pinned_extents;
struct mutex cache_write_mutex;
spinlock_t dirty_bgs_lock;
struct list_head deleted_bgs;
spinlock_t dropped_roots_lock;
struct btrfs_delayed_ref_root delayed_refs;
struct btrfs_fs_info *fs_info;
atomic_t pending_ordered;
wait_queue_head_t pending_wait;
};
struct btrfs_fs_devices {
u8 fsid[16];
u8 metadata_uuid[16];
struct list_head fs_list;
u64 num_devices;
u64 open_devices;
u64 rw_devices;
u64 missing_devices;
u64 total_rw_bytes;
u64 total_devices;
u64 latest_generation;
struct btrfs_device *latest_dev;
struct mutex device_list_mutex;
struct list_head devices;
struct list_head alloc_list;
struct list_head seed_list;
int opened;
bool rotating;
bool discardable;
bool seeding;
bool temp_fsid;
struct btrfs_fs_info *fs_info;
struct kobject fsid_kobj;
struct kobject *devices_kobj;
struct kobject *devinfo_kobj;
struct completion kobj_unregister;
enum btrfs_chunk_allocation_policy chunk_alloc_policy;
enum btrfs_read_policy read_policy;
};
struct rcu_string;
struct btrfs_zoned_device_info;
struct scrub_ctx;
struct btrfs_device {
struct list_head dev_list;
struct list_head dev_alloc_list;
struct list_head post_commit_list;
struct btrfs_fs_devices *fs_devices;
struct btrfs_fs_info *fs_info;
struct rcu_string __attribute__((btf_type_tag("rcu"))) *name;
u64 generation;
struct file *bdev_file;
struct block_device *bdev;
struct btrfs_zoned_device_info *zone_info;
dev_t devt;
unsigned long dev_state;
blk_status_t last_flush_error;
u64 devid;
u64 total_bytes;
u64 disk_total_bytes;
u64 bytes_used;
u32 io_align;
u32 io_width;
u64 type;
u32 sector_size;
u8 uuid[16];
u64 commit_total_bytes;
u64 commit_bytes_used;
struct bio flush_bio;
struct completion flush_wait;
struct scrub_ctx *scrub_ctx;
int dev_stats_valid;
atomic_t dev_stats_ccnt;
atomic_t dev_stat_values[5];
struct extent_io_tree alloc_state;
struct completion kobj_unregister;
struct kobject devid_kobj;
u64 scrub_speed_max;
};
struct rcu_string {
struct callback_head rcu;
char str[0];
};
struct btrfs_io_ctl {
void *cur;
void *orig;
struct page *page;
struct page **pages;
struct btrfs_fs_info *fs_info;
struct inode *inode;
unsigned long size;
int index;
int num_pages;
int entries;
int bitmaps;
};
struct btrfs_caching_control;
struct btrfs_free_space_ctl;
struct btrfs_chunk_map;
struct btrfs_block_group {
struct btrfs_fs_info *fs_info;
struct inode *inode;
spinlock_t lock;
u64 start;
u64 length;
u64 pinned;
u64 reserved;
u64 used;
u64 delalloc_bytes;
u64 bytes_super;
u64 flags;
u64 cache_generation;
u64 global_root_id;
u64 commit_used;
u32 bitmap_high_thresh;
u32 bitmap_low_thresh;
struct rw_semaphore data_rwsem;
unsigned long full_stripe_len;
unsigned long runtime_flags;
unsigned int ro;
int disk_cache_state;
int cached;
struct btrfs_caching_control *caching_ctl;
struct btrfs_space_info *space_info;
struct btrfs_free_space_ctl *free_space_ctl;
struct rb_node cache_node;
struct list_head list;
refcount_t refs;
struct list_head cluster_list;
struct list_head bg_list;
struct list_head ro_list;
atomic_t frozen;
struct list_head discard_list;
int discard_index;
u64 discard_eligible_time;
u64 discard_cursor;
enum btrfs_discard_state discard_state;
struct list_head dirty_list;
struct list_head io_list;
struct btrfs_io_ctl io_ctl;
atomic_t reservations;
atomic_t nocow_writers;
struct mutex free_space_lock;
int swap_extents;
u64 alloc_offset;
u64 zone_unusable;
u64 zone_capacity;
u64 meta_write_pointer;
struct btrfs_chunk_map *physical_map;
struct list_head active_bg_list;
struct work_struct zone_finish_work;
struct extent_buffer *last_eb;
enum btrfs_block_group_size_class size_class;
};
struct btrfs_caching_control {
struct list_head list;
struct mutex mutex;
wait_queue_head_t wait;
struct btrfs_work work;
struct btrfs_block_group *block_group;
atomic_t progress;
refcount_t count;
};
struct btrfs_free_space_op;
struct btrfs_free_space_ctl {
spinlock_t tree_lock;
struct rb_root free_space_offset;
struct rb_root_cached free_space_bytes;
u64 free_space;
int extents_thresh;
int free_extents;
int total_bitmaps;
int unit;
u64 start;
s32 discardable_extents[2];
s64 discardable_bytes[2];
const struct btrfs_free_space_op *op;
struct btrfs_block_group *block_group;
struct mutex cache_writeout_mutex;
struct list_head trimming_ranges;
};
struct btrfs_free_space;
struct btrfs_free_space_op {
bool (*use_bitmap)(struct btrfs_free_space_ctl *, struct btrfs_free_space *);
};
struct btrfs_free_space {
struct rb_node offset_index;
struct rb_node bytes_index;
u64 offset;
u64 bytes;
u64 max_extent_size;
unsigned long *bitmap;
struct list_head list;
enum btrfs_trim_state trim_state;
s32 bitmap_extents;
};
struct btrfs_io_context;
struct btrfs_io_stripe {
struct btrfs_device *dev;
u64 physical;
u64 length;
bool is_scrub;
struct btrfs_io_context *bioc;
};
struct btrfs_chunk_map {
struct rb_node rb_node;
int verified_stripes;
refcount_t refs;
u64 start;
u64 chunk_len;
u64 stripe_size;
u64 type;
int io_align;
int io_width;
int num_stripes;
int sub_stripes;
struct btrfs_io_stripe stripes[0];
};
struct btrfs_io_context {
refcount_t refs;
struct btrfs_fs_info *fs_info;
u64 map_type;
struct bio *orig_bio;
atomic_t error;
u16 max_errors;
u64 logical;
u64 size;
struct list_head rst_ordered_entry;
u16 num_stripes;
u16 mirror_num;
u16 replace_nr_stripes;
s16 replace_stripe_src;
u64 full_stripe_logical;
struct btrfs_io_stripe stripes[0];
};
struct btrfs_balance_args {
__u64 profiles;
union {
__u64 usage;
struct {
__u32 usage_min;
__u32 usage_max;
};
};
__u64 devid;
__u64 pstart;
__u64 pend;
__u64 vstart;
__u64 vend;
__u64 target;
__u64 flags;
union {
__u64 limit;
struct {
__u32 limit_min;
__u32 limit_max;
};
};
__u32 stripes_min;
__u32 stripes_max;
__u64 unused[6];
};
struct btrfs_balance_progress {
__u64 expected;
__u64 considered;
__u64 completed;
};
struct btrfs_balance_control {
struct btrfs_balance_args data;
struct btrfs_balance_args meta;
struct btrfs_balance_args sys;
u64 flags;
struct btrfs_balance_progress stat;
};
struct btrfs_delayed_root {
spinlock_t lock;
struct list_head node_list;
struct list_head prepare_list;
atomic_t items;
atomic_t items_seq;
int nodes;
wait_queue_head_t wait;
};
struct btrfs_pending_snapshot;
struct btrfs_trans_handle {
u64 transid;
u64 bytes_reserved;
u64 delayed_refs_bytes_reserved;
u64 chunk_bytes_reserved;
unsigned long delayed_ref_updates;
unsigned long delayed_ref_csum_deletions;
struct btrfs_transaction *transaction;
struct btrfs_block_rsv *block_rsv;
struct btrfs_block_rsv *orig_rsv;
struct btrfs_pending_snapshot *pending_snapshot;
refcount_t use_count;
unsigned int type;
short aborted;
bool adding_csums;
bool allocating_chunk;
bool removing_chunk;
bool reloc_reserved;
bool in_fsync;
struct btrfs_fs_info *fs_info;
struct list_head new_bgs;
struct btrfs_block_rsv delayed_rsv;
};
struct btrfs_qgroup_inherit;
struct btrfs_pending_snapshot {
struct dentry *dentry;
struct inode *dir;
struct btrfs_root *root;
struct btrfs_root_item *root_item;
struct btrfs_root *snap;
struct btrfs_qgroup_inherit *inherit;
struct btrfs_path *path;
struct btrfs_block_rsv block_rsv;
int error;
dev_t anon_dev;
bool readonly;
struct list_head list;
};
struct btrfs_qgroup_limit {
__u64 flags;
__u64 max_rfer;
__u64 max_excl;
__u64 rsv_rfer;
__u64 rsv_excl;
};
struct btrfs_qgroup_inherit {
__u64 flags;
__u64 num_qgroups;
__u64 num_ref_copies;
__u64 num_excl_copies;
struct btrfs_qgroup_limit lim;
__u64 qgroups[0];
};
struct scatter_walk {
struct scatterlist *sg;
unsigned int offset;
};
enum dma_ctrl_flags {
DMA_PREP_INTERRUPT = 1,
DMA_CTRL_ACK = 2,
DMA_PREP_PQ_DISABLE_P = 4,
DMA_PREP_PQ_DISABLE_Q = 8,
DMA_PREP_CONTINUE = 16,
DMA_PREP_FENCE = 32,
DMA_CTRL_REUSE = 64,
DMA_PREP_CMD = 128,
DMA_PREP_REPEAT = 256,
DMA_PREP_LOAD_EOT = 512,
};
enum dma_desc_metadata_mode {
DESC_METADATA_NONE = 0,
DESC_METADATA_CLIENT = 1,
DESC_METADATA_ENGINE = 2,
};
enum dmaengine_alignment {
DMAENGINE_ALIGN_1_BYTE = 0,
DMAENGINE_ALIGN_2_BYTES = 1,
DMAENGINE_ALIGN_4_BYTES = 2,
DMAENGINE_ALIGN_8_BYTES = 3,
DMAENGINE_ALIGN_16_BYTES = 4,
DMAENGINE_ALIGN_32_BYTES = 5,
DMAENGINE_ALIGN_64_BYTES = 6,
DMAENGINE_ALIGN_128_BYTES = 7,
DMAENGINE_ALIGN_256_BYTES = 8,
};
enum dma_residue_granularity {
DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0,
DMA_RESIDUE_GRANULARITY_SEGMENT = 1,
DMA_RESIDUE_GRANULARITY_BURST = 2,
};
enum sum_check_flags {
SUM_CHECK_P_RESULT = 1,
SUM_CHECK_Q_RESULT = 2,
};
enum dma_transfer_direction {
DMA_MEM_TO_MEM = 0,
DMA_MEM_TO_DEV = 1,
DMA_DEV_TO_MEM = 2,
DMA_DEV_TO_DEV = 3,
DMA_TRANS_NONE = 4,
};
enum dma_slave_buswidth {
DMA_SLAVE_BUSWIDTH_UNDEFINED = 0,
DMA_SLAVE_BUSWIDTH_1_BYTE = 1,
DMA_SLAVE_BUSWIDTH_2_BYTES = 2,
DMA_SLAVE_BUSWIDTH_3_BYTES = 3,
DMA_SLAVE_BUSWIDTH_4_BYTES = 4,
DMA_SLAVE_BUSWIDTH_8_BYTES = 8,
DMA_SLAVE_BUSWIDTH_16_BYTES = 16,
DMA_SLAVE_BUSWIDTH_32_BYTES = 32,
DMA_SLAVE_BUSWIDTH_64_BYTES = 64,
DMA_SLAVE_BUSWIDTH_128_BYTES = 128,
};
enum dma_status {
DMA_COMPLETE = 0,
DMA_IN_PROGRESS = 1,
DMA_PAUSED = 2,
DMA_ERROR = 3,
DMA_OUT_OF_ORDER = 4,
};
enum dmaengine_tx_result {
DMA_TRANS_NOERROR = 0,
DMA_TRANS_READ_FAILED = 1,
DMA_TRANS_WRITE_FAILED = 2,
DMA_TRANS_ABORTED = 3,
};
enum async_tx_flags {
ASYNC_TX_XOR_ZERO_DST = 1,
ASYNC_TX_XOR_DROP_DST = 2,
ASYNC_TX_ACK = 4,
ASYNC_TX_FENCE = 8,
ASYNC_TX_PQ_XOR_DST = 16,
};
enum dma_transaction_type {
DMA_MEMCPY = 0,
DMA_XOR = 1,
DMA_PQ = 2,
DMA_XOR_VAL = 3,
DMA_PQ_VAL = 4,
DMA_MEMSET = 5,
DMA_MEMSET_SG = 6,
DMA_INTERRUPT = 7,
DMA_PRIVATE = 8,
DMA_ASYNC_TX = 9,
DMA_SLAVE = 10,
DMA_CYCLIC = 11,
DMA_INTERLEAVE = 12,
DMA_COMPLETION_NO_ORDER = 13,
DMA_REPEAT = 14,
DMA_LOAD_EOT = 15,
DMA_TX_TYPE_END = 16,
};
typedef void (*dma_async_tx_callback)(void *);
struct dma_async_tx_descriptor;
struct async_submit_ctl {
enum async_tx_flags flags;
struct dma_async_tx_descriptor *depend_tx;
dma_async_tx_callback cb_fn;
void *cb_param;
void *scribble;
};
typedef s32 dma_cookie_t;
struct dmaengine_result;
typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *);
struct dma_chan;
struct dmaengine_unmap_data;
struct dma_descriptor_metadata_ops;
struct dma_async_tx_descriptor {
dma_cookie_t cookie;
enum dma_ctrl_flags flags;
dma_addr_t phys;
struct dma_chan *chan;
dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *);
int (*desc_free)(struct dma_async_tx_descriptor *);
dma_async_tx_callback callback;
dma_async_tx_callback_result callback_result;
void *callback_param;
struct dmaengine_unmap_data *unmap;
enum dma_desc_metadata_mode desc_metadata_mode;
struct dma_descriptor_metadata_ops *metadata_ops;
};
struct dma_device;
struct dma_chan_dev;
struct dma_chan_percpu;
struct dma_router;
struct dma_chan {
struct dma_device *device;
struct device *slave;
dma_cookie_t cookie;
dma_cookie_t completed_cookie;
int chan_id;
struct dma_chan_dev *dev;
const char *name;
char *dbg_client_name;
struct list_head device_node;
struct dma_chan_percpu __attribute__((btf_type_tag("percpu"))) *local;
int client_count;
int table_count;
struct dma_router *router;
void *route_data;
void *private;
};
typedef bool (*dma_filter_fn)(struct dma_chan *, void *);
struct dma_slave_map;
struct dma_filter {
dma_filter_fn fn;
int mapcnt;
const struct dma_slave_map *map;
};
typedef struct {
unsigned long bits[1];
} dma_cap_mask_t;
struct dma_interleaved_template;
struct dma_slave_caps;
struct dma_slave_config;
struct dma_tx_state;
struct dma_device {
struct kref ref;
unsigned int chancnt;
unsigned int privatecnt;
struct list_head channels;
struct list_head global_node;
struct dma_filter filter;
dma_cap_mask_t cap_mask;
enum dma_desc_metadata_mode desc_metadata_modes;
unsigned short max_xor;
unsigned short max_pq;
enum dmaengine_alignment copy_align;
enum dmaengine_alignment xor_align;
enum dmaengine_alignment pq_align;
enum dmaengine_alignment fill_align;
int dev_id;
struct device *dev;
struct module *owner;
struct ida chan_ida;
u32 src_addr_widths;
u32 dst_addr_widths;
u32 directions;
u32 min_burst;
u32 max_burst;
u32 max_sg_burst;
bool descriptor_reuse;
enum dma_residue_granularity residue_granularity;
int (*device_alloc_chan_resources)(struct dma_chan *);
int (*device_router_config)(struct dma_chan *);
void (*device_free_chan_resources)(struct dma_chan *);
struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan *, dma_addr_t, dma_addr_t, size_t, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan *, dma_addr_t, dma_addr_t *, unsigned int, size_t, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan *, dma_addr_t, int, size_t, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan *, struct scatterlist *, unsigned int, int, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan *, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan *, struct scatterlist *, unsigned int, enum dma_transfer_direction, unsigned long, void *);
struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan *, struct dma_interleaved_template *, unsigned long);
struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan *, dma_addr_t, u64, unsigned long);
void (*device_caps)(struct dma_chan *, struct dma_slave_caps *);
int (*device_config)(struct dma_chan *, struct dma_slave_config *);
int (*device_pause)(struct dma_chan *);
int (*device_resume)(struct dma_chan *);
int (*device_terminate_all)(struct dma_chan *);
void (*device_synchronize)(struct dma_chan *);
enum dma_status (*device_tx_status)(struct dma_chan *, dma_cookie_t, struct dma_tx_state *);
void (*device_issue_pending)(struct dma_chan *);
void (*device_release)(struct dma_device *);
void (*dbg_summary_show)(struct seq_file *, struct dma_device *);
struct dentry *dbg_dev_root;
};
struct dma_slave_map {
const char *devname;
const char *slave;
void *param;
};
struct data_chunk {
size_t size;
size_t icg;
size_t dst_icg;
size_t src_icg;
};
struct dma_interleaved_template {
dma_addr_t src_start;
dma_addr_t dst_start;
enum dma_transfer_direction dir;
bool src_inc;
bool dst_inc;
bool src_sgl;
bool dst_sgl;
size_t numf;
size_t frame_size;
struct data_chunk sgl[0];
};
struct dma_slave_caps {
u32 src_addr_widths;
u32 dst_addr_widths;
u32 directions;
u32 min_burst;
u32 max_burst;
u32 max_sg_burst;
bool cmd_pause;
bool cmd_resume;
bool cmd_terminate;
enum dma_residue_granularity residue_granularity;
bool descriptor_reuse;
};
struct dma_slave_config {
enum dma_transfer_direction direction;
phys_addr_t src_addr;
phys_addr_t dst_addr;
enum dma_slave_buswidth src_addr_width;
enum dma_slave_buswidth dst_addr_width;
u32 src_maxburst;
u32 dst_maxburst;
u32 src_port_window_size;
u32 dst_port_window_size;
bool device_fc;
void *peripheral_config;
size_t peripheral_size;
};
struct dma_tx_state {
dma_cookie_t last;
dma_cookie_t used;
u32 residue;
u32 in_flight_bytes;
};
struct dma_chan_dev {
struct dma_chan *chan;
struct device device;
int dev_id;
bool chan_dma_dev;
};
struct dma_chan_percpu {
unsigned long memcpy_count;
unsigned long bytes_transferred;
};
struct dma_router {
struct device *dev;
void (*route_free)(struct device *, void *);
};
struct dmaengine_result {
enum dmaengine_tx_result result;
u32 residue;
};
struct dmaengine_unmap_data {
u8 map_cnt;
u8 to_cnt;
u8 from_cnt;
u8 bidi_cnt;
struct device *dev;
struct kref kref;
size_t len;
dma_addr_t addr[0];
};
struct dma_descriptor_metadata_ops {
int (*attach)(struct dma_async_tx_descriptor *, void *, size_t);
void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *);
int (*set_len)(struct dma_async_tx_descriptor *, size_t);
};
typedef void sg_free_fn(struct scatterlist *, unsigned int);
struct sg_append_table {
struct sg_table sgt;
struct scatterlist *prv;
unsigned int total_nents;
};
struct sg_page_iter {
struct scatterlist *sg;
unsigned int sg_pgoffset;
unsigned int __nents;
int __pg_advance;
};
struct sg_mapping_iter {
struct page *page;
void *addr;
size_t length;
size_t consumed;
struct sg_page_iter piter;
unsigned int __offset;
unsigned int __remaining;
unsigned int __flags;
};
typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t);
struct sg_dma_page_iter {
struct sg_page_iter base;
};
enum drm_panel_orientation {
DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1,
DRM_MODE_PANEL_ORIENTATION_NORMAL = 0,
DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1,
DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2,
DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3,
};
struct screen_info {
__u8 orig_x;
__u8 orig_y;
__u16 ext_mem_k;
__u16 orig_video_page;
__u8 orig_video_mode;
__u8 orig_video_cols;
__u8 flags;
__u8 unused2;
__u16 orig_video_ega_bx;
__u16 unused3;
__u8 orig_video_lines;
__u8 orig_video_isVGA;
__u16 orig_video_points;
__u16 lfb_width;
__u16 lfb_height;
__u16 lfb_depth;
__u32 lfb_base;
__u32 lfb_size;
__u16 cl_magic;
__u16 cl_offset;
__u16 lfb_linelength;
__u8 red_size;
__u8 red_pos;
__u8 green_size;
__u8 green_pos;
__u8 blue_size;
__u8 blue_pos;
__u8 rsvd_size;
__u8 rsvd_pos;
__u16 vesapm_seg;
__u16 vesapm_off;
__u16 pages;
__u16 vesa_attributes;
__u32 capabilities;
__u32 ext_lfb_base;
__u8 _reserved[2];
} __attribute__((packed));
typedef struct {
u32 type;
u32 pad;
u64 phys_addr;
u64 virt_addr;
u64 num_pages;
u64 attribute;
} efi_memory_desc_t;
struct efifb_par {
u32 pseudo_palette[16];
resource_size_t base;
resource_size_t size;
};
struct e1000_fw_version {
u32 etrack_id;
u16 eep_major;
u16 eep_minor;
u16 eep_build;
u8 invm_major;
u8 invm_minor;
u8 invm_img_type;
bool or_valid;
u16 or_major;
u16 or_build;
u16 or_patch;
};
struct ieee80211_radiotap_he {
__le16 data1;
__le16 data2;
__le16 data3;
__le16 data4;
__le16 data5;
__le16 data6;
};
struct ieee80211_radiotap_he_mu {
__le16 flags1;
__le16 flags2;
u8 ru_ch1[4];
u8 ru_ch2[4];
};
enum iwl_tsf_id {
TSF_ID_A = 0,
TSF_ID_B = 1,
TSF_ID_C = 2,
TSF_ID_D = 3,
NUM_TSF_IDS = 4,
};
enum iwl_mvm_queue_status {
IWL_MVM_QUEUE_FREE = 0,
IWL_MVM_QUEUE_RESERVED = 1,
IWL_MVM_QUEUE_READY = 2,
IWL_MVM_QUEUE_SHARED = 3,
};
enum iwl_mvm_scan_type {
IWL_SCAN_TYPE_NOT_SET = 0,
IWL_SCAN_TYPE_UNASSOC = 1,
IWL_SCAN_TYPE_WILD = 2,
IWL_SCAN_TYPE_MILD = 3,
IWL_SCAN_TYPE_FRAGMENTED = 4,
IWL_SCAN_TYPE_FAST_BALANCE = 5,
};
enum iwl_mvm_sched_scan_pass_all_states {
SCHED_SCAN_PASS_ALL_DISABLED = 0,
SCHED_SCAN_PASS_ALL_ENABLED = 1,
SCHED_SCAN_PASS_ALL_FOUND = 2,
};
enum iwl_sf_state {
SF_LONG_DELAY_ON = 0,
SF_FULL_ON = 1,
SF_UNINIT = 2,
SF_INIT_OFF = 3,
SF_HW_NUM_STATES = 4,
};
enum iwl_bt_force_ant_mode {
BT_FORCE_ANT_DIS = 0,
BT_FORCE_ANT_AUTO = 1,
BT_FORCE_ANT_BT = 2,
BT_FORCE_ANT_WIFI = 3,
BT_FORCE_ANT_MAX = 4,
};
enum thermal_trip_type {
THERMAL_TRIP_ACTIVE = 0,
THERMAL_TRIP_PASSIVE = 1,
THERMAL_TRIP_HOT = 2,
THERMAL_TRIP_CRITICAL = 3,
};
enum thermal_device_mode {
THERMAL_DEVICE_DISABLED = 0,
THERMAL_DEVICE_ENABLED = 1,
};
enum thermal_trend {
THERMAL_TREND_STABLE = 0,
THERMAL_TREND_RAISING = 1,
THERMAL_TREND_DROPPING = 2,
};
enum thermal_notify_event {
THERMAL_EVENT_UNSPECIFIED = 0,
THERMAL_EVENT_TEMP_SAMPLE = 1,
THERMAL_TRIP_VIOLATED = 2,
THERMAL_TRIP_CHANGED = 3,
THERMAL_DEVICE_DOWN = 4,
THERMAL_DEVICE_UP = 5,
THERMAL_DEVICE_POWER_CAPABILITY_CHANGED = 6,
THERMAL_TABLE_CHANGED = 7,
THERMAL_EVENT_KEEP_ALIVE = 8,
THERMAL_TZ_BIND_CDEV = 9,
THERMAL_TZ_UNBIND_CDEV = 10,
THERMAL_INSTANCE_WEIGHT_CHANGED = 11,
};
enum iwl_mvm_traffic_load {
IWL_MVM_TRAFFIC_LOW = 0,
IWL_MVM_TRAFFIC_MEDIUM = 1,
IWL_MVM_TRAFFIC_HIGH = 2,
};
enum iwl_mcc_source {
MCC_SOURCE_OLD_FW = 0,
MCC_SOURCE_ME = 1,
MCC_SOURCE_BIOS = 2,
MCC_SOURCE_3G_LTE_HOST = 3,
MCC_SOURCE_3G_LTE_DEVICE = 4,
MCC_SOURCE_WIFI = 5,
MCC_SOURCE_RESERVED = 6,
MCC_SOURCE_DEFAULT = 7,
MCC_SOURCE_UNINITIALIZED = 8,
MCC_SOURCE_MCC_API = 9,
MCC_SOURCE_GET_CURRENT = 16,
MCC_SOURCE_GETTING_MCC_TEST_MODE = 17,
};
enum iwl_mvm_tdls_cs_state {
IWL_MVM_TDLS_SW_IDLE = 0,
IWL_MVM_TDLS_SW_REQ_SENT = 1,
IWL_MVM_TDLS_SW_RESP_RCVD = 2,
IWL_MVM_TDLS_SW_REQ_RCVD = 3,
IWL_MVM_TDLS_SW_ACTIVE = 4,
};
enum iwl_mvm_rxq_notif_type {
IWL_MVM_RXQ_EMPTY = 0,
IWL_MVM_RXQ_NOTIF_DEL_BA = 1,
};
enum iwl_rx_phy_info_type {
IWL_RX_PHY_INFO_TYPE_NONE = 0,
IWL_RX_PHY_INFO_TYPE_CCK = 1,
IWL_RX_PHY_INFO_TYPE_OFDM_LGCY = 2,
IWL_RX_PHY_INFO_TYPE_HT = 3,
IWL_RX_PHY_INFO_TYPE_VHT_SU = 4,
IWL_RX_PHY_INFO_TYPE_VHT_MU = 5,
IWL_RX_PHY_INFO_TYPE_HE_SU = 6,
IWL_RX_PHY_INFO_TYPE_HE_MU = 7,
IWL_RX_PHY_INFO_TYPE_HE_TB = 8,
IWL_RX_PHY_INFO_TYPE_HE_MU_EXT = 9,
IWL_RX_PHY_INFO_TYPE_HE_TB_EXT = 10,
IWL_RX_PHY_INFO_TYPE_EHT_MU = 11,
IWL_RX_PHY_INFO_TYPE_EHT_TB = 12,
IWL_RX_PHY_INFO_TYPE_EHT_MU_EXT = 13,
IWL_RX_PHY_INFO_TYPE_EHT_TB_EXT = 14,
};
enum iwl_mvm_status {
IWL_MVM_STATUS_HW_RFKILL = 0,
IWL_MVM_STATUS_HW_CTKILL = 1,
IWL_MVM_STATUS_ROC_RUNNING = 2,
IWL_MVM_STATUS_HW_RESTART_REQUESTED = 3,
IWL_MVM_STATUS_IN_HW_RESTART = 4,
IWL_MVM_STATUS_ROC_AUX_RUNNING = 5,
IWL_MVM_STATUS_FIRMWARE_RUNNING = 6,
IWL_MVM_STATUS_IN_D3 = 7,
IWL_MVM_STATUS_SUPPRESS_ERROR_LOG_ONCE = 8,
IWL_MVM_STATUS_STARTING = 9,
};
enum iwl_rx_mpdu_mac_flags2 {
IWL_RX_MPDU_MFLG2_HDR_LEN_MASK = 31,
IWL_RX_MPDU_MFLG2_PAD = 32,
IWL_RX_MPDU_MFLG2_AMSDU = 64,
};
enum iwl_rx_mpdu_status {
IWL_RX_MPDU_STATUS_CRC_OK = 1,
IWL_RX_MPDU_STATUS_OVERRUN_OK = 2,
IWL_RX_MPDU_STATUS_SRC_STA_FOUND = 4,
IWL_RX_MPDU_STATUS_KEY_VALID = 8,
IWL_RX_MPDU_STATUS_ICV_OK = 32,
IWL_RX_MPDU_STATUS_MIC_OK = 64,
IWL_RX_MPDU_RES_STATUS_TTAK_OK = 128,
IWL_RX_MPDU_STATUS_REPLAY_ERROR = 128,
IWL_RX_MPDU_STATUS_SEC_MASK = 1792,
IWL_RX_MPDU_STATUS_SEC_UNKNOWN = 1792,
IWL_RX_MPDU_STATUS_SEC_NONE = 0,
IWL_RX_MPDU_STATUS_SEC_WEP = 256,
IWL_RX_MPDU_STATUS_SEC_CCM = 512,
IWL_RX_MPDU_STATUS_SEC_TKIP = 768,
IWL_RX_MPDU_STATUS_SEC_EXT_ENC = 1024,
IWL_RX_MPDU_STATUS_SEC_GCM = 1280,
IWL_RX_MPDU_STATUS_DECRYPTED = 2048,
IWL_RX_MPDU_STATUS_ROBUST_MNG_FRAME = 32768,
IWL_RX_MPDU_STATUS_DUPLICATE = 4194304,
IWL_RX_MPDU_STATUS_STA_ID = 520093696,
};
enum mac80211_rx_flags {
RX_FLAG_MMIC_ERROR = 1,
RX_FLAG_DECRYPTED = 2,
RX_FLAG_ONLY_MONITOR = 4,
RX_FLAG_MMIC_STRIPPED = 8,
RX_FLAG_IV_STRIPPED = 16,
RX_FLAG_FAILED_FCS_CRC = 32,
RX_FLAG_FAILED_PLCP_CRC = 64,
RX_FLAG_MACTIME_IS_RTAP_TS64 = 128,
RX_FLAG_NO_SIGNAL_VAL = 256,
RX_FLAG_AMPDU_DETAILS = 512,
RX_FLAG_PN_VALIDATED = 1024,
RX_FLAG_DUP_VALIDATED = 2048,
RX_FLAG_AMPDU_LAST_KNOWN = 4096,
RX_FLAG_AMPDU_IS_LAST = 8192,
RX_FLAG_AMPDU_DELIM_CRC_ERROR = 16384,
RX_FLAG_AMPDU_DELIM_CRC_KNOWN = 32768,
RX_FLAG_MACTIME = 196608,
RX_FLAG_MACTIME_PLCP_START = 65536,
RX_FLAG_MACTIME_START = 131072,
RX_FLAG_MACTIME_END = 196608,
RX_FLAG_SKIP_MONITOR = 262144,
RX_FLAG_AMSDU_MORE = 524288,
RX_FLAG_RADIOTAP_TLV_AT_END = 1048576,
RX_FLAG_MIC_STRIPPED = 2097152,
RX_FLAG_ALLOW_SAME_PN = 4194304,
RX_FLAG_ICV_STRIPPED = 8388608,
RX_FLAG_AMPDU_EOF_BIT = 16777216,
RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432,
RX_FLAG_RADIOTAP_HE = 67108864,
RX_FLAG_RADIOTAP_HE_MU = 134217728,
RX_FLAG_RADIOTAP_LSIG = 268435456,
RX_FLAG_NO_PSDU = 536870912,
RX_FLAG_8023 = 1073741824,
};
enum iwl_rx_mpdu_phy_info {
IWL_RX_MPDU_PHY_AMPDU = 32,
IWL_RX_MPDU_PHY_AMPDU_TOGGLE = 64,
IWL_RX_MPDU_PHY_SHORT_PREAMBLE = 128,
IWL_RX_MPDU_PHY_NCCK_ADDTL_NTFY = 128,
IWL_RX_MPDU_PHY_TSF_OVERLOAD = 256,
};
enum mac80211_rx_encoding_flags {
RX_ENC_FLAG_SHORTPRE = 1,
RX_ENC_FLAG_SHORT_GI = 4,
RX_ENC_FLAG_HT_GF = 8,
RX_ENC_FLAG_STBC_MASK = 48,
RX_ENC_FLAG_LDPC = 64,
RX_ENC_FLAG_BF = 128,
};
enum iwl_mvm_agg_state {
IWL_AGG_OFF___2 = 0,
IWL_AGG_QUEUED = 1,
IWL_AGG_STARTING___2 = 2,
IWL_AGG_ON___2 = 3,
IWL_EMPTYING_HW_QUEUE_ADDBA___2 = 4,
IWL_EMPTYING_HW_QUEUE_DELBA___2 = 5,
};
enum iwl_table_type {
LQ_NONE = 0,
LQ_LEGACY_G = 1,
LQ_LEGACY_A = 2,
LQ_HT_SISO = 3,
LQ_HT_MIMO2 = 4,
LQ_VHT_SISO = 5,
LQ_VHT_MIMO2 = 6,
LQ_HE_SISO = 7,
LQ_HE_MIMO2 = 8,
LQ_MAX = 9,
};
enum rs_column {
RS_COLUMN_LEGACY_ANT_A = 0,
RS_COLUMN_LEGACY_ANT_B = 1,
RS_COLUMN_SISO_ANT_A = 2,
RS_COLUMN_SISO_ANT_B = 3,
RS_COLUMN_SISO_ANT_A_SGI = 4,
RS_COLUMN_SISO_ANT_B_SGI = 5,
RS_COLUMN_MIMO2 = 6,
RS_COLUMN_MIMO2_SGI = 7,
RS_COLUMN_LAST = 7,
RS_COLUMN_COUNT = 8,
RS_COLUMN_INVALID = 9,
};
enum iwl_rx_mpdu_reorder_data {
IWL_RX_MPDU_REORDER_NSSN_MASK = 4095,
IWL_RX_MPDU_REORDER_SN_MASK = 16773120,
IWL_RX_MPDU_REORDER_SN_SHIFT = 12,
IWL_RX_MPDU_REORDER_BAID_MASK = 2130706432,
IWL_RX_MPDU_REORDER_BAID_SHIFT = 24,
IWL_RX_MPDU_REORDER_BA_OLD_SN = 2147483648,
};
enum iwl_rx_mpdu_amsdu_info {
IWL_RX_MPDU_AMSDU_SUBFRAME_IDX_MASK = 127,
IWL_RX_MPDU_AMSDU_LAST_SUBFRAME = 128,
};
enum iwl_data_path_subcmd_ids {
DQA_ENABLE_CMD = 0,
UPDATE_MU_GROUPS_CMD = 1,
TRIGGER_RX_QUEUES_NOTIF_CMD = 2,
WNM_PLATFORM_PTM_REQUEST_CMD = 3,
WNM_80211V_TIMING_MEASUREMENT_CONFIG_CMD = 4,
STA_HE_CTXT_CMD = 7,
RLC_CONFIG_CMD = 8,
RFH_QUEUE_CONFIG_CMD = 13,
TLC_MNG_CONFIG_CMD = 15,
HE_AIR_SNIFFER_CONFIG_CMD = 19,
CHEST_COLLECTOR_FILTER_CONFIG_CMD = 20,
RX_BAID_ALLOCATION_CONFIG_CMD = 22,
SCD_QUEUE_CONFIG_CMD = 23,
SEC_KEY_CMD = 24,
MONITOR_NOTIF = 244,
RX_NO_DATA_NOTIF = 245,
THERMAL_DUAL_CHAIN_REQUEST = 246,
TLC_MNG_UPDATE_NOTIF = 247,
STA_PM_NOTIF = 253,
MU_GROUP_MGMT_NOTIF = 254,
RX_QUEUES_NOTIFICATION = 255,
};
enum ieee80211_radiotap_zero_len_psdu_type {
IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING = 0,
IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED = 1,
IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR = 255,
};
enum iwl_bar_frame_release_ba_info {
IWL_BAR_FRAME_RELEASE_NSSN_MASK = 4095,
IWL_BAR_FRAME_RELEASE_SN_MASK = 16773120,
IWL_BAR_FRAME_RELEASE_BAID_MASK = 1056964608,
};
enum iwl_bar_frame_release_sta_tid {
IWL_BAR_FRAME_RELEASE_TID_MASK = 15,
IWL_BAR_FRAME_RELEASE_STA_MASK = 496,
};
enum iwl_mvm_rx_status {
RX_MPDU_RES_STATUS_CRC_OK = 1,
RX_MPDU_RES_STATUS_OVERRUN_OK = 2,
RX_MPDU_RES_STATUS_SRC_STA_FOUND = 4,
RX_MPDU_RES_STATUS_KEY_VALID = 8,
RX_MPDU_RES_STATUS_ICV_OK = 32,
RX_MPDU_RES_STATUS_MIC_OK = 64,
RX_MPDU_RES_STATUS_TTAK_OK = 128,
RX_MPDU_RES_STATUS_MNG_FRAME_REPLAY_ERR = 128,
RX_MPDU_RES_STATUS_SEC_NO_ENC = 0,
RX_MPDU_RES_STATUS_SEC_WEP_ENC = 256,
RX_MPDU_RES_STATUS_SEC_CCM_ENC = 512,
RX_MPDU_RES_STATUS_SEC_TKIP_ENC = 768,
RX_MPDU_RES_STATUS_SEC_EXT_ENC = 1024,
RX_MPDU_RES_STATUS_SEC_CMAC_GMAC_ENC = 1536,
RX_MPDU_RES_STATUS_SEC_ENC_ERR = 1792,
RX_MPDU_RES_STATUS_SEC_ENC_MSK = 1792,
RX_MPDU_RES_STATUS_DEC_DONE = 2048,
RX_MPDU_RES_STATUS_CSUM_DONE = 65536,
RX_MPDU_RES_STATUS_CSUM_OK = 131072,
RX_MDPU_RES_STATUS_STA_ID_SHIFT = 24,
RX_MPDU_RES_STATUS_STA_ID_MSK = 520093696,
};
enum iwl_rx_phy_common_data1 {
IWL_RX_PHY_DATA1_INFO_TYPE_MASK = 4026531840,
IWL_RX_PHY_DATA1_LSIG_LEN_MASK = 268369920,
};
enum iwl_rx_phy_he_data0 {
IWL_RX_PHY_DATA0_HE_BEAM_CHNG = 1,
IWL_RX_PHY_DATA0_HE_UPLINK = 2,
IWL_RX_PHY_DATA0_HE_BSS_COLOR_MASK = 252,
IWL_RX_PHY_DATA0_HE_SPATIAL_REUSE_MASK = 3840,
IWL_RX_PHY_DATA0_HE_TXOP_DUR_MASK = 1040384,
IWL_RX_PHY_DATA0_HE_LDPC_EXT_SYM = 1048576,
IWL_RX_PHY_DATA0_HE_PRE_FEC_PAD_MASK = 6291456,
IWL_RX_PHY_DATA0_HE_PE_DISAMBIG = 8388608,
IWL_RX_PHY_DATA0_HE_DOPPLER = 16777216,
IWL_RX_PHY_DATA0_HE_DELIM_EOF = 2147483648,
};
enum iwl_rx_phy_eht_data0 {
IWL_RX_PHY_DATA0_EHT_VALIDATE = 1,
IWL_RX_PHY_DATA0_EHT_UPLINK = 2,
IWL_RX_PHY_DATA0_EHT_BSS_COLOR_MASK = 252,
IWL_RX_PHY_DATA0_ETH_SPATIAL_REUSE_MASK = 3840,
IWL_RX_PHY_DATA0_EHT_PS160 = 4096,
IWL_RX_PHY_DATA0_EHT_TXOP_DUR_MASK = 1040384,
IWL_RX_PHY_DATA0_EHT_LDPC_EXT_SYM = 1048576,
IWL_RX_PHY_DATA0_EHT_PRE_FEC_PAD_MASK = 6291456,
IWL_RX_PHY_DATA0_EHT_PE_DISAMBIG = 8388608,
IWL_RX_PHY_DATA0_EHT_BW320_SLOT = 16777216,
IWL_RX_PHY_DATA0_EHT_SIGA_CRC_OK = 33554432,
IWL_RX_PHY_DATA0_EHT_PHY_VER = 469762048,
IWL_RX_PHY_DATA0_EHT_DELIM_EOF = 2147483648,
};
enum nl80211_he_ru_alloc {
NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0,
NL80211_RATE_INFO_HE_RU_ALLOC_52 = 1,
NL80211_RATE_INFO_HE_RU_ALLOC_106 = 2,
NL80211_RATE_INFO_HE_RU_ALLOC_242 = 3,
NL80211_RATE_INFO_HE_RU_ALLOC_484 = 4,
NL80211_RATE_INFO_HE_RU_ALLOC_996 = 5,
NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 6,
};
enum ieee80211_radiotap_he_bits {
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MASK = 3,
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_SU = 0,
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_EXT_SU = 1,
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_MU = 2,
IEEE80211_RADIOTAP_HE_DATA1_FORMAT_TRIG = 3,
IEEE80211_RADIOTAP_HE_DATA1_BSS_COLOR_KNOWN = 4,
IEEE80211_RADIOTAP_HE_DATA1_BEAM_CHANGE_KNOWN = 8,
IEEE80211_RADIOTAP_HE_DATA1_UL_DL_KNOWN = 16,
IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN = 32,
IEEE80211_RADIOTAP_HE_DATA1_DATA_DCM_KNOWN = 64,
IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN = 128,
IEEE80211_RADIOTAP_HE_DATA1_LDPC_XSYMSEG_KNOWN = 256,
IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN = 512,
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE_KNOWN = 1024,
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN = 2048,
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN = 4096,
IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN = 8192,
IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN = 16384,
IEEE80211_RADIOTAP_HE_DATA1_DOPPLER_KNOWN = 32768,
IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_KNOWN = 1,
IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN = 2,
IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN = 4,
IEEE80211_RADIOTAP_HE_DATA2_PRE_FEC_PAD_KNOWN = 8,
IEEE80211_RADIOTAP_HE_DATA2_TXBF_KNOWN = 16,
IEEE80211_RADIOTAP_HE_DATA2_PE_DISAMBIG_KNOWN = 32,
IEEE80211_RADIOTAP_HE_DATA2_TXOP_KNOWN = 64,
IEEE80211_RADIOTAP_HE_DATA2_MIDAMBLE_KNOWN = 128,
IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET = 16128,
IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET_KNOWN = 16384,
IEEE80211_RADIOTAP_HE_DATA2_PRISEC_80_SEC = 32768,
IEEE80211_RADIOTAP_HE_DATA3_BSS_COLOR = 63,
IEEE80211_RADIOTAP_HE_DATA3_BEAM_CHANGE = 64,
IEEE80211_RADIOTAP_HE_DATA3_UL_DL = 128,
IEEE80211_RADIOTAP_HE_DATA3_DATA_MCS = 3840,
IEEE80211_RADIOTAP_HE_DATA3_DATA_DCM = 4096,
IEEE80211_RADIOTAP_HE_DATA3_CODING = 8192,
IEEE80211_RADIOTAP_HE_DATA3_LDPC_XSYMSEG = 16384,
IEEE80211_RADIOTAP_HE_DATA3_STBC = 32768,
IEEE80211_RADIOTAP_HE_DATA4_SU_MU_SPTL_REUSE = 15,
IEEE80211_RADIOTAP_HE_DATA4_MU_STA_ID = 32752,
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1 = 15,
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2 = 240,
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3 = 3840,
IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4 = 61440,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC = 15,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_20MHZ = 0,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_40MHZ = 1,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_80MHZ = 2,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_160MHZ = 3,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_26T = 4,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_52T = 5,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_106T = 6,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_242T = 7,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_484T = 8,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_996T = 9,
IEEE80211_RADIOTAP_HE_DATA5_DATA_BW_RU_ALLOC_2x996T = 10,
IEEE80211_RADIOTAP_HE_DATA5_GI = 48,
IEEE80211_RADIOTAP_HE_DATA5_GI_0_8 = 0,
IEEE80211_RADIOTAP_HE_DATA5_GI_1_6 = 1,
IEEE80211_RADIOTAP_HE_DATA5_GI_3_2 = 2,
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE = 192,
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_UNKNOWN = 0,
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_1X = 1,
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_2X = 2,
IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE_4X = 3,
IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS = 1792,
IEEE80211_RADIOTAP_HE_DATA5_PRE_FEC_PAD = 12288,
IEEE80211_RADIOTAP_HE_DATA5_TXBF = 16384,
IEEE80211_RADIOTAP_HE_DATA5_PE_DISAMBIG = 32768,
IEEE80211_RADIOTAP_HE_DATA6_NSTS = 15,
IEEE80211_RADIOTAP_HE_DATA6_DOPPLER = 16,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_KNOWN = 32,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW = 192,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_20MHZ = 0,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_40MHZ = 1,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_80MHZ = 2,
IEEE80211_RADIOTAP_HE_DATA6_TB_PPDU_BW_160MHZ = 3,
IEEE80211_RADIOTAP_HE_DATA6_TXOP = 32512,
IEEE80211_RADIOTAP_HE_DATA6_MIDAMBLE_PDCTY = 32768,
};
enum iwl_rx_phy_he_data2 {
IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU0 = 255,
IWL_RX_PHY_DATA2_HE_MU_EXT_CH1_RU2 = 65280,
IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU0 = 16711680,
IWL_RX_PHY_DATA2_HE_MU_EXT_CH2_RU2 = 4278190080,
IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1 = 15,
IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2 = 240,
IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3 = 3840,
IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4 = 61440,
};
enum iwl_rx_phy_he_data1 {
IWL_RX_PHY_DATA1_HE_MU_SIGB_COMPRESSION = 1,
IWL_RX_PHY_DATA1_HE_MU_SIBG_SYM_OR_USER_NUM_MASK = 30,
IWL_RX_PHY_DATA1_HE_LTF_NUM_MASK = 224,
IWL_RX_PHY_DATA1_HE_RU_ALLOC_SEC80 = 256,
IWL_RX_PHY_DATA1_HE_RU_ALLOC_MASK = 65024,
IWL_RX_PHY_DATA1_HE_TB_PILOT_TYPE = 1,
IWL_RX_PHY_DATA1_HE_TB_LOW_SS_MASK = 14,
};
enum iwl_rx_phy_he_he_data4 {
IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CTR_RU = 1,
IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CTR_RU = 2,
IWL_RX_PHY_DATA4_HE_MU_EXT_CH1_CRC_OK = 4,
IWL_RX_PHY_DATA4_HE_MU_EXT_CH2_CRC_OK = 8,
IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_MCS_MASK = 240,
IWL_RX_PHY_DATA4_HE_MU_EXT_SIGB_DCM = 256,
IWL_RX_PHY_DATA4_HE_MU_EXT_PREAMBLE_PUNC_TYPE_MASK = 1536,
};
enum ieee80211_radiotap_he_mu_bits {
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS = 15,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_MCS_KNOWN = 16,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM = 32,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_DCM_KNOWN = 64,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_CTR_26T_RU_KNOWN = 128,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_RU_KNOWN = 256,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH2_RU_KNOWN = 512,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU_KNOWN = 4096,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_CH1_CTR_26T_RU = 8192,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_COMP_KNOWN = 16384,
IEEE80211_RADIOTAP_HE_MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN = 32768,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW = 3,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_20MHZ = 0,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_40MHZ = 1,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_80MHZ = 2,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_160MHZ = 3,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN = 4,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_COMP = 8,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_SIG_B_SYMS_USERS = 240,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW = 768,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN = 1024,
IEEE80211_RADIOTAP_HE_MU_FLAGS2_CH2_CTR_26T_RU = 2048,
};
enum iwl_rx_phy_he_data3 {
IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU1 = 255,
IWL_RX_PHY_DATA3_HE_MU_EXT_CH1_RU3 = 65280,
IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU1 = 16711680,
IWL_RX_PHY_DATA3_HE_MU_EXT_CH2_RU3 = 4278190080,
};
enum ieee80211_radiotap_lsig_data1 {
IEEE80211_RADIOTAP_LSIG_DATA1_RATE_KNOWN = 1,
IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN = 2,
};
enum ieee80211_radiotap_lsig_data2 {
IEEE80211_RADIOTAP_LSIG_DATA2_RATE = 15,
IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH = 65520,
};
enum ieee80211_radiotap_presence {
IEEE80211_RADIOTAP_TSFT = 0,
IEEE80211_RADIOTAP_FLAGS = 1,
IEEE80211_RADIOTAP_RATE = 2,
IEEE80211_RADIOTAP_CHANNEL = 3,
IEEE80211_RADIOTAP_FHSS = 4,
IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5,
IEEE80211_RADIOTAP_DBM_ANTNOISE = 6,
IEEE80211_RADIOTAP_LOCK_QUALITY = 7,
IEEE80211_RADIOTAP_TX_ATTENUATION = 8,
IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9,
IEEE80211_RADIOTAP_DBM_TX_POWER = 10,
IEEE80211_RADIOTAP_ANTENNA = 11,
IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12,
IEEE80211_RADIOTAP_DB_ANTNOISE = 13,
IEEE80211_RADIOTAP_RX_FLAGS = 14,
IEEE80211_RADIOTAP_TX_FLAGS = 15,
IEEE80211_RADIOTAP_RTS_RETRIES = 16,
IEEE80211_RADIOTAP_DATA_RETRIES = 17,
IEEE80211_RADIOTAP_MCS = 19,
IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
IEEE80211_RADIOTAP_VHT = 21,
IEEE80211_RADIOTAP_TIMESTAMP = 22,
IEEE80211_RADIOTAP_HE = 23,
IEEE80211_RADIOTAP_HE_MU = 24,
IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26,
IEEE80211_RADIOTAP_LSIG = 27,
IEEE80211_RADIOTAP_TLV = 28,
IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
IEEE80211_RADIOTAP_EXT = 31,
IEEE80211_RADIOTAP_EHT_USIG = 33,
IEEE80211_RADIOTAP_EHT = 34,
};
enum ieee80211_radiotap_eht_usig_common {
IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN = 1,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN = 2,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN = 4,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN = 8,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN = 16,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC = 32,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_CHECKED = 64,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_VALIDATE_BITS_OK = 128,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER = 28672,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW = 229376,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ = 0,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_40MHZ = 1,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_80MHZ = 2,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_160MHZ = 3,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_1 = 4,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_320MHZ_2 = 5,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL = 262144,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR = 33030144,
IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP = 4261412864,
};
enum nl80211_eht_gi {
NL80211_RATE_INFO_EHT_GI_0_8 = 0,
NL80211_RATE_INFO_EHT_GI_1_6 = 1,
NL80211_RATE_INFO_EHT_GI_3_2 = 2,
};
enum ieee80211_radiotap_eht_known {
IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE = 2,
IEEE80211_RADIOTAP_EHT_KNOWN_GI = 4,
IEEE80211_RADIOTAP_EHT_KNOWN_EHT_LTF = 16,
IEEE80211_RADIOTAP_EHT_KNOWN_LDPC_EXTRA_SYM_OM = 32,
IEEE80211_RADIOTAP_EHT_KNOWN_PRE_PADD_FACOR_OM = 64,
IEEE80211_RADIOTAP_EHT_KNOWN_PE_DISAMBIGUITY_OM = 128,
IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_O = 256,
IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_S = 512,
IEEE80211_RADIOTAP_EHT_KNOWN_CRC1 = 8192,
IEEE80211_RADIOTAP_EHT_KNOWN_TAIL1 = 16384,
IEEE80211_RADIOTAP_EHT_KNOWN_CRC2_O = 32768,
IEEE80211_RADIOTAP_EHT_KNOWN_TAIL2_O = 65536,
IEEE80211_RADIOTAP_EHT_KNOWN_NSS_S = 131072,
IEEE80211_RADIOTAP_EHT_KNOWN_BEAMFORMED_S = 262144,
IEEE80211_RADIOTAP_EHT_KNOWN_NR_NON_OFDMA_USERS_M = 524288,
IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_CRC_M = 1048576,
IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_TAIL_M = 2097152,
IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_SIZE_OM = 4194304,
IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_INDEX_OM = 8388608,
IEEE80211_RADIOTAP_EHT_KNOWN_RU_ALLOC_TB_FMT = 16777216,
IEEE80211_RADIOTAP_EHT_KNOWN_PRIMARY_80 = 33554432,
};
enum ieee80211_radiotap_eht_data {
IEEE80211_RADIOTAP_EHT_DATA0_SPATIAL_REUSE = 120,
IEEE80211_RADIOTAP_EHT_DATA0_GI = 384,
IEEE80211_RADIOTAP_EHT_DATA0_LTF = 1536,
IEEE80211_RADIOTAP_EHT_DATA0_EHT_LTF = 14336,
IEEE80211_RADIOTAP_EHT_DATA0_LDPC_EXTRA_SYM_OM = 16384,
IEEE80211_RADIOTAP_EHT_DATA0_PRE_PADD_FACOR_OM = 98304,
IEEE80211_RADIOTAP_EHT_DATA0_PE_DISAMBIGUITY_OM = 131072,
IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_S = 786432,
IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_O = 3932160,
IEEE80211_RADIOTAP_EHT_DATA0_CRC1_O = 62914560,
IEEE80211_RADIOTAP_EHT_DATA0_TAIL1_O = 4227858432,
IEEE80211_RADIOTAP_EHT_DATA1_RU_SIZE = 31,
IEEE80211_RADIOTAP_EHT_DATA1_RU_INDEX = 8160,
IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1 = 4186112,
IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN = 4194304,
IEEE80211_RADIOTAP_EHT_DATA1_PRIMARY_80 = 3221225472,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1 = 511,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN = 512,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2 = 523264,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN = 524288,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2 = 535822336,
IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN = 536870912,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1 = 511,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN = 512,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1 = 523264,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN = 524288,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2 = 535822336,
IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN = 536870912,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 = 511,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN = 512,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3 = 523264,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3_KNOWN = 524288,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3 = 535822336,
IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3_KNOWN = 536870912,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4 = 511,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4_KNOWN = 512,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4 = 523264,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4_KNOWN = 524288,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5 = 535822336,
IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5_KNOWN = 536870912,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5 = 511,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5_KNOWN = 512,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6 = 523264,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6_KNOWN = 524288,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6 = 535822336,
IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6_KNOWN = 536870912,
IEEE80211_RADIOTAP_EHT_DATA7_CRC2_O = 15,
IEEE80211_RADIOTAP_EHT_DATA7_TAIL_2_O = 1008,
IEEE80211_RADIOTAP_EHT_DATA7_NSS_S = 61440,
IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S = 65536,
IEEE80211_RADIOTAP_EHT_DATA7_NUM_OF_NON_OFDMA_USERS = 917504,
IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_CRC = 15728640,
IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_TAIL = 1056964608,
IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_PS_160 = 1,
IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B0 = 2,
IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B7_B1 = 508,
};
enum ieee80211_radiotap_eht_user_info {
IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID_KNOWN = 1,
IEEE80211_RADIOTAP_EHT_USER_INFO_MCS_KNOWN = 2,
IEEE80211_RADIOTAP_EHT_USER_INFO_CODING_KNOWN = 4,
IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_KNOWN_O = 16,
IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_KNOWN_O = 32,
IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_KNOWN_M = 64,
IEEE80211_RADIOTAP_EHT_USER_INFO_DATA_FOR_USER = 128,
IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID = 524032,
IEEE80211_RADIOTAP_EHT_USER_INFO_CODING = 524288,
IEEE80211_RADIOTAP_EHT_USER_INFO_MCS = 15728640,
IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O = 251658240,
IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_O = 536870912,
IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_M = 1056964608,
IEEE80211_RADIOTAP_EHT_USER_INFO_RESEVED_c0000000 = 3221225472,
};
enum iwl_rx_usig_a1 {
IWL_RX_USIG_A1_ENHANCED_WIFI_VER_ID = 7,
IWL_RX_USIG_A1_BANDWIDTH = 56,
IWL_RX_USIG_A1_UL_FLAG = 64,
IWL_RX_USIG_A1_BSS_COLOR = 8064,
IWL_RX_USIG_A1_TXOP_DURATION = 1040384,
IWL_RX_USIG_A1_DISREGARD = 32505856,
IWL_RX_USIG_A1_VALIDATE = 33554432,
IWL_RX_USIG_A1_EHT_BW320_SLOT = 67108864,
IWL_RX_USIG_A1_EHT_TYPE = 402653184,
IWL_RX_USIG_A1_RDY = 2147483648,
};
enum iwl_rx_phy_eht_data1 {
IWL_RX_PHY_DATA1_EHT_MU_NUM_SIG_SYM_USIGA2 = 31,
IWL_RX_PHY_DATA1_EHT_TB_PILOT_TYPE = 1,
IWL_RX_PHY_DATA1_EHT_TB_LOW_SS = 30,
IWL_RX_PHY_DATA1_EHT_SIG_LTF_NUM = 224,
IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B0 = 256,
IWL_RX_PHY_DATA1_EHT_RU_ALLOC_B1_B7 = 65024,
};
enum nl80211_eht_ru_alloc {
NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0,
NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 1,
NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 2,
NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 3,
NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 4,
NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 5,
NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 6,
NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 7,
NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 8,
NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 9,
NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 10,
NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 11,
NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 12,
NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 13,
NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 14,
NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 15,
};
enum ieee80211_radiotap_eht_usig_tb {
IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD = 31,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE = 192,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE = 256,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1 = 7680,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2 = 122880,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD = 4063232,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC = 62914560,
IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL = 4227858432,
};
enum iwl_rx_phy_data5 {
IWL_RX_PHY_DATA5_EHT_TYPE_AND_COMP = 3,
IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE1 = 60,
IWL_RX_PHY_DATA5_EHT_TB_SPATIAL_REUSE2 = 960,
IWL_RX_PHY_DATA5_EHT_MU_PUNC_CH_CODE = 124,
IWL_RX_PHY_DATA5_EHT_MU_STA_ID_USR = 262016,
IWL_RX_PHY_DATA5_EHT_MU_NUM_USR_NON_OFDMA = 1835008,
IWL_RX_PHY_DATA5_EHT_MU_SPATIAL_CONF_USR_FIELD = 266338304,
};
enum iwl_rx_usig_a2_eht {
IWL_RX_USIG_A2_EHT_PPDU_TYPE = 3,
IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B2 = 4,
IWL_RX_USIG_A2_EHT_PUNC_CHANNEL = 248,
IWL_RX_USIG_A2_EHT_USIG2_VALIDATE_B8 = 256,
IWL_RX_USIG_A2_EHT_SIG_MCS = 1536,
IWL_RX_USIG_A2_EHT_SIG_SYM_NUM = 63488,
IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_1 = 983040,
IWL_RX_USIG_A2_EHT_TRIG_SPATIAL_REUSE_2 = 15728640,
IWL_RX_USIG_A2_EHT_TRIG_USIG2_DISREGARD = 520093696,
IWL_RX_USIG_A2_EHT_CRC_OK = 1073741824,
IWL_RX_USIG_A2_EHT_RDY = 2147483648,
};
enum ieee80211_radiotap_eht_usig_mu {
IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD = 31,
IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE = 32,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE = 192,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE = 256,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO = 15872,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE = 16384,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS = 98304,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS = 4063232,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC = 62914560,
IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL = 4227858432,
};
enum iwl_rx_phy_eht_data4 {
IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D1 = 511,
IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_D2 = 261632,
IWL_RX_PHY_DATA4_EHT_MU_EXT_SIGB_MCS = 786432,
IWL_RX_PHY_DATA4_EHT_MU_EXT_RU_ALLOC_B2 = 535822336,
};
enum iwl_rx_phy_eht_data2 {
IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A1 = 511,
IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_A2 = 261632,
IWL_RX_PHY_DATA2_EHT_MU_EXT_RU_ALLOC_B1 = 133955584,
IWL_RX_PHY_DATA2_EHT_TB_EXT_TRIG_SIGA1 = 4294967295,
};
enum iwl_rx_phy_eht_data3 {
IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C1 = 261632,
IWL_RX_PHY_DATA3_EHT_MU_EXT_RU_ALLOC_C2 = 133955584,
};
enum iwl_fw_dbg_trigger_vif_type {
IWL_FW_DBG_CONF_VIF_ANY = 0,
IWL_FW_DBG_CONF_VIF_IBSS = 1,
IWL_FW_DBG_CONF_VIF_STATION = 2,
IWL_FW_DBG_CONF_VIF_AP = 3,
IWL_FW_DBG_CONF_VIF_P2P_CLIENT = 8,
IWL_FW_DBG_CONF_VIF_P2P_GO = 9,
IWL_FW_DBG_CONF_VIF_P2P_DEVICE = 10,
};
enum iwl_rx_l3l4_flags {
IWL_RX_L3L4_IP_HDR_CSUM_OK = 1,
IWL_RX_L3L4_TCP_UDP_CSUM_OK = 2,
IWL_RX_L3L4_TCP_FIN_SYN_RST_PSH = 4,
IWL_RX_L3L4_TCP_ACK = 8,
IWL_RX_L3L4_L3_PROTO_MASK = 240,
IWL_RX_L3L4_L4_PROTO_MASK = 3840,
IWL_RX_L3L4_RSS_HASH_MASK = 61440,
};
enum {
NETIF_F_SG_BIT = 0,
NETIF_F_IP_CSUM_BIT = 1,
__UNUSED_NETIF_F_1 = 2,
NETIF_F_HW_CSUM_BIT = 3,
NETIF_F_IPV6_CSUM_BIT = 4,
NETIF_F_HIGHDMA_BIT = 5,
NETIF_F_FRAGLIST_BIT = 6,
NETIF_F_HW_VLAN_CTAG_TX_BIT = 7,
NETIF_F_HW_VLAN_CTAG_RX_BIT = 8,
NETIF_F_HW_VLAN_CTAG_FILTER_BIT = 9,
NETIF_F_VLAN_CHALLENGED_BIT = 10,
NETIF_F_GSO_BIT = 11,
NETIF_F_LLTX_BIT = 12,
NETIF_F_NETNS_LOCAL_BIT = 13,
NETIF_F_GRO_BIT = 14,
NETIF_F_LRO_BIT = 15,
NETIF_F_GSO_SHIFT = 16,
NETIF_F_TSO_BIT = 16,
NETIF_F_GSO_ROBUST_BIT = 17,
NETIF_F_TSO_ECN_BIT = 18,
NETIF_F_TSO_MANGLEID_BIT = 19,
NETIF_F_TSO6_BIT = 20,
NETIF_F_FSO_BIT = 21,
NETIF_F_GSO_GRE_BIT = 22,
NETIF_F_GSO_GRE_CSUM_BIT = 23,
NETIF_F_GSO_IPXIP4_BIT = 24,
NETIF_F_GSO_IPXIP6_BIT = 25,
NETIF_F_GSO_UDP_TUNNEL_BIT = 26,
NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT = 27,
NETIF_F_GSO_PARTIAL_BIT = 28,
NETIF_F_GSO_TUNNEL_REMCSUM_BIT = 29,
NETIF_F_GSO_SCTP_BIT = 30,
NETIF_F_GSO_ESP_BIT = 31,
NETIF_F_GSO_UDP_BIT = 32,
NETIF_F_GSO_UDP_L4_BIT = 33,
NETIF_F_GSO_FRAGLIST_BIT = 34,
NETIF_F_GSO_LAST = 34,
NETIF_F_FCOE_CRC_BIT = 35,
NETIF_F_SCTP_CRC_BIT = 36,
NETIF_F_FCOE_MTU_BIT = 37,
NETIF_F_NTUPLE_BIT = 38,
NETIF_F_RXHASH_BIT = 39,
NETIF_F_RXCSUM_BIT = 40,
NETIF_F_NOCACHE_COPY_BIT = 41,
NETIF_F_LOOPBACK_BIT = 42,
NETIF_F_RXFCS_BIT = 43,
NETIF_F_RXALL_BIT = 44,
NETIF_F_HW_VLAN_STAG_TX_BIT = 45,
NETIF_F_HW_VLAN_STAG_RX_BIT = 46,
NETIF_F_HW_VLAN_STAG_FILTER_BIT = 47,
NETIF_F_HW_L2FW_DOFFLOAD_BIT = 48,
NETIF_F_HW_TC_BIT = 49,
NETIF_F_HW_ESP_BIT = 50,
NETIF_F_HW_ESP_TX_CSUM_BIT = 51,
NETIF_F_RX_UDP_TUNNEL_PORT_BIT = 52,
NETIF_F_HW_TLS_TX_BIT = 53,
NETIF_F_HW_TLS_RX_BIT = 54,
NETIF_F_GRO_HW_BIT = 55,
NETIF_F_HW_TLS_RECORD_BIT = 56,
NETIF_F_GRO_FRAGLIST_BIT = 57,
NETIF_F_HW_MACSEC_BIT = 58,
NETIF_F_GRO_UDP_FWD_BIT = 59,
NETIF_F_HW_HSR_TAG_INS_BIT = 60,
NETIF_F_HW_HSR_TAG_RM_BIT = 61,
NETIF_F_HW_HSR_FWD_BIT = 62,
NETIF_F_HW_HSR_DUP_BIT = 63,
NETDEV_FEATURE_COUNT = 64,
};
enum iwl_rx_l3_proto_values {
IWL_RX_L3_TYPE_NONE = 0,
IWL_RX_L3_TYPE_IPV4 = 1,
IWL_RX_L3_TYPE_IPV4_FRAG = 2,
IWL_RX_L3_TYPE_IPV6_FRAG = 3,
IWL_RX_L3_TYPE_IPV6 = 4,
IWL_RX_L3_TYPE_IPV6_IN_IPV4 = 5,
IWL_RX_L3_TYPE_ARP = 6,
IWL_RX_L3_TYPE_EAPOL = 7,
};
enum iwl_rx_mpdu_mac_flags1 {
IWL_RX_MDPU_MFLG1_ADDRTYPE_MASK = 3,
IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_MASK = 240,
IWL_RX_MPDU_MFLG1_MIC_CRC_LEN_SHIFT = 3,
};
enum ieee80211_hw_flags {
IEEE80211_HW_HAS_RATE_CONTROL = 0,
IEEE80211_HW_RX_INCLUDES_FCS = 1,
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 2,
IEEE80211_HW_SIGNAL_UNSPEC = 3,
IEEE80211_HW_SIGNAL_DBM = 4,
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC = 5,
IEEE80211_HW_SPECTRUM_MGMT = 6,
IEEE80211_HW_AMPDU_AGGREGATION = 7,
IEEE80211_HW_SUPPORTS_PS = 8,
IEEE80211_HW_PS_NULLFUNC_STACK = 9,
IEEE80211_HW_SUPPORTS_DYNAMIC_PS = 10,
IEEE80211_HW_MFP_CAPABLE = 11,
IEEE80211_HW_WANT_MONITOR_VIF = 12,
IEEE80211_HW_NO_AUTO_VIF = 13,
IEEE80211_HW_SW_CRYPTO_CONTROL = 14,
IEEE80211_HW_SUPPORT_FAST_XMIT = 15,
IEEE80211_HW_REPORTS_TX_ACK_STATUS = 16,
IEEE80211_HW_CONNECTION_MONITOR = 17,
IEEE80211_HW_QUEUE_CONTROL = 18,
IEEE80211_HW_SUPPORTS_PER_STA_GTK = 19,
IEEE80211_HW_AP_LINK_PS = 20,
IEEE80211_HW_TX_AMPDU_SETUP_IN_HW = 21,
IEEE80211_HW_SUPPORTS_RC_TABLE = 22,
IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 23,
IEEE80211_HW_TIMING_BEACON_ONLY = 24,
IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 25,
IEEE80211_HW_CHANCTX_STA_CSA = 26,
IEEE80211_HW_SUPPORTS_CLONED_SKBS = 27,
IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS = 28,
IEEE80211_HW_TDLS_WIDER_BW = 29,
IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU = 30,
IEEE80211_HW_BEACON_TX_STATUS = 31,
IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR = 32,
IEEE80211_HW_SUPPORTS_REORDERING_BUFFER = 33,
IEEE80211_HW_USES_RSS = 34,
IEEE80211_HW_TX_AMSDU = 35,
IEEE80211_HW_TX_FRAG_LIST = 36,
IEEE80211_HW_REPORTS_LOW_ACK = 37,
IEEE80211_HW_SUPPORTS_TX_FRAG = 38,
IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA = 39,
IEEE80211_HW_DEAUTH_NEED_MGD_TX_PREP = 40,
IEEE80211_HW_DOESNT_SUPPORT_QOS_NDP = 41,
IEEE80211_HW_BUFF_MMPDU_TXQ = 42,
IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW = 43,
IEEE80211_HW_STA_MMPDU_TXQ = 44,
IEEE80211_HW_TX_STATUS_NO_AMPDU_LEN = 45,
IEEE80211_HW_SUPPORTS_MULTI_BSSID = 46,
IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID = 47,
IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT = 48,
IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD = 49,
IEEE80211_HW_SUPPORTS_RX_DECAP_OFFLOAD = 50,
IEEE80211_HW_SUPPORTS_CONC_MON_RX_DECAP = 51,
IEEE80211_HW_DETECTS_COLOR_COLLISION = 52,
IEEE80211_HW_MLO_MCAST_MULTI_LINK_TX = 53,
IEEE80211_HW_DISALLOW_PUNCTURING = 54,
IEEE80211_HW_HANDLES_QUIET_CSA = 55,
NUM_IEEE80211_HW_FLAGS = 56,
};
enum ieee80211_category {
WLAN_CATEGORY_SPECTRUM_MGMT = 0,
WLAN_CATEGORY_QOS = 1,
WLAN_CATEGORY_DLS = 2,
WLAN_CATEGORY_BACK = 3,
WLAN_CATEGORY_PUBLIC = 4,
WLAN_CATEGORY_RADIO_MEASUREMENT = 5,
WLAN_CATEGORY_FAST_BBS_TRANSITION = 6,
WLAN_CATEGORY_HT = 7,
WLAN_CATEGORY_SA_QUERY = 8,
WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9,
WLAN_CATEGORY_WNM = 10,
WLAN_CATEGORY_WNM_UNPROTECTED = 11,
WLAN_CATEGORY_TDLS = 12,
WLAN_CATEGORY_MESH_ACTION = 13,
WLAN_CATEGORY_MULTIHOP_ACTION = 14,
WLAN_CATEGORY_SELF_PROTECTED = 15,
WLAN_CATEGORY_DMG = 16,
WLAN_CATEGORY_WMM = 17,
WLAN_CATEGORY_FST = 18,
WLAN_CATEGORY_UNPROT_DMG = 20,
WLAN_CATEGORY_VHT = 21,
WLAN_CATEGORY_S1G = 22,
WLAN_CATEGORY_PROTECTED_EHT = 37,
WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
};
enum ieee80211_unprotected_wnm_actioncode {
WLAN_UNPROTECTED_WNM_ACTION_TIM = 0,
WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1,
};
enum ieee80211_pub_actioncode {
WLAN_PUB_ACTION_20_40_BSS_COEX = 0,
WLAN_PUB_ACTION_DSE_ENABLEMENT = 1,
WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2,
WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3,
WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4,
WLAN_PUB_ACTION_DSE_MSMT_REQ = 5,
WLAN_PUB_ACTION_DSE_MSMT_RESP = 6,
WLAN_PUB_ACTION_MSMT_PILOT = 7,
WLAN_PUB_ACTION_DSE_PC = 8,
WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9,
WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10,
WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11,
WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12,
WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13,
WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14,
WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15,
WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16,
WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17,
WLAN_PUB_ACTION_QMF_POLICY = 18,
WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19,
WLAN_PUB_ACTION_QLOAD_REQUEST = 20,
WLAN_PUB_ACTION_QLOAD_REPORT = 21,
WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22,
WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23,
WLAN_PUB_ACTION_PUBLIC_KEY = 24,
WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25,
WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26,
WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27,
WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28,
WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29,
WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30,
WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31,
WLAN_PUB_ACTION_FTM_REQUEST = 32,
WLAN_PUB_ACTION_FTM_RESPONSE = 33,
WLAN_PUB_ACTION_FILS_DISCOVERY = 34,
};
struct iwl_mvm;
struct iwl_mvm_reorder_buffer {
u16 head_sn;
u16 num_stored;
u16 buf_size;
int queue;
u16 last_amsdu;
u8 last_sub_index;
bool valid;
spinlock_t lock;
struct iwl_mvm *mvm;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct iwl_mvm_reorder_buf_entry {
struct sk_buff_head frames;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct iwl_mvm_baid_data {
struct callback_head callback_head;
u32 sta_mask;
u8 tid;
u8 baid;
u16 timeout;
u16 entries_per_queue;
unsigned long last_rx;
struct timer_list session_timer;
struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) **rcu_ptr;
struct iwl_mvm *mvm;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct iwl_mvm_reorder_buffer reorder_buf[16];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct iwl_mvm_reorder_buf_entry entries[0];
};
struct mvm_statistics_rx_phy_v2 {
__le32 ina_cnt;
__le32 fina_cnt;
__le32 plcp_err;
__le32 crc32_err;
__le32 overrun_err;
__le32 early_overrun_err;
__le32 crc32_good;
__le32 false_alarm_cnt;
__le32 fina_sync_err_cnt;
__le32 sfd_timeout;
__le32 fina_timeout;
__le32 unresponded_rts;
__le32 rxe_frame_lmt_overrun;
__le32 sent_ack_cnt;
__le32 sent_cts_cnt;
__le32 sent_ba_rsp_cnt;
__le32 dsp_self_kill;
__le32 mh_format_err;
__le32 re_acq_main_rssi_sum;
__le32 reserved;
};
struct mvm_statistics_rx_non_phy_v3 {
__le32 bogus_cts;
__le32 bogus_ack;
__le32 non_bssid_frames;
__le32 filtered_frames;
__le32 non_channel_beacons;
__le32 channel_beacons;
__le32 num_missed_bcon;
__le32 adc_rx_saturation_time;
__le32 ina_detection_search_time;
__le32 beacon_silence_rssi_a;
__le32 beacon_silence_rssi_b;
__le32 beacon_silence_rssi_c;
__le32 interference_data_flag;
__le32 channel_load;
__le32 dsp_false_alarms;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 beacon_rssi_c;
__le32 beacon_energy_a;
__le32 beacon_energy_b;
__le32 beacon_energy_c;
__le32 num_bt_kills;
__le32 mac_id;
__le32 directed_data_mpdu;
};
struct mvm_statistics_rx_ht_phy_v1 {
__le32 plcp_err;
__le32 overrun_err;
__le32 early_overrun_err;
__le32 crc32_good;
__le32 crc32_err;
__le32 mh_format_err;
__le32 agg_crc32_good;
__le32 agg_mpdu_cnt;
__le32 agg_cnt;
__le32 unsupport_mcs;
};
struct mvm_statistics_rx_v3 {
struct mvm_statistics_rx_phy_v2 ofdm;
struct mvm_statistics_rx_phy_v2 cck;
struct mvm_statistics_rx_non_phy_v3 general;
struct mvm_statistics_rx_ht_phy_v1 ofdm_ht;
};
struct mvm_statistics_rx_phy {
__le32 unresponded_rts;
__le32 rxe_frame_lmt_overrun;
__le32 sent_ba_rsp_cnt;
__le32 dsp_self_kill;
__le32 reserved;
};
struct mvm_statistics_rx_non_phy {
__le32 bogus_cts;
__le32 bogus_ack;
__le32 non_channel_beacons;
__le32 channel_beacons;
__le32 num_missed_bcon;
__le32 adc_rx_saturation_time;
__le32 ina_detection_search_time;
__le32 beacon_silence_rssi_a;
__le32 beacon_silence_rssi_b;
__le32 beacon_silence_rssi_c;
__le32 interference_data_flag;
__le32 channel_load;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 beacon_rssi_c;
__le32 beacon_energy_a;
__le32 beacon_energy_b;
__le32 beacon_energy_c;
__le32 num_bt_kills;
__le32 mac_id;
};
struct mvm_statistics_rx_ht_phy {
__le32 mh_format_err;
__le32 agg_mpdu_cnt;
__le32 agg_cnt;
__le32 unsupport_mcs;
};
struct mvm_statistics_rx {
struct mvm_statistics_rx_phy ofdm;
struct mvm_statistics_rx_phy cck;
struct mvm_statistics_rx_non_phy general;
struct mvm_statistics_rx_ht_phy ofdm_ht;
};
struct iwl_mvm_dqa_txq_info {
u8 ra_sta_id;
bool reserved;
u8 mac80211_ac;
u8 txq_tid;
u16 tid_bitmap;
unsigned long last_frame_time[9];
enum iwl_mvm_queue_status status;
};
struct iwl_mvm_tvqm_txq_info {
u8 sta_id;
u8 txq_tid;
};
struct iwl_nvm_section {
u16 length;
const u8 *data;
};
struct iwl_rx_phy_info {
u8 non_cfg_phy_cnt;
u8 cfg_phy_cnt;
u8 stat_id;
u8 reserved1;
__le32 system_timestamp;
__le64 timestamp;
__le32 beacon_time_stamp;
__le16 phy_flags;
__le16 channel;
__le32 non_cfg_phy[8];
__le32 rate_n_flags;
__le32 byte_count;
u8 mac_active_msk;
u8 mac_context_info;
__le16 frame_time;
} __attribute__((packed));
struct iwl_mvm_int_sta {
u32 sta_id;
u8 type;
u32 tfd_queue_msk;
};
struct iwl_mvm_phy_ctxt {
u16 id;
u16 color;
u32 ref;
enum nl80211_chan_width width;
struct ieee80211_channel *channel;
u32 center_freq1;
bool rlc_disabled;
u32 channel_load_by_us;
};
struct iwl_bt_coex_profile_notif {
__le32 mbox_msg[4];
__le32 msg_idx;
__le32 bt_ci_compliance;
__le32 primary_ch_lut;
__le32 secondary_ch_lut;
__le32 bt_activity_grading;
u8 ttc_status;
u8 rrc_status;
u8 wifi_loss_low_rssi;
u8 wifi_loss_mid_high_rssi;
};
struct iwl_bt_coex_ci_cmd {
__le64 bt_primary_ci;
__le32 primary_ch_phy_id;
__le64 bt_secondary_ci;
__le32 secondary_ch_phy_id;
} __attribute__((packed));
struct iwl_mvm_tt_mgmt {
struct delayed_work ct_kill_exit;
bool dynamic_smps;
u32 tx_backoff;
u32 min_backoff;
struct iwl_tt_params params;
bool throttle;
};
struct thermal_trip {
int temperature;
int hysteresis;
int threshold;
enum thermal_trip_type type;
u8 flags;
void *priv;
};
struct thermal_zone_device;
struct iwl_mvm_thermal_device {
struct thermal_trip trips[8];
struct thermal_zone_device *tzone;
};
struct iwl_mvm_cooling_device {
u32 cur_state;
struct thermal_cooling_device *cdev;
};
struct ewma_rate {
unsigned long internal;
};
struct iwl_mvm_tcm_mac {
struct {
u32 pkts[4];
u32 airtime;
} tx;
struct {
u32 pkts[4];
u32 airtime;
u32 last_ampdu_ref;
} rx;
struct {
u64 rx_bytes;
struct ewma_rate rate;
bool detected;
} uapsd_nonagg_detect;
bool opened_rx_ba_sessions;
};
struct iwl_mvm_tcm {
struct delayed_work work;
spinlock_t lock;
unsigned long ts;
unsigned long ll_ts;
unsigned long uapsd_nonagg_ts;
bool paused;
struct iwl_mvm_tcm_mac data[4];
struct {
u32 elapsed;
u32 airtime[4];
enum iwl_mvm_traffic_load load[4];
enum iwl_mvm_traffic_load band_load[6];
enum iwl_mvm_traffic_load global_load;
bool low_latency[4];
bool change[4];
} result;
};
struct iwl_time_quota_data {
__le32 id_and_color;
__le32 quota;
__le32 max_duration;
__le32 low_latency;
};
struct iwl_time_quota_cmd {
struct iwl_time_quota_data quotas[4];
};
struct ptp_data {
struct ptp_clock *ptp_clock;
struct ptp_clock_info ptp_clock_info;
struct delayed_work dwork;
u32 last_gp2;
u32 wrap_counter;
u32 scale_update_gp2;
u64 scale_update_adj_time_ns;
u64 scaled_freq;
s64 delta;
};
struct iwl_phy_specific_cfg {
__le32 filter_cfg_chains[4];
};
struct iwl_time_sync_data {
struct sk_buff_head frame_list;
u8 peer_addr[6];
bool active;
};
struct iwl_mei_scan_filter {
bool is_mei_limited_scan;
struct sk_buff_head scan_res;
struct work_struct scan_work;
};
struct iwl_phy_db;
struct iwl_mvm_vif;
struct iwl_mei_nvm;
struct iwl_mvm_csme_conn_info;
struct iwl_mcast_filter_cmd;
struct iwl_mvm {
struct device *dev;
struct iwl_trans *trans;
const struct iwl_fw *fw;
const struct iwl_cfg *cfg;
struct iwl_phy_db *phy_db;
struct ieee80211_hw *hw;
struct mutex mutex;
struct list_head async_handlers_list;
spinlock_t async_handlers_lock;
struct work_struct async_handlers_wk;
struct wiphy_work async_handlers_wiphy_wk;
struct work_struct roc_done_wk;
unsigned long init_status;
unsigned long status;
u32 queue_sync_cookie;
long: 0;
unsigned long queue_sync_state;
struct iwl_mvm_vif *bf_allowed_vif;
bool hw_registered;
bool rfkill_safe_init_done;
u8 cca_40mhz_workaround;
int: 0;
u32 ampdu_ref;
bool ampdu_toggle;
long: 0;
struct iwl_notif_wait_data notif_wait;
union {
struct mvm_statistics_rx_v3 rx_stats_v3;
struct mvm_statistics_rx rx_stats;
};
struct {
u64 rx_time;
u64 tx_time;
u64 on_time_rf;
u64 on_time_scan;
} radio_stats;
struct {
u64 rx_time;
u64 tx_time;
u64 on_time_rf;
u64 on_time_scan;
} accu_radio_stats;
struct list_head add_stream_txqs;
union {
struct iwl_mvm_dqa_txq_info queue_info[32];
struct iwl_mvm_tvqm_txq_info tvqm_info[512];
};
struct work_struct add_stream_wk;
spinlock_t add_stream_lock;
const char *nvm_file_name;
struct iwl_nvm_data *nvm_data;
struct iwl_mei_nvm *mei_nvm_data;
struct iwl_mvm_csme_conn_info __attribute__((btf_type_tag("rcu"))) *csme_conn_info;
bool mei_rfkill_blocked;
bool mei_registered;
long: 0;
struct work_struct sap_connected_wk;
struct iwl_nvm_data *temp_nvm_data;
struct iwl_nvm_section nvm_sections[13];
struct iwl_fw_runtime fwrt;
struct mac_address addresses[5];
struct iwl_rx_phy_info last_phy_info;
long: 0;
struct ieee80211_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_mac_id[16];
struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *fw_id_to_link_sta[16];
unsigned long fw_link_ids_map;
u8 rx_ba_sessions;
int: 0;
u32 rts_threshold;
unsigned int scan_status;
long: 0;
size_t scan_cmd_size;
void *scan_cmd;
struct iwl_mcast_filter_cmd *mcast_filter_cmd;
enum iwl_mvm_scan_type scan_type;
enum iwl_mvm_scan_type hb_scan_type;
enum iwl_mvm_sched_scan_pass_all_states sched_scan_pass_all;
long: 0;
struct delayed_work scan_timeout_dwork;
unsigned int max_scans;
u32 scan_uid_status[4];
long: 0;
u64 scan_start;
struct iwl_mvm_vif *scan_vif;
u8 scan_link_id;
u8 scan_rx_ant;
int: 0;
struct iwl_mvm_int_sta aux_sta;
struct iwl_mvm_int_sta snif_sta;
bool last_ebs_successful;
u8 scan_last_antenna_idx;
u8 mgmt_last_antenna_idx;
u8 set_tx_ant;
u8 set_rx_ant;
int: 0;
enum iwl_sf_state sf_state;
struct dentry *debugfs_dir;
struct iwl_mvm_phy_ctxt phy_ctxts[3];
struct list_head time_event_list;
spinlock_t time_event_lock;
unsigned long fw_key_table[1];
u8 fw_key_deleted[16];
struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *vif_id_to_mac[4];
struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_id_to_link_conf[4];
s8 fw_restart;
long: 0;
u8 *error_recovery_buf;
struct ieee80211_vif *p2p_device_vif;
struct wiphy_wowlan_support wowlan;
int gtk_ivlen;
int gtk_icvlen;
int ptk_ivlen;
int ptk_icvlen;
struct ieee80211_scan_ies nd_ies;
struct cfg80211_match_set *nd_match_sets;
int n_nd_match_sets;
long: 0;
struct ieee80211_channel **nd_channels;
int n_nd_channels;
bool net_detect;
u8 offload_tid;
long: 0;
wait_queue_head_t rx_sync_waitq;
struct iwl_bt_coex_profile_notif last_bt_notif;
struct iwl_bt_coex_ci_cmd last_bt_ci_cmd;
u8 bt_tx_prio;
int: 0;
enum iwl_bt_force_ant_mode bt_force_ant_mode;
struct list_head aux_roc_te_list;
struct iwl_mvm_tt_mgmt thermal_throttle;
struct iwl_mvm_thermal_device tz_device;
struct iwl_mvm_cooling_device cooling_dev;
s32 temperature;
bool temperature_test;
bool fw_static_smps_request;
long: 0;
unsigned long bt_coex_last_tcm_ts;
struct iwl_mvm_tcm tcm;
u8 uapsd_noagg_bssid_write_idx;
short: 0;
struct mac_address uapsd_noagg_bssids[20];
struct iwl_time_quota_cmd last_quota_cmd;
u16 aux_queue;
u16 snif_queue;
u16 probe_queue;
u16 p2p_dev_queue;
u8 ps_disabled;
int: 0;
u32 ext_clock_valid;
struct ieee80211_vif *csme_vif;
struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_vif;
struct ieee80211_vif __attribute__((btf_type_tag("rcu"))) *csa_tx_blocked_vif;
u8 csa_tx_block_bcn_timeout;
int: 0;
u32 ap_last_beacon_gp2;
bool ibss_manager;
bool lar_regdom_set;
int: 0;
enum iwl_mcc_source mcc_src;
struct {
struct delayed_work dwork;
enum iwl_mvm_tdls_cs_state state;
u8 cur_sta_id;
struct {
u8 sta_id;
u8 op_class;
bool initiator;
struct cfg80211_chan_def chandef;
struct sk_buff *skb;
u32 ch_sw_tm_ie;
u32 sent_timestamp;
} peer;
} tdls_cs;
u32 ciphers[10];
struct cfg80211_ftm_responder_stats ftm_resp_stats;
struct {
struct cfg80211_pmsr_request *req;
struct wireless_dev *req_wdev;
struct list_head loc_list;
int responses[5];
struct {
struct list_head resp;
} smooth;
struct list_head pasn_list;
} ftm_initiator;
struct list_head resp_pasn_list;
struct ptp_data ptp_data;
struct {
u8 range_resp;
} cmd_ver;
long: 0;
struct ieee80211_vif *nan_vif;
struct iwl_mvm_baid_data __attribute__((btf_type_tag("rcu"))) *baid_map[32];
bool drop_bcn_ap_mode;
long: 0;
struct delayed_work cs_tx_unblock_dwork;
bool monitor_on;
u8 monitor_p80;
__le16 cur_aid;
u8 cur_bssid[6];
struct iwl_phy_specific_cfg phy_filters;
long: 0;
unsigned long last_6ghz_passive_scan_jiffies;
unsigned long last_reset_or_resume_time_jiffies;
bool sta_remove_requires_queue_remove;
bool mld_api_is_used;
bool pldr_sync;
long: 0;
struct iwl_time_sync_data time_sync;
struct iwl_mei_scan_filter mei_scan_filter;
bool statistics_clear;
long: 0;
} __attribute__((packed));
struct iwl_mvm_vif_bf_data {
bool bf_enabled;
bool ba_enabled;
int ave_beacon_signal;
int last_cqm_event;
int bt_coex_min_thold;
int bt_coex_max_thold;
int last_bt_coex_event;
};
struct iwl_mvm_time_event_data {
struct ieee80211_vif *vif;
struct list_head list;
unsigned long end_jiffies;
u32 duration;
bool running;
u32 uid;
u32 id;
s8 link_id;
};
struct iwl_probe_resp_data;
struct iwl_mvm_vif_link_info {
u8 bssid[6];
u8 ap_sta_id;
u8 fw_link_id;
struct iwl_mvm_int_sta bcast_sta;
struct iwl_mvm_int_sta mcast_sta;
struct {
u32 num_beacons;
u32 accu_num_beacons;
u8 avg_signal;
} beacon_stats;
enum ieee80211_smps_mode smps_requests[4];
struct iwl_probe_resp_data __attribute__((btf_type_tag("rcu"))) *probe_resp_data;
struct ieee80211_key_conf *igtk;
bool he_ru_2mhz_block;
bool active;
bool listen_lmac;
u16 cab_queue;
struct iwl_mvm_phy_ctxt *phy_ctxt;
struct ieee80211_tx_queue_params queue_params[4];
u16 mgmt_queue;
};
struct iwl_mvm_vif {
struct iwl_mvm *mvm;
u16 id;
u16 color;
bool associated;
u8 ap_assoc_sta_count;
bool uploaded;
bool ap_ibss_active;
bool pm_enabled;
bool monitor_active;
bool esr_active;
bool bt_coex_esr_disabled;
u8 low_latency: 6;
u8 low_latency_actual: 1;
u8 authorized: 1;
bool ps_disabled;
u32 ap_beacon_time;
struct iwl_mvm_vif_bf_data bf_data;
struct {
u8 kck[24];
u8 kek[32];
size_t kek_len;
size_t kck_len;
u32 akm;
__le64 replay_ctr;
bool valid;
} rekey_data;
int tx_key_idx;
bool seqno_valid;
u16 seqno;
struct in6_addr target_ipv6_addrs[12];
unsigned long tentative_addrs[1];
int num_target_ipv6_addrs;
u8 uapsd_misbehaving_ap_addr[6];
struct delayed_work uapsd_nonagg_detected_wk;
bool csa_countdown;
bool csa_failed;
bool csa_bcn_pending;
u16 csa_target_freq;
u16 csa_count;
u16 csa_misbehave;
struct delayed_work csa_work;
enum iwl_tsf_id tsf_id;
struct iwl_mvm_time_event_data time_event_data;
struct iwl_mvm_time_event_data hs_time_event_data;
netdev_features_t features;
struct ieee80211_sta *ap_sta;
struct ieee80211_key_conf *ap_early_keys[4];
struct {
struct ieee80211_key_conf __attribute__((btf_type_tag("rcu"))) *keys[2];
} bcn_prot;
struct iwl_mvm_vif_link_info deflink;
struct iwl_mvm_vif_link_info *link[15];
};
struct iwl_p2p_noa_attr {
u8 id;
u8 len_low;
u8 len_high;
u8 idx;
u8 ctwin;
struct ieee80211_p2p_noa_desc desc[2];
u8 reserved;
};
struct iwl_probe_resp_data_notif {
__le32 mac_id;
__le32 noa_active;
struct iwl_p2p_noa_attr noa_attr;
u8 csa_counter;
u8 reserved[3];
};
struct iwl_probe_resp_data {
struct callback_head callback_head;
struct iwl_probe_resp_data_notif notif;
int noa_len;
};
struct iwl_mei_nvm {
u8 hw_addr[6];
u8 n_hw_addrs;
u8 reserved;
u32 radio_cfg;
u32 caps;
u32 nvm_version;
u32 channels[110];
};
struct iwl_mei_conn_info {
u8 lp_state;
u8 auth_mode;
u8 ssid_len;
u8 channel;
u8 band;
u8 pairwise_cipher;
u8 bssid[6];
u8 ssid[32];
};
struct iwl_mvm_csme_conn_info {
struct callback_head callback_head;
struct iwl_mei_conn_info conn_info;
};
struct iwl_mcast_filter_cmd {
u8 filter_own;
u8 port_id;
u8 count;
u8 pass_all;
u8 bssid[6];
u8 reserved[2];
u8 addr_list[0];
};
struct thermal_zone_device_ops {
int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *);
int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *);
int (*get_temp)(struct thermal_zone_device *, int *);
int (*set_trips)(struct thermal_zone_device *, int, int);
int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode);
int (*set_trip_temp)(struct thermal_zone_device *, int, int);
int (*get_crit_temp)(struct thermal_zone_device *, int *);
int (*set_emul_temp)(struct thermal_zone_device *, int);
int (*get_trend)(struct thermal_zone_device *, const struct thermal_trip *, enum thermal_trend *);
void (*hot)(struct thermal_zone_device *);
void (*critical)(struct thermal_zone_device *);
};
struct thermal_attr;
struct thermal_zone_params;
struct thermal_governor;
struct thermal_zone_device {
int id;
char type[20];
struct device device;
struct completion removal;
struct attribute_group trips_attribute_group;
struct thermal_attr *trip_temp_attrs;
struct thermal_attr *trip_type_attrs;
struct thermal_attr *trip_hyst_attrs;
enum thermal_device_mode mode;
void *devdata;
int num_trips;
unsigned long passive_delay_jiffies;
unsigned long polling_delay_jiffies;
int temperature;
int last_temperature;
int emul_temperature;
int passive;
int prev_low_trip;
int prev_high_trip;
atomic_t need_update;
struct thermal_zone_device_ops ops;
struct thermal_zone_params *tzp;
struct thermal_governor *governor;
void *governor_data;
struct list_head thermal_instances;
struct ida ida;
struct mutex lock;
struct list_head node;
struct delayed_work poll_queue;
enum thermal_notify_event notify_event;
bool suspended;
struct thermal_trip trips[0];
};
struct thermal_zone_params {
const char *governor_name;
bool no_hwmon;
u32 sustainable_power;
s32 k_po;
s32 k_pu;
s32 k_i;
s32 k_d;
s32 integral_cutoff;
int slope;
int offset;
};
struct thermal_governor {
const char *name;
int (*bind_to_tz)(struct thermal_zone_device *);
void (*unbind_from_tz)(struct thermal_zone_device *);
int (*throttle)(struct thermal_zone_device *, const struct thermal_trip *);
void (*update_tz)(struct thermal_zone_device *, enum thermal_notify_event);
struct list_head governor_list;
};
struct iwl_mvm_key_pn {
struct callback_head callback_head;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct {
u8 pn[48];
long: 64;
long: 64;
} q[0];
};
struct iwl_mvm_delba_data {
u32 baid;
};
struct iwl_rx_mpdu_desc_v1 {
union {
__le32 rss_hash;
__le32 phy_data2;
};
union {
__le32 filter_match;
__le32 phy_data3;
};
__le32 rate_n_flags;
u8 energy_a;
u8 energy_b;
u8 channel;
u8 mac_context;
__le32 gp2_on_air_rise;
union {
__le64 tsf_on_air_rise;
struct {
__le32 phy_data0;
__le32 phy_data1;
};
};
} __attribute__((packed));
struct iwl_rx_mpdu_desc_v3 {
union {
__le32 filter_match;
__le32 phy_data3;
};
union {
__le32 rss_hash;
__le32 phy_data2;
};
__le32 partial_hash;
__be16 raw_xsum;
__le16 reserved_xsum;
__le32 rate_n_flags;
u8 energy_a;
u8 energy_b;
u8 channel;
u8 mac_context;
__le32 gp2_on_air_rise;
union {
__le64 tsf_on_air_rise;
struct {
__le32 phy_data0;
__le32 phy_data1;
};
};
__le32 phy_data5;
__le32 reserved[1];
} __attribute__((packed));
struct iwl_rx_mpdu_desc {
__le16 mpdu_len;
u8 mac_flags1;
u8 mac_flags2;
u8 amsdu_info;
__le16 phy_info;
u8 mac_phy_idx;
union {
struct {
__le16 raw_csum;
union {
__le16 l3l4_flags;
__le16 phy_data4;
};
};
__le32 phy_eht_data4;
};
__le32 status;
__le32 reorder_data;
union {
struct iwl_rx_mpdu_desc_v1 v1;
struct iwl_rx_mpdu_desc_v3 v3;
};
} __attribute__((packed));
struct iwl_mvm_tid_data {
u16 seq_number;
u16 next_reclaimed;
u32 rate_n_flags;
u8 lq_color;
bool amsdu_in_ampdu_allowed;
enum iwl_mvm_agg_state state;
u16 txq_id;
u16 ssn;
u16 tx_time;
unsigned long tpt_meas_start;
u32 tx_count_last;
u32 tx_count;
};
struct lq_sta_pers_rs_fw {
u32 sta_id;
u8 chains;
s8 chain_signal[4];
s8 last_rssi;
struct iwl_mvm *drv;
};
struct iwl_lq_sta_rs_fw {
u32 last_rate_n_flags;
struct lq_sta_pers_rs_fw pers;
};
struct rs_rate {
int index;
enum iwl_table_type type;
u8 ant;
u32 bw;
bool sgi;
bool ldpc;
bool stbc;
bool bfer;
};
struct iwl_lq_cmd {
u8 sta_id;
u8 reduced_tpc;
__le16 control;
u8 flags;
u8 mimo_delim;
u8 single_stream_ant_msk;
u8 dual_stream_ant_msk;
u8 initial_rate_index[4];
__le16 agg_time_limit;
u8 agg_disable_start_th;
u8 agg_frame_cnt_limit;
__le32 reserved2;
__le32 rs_table[16];
__le32 ss_params;
};
struct iwl_rate_scale_data {
u64 data;
s32 success_counter;
s32 success_ratio;
s32 counter;
s32 average_tpt;
};
struct iwl_scale_tbl_info {
struct rs_rate rate;
enum rs_column column;
const u16 *expected_tpt;
struct iwl_rate_scale_data win[17];
struct iwl_rate_scale_data tpc_win[16];
};
struct rs_rate_stats {
u64 success;
u64 total;
};
struct lq_sta_pers {
u8 chains;
s8 chain_signal[4];
s8 last_rssi;
u16 max_agg_bufsize;
struct rs_rate_stats tx_stats[136];
struct iwl_mvm *drv;
spinlock_t lock;
};
struct rs_init_rate_info;
struct iwl_lq_sta {
u8 active_tbl;
u8 rs_state;
u8 search_better_tbl;
s32 last_tpt;
u32 table_count_limit;
u32 max_failure_limit;
u32 max_success_limit;
u32 table_count;
u32 total_failed;
u32 total_success;
u64 flush_timer;
u32 visited_columns;
u64 last_tx;
bool is_vht;
bool ldpc;
bool stbc_capable;
bool bfer_capable;
enum nl80211_band band;
unsigned long active_legacy_rate;
unsigned long active_siso_rate;
unsigned long active_mimo2_rate;
u8 max_legacy_rate_idx;
u8 max_siso_rate_idx;
u8 max_mimo2_rate_idx;
struct rs_rate optimal_rate;
unsigned long optimal_rate_mask;
const struct rs_init_rate_info *optimal_rates;
int optimal_nentries;
u8 missed_rate_counter;
struct iwl_lq_cmd lq;
struct iwl_scale_tbl_info lq_info[2];
u8 tx_agg_tid_en;
u32 last_rate_n_flags;
u8 is_agg;
int tpc_reduce;
struct lq_sta_pers pers;
};
struct iwl_mvm_link_sta {
struct callback_head callback_head;
u32 sta_id;
union {
struct iwl_lq_sta_rs_fw rs_fw;
struct iwl_lq_sta rs_drv;
} lq_sta;
u16 orig_amsdu_len;
u8 avg_energy;
};
struct iwl_mvm_rxq_dup_data;
struct iwl_mvm_sta {
u32 tfd_queue_msk;
u32 mac_id_n_color;
u16 tid_disable_agg;
u8 sta_type;
enum ieee80211_sta_state sta_state;
bool bt_reduced_txpower;
bool next_status_eosp;
bool authorized;
spinlock_t lock;
struct iwl_mvm_tid_data tid_data[9];
u8 tid_to_baid[8];
struct ieee80211_vif *vif;
struct iwl_mvm_key_pn __attribute__((btf_type_tag("rcu"))) *ptk_pn[4];
struct iwl_mvm_rxq_dup_data *dup_data;
u8 reserved_queue;
s8 tx_protection;
bool tt_tx_protection;
bool disable_tx;
u16 amsdu_enabled;
u16 max_amsdu_len;
bool sleeping;
u8 agg_tids;
u8 sleep_tx_count;
u8 tx_ant;
u32 pairwise_cipher;
struct iwl_mvm_link_sta deflink;
struct iwl_mvm_link_sta __attribute__((btf_type_tag("rcu"))) *link[15];
};
struct iwl_mvm_rxq_dup_data {
__le16 last_seq[9];
u8 last_sub_frame[9];
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rs_init_rate_info {
s8 rssi;
u8 rate_idx;
};
struct ieee80211_qos_hdr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
__le16 seq_ctrl;
__le16 qos_ctrl;
};
struct ieee80211_qos_hdr_4addr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
__le16 seq_ctrl;
u8 addr4[6];
__le16 qos_ctrl;
};
struct iwl_mvm_rx_phy_data {
enum iwl_rx_phy_info_type info_type;
__le32 d0;
__le32 d1;
__le32 d2;
__le32 d3;
__le32 eht_d4;
__le32 d5;
__le16 d4;
bool with_data;
bool first_subframe;
__le32 rx_vec[4];
u32 rate_n_flags;
u32 gp2_on_air_rise;
u16 phy_info;
u8 energy_a;
u8 energy_b;
u8 channel;
};
struct ieee80211_radiotap_lsig {
__le16 data1;
__le16 data2;
};
struct ieee80211_radiotap_eht {
__le32 known;
__le32 data[9];
__le32 user_info[0];
};
struct ieee80211_radiotap_eht_usig {
__le32 common;
__le32 value;
__le32 mask;
};
struct ieee80211_radiotap_tlv {
__le16 type;
__le16 len;
u8 data[0];
};
struct iwl_rxq_sync_notification {
__le32 count;
u8 payload[0];
};
struct iwl_mvm_internal_rxq_notif {
u16 type;
u16 sync;
u32 cookie;
u8 data[0];
};
struct iwl_rx_sta_csa {
bool all_sta_unblocked;
struct ieee80211_vif *vif;
};
struct iwl_fw_dbg_trigger_low_rssi {
__le32 rssi;
};
struct iwl_rx_no_data_ver_3 {
__le32 info;
__le32 rssi;
__le32 on_air_rise_time;
__le32 fr_time;
__le32 rate;
__le32 phy_info[2];
__le32 rx_vec[4];
};
struct iwl_frame_release {
u8 baid;
u8 reserved;
__le16 nssn;
};
struct iwl_bar_frame_release {
__le32 sta_tid;
__le32 ba_info;
};
struct ieee80211_radiotap_vendor_content {
u8 oui[3];
u8 oui_subtype;
__le16 vendor_type;
__le16 reserved;
u8 data[0];
};
enum xhci_ring_type {
TYPE_CTRL = 0,
TYPE_ISOC = 1,
TYPE_BULK = 2,
TYPE_INTR = 3,
TYPE_STREAM = 4,
TYPE_COMMAND = 5,
TYPE_EVENT = 6,
};
enum dmi_field {
DMI_NONE = 0,
DMI_BIOS_VENDOR = 1,
DMI_BIOS_VERSION = 2,
DMI_BIOS_DATE = 3,
DMI_BIOS_RELEASE = 4,
DMI_EC_FIRMWARE_RELEASE = 5,
DMI_SYS_VENDOR = 6,
DMI_PRODUCT_NAME = 7,
DMI_PRODUCT_VERSION = 8,
DMI_PRODUCT_SERIAL = 9,
DMI_PRODUCT_UUID = 10,
DMI_PRODUCT_SKU = 11,
DMI_PRODUCT_FAMILY = 12,
DMI_BOARD_VENDOR = 13,
DMI_BOARD_NAME = 14,
DMI_BOARD_VERSION = 15,
DMI_BOARD_SERIAL = 16,
DMI_BOARD_ASSET_TAG = 17,
DMI_CHASSIS_VENDOR = 18,
DMI_CHASSIS_TYPE = 19,
DMI_CHASSIS_VERSION = 20,
DMI_CHASSIS_SERIAL = 21,
DMI_CHASSIS_ASSET_TAG = 22,
DMI_STRING_MAX = 23,
DMI_OEM_STRING = 24,
};
enum xhci_overhead_type {
LS_OVERHEAD_TYPE = 0,
FS_OVERHEAD_TYPE = 1,
HS_OVERHEAD_TYPE = 2,
};
enum xhci_cancelled_td_status {
TD_DIRTY = 0,
TD_HALTED = 1,
TD_CLEARING_CACHE = 2,
TD_CLEARED = 3,
};
enum xhci_setup_dev {
SETUP_CONTEXT_ONLY = 0,
SETUP_CONTEXT_ADDRESS = 1,
};
struct reset_control;
struct s3_save {
u32 command;
u32 dev_nt;
u64 dcbaa_ptr;
u32 config_reg;
};
struct xhci_bus_state {
unsigned long bus_suspended;
unsigned long next_statechange;
u32 port_c_suspend;
u32 suspended_ports;
u32 port_remote_wakeup;
unsigned long resuming_ports;
};
struct xhci_port;
struct xhci_hub {
struct xhci_port **ports;
unsigned int num_ports;
struct usb_hcd *hcd;
struct xhci_bus_state bus_state;
u8 maj_rev;
u8 min_rev;
};
struct xhci_cap_regs;
struct xhci_op_regs;
struct xhci_run_regs;
struct xhci_doorbell_array;
struct xhci_device_context_array;
struct xhci_interrupter;
struct xhci_ring;
struct xhci_command;
struct xhci_scratchpad;
struct xhci_virt_device;
struct xhci_root_port_bw_info;
struct xhci_port_cap;
struct xhci_hcd {
struct usb_hcd *main_hcd;
struct usb_hcd *shared_hcd;
struct xhci_cap_regs *cap_regs;
struct xhci_op_regs *op_regs;
struct xhci_run_regs *run_regs;
struct xhci_doorbell_array *dba;
__u32 hcs_params1;
__u32 hcs_params2;
__u32 hcs_params3;
__u32 hcc_params;
__u32 hcc_params2;
spinlock_t lock;
u8 sbrn;
u16 hci_version;
u8 max_slots;
u16 max_interrupters;
u8 max_ports;
u8 isoc_threshold;
u32 imod_interval;
int event_ring_max;
int page_size;
int page_shift;
int nvecs;
struct clk *clk;
struct clk *reg_clk;
struct reset_control *reset;
struct xhci_device_context_array *dcbaa;
struct xhci_interrupter **interrupters;
struct xhci_ring *cmd_ring;
unsigned int cmd_ring_state;
struct list_head cmd_list;
unsigned int cmd_ring_reserved_trbs;
struct delayed_work cmd_timer;
struct completion cmd_ring_stop_completion;
struct xhci_command *current_cmd;
struct xhci_scratchpad *scratchpad;
struct mutex mutex;
struct xhci_virt_device *devs[256];
struct xhci_root_port_bw_info *rh_bw;
struct dma_pool *device_pool;
struct dma_pool *segment_pool;
struct dma_pool *small_streams_pool;
struct dma_pool *medium_streams_pool;
unsigned int xhc_state;
unsigned long run_graceperiod;
struct s3_save s3;
unsigned long long quirks;
unsigned int num_active_eps;
unsigned int limit_active_eps;
struct xhci_port *hw_ports;
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
unsigned int hw_lpm_support: 1;
unsigned int broken_suspend: 1;
unsigned int allow_single_roothub: 1;
u32 *ext_caps;
unsigned int num_ext_caps;
struct xhci_port_cap *port_caps;
unsigned int num_port_caps;
struct timer_list comp_mode_recovery_timer;
u32 port_status_u0;
u16 test_mode;
struct dentry *debugfs_root;
struct dentry *debugfs_slots;
struct list_head regset_list;
void *dbc;
unsigned long priv[0];
};
struct xhci_cap_regs {
__le32 hc_capbase;
__le32 hcs_params1;
__le32 hcs_params2;
__le32 hcs_params3;
__le32 hcc_params;
__le32 db_off;
__le32 run_regs_off;
__le32 hcc_params2;
};
struct xhci_op_regs {
__le32 command;
__le32 status;
__le32 page_size;
__le32 reserved1;
__le32 reserved2;
__le32 dev_notification;
__le64 cmd_ring;
__le32 reserved3[4];
__le64 dcbaa_ptr;
__le32 config_reg;
__le32 reserved4[241];
__le32 port_status_base;
__le32 port_power_base;
__le32 port_link_base;
__le32 reserved5;
__le32 reserved6[1016];
};
struct xhci_intr_reg {
__le32 irq_pending;
__le32 irq_control;
__le32 erst_size;
__le32 rsvd;
__le64 erst_base;
__le64 erst_dequeue;
};
struct xhci_run_regs {
__le32 microframe_index;
__le32 rsvd[7];
struct xhci_intr_reg ir_set[128];
};
struct xhci_doorbell_array {
__le32 doorbell[256];
};
struct xhci_device_context_array {
__le64 dev_context_ptrs[256];
dma_addr_t dma;
};
struct xhci_erst_entry;
struct xhci_erst {
struct xhci_erst_entry *entries;
unsigned int num_entries;
dma_addr_t erst_dma_addr;
unsigned int erst_size;
};
struct xhci_interrupter {
struct xhci_ring *event_ring;
struct xhci_erst erst;
struct xhci_intr_reg *ir_set;
unsigned int intr_num;
bool ip_autoclear;
u32 isoc_bei_interval;
u32 s3_irq_pending;
u32 s3_irq_control;
u32 s3_erst_size;
u64 s3_erst_base;
u64 s3_erst_dequeue;
};
struct xhci_segment;
union xhci_trb;
struct xhci_ring {
struct xhci_segment *first_seg;
struct xhci_segment *last_seg;
union xhci_trb *enqueue;
struct xhci_segment *enq_seg;
union xhci_trb *dequeue;
struct xhci_segment *deq_seg;
struct list_head td_list;
u32 cycle_state;
unsigned int stream_id;
unsigned int num_segs;
unsigned int num_trbs_free;
unsigned int bounce_buf_len;
enum xhci_ring_type type;
bool last_td_was_short;
struct xarray *trb_address_map;
};
struct xhci_segment {
union xhci_trb *trbs;
struct xhci_segment *next;
unsigned int num;
dma_addr_t dma;
dma_addr_t bounce_dma;
void *bounce_buf;
unsigned int bounce_offs;
unsigned int bounce_len;
};
struct xhci_link_trb {
__le64 segment_ptr;
__le32 intr_target;
__le32 control;
};
struct xhci_transfer_event {
__le64 buffer;
__le32 transfer_len;
__le32 flags;
};
struct xhci_event_cmd {
__le64 cmd_trb;
__le32 status;
__le32 flags;
};
struct xhci_generic_trb {
__le32 field[4];
};
union xhci_trb {
struct xhci_link_trb link;
struct xhci_transfer_event trans_event;
struct xhci_event_cmd event_cmd;
struct xhci_generic_trb generic;
};
struct xhci_erst_entry {
__le64 seg_addr;
__le32 seg_size;
__le32 rsvd;
};
struct xhci_container_ctx;
struct xhci_command {
struct xhci_container_ctx *in_ctx;
u32 status;
int slot_id;
struct completion *completion;
union xhci_trb *command_trb;
struct list_head cmd_list;
unsigned int timeout_ms;
};
struct xhci_container_ctx {
unsigned int type;
int size;
u8 *bytes;
dma_addr_t dma;
};
struct xhci_scratchpad {
u64 *sp_array;
dma_addr_t sp_dma;
void **sp_buffers;
};
struct xhci_bw_info {
unsigned int ep_interval;
unsigned int mult;
unsigned int num_packets;
unsigned int max_packet_size;
unsigned int max_esit_payload;
unsigned int type;
};
struct xhci_stream_info;
struct xhci_virt_ep {
struct xhci_virt_device *vdev;
unsigned int ep_index;
struct xhci_ring *ring;
struct xhci_stream_info *stream_info;
struct xhci_ring *new_ring;
unsigned int err_count;
unsigned int ep_state;
struct list_head cancelled_td_list;
struct xhci_hcd *xhci;
struct xhci_segment *queued_deq_seg;
union xhci_trb *queued_deq_ptr;
bool skip;
struct xhci_bw_info bw_info;
struct list_head bw_endpoint_list;
int next_frame_id;
bool use_extended_tbc;
};
struct xhci_interval_bw_table;
struct xhci_tt_bw_info;
struct xhci_virt_device {
int slot_id;
struct usb_device *udev;
struct xhci_container_ctx *out_ctx;
struct xhci_container_ctx *in_ctx;
struct xhci_virt_ep eps[31];
struct xhci_port *rhub_port;
struct xhci_interval_bw_table *bw_table;
struct xhci_tt_bw_info *tt_info;
unsigned long flags;
u16 current_mel;
void *debugfs_private;
};
struct xhci_stream_ctx;
struct xhci_stream_info {
struct xhci_ring **stream_rings;
unsigned int num_streams;
struct xhci_stream_ctx *stream_ctx_array;
unsigned int num_stream_ctxs;
dma_addr_t ctx_array_dma;
struct xarray trb_address_map;
struct xhci_command *free_streams_command;
};
struct xhci_stream_ctx {
__le64 stream_ring;
__le32 reserved[2];
};
struct xhci_port {
__le32 *addr;
int hw_portnum;
int hcd_portnum;
struct xhci_hub *rhub;
struct xhci_port_cap *port_cap;
unsigned int lpm_incapable: 1;
unsigned long resume_timestamp;
bool rexit_active;
int slot_id;
struct completion rexit_done;
struct completion u3exit_done;
};
struct xhci_port_cap {
u32 *psi;
u8 psi_count;
u8 psi_uid_count;
u8 maj_rev;
u8 min_rev;
};
struct xhci_interval_bw {
unsigned int num_packets;
struct list_head endpoints;
unsigned int overhead[3];
};
struct xhci_interval_bw_table {
unsigned int interval0_esit_payload;
struct xhci_interval_bw interval_bw[16];
unsigned int bw_used;
unsigned int ss_bw_in;
unsigned int ss_bw_out;
};
struct xhci_tt_bw_info {
struct list_head tt_list;
int slot_id;
int ttport;
struct xhci_interval_bw_table bw_table;
int active_eps;
};
struct xhci_root_port_bw_info {
struct list_head tts;
unsigned int num_active_tts;
struct xhci_interval_bw_table bw_table;
};
struct usb_dynids {
spinlock_t lock;
struct list_head list;
};
struct usb_device_id;
struct usb_driver {
const char *name;
int (*probe)(struct usb_interface *, const struct usb_device_id *);
void (*disconnect)(struct usb_interface *);
int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *);
int (*suspend)(struct usb_interface *, pm_message_t);
int (*resume)(struct usb_interface *);
int (*reset_resume)(struct usb_interface *);
int (*pre_reset)(struct usb_interface *);
int (*post_reset)(struct usb_interface *);
const struct usb_device_id *id_table;
const struct attribute_group **dev_groups;
struct usb_dynids dynids;
struct device_driver driver;
unsigned int no_dynamic_id: 1;
unsigned int supports_autosuspend: 1;
unsigned int disable_hub_initiated_lpm: 1;
unsigned int soft_unbind: 1;
};
struct usb_device_id {
__u16 match_flags;
__u16 idVendor;
__u16 idProduct;
__u16 bcdDevice_lo;
__u16 bcdDevice_hi;
__u8 bDeviceClass;
__u8 bDeviceSubClass;
__u8 bDeviceProtocol;
__u8 bInterfaceClass;
__u8 bInterfaceSubClass;
__u8 bInterfaceProtocol;
__u8 bInterfaceNumber;
kernel_ulong_t driver_info;
};
struct xhci_input_control_ctx {
__le32 drop_flags;
__le32 add_flags;
__le32 rsvd2[6];
};
struct xhci_ep_ctx {
__le32 ep_info;
__le32 ep_info2;
__le64 deq;
__le32 tx_info;
__le32 reserved[3];
};
struct xhci_slot_ctx {
__le32 dev_info;
__le32 dev_info2;
__le32 tt_info;
__le32 dev_state;
__le32 reserved[4];
};
struct xhci_td {
struct list_head td_list;
struct list_head cancelled_td_list;
int status;
enum xhci_cancelled_td_status cancel_status;
struct urb *urb;
struct xhci_segment *start_seg;
union xhci_trb *first_trb;
union xhci_trb *last_trb;
struct xhci_segment *last_trb_seg;
struct xhci_segment *bounce_seg;
bool urb_length_set;
bool error_mid_td;
unsigned int num_trbs;
};
struct urb_priv {
int num_tds;
int num_tds_done;
struct xhci_td td[0];
};
typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *);
struct xhci_driver_overrides {
size_t extra_priv_size;
int (*reset)(struct usb_hcd *);
int (*start)(struct usb_hcd *);
int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *);
int (*check_bandwidth)(struct usb_hcd *, struct usb_device *);
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t);
int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16);
};
struct hd_geometry {
unsigned char heads;
unsigned char sectors;
unsigned short cylinders;
unsigned long start;
};
struct mapped_device;
struct dm_sysfs_attr {
struct attribute attr;
ssize_t (*show)(struct mapped_device *, char *);
ssize_t (*store)(struct mapped_device *, const char *, size_t);
};
enum dm_queue_mode {
DM_TYPE_NONE = 0,
DM_TYPE_BIO_BASED = 1,
DM_TYPE_REQUEST_BASED = 2,
DM_TYPE_DAX_BIO_BASED = 3,
};
struct dm_stats_last_position;
struct dm_stats {
struct mutex mutex;
struct list_head list;
struct dm_stats_last_position __attribute__((btf_type_tag("percpu"))) *last;
bool precise_timestamps;
};
struct dm_kobject_holder {
struct kobject kobj;
struct completion completion;
};
struct dm_target;
struct target_type;
struct dm_io;
struct dm_md_mempools;
struct mapped_device {
struct mutex suspend_lock;
struct mutex table_devices_lock;
struct list_head table_devices;
void __attribute__((btf_type_tag("rcu"))) *map;
unsigned long flags;
struct mutex type_lock;
enum dm_queue_mode type;
int numa_node_id;
struct request_queue *queue;
atomic_t holders;
atomic_t open_count;
struct dm_target *immutable_target;
struct target_type *immutable_target_type;
char name[16];
struct gendisk *disk;
struct dax_device *dax_dev;
wait_queue_head_t wait;
unsigned long __attribute__((btf_type_tag("percpu"))) *pending_io;
struct hd_geometry geometry;
struct workqueue_struct *wq;
struct work_struct work;
spinlock_t deferred_lock;
struct bio_list deferred;
struct work_struct requeue_work;
struct dm_io *requeue_list;
void *interface_ptr;
wait_queue_head_t eventq;
atomic_t event_nr;
atomic_t uevent_seq;
struct list_head uevent_list;
spinlock_t uevent_lock;
bool init_tio_pdu: 1;
struct blk_mq_tag_set *tag_set;
struct dm_stats stats;
unsigned int internal_suspend_count;
int swap_bios;
struct semaphore swap_bios_semaphore;
struct mutex swap_bios_lock;
struct dm_md_mempools *mempools;
struct dm_kobject_holder kobj_holder;
struct srcu_struct io_barrier;
};
struct dm_table;
struct dm_target {
struct dm_table *table;
struct target_type *type;
sector_t begin;
sector_t len;
uint32_t max_io_len;
unsigned int num_flush_bios;
unsigned int num_discard_bios;
unsigned int num_secure_erase_bios;
unsigned int num_write_zeroes_bios;
unsigned int per_io_data_size;
void *private;
char *error;
bool flush_supported: 1;
bool discards_supported: 1;
bool max_discard_granularity: 1;
bool max_secure_erase_granularity: 1;
bool max_write_zeroes_granularity: 1;
bool limit_swap_bios: 1;
bool emulate_zone_append: 1;
bool accounts_remapped_io: 1;
bool needs_bio_set_dev: 1;
};
struct dm_table {
struct mapped_device *md;
enum dm_queue_mode type;
unsigned int depth;
unsigned int counts[16];
sector_t *index[16];
unsigned int num_targets;
unsigned int num_allocated;
sector_t *highs;
struct dm_target *targets;
struct target_type *immutable_target_type;
bool integrity_supported: 1;
bool singleton: 1;
unsigned int integrity_added: 1;
blk_mode_t mode;
struct list_head devices;
struct rw_semaphore devices_lock;
void (*event_fn)(void *);
void *event_context;
struct dm_md_mempools *mempools;
};
typedef int (*dm_ctr_fn)(struct dm_target *, unsigned int, char **);
typedef void (*dm_dtr_fn)(struct dm_target *);
typedef int (*dm_map_fn)(struct dm_target *, struct bio *);
union map_info;
typedef int (*dm_clone_and_map_request_fn)(struct dm_target *, struct request *, union map_info *, struct request **);
typedef void (*dm_release_clone_request_fn)(struct request *, union map_info *);
typedef int (*dm_endio_fn)(struct dm_target *, struct bio *, blk_status_t *);
typedef int (*dm_request_endio_fn)(struct dm_target *, struct request *, blk_status_t, union map_info *);
typedef void (*dm_presuspend_fn)(struct dm_target *);
typedef void (*dm_presuspend_undo_fn)(struct dm_target *);
typedef void (*dm_postsuspend_fn)(struct dm_target *);
typedef int (*dm_preresume_fn)(struct dm_target *);
typedef void (*dm_resume_fn)(struct dm_target *);
typedef enum {
STATUSTYPE_INFO = 0,
STATUSTYPE_TABLE = 1,
STATUSTYPE_IMA = 2,
} status_type_t;
typedef void (*dm_status_fn)(struct dm_target *, status_type_t, unsigned int, char *, unsigned int);
typedef int (*dm_message_fn)(struct dm_target *, unsigned int, char **, char *, unsigned int);
typedef int (*dm_prepare_ioctl_fn)(struct dm_target *, struct block_device **);
typedef int (*dm_report_zones_fn)(struct dm_target *);
typedef int (*dm_busy_fn)(struct dm_target *);
struct dm_dev;
typedef int (*iterate_devices_callout_fn)(struct dm_target *, struct dm_dev *, sector_t, sector_t, void *);
typedef int (*dm_iterate_devices_fn)(struct dm_target *, iterate_devices_callout_fn, void *);
typedef void (*dm_io_hints_fn)(struct dm_target *, struct queue_limits *);
enum dax_access_mode {
DAX_ACCESS = 0,
DAX_RECOVERY_WRITE = 1,
};
typedef long (*dm_dax_direct_access_fn)(struct dm_target *, unsigned long, long, enum dax_access_mode, void **, pfn_t *);
typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, unsigned long, size_t);
typedef size_t (*dm_dax_recovery_write_fn)(struct dm_target *, unsigned long, void *, size_t, struct iov_iter *);
struct target_type {
uint64_t features;
const char *name;
struct module *module;
unsigned int version[3];
dm_ctr_fn ctr;
dm_dtr_fn dtr;
dm_map_fn map;
dm_clone_and_map_request_fn clone_and_map_rq;
dm_release_clone_request_fn release_clone_rq;
dm_endio_fn end_io;
dm_request_endio_fn rq_end_io;
dm_presuspend_fn presuspend;
dm_presuspend_undo_fn presuspend_undo;
dm_postsuspend_fn postsuspend;
dm_preresume_fn preresume;
dm_resume_fn resume;
dm_status_fn status;
dm_message_fn message;
dm_prepare_ioctl_fn prepare_ioctl;
dm_report_zones_fn report_zones;
dm_busy_fn busy;
dm_iterate_devices_fn iterate_devices;
dm_io_hints_fn io_hints;
dm_dax_direct_access_fn direct_access;
dm_dax_zero_page_range_fn dax_zero_page_range;
dm_dax_recovery_write_fn dax_recovery_write;
struct list_head list;
};
union map_info {
void *ptr;
};
struct dm_dev {
struct block_device *bdev;
struct file *bdev_file;
struct dax_device *dax_dev;
blk_mode_t mode;
char name[16];
};
struct dm_md_mempools {
struct bio_set bs;
struct bio_set io_bs;
};
typedef u16 blk_short_t;
struct dm_stats_aux {
bool merged;
unsigned long long duration_ns;
};
struct dm_target_io {
unsigned short magic;
blk_short_t flags;
unsigned int target_bio_nr;
struct dm_io *io;
struct dm_target *ti;
unsigned int *len_ptr;
sector_t old_sector;
struct bio clone;
};
struct dm_io {
unsigned short magic;
blk_short_t flags;
spinlock_t lock;
unsigned long start_time;
void *data;
struct dm_io *next;
struct dm_stats_aux stats_aux;
blk_status_t status;
atomic_t io_count;
struct mapped_device *md;
struct bio *orig_bio;
unsigned int sector_offset;
unsigned int sectors;
struct dm_target_io tio;
};
struct dm_stats_last_position {
sector_t last_sector;
unsigned int last_rw;
};
enum {
TCA_STATS_UNSPEC = 0,
TCA_STATS_BASIC = 1,
TCA_STATS_RATE_EST = 2,
TCA_STATS_QUEUE = 3,
TCA_STATS_APP = 4,
TCA_STATS_RATE_EST64 = 5,
TCA_STATS_PAD = 6,
TCA_STATS_BASIC_HW = 7,
TCA_STATS_PKT64 = 8,
__TCA_STATS_MAX = 9,
};
struct gnet_stats_rate_est64 {
__u64 bps;
__u64 pps;
};
struct gnet_stats_basic {
__u64 bytes;
__u32 packets;
};
struct gnet_stats_rate_est {
__u32 bps;
__u32 pps;
};
struct ethnl_req_info;
struct ethnl_reply_data;
struct ethnl_request_ops {
u8 request_cmd;
u8 reply_cmd;
u16 hdr_attr;
unsigned int req_info_size;
unsigned int reply_data_size;
bool allow_nodev_do;
u8 set_ntf_cmd;
int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *);
int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *);
int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *);
int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *);
void (*cleanup_data)(struct ethnl_reply_data *);
int (*set_validate)(struct ethnl_req_info *, struct genl_info *);
int (*set)(struct ethnl_req_info *, struct genl_info *);
};
struct ethnl_req_info {
struct net_device *dev;
netdevice_tracker dev_tracker;
u32 flags;
};
struct ethnl_reply_data {
struct net_device *dev;
};
enum {
ETHTOOL_A_WOL_UNSPEC = 0,
ETHTOOL_A_WOL_HEADER = 1,
ETHTOOL_A_WOL_MODES = 2,
ETHTOOL_A_WOL_SOPASS = 3,
__ETHTOOL_A_WOL_CNT = 4,
ETHTOOL_A_WOL_MAX = 3,
};
struct wol_reply_data {
struct ethnl_reply_data base;
struct ethtool_wolinfo wol;
bool show_sopass;
};
typedef const char (* const ethnl_string_array_t)[32];
enum nfnl_abort_action {
NFNL_ABORT_NONE = 0,
NFNL_ABORT_AUTOLOAD = 1,
NFNL_ABORT_VALIDATE = 2,
};
struct nfnl_callback;
struct nfnetlink_subsystem {
const char *name;
__u8 subsys_id;
__u8 cb_count;
const struct nfnl_callback *cb;
struct module *owner;
int (*commit)(struct net *, struct sk_buff *);
int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action);
bool (*valid_genid)(struct net *, u32);
};
enum nfnl_callback_type {
NFNL_CB_UNSPEC = 0,
NFNL_CB_MUTEX = 1,
NFNL_CB_RCU = 2,
NFNL_CB_BATCH = 3,
};
struct nfnl_info;
struct nfnl_callback {
int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *);
const struct nla_policy *policy;
enum nfnl_callback_type type;
__u16 attr_count;
};
struct nfgenmsg;
struct nfnl_info {
struct net *net;
struct sock *sk;
const struct nlmsghdr *nlh;
const struct nfgenmsg *nfmsg;
struct netlink_ext_ack *extack;
};
struct nfgenmsg {
__u8 nfgen_family;
__u8 version;
__be16 res_id;
};
struct nfnl_ct_hook {
size_t (*build_size)(const struct nf_conn *);
int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t);
int (*parse)(const struct nlattr *, struct nf_conn *);
int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32);
void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32);
};
enum ctattr_expect {
CTA_EXPECT_UNSPEC = 0,
CTA_EXPECT_MASTER = 1,
CTA_EXPECT_TUPLE = 2,
CTA_EXPECT_MASK = 3,
CTA_EXPECT_TIMEOUT = 4,
CTA_EXPECT_ID = 5,
CTA_EXPECT_HELP_NAME = 6,
CTA_EXPECT_ZONE = 7,
CTA_EXPECT_FLAGS = 8,
CTA_EXPECT_CLASS = 9,
CTA_EXPECT_NAT = 10,
CTA_EXPECT_FN = 11,
__CTA_EXPECT_MAX = 12,
};
enum ctattr_tuple {
CTA_TUPLE_UNSPEC = 0,
CTA_TUPLE_IP = 1,
CTA_TUPLE_PROTO = 2,
CTA_TUPLE_ZONE = 3,
__CTA_TUPLE_MAX = 4,
};
enum ctattr_type {
CTA_UNSPEC = 0,
CTA_TUPLE_ORIG = 1,
CTA_TUPLE_REPLY = 2,
CTA_STATUS = 3,
CTA_PROTOINFO = 4,
CTA_HELP = 5,
CTA_NAT_SRC = 6,
CTA_TIMEOUT = 7,
CTA_MARK = 8,
CTA_COUNTERS_ORIG = 9,
CTA_COUNTERS_REPLY = 10,
CTA_USE = 11,
CTA_ID = 12,
CTA_NAT_DST = 13,
CTA_TUPLE_MASTER = 14,
CTA_SEQ_ADJ_ORIG = 15,
CTA_NAT_SEQ_ADJ_ORIG = 15,
CTA_SEQ_ADJ_REPLY = 16,
CTA_NAT_SEQ_ADJ_REPLY = 16,
CTA_SECMARK = 17,
CTA_ZONE = 18,
CTA_SECCTX = 19,
CTA_TIMESTAMP = 20,
CTA_MARK_MASK = 21,
CTA_LABELS = 22,
CTA_LABELS_MASK = 23,
CTA_SYNPROXY = 24,
CTA_FILTER = 25,
CTA_STATUS_MASK = 26,
__CTA_MAX = 27,
};
enum netlink_validation {
NL_VALIDATE_LIBERAL = 0,
NL_VALIDATE_TRAILING = 1,
NL_VALIDATE_MAXTYPE = 2,
NL_VALIDATE_UNSPEC = 4,
NL_VALIDATE_STRICT_ATTRS = 8,
NL_VALIDATE_NESTED = 16,
};
enum ctattr_ip {
CTA_IP_UNSPEC = 0,
CTA_IP_V4_SRC = 1,
CTA_IP_V4_DST = 2,
CTA_IP_V6_SRC = 3,
CTA_IP_V6_DST = 4,
__CTA_IP_MAX = 5,
};
enum ctattr_l4proto {
CTA_PROTO_UNSPEC = 0,
CTA_PROTO_NUM = 1,
CTA_PROTO_SRC_PORT = 2,
CTA_PROTO_DST_PORT = 3,
CTA_PROTO_ICMP_ID = 4,
CTA_PROTO_ICMP_TYPE = 5,
CTA_PROTO_ICMP_CODE = 6,
CTA_PROTO_ICMPV6_ID = 7,
CTA_PROTO_ICMPV6_TYPE = 8,
CTA_PROTO_ICMPV6_CODE = 9,
__CTA_PROTO_MAX = 10,
};
enum ctattr_expect_nat {
CTA_EXPECT_NAT_UNSPEC = 0,
CTA_EXPECT_NAT_DIR = 1,
CTA_EXPECT_NAT_TUPLE = 2,
__CTA_EXPECT_NAT_MAX = 3,
};
enum ctnl_exp_msg_types {
IPCTNL_MSG_EXP_NEW = 0,
IPCTNL_MSG_EXP_GET = 1,
IPCTNL_MSG_EXP_DELETE = 2,
IPCTNL_MSG_EXP_GET_STATS_CPU = 3,
IPCTNL_MSG_EXP_MAX = 4,
};
enum ctattr_expect_stats {
CTA_STATS_EXP_UNSPEC = 0,
CTA_STATS_EXP_NEW = 1,
CTA_STATS_EXP_CREATE = 2,
CTA_STATS_EXP_DELETE = 3,
__CTA_STATS_EXP_MAX = 4,
};
enum ip_conntrack_events {
IPCT_NEW = 0,
IPCT_RELATED = 1,
IPCT_DESTROY = 2,
IPCT_REPLY = 3,
IPCT_ASSURED = 4,
IPCT_PROTOINFO = 5,
IPCT_HELPER = 6,
IPCT_MARK = 7,
IPCT_SEQADJ = 8,
IPCT_NATSEQADJ = 8,
IPCT_SECMARK = 9,
IPCT_LABEL = 10,
IPCT_SYNPROXY = 11,
__IPCT_MAX = 12,
};
enum ctattr_help {
CTA_HELP_UNSPEC = 0,
CTA_HELP_NAME = 1,
CTA_HELP_INFO = 2,
__CTA_HELP_MAX = 3,
};
enum ctattr_seqadj {
CTA_SEQADJ_UNSPEC = 0,
CTA_SEQADJ_CORRECTION_POS = 1,
CTA_SEQADJ_OFFSET_BEFORE = 2,
CTA_SEQADJ_OFFSET_AFTER = 3,
__CTA_SEQADJ_MAX = 4,
};
enum ctattr_protoinfo {
CTA_PROTOINFO_UNSPEC = 0,
CTA_PROTOINFO_TCP = 1,
CTA_PROTOINFO_DCCP = 2,
CTA_PROTOINFO_SCTP = 3,
__CTA_PROTOINFO_MAX = 4,
};
enum ctattr_synproxy {
CTA_SYNPROXY_UNSPEC = 0,
CTA_SYNPROXY_ISN = 1,
CTA_SYNPROXY_ITS = 2,
CTA_SYNPROXY_TSOFF = 3,
__CTA_SYNPROXY_MAX = 4,
};
enum ctattr_filter {
CTA_FILTER_UNSPEC = 0,
CTA_FILTER_ORIG_FLAGS = 1,
CTA_FILTER_REPLY_FLAGS = 2,
__CTA_FILTER_MAX = 3,
};
enum cntl_msg_types {
IPCTNL_MSG_CT_NEW = 0,
IPCTNL_MSG_CT_GET = 1,
IPCTNL_MSG_CT_DELETE = 2,
IPCTNL_MSG_CT_GET_CTRZERO = 3,
IPCTNL_MSG_CT_GET_STATS_CPU = 4,
IPCTNL_MSG_CT_GET_STATS = 5,
IPCTNL_MSG_CT_GET_DYING = 6,
IPCTNL_MSG_CT_GET_UNCONFIRMED = 7,
IPCTNL_MSG_MAX = 8,
};
enum ctattr_counters {
CTA_COUNTERS_UNSPEC = 0,
CTA_COUNTERS_PACKETS = 1,
CTA_COUNTERS_BYTES = 2,
CTA_COUNTERS32_PACKETS = 3,
CTA_COUNTERS32_BYTES = 4,
CTA_COUNTERS_PAD = 5,
__CTA_COUNTERS_MAX = 6,
};
enum ctattr_tstamp {
CTA_TIMESTAMP_UNSPEC = 0,
CTA_TIMESTAMP_START = 1,
CTA_TIMESTAMP_STOP = 2,
CTA_TIMESTAMP_PAD = 3,
__CTA_TIMESTAMP_MAX = 4,
};
enum ctattr_stats_cpu {
CTA_STATS_UNSPEC = 0,
CTA_STATS_SEARCHED = 1,
CTA_STATS_FOUND = 2,
CTA_STATS_NEW = 3,
CTA_STATS_INVALID = 4,
CTA_STATS_IGNORE = 5,
CTA_STATS_DELETE = 6,
CTA_STATS_DELETE_LIST = 7,
CTA_STATS_INSERT = 8,
CTA_STATS_INSERT_FAILED = 9,
CTA_STATS_DROP = 10,
CTA_STATS_EARLY_DROP = 11,
CTA_STATS_ERROR = 12,
CTA_STATS_SEARCH_RESTART = 13,
CTA_STATS_CLASH_RESOLVE = 14,
CTA_STATS_CHAIN_TOOLONG = 15,
__CTA_STATS_MAX = 16,
};
enum ctattr_stats_global {
CTA_STATS_GLOBAL_UNSPEC = 0,
CTA_STATS_GLOBAL_ENTRIES = 1,
CTA_STATS_GLOBAL_MAX_ENTRIES = 2,
__CTA_STATS_GLOBAL_MAX = 3,
};
struct scm_creds {
u32 pid;
kuid_t uid;
kgid_t gid;
};
struct netlink_skb_parms {
struct scm_creds creds;
__u32 portid;
__u32 dst_group;
__u32 flags;
struct sock *sk;
bool nsid_is_set;
int nsid;
};
struct nf_conntrack_tuple_mask {
struct {
union nf_inet_addr u3;
union nf_conntrack_man_proto u;
} src;
};
struct nf_conntrack_expect {
struct hlist_node lnode;
struct hlist_node hnode;
struct nf_conntrack_tuple tuple;
struct nf_conntrack_tuple_mask mask;
refcount_t use;
unsigned int flags;
unsigned int class;
void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
struct nf_conntrack_helper *helper;
struct nf_conn *master;
struct timer_list timeout;
union nf_inet_addr saved_addr;
union nf_conntrack_man_proto saved_proto;
enum ip_conntrack_dir dir;
struct callback_head rcu;
};
struct nf_nat_hook {
int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *);
void (*decode_session)(struct sk_buff *, struct flowi *);
unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir);
void (*remove_nat_bysrc)(struct nf_conn *);
};
struct netlink_dump_control {
int (*start)(struct netlink_callback *);
int (*dump)(struct sk_buff *, struct netlink_callback *);
int (*done)(struct netlink_callback *);
struct netlink_ext_ack *extack;
void *data;
struct module *module;
u32 min_dump_alloc;
int flags;
};
struct nf_ct_helper_expectfn {
struct list_head head;
const char *name;
void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *);
};
struct ctnetlink_filter_u32 {
u32 val;
u32 mask;
};
struct ctnetlink_filter {
u8 family;
bool zone_filter;
u_int32_t orig_flags;
u_int32_t reply_flags;
struct nf_conntrack_tuple orig;
struct nf_conntrack_tuple reply;
struct nf_conntrack_zone zone;
struct ctnetlink_filter_u32 mark;
struct ctnetlink_filter_u32 status;
};
struct nf_conn_counter {
atomic64_t packets;
atomic64_t bytes;
};
struct nf_conn_acct {
struct nf_conn_counter counter[2];
};
struct nf_ct_seqadj {
u32 correction_pos;
s32 offset_before;
s32 offset_after;
};
struct nf_conn_seqadj {
struct nf_ct_seqadj seq[2];
};
struct nf_conn_tstamp {
u_int64_t start;
u_int64_t stop;
};
struct ctnetlink_list_dump_ctx {
struct nf_conn *last;
unsigned int cpu;
bool done;
};
enum {
XFRM_POLICY_IN = 0,
XFRM_POLICY_OUT = 1,
XFRM_POLICY_FWD = 2,
XFRM_POLICY_MASK = 3,
XFRM_POLICY_MAX = 3,
};
enum {
IPSTATS_MIB_NUM = 0,
IPSTATS_MIB_INPKTS = 1,
IPSTATS_MIB_INOCTETS = 2,
IPSTATS_MIB_INDELIVERS = 3,
IPSTATS_MIB_OUTFORWDATAGRAMS = 4,
IPSTATS_MIB_OUTREQUESTS = 5,
IPSTATS_MIB_OUTOCTETS = 6,
IPSTATS_MIB_INHDRERRORS = 7,
IPSTATS_MIB_INTOOBIGERRORS = 8,
IPSTATS_MIB_INNOROUTES = 9,
IPSTATS_MIB_INADDRERRORS = 10,
IPSTATS_MIB_INUNKNOWNPROTOS = 11,
IPSTATS_MIB_INTRUNCATEDPKTS = 12,
IPSTATS_MIB_INDISCARDS = 13,
IPSTATS_MIB_OUTDISCARDS = 14,
IPSTATS_MIB_OUTNOROUTES = 15,
IPSTATS_MIB_REASMTIMEOUT = 16,
IPSTATS_MIB_REASMREQDS = 17,
IPSTATS_MIB_REASMOKS = 18,
IPSTATS_MIB_REASMFAILS = 19,
IPSTATS_MIB_FRAGOKS = 20,
IPSTATS_MIB_FRAGFAILS = 21,
IPSTATS_MIB_FRAGCREATES = 22,
IPSTATS_MIB_INMCASTPKTS = 23,
IPSTATS_MIB_OUTMCASTPKTS = 24,
IPSTATS_MIB_INBCASTPKTS = 25,
IPSTATS_MIB_OUTBCASTPKTS = 26,
IPSTATS_MIB_INMCASTOCTETS = 27,
IPSTATS_MIB_OUTMCASTOCTETS = 28,
IPSTATS_MIB_INBCASTOCTETS = 29,
IPSTATS_MIB_OUTBCASTOCTETS = 30,
IPSTATS_MIB_CSUMERRORS = 31,
IPSTATS_MIB_NOECTPKTS = 32,
IPSTATS_MIB_ECT1PKTS = 33,
IPSTATS_MIB_ECT0PKTS = 34,
IPSTATS_MIB_CEPKTS = 35,
IPSTATS_MIB_REASM_OVERLAPS = 36,
IPSTATS_MIB_OUTPKTS = 37,
__IPSTATS_MIB_MAX = 38,
};
enum {
SOF_TIMESTAMPING_TX_HARDWARE = 1,
SOF_TIMESTAMPING_TX_SOFTWARE = 2,
SOF_TIMESTAMPING_RX_HARDWARE = 4,
SOF_TIMESTAMPING_RX_SOFTWARE = 8,
SOF_TIMESTAMPING_SOFTWARE = 16,
SOF_TIMESTAMPING_SYS_HARDWARE = 32,
SOF_TIMESTAMPING_RAW_HARDWARE = 64,
SOF_TIMESTAMPING_OPT_ID = 128,
SOF_TIMESTAMPING_TX_SCHED = 256,
SOF_TIMESTAMPING_TX_ACK = 512,
SOF_TIMESTAMPING_OPT_CMSG = 1024,
SOF_TIMESTAMPING_OPT_TSONLY = 2048,
SOF_TIMESTAMPING_OPT_STATS = 4096,
SOF_TIMESTAMPING_OPT_PKTINFO = 8192,
SOF_TIMESTAMPING_OPT_TX_SWHW = 16384,
SOF_TIMESTAMPING_BIND_PHC = 32768,
SOF_TIMESTAMPING_OPT_ID_TCP = 65536,
SOF_TIMESTAMPING_LAST = 65536,
SOF_TIMESTAMPING_MASK = 131071,
};
enum {
SKBTX_HW_TSTAMP = 1,
SKBTX_SW_TSTAMP = 2,
SKBTX_IN_PROGRESS = 4,
SKBTX_HW_TSTAMP_USE_CYCLES = 8,
SKBTX_WIFI_STATUS = 16,
SKBTX_HW_TSTAMP_NETDEV = 32,
SKBTX_SCHED_TSTAMP = 64,
};
enum rt_class_t {
RT_TABLE_UNSPEC = 0,
RT_TABLE_COMPAT = 252,
RT_TABLE_DEFAULT = 253,
RT_TABLE_MAIN = 254,
RT_TABLE_LOCAL = 255,
RT_TABLE_MAX = 4294967295,
};
enum {
RTN_UNSPEC = 0,
RTN_UNICAST = 1,
RTN_LOCAL = 2,
RTN_BROADCAST = 3,
RTN_ANYCAST = 4,
RTN_MULTICAST = 5,
RTN_BLACKHOLE = 6,
RTN_UNREACHABLE = 7,
RTN_PROHIBIT = 8,
RTN_THROW = 9,
RTN_NAT = 10,
RTN_XRESOLVE = 11,
__RTN_MAX = 12,
};
struct ip_sf_socklist {
unsigned int sl_max;
unsigned int sl_count;
struct callback_head rcu;
__be32 sl_addr[0];
};
struct icmp_filter {
__u32 data;
};
struct raw_sock {
struct inet_sock inet;
struct icmp_filter filter;
u32 ipmr_table;
};
struct icmphdr {
__u8 type;
__u8 code;
__sum16 checksum;
union {
struct {
__be16 id;
__be16 sequence;
} echo;
__be32 gateway;
struct {
__be16 __unused;
__be16 mtu;
} frag;
__u8 reserved[4];
} un;
};
struct ipcm_cookie {
struct sockcm_cookie sockc;
__be32 addr;
int oif;
struct ip_options_rcu *opt;
__u8 protocol;
__u8 ttl;
__s16 tos;
char priority;
__u16 gso_size;
};
struct raw_frag_vec {
struct msghdr *msg;
union {
struct icmphdr icmph;
char c[1];
} hdr;
int hlen;
};
struct raw_iter_state {
struct seq_net_private p;
int bucket;
};
struct ip_options_data {
struct ip_options_rcu opt;
char data[40];
};
enum mac80211_tx_info_flags {
IEEE80211_TX_CTL_REQ_TX_STATUS = 1,
IEEE80211_TX_CTL_ASSIGN_SEQ = 2,
IEEE80211_TX_CTL_NO_ACK = 4,
IEEE80211_TX_CTL_CLEAR_PS_FILT = 8,
IEEE80211_TX_CTL_FIRST_FRAGMENT = 16,
IEEE80211_TX_CTL_SEND_AFTER_DTIM = 32,
IEEE80211_TX_CTL_AMPDU = 64,
IEEE80211_TX_CTL_INJECTED = 128,
IEEE80211_TX_STAT_TX_FILTERED = 256,
IEEE80211_TX_STAT_ACK = 512,
IEEE80211_TX_STAT_AMPDU = 1024,
IEEE80211_TX_STAT_AMPDU_NO_BACK = 2048,
IEEE80211_TX_CTL_RATE_CTRL_PROBE = 4096,
IEEE80211_TX_INTFL_OFFCHAN_TX_OK = 8192,
IEEE80211_TX_CTL_HW_80211_ENCAP = 16384,
IEEE80211_TX_INTFL_RETRIED = 32768,
IEEE80211_TX_INTFL_DONT_ENCRYPT = 65536,
IEEE80211_TX_CTL_NO_PS_BUFFER = 131072,
IEEE80211_TX_CTL_MORE_FRAMES = 262144,
IEEE80211_TX_INTFL_RETRANSMISSION = 524288,
IEEE80211_TX_INTFL_MLME_CONN_TX = 1048576,
IEEE80211_TX_INTFL_NL80211_FRAME_TX = 2097152,
IEEE80211_TX_CTL_LDPC = 4194304,
IEEE80211_TX_CTL_STBC = 25165824,
IEEE80211_TX_CTL_TX_OFFCHAN = 33554432,
IEEE80211_TX_INTFL_TKIP_MIC_FAILURE = 67108864,
IEEE80211_TX_CTL_NO_CCK_RATE = 134217728,
IEEE80211_TX_STATUS_EOSP = 268435456,
IEEE80211_TX_CTL_USE_MINRATE = 536870912,
IEEE80211_TX_CTL_DONTFRAG = 1073741824,
IEEE80211_TX_STAT_NOACK_TRANSMITTED = 2147483648,
};
enum ieee80211_agg_stop_reason {
AGG_STOP_DECLINED = 0,
AGG_STOP_LOCAL_REQUEST = 1,
AGG_STOP_PEER_REQUEST = 2,
AGG_STOP_DESTROY_STA = 3,
};
enum ieee80211_back_parties {
WLAN_BACK_RECIPIENT = 0,
WLAN_BACK_INITIATOR = 1,
};
enum ieee80211_sta_info_flags {
WLAN_STA_AUTH = 0,
WLAN_STA_ASSOC = 1,
WLAN_STA_PS_STA = 2,
WLAN_STA_AUTHORIZED = 3,
WLAN_STA_SHORT_PREAMBLE = 4,
WLAN_STA_WDS = 5,
WLAN_STA_CLEAR_PS_FILT = 6,
WLAN_STA_MFP = 7,
WLAN_STA_BLOCK_BA = 8,
WLAN_STA_PS_DRIVER = 9,
WLAN_STA_PSPOLL = 10,
WLAN_STA_TDLS_PEER = 11,
WLAN_STA_TDLS_PEER_AUTH = 12,
WLAN_STA_TDLS_INITIATOR = 13,
WLAN_STA_TDLS_CHAN_SWITCH = 14,
WLAN_STA_TDLS_OFF_CHANNEL = 15,
WLAN_STA_TDLS_WIDER_BW = 16,
WLAN_STA_UAPSD = 17,
WLAN_STA_SP = 18,
WLAN_STA_4ADDR_EVENT = 19,
WLAN_STA_INSERTED = 20,
WLAN_STA_RATE_CONTROL = 21,
WLAN_STA_TOFFSET_KNOWN = 22,
WLAN_STA_MPSP_OWNER = 23,
WLAN_STA_MPSP_RECIPIENT = 24,
WLAN_STA_PS_DELIVER = 25,
WLAN_STA_USES_ENCRYPTION = 26,
WLAN_STA_DECAP_OFFLOAD = 27,
NUM_WLAN_STA_FLAGS = 28,
};
enum txq_info_flags {
IEEE80211_TXQ_STOP = 0,
IEEE80211_TXQ_AMPDU = 1,
IEEE80211_TXQ_NO_AMSDU = 2,
IEEE80211_TXQ_DIRTY = 3,
};
enum queue_stop_reason {
IEEE80211_QUEUE_STOP_REASON_DRIVER = 0,
IEEE80211_QUEUE_STOP_REASON_PS = 1,
IEEE80211_QUEUE_STOP_REASON_CSA = 2,
IEEE80211_QUEUE_STOP_REASON_AGGREGATION = 3,
IEEE80211_QUEUE_STOP_REASON_SUSPEND = 4,
IEEE80211_QUEUE_STOP_REASON_SKB_ADD = 5,
IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL = 6,
IEEE80211_QUEUE_STOP_REASON_FLUSH = 7,
IEEE80211_QUEUE_STOP_REASON_TDLS_TEARDOWN = 8,
IEEE80211_QUEUE_STOP_REASON_RESERVE_TID = 9,
IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE = 10,
IEEE80211_QUEUE_STOP_REASONS = 11,
};
enum ieee80211_sub_if_data_flags {
IEEE80211_SDATA_ALLMULTI = 1,
IEEE80211_SDATA_DONT_BRIDGE_PACKETS = 8,
IEEE80211_SDATA_DISCONNECT_RESUME = 16,
IEEE80211_SDATA_IN_DRIVER = 32,
IEEE80211_SDATA_DISCONNECT_HW_RESTART = 64,
};
enum ieee80211_back_actioncode {
WLAN_ACTION_ADDBA_REQ = 0,
WLAN_ACTION_ADDBA_RESP = 1,
WLAN_ACTION_DELBA = 2,
};
struct ieee80211_tx_info {
u32 flags;
u32 band: 3;
u32 status_data_idr: 1;
u32 status_data: 13;
u32 hw_queue: 4;
u32 tx_time_est: 10;
union {
struct {
union {
struct {
struct ieee80211_tx_rate rates[4];
s8 rts_cts_rate_idx;
u8 use_rts: 1;
u8 use_cts_prot: 1;
u8 short_preamble: 1;
u8 skip_table: 1;
u8 antennas: 2;
};
unsigned long jiffies;
};
struct ieee80211_vif *vif;
struct ieee80211_key_conf *hw_key;
u32 flags;
codel_time_t enqueue_time;
} control;
struct {
u64 cookie;
} ack;
struct {
struct ieee80211_tx_rate rates[4];
s32 ack_signal;
u8 ampdu_ack_len;
u8 ampdu_len;
u8 antenna;
u8 pad;
u16 tx_time;
u8 flags;
u8 pad2;
void *status_driver_data[2];
} status;
struct {
struct ieee80211_tx_rate driver_rates[4];
u8 pad[4];
void *rate_driver_data[3];
};
void *driver_data[5];
};
};
struct codel_stats {
u32 maxpacket;
u32 drop_count;
u32 drop_len;
u32 ecn_mark;
u32 ce_mark;
};
struct txq_info {
struct fq_tin tin;
struct codel_vars def_cvars;
struct codel_stats cstats;
u16 schedule_round;
struct list_head schedule_order;
struct sk_buff_head frags;
unsigned long flags;
struct ieee80211_txq txq;
};
struct ieee80211_bar {
__le16 frame_control;
__le16 duration;
__u8 ra[6];
__u8 ta[6];
__le16 control;
__le16 start_seq_num;
};
struct x86_hw_tss {
u32 reserved1;
u64 sp0;
u64 sp1;
u64 sp2;
u64 reserved2;
u64 ist[7];
u32 reserved3;
u32 reserved4;
u16 reserved5;
u16 io_bitmap_base;
} __attribute__((packed));
struct x86_io_bitmap {
u64 prev_sequence;
unsigned int prev_max;
unsigned long bitmap[1025];
unsigned long mapall[1025];
};
struct tss_struct {
struct x86_hw_tss x86_tss;
struct x86_io_bitmap io_bitmap;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct io_bitmap {
u64 sequence;
refcount_t refcnt;
unsigned int max;
unsigned long bitmap[1024];
};
enum ctx_state {
CONTEXT_DISABLED = -1,
CONTEXT_KERNEL = 0,
CONTEXT_IDLE = 1,
CONTEXT_USER = 2,
CONTEXT_GUEST = 3,
CONTEXT_MAX = 4,
};
enum syscall_work_bit {
SYSCALL_WORK_BIT_SECCOMP = 0,
SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1,
SYSCALL_WORK_BIT_SYSCALL_TRACE = 2,
SYSCALL_WORK_BIT_SYSCALL_EMU = 3,
SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4,
SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5,
SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6,
};
enum spectre_v2_mitigation {
SPECTRE_V2_NONE = 0,
SPECTRE_V2_RETPOLINE = 1,
SPECTRE_V2_LFENCE = 2,
SPECTRE_V2_EIBRS = 3,
SPECTRE_V2_EIBRS_RETPOLINE = 4,
SPECTRE_V2_EIBRS_LFENCE = 5,
SPECTRE_V2_IBRS = 6,
};
typedef bool (*smp_cond_func_t)(int, void *);
struct cache_map {
u64 start;
u64 end;
u64 flags;
u64 type: 8;
u64 fixed: 1;
};
struct mtrr_var_range {
__u32 base_lo;
__u32 base_hi;
__u32 mask_lo;
__u32 mask_hi;
};
struct mtrr_state_type {
struct mtrr_var_range var_ranges[256];
mtrr_type fixed_ranges[88];
unsigned char enabled;
bool have_fixed;
mtrr_type def_type;
};
struct fixed_range_block {
int base_msr;
int ranges;
};
enum lockdep_ok {
LOCKDEP_STILL_OK = 0,
LOCKDEP_NOW_UNRELIABLE = 1,
};
enum x86_topology_domains {
TOPO_SMT_DOMAIN = 0,
TOPO_CORE_DOMAIN = 1,
TOPO_MODULE_DOMAIN = 2,
TOPO_TILE_DOMAIN = 3,
TOPO_DIE_DOMAIN = 4,
TOPO_DIEGRP_DOMAIN = 5,
TOPO_PKG_DOMAIN = 6,
TOPO_MAX_DOMAIN = 7,
};
enum pg_level {
PG_LEVEL_NONE = 0,
PG_LEVEL_4K = 1,
PG_LEVEL_2M = 2,
PG_LEVEL_1G = 3,
PG_LEVEL_512G = 4,
PG_LEVEL_NUM = 5,
};
enum cpa_warn {
CPA_CONFLICT = 0,
CPA_PROTECT = 1,
CPA_DETECT = 2,
};
enum vm_event_item {
PGPGIN = 0,
PGPGOUT = 1,
PSWPIN = 2,
PSWPOUT = 3,
PGALLOC_DMA = 4,
PGALLOC_DMA32 = 5,
PGALLOC_NORMAL = 6,
PGALLOC_MOVABLE = 7,
ALLOCSTALL_DMA = 8,
ALLOCSTALL_DMA32 = 9,
ALLOCSTALL_NORMAL = 10,
ALLOCSTALL_MOVABLE = 11,
PGSCAN_SKIP_DMA = 12,
PGSCAN_SKIP_DMA32 = 13,
PGSCAN_SKIP_NORMAL = 14,
PGSCAN_SKIP_MOVABLE = 15,
PGFREE = 16,
PGACTIVATE = 17,
PGDEACTIVATE = 18,
PGLAZYFREE = 19,
PGFAULT = 20,
PGMAJFAULT = 21,
PGLAZYFREED = 22,
PGREFILL = 23,
PGREUSE = 24,
PGSTEAL_KSWAPD = 25,
PGSTEAL_DIRECT = 26,
PGSTEAL_KHUGEPAGED = 27,
PGSCAN_KSWAPD = 28,
PGSCAN_DIRECT = 29,
PGSCAN_KHUGEPAGED = 30,
PGSCAN_DIRECT_THROTTLE = 31,
PGSCAN_ANON = 32,
PGSCAN_FILE = 33,
PGSTEAL_ANON = 34,
PGSTEAL_FILE = 35,
PGSCAN_ZONE_RECLAIM_FAILED = 36,
PGINODESTEAL = 37,
SLABS_SCANNED = 38,
KSWAPD_INODESTEAL = 39,
KSWAPD_LOW_WMARK_HIT_QUICKLY = 40,
KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41,
PAGEOUTRUN = 42,
PGROTATED = 43,
DROP_PAGECACHE = 44,
DROP_SLAB = 45,
OOM_KILL = 46,
PGMIGRATE_SUCCESS = 47,
PGMIGRATE_FAIL = 48,
THP_MIGRATION_SUCCESS = 49,
THP_MIGRATION_FAIL = 50,
THP_MIGRATION_SPLIT = 51,
COMPACTMIGRATE_SCANNED = 52,
COMPACTFREE_SCANNED = 53,
COMPACTISOLATED = 54,
COMPACTSTALL = 55,
COMPACTFAIL = 56,
COMPACTSUCCESS = 57,
KCOMPACTD_WAKE = 58,
KCOMPACTD_MIGRATE_SCANNED = 59,
KCOMPACTD_FREE_SCANNED = 60,
HTLB_BUDDY_PGALLOC = 61,
HTLB_BUDDY_PGALLOC_FAIL = 62,
UNEVICTABLE_PGCULLED = 63,
UNEVICTABLE_PGSCANNED = 64,
UNEVICTABLE_PGRESCUED = 65,
UNEVICTABLE_PGMLOCKED = 66,
UNEVICTABLE_PGMUNLOCKED = 67,
UNEVICTABLE_PGCLEARED = 68,
UNEVICTABLE_PGSTRANDED = 69,
THP_FAULT_ALLOC = 70,
THP_FAULT_FALLBACK = 71,
THP_FAULT_FALLBACK_CHARGE = 72,
THP_COLLAPSE_ALLOC = 73,
THP_COLLAPSE_ALLOC_FAILED = 74,
THP_FILE_ALLOC = 75,
THP_FILE_FALLBACK = 76,
THP_FILE_FALLBACK_CHARGE = 77,
THP_FILE_MAPPED = 78,
THP_SPLIT_PAGE = 79,
THP_SPLIT_PAGE_FAILED = 80,
THP_DEFERRED_SPLIT_PAGE = 81,
THP_SPLIT_PMD = 82,
THP_SCAN_EXCEED_NONE_PTE = 83,
THP_SCAN_EXCEED_SWAP_PTE = 84,
THP_SCAN_EXCEED_SHARED_PTE = 85,
THP_SPLIT_PUD = 86,
THP_ZERO_PAGE_ALLOC = 87,
THP_ZERO_PAGE_ALLOC_FAILED = 88,
THP_SWPOUT = 89,
THP_SWPOUT_FALLBACK = 90,
SWAP_RA = 91,
SWAP_RA_HIT = 92,
ZSWPIN = 93,
ZSWPOUT = 94,
ZSWPWB = 95,
DIRECT_MAP_LEVEL2_SPLIT = 96,
DIRECT_MAP_LEVEL3_SPLIT = 97,
NR_VM_EVENT_ITEMS = 98,
};
struct cpa_data {
unsigned long *vaddr;
pgd_t *pgd;
pgprot_t mask_set;
pgprot_t mask_clr;
unsigned long numpages;
unsigned long curpage;
unsigned long pfn;
unsigned int flags;
unsigned int force_split: 1;
unsigned int force_static_prot: 1;
unsigned int force_flush_all: 1;
struct page **pages;
};
enum desc_state {
desc_miss = -1,
desc_reserved = 0,
desc_committed = 1,
desc_finalized = 2,
desc_reusable = 3,
};
struct prb_data_blk_lpos {
unsigned long begin;
unsigned long next;
};
struct prb_desc {
atomic_long_t state_var;
struct prb_data_blk_lpos text_blk_lpos;
};
struct printk_info;
struct prb_desc_ring {
unsigned int count_bits;
struct prb_desc *descs;
struct printk_info *infos;
atomic_long_t head_id;
atomic_long_t tail_id;
atomic_long_t last_finalized_seq;
};
struct dev_printk_info {
char subsystem[16];
char device[48];
};
struct printk_info {
u64 seq;
u64 ts_nsec;
u16 text_len;
u8 facility;
u8 flags: 5;
u8 level: 3;
u32 caller_id;
struct dev_printk_info dev_info;
};
struct prb_data_ring {
unsigned int size_bits;
char *data;
atomic_long_t head_lpos;
atomic_long_t tail_lpos;
};
struct prb_data_block {
unsigned long id;
char data[0];
};
struct printk_ringbuffer {
struct prb_desc_ring desc_ring;
struct prb_data_ring text_data_ring;
atomic_long_t fail;
};
struct prb_reserved_entry {
struct printk_ringbuffer *rb;
unsigned long irqflags;
unsigned long id;
unsigned int text_space;
};
struct printk_record {
struct printk_info *info;
char *text_buf;
unsigned int text_buf_size;
};
enum {
IRQTF_RUNTHREAD = 0,
IRQTF_WARNED = 1,
IRQTF_AFFINITY = 2,
IRQTF_FORCED_THREAD = 3,
IRQTF_READY = 4,
};
typedef struct {
seqcount_t seqcount;
} seqcount_latch_t;
struct tk_read_base {
struct clocksource *clock;
u64 mask;
u64 cycle_last;
u32 mult;
u32 shift;
u64 xtime_nsec;
ktime_t base;
u64 base_real;
};
struct tk_fast {
seqcount_latch_t seq;
struct tk_read_base base[2];
};
struct timekeeper {
struct tk_read_base tkr_mono;
struct tk_read_base tkr_raw;
u64 xtime_sec;
unsigned long ktime_sec;
struct timespec64 wall_to_monotonic;
ktime_t offs_real;
ktime_t offs_boot;
ktime_t offs_tai;
s32 tai_offset;
unsigned int clock_was_set_seq;
u8 cs_was_changed_seq;
ktime_t next_leap_ktime;
u64 raw_sec;
struct timespec64 monotonic_to_boot;
u64 cycle_interval;
u64 xtime_interval;
s64 xtime_remainder;
u64 raw_interval;
u64 ntp_tick;
s64 ntp_error;
u32 ntp_error_shift;
u32 ntp_err_mult;
u32 skip_second_overflow;
};
struct syscore_ops {
struct list_head node;
int (*suspend)();
void (*resume)();
void (*shutdown)();
};
enum hrtimer_base_type {
HRTIMER_BASE_MONOTONIC = 0,
HRTIMER_BASE_REALTIME = 1,
HRTIMER_BASE_BOOTTIME = 2,
HRTIMER_BASE_TAI = 3,
HRTIMER_BASE_MONOTONIC_SOFT = 4,
HRTIMER_BASE_REALTIME_SOFT = 5,
HRTIMER_BASE_BOOTTIME_SOFT = 6,
HRTIMER_BASE_TAI_SOFT = 7,
HRTIMER_MAX_CLOCK_BASES = 8,
};
enum timekeeping_adv_mode {
TK_ADV_TICK = 0,
TK_ADV_FREQ = 1,
};
struct system_time_snapshot {
u64 cycles;
ktime_t real;
ktime_t raw;
enum clocksource_ids cs_id;
unsigned int clock_was_set_seq;
u8 cs_was_changed_seq;
};
struct ktime_timestamps {
u64 mono;
u64 boot;
u64 real;
};
struct system_counterval_t {
u64 cycles;
enum clocksource_ids cs_id;
};
struct kprobe_insn_cache {
struct mutex mutex;
void * (*alloc)();
void (*free)(void *);
const char *sym;
struct list_head pages;
size_t insn_size;
int nr_garbage;
};
typedef u8 kprobe_opcode_t;
struct kprobe;
typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *);
typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long);
struct arch_specific_insn {
kprobe_opcode_t *insn;
unsigned int boostable: 1;
unsigned char size;
union {
unsigned char opcode;
struct {
unsigned char type;
} jcc;
struct {
unsigned char type;
unsigned char asize;
} loop;
struct {
unsigned char reg;
} indirect;
};
s32 rel32;
void (*emulate_op)(struct kprobe *, struct pt_regs *);
int tp_len;
};
struct kprobe {
struct hlist_node hlist;
struct list_head list;
unsigned long nmissed;
kprobe_opcode_t *addr;
const char *symbol_name;
unsigned int offset;
kprobe_pre_handler_t pre_handler;
kprobe_post_handler_t post_handler;
kprobe_opcode_t opcode;
struct arch_specific_insn ainsn;
u32 flags;
};
enum kprobe_slot_state {
SLOT_CLEAN = 0,
SLOT_DIRTY = 1,
SLOT_USED = 2,
};
enum perf_record_ksymbol_type {
PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
PERF_RECORD_KSYMBOL_TYPE_OOL = 2,
PERF_RECORD_KSYMBOL_TYPE_MAX = 3,
};
struct kprobe_insn_page {
struct list_head list;
kprobe_opcode_t *insns;
struct kprobe_insn_cache *cache;
int nused;
int ngarbage;
char slot_used[0];
};
struct arch_optimized_insn {
kprobe_opcode_t copied_insn[4];
kprobe_opcode_t *insn;
size_t size;
};
struct optimized_kprobe {
struct kprobe kp;
struct list_head list;
struct arch_optimized_insn optinsn;
};
struct prev_kprobe {
struct kprobe *kp;
unsigned long status;
unsigned long old_flags;
unsigned long saved_flags;
};
struct kprobe_ctlblk {
unsigned long kprobe_status;
unsigned long kprobe_old_flags;
unsigned long kprobe_saved_flags;
struct prev_kprobe prev_kprobe;
};
struct kprobe_blacklist_entry {
struct list_head list;
unsigned long start_addr;
unsigned long end_addr;
};
struct kretprobe_instance;
typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *);
struct rethook;
struct kretprobe {
struct kprobe kp;
kretprobe_handler_t handler;
kretprobe_handler_t entry_handler;
int maxactive;
int nmissed;
size_t data_size;
struct rethook *rh;
};
struct rethook_node {
struct callback_head rcu;
struct llist_node llist;
struct rethook *rethook;
unsigned long ret_addr;
unsigned long frame;
};
struct kretprobe_instance {
struct rethook_node node;
char data[0];
};
struct objpool_head;
typedef int (*objpool_fini_cb)(struct objpool_head *, void *);
struct objpool_slot;
struct objpool_head {
int obj_size;
int nr_objs;
int nr_cpus;
int capacity;
gfp_t gfp;
refcount_t ref;
unsigned long flags;
struct objpool_slot **cpu_slots;
objpool_fini_cb release;
void *context;
};
struct rethook {
void *data;
void (*handler)(struct rethook_node *, void *, unsigned long, struct pt_regs *);
struct objpool_head pool;
struct callback_head rcu;
};
struct objpool_slot {
uint32_t head;
uint32_t tail;
uint32_t last;
uint32_t mask;
void *entries[0];
};
typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *);
struct context_tracking {
bool active;
int recursion;
atomic_t state;
long dynticks_nesting;
long dynticks_nmi_nesting;
};
typedef void (*btf_trace_user_enter)(void *, int);
typedef void (*btf_trace_user_exit)(void *, int);
struct trace_event_raw_context_tracking_user {
struct trace_entry ent;
int dummy;
char __data[0];
};
struct trace_event_data_offsets_context_tracking_user {};
enum vmpressure_levels {
VMPRESSURE_LOW = 0,
VMPRESSURE_MEDIUM = 1,
VMPRESSURE_CRITICAL = 2,
VMPRESSURE_NUM_LEVELS = 3,
};
enum vmpressure_modes {
VMPRESSURE_NO_PASSTHROUGH = 0,
VMPRESSURE_HIERARCHY = 1,
VMPRESSURE_LOCAL = 2,
VMPRESSURE_NUM_MODES = 3,
};
struct vmpressure_event {
struct eventfd_ctx *efd;
enum vmpressure_levels level;
enum vmpressure_modes mode;
struct list_head node;
};
enum fsconfig_command {
FSCONFIG_SET_FLAG = 0,
FSCONFIG_SET_STRING = 1,
FSCONFIG_SET_BINARY = 2,
FSCONFIG_SET_PATH = 3,
FSCONFIG_SET_PATH_EMPTY = 4,
FSCONFIG_SET_FD = 5,
FSCONFIG_CMD_CREATE = 6,
FSCONFIG_CMD_RECONFIGURE = 7,
FSCONFIG_CMD_CREATE_EXCL = 8,
};
typedef int (*proc_write_t)(struct file *, char *, size_t);
typedef u32 nlink_t;
struct proc_dir_entry {
atomic_t in_use;
refcount_t refcnt;
struct list_head pde_openers;
spinlock_t pde_unload_lock;
struct completion *pde_unload_completion;
const struct inode_operations *proc_iops;
union {
const struct proc_ops *proc_ops;
const struct file_operations *proc_dir_ops;
};
const struct dentry_operations *proc_dops;
union {
const struct seq_operations *seq_ops;
int (*single_show)(struct seq_file *, void *);
};
proc_write_t write;
void *data;
unsigned int state_size;
unsigned int low_ino;
nlink_t nlink;
kuid_t uid;
kgid_t gid;
loff_t size;
struct proc_dir_entry *parent;
struct rb_root subdir;
struct rb_node subdir_node;
char *name;
umode_t mode;
u8 flags;
u8 namelen;
char inline_name[0];
};
union proc_op {
int (*proc_get_link)(struct dentry *, struct path *);
int (*proc_show)(struct seq_file *, struct pid_namespace *, struct pid *, struct task_struct *);
int lsmid;
};
struct proc_inode {
struct pid *pid;
unsigned int fd;
union proc_op op;
struct proc_dir_entry *pde;
struct ctl_table_header *sysctl;
struct ctl_table *sysctl_entry;
struct hlist_node sibling_inodes;
const struct proc_ns_operations *ns_ops;
struct inode vfs_inode;
};
typedef struct {
int val[2];
} __kernel_fsid_t;
struct kstatfs {
long f_type;
long f_bsize;
u64 f_blocks;
u64 f_bfree;
u64 f_bavail;
u64 f_files;
u64 f_ffree;
__kernel_fsid_t f_fsid;
long f_namelen;
long f_frsize;
long f_flags;
long f_spare[4];
};
struct match_token {
int token;
const char *pattern;
};
struct fat_floppy_defaults {
unsigned int nr_sectors;
unsigned int sec_per_clus;
unsigned int dir_entries;
unsigned int media;
unsigned int fat_length;
};
enum file_time_flags {
S_ATIME = 1,
S_MTIME = 2,
S_CTIME = 4,
S_VERSION = 8,
};
enum {
DIO_LOCKING = 1,
DIO_SKIP_HOLES = 2,
};
enum {
Opt_check_n = 0,
Opt_check_r = 1,
Opt_check_s = 2,
Opt_uid = 3,
Opt_gid = 4,
Opt_umask = 5,
Opt_dmask = 6,
Opt_fmask = 7,
Opt_allow_utime = 8,
Opt_codepage = 9,
Opt_usefree = 10,
Opt_nocase = 11,
Opt_quiet = 12,
Opt_showexec = 13,
Opt_debug = 14,
Opt_immutable = 15,
Opt_dots = 16,
Opt_nodots = 17,
Opt_charset = 18,
Opt_shortname_lower = 19,
Opt_shortname_win95 = 20,
Opt_shortname_winnt = 21,
Opt_shortname_mixed = 22,
Opt_utf8_no = 23,
Opt_utf8_yes = 24,
Opt_uni_xl_no = 25,
Opt_uni_xl_yes = 26,
Opt_nonumtail_no = 27,
Opt_nonumtail_yes = 28,
Opt_obsolete = 29,
Opt_flush = 30,
Opt_tz_utc = 31,
Opt_rodir = 32,
Opt_err_cont = 33,
Opt_err_panic = 34,
Opt_err_ro = 35,
Opt_discard = 36,
Opt_nfs = 37,
Opt_time_offset = 38,
Opt_nfs_stale_rw = 39,
Opt_nfs_nostale_ro = 40,
Opt_err = 41,
Opt_dos1xfloppy = 42,
};
struct msdos_inode_info {
spinlock_t cache_lru_lock;
struct list_head cache_lru;
int nr_caches;
unsigned int cache_valid_id;
loff_t mmu_private;
int i_start;
int i_logstart;
int i_attrs;
loff_t i_pos;
struct hlist_node i_fat_hash;
struct hlist_node i_dir_hash;
struct rw_semaphore truncate_lock;
struct timespec64 i_crtime;
struct inode vfs_inode;
};
struct fat_boot_sector {
__u8 ignored[3];
__u8 system_id[8];
__u8 sector_size[2];
__u8 sec_per_clus;
__le16 reserved;
__u8 fats;
__u8 dir_entries[2];
__u8 sectors[2];
__u8 media;
__le16 fat_length;
__le16 secs_track;
__le16 heads;
__le32 hidden;
__le32 total_sect;
union {
struct {
__u8 drive_number;
__u8 state;
__u8 signature;
__u8 vol_id[4];
__u8 vol_label[11];
__u8 fs_type[8];
} fat16;
struct {
__le32 length;
__le16 flags;
__u8 version[2];
__le32 root_cluster;
__le16 info_sector;
__le16 backup_boot;
__le16 reserved2[6];
__u8 drive_number;
__u8 state;
__u8 signature;
__u8 vol_id[4];
__u8 vol_label[11];
__u8 fs_type[8];
} fat32;
};
};
struct fat_boot_fsinfo {
__le32 signature1;
__le32 reserved1[120];
__le32 signature2;
__le32 free_clusters;
__le32 next_cluster;
__le32 reserved2[4];
};
struct msdos_dir_entry {
__u8 name[11];
__u8 attr;
__u8 lcase;
__u8 ctime_cs;
__le16 ctime;
__le16 cdate;
__le16 adate;
__le16 starthi;
__le16 time;
__le16 date;
__le16 start;
__le32 size;
};
struct fat_mount_options {
kuid_t fs_uid;
kgid_t fs_gid;
unsigned short fs_fmask;
unsigned short fs_dmask;
unsigned short codepage;
int time_offset;
char *iocharset;
unsigned short shortname;
unsigned char name_check;
unsigned char errors;
unsigned char nfs;
unsigned short allow_utime;
unsigned int quiet: 1;
unsigned int showexec: 1;
unsigned int sys_immutable: 1;
unsigned int dotsOK: 1;
unsigned int isvfat: 1;
unsigned int utf8: 1;
unsigned int unicode_xlate: 1;
unsigned int numtail: 1;
unsigned int flush: 1;
unsigned int nocase: 1;
unsigned int usefree: 1;
unsigned int tz_set: 1;
unsigned int rodir: 1;
unsigned int discard: 1;
unsigned int dos1xfloppy: 1;
};
struct nls_table;
struct fatent_operations;
struct msdos_sb_info {
unsigned short sec_per_clus;
unsigned short cluster_bits;
unsigned int cluster_size;
unsigned char fats;
unsigned char fat_bits;
unsigned short fat_start;
unsigned long fat_length;
unsigned long dir_start;
unsigned short dir_entries;
unsigned long data_start;
unsigned long max_cluster;
unsigned long root_cluster;
unsigned long fsinfo_sector;
struct mutex fat_lock;
struct mutex nfs_build_inode_lock;
struct mutex s_lock;
unsigned int prev_free;
unsigned int free_clusters;
unsigned int free_clus_valid;
struct fat_mount_options options;
struct nls_table *nls_disk;
struct nls_table *nls_io;
const void *dir_ops;
int dir_per_block;
int dir_per_block_bits;
unsigned int vol_id;
int fatent_shift;
const struct fatent_operations *fatent_ops;
struct inode *fat_inode;
struct inode *fsinfo_inode;
struct ratelimit_state ratelimit;
spinlock_t inode_hash_lock;
struct hlist_head inode_hashtable[256];
spinlock_t dir_hash_lock;
struct hlist_head dir_hashtable[256];
unsigned int dirty;
struct callback_head rcu;
};
typedef u16 wchar_t;
struct nls_table {
const char *charset;
const char *alias;
int (*uni2char)(wchar_t, unsigned char *, int);
int (*char2uni)(const unsigned char *, int, wchar_t *);
const unsigned char *charset2lower;
const unsigned char *charset2upper;
struct module *owner;
struct nls_table *next;
};
struct fat_entry;
struct fatent_operations {
void (*ent_blocknr)(struct super_block *, int, int *, sector_t *);
void (*ent_set_ptr)(struct fat_entry *, int);
int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t);
int (*ent_get)(struct fat_entry *);
void (*ent_put)(struct fat_entry *, int);
int (*ent_next)(struct fat_entry *);
};
typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int);
typedef __kernel_ulong_t ino_t;
typedef struct {
char *from;
char *to;
} substring_t;
struct fat_bios_param_block {
u16 fat_sector_size;
u8 fat_sec_per_clus;
u16 fat_reserved;
u8 fat_fats;
u16 fat_dir_entries;
u16 fat_sectors;
u16 fat_fat_length;
u32 fat_total_sect;
u8 fat16_state;
u32 fat16_vol_id;
u32 fat32_length;
u32 fat32_root_cluster;
u16 fat32_info_sector;
u8 fat32_state;
u32 fat32_vol_id;
};
typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *);
struct btrfs_subpage_info {
unsigned int bitmap_nr_bits;
unsigned int total_nr_bits;
unsigned int uptodate_offset;
unsigned int dirty_offset;
unsigned int writeback_offset;
unsigned int ordered_offset;
unsigned int checked_offset;
unsigned int locked_offset;
};
enum btrfs_disk_cache_state {
BTRFS_DC_WRITTEN = 0,
BTRFS_DC_ERROR = 1,
BTRFS_DC_CLEAR = 2,
BTRFS_DC_SETUP = 3,
};
enum btrfs_block_group_flags {
BLOCK_GROUP_FLAG_IREF = 0,
BLOCK_GROUP_FLAG_REMOVED = 1,
BLOCK_GROUP_FLAG_TO_COPY = 2,
BLOCK_GROUP_FLAG_RELOCATING_REPAIR = 3,
BLOCK_GROUP_FLAG_CHUNK_ITEM_INSERTED = 4,
BLOCK_GROUP_FLAG_ZONE_IS_ACTIVE = 5,
BLOCK_GROUP_FLAG_ZONED_DATA_RELOC = 6,
BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE = 7,
BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE = 8,
BLOCK_GROUP_FLAG_NEW = 9,
};
enum {
BTRFS_FS_STATE_REMOUNTING = 0,
BTRFS_FS_STATE_RO = 1,
BTRFS_FS_STATE_TRANS_ABORTED = 2,
BTRFS_FS_STATE_DEV_REPLACING = 3,
BTRFS_FS_STATE_DUMMY_FS_INFO = 4,
BTRFS_FS_STATE_NO_CSUMS = 5,
BTRFS_FS_STATE_LOG_CLEANUP_ERROR = 6,
BTRFS_FS_STATE_COUNT = 7,
};
enum {
BTRFS_STAT_CURR = 0,
BTRFS_STAT_PREV = 1,
BTRFS_STAT_NR_ENTRIES = 2,
};
enum {
__EXTENT_DIRTY_BIT = 0,
EXTENT_DIRTY = 1,
__EXTENT_DIRTY_SEQ = 0,
__EXTENT_UPTODATE_BIT = 1,
EXTENT_UPTODATE = 2,
__EXTENT_UPTODATE_SEQ = 1,
__EXTENT_LOCKED_BIT = 2,
EXTENT_LOCKED = 4,
__EXTENT_LOCKED_SEQ = 2,
__EXTENT_NEW_BIT = 3,
EXTENT_NEW = 8,
__EXTENT_NEW_SEQ = 3,
__EXTENT_DELALLOC_BIT = 4,
EXTENT_DELALLOC = 16,
__EXTENT_DELALLOC_SEQ = 4,
__EXTENT_DEFRAG_BIT = 5,
EXTENT_DEFRAG = 32,
__EXTENT_DEFRAG_SEQ = 5,
__EXTENT_BOUNDARY_BIT = 6,
EXTENT_BOUNDARY = 64,
__EXTENT_BOUNDARY_SEQ = 6,
__EXTENT_NODATASUM_BIT = 7,
EXTENT_NODATASUM = 128,
__EXTENT_NODATASUM_SEQ = 7,
__EXTENT_CLEAR_META_RESV_BIT = 8,
EXTENT_CLEAR_META_RESV = 256,
__EXTENT_CLEAR_META_RESV_SEQ = 8,
__EXTENT_NEED_WAIT_BIT = 9,
EXTENT_NEED_WAIT = 512,
__EXTENT_NEED_WAIT_SEQ = 9,
__EXTENT_NORESERVE_BIT = 10,
EXTENT_NORESERVE = 1024,
__EXTENT_NORESERVE_SEQ = 10,
__EXTENT_QGROUP_RESERVED_BIT = 11,
EXTENT_QGROUP_RESERVED = 2048,
__EXTENT_QGROUP_RESERVED_SEQ = 11,
__EXTENT_CLEAR_DATA_RESV_BIT = 12,
EXTENT_CLEAR_DATA_RESV = 4096,
__EXTENT_CLEAR_DATA_RESV_SEQ = 12,
__EXTENT_DELALLOC_NEW_BIT = 13,
EXTENT_DELALLOC_NEW = 8192,
__EXTENT_DELALLOC_NEW_SEQ = 13,
__EXTENT_ADD_INODE_BYTES_BIT = 14,
EXTENT_ADD_INODE_BYTES = 16384,
__EXTENT_ADD_INODE_BYTES_SEQ = 14,
__EXTENT_CLEAR_ALL_BITS_BIT = 15,
EXTENT_CLEAR_ALL_BITS = 32768,
__EXTENT_CLEAR_ALL_BITS_SEQ = 15,
__EXTENT_NOWAIT_BIT = 16,
EXTENT_NOWAIT = 65536,
__EXTENT_NOWAIT_SEQ = 16,
};
struct btrfs_free_space_header {
struct btrfs_disk_key location;
__le64 generation;
__le64 num_entries;
__le64 num_bitmaps;
} __attribute__((packed));
struct btrfs_item {
struct btrfs_disk_key key;
__le32 offset;
__le32 size;
} __attribute__((packed));
struct btrfs_trim_range {
u64 start;
u64 bytes;
struct list_head list;
};
struct btrfs_item_batch {
const struct btrfs_key *keys;
const u32 *data_sizes;
u32 total_data_size;
int nr;
};
struct extent_state {
u64 start;
u64 end;
struct rb_node rb_node;
wait_queue_head_t wq;
refcount_t refs;
u32 state;
};
struct btrfs_truncate_control {
struct btrfs_inode *inode;
u64 new_size;
u64 extents_found;
u64 last_size;
u64 sub_bytes;
u64 ino;
u32 min_type;
bool skip_ref_updates;
bool clear_extent_range;
};
struct extent_changeset {
u64 bytes_changed;
struct ulist range_changed;
};
struct btrfs_free_space_entry {
__le64 offset;
__le64 bytes;
__u8 type;
} __attribute__((packed));
struct crypto_cipher {
struct crypto_tfm base;
};
struct hash_alg_common {
unsigned int digestsize;
unsigned int statesize;
struct crypto_alg base;
};
struct shash_desc;
struct shash_alg {
int (*init)(struct shash_desc *);
int (*update)(struct shash_desc *, const u8 *, unsigned int);
int (*final)(struct shash_desc *, u8 *);
int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *);
int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *);
int (*export)(struct shash_desc *, void *);
int (*import)(struct shash_desc *, const void *);
int (*setkey)(struct crypto_shash *, const u8 *, unsigned int);
int (*init_tfm)(struct crypto_shash *);
void (*exit_tfm)(struct crypto_shash *);
int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *);
unsigned int descsize;
union {
struct {
unsigned int digestsize;
unsigned int statesize;
struct crypto_alg base;
};
struct hash_alg_common halg;
};
};
struct shash_desc {
struct crypto_shash *tfm;
void *__ctx[0];
};
struct shash_instance {
void (*free)(struct shash_instance *);
union {
struct {
char head[104];
struct crypto_instance base;
} s;
struct shash_alg alg;
};
};
struct crypto_cipher_spawn {
struct crypto_spawn base;
};
struct crypto_ahash_spawn {
struct crypto_spawn base;
};
struct crypto_skcipher_spawn {
struct crypto_spawn base;
};
struct ccm_instance_ctx {
struct crypto_skcipher_spawn ctr;
struct crypto_ahash_spawn mac;
};
struct crypto_ahash {
bool using_shash;
unsigned int statesize;
unsigned int reqsize;
struct crypto_tfm base;
};
struct crypto_skcipher {
unsigned int reqsize;
struct crypto_tfm base;
};
struct ahash_request {
struct crypto_async_request base;
unsigned int nbytes;
struct scatterlist *src;
u8 *result;
void *priv;
void *__ctx[0];
};
struct skcipher_request {
unsigned int cryptlen;
u8 *iv;
struct scatterlist *src;
struct scatterlist *dst;
struct crypto_async_request base;
void *__ctx[0];
};
struct crypto_ccm_req_priv_ctx {
u8 odata[16];
u8 idata[16];
u8 auth_tag[16];
u32 flags;
struct scatterlist src[3];
struct scatterlist dst[3];
union {
struct ahash_request ahreq;
struct skcipher_request skreq;
};
};
struct cbcmac_tfm_ctx {
struct crypto_cipher *child;
};
struct cbcmac_desc_ctx {
unsigned int len;
u8 dg[0];
};
struct crypto_ccm_ctx {
struct crypto_ahash *mac;
struct crypto_skcipher *ctr;
};
struct crypto_rfc4309_ctx {
struct crypto_aead *child;
u8 nonce[3];
};
struct crypto_rfc4309_req_ctx {
struct scatterlist src[3];
struct scatterlist dst[3];
struct aead_request subreq;
};
struct parsed_partitions {
struct gendisk *disk;
char name[32];
struct {
sector_t from;
sector_t size;
int flags;
bool has_info;
struct partition_meta_info info;
} *parts;
int next;
int limit;
bool access_beyond_eod;
char *pp_buf;
};
enum {
GENHD_FL_REMOVABLE = 1,
GENHD_FL_HIDDEN = 2,
GENHD_FL_NO_PART = 4,
};
enum kobject_action {
KOBJ_ADD = 0,
KOBJ_REMOVE = 1,
KOBJ_CHANGE = 2,
KOBJ_MOVE = 3,
KOBJ_ONLINE = 4,
KOBJ_OFFLINE = 5,
KOBJ_BIND = 6,
KOBJ_UNBIND = 7,
};
typedef unsigned int xa_mark_t;
typedef int filler_t(struct file *, struct folio *);
typedef struct {
struct folio *v;
} Sector;
enum {
IOU_OK = 0,
IOU_ISSUE_SKIP_COMPLETE = -529,
IOU_REQUEUE = -3072,
IOU_STOP_MULTISHOT = -125,
};
enum io_uring_cmd_flags {
IO_URING_F_COMPLETE_DEFER = 1,
IO_URING_F_UNLOCKED = 2,
IO_URING_F_MULTISHOT = 4,
IO_URING_F_IOWQ = 8,
IO_URING_F_NONBLOCK = -2147483648,
IO_URING_F_SQE128 = 256,
IO_URING_F_CQE32 = 512,
IO_URING_F_IOPOLL = 1024,
IO_URING_F_CANCEL = 2048,
IO_URING_F_COMPAT = 4096,
};
enum {
REQ_F_FIXED_FILE = 1ULL,
REQ_F_IO_DRAIN = 2ULL,
REQ_F_LINK = 4ULL,
REQ_F_HARDLINK = 8ULL,
REQ_F_FORCE_ASYNC = 16ULL,
REQ_F_BUFFER_SELECT = 32ULL,
REQ_F_CQE_SKIP = 64ULL,
REQ_F_FAIL = 256ULL,
REQ_F_INFLIGHT = 512ULL,
REQ_F_CUR_POS = 1024ULL,
REQ_F_NOWAIT = 2048ULL,
REQ_F_LINK_TIMEOUT = 4096ULL,
REQ_F_NEED_CLEANUP = 8192ULL,
REQ_F_POLLED = 16384ULL,
REQ_F_BUFFER_SELECTED = 32768ULL,
REQ_F_BUFFER_RING = 65536ULL,
REQ_F_REISSUE = 131072ULL,
REQ_F_SUPPORT_NOWAIT = 268435456ULL,
REQ_F_ISREG = 536870912ULL,
REQ_F_CREDS = 262144ULL,
REQ_F_REFCOUNT = 524288ULL,
REQ_F_ARM_LTIMEOUT = 1048576ULL,
REQ_F_ASYNC_DATA = 2097152ULL,
REQ_F_SKIP_LINK_CQES = 4194304ULL,
REQ_F_SINGLE_POLL = 8388608ULL,
REQ_F_DOUBLE_POLL = 16777216ULL,
REQ_F_APOLL_MULTISHOT = 33554432ULL,
REQ_F_CLEAR_POLLIN = 67108864ULL,
REQ_F_HASH_LOCKED = 134217728ULL,
REQ_F_POLL_NO_LAZY = 1073741824ULL,
REQ_F_CANCEL_SEQ = 2147483648ULL,
REQ_F_CAN_POLL = 4294967296ULL,
REQ_F_BL_EMPTY = 8589934592ULL,
REQ_F_BL_NO_RECYCLE = 17179869184ULL,
};
struct io_cmd_data {
struct file *file;
__u8 data[56];
};
struct io_wq_work_node {
struct io_wq_work_node *next;
};
typedef u64 io_req_flags_t;
struct io_cqe {
__u64 user_data;
__s32 res;
union {
__u32 flags;
int fd;
};
};
struct io_kiocb;
struct io_tw_state;
typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *);
struct io_task_work {
struct llist_node node;
io_req_tw_func_t func;
};
struct io_wq_work {
struct io_wq_work_node list;
unsigned int flags;
int cancel_seq;
};
struct io_ring_ctx;
struct io_mapped_ubuf;
struct io_buffer;
struct io_buffer_list;
struct io_rsrc_node;
struct async_poll;
struct io_kiocb {
union {
struct file *file;
struct io_cmd_data cmd;
};
u8 opcode;
u8 iopoll_completed;
u16 buf_index;
unsigned int nr_tw;
io_req_flags_t flags;
struct io_cqe cqe;
struct io_ring_ctx *ctx;
struct task_struct *task;
union {
struct io_mapped_ubuf *imu;
struct io_buffer *kbuf;
struct io_buffer_list *buf_list;
};
union {
struct io_wq_work_node comp_list;
__poll_t apoll_events;
};
struct io_rsrc_node *rsrc_node;
atomic_t refs;
atomic_t poll_refs;
struct io_task_work io_task_work;
struct hlist_node hash_node;
struct async_poll *apoll;
void *async_data;
struct io_kiocb *link;
const struct cred *creds;
struct io_wq_work work;
struct {
u64 extra1;
u64 extra2;
} big_cqe;
};
struct io_wq;
struct io_uring_task {
int cached_refs;
const struct io_ring_ctx *last;
struct io_wq *io_wq;
struct file *registered_rings[16];
struct xarray xa;
struct wait_queue_head wait;
atomic_t in_cancel;
atomic_t inflight_tracked;
struct percpu_counter inflight;
long: 64;
long: 64;
long: 64;
long: 64;
struct {
struct llist_head task_list;
struct callback_head task_work;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
};
struct io_wq_work_list {
struct io_wq_work_node *first;
struct io_wq_work_node *last;
};
struct io_fixed_file;
struct io_file_table {
struct io_fixed_file *files;
unsigned long *bitmap;
unsigned int alloc_hint;
};
struct io_submit_link {
struct io_kiocb *head;
struct io_kiocb *last;
};
struct io_submit_state {
struct io_wq_work_node free_list;
struct io_wq_work_list compl_reqs;
struct io_submit_link link;
bool plug_started;
bool need_plug;
unsigned short submit_nr;
unsigned int cqes_count;
struct blk_plug plug;
};
struct io_hash_bucket;
struct io_hash_table {
struct io_hash_bucket *hbs;
unsigned int hash_bits;
};
struct io_alloc_cache {
struct io_wq_work_node list;
unsigned int nr_cached;
unsigned int max_cached;
size_t elem_size;
};
struct io_uring_cqe {
__u64 user_data;
__s32 res;
__u32 flags;
__u64 big_cqe[0];
};
struct io_restriction {
unsigned long register_op[1];
unsigned long sqe_op[1];
u8 sqe_flags_allowed;
u8 sqe_flags_required;
bool registered;
};
struct io_rings;
struct io_uring_sqe;
struct io_ev_fd;
struct io_sq_data;
struct io_rsrc_data;
struct io_wq_hash;
struct io_ring_ctx {
struct {
unsigned int flags;
unsigned int drain_next: 1;
unsigned int restricted: 1;
unsigned int off_timeout_used: 1;
unsigned int drain_active: 1;
unsigned int has_evfd: 1;
unsigned int task_complete: 1;
unsigned int lockless_cq: 1;
unsigned int syscall_iopoll: 1;
unsigned int poll_activated: 1;
unsigned int drain_disabled: 1;
unsigned int compat: 1;
unsigned int iowq_limits_set: 1;
struct task_struct *submitter_task;
struct io_rings *rings;
struct percpu_ref refs;
enum task_work_notify_mode notify_method;
unsigned int sq_thread_idle;
long: 64;
long: 64;
};
struct {
struct mutex uring_lock;
u32 *sq_array;
struct io_uring_sqe *sq_sqes;
unsigned int cached_sq_head;
unsigned int sq_entries;
struct io_rsrc_node *rsrc_node;
atomic_t cancel_seq;
bool poll_multi_queue;
struct io_wq_work_list iopoll_list;
struct io_file_table file_table;
struct io_mapped_ubuf **user_bufs;
unsigned int nr_user_files;
unsigned int nr_user_bufs;
struct io_submit_state submit_state;
struct io_buffer_list *io_bl;
struct xarray io_bl_xa;
struct io_hash_table cancel_table_locked;
struct io_alloc_cache apoll_cache;
struct io_alloc_cache netmsg_cache;
struct hlist_head cancelable_uring_cmd;
long: 64;
long: 64;
};
struct {
struct io_uring_cqe *cqe_cached;
struct io_uring_cqe *cqe_sentinel;
unsigned int cached_cq_tail;
unsigned int cq_entries;
struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd;
unsigned int cq_extra;
long: 64;
long: 64;
long: 64;
};
struct {
struct llist_head work_llist;
unsigned long check_cq;
atomic_t cq_wait_nr;
atomic_t cq_timeouts;
struct wait_queue_head cq_wait;
long: 64;
long: 64;
long: 64;
};
struct {
spinlock_t timeout_lock;
struct list_head timeout_list;
struct list_head ltimeout_list;
unsigned int cq_last_tm_flush;
long: 64;
long: 64;
long: 64;
};
struct io_uring_cqe completion_cqes[16];
spinlock_t completion_lock;
unsigned int locked_free_nr;
struct io_wq_work_list locked_free_list;
struct list_head io_buffers_comp;
struct list_head cq_overflow_list;
struct io_hash_table cancel_table;
struct hlist_head waitid_list;
struct hlist_head futex_list;
struct io_alloc_cache futex_cache;
const struct cred *sq_creds;
struct io_sq_data *sq_data;
struct wait_queue_head sqo_sq_wait;
struct list_head sqd_list;
unsigned int file_alloc_start;
unsigned int file_alloc_end;
struct list_head io_buffers_cache;
struct hlist_head io_buf_list;
struct wait_queue_head poll_wq;
struct io_restriction restrictions;
struct io_mapped_ubuf *dummy_ubuf;
struct io_rsrc_data *file_data;
struct io_rsrc_data *buf_data;
struct list_head rsrc_ref_list;
struct io_alloc_cache rsrc_node_cache;
struct wait_queue_head rsrc_quiesce_wq;
unsigned int rsrc_quiesce;
u32 pers_next;
struct xarray personalities;
struct io_wq_hash *hash_map;
struct user_struct *user;
struct mm_struct *mm_account;
struct llist_head fallback_llist;
struct delayed_work fallback_work;
struct work_struct exit_work;
struct list_head tctx_list;
struct completion ref_comp;
u32 iowq_limits[2];
struct callback_head poll_wq_task_work;
struct list_head defer_list;
struct list_head napi_list;
spinlock_t napi_lock;
unsigned int napi_busy_poll_to;
bool napi_prefer_busy_poll;
bool napi_enabled;
struct hlist_head napi_ht[16];
unsigned int evfd_last_cq_tail;
unsigned short n_ring_pages;
unsigned short n_sqe_pages;
struct page **ring_pages;
struct page **sqe_pages;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct io_uring {
u32 head;
u32 tail;
};
struct io_rings {
struct io_uring sq;
struct io_uring cq;
u32 sq_ring_mask;
u32 cq_ring_mask;
u32 sq_ring_entries;
u32 cq_ring_entries;
u32 sq_dropped;
atomic_t sq_flags;
u32 cq_flags;
u32 cq_overflow;
long: 64;
long: 64;
struct io_uring_cqe cqes[0];
};
struct io_uring_sqe {
__u8 opcode;
__u8 flags;
__u16 ioprio;
__s32 fd;
union {
__u64 off;
__u64 addr2;
struct {
__u32 cmd_op;
__u32 __pad1;
};
};
union {
__u64 addr;
__u64 splice_off_in;
struct {
__u32 level;
__u32 optname;
};
};
__u32 len;
union {
__kernel_rwf_t rw_flags;
__u32 fsync_flags;
__u16 poll_events;
__u32 poll32_events;
__u32 sync_range_flags;
__u32 msg_flags;
__u32 timeout_flags;
__u32 accept_flags;
__u32 cancel_flags;
__u32 open_flags;
__u32 statx_flags;
__u32 fadvise_advice;
__u32 splice_flags;
__u32 rename_flags;
__u32 unlink_flags;
__u32 hardlink_flags;
__u32 xattr_flags;
__u32 msg_ring_flags;
__u32 uring_cmd_flags;
__u32 waitid_flags;
__u32 futex_flags;
__u32 install_fd_flags;
};
__u64 user_data;
union {
__u16 buf_index;
__u16 buf_group;
};
__u16 personality;
union {
__s32 splice_fd_in;
__u32 file_index;
__u32 optlen;
struct {
__u16 addr_len;
__u16 __pad3[1];
};
};
union {
struct {
__u64 addr3;
__u64 __pad2[1];
};
__u64 optval;
__u8 cmd[0];
};
};
struct io_fixed_file {
unsigned long file_ptr;
};
struct io_hash_bucket {
spinlock_t lock;
struct hlist_head list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct io_ev_fd {
struct eventfd_ctx *cq_ev_fd;
unsigned int eventfd_async: 1;
struct callback_head rcu;
atomic_t refs;
atomic_t ops;
};
struct io_wq_hash {
refcount_t refs;
unsigned long map;
struct wait_queue_head wait;
};
struct io_tw_state {
bool locked;
};
struct waitid_info {
pid_t pid;
uid_t uid;
int status;
int cause;
};
struct siginfo;
struct io_waitid {
struct file *file;
int which;
pid_t upid;
int options;
atomic_t refs;
struct wait_queue_head *head;
struct siginfo __attribute__((btf_type_tag("user"))) *infop;
struct waitid_info info;
};
struct siginfo {
union {
struct {
int si_signo;
int si_errno;
int si_code;
union __sifields _sifields;
};
int _si_pad[32];
};
};
struct rusage;
struct wait_opts {
enum pid_type wo_type;
int wo_flags;
struct pid *wo_pid;
struct waitid_info *wo_info;
int wo_stat;
struct rusage *wo_rusage;
wait_queue_entry_t child_wait;
int notask_error;
};
struct __kernel_old_timeval {
__kernel_long_t tv_sec;
__kernel_long_t tv_usec;
};
struct rusage {
struct __kernel_old_timeval ru_utime;
struct __kernel_old_timeval ru_stime;
__kernel_long_t ru_maxrss;
__kernel_long_t ru_ixrss;
__kernel_long_t ru_idrss;
__kernel_long_t ru_isrss;
__kernel_long_t ru_minflt;
__kernel_long_t ru_majflt;
__kernel_long_t ru_nswap;
__kernel_long_t ru_inblock;
__kernel_long_t ru_oublock;
__kernel_long_t ru_msgsnd;
__kernel_long_t ru_msgrcv;
__kernel_long_t ru_nsignals;
__kernel_long_t ru_nvcsw;
__kernel_long_t ru_nivcsw;
};
struct io_waitid_async {
struct io_kiocb *req;
struct wait_opts wo;
};
struct io_cancel_data {
struct io_ring_ctx *ctx;
union {
u64 data;
struct file *file;
};
u8 opcode;
u32 flags;
int seq;
};
struct bus_attribute {
struct attribute attr;
ssize_t (*show)(const struct bus_type *, char *);
ssize_t (*store)(const struct bus_type *, const char *, size_t);
};
enum pci_mmap_state {
pci_mmap_io = 0,
pci_mmap_mem = 1,
};
enum lockdown_reason {
LOCKDOWN_NONE = 0,
LOCKDOWN_MODULE_SIGNATURE = 1,
LOCKDOWN_DEV_MEM = 2,
LOCKDOWN_EFI_TEST = 3,
LOCKDOWN_KEXEC = 4,
LOCKDOWN_HIBERNATION = 5,
LOCKDOWN_PCI_ACCESS = 6,
LOCKDOWN_IOPORT = 7,
LOCKDOWN_MSR = 8,
LOCKDOWN_ACPI_TABLES = 9,
LOCKDOWN_DEVICE_TREE = 10,
LOCKDOWN_PCMCIA_CIS = 11,
LOCKDOWN_TIOCSSERIAL = 12,
LOCKDOWN_MODULE_PARAMETERS = 13,
LOCKDOWN_MMIOTRACE = 14,
LOCKDOWN_DEBUGFS = 15,
LOCKDOWN_XMON_WR = 16,
LOCKDOWN_BPF_WRITE_USER = 17,
LOCKDOWN_DBG_WRITE_KERNEL = 18,
LOCKDOWN_RTAS_ERROR_INJECTION = 19,
LOCKDOWN_INTEGRITY_MAX = 20,
LOCKDOWN_KCORE = 21,
LOCKDOWN_KPROBES = 22,
LOCKDOWN_BPF_READ_KERNEL = 23,
LOCKDOWN_DBG_READ_KERNEL = 24,
LOCKDOWN_PERF = 25,
LOCKDOWN_TRACEFS = 26,
LOCKDOWN_XMON_RW = 27,
LOCKDOWN_XFRM_SECRET = 28,
LOCKDOWN_CONFIDENTIALITY_MAX = 29,
};
enum pci_mmap_api {
PCI_MMAP_SYSFS = 0,
PCI_MMAP_PROCFS = 1,
};
enum pci_bus_flags {
PCI_BUS_FLAGS_NO_MSI = 1,
PCI_BUS_FLAGS_NO_MMRBC = 2,
PCI_BUS_FLAGS_NO_AERSID = 4,
PCI_BUS_FLAGS_NO_EXTCFG = 8,
};
enum pci_bus_speed {
PCI_SPEED_33MHz = 0,
PCI_SPEED_66MHz = 1,
PCI_SPEED_66MHz_PCIX = 2,
PCI_SPEED_100MHz_PCIX = 3,
PCI_SPEED_133MHz_PCIX = 4,
PCI_SPEED_66MHz_PCIX_ECC = 5,
PCI_SPEED_100MHz_PCIX_ECC = 6,
PCI_SPEED_133MHz_PCIX_ECC = 7,
PCI_SPEED_66MHz_PCIX_266 = 9,
PCI_SPEED_100MHz_PCIX_266 = 10,
PCI_SPEED_133MHz_PCIX_266 = 11,
AGP_UNKNOWN = 12,
AGP_1X = 13,
AGP_2X = 14,
AGP_4X = 15,
AGP_8X = 16,
PCI_SPEED_66MHz_PCIX_533 = 17,
PCI_SPEED_100MHz_PCIX_533 = 18,
PCI_SPEED_133MHz_PCIX_533 = 19,
PCIE_SPEED_2_5GT = 20,
PCIE_SPEED_5_0GT = 21,
PCIE_SPEED_8_0GT = 22,
PCIE_SPEED_16_0GT = 23,
PCIE_SPEED_32_0GT = 24,
PCIE_SPEED_64_0GT = 25,
PCI_SPEED_UNKNOWN = 255,
};
enum pcie_link_width {
PCIE_LNK_WIDTH_RESRV = 0,
PCIE_LNK_X1 = 1,
PCIE_LNK_X2 = 2,
PCIE_LNK_X4 = 4,
PCIE_LNK_X8 = 8,
PCIE_LNK_X12 = 12,
PCIE_LNK_X16 = 16,
PCIE_LNK_X32 = 32,
PCIE_LNK_WIDTH_UNKNOWN = 255,
};
struct pci_sysdata {
int domain;
int node;
struct acpi_device *companion;
void *iommu;
void *fwnode;
};
struct cacheinfo;
struct cpu_cacheinfo {
struct cacheinfo *info_list;
unsigned int per_cpu_data_slice_size;
unsigned int num_levels;
unsigned int num_leaves;
bool cpu_map_populated;
bool early_ci_levels;
};
enum cache_type {
CACHE_TYPE_NOCACHE = 0,
CACHE_TYPE_INST = 1,
CACHE_TYPE_DATA = 2,
CACHE_TYPE_SEPARATE = 3,
CACHE_TYPE_UNIFIED = 4,
};
struct cacheinfo {
unsigned int id;
enum cache_type type;
unsigned int level;
unsigned int coherency_line_size;
unsigned int number_of_sets;
unsigned int ways_of_associativity;
unsigned int physical_line_partition;
unsigned int size;
cpumask_t shared_cpu_map;
unsigned int attributes;
void *fw_token;
bool disable_sysfs;
void *priv;
};
struct module_version_attribute {
struct module_attribute mattr;
const char *module_name;
const char *version;
};
struct class_interface {
struct list_head node;
const struct class *class;
int (*add_dev)(struct device *);
void (*remove_dev)(struct device *);
};
enum scsi_msg_byte {
COMMAND_COMPLETE = 0,
EXTENDED_MESSAGE = 1,
SAVE_POINTERS = 2,
RESTORE_POINTERS = 3,
DISCONNECT = 4,
INITIATOR_ERROR = 5,
ABORT_TASK_SET = 6,
MESSAGE_REJECT = 7,
NOP = 8,
MSG_PARITY_ERROR = 9,
LINKED_CMD_COMPLETE = 10,
LINKED_FLG_CMD_COMPLETE = 11,
TARGET_RESET = 12,
ABORT_TASK = 13,
CLEAR_TASK_SET = 14,
INITIATE_RECOVERY = 15,
RELEASE_RECOVERY = 16,
TERMINATE_IO_PROC = 17,
CLEAR_ACA = 22,
LOGICAL_UNIT_RESET = 23,
SIMPLE_QUEUE_TAG = 32,
HEAD_OF_QUEUE_TAG = 33,
ORDERED_QUEUE_TAG = 34,
IGNORE_WIDE_RESIDUE = 35,
ACA = 36,
QAS_REQUEST = 85,
BUS_DEVICE_RESET = 12,
ABORT = 6,
};
enum vm_fault_reason {
VM_FAULT_OOM = 1,
VM_FAULT_SIGBUS = 2,
VM_FAULT_MAJOR = 4,
VM_FAULT_HWPOISON = 16,
VM_FAULT_HWPOISON_LARGE = 32,
VM_FAULT_SIGSEGV = 64,
VM_FAULT_NOPAGE = 256,
VM_FAULT_LOCKED = 512,
VM_FAULT_RETRY = 1024,
VM_FAULT_FALLBACK = 2048,
VM_FAULT_DONE_COW = 4096,
VM_FAULT_NEEDDSYNC = 8192,
VM_FAULT_COMPLETED = 16384,
VM_FAULT_HINDEX_MASK = 983040,
};
struct sg_scatter_hold {
unsigned short k_use_sg;
unsigned int sglist_len;
unsigned int bufflen;
struct page **pages;
int page_order;
char dio_in_use;
unsigned char cmd_opcode;
};
typedef struct sg_scatter_hold Sg_scatter_hold;
struct sg_io_hdr {
int interface_id;
int dxfer_direction;
unsigned char cmd_len;
unsigned char mx_sb_len;
unsigned short iovec_count;
unsigned int dxfer_len;
void __attribute__((btf_type_tag("user"))) *dxferp;
unsigned char __attribute__((btf_type_tag("user"))) *cmdp;
void __attribute__((btf_type_tag("user"))) *sbp;
unsigned int timeout;
unsigned int flags;
int pack_id;
void __attribute__((btf_type_tag("user"))) *usr_ptr;
unsigned char status;
unsigned char masked_status;
unsigned char msg_status;
unsigned char sb_len_wr;
unsigned short host_status;
unsigned short driver_status;
int resid;
unsigned int duration;
unsigned int info;
};
typedef struct sg_io_hdr sg_io_hdr_t;
struct execute_work {
struct work_struct work;
};
struct sg_fd;
struct sg_request {
struct list_head entry;
struct sg_fd *parentfp;
Sg_scatter_hold data;
sg_io_hdr_t header;
unsigned char sense_b[96];
char res_used;
char orphan;
char sg_io_owned;
char done;
struct request *rq;
struct bio *bio;
struct execute_work ew;
};
typedef struct sg_request Sg_request;
struct sg_device;
struct sg_fd {
struct list_head sfd_siblings;
struct sg_device *parentdp;
wait_queue_head_t read_wait;
rwlock_t rq_list_lock;
struct mutex f_mutex;
int timeout;
int timeout_user;
Sg_scatter_hold reserve;
struct list_head rq_list;
struct fasync_struct *async_qp;
Sg_request req_arr[16];
char force_packid;
char cmd_q;
unsigned char next_cmd_len;
char keep_orphan;
char mmap_called;
char res_in_use;
struct kref f_ref;
struct execute_work ew;
};
typedef struct sg_fd Sg_fd;
struct sg_device {
struct scsi_device *device;
wait_queue_head_t open_wait;
struct mutex open_rel_lock;
int sg_tablesize;
u32 index;
struct list_head sfds;
rwlock_t sfd_lock;
atomic_t detaching;
bool exclude;
int open_cnt;
char sgdebug;
char name[32];
struct cdev *cdev;
struct kref d_ref;
};
typedef s32 compat_int_t;
typedef struct sg_device Sg_device;
struct sg_header {
int pack_len;
int reply_len;
int pack_id;
int result;
unsigned int twelve_byte: 1;
unsigned int target_status: 5;
unsigned int host_status: 8;
unsigned int driver_status: 8;
unsigned int other_flags: 10;
unsigned char sense_buffer[16];
};
typedef u32 compat_uint_t;
struct compat_sg_io_hdr {
compat_int_t interface_id;
compat_int_t dxfer_direction;
unsigned char cmd_len;
unsigned char mx_sb_len;
unsigned short iovec_count;
compat_uint_t dxfer_len;
compat_uint_t dxferp;
compat_uptr_t cmdp;
compat_uptr_t sbp;
compat_uint_t timeout;
compat_uint_t flags;
compat_int_t pack_id;
compat_uptr_t usr_ptr;
unsigned char status;
unsigned char masked_status;
unsigned char msg_status;
unsigned char sb_len_wr;
unsigned short host_status;
unsigned short driver_status;
compat_int_t resid;
compat_uint_t duration;
compat_uint_t info;
};
struct sg_scsi_id {
int host_no;
int channel;
int scsi_id;
int lun;
int scsi_type;
short h_cmd_per_lun;
short d_queue_depth;
int unused[2];
};
typedef struct sg_scsi_id sg_scsi_id_t;
struct sg_req_info {
char req_state;
char orphan;
char sg_io_owned;
char problem;
int pack_id;
void __attribute__((btf_type_tag("user"))) *usr_ptr;
unsigned int duration;
int unused;
};
typedef struct sg_req_info sg_req_info_t;
struct rq_map_data {
struct page **pages;
unsigned long offset;
unsigned short page_order;
unsigned short nr_entries;
bool null_mapped;
bool from_user;
};
struct scsi_sense_hdr {
u8 response_code;
u8 sense_key;
u8 asc;
u8 ascq;
u8 byte4;
u8 byte5;
u8 byte6;
u8 additional_length;
};
struct iwl_causes_list {
u16 mask_reg;
u8 bit;
u8 addr;
};
enum iwl_pcie_fw_reset_state {
FW_RESET_IDLE = 0,
FW_RESET_REQUESTED = 1,
FW_RESET_OK = 2,
FW_RESET_ERROR = 3,
};
enum iwl_pcie_imr_status {
IMR_D2S_IDLE = 0,
IMR_D2S_REQUESTED = 1,
IMR_D2S_COMPLETED = 2,
IMR_D2S_ERROR = 3,
};
enum {
DUMP_PREFIX_NONE = 0,
DUMP_PREFIX_ADDRESS = 1,
DUMP_PREFIX_OFFSET = 2,
};
enum iwl_fw_dbg_monitor_mode {
SMEM_MODE = 0,
EXTERNAL_MODE = 1,
MARBH_MODE = 2,
MIPI_MODE = 3,
};
enum iwl_fw_dbg_reg_operator {
CSR_ASSIGN = 0,
CSR_SETBIT = 1,
CSR_CLEARBIT = 2,
PRPH_ASSIGN = 3,
PRPH_SETBIT = 4,
PRPH_CLEARBIT = 5,
INDIRECT_ASSIGN = 6,
INDIRECT_SETBIT = 7,
INDIRECT_CLEARBIT = 8,
PRPH_BLOCKBIT = 9,
};
enum iwl_shared_irq_flags {
IWL_SHARED_IRQ_NON_RX = 1,
IWL_SHARED_IRQ_FIRST_RSS = 2,
};
enum msix_hw_int_causes {
MSIX_HW_INT_CAUSES_REG_ALIVE = 1,
MSIX_HW_INT_CAUSES_REG_WAKEUP = 2,
MSIX_HW_INT_CAUSES_REG_IML = 2,
MSIX_HW_INT_CAUSES_REG_RESET_DONE = 4,
MSIX_HW_INT_CAUSES_REG_TOP_FATAL_ERR = 8,
MSIX_HW_INT_CAUSES_REG_SW_ERR_BZ = 32,
MSIX_HW_INT_CAUSES_REG_CT_KILL = 64,
MSIX_HW_INT_CAUSES_REG_RF_KILL = 128,
MSIX_HW_INT_CAUSES_REG_PERIODIC = 256,
MSIX_HW_INT_CAUSES_REG_SW_ERR = 33554432,
MSIX_HW_INT_CAUSES_REG_SCD = 67108864,
MSIX_HW_INT_CAUSES_REG_FH_TX = 134217728,
MSIX_HW_INT_CAUSES_REG_HW_ERR = 536870912,
MSIX_HW_INT_CAUSES_REG_HAP = 1073741824,
};
enum msix_fh_int_causes {
MSIX_FH_INT_CAUSES_Q0 = 1,
MSIX_FH_INT_CAUSES_Q1 = 2,
MSIX_FH_INT_CAUSES_D2S_CH0_NUM = 65536,
MSIX_FH_INT_CAUSES_D2S_CH1_NUM = 131072,
MSIX_FH_INT_CAUSES_S2D = 524288,
MSIX_FH_INT_CAUSES_FH_ERR = 2097152,
};
enum {
LMPM_CHICK_EXTENDED_ADDR_SPACE = 1,
};
struct iwl_trans_pcie_removal {
struct pci_dev *pdev;
struct work_struct work;
bool rescan;
};
struct iwl_tfd_tb {
__le32 lo;
__le16 hi_n_len;
} __attribute__((packed));
struct iwl_tfd {
u8 __reserved1[3];
u8 num_tbs;
struct iwl_tfd_tb tbs[20];
__le32 __pad;
};
struct iwl_rb_allocator {
atomic_t req_pending;
atomic_t req_ready;
struct list_head rbd_allocated;
struct list_head rbd_empty;
spinlock_t lock;
struct workqueue_struct *alloc_wq;
struct work_struct rx_alloc;
};
struct isr_statistics {
u32 hw;
u32 sw;
u32 err_code;
u32 sch;
u32 alive;
u32 rfkill;
u32 ctkill;
u32 wakeup;
u32 rx;
u32 tx;
u32 unhandled;
};
struct iwl_dram_regions {
struct iwl_dram_data drams[64];
struct iwl_dram_data prph_scratch_mem_desc;
u8 n_regions;
};
struct iwl_rxq;
struct iwl_rx_mem_buffer;
struct iwl_context_info;
struct iwl_context_info_gen3;
struct iwl_prph_info;
struct iwl_prph_scratch;
struct iwl_trans_pcie {
struct iwl_rxq *rxq;
struct iwl_rx_mem_buffer *rx_pool;
struct iwl_rx_mem_buffer **global_table;
struct iwl_rb_allocator rba;
union {
struct iwl_context_info *ctxt_info;
struct iwl_context_info_gen3 *ctxt_info_gen3;
};
struct iwl_prph_info *prph_info;
struct iwl_prph_scratch *prph_scratch;
void *iml;
dma_addr_t ctxt_info_dma_addr;
dma_addr_t prph_info_dma_addr;
dma_addr_t prph_scratch_dma_addr;
dma_addr_t iml_dma_addr;
struct iwl_trans *trans;
struct net_device napi_dev;
__le32 *ict_tbl;
dma_addr_t ict_tbl_dma;
int ict_index;
bool use_ict;
bool is_down;
bool opmode_down;
s8 debug_rfkill;
struct isr_statistics isr_stats;
spinlock_t irq_lock;
struct mutex mutex;
u32 inta_mask;
u32 scd_base_addr;
struct iwl_dma_ptr kw;
struct iwl_dram_regions pnvm_data;
struct iwl_dram_regions reduced_tables_data;
struct iwl_txq *txq_memory;
struct pci_dev *pci_dev;
u8 *hw_base;
bool ucode_write_complete;
bool sx_complete;
wait_queue_head_t ucode_write_waitq;
wait_queue_head_t sx_waitq;
u8 n_no_reclaim_cmds;
u8 no_reclaim_cmds[6];
u16 num_rx_bufs;
enum iwl_amsdu_size rx_buf_size;
bool scd_set_active;
bool pcie_dbg_dumped_once;
u32 rx_page_order;
u32 rx_buf_bytes;
u32 supported_dma_mask;
spinlock_t alloc_page_lock;
struct page *alloc_page;
u32 alloc_page_used;
spinlock_t reg_lock;
bool cmd_hold_nic_awake;
struct msix_entry msix_entries[16];
bool msix_enabled;
u8 shared_vec_mask;
u32 alloc_vecs;
u32 def_irq;
u32 fh_init_mask;
u32 hw_init_mask;
u32 fh_mask;
u32 hw_mask;
cpumask_t affinity_mask[16];
u16 tx_cmd_queue_size;
bool in_rescan;
void *base_rb_stts;
dma_addr_t base_rb_stts_dma;
bool fw_reset_handshake;
enum iwl_pcie_fw_reset_state fw_reset_state;
wait_queue_head_t fw_reset_waitq;
enum iwl_pcie_imr_status imr_status;
wait_queue_head_t imr_waitq;
char rf_name[32];
};
struct iwl_rxq {
int id;
void *bd;
dma_addr_t bd_dma;
void *used_bd;
dma_addr_t used_bd_dma;
u32 read;
u32 write;
u32 free_count;
u32 used_count;
u32 write_actual;
u32 queue_size;
struct list_head rx_free;
struct list_head rx_used;
bool need_update;
bool next_rb_is_fragment;
void *rb_stts;
dma_addr_t rb_stts_dma;
spinlock_t lock;
struct napi_struct napi;
struct iwl_rx_mem_buffer *queue[256];
};
struct iwl_rx_mem_buffer {
dma_addr_t page_dma;
struct page *page;
struct list_head list;
u32 offset;
u16 vid;
bool invalid;
};
struct iwl_context_info_version {
__le16 mac_id;
__le16 version;
__le16 size;
__le16 reserved;
};
struct iwl_context_info_control {
__le32 control_flags;
__le32 reserved;
};
struct iwl_context_info_rbd_cfg {
__le64 free_rbd_addr;
__le64 used_rbd_addr;
__le64 status_wr_ptr;
};
struct iwl_context_info_hcmd_cfg {
__le64 cmd_queue_addr;
u8 cmd_queue_size;
u8 reserved[7];
};
struct iwl_context_info_dump_cfg {
__le64 core_dump_addr;
__le32 core_dump_size;
__le32 reserved;
};
struct iwl_context_info_early_dbg_cfg {
__le64 early_debug_addr;
__le32 early_debug_size;
__le32 reserved;
};
struct iwl_context_info_pnvm_cfg {
__le64 platform_nvm_addr;
__le32 platform_nvm_size;
__le32 reserved;
};
struct iwl_context_info_dram {
__le64 umac_img[64];
__le64 lmac_img[64];
__le64 virtual_img[64];
};
struct iwl_context_info {
struct iwl_context_info_version version;
struct iwl_context_info_control control;
__le64 reserved0;
struct iwl_context_info_rbd_cfg rbd_cfg;
struct iwl_context_info_hcmd_cfg hcmd_cfg;
__le32 reserved1[4];
struct iwl_context_info_dump_cfg dump_cfg;
struct iwl_context_info_early_dbg_cfg edbg_cfg;
struct iwl_context_info_pnvm_cfg pnvm_cfg;
__le32 reserved2[16];
struct iwl_context_info_dram dram;
__le32 reserved3[16];
};
struct iwl_context_info_gen3 {
__le16 version;
__le16 size;
__le32 config;
__le64 prph_info_base_addr;
__le64 cr_head_idx_arr_base_addr;
__le64 tr_tail_idx_arr_base_addr;
__le64 cr_tail_idx_arr_base_addr;
__le64 tr_head_idx_arr_base_addr;
__le16 cr_idx_arr_size;
__le16 tr_idx_arr_size;
__le64 mtr_base_addr;
__le64 mcr_base_addr;
__le16 mtr_size;
__le16 mcr_size;
__le16 mtr_doorbell_vec;
__le16 mcr_doorbell_vec;
__le16 mtr_msi_vec;
__le16 mcr_msi_vec;
u8 mtr_opt_header_size;
u8 mtr_opt_footer_size;
u8 mcr_opt_header_size;
u8 mcr_opt_footer_size;
__le16 msg_rings_ctrl_flags;
__le16 prph_info_msi_vec;
__le64 prph_scratch_base_addr;
__le32 prph_scratch_size;
__le32 reserved;
} __attribute__((packed));
struct iwl_prph_info {
__le32 boot_stage_mirror;
__le32 ipc_status_mirror;
__le32 sleep_notif;
__le32 reserved;
};
struct iwl_prph_scratch_version {
__le16 mac_id;
__le16 version;
__le16 size;
__le16 reserved;
};
struct iwl_prph_scratch_control {
__le32 control_flags;
__le32 reserved;
};
struct iwl_prph_scratch_pnvm_cfg {
__le64 pnvm_base_addr;
__le32 pnvm_size;
__le32 reserved;
};
struct iwl_prph_scratch_hwm_cfg {
__le64 hwm_base_addr;
__le32 hwm_size;
__le32 debug_token_config;
};
struct iwl_prph_scratch_rbd_cfg {
__le64 free_rbd_addr;
__le32 reserved;
} __attribute__((packed));
struct iwl_prph_scratch_uefi_cfg {
__le64 base_addr;
__le32 size;
__le32 reserved;
};
struct iwl_prph_scratch_step_cfg {
__le32 mbx_addr_0;
__le32 mbx_addr_1;
};
struct iwl_prph_scratch_ctrl_cfg {
struct iwl_prph_scratch_version version;
struct iwl_prph_scratch_control control;
struct iwl_prph_scratch_pnvm_cfg pnvm_cfg;
struct iwl_prph_scratch_hwm_cfg hwm_cfg;
struct iwl_prph_scratch_rbd_cfg rbd_cfg;
struct iwl_prph_scratch_uefi_cfg reduce_power_cfg;
struct iwl_prph_scratch_step_cfg step_cfg;
} __attribute__((packed));
struct iwl_prph_scratch {
struct iwl_prph_scratch_ctrl_cfg ctrl_cfg;
__le32 fseq_override;
__le32 step_analog_params;
__le32 reserved[8];
struct iwl_context_info_dram dram;
} __attribute__((packed));
struct iwl_cmd_header_wide {
u8 cmd;
u8 group_id;
__le16 sequence;
__le16 length;
u8 reserved;
u8 version;
};
struct iwl_rb_status {
__le16 closed_rb_num;
__le16 closed_fr_num;
__le16 finished_rb_num;
__le16 finished_fr_num;
__le32 __spare;
};
struct iwl_tfh_tb {
__le16 tb_len;
__le64 addr;
} __attribute__((packed));
struct iwl_tfh_tfd {
__le16 num_tbs;
struct iwl_tfh_tb tbs[25];
__le32 __pad;
};
struct iwl_fw_error_dump_rb {
__le32 index;
__le32 rxq;
__le32 reserved;
u8 data[0];
};
struct iwl_fw_error_dump_fw_mon {
__le32 fw_mon_wr_ptr;
__le32 fw_mon_base_ptr;
__le32 fw_mon_cycle_cnt;
__le32 fw_mon_base_high_ptr;
__le32 reserved[2];
u8 data[0];
};
struct iwl_fw_error_dump_txcmd {
__le32 cmdlen;
__le32 caplen;
u8 data[0];
};
enum txentry_desc_flags {
ENTRY_TXD_RTS_FRAME = 0,
ENTRY_TXD_CTS_FRAME = 1,
ENTRY_TXD_GENERATE_SEQ = 2,
ENTRY_TXD_FIRST_FRAGMENT = 3,
ENTRY_TXD_MORE_FRAG = 4,
ENTRY_TXD_REQ_TIMESTAMP = 5,
ENTRY_TXD_BURST = 6,
ENTRY_TXD_ACK = 7,
ENTRY_TXD_RETRY_MODE = 8,
ENTRY_TXD_ENCRYPT = 9,
ENTRY_TXD_ENCRYPT_PAIRWISE = 10,
ENTRY_TXD_ENCRYPT_IV = 11,
ENTRY_TXD_ENCRYPT_MMIC = 12,
ENTRY_TXD_HT_AMPDU = 13,
ENTRY_TXD_HT_BW_40 = 14,
ENTRY_TXD_HT_SHORT_GI = 15,
ENTRY_TXD_HT_MIMO_PS = 16,
};
enum rxdone_entry_desc_flags {
RXDONE_SIGNAL_PLCP = 1,
RXDONE_SIGNAL_BITRATE = 2,
RXDONE_SIGNAL_MCS = 4,
RXDONE_MY_BSS = 8,
RXDONE_CRYPTO_IV = 16,
RXDONE_CRYPTO_ICV = 32,
RXDONE_L2PAD = 64,
};
enum txdone_entry_desc_flags {
TXDONE_UNKNOWN = 0,
TXDONE_SUCCESS = 1,
TXDONE_FALLBACK = 2,
TXDONE_FAILURE = 3,
TXDONE_EXCESSIVE_RETRY = 4,
TXDONE_AMPDU = 5,
TXDONE_NO_ACK_REQ = 6,
};
enum queue_index {
Q_INDEX = 0,
Q_INDEX_DMA_DONE = 1,
Q_INDEX_DONE = 2,
Q_INDEX_MAX = 3,
};
enum queue_entry_flags {
ENTRY_BCN_ASSIGNED = 0,
ENTRY_BCN_ENABLED = 1,
ENTRY_OWNER_DEVICE_DATA = 2,
ENTRY_DATA_PENDING = 3,
ENTRY_DATA_IO_FAILED = 4,
ENTRY_DATA_STATUS_PENDING = 5,
};
enum rt2x00_state_flags {
DEVICE_STATE_PRESENT = 0,
DEVICE_STATE_REGISTERED_HW = 1,
DEVICE_STATE_INITIALIZED = 2,
DEVICE_STATE_STARTED = 3,
DEVICE_STATE_ENABLED_RADIO = 4,
DEVICE_STATE_SCANNING = 5,
DEVICE_STATE_FLUSHING = 6,
DEVICE_STATE_RESET = 7,
CONFIG_CHANNEL_HT40 = 8,
CONFIG_POWERSAVING = 9,
CONFIG_HT_DISABLED = 10,
CONFIG_MONITORING = 11,
TX_STATUS_READING = 12,
};
enum skb_frame_desc_flags {
SKBDESC_DMA_MAPPED_RX = 1,
SKBDESC_DMA_MAPPED_TX = 2,
SKBDESC_IV_STRIPPED = 4,
SKBDESC_NOT_MAC80211 = 8,
SKBDESC_DESC_IN_SKB = 16,
};
enum rt2x00_dump_type {
DUMP_FRAME_RXDONE = 1,
DUMP_FRAME_TX = 2,
DUMP_FRAME_TXDONE = 3,
DUMP_FRAME_BEACON = 4,
};
enum ieee80211_filter_flags {
FIF_ALLMULTI = 2,
FIF_FCSFAIL = 4,
FIF_PLCPFAIL = 8,
FIF_BCN_PRBRESP_PROMISC = 16,
FIF_CONTROL = 32,
FIF_OTHER_BSS = 64,
FIF_PSPOLL = 128,
FIF_PROBE_REQ = 256,
FIF_MCAST_ACTION = 512,
};
enum ieee80211_bss_change {
BSS_CHANGED_ASSOC = 1LL,
BSS_CHANGED_ERP_CTS_PROT = 2LL,
BSS_CHANGED_ERP_PREAMBLE = 4LL,
BSS_CHANGED_ERP_SLOT = 8LL,
BSS_CHANGED_HT = 16LL,
BSS_CHANGED_BASIC_RATES = 32LL,
BSS_CHANGED_BEACON_INT = 64LL,
BSS_CHANGED_BSSID = 128LL,
BSS_CHANGED_BEACON = 256LL,
BSS_CHANGED_BEACON_ENABLED = 512LL,
BSS_CHANGED_CQM = 1024LL,
BSS_CHANGED_IBSS = 2048LL,
BSS_CHANGED_ARP_FILTER = 4096LL,
BSS_CHANGED_QOS = 8192LL,
BSS_CHANGED_IDLE = 16384LL,
BSS_CHANGED_SSID = 32768LL,
BSS_CHANGED_AP_PROBE_RESP = 65536LL,
BSS_CHANGED_PS = 131072LL,
BSS_CHANGED_TXPOWER = 262144LL,
BSS_CHANGED_P2P_PS = 524288LL,
BSS_CHANGED_BEACON_INFO = 1048576LL,
BSS_CHANGED_BANDWIDTH = 2097152LL,
BSS_CHANGED_OCB = 4194304LL,
BSS_CHANGED_MU_GROUPS = 8388608LL,
BSS_CHANGED_KEEP_ALIVE = 16777216LL,
BSS_CHANGED_MCAST_RATE = 33554432LL,
BSS_CHANGED_FTM_RESPONDER = 67108864LL,
BSS_CHANGED_TWT = 134217728LL,
BSS_CHANGED_HE_OBSS_PD = 268435456LL,
BSS_CHANGED_HE_BSS_COLOR = 536870912LL,
BSS_CHANGED_FILS_DISCOVERY = 1073741824LL,
BSS_CHANGED_UNSOL_BCAST_PROBE_RESP = -2147483648LL,
BSS_CHANGED_MLD_VALID_LINKS = 8589934592LL,
BSS_CHANGED_MLD_TTLM = 17179869184LL,
};
enum rt2800_eeprom_word {
EEPROM_CHIP_ID = 0,
EEPROM_VERSION = 1,
EEPROM_MAC_ADDR_0 = 2,
EEPROM_MAC_ADDR_1 = 3,
EEPROM_MAC_ADDR_2 = 4,
EEPROM_NIC_CONF0 = 5,
EEPROM_NIC_CONF1 = 6,
EEPROM_FREQ = 7,
EEPROM_LED_AG_CONF = 8,
EEPROM_LED_ACT_CONF = 9,
EEPROM_LED_POLARITY = 10,
EEPROM_NIC_CONF2 = 11,
EEPROM_LNA = 12,
EEPROM_RSSI_BG = 13,
EEPROM_RSSI_BG2 = 14,
EEPROM_TXMIXER_GAIN_BG = 15,
EEPROM_RSSI_A = 16,
EEPROM_RSSI_A2 = 17,
EEPROM_TXMIXER_GAIN_A = 18,
EEPROM_EIRP_MAX_TX_POWER = 19,
EEPROM_TXPOWER_DELTA = 20,
EEPROM_TXPOWER_BG1 = 21,
EEPROM_TXPOWER_BG2 = 22,
EEPROM_TSSI_BOUND_BG1 = 23,
EEPROM_TSSI_BOUND_BG2 = 24,
EEPROM_TSSI_BOUND_BG3 = 25,
EEPROM_TSSI_BOUND_BG4 = 26,
EEPROM_TSSI_BOUND_BG5 = 27,
EEPROM_TXPOWER_A1 = 28,
EEPROM_TXPOWER_A2 = 29,
EEPROM_TXPOWER_INIT = 30,
EEPROM_TSSI_BOUND_A1 = 31,
EEPROM_TSSI_BOUND_A2 = 32,
EEPROM_TSSI_BOUND_A3 = 33,
EEPROM_TSSI_BOUND_A4 = 34,
EEPROM_TSSI_BOUND_A5 = 35,
EEPROM_TXPOWER_BYRATE = 36,
EEPROM_BBP_START = 37,
EEPROM_EXT_LNA2 = 38,
EEPROM_EXT_TXPOWER_BG3 = 39,
EEPROM_EXT_TXPOWER_A3 = 40,
EEPROM_WORD_COUNT = 41,
};
enum ieee80211_conf_changed {
IEEE80211_CONF_CHANGE_SMPS = 2,
IEEE80211_CONF_CHANGE_LISTEN_INTERVAL = 4,
IEEE80211_CONF_CHANGE_MONITOR = 8,
IEEE80211_CONF_CHANGE_PS = 16,
IEEE80211_CONF_CHANGE_POWER = 32,
IEEE80211_CONF_CHANGE_CHANNEL = 64,
IEEE80211_CONF_CHANGE_RETRY_LIMITS = 128,
IEEE80211_CONF_CHANGE_IDLE = 256,
};
enum survey_info_flags {
SURVEY_INFO_NOISE_DBM = 1,
SURVEY_INFO_IN_USE = 2,
SURVEY_INFO_TIME = 4,
SURVEY_INFO_TIME_BUSY = 8,
SURVEY_INFO_TIME_EXT_BUSY = 16,
SURVEY_INFO_TIME_RX = 32,
SURVEY_INFO_TIME_TX = 64,
SURVEY_INFO_TIME_SCAN = 128,
SURVEY_INFO_TIME_BSS_RX = 256,
};
enum mac80211_rate_control_flags {
IEEE80211_TX_RC_USE_RTS_CTS = 1,
IEEE80211_TX_RC_USE_CTS_PROTECT = 2,
IEEE80211_TX_RC_USE_SHORT_PREAMBLE = 4,
IEEE80211_TX_RC_MCS = 8,
IEEE80211_TX_RC_GREEN_FIELD = 16,
IEEE80211_TX_RC_40_MHZ_WIDTH = 32,
IEEE80211_TX_RC_DUP_DATA = 64,
IEEE80211_TX_RC_SHORT_GI = 128,
IEEE80211_TX_RC_VHT_MCS = 256,
IEEE80211_TX_RC_80_MHZ_WIDTH = 512,
IEEE80211_TX_RC_160_MHZ_WIDTH = 1024,
};
enum ieee80211_key_flags {
IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = 1,
IEEE80211_KEY_FLAG_GENERATE_IV = 2,
IEEE80211_KEY_FLAG_GENERATE_MMIC = 4,
IEEE80211_KEY_FLAG_PAIRWISE = 8,
IEEE80211_KEY_FLAG_SW_MGMT_TX = 16,
IEEE80211_KEY_FLAG_PUT_IV_SPACE = 32,
IEEE80211_KEY_FLAG_RX_MGMT = 64,
IEEE80211_KEY_FLAG_RESERVE_TAILROOM = 128,
IEEE80211_KEY_FLAG_PUT_MIC_SPACE = 256,
IEEE80211_KEY_FLAG_NO_AUTO_TX = 512,
IEEE80211_KEY_FLAG_GENERATE_MMIE = 1024,
IEEE80211_KEY_FLAG_SPP_AMSDU = 2048,
};
enum {
TX_PWR_CFG_0_IDX = 0,
TX_PWR_CFG_1_IDX = 1,
TX_PWR_CFG_2_IDX = 2,
TX_PWR_CFG_3_IDX = 3,
TX_PWR_CFG_4_IDX = 4,
TX_PWR_CFG_5_IDX = 5,
TX_PWR_CFG_6_IDX = 6,
TX_PWR_CFG_7_IDX = 7,
TX_PWR_CFG_8_IDX = 8,
TX_PWR_CFG_9_IDX = 9,
TX_PWR_CFG_0_EXT_IDX = 10,
TX_PWR_CFG_1_EXT_IDX = 11,
TX_PWR_CFG_2_EXT_IDX = 12,
TX_PWR_CFG_3_EXT_IDX = 13,
TX_PWR_CFG_4_EXT_IDX = 14,
TX_PWR_CFG_IDX_COUNT = 15,
};
enum led_mode {
LED_MODE_DEFAULT = 0,
LED_MODE_TXRX_ACTIVITY = 1,
LED_MODE_SIGNAL_STRENGTH = 2,
LED_MODE_ASUS = 3,
LED_MODE_ALPHA = 4,
};
enum wiphy_flags {
WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = 1,
WIPHY_FLAG_SUPPORTS_MLO = 2,
WIPHY_FLAG_SPLIT_SCAN_6GHZ = 4,
WIPHY_FLAG_NETNS_OK = 8,
WIPHY_FLAG_PS_ON_BY_DEFAULT = 16,
WIPHY_FLAG_4ADDR_AP = 32,
WIPHY_FLAG_4ADDR_STATION = 64,
WIPHY_FLAG_CONTROL_PORT_PROTOCOL = 128,
WIPHY_FLAG_IBSS_RSN = 256,
WIPHY_FLAG_DISABLE_WEXT = 512,
WIPHY_FLAG_MESH_AUTH = 1024,
WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048,
WIPHY_FLAG_SUPPORTS_NSTR_NONPRIMARY = 4096,
WIPHY_FLAG_SUPPORTS_FW_ROAM = 8192,
WIPHY_FLAG_AP_UAPSD = 16384,
WIPHY_FLAG_SUPPORTS_TDLS = 32768,
WIPHY_FLAG_TDLS_EXTERNAL_SETUP = 65536,
WIPHY_FLAG_HAVE_AP_SME = 131072,
WIPHY_FLAG_REPORTS_OBSS = 262144,
WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD = 524288,
WIPHY_FLAG_OFFCHAN_TX = 1048576,
WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL = 2097152,
WIPHY_FLAG_SUPPORTS_5_10_MHZ = 4194304,
WIPHY_FLAG_HAS_CHANNEL_SWITCH = 8388608,
WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER = 16777216,
WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432,
};
struct rt2x00_sta {
int wcid;
};
struct skb_frame_desc {
u8 flags;
u8 desc_len;
u8 tx_rate_idx;
u8 tx_rate_flags;
void *desc;
__le32 iv[2];
dma_addr_t skb_dma;
struct ieee80211_sta *sta;
};
struct rt2x00_field32 {
u32 bit_offset;
u32 bit_mask;
};
struct rt2800_ops {
u32 (*register_read)(struct rt2x00_dev *, const unsigned int);
u32 (*register_read_lock)(struct rt2x00_dev *, const unsigned int);
void (*register_write)(struct rt2x00_dev *, const unsigned int, u32);
void (*register_write_lock)(struct rt2x00_dev *, const unsigned int, u32);
void (*register_multiread)(struct rt2x00_dev *, const unsigned int, void *, const u32);
void (*register_multiwrite)(struct rt2x00_dev *, const unsigned int, const void *, const u32);
int (*regbusy_read)(struct rt2x00_dev *, const unsigned int, const struct rt2x00_field32, u32 *);
int (*read_eeprom)(struct rt2x00_dev *);
bool (*hwcrypt_disabled)(struct rt2x00_dev *);
int (*drv_write_firmware)(struct rt2x00_dev *, const u8 *, const size_t);
int (*drv_init_registers)(struct rt2x00_dev *);
__le32 * (*drv_get_txwi)(struct queue_entry *);
unsigned int (*drv_get_dma_done)(struct data_queue *);
};
struct rt2x00_field16 {
u16 bit_offset;
u16 bit_mask;
};
struct txdone_entry_desc {
unsigned long flags;
int retry;
};
struct mac_wcid_entry {
u8 mac[6];
u8 reserved[2];
};
struct rt2800_drv_data {
u8 calibration_bw20;
u8 calibration_bw40;
s8 rx_calibration_bw20;
s8 rx_calibration_bw40;
s8 tx_calibration_bw20;
s8 tx_calibration_bw40;
u8 bbp25;
u8 bbp26;
u8 txmixer_gain_24g;
u8 txmixer_gain_5g;
u8 max_psdu;
unsigned int tbtt_tick;
unsigned int ampdu_factor_cnt[4];
unsigned long sta_ids[3];
struct ieee80211_sta *wcid_to_sta[191];
};
struct rt2x00_field8 {
u8 bit_offset;
u8 bit_mask;
};
struct hw_key_entry {
u8 key[16];
u8 tx_mic[8];
u8 rx_mic[8];
};
struct mac_iveiv_entry {
u8 iv[8];
};
struct rf_reg_pair {
u8 bank;
u8 reg;
u8 value;
};
enum qdisc_state_t {
__QDISC_STATE_SCHED = 0,
__QDISC_STATE_DEACTIVATED = 1,
__QDISC_STATE_MISSED = 2,
__QDISC_STATE_DRAINING = 3,
};
enum netdev_queue_state_t {
__QUEUE_STATE_DRV_XOFF = 0,
__QUEUE_STATE_STACK_XOFF = 1,
__QUEUE_STATE_FROZEN = 2,
};
enum {
TCA_UNSPEC = 0,
TCA_KIND = 1,
TCA_OPTIONS = 2,
TCA_STATS = 3,
TCA_XSTATS = 4,
TCA_RATE = 5,
TCA_FCNT = 6,
TCA_STATS2 = 7,
TCA_STAB = 8,
TCA_PAD = 9,
TCA_DUMP_INVISIBLE = 10,
TCA_CHAIN = 11,
TCA_HW_OFFLOAD = 12,
TCA_INGRESS_BLOCK = 13,
TCA_EGRESS_BLOCK = 14,
TCA_DUMP_FLAGS = 15,
TCA_EXT_WARN_MSG = 16,
__TCA_MAX = 17,
};
enum qdisc_state2_t {
__QDISC_STATE2_RUNNING = 0,
};
struct skb_array {
struct ptr_ring ring;
};
struct pfifo_fast_priv {
struct skb_array q[3];
};
struct tc_prio_qopt {
int bands;
__u8 priomap[16];
};
struct psched_ratecfg {
u64 rate_bytes_ps;
u32 mult;
u16 overhead;
u16 mpu;
u8 linklayer;
u8 shift;
};
struct tc_ratespec {
unsigned char cell_log;
__u8 linklayer;
unsigned short overhead;
short cell_align;
unsigned short mpu;
__u32 rate;
};
struct psched_pktrate {
u64 rate_pkts_ps;
u32 mult;
u8 shift;
};
struct mini_Qdisc_pair {
struct mini_Qdisc miniq1;
struct mini_Qdisc miniq2;
struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq;
};
struct nft_object_ops;
struct nft_object_type {
const struct nft_object_ops * (*select_ops)(const struct nft_ctx *, const struct nlattr * const *);
const struct nft_object_ops *ops;
struct list_head list;
u32 type;
unsigned int maxattr;
u8 family;
struct module *owner;
const struct nla_policy *policy;
};
struct nft_object;
struct nft_object_ops {
void (*eval)(struct nft_object *, struct nft_regs *, const struct nft_pktinfo *);
unsigned int size;
int (*init)(const struct nft_ctx *, const struct nlattr * const *, struct nft_object *);
void (*destroy)(const struct nft_ctx *, struct nft_object *);
int (*dump)(struct sk_buff *, struct nft_object *, bool);
void (*update)(struct nft_object *, struct nft_object *);
const struct nft_object_type *type;
};
struct nft_object_hash_key {
const char *name;
const struct nft_table *table;
};
struct nft_object {
struct list_head list;
struct rhlist_head rhlhead;
struct nft_object_hash_key key;
u32 genmask: 2;
u32 use;
u64 handle;
u16 udlen;
u8 *udata;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
const struct nft_object_ops *ops;
unsigned char data[0];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum nft_trace_types {
NFT_TRACETYPE_UNSPEC = 0,
NFT_TRACETYPE_POLICY = 1,
NFT_TRACETYPE_RETURN = 2,
NFT_TRACETYPE_RULE = 3,
__NFT_TRACETYPE_MAX = 4,
};
enum nft_chain_types {
NFT_CHAIN_T_DEFAULT = 0,
NFT_CHAIN_T_ROUTE = 1,
NFT_CHAIN_T_NAT = 2,
NFT_CHAIN_T_MAX = 3,
};
enum nft_verdicts {
NFT_CONTINUE = -1,
NFT_BREAK = -2,
NFT_JUMP = -3,
NFT_GOTO = -4,
NFT_RETURN = -5,
};
enum nft_payload_bases {
NFT_PAYLOAD_LL_HEADER = 0,
NFT_PAYLOAD_NETWORK_HEADER = 1,
NFT_PAYLOAD_TRANSPORT_HEADER = 2,
NFT_PAYLOAD_INNER_HEADER = 3,
NFT_PAYLOAD_TUN_HEADER = 4,
};
enum {
NFT_PKTINFO_L4PROTO = 1,
NFT_PKTINFO_INNER = 2,
NFT_PKTINFO_INNER_FULL = 4,
};
struct nft_rule_dp {
u64 is_last: 1;
u64 dlen: 12;
u64 handle: 42;
long: 0;
unsigned char data[0];
};
struct nft_stats {
u64 bytes;
u64 pkts;
struct u64_stats_sync syncp;
};
struct nft_chain_type;
struct nft_base_chain {
struct nf_hook_ops ops;
struct list_head hook_list;
const struct nft_chain_type *type;
u8 policy;
u8 flags;
struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats;
struct nft_chain chain;
struct flow_block flow_block;
};
struct nft_chain_type {
const char *name;
enum nft_chain_types type;
int family;
struct module *owner;
unsigned int hook_mask;
nf_hookfn *hooks[6];
int (*ops_register)(struct net *, const struct nf_hook_ops *);
void (*ops_unregister)(struct net *, const struct nf_hook_ops *);
};
struct nft_traceinfo {
bool trace;
bool nf_trace;
bool packet_dumped;
enum nft_trace_types type: 8;
u32 skbid;
const struct nft_base_chain *basechain;
};
struct nft_cmp_fast_expr {
u32 data;
u32 mask;
u8 sreg;
u8 len;
bool inv;
};
struct nft_cmp16_fast_expr {
struct nft_data data;
struct nft_data mask;
u8 sreg;
u8 len;
bool inv;
};
struct nft_bitwise_fast_expr {
u32 mask;
u32 xor;
u8 sreg;
u8 dreg;
};
struct nft_payload {
enum nft_payload_bases base: 8;
u8 offset;
u8 len;
u8 dreg;
};
struct nft_jumpstack {
const struct nft_rule_dp *rule;
};
struct ip_sf_list {
struct ip_sf_list *sf_next;
unsigned long sf_count[2];
__be32 sf_inaddr;
unsigned char sf_gsresp;
unsigned char sf_oldin;
unsigned char sf_crcount;
};
struct igmphdr {
__u8 type;
__u8 code;
__sum16 csum;
__be32 group;
};
struct igmp_mc_iter_state {
struct seq_net_private p;
struct net_device *dev;
struct in_device *in_dev;
};
struct igmp_mcf_iter_state {
struct seq_net_private p;
struct net_device *dev;
struct in_device *idev;
struct ip_mc_list *im;
};
typedef __kernel_clock_t clock_t;
struct ip_mreq_source {
__be32 imr_multiaddr;
__be32 imr_interface;
__be32 imr_sourceaddr;
};
struct ip_msfilter {
__be32 imsf_multiaddr;
__be32 imsf_interface;
__u32 imsf_fmode;
__u32 imsf_numsrc;
union {
__be32 imsf_slist[1];
struct {
struct {} __empty_imsf_slist_flex;
__be32 imsf_slist_flex[0];
};
};
};
struct offload_callbacks {
struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t);
struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *);
int (*gro_complete)(struct sk_buff *, int);
};
struct net_offload {
struct offload_callbacks callbacks;
unsigned int flags;
u32 secret;
};
struct ieee80211_addba_ext_ie {
u8 data;
};
struct ieee80211_tdls_lnkie;
struct ieee80211_ch_switch_timing;
struct ieee80211_tim_ie;
struct ieee80211_ht_operation;
struct ieee80211_vht_operation;
struct ieee80211_he_spr;
struct ieee80211_mu_edca_param_set;
struct ieee80211_rann_ie;
struct ieee80211_channel_sw_ie;
struct ieee80211_wide_bw_chansw_ie;
struct ieee80211_timeout_interval_ie;
struct ieee80211_sec_chan_offs_ie;
struct ieee80211_mesh_chansw_params_ie;
struct ieee80211_bss_max_idle_period_ie;
struct ieee80211_multiple_bssid_configuration;
struct ieee80211_bssid_index;
struct ieee80211_s1g_oper_ie;
struct ieee80211_s1g_bcn_compat_ie;
struct ieee80211_aid_response_ie;
struct ieee80211_multi_link_elem;
struct ieee80211_bandwidth_indication;
struct ieee80211_ttlm_elem;
struct ieee80211_mle_per_sta_profile;
struct ieee802_11_elems {
const u8 *ie_start;
size_t total_len;
u32 crc;
const struct ieee80211_tdls_lnkie *lnk_id;
const struct ieee80211_ch_switch_timing *ch_sw_timing;
const u8 *ext_capab;
const u8 *ssid;
const u8 *supp_rates;
const u8 *ds_params;
const struct ieee80211_tim_ie *tim;
const u8 *rsn;
const u8 *rsnx;
const u8 *erp_info;
const u8 *ext_supp_rates;
const u8 *wmm_info;
const u8 *wmm_param;
const struct ieee80211_ht_cap *ht_cap_elem;
const struct ieee80211_ht_operation *ht_operation;
const struct ieee80211_vht_cap *vht_cap_elem;
const struct ieee80211_vht_operation *vht_operation;
const struct ieee80211_meshconf_ie *mesh_config;
const u8 *he_cap;
const struct ieee80211_he_operation *he_operation;
const struct ieee80211_he_spr *he_spr;
const struct ieee80211_mu_edca_param_set *mu_edca_param_set;
const struct ieee80211_he_6ghz_capa *he_6ghz_capa;
const struct ieee80211_tx_pwr_env *tx_pwr_env[8];
const u8 *uora_element;
const u8 *mesh_id;
const u8 *peering;
const __le16 *awake_window;
const u8 *preq;
const u8 *prep;
const u8 *perr;
const struct ieee80211_rann_ie *rann;
const struct ieee80211_channel_sw_ie *ch_switch_ie;
const struct ieee80211_ext_chansw_ie *ext_chansw_ie;
const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie;
const u8 *max_channel_switch_time;
const u8 *country_elem;
const u8 *pwr_constr_elem;
const u8 *cisco_dtpc_elem;
const struct ieee80211_timeout_interval_ie *timeout_int;
const u8 *opmode_notif;
const struct ieee80211_sec_chan_offs_ie *sec_chan_offs;
struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie;
const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie;
const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie;
const struct ieee80211_bssid_index *bssid_index;
u8 max_bssid_indicator;
u8 dtim_count;
u8 dtim_period;
const struct ieee80211_addba_ext_ie *addba_ext_ie;
const struct ieee80211_s1g_cap *s1g_capab;
const struct ieee80211_s1g_oper_ie *s1g_oper;
const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat;
const struct ieee80211_aid_response_ie *aid_resp;
const struct ieee80211_eht_cap_elem *eht_cap;
const struct ieee80211_eht_operation *eht_operation;
const struct ieee80211_multi_link_elem *ml_basic;
const struct ieee80211_multi_link_elem *ml_reconf;
const struct ieee80211_bandwidth_indication *bandwidth_indication;
const struct ieee80211_ttlm_elem *ttlm[2];
u8 ext_capab_len;
u8 ssid_len;
u8 supp_rates_len;
u8 tim_len;
u8 rsn_len;
u8 rsnx_len;
u8 ext_supp_rates_len;
u8 wmm_info_len;
u8 wmm_param_len;
u8 he_cap_len;
u8 mesh_id_len;
u8 peering_len;
u8 preq_len;
u8 prep_len;
u8 perr_len;
u8 country_elem_len;
u8 bssid_index_len;
u8 tx_pwr_env_len[8];
u8 tx_pwr_env_num;
u8 eht_cap_len;
size_t ml_basic_len;
size_t ml_reconf_len;
u8 ttlm_num;
struct ieee80211_mle_per_sta_profile *prof;
size_t sta_prof_len;
u8 parse_error;
};
struct ieee80211_tdls_lnkie {
u8 ie_type;
u8 ie_len;
u8 bssid[6];
u8 init_sta[6];
u8 resp_sta[6];
};
struct ieee80211_ch_switch_timing {
__le16 switch_time;
__le16 switch_timeout;
};
struct ieee80211_tim_ie {
u8 dtim_count;
u8 dtim_period;
u8 bitmap_ctrl;
union {
u8 required_octet;
struct {
struct {} __empty_virtual_map;
u8 virtual_map[0];
};
};
};
struct ieee80211_ht_operation {
u8 primary_chan;
u8 ht_param;
__le16 operation_mode;
__le16 stbc_param;
u8 basic_set[16];
};
struct ieee80211_vht_operation {
u8 chan_width;
u8 center_freq_seg0_idx;
u8 center_freq_seg1_idx;
__le16 basic_mcs_set;
} __attribute__((packed));
struct ieee80211_he_spr {
u8 he_sr_control;
u8 optional[0];
};
struct ieee80211_mu_edca_param_set {
u8 mu_qos_info;
struct ieee80211_he_mu_edca_param_ac_rec ac_be;
struct ieee80211_he_mu_edca_param_ac_rec ac_bk;
struct ieee80211_he_mu_edca_param_ac_rec ac_vi;
struct ieee80211_he_mu_edca_param_ac_rec ac_vo;
};
struct ieee80211_rann_ie {
u8 rann_flags;
u8 rann_hopcount;
u8 rann_ttl;
u8 rann_addr[6];
__le32 rann_seq;
__le32 rann_interval;
__le32 rann_metric;
} __attribute__((packed));
struct ieee80211_channel_sw_ie {
u8 mode;
u8 new_ch_num;
u8 count;
};
struct ieee80211_wide_bw_chansw_ie {
u8 new_channel_width;
u8 new_center_freq_seg0;
u8 new_center_freq_seg1;
};
struct ieee80211_timeout_interval_ie {
u8 type;
__le32 value;
} __attribute__((packed));
struct ieee80211_sec_chan_offs_ie {
u8 sec_chan_offs;
};
struct ieee80211_mesh_chansw_params_ie {
u8 mesh_ttl;
u8 mesh_flags;
__le16 mesh_reason;
__le16 mesh_pre_value;
};
struct ieee80211_bss_max_idle_period_ie {
__le16 max_idle_period;
u8 idle_options;
} __attribute__((packed));
struct ieee80211_multiple_bssid_configuration {
u8 bssid_count;
u8 profile_periodicity;
};
struct ieee80211_bssid_index {
u8 bssid_index;
u8 dtim_period;
u8 dtim_count;
};
struct ieee80211_s1g_oper_ie {
u8 ch_width;
u8 oper_class;
u8 primary_ch;
u8 oper_ch;
__le16 basic_mcs_nss;
};
struct ieee80211_s1g_bcn_compat_ie {
__le16 compat_info;
__le16 beacon_int;
__le32 tsf_completion;
};
struct ieee80211_aid_response_ie {
__le16 aid;
u8 switch_count;
__le16 response_int;
} __attribute__((packed));
struct ieee80211_multi_link_elem {
__le16 control;
u8 variable[0];
};
struct ieee80211_eht_operation_info {
u8 control;
u8 ccfs0;
u8 ccfs1;
u8 optional[0];
};
struct ieee80211_bandwidth_indication {
u8 params;
struct ieee80211_eht_operation_info info;
};
struct ieee80211_ttlm_elem {
u8 control;
u8 optional[0];
};
struct ieee80211_mle_per_sta_profile {
__le16 control;
u8 sta_info_len;
u8 variable[0];
} __attribute__((packed));
struct ieee80211_elems_parse_params {
enum ieee80211_conn_mode mode;
const u8 *start;
size_t len;
bool action;
u64 filter;
u32 crc;
struct cfg80211_bss *bss;
int link_id;
bool from_ap;
};
typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int);
typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *);
enum sig_handler {
HANDLER_CURRENT = 0,
HANDLER_SIG_DFL = 1,
HANDLER_EXIT = 2,
};
enum {
TRACE_SIGNAL_DELIVERED = 0,
TRACE_SIGNAL_IGNORED = 1,
TRACE_SIGNAL_ALREADY_PENDING = 2,
TRACE_SIGNAL_OVERFLOW_FAIL = 3,
TRACE_SIGNAL_LOSE_INFO = 4,
};
enum siginfo_layout {
SIL_KILL = 0,
SIL_TIMER = 1,
SIL_POLL = 2,
SIL_FAULT = 3,
SIL_FAULT_TRAPNO = 4,
SIL_FAULT_MCEERR = 5,
SIL_FAULT_BNDERR = 6,
SIL_FAULT_PKUERR = 7,
SIL_FAULT_PERF_EVENT = 8,
SIL_CHLD = 9,
SIL_RT = 10,
SIL_SYS = 11,
};
enum rlimit_type {
UCOUNT_RLIMIT_NPROC = 0,
UCOUNT_RLIMIT_MSGQUEUE = 1,
UCOUNT_RLIMIT_SIGPENDING = 2,
UCOUNT_RLIMIT_MEMLOCK = 3,
UCOUNT_RLIMIT_COUNTS = 4,
};
struct trace_event_raw_signal_generate {
struct trace_entry ent;
int sig;
int errno;
int code;
char comm[16];
pid_t pid;
int group;
int result;
char __data[0];
};
struct trace_event_raw_signal_deliver {
struct trace_entry ent;
int sig;
int errno;
int code;
unsigned long sa_handler;
unsigned long sa_flags;
char __data[0];
};
struct multiprocess_signals {
sigset_t signal;
struct hlist_node node;
};
typedef struct siginfo siginfo_t;
struct sigaltstack {
void __attribute__((btf_type_tag("user"))) *ss_sp;
int ss_flags;
__kernel_size_t ss_size;
};
typedef struct sigaltstack stack_t;
typedef unsigned long old_sigset_t;
struct ksignal {
struct k_sigaction ka;
kernel_siginfo_t info;
int sig;
};
struct trace_event_data_offsets_signal_generate {};
struct trace_event_data_offsets_signal_deliver {};
enum {
IRQ_DOMAIN_FLAG_HIERARCHY = 1,
IRQ_DOMAIN_NAME_ALLOCATED = 2,
IRQ_DOMAIN_FLAG_IPI_PER_CPU = 4,
IRQ_DOMAIN_FLAG_IPI_SINGLE = 8,
IRQ_DOMAIN_FLAG_MSI = 16,
IRQ_DOMAIN_FLAG_ISOLATED_MSI = 32,
IRQ_DOMAIN_FLAG_NO_MAP = 64,
IRQ_DOMAIN_FLAG_MSI_PARENT = 256,
IRQ_DOMAIN_FLAG_MSI_DEVICE = 512,
IRQ_DOMAIN_FLAG_NONCORE = 65536,
};
struct irqchip_fwid {
struct fwnode_handle fwnode;
unsigned int type;
char *name;
phys_addr_t *pa;
};
struct of_phandle_args {
struct device_node *np;
int args_count;
uint32_t args[16];
};
enum {
BPF_REG_0 = 0,
BPF_REG_1 = 1,
BPF_REG_2 = 2,
BPF_REG_3 = 3,
BPF_REG_4 = 4,
BPF_REG_5 = 5,
BPF_REG_6 = 6,
BPF_REG_7 = 7,
BPF_REG_8 = 8,
BPF_REG_9 = 9,
BPF_REG_10 = 10,
__MAX_BPF_REG = 11,
};
enum {
BTF_KIND_UNKN = 0,
BTF_KIND_INT = 1,
BTF_KIND_PTR = 2,
BTF_KIND_ARRAY = 3,
BTF_KIND_STRUCT = 4,
BTF_KIND_UNION = 5,
BTF_KIND_ENUM = 6,
BTF_KIND_FWD = 7,
BTF_KIND_TYPEDEF = 8,
BTF_KIND_VOLATILE = 9,
BTF_KIND_CONST = 10,
BTF_KIND_RESTRICT = 11,
BTF_KIND_FUNC = 12,
BTF_KIND_FUNC_PROTO = 13,
BTF_KIND_VAR = 14,
BTF_KIND_DATASEC = 15,
BTF_KIND_FLOAT = 16,
BTF_KIND_DECL_TAG = 17,
BTF_KIND_TYPE_TAG = 18,
BTF_KIND_ENUM64 = 19,
NR_BTF_KINDS = 20,
BTF_KIND_MAX = 19,
};
enum bpf_jit_poke_reason {
BPF_POKE_REASON_TAIL_CALL = 0,
};
struct bpf_array_aux;
struct bpf_array {
struct bpf_map map;
u32 elem_size;
u32 index_mask;
struct bpf_array_aux *aux;
union {
struct {
struct {} __empty_value;
char value[0];
};
struct {
struct {} __empty_ptrs;
void *ptrs[0];
};
struct {
struct {} __empty_pptrs;
void __attribute__((btf_type_tag("percpu"))) *pptrs[0];
};
};
};
struct bpf_array_aux {
struct list_head poke_progs;
struct bpf_map *map;
struct mutex poke_mutex;
struct work_struct work;
};
struct prog_poke_elem {
struct list_head list;
struct bpf_prog_aux *aux;
};
struct bpf_event_entry {
struct perf_event *event;
struct file *perf_file;
struct file *map_file;
struct callback_head rcu;
};
struct bpf_iter__bpf_map_elem {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_map *map;
};
union {
void *key;
};
union {
void *value;
};
};
struct bpf_iter_seq_array_map_info {
struct bpf_map *map;
void *percpu_value_buf;
u32 index;
};
typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int);
typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int);
typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long);
struct vfree_deferred {
struct llist_head list;
struct work_struct wq;
};
struct vmap_block_queue {
spinlock_t lock;
struct list_head free;
struct xarray vmap_blocks;
};
struct vmap_pool {
struct list_head head;
unsigned long len;
};
struct rb_list {
struct rb_root root;
struct list_head head;
spinlock_t lock;
};
struct vmap_node {
struct vmap_pool pool[256];
spinlock_t pool_lock;
bool skip_populate;
struct rb_list busy;
struct rb_list lazy;
struct list_head purge_list;
struct work_struct purge_work;
unsigned long nr_purged;
};
struct rb_augment_callbacks {
void (*propagate)(struct rb_node *, struct rb_node *);
void (*copy)(struct rb_node *, struct rb_node *);
void (*rotate)(struct rb_node *, struct rb_node *);
};
struct vmap_area {
unsigned long va_start;
unsigned long va_end;
struct rb_node rb_node;
struct list_head list;
union {
unsigned long subtree_max_size;
struct vm_struct *vm;
};
unsigned long flags;
};
enum page_memcg_data_flags {
MEMCG_DATA_OBJCGS = 1,
MEMCG_DATA_KMEM = 2,
__NR_MEMCG_DATA_FLAGS = 4,
};
enum fit_type {
NOTHING_FIT = 0,
FL_FIT_TYPE = 1,
LE_FIT_TYPE = 2,
RE_FIT_TYPE = 3,
NE_FIT_TYPE = 4,
};
typedef unsigned int kasan_vmalloc_flags_t;
struct trace_event_raw_alloc_vmap_area {
struct trace_entry ent;
unsigned long addr;
unsigned long size;
unsigned long align;
unsigned long vstart;
unsigned long vend;
int failed;
char __data[0];
};
struct trace_event_raw_purge_vmap_area_lazy {
struct trace_entry ent;
unsigned long start;
unsigned long end;
unsigned int npurged;
char __data[0];
};
struct trace_event_raw_free_vmap_area_noflush {
struct trace_entry ent;
unsigned long va_start;
unsigned long nr_lazy;
unsigned long nr_lazy_max;
char __data[0];
};
struct vmap_block {
spinlock_t lock;
struct vmap_area *va;
unsigned long free;
unsigned long dirty;
unsigned long used_map[4];
unsigned long dirty_min;
unsigned long dirty_max;
struct list_head free_list;
struct callback_head callback_head;
struct list_head purge;
};
typedef unsigned int pgtbl_mod_mask;
struct trace_event_data_offsets_alloc_vmap_area {};
struct trace_event_data_offsets_purge_vmap_area_lazy {};
struct trace_event_data_offsets_free_vmap_area_noflush {};
struct inotify_group_private_data {
spinlock_t idr_lock;
struct idr idr;
struct ucounts *ucounts;
};
struct fsnotify_ops;
struct fsnotify_event;
struct fsnotify_group {
const struct fsnotify_ops *ops;
refcount_t refcnt;
spinlock_t notification_lock;
struct list_head notification_list;
wait_queue_head_t notification_waitq;
unsigned int q_len;
unsigned int max_events;
unsigned int priority;
bool shutdown;
int flags;
unsigned int owner_flags;
struct mutex mark_mutex;
atomic_t user_waits;
struct list_head marks_list;
struct fasync_struct *fsn_fa;
struct fsnotify_event *overflow_event;
struct mem_cgroup *memcg;
union {
void *private;
struct inotify_group_private_data inotify_data;
};
};
struct fsnotify_iter_info;
struct fsnotify_mark;
struct fsnotify_ops {
int (*handle_event)(struct fsnotify_group *, u32, const void *, int, struct inode *, const struct qstr *, u32, struct fsnotify_iter_info *);
int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32);
void (*free_group_priv)(struct fsnotify_group *);
void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *);
void (*free_event)(struct fsnotify_group *, struct fsnotify_event *);
void (*free_mark)(struct fsnotify_mark *);
};
struct fsnotify_iter_info {
struct fsnotify_mark *marks[5];
struct fsnotify_group *current_group;
unsigned int report_mask;
int srcu_idx;
};
struct fsnotify_mark {
__u32 mask;
refcount_t refcnt;
struct fsnotify_group *group;
struct list_head g_list;
spinlock_t lock;
struct hlist_node obj_list;
struct fsnotify_mark_connector *connector;
__u32 ignore_mask;
unsigned int flags;
};
struct fsnotify_event {
struct list_head list;
};
enum fsnotify_obj_type {
FSNOTIFY_OBJ_TYPE_ANY = -1,
FSNOTIFY_OBJ_TYPE_INODE = 0,
FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1,
FSNOTIFY_OBJ_TYPE_SB = 2,
FSNOTIFY_OBJ_TYPE_COUNT = 3,
FSNOTIFY_OBJ_TYPE_DETACHED = 3,
};
struct dnotify_struct;
struct dnotify_mark {
struct fsnotify_mark fsn_mark;
struct dnotify_struct *dn;
};
struct dnotify_struct {
struct dnotify_struct *dn_next;
__u32 dn_mask;
int dn_fd;
struct file *dn_filp;
fl_owner_t dn_owner;
};
enum {
PROC_ENTRY_PERMANENT = 1,
};
struct kernel_cpustat {
u64 cpustat[10];
};
struct journal_block_tag3_s {
__be32 t_blocknr;
__be32 t_flags;
__be32 t_blocknr_high;
__be32 t_checksum;
};
typedef struct journal_block_tag3_s journal_block_tag3_t;
struct commit_header {
__be32 h_magic;
__be32 h_blocktype;
__be32 h_sequence;
unsigned char h_chksum_type;
unsigned char h_chksum_size;
unsigned char h_padding[2];
__be32 h_chksum[8];
__be64 h_commit_sec;
__be32 h_commit_nsec;
};
struct jbd2_journal_block_tail {
__be32 t_checksum;
};
struct jbd2_journal_revoke_header_s {
journal_header_t r_header;
__be32 r_count;
};
typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t;
struct journal_block_tag_s {
__be32 t_blocknr;
__be16 t_checksum;
__be16 t_flags;
__be32 t_blocknr_high;
};
typedef struct journal_block_tag_s journal_block_tag_t;
struct recovery_info {
tid_t start_transaction;
tid_t end_transaction;
unsigned long head_block;
int nr_replays;
int nr_revokes;
int nr_revoke_hits;
};
enum {
AUTOFS_IOC_READY_CMD = 96,
AUTOFS_IOC_FAIL_CMD = 97,
AUTOFS_IOC_CATATONIC_CMD = 98,
AUTOFS_IOC_PROTOVER_CMD = 99,
AUTOFS_IOC_SETTIMEOUT_CMD = 100,
AUTOFS_IOC_EXPIRE_CMD = 101,
};
enum key_lookup_flag {
KEY_LOOKUP_CREATE = 1,
KEY_LOOKUP_PARTIAL = 2,
KEY_LOOKUP_ALL = 3,
};
enum key_need_perm {
KEY_NEED_UNSPECIFIED = 0,
KEY_NEED_VIEW = 1,
KEY_NEED_READ = 2,
KEY_NEED_WRITE = 3,
KEY_NEED_SEARCH = 4,
KEY_NEED_LINK = 5,
KEY_NEED_SETATTR = 6,
KEY_NEED_UNLINK = 7,
KEY_SYSADMIN_OVERRIDE = 8,
KEY_AUTHTOKEN_OVERRIDE = 9,
KEY_DEFER_PERM_CHECK = 10,
};
enum key_notification_subtype {
NOTIFY_KEY_INSTANTIATED = 0,
NOTIFY_KEY_UPDATED = 1,
NOTIFY_KEY_LINKED = 2,
NOTIFY_KEY_UNLINKED = 3,
NOTIFY_KEY_CLEARED = 4,
NOTIFY_KEY_REVOKED = 5,
NOTIFY_KEY_INVALIDATED = 6,
NOTIFY_KEY_SETATTR = 7,
};
struct keyctl_dh_params {
union {
__s32 private;
__s32 priv;
};
__s32 prime;
__s32 base;
};
struct keyctl_kdf_params {
char __attribute__((btf_type_tag("user"))) *hashname;
char __attribute__((btf_type_tag("user"))) *otherinfo;
__u32 otherinfolen;
__u32 __spare[8];
};
struct keyctl_pkey_query {
__u32 supported_ops;
__u32 key_size;
__u16 max_data_size;
__u16 max_sig_size;
__u16 max_enc_size;
__u16 max_dec_size;
__u32 __spare[10];
};
struct keyctl_pkey_params {
__s32 key_id;
__u32 in_len;
union {
__u32 out_len;
__u32 in2_len;
};
__u32 __spare[7];
};
struct __key_reference_with_attributes;
typedef struct __key_reference_with_attributes *key_ref_t;
struct request_key_auth {
struct callback_head rcu;
struct key *target_key;
struct key *dest_keyring;
const struct cred *cred;
void *callout_info;
size_t callout_len;
pid_t pid;
char op[8];
};
struct comp_alg_common {
struct crypto_alg base;
};
struct crypto_scomp;
struct scomp_alg {
void * (*alloc_ctx)(struct crypto_scomp *);
void (*free_ctx)(struct crypto_scomp *, void *);
int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *);
union {
struct {
struct crypto_alg base;
};
struct comp_alg_common calg;
};
};
struct crypto_scomp {
struct crypto_tfm base;
};
struct lzo_ctx {
void *lzo_comp_mem;
};
enum blkg_rwstat_type {
BLKG_RWSTAT_READ = 0,
BLKG_RWSTAT_WRITE = 1,
BLKG_RWSTAT_SYNC = 2,
BLKG_RWSTAT_ASYNC = 3,
BLKG_RWSTAT_DISCARD = 4,
BLKG_RWSTAT_NR = 5,
BLKG_RWSTAT_TOTAL = 5,
};
struct blkg_rwstat {
struct percpu_counter cpu_cnt[5];
atomic64_t aux_cnt[5];
};
struct blkg_rwstat_sample {
u64 cnt[5];
};
typedef unsigned long mpi_limb_t;
typedef mpi_limb_t *mpi_ptr_t;
typedef int mpi_size_t;
struct gcry_mpi;
typedef struct gcry_mpi *MPI;
struct gcry_mpi {
int alloced;
int nlimbs;
int nbits;
int sign;
unsigned int flags;
mpi_limb_t *d;
};
typedef mpi_limb_t UWtype;
typedef unsigned int UHWtype;
typedef unsigned short ush;
typedef enum {
need_more = 0,
block_done = 1,
finish_started = 2,
finish_done = 3,
} block_state;
struct deflate_state;
typedef struct deflate_state deflate_state;
typedef block_state (*compress_func)(deflate_state *, int);
struct config_s {
ush good_length;
ush max_lazy;
ush nice_length;
ush max_chain;
compress_func func;
};
typedef struct config_s config;
struct z_stream_s;
typedef struct z_stream_s z_stream;
typedef z_stream *z_streamp;
typedef unsigned char Byte;
typedef unsigned long ulg;
typedef unsigned int uInt;
typedef ush Pos;
typedef unsigned int IPos;
struct ct_data_s {
union {
ush freq;
ush code;
} fc;
union {
ush dad;
ush len;
} dl;
};
typedef struct ct_data_s ct_data;
struct static_tree_desc_s;
typedef struct static_tree_desc_s static_tree_desc;
struct tree_desc_s {
ct_data *dyn_tree;
int max_code;
static_tree_desc *stat_desc;
};
typedef unsigned char uch;
struct deflate_state {
z_streamp strm;
int status;
Byte *pending_buf;
ulg pending_buf_size;
Byte *pending_out;
int pending;
int noheader;
Byte data_type;
Byte method;
int last_flush;
uInt w_size;
uInt w_bits;
uInt w_mask;
Byte *window;
ulg window_size;
Pos *prev;
Pos *head;
uInt ins_h;
uInt hash_size;
uInt hash_bits;
uInt hash_mask;
uInt hash_shift;
long block_start;
uInt match_length;
IPos prev_match;
int match_available;
uInt strstart;
uInt match_start;
uInt lookahead;
uInt prev_length;
uInt max_chain_length;
uInt max_lazy_match;
int level;
int strategy;
uInt good_match;
int nice_match;
struct ct_data_s dyn_ltree[573];
struct ct_data_s dyn_dtree[61];
struct ct_data_s bl_tree[39];
struct tree_desc_s l_desc;
struct tree_desc_s d_desc;
struct tree_desc_s bl_desc;
ush bl_count[16];
int heap[573];
int heap_len;
int heap_max;
uch depth[573];
uch *l_buf;
uInt lit_bufsize;
uInt last_lit;
ush *d_buf;
ulg opt_len;
ulg static_len;
ulg compressed_len;
uInt matches;
int last_eob_len;
ush bi_buf;
int bi_valid;
};
typedef unsigned long uLong;
struct internal_state;
struct z_stream_s {
const Byte *next_in;
uLong avail_in;
uLong total_in;
Byte *next_out;
uLong avail_out;
uLong total_out;
char *msg;
struct internal_state *state;
void *workspace;
int data_type;
uLong adler;
uLong reserved;
};
struct static_tree_desc_s {
const ct_data *static_tree;
const int *extra_bits;
int extra_base;
int elems;
int max_length;
};
struct deflate_workspace {
deflate_state deflate_memory;
Byte *window_memory;
Pos *prev_memory;
Pos *head_memory;
char *overlay_memory;
};
typedef struct deflate_workspace deflate_workspace;
struct word_at_a_time {
const unsigned long one_bits;
const unsigned long high_bits;
};
struct pci_cap_saved_data {
u16 cap_nr;
bool cap_extended;
unsigned int size;
u32 data[0];
};
struct pci_cap_saved_state {
struct hlist_node next;
struct pci_cap_saved_data cap;
};
typedef u32 (*acpi_sci_handler)(void *);
struct acpi_sci_handler_info {
struct acpi_sci_handler_info *next;
acpi_sci_handler address;
void *context;
};
struct acpi_memory_attribute {
u8 write_protect;
u8 caching;
u8 range_type;
u8 translation;
};
struct acpi_io_attribute {
u8 range_type;
u8 translation;
u8 translation_type;
u8 reserved1;
};
union acpi_resource_attribute {
struct acpi_memory_attribute mem;
struct acpi_io_attribute io;
u8 type_specific;
};
struct acpi_address16_attribute {
u16 granularity;
u16 minimum;
u16 maximum;
u16 translation_offset;
u16 address_length;
};
struct acpi_resource_source {
u8 index;
u16 string_length;
char *string_ptr;
} __attribute__((packed));
struct acpi_resource_address16 {
u8 resource_type;
u8 producer_consumer;
u8 decode;
u8 min_address_fixed;
u8 max_address_fixed;
union acpi_resource_attribute info;
struct acpi_address16_attribute address;
struct acpi_resource_source resource_source;
} __attribute__((packed));
struct acpi_address32_attribute {
u32 granularity;
u32 minimum;
u32 maximum;
u32 translation_offset;
u32 address_length;
};
struct acpi_resource_address32 {
u8 resource_type;
u8 producer_consumer;
u8 decode;
u8 min_address_fixed;
u8 max_address_fixed;
union acpi_resource_attribute info;
struct acpi_address32_attribute address;
struct acpi_resource_source resource_source;
} __attribute__((packed));
struct acpi_resource_irq {
u8 descriptor_length;
u8 triggering;
u8 polarity;
u8 shareable;
u8 wake_capable;
u8 interrupt_count;
union {
u8 interrupt;
struct {
struct {} __Empty_interrupts;
u8 interrupts[0];
};
};
};
struct acpi_resource_dma {
u8 type;
u8 bus_master;
u8 transfer;
u8 channel_count;
union {
u8 channel;
struct {
struct {} __Empty_channels;
u8 channels[0];
};
};
};
struct acpi_resource_start_dependent {
u8 descriptor_length;
u8 compatibility_priority;
u8 performance_robustness;
};
struct acpi_resource_io {
u8 io_decode;
u8 alignment;
u8 address_length;
u16 minimum;
u16 maximum;
} __attribute__((packed));
struct acpi_resource_fixed_io {
u16 address;
u8 address_length;
} __attribute__((packed));
struct acpi_resource_fixed_dma {
u16 request_lines;
u16 channels;
u8 width;
} __attribute__((packed));
struct acpi_resource_vendor {
u16 byte_length;
u8 byte_data[0];
};
struct acpi_resource_vendor_typed {
u16 byte_length;
u8 uuid_subtype;
u8 uuid[16];
u8 byte_data[0];
} __attribute__((packed));
struct acpi_resource_end_tag {
u8 checksum;
};
struct acpi_resource_memory24 {
u8 write_protect;
u16 minimum;
u16 maximum;
u16 alignment;
u16 address_length;
} __attribute__((packed));
struct acpi_resource_memory32 {
u8 write_protect;
u32 minimum;
u32 maximum;
u32 alignment;
u32 address_length;
} __attribute__((packed));
struct acpi_resource_fixed_memory32 {
u8 write_protect;
u32 address;
u32 address_length;
} __attribute__((packed));
struct acpi_address64_attribute {
u64 granularity;
u64 minimum;
u64 maximum;
u64 translation_offset;
u64 address_length;
};
struct acpi_resource_address64 {
u8 resource_type;
u8 producer_consumer;
u8 decode;
u8 min_address_fixed;
u8 max_address_fixed;
union acpi_resource_attribute info;
struct acpi_address64_attribute address;
struct acpi_resource_source resource_source;
} __attribute__((packed));
struct acpi_resource_extended_address64 {
u8 resource_type;
u8 producer_consumer;
u8 decode;
u8 min_address_fixed;
u8 max_address_fixed;
union acpi_resource_attribute info;
u8 revision_ID;
struct acpi_address64_attribute address;
u64 type_specific;
} __attribute__((packed));
struct acpi_resource_extended_irq {
u8 producer_consumer;
u8 triggering;
u8 polarity;
u8 shareable;
u8 wake_capable;
u8 interrupt_count;
struct acpi_resource_source resource_source;
union {
u32 interrupt;
struct {
struct {} __Empty_interrupts;
u32 interrupts[0];
};
};
} __attribute__((packed));
struct acpi_resource_generic_register {
u8 space_id;
u8 bit_width;
u8 bit_offset;
u8 access_size;
u64 address;
} __attribute__((packed));
struct acpi_resource_gpio {
u8 revision_id;
u8 connection_type;
u8 producer_consumer;
u8 pin_config;
u8 shareable;
u8 wake_capable;
u8 io_restriction;
u8 triggering;
u8 polarity;
u16 drive_strength;
u16 debounce_timeout;
u16 pin_table_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u16 *pin_table;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_i2c_serialbus {
u8 revision_id;
u8 type;
u8 producer_consumer;
u8 slave_mode;
u8 connection_sharing;
u8 type_revision_id;
u16 type_data_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u8 *vendor_data;
u8 access_mode;
u16 slave_address;
u32 connection_speed;
} __attribute__((packed));
struct acpi_resource_spi_serialbus {
u8 revision_id;
u8 type;
u8 producer_consumer;
u8 slave_mode;
u8 connection_sharing;
u8 type_revision_id;
u16 type_data_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u8 *vendor_data;
u8 wire_mode;
u8 device_polarity;
u8 data_bit_length;
u8 clock_phase;
u8 clock_polarity;
u16 device_selection;
u32 connection_speed;
} __attribute__((packed));
struct acpi_resource_uart_serialbus {
u8 revision_id;
u8 type;
u8 producer_consumer;
u8 slave_mode;
u8 connection_sharing;
u8 type_revision_id;
u16 type_data_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u8 *vendor_data;
u8 endian;
u8 data_bits;
u8 stop_bits;
u8 flow_control;
u8 parity;
u8 lines_enabled;
u16 rx_fifo_size;
u16 tx_fifo_size;
u32 default_baud_rate;
} __attribute__((packed));
struct acpi_resource_csi2_serialbus {
u8 revision_id;
u8 type;
u8 producer_consumer;
u8 slave_mode;
u8 connection_sharing;
u8 type_revision_id;
u16 type_data_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u8 *vendor_data;
u8 local_port_instance;
u8 phy_type;
} __attribute__((packed));
struct acpi_resource_common_serialbus {
u8 revision_id;
u8 type;
u8 producer_consumer;
u8 slave_mode;
u8 connection_sharing;
u8 type_revision_id;
u16 type_data_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_pin_function {
u8 revision_id;
u8 pin_config;
u8 shareable;
u16 function_number;
u16 pin_table_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u16 *pin_table;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_pin_config {
u8 revision_id;
u8 producer_consumer;
u8 shareable;
u8 pin_config_type;
u32 pin_config_value;
u16 pin_table_length;
u16 vendor_length;
struct acpi_resource_source resource_source;
u16 *pin_table;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_label {
u16 string_length;
char *string_ptr;
} __attribute__((packed));
struct acpi_resource_pin_group {
u8 revision_id;
u8 producer_consumer;
u16 pin_table_length;
u16 vendor_length;
u16 *pin_table;
struct acpi_resource_label resource_label;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_pin_group_function {
u8 revision_id;
u8 producer_consumer;
u8 shareable;
u16 function_number;
u16 vendor_length;
struct acpi_resource_source resource_source;
struct acpi_resource_label resource_source_label;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_pin_group_config {
u8 revision_id;
u8 producer_consumer;
u8 shareable;
u8 pin_config_type;
u32 pin_config_value;
u16 vendor_length;
struct acpi_resource_source resource_source;
struct acpi_resource_label resource_source_label;
u8 *vendor_data;
} __attribute__((packed));
struct acpi_resource_clock_input {
u8 revision_id;
u8 mode;
u8 scale;
u16 frequency_divisor;
u32 frequency_numerator;
struct acpi_resource_source resource_source;
} __attribute__((packed));
struct acpi_resource_address {
u8 resource_type;
u8 producer_consumer;
u8 decode;
u8 min_address_fixed;
u8 max_address_fixed;
union acpi_resource_attribute info;
};
union acpi_resource_data {
struct acpi_resource_irq irq;
struct acpi_resource_dma dma;
struct acpi_resource_start_dependent start_dpf;
struct acpi_resource_io io;
struct acpi_resource_fixed_io fixed_io;
struct acpi_resource_fixed_dma fixed_dma;
struct acpi_resource_vendor vendor;
struct acpi_resource_vendor_typed vendor_typed;
struct acpi_resource_end_tag end_tag;
struct acpi_resource_memory24 memory24;
struct acpi_resource_memory32 memory32;
struct acpi_resource_fixed_memory32 fixed_memory32;
struct acpi_resource_address16 address16;
struct acpi_resource_address32 address32;
struct acpi_resource_address64 address64;
struct acpi_resource_extended_address64 ext_address64;
struct acpi_resource_extended_irq extended_irq;
struct acpi_resource_generic_register generic_reg;
struct acpi_resource_gpio gpio;
struct acpi_resource_i2c_serialbus i2c_serial_bus;
struct acpi_resource_spi_serialbus spi_serial_bus;
struct acpi_resource_uart_serialbus uart_serial_bus;
struct acpi_resource_csi2_serialbus csi2_serial_bus;
struct acpi_resource_common_serialbus common_serial_bus;
struct acpi_resource_pin_function pin_function;
struct acpi_resource_pin_config pin_config;
struct acpi_resource_pin_group pin_group;
struct acpi_resource_pin_group_function pin_group_function;
struct acpi_resource_pin_group_config pin_group_config;
struct acpi_resource_clock_input clock_input;
struct acpi_resource_address address;
};
struct acpi_resource {
u32 type;
u32 length;
union acpi_resource_data data;
};
typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *);
struct acpi_vendor_uuid;
struct acpi_vendor_walk_info {
struct acpi_vendor_uuid *uuid;
struct acpi_buffer *buffer;
acpi_status status;
};
struct acpi_vendor_uuid {
u8 subtype;
u8 data[16];
};
struct ww_class {
atomic_long_t stamp;
struct lock_class_key acquire_key;
struct lock_class_key mutex_key;
const char *acquire_name;
const char *mutex_name;
unsigned int is_wait_die;
};
enum dma_resv_usage {
DMA_RESV_USAGE_KERNEL = 0,
DMA_RESV_USAGE_WRITE = 1,
DMA_RESV_USAGE_READ = 2,
DMA_RESV_USAGE_BOOKKEEP = 3,
};
enum dma_fence_flag_bits {
DMA_FENCE_FLAG_SIGNALED_BIT = 0,
DMA_FENCE_FLAG_TIMESTAMP_BIT = 1,
DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2,
DMA_FENCE_FLAG_USER_BITS = 3,
};
struct dma_fence;
struct dma_resv_list {
struct callback_head rcu;
u32 num_fences;
u32 max_fences;
struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0];
};
struct dma_fence_ops;
struct dma_fence {
spinlock_t *lock;
const struct dma_fence_ops *ops;
union {
struct list_head cb_list;
ktime_t timestamp;
struct callback_head rcu;
};
u64 context;
u64 seqno;
unsigned long flags;
struct kref refcount;
int error;
};
struct dma_fence_ops {
bool use_64bit_seqno;
const char * (*get_driver_name)(struct dma_fence *);
const char * (*get_timeline_name)(struct dma_fence *);
bool (*enable_signaling)(struct dma_fence *);
bool (*signaled)(struct dma_fence *);
long (*wait)(struct dma_fence *, bool, long);
void (*release)(struct dma_fence *);
void (*fence_value_str)(struct dma_fence *, char *, int);
void (*timeline_value_str)(struct dma_fence *, char *, int);
void (*set_deadline)(struct dma_fence *, ktime_t);
};
struct ww_acquire_ctx;
struct ww_mutex {
struct mutex base;
struct ww_acquire_ctx *ctx;
struct ww_class *ww_class;
};
struct ww_acquire_ctx {
struct task_struct *task;
unsigned long stamp;
unsigned int acquired;
unsigned short wounded;
unsigned short is_wait_die;
unsigned int done_acquire;
struct ww_class *ww_class;
void *contending_lock;
struct lockdep_map dep_map;
unsigned int deadlock_inject_interval;
unsigned int deadlock_inject_countdown;
};
struct dma_resv {
struct ww_mutex lock;
struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences;
};
struct dma_resv_iter {
struct dma_resv *obj;
enum dma_resv_usage usage;
struct dma_fence *fence;
enum dma_resv_usage fence_usage;
unsigned int index;
struct dma_resv_list *fences;
unsigned int num_fences;
bool is_restarted;
};
struct dma_fence_array {
struct dma_fence base;
spinlock_t lock;
unsigned int num_fences;
atomic_t num_pending;
struct dma_fence **fences;
struct irq_work work;
};
enum e1000_mac_type___2 {
e1000_82571 = 0,
e1000_82572 = 1,
e1000_82573 = 2,
e1000_82574 = 3,
e1000_82583 = 4,
e1000_80003es2lan = 5,
e1000_ich8lan = 6,
e1000_ich9lan = 7,
e1000_ich10lan = 8,
e1000_pchlan = 9,
e1000_pch2lan = 10,
e1000_pch_lpt = 11,
e1000_pch_spt = 12,
e1000_pch_cnp = 13,
e1000_pch_tgp = 14,
e1000_pch_adp = 15,
e1000_pch_mtp = 16,
e1000_pch_lnp = 17,
e1000_pch_ptp = 18,
e1000_pch_nvp = 19,
};
enum e1000_phy_type___2 {
e1000_phy_unknown___2 = 0,
e1000_phy_none___2 = 1,
e1000_phy_m88___2 = 2,
e1000_phy_igp___2 = 3,
e1000_phy_igp_2___2 = 4,
e1000_phy_gg82563___2 = 5,
e1000_phy_igp_3___2 = 6,
e1000_phy_ife___2 = 7,
e1000_phy_bm = 8,
e1000_phy_82578 = 9,
e1000_phy_82577 = 10,
e1000_phy_82579 = 11,
e1000_phy_i217 = 12,
};
enum e1000_serdes_link_state {
e1000_serdes_link_down = 0,
e1000_serdes_link_autoneg_progress = 1,
e1000_serdes_link_autoneg_complete = 2,
e1000_serdes_link_forced_up = 3,
};
enum e1000_nvm_type___2 {
e1000_nvm_unknown___2 = 0,
e1000_nvm_none___2 = 1,
e1000_nvm_eeprom_spi___2 = 2,
e1000_nvm_flash_hw___2 = 3,
e1000_nvm_flash_sw___2 = 4,
};
enum e1000_ulp_state {
e1000_ulp_state_unknown = 0,
e1000_ulp_state_off = 1,
e1000_ulp_state_on = 2,
};
struct e1000_dev_spec_82571 {
bool laa_is_present;
u32 smb_counter;
};
struct e1000_dev_spec_80003es2lan {
bool mdic_wa_enable;
};
struct e1000_shadow_ram {
u16 value;
bool modified;
};
struct e1000_dev_spec_ich8lan {
bool kmrn_lock_loss_workaround_enabled;
struct e1000_shadow_ram shadow_ram[2048];
bool nvm_k1_enabled;
bool eee_disable;
u16 eee_lp_ability;
enum e1000_ulp_state ulp_state;
};
struct e1000_hw___2;
struct e1000_mac_operations___2 {
s32 (*id_led_init)(struct e1000_hw___2 *);
s32 (*blink_led)(struct e1000_hw___2 *);
bool (*check_mng_mode)(struct e1000_hw___2 *);
s32 (*check_for_link)(struct e1000_hw___2 *);
s32 (*cleanup_led)(struct e1000_hw___2 *);
void (*clear_hw_cntrs)(struct e1000_hw___2 *);
void (*clear_vfta)(struct e1000_hw___2 *);
s32 (*get_bus_info)(struct e1000_hw___2 *);
void (*set_lan_id)(struct e1000_hw___2 *);
s32 (*get_link_up_info)(struct e1000_hw___2 *, u16 *, u16 *);
s32 (*led_on)(struct e1000_hw___2 *);
s32 (*led_off)(struct e1000_hw___2 *);
void (*update_mc_addr_list)(struct e1000_hw___2 *, u8 *, u32);
s32 (*reset_hw)(struct e1000_hw___2 *);
s32 (*init_hw)(struct e1000_hw___2 *);
s32 (*setup_link)(struct e1000_hw___2 *);
s32 (*setup_physical_interface)(struct e1000_hw___2 *);
s32 (*setup_led)(struct e1000_hw___2 *);
void (*write_vfta)(struct e1000_hw___2 *, u32, u32);
void (*config_collision_dist)(struct e1000_hw___2 *);
int (*rar_set)(struct e1000_hw___2 *, u8 *, u32);
s32 (*read_mac_addr)(struct e1000_hw___2 *);
u32 (*rar_get_count)(struct e1000_hw___2 *);
};
struct e1000_mac_info___2 {
struct e1000_mac_operations___2 ops;
u8 addr[6];
u8 perm_addr[6];
enum e1000_mac_type___2 type;
u32 collision_delta;
u32 ledctl_default;
u32 ledctl_mode1;
u32 ledctl_mode2;
u32 mc_filter_type;
u32 tx_packet_delta;
u32 txcw;
u16 current_ifs_val;
u16 ifs_max_val;
u16 ifs_min_val;
u16 ifs_ratio;
u16 ifs_step_size;
u16 mta_reg_count;
u32 mta_shadow[128];
u16 rar_entry_count;
u8 forced_speed_duplex;
bool adaptive_ifs;
bool has_fwsm;
bool arc_subsystem_valid;
bool autoneg;
bool autoneg_failed;
bool get_link_status;
bool in_ifs_mode;
bool serdes_has_link;
bool tx_pkt_filtering;
enum e1000_serdes_link_state serdes_link_state;
};
struct e1000_fc_info___2 {
u32 high_water;
u32 low_water;
u16 pause_time;
u16 refresh_time;
bool send_xon;
bool strict_ieee;
enum e1000_fc_mode current_mode;
enum e1000_fc_mode requested_mode;
};
struct e1000_phy_operations___2 {
s32 (*acquire)(struct e1000_hw___2 *);
s32 (*cfg_on_link_up)(struct e1000_hw___2 *);
s32 (*check_polarity)(struct e1000_hw___2 *);
s32 (*check_reset_block)(struct e1000_hw___2 *);
s32 (*commit)(struct e1000_hw___2 *);
s32 (*force_speed_duplex)(struct e1000_hw___2 *);
s32 (*get_cfg_done)(struct e1000_hw___2 *);
s32 (*get_cable_length)(struct e1000_hw___2 *);
s32 (*get_info)(struct e1000_hw___2 *);
s32 (*set_page)(struct e1000_hw___2 *, u16);
s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *);
s32 (*read_reg_locked)(struct e1000_hw___2 *, u32, u16 *);
s32 (*read_reg_page)(struct e1000_hw___2 *, u32, u16 *);
void (*release)(struct e1000_hw___2 *);
s32 (*reset)(struct e1000_hw___2 *);
s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool);
s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool);
s32 (*write_reg)(struct e1000_hw___2 *, u32, u16);
s32 (*write_reg_locked)(struct e1000_hw___2 *, u32, u16);
s32 (*write_reg_page)(struct e1000_hw___2 *, u32, u16);
void (*power_up)(struct e1000_hw___2 *);
void (*power_down)(struct e1000_hw___2 *);
};
struct e1000_phy_info___2 {
struct e1000_phy_operations___2 ops;
enum e1000_phy_type___2 type;
enum e1000_1000t_rx_status local_rx;
enum e1000_1000t_rx_status remote_rx;
enum e1000_ms_type ms_type;
enum e1000_ms_type original_ms_type;
enum e1000_rev_polarity cable_polarity;
enum e1000_smart_speed smart_speed;
u32 addr;
u32 id;
u32 reset_delay_us;
u32 revision;
enum e1000_media_type media_type;
u16 autoneg_advertised;
u16 autoneg_mask;
u16 cable_length;
u16 max_cable_length;
u16 min_cable_length;
u8 mdix;
bool disable_polarity_correction;
bool is_mdix;
bool polarity_correction;
bool speed_downgraded;
bool autoneg_wait_to_complete;
};
struct e1000_nvm_operations___2 {
s32 (*acquire)(struct e1000_hw___2 *);
s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *);
void (*release)(struct e1000_hw___2 *);
void (*reload)(struct e1000_hw___2 *);
s32 (*update)(struct e1000_hw___2 *);
s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *);
s32 (*validate)(struct e1000_hw___2 *);
s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *);
};
struct e1000_nvm_info___2 {
struct e1000_nvm_operations___2 ops;
enum e1000_nvm_type___2 type;
enum e1000_nvm_override override;
u32 flash_bank_size;
u32 flash_base_addr;
u16 word_size;
u16 delay_usec;
u16 address_bits;
u16 opcode_bits;
u16 page_size;
};
struct e1000_bus_info___2 {
enum e1000_bus_width width;
u16 func;
};
struct e1000_adapter;
struct e1000_hw___2 {
struct e1000_adapter *adapter;
void *hw_addr;
void *flash_address;
struct e1000_mac_info___2 mac;
struct e1000_fc_info___2 fc;
struct e1000_phy_info___2 phy;
struct e1000_nvm_info___2 nvm;
struct e1000_bus_info___2 bus;
struct e1000_host_mng_dhcp_cookie mng_cookie;
union {
struct e1000_dev_spec_82571 e82571;
struct e1000_dev_spec_80003es2lan e80003es2lan;
struct e1000_dev_spec_ich8lan ich8lan;
} dev_spec;
};
struct e1000_hw_stats___2 {
u64 crcerrs;
u64 algnerrc;
u64 symerrs;
u64 rxerrc;
u64 mpc;
u64 scc;
u64 ecol;
u64 mcc;
u64 latecol;
u64 colc;
u64 dc;
u64 tncrs;
u64 sec;
u64 cexterr;
u64 rlec;
u64 xonrxc;
u64 xontxc;
u64 xoffrxc;
u64 xofftxc;
u64 fcruc;
u64 prc64;
u64 prc127;
u64 prc255;
u64 prc511;
u64 prc1023;
u64 prc1522;
u64 gprc;
u64 bprc;
u64 mprc;
u64 gptc;
u64 gorc;
u64 gotc;
u64 rnbc;
u64 ruc;
u64 rfc;
u64 roc;
u64 rjc;
u64 mgprc;
u64 mgpdc;
u64 mgptc;
u64 tor;
u64 tot;
u64 tpr;
u64 tpt;
u64 ptc64;
u64 ptc127;
u64 ptc255;
u64 ptc511;
u64 ptc1023;
u64 ptc1522;
u64 mptc;
u64 bptc;
u64 tsctc;
u64 tsctfc;
u64 iac;
u64 icrxptc;
u64 icrxatc;
u64 ictxptc;
u64 ictxatc;
u64 ictxqec;
u64 ictxqmtc;
u64 icrxdmtc;
u64 icrxoc;
};
struct e1000_phy_stats {
u32 idle_errors;
u32 receive_errors;
};
struct e1000_phy_regs {
u16 bmcr;
u16 bmsr;
u16 advertise;
u16 lpa;
u16 expansion;
u16 ctrl1000;
u16 stat1000;
u16 estatus;
};
struct e1000_buffer;
struct e1000_ring {
struct e1000_adapter *adapter;
void *desc;
dma_addr_t dma;
unsigned int size;
unsigned int count;
u16 next_to_use;
u16 next_to_clean;
void *head;
void *tail;
struct e1000_buffer *buffer_info;
char name[21];
u32 ims_val;
u32 itr_val;
void *itr_register;
int set_itr;
struct sk_buff *rx_skb_top;
};
struct pm_qos_request {
struct plist_node node;
struct pm_qos_constraints *qos;
};
struct e1000_info___2;
struct e1000_adapter {
struct timer_list watchdog_timer;
struct timer_list phy_info_timer;
struct timer_list blink_timer;
struct work_struct reset_task;
struct work_struct watchdog_task;
const struct e1000_info___2 *ei;
unsigned long active_vlans[64];
u32 bd_number;
u32 rx_buffer_len;
u16 mng_vlan_id;
u16 link_speed;
u16 link_duplex;
u16 eeprom_vers;
unsigned long state;
u32 itr;
u32 itr_setting;
u16 tx_itr;
u16 rx_itr;
long: 64;
long: 64;
struct e1000_ring *tx_ring;
u32 tx_fifo_limit;
struct napi_struct napi;
unsigned int uncorr_errors;
unsigned int corr_errors;
unsigned int restart_queue;
u32 txd_cmd;
bool detect_tx_hung;
bool tx_hang_recheck;
u8 tx_timeout_factor;
u32 tx_int_delay;
u32 tx_abs_int_delay;
unsigned int total_tx_bytes;
unsigned int total_tx_packets;
unsigned int total_rx_bytes;
unsigned int total_rx_packets;
u64 tpt_old;
u64 colc_old;
u32 gotc;
u64 gotc_old;
u32 tx_timeout_count;
u32 tx_fifo_head;
u32 tx_head_addr;
u32 tx_fifo_size;
u32 tx_dma_failed;
u32 tx_hwtstamp_timeouts;
u32 tx_hwtstamp_skipped;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
bool (*clean_rx)(struct e1000_ring *, int *, int);
void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t);
struct e1000_ring *rx_ring;
u32 rx_int_delay;
u32 rx_abs_int_delay;
u64 hw_csum_err;
u64 hw_csum_good;
u64 rx_hdr_split;
u32 gorc;
u64 gorc_old;
u32 alloc_rx_buff_failed;
u32 rx_dma_failed;
u32 rx_hwtstamp_cleared;
unsigned int rx_ps_pages;
u16 rx_ps_bsize0;
u32 max_frame_size;
u32 min_frame_size;
struct net_device *netdev;
struct pci_dev *pdev;
struct e1000_hw___2 hw;
spinlock_t stats64_lock;
struct e1000_hw_stats___2 stats;
struct e1000_phy_info___2 phy_info;
struct e1000_phy_stats phy_stats;
struct e1000_phy_regs phy_regs;
struct e1000_ring test_tx_ring;
struct e1000_ring test_rx_ring;
u32 test_icr;
u32 msg_enable;
unsigned int num_vectors;
struct msix_entry *msix_entries;
int int_mode;
u32 eiac_mask;
u32 eeprom_wol;
u32 wol;
u32 pba;
u32 max_hw_frame_size;
bool fc_autoneg;
unsigned int flags;
unsigned int flags2;
struct work_struct downshift_task;
struct work_struct update_phy_task;
struct work_struct print_hang_task;
int phy_hang_count;
u16 tx_ring_count;
u16 rx_ring_count;
struct hwtstamp_config hwtstamp_config;
struct delayed_work systim_overflow_work;
struct sk_buff *tx_hwtstamp_skb;
unsigned long tx_hwtstamp_start;
struct work_struct tx_hwtstamp_work;
spinlock_t systim_lock;
struct cyclecounter cc;
struct timecounter tc;
struct ptp_clock *ptp_clock;
struct ptp_clock_info ptp_clock_info;
struct pm_qos_request pm_qos_req;
long ptp_delta;
u16 eee_advert;
};
struct e1000_info___2 {
enum e1000_mac_type___2 mac;
unsigned int flags;
unsigned int flags2;
u32 pba;
u32 max_hw_frame_size;
s32 (*get_variants)(struct e1000_adapter *);
const struct e1000_mac_operations___2 *mac_ops;
const struct e1000_phy_operations___2 *phy_ops;
const struct e1000_nvm_operations___2 *nvm_ops;
};
struct e1000_ps_page;
struct e1000_buffer {
dma_addr_t dma;
struct sk_buff *skb;
union {
struct {
unsigned long time_stamp;
u16 length;
u16 next_to_watch;
unsigned int segs;
unsigned int bytecount;
u16 mapped_as_page;
};
struct {
struct e1000_ps_page *ps_pages;
struct page *page;
};
};
};
struct e1000_ps_page {
struct page *page;
u64 dma;
};
enum ieee80211_interface_iteration_flags {
IEEE80211_IFACE_ITER_NORMAL = 0,
IEEE80211_IFACE_ITER_RESUME_ALL = 1,
IEEE80211_IFACE_ITER_ACTIVE = 2,
IEEE80211_IFACE_SKIP_SDATA_NOT_IN_DRIVER = 4,
};
enum iwl_time_event_type {
TE_BSS_STA_AGGRESSIVE_ASSOC = 0,
TE_BSS_STA_ASSOC = 1,
TE_BSS_EAP_DHCP_PROT = 2,
TE_BSS_QUIET_PERIOD = 3,
TE_P2P_DEVICE_DISCOVERABLE = 4,
TE_P2P_DEVICE_LISTEN = 5,
TE_P2P_DEVICE_ACTION_SCAN = 6,
TE_P2P_DEVICE_FULL_SCAN = 7,
TE_P2P_CLIENT_AGGRESSIVE_ASSOC = 8,
TE_P2P_CLIENT_ASSOC = 9,
TE_P2P_CLIENT_QUIET_PERIOD = 10,
TE_P2P_GO_ASSOC_PROT = 11,
TE_P2P_GO_REPETITIVET_NOA = 12,
TE_P2P_GO_CT_WINDOW = 13,
TE_WIDI_TX_SYNC = 14,
TE_CHANNEL_SWITCH_PERIOD = 15,
TE_MAX = 16,
};
enum iwl_mvm_dqa_txq {
IWL_MVM_DQA_CMD_QUEUE = 0,
IWL_MVM_DQA_AUX_QUEUE = 1,
IWL_MVM_DQA_P2P_DEVICE_QUEUE = 2,
IWL_MVM_DQA_INJECT_MONITOR_QUEUE = 2,
IWL_MVM_DQA_GCAST_QUEUE = 3,
IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4,
IWL_MVM_DQA_MIN_MGMT_QUEUE = 5,
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
IWL_MVM_DQA_AP_PROBE_RESP_QUEUE = 9,
IWL_MVM_DQA_MIN_DATA_QUEUE = 10,
IWL_MVM_DQA_MAX_DATA_QUEUE = 30,
};
enum iwl_mvm_smps_type_request {
IWL_MVM_SMPS_REQ_BT_COEX = 0,
IWL_MVM_SMPS_REQ_TT = 1,
IWL_MVM_SMPS_REQ_PROT = 2,
IWL_MVM_SMPS_REQ_FW = 3,
NUM_IWL_MVM_SMPS_REQ = 4,
};
enum ieee80211_ac_numbers {
IEEE80211_AC_VO = 0,
IEEE80211_AC_VI = 1,
IEEE80211_AC_BE = 2,
IEEE80211_AC_BK = 3,
};
enum iwl_mac_qos_flags {
MAC_QOS_FLG_UPDATE_EDCA = 1,
MAC_QOS_FLG_TGN = 2,
MAC_QOS_FLG_TXOP_TYPE = 16,
};
enum iwl_mac_types {
FW_MAC_TYPE_FIRST = 1,
FW_MAC_TYPE_AUX = 1,
FW_MAC_TYPE_LISTENER = 2,
FW_MAC_TYPE_PIBSS = 3,
FW_MAC_TYPE_IBSS = 4,
FW_MAC_TYPE_BSS_STA = 5,
FW_MAC_TYPE_P2P_DEVICE = 6,
FW_MAC_TYPE_P2P_STA = 7,
FW_MAC_TYPE_GO = 8,
FW_MAC_TYPE_TEST = 9,
FW_MAC_TYPE_MAX = 9,
};
enum iwl_mac_data_policy {
TWT_SUPPORTED = 1,
MORE_DATA_ACK_SUPPORTED = 2,
FLEXIBLE_TWT_SUPPORTED = 4,
PROTECTED_TWT_SUPPORTED = 8,
BROADCAST_TWT_SUPPORTED = 16,
COEX_HIGH_PRIORITY_ENABLE = 32,
};
enum {
IWL_RATE_1M_INDEX = 0,
IWL_FIRST_CCK_RATE = 0,
IWL_RATE_2M_INDEX = 1,
IWL_RATE_5M_INDEX = 2,
IWL_RATE_11M_INDEX = 3,
IWL_LAST_CCK_RATE = 3,
IWL_RATE_6M_INDEX = 4,
IWL_FIRST_OFDM_RATE = 4,
IWL_RATE_MCS_0_INDEX = 4,
IWL_FIRST_HT_RATE = 4,
IWL_FIRST_VHT_RATE = 4,
IWL_RATE_9M_INDEX = 5,
IWL_RATE_12M_INDEX = 6,
IWL_RATE_MCS_1_INDEX = 6,
IWL_RATE_18M_INDEX = 7,
IWL_RATE_MCS_2_INDEX = 7,
IWL_RATE_24M_INDEX = 8,
IWL_RATE_MCS_3_INDEX = 8,
IWL_RATE_36M_INDEX = 9,
IWL_RATE_MCS_4_INDEX = 9,
IWL_RATE_48M_INDEX = 10,
IWL_RATE_MCS_5_INDEX = 10,
IWL_RATE_54M_INDEX = 11,
IWL_RATE_MCS_6_INDEX = 11,
IWL_LAST_NON_HT_RATE = 11,
IWL_RATE_60M_INDEX = 12,
IWL_RATE_MCS_7_INDEX = 12,
IWL_LAST_HT_RATE = 12,
IWL_RATE_MCS_8_INDEX = 13,
IWL_RATE_MCS_9_INDEX = 14,
IWL_LAST_VHT_RATE = 14,
IWL_RATE_MCS_10_INDEX = 15,
IWL_RATE_MCS_11_INDEX = 16,
IWL_LAST_HE_RATE = 16,
IWL_RATE_COUNT_LEGACY = 12,
IWL_RATE_COUNT = 17,
IWL_RATE_INVM_INDEX = 17,
IWL_RATE_INVALID = 17,
};
enum mac80211_tx_control_flags {
IEEE80211_TX_CTRL_PORT_CTRL_PROTO = 1,
IEEE80211_TX_CTRL_PS_RESPONSE = 2,
IEEE80211_TX_CTRL_RATE_INJECT = 4,
IEEE80211_TX_CTRL_AMSDU = 8,
IEEE80211_TX_CTRL_FAST_XMIT = 16,
IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP = 32,
IEEE80211_TX_INTCFL_NEED_TXPROCESSING = 64,
IEEE80211_TX_CTRL_NO_SEQNO = 128,
IEEE80211_TX_CTRL_DONT_REORDER = 256,
IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX = 512,
IEEE80211_TX_CTRL_MLO_LINK = 4026531840,
};
enum iwl_mac_beacon_flags {
IWL_MAC_BEACON_CCK = 32,
IWL_MAC_BEACON_ANT_A = 64,
IWL_MAC_BEACON_ANT_B = 128,
IWL_MAC_BEACON_FILS = 256,
};
enum iwl_mac_beacon_flags_v1 {
IWL_MAC_BEACON_CCK_V1 = 256,
IWL_MAC_BEACON_ANT_A_V1 = 512,
IWL_MAC_BEACON_ANT_B_V1 = 1024,
IWL_MAC_BEACON_FILS_V1 = 4096,
};
enum iwl_ctxt_action {
FW_CTXT_ACTION_INVALID = 0,
FW_CTXT_ACTION_ADD = 1,
FW_CTXT_ACTION_MODIFY = 2,
FW_CTXT_ACTION_REMOVE = 3,
};
enum iwl_ctxt_id_and_color {
FW_CTXT_ID_POS = 0,
FW_CTXT_ID_MSK = 255,
FW_CTXT_COLOR_POS = 8,
FW_CTXT_COLOR_MSK = 65280,
FW_CTXT_INVALID = 4294967295,
};
enum iwl_tx_status {
TX_STATUS_MSK = 255,
TX_STATUS_SUCCESS = 1,
TX_STATUS_DIRECT_DONE = 2,
TX_STATUS_POSTPONE_DELAY = 64,
TX_STATUS_POSTPONE_FEW_BYTES = 65,
TX_STATUS_POSTPONE_BT_PRIO = 66,
TX_STATUS_POSTPONE_QUIET_PERIOD = 67,
TX_STATUS_POSTPONE_CALC_TTAK = 68,
TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY = 129,
TX_STATUS_FAIL_SHORT_LIMIT = 130,
TX_STATUS_FAIL_LONG_LIMIT = 131,
TX_STATUS_FAIL_UNDERRUN = 132,
TX_STATUS_FAIL_DRAIN_FLOW = 133,
TX_STATUS_FAIL_RFKILL_FLUSH = 134,
TX_STATUS_FAIL_LIFE_EXPIRE = 135,
TX_STATUS_FAIL_DEST_PS = 136,
TX_STATUS_FAIL_HOST_ABORTED = 137,
TX_STATUS_FAIL_BT_RETRY = 138,
TX_STATUS_FAIL_STA_INVALID = 139,
TX_STATUS_FAIL_FRAG_DROPPED = 140,
TX_STATUS_FAIL_TID_DISABLE = 141,
TX_STATUS_FAIL_FIFO_FLUSHED = 142,
TX_STATUS_FAIL_SMALL_CF_POLL = 143,
TX_STATUS_FAIL_FW_DROP = 144,
TX_STATUS_FAIL_STA_COLOR_MISMATCH = 145,
TX_STATUS_INTERNAL_ABORT = 146,
TX_MODE_MSK = 3840,
TX_MODE_NO_BURST = 0,
TX_MODE_IN_BURST_SEQ = 256,
TX_MODE_FIRST_IN_BURST = 512,
TX_QUEUE_NUM_MSK = 126976,
TX_NARROW_BW_MSK = 393216,
TX_NARROW_BW_1DIV2 = 131072,
TX_NARROW_BW_1DIV4 = 262144,
TX_NARROW_BW_1DIV8 = 393216,
};
enum iwl_prot_offload_subcmd_ids {
WOWLAN_WAKE_PKT_NOTIFICATION = 252,
WOWLAN_INFO_NOTIFICATION = 253,
D3_END_NOTIFICATION = 254,
STORED_BEACON_NTF = 255,
};
enum iwl_rx_phy_flags {
RX_RES_PHY_FLAGS_BAND_24 = 1,
RX_RES_PHY_FLAGS_MOD_CCK = 2,
RX_RES_PHY_FLAGS_SHORT_PREAMBLE = 4,
RX_RES_PHY_FLAGS_NARROW_BAND = 8,
RX_RES_PHY_FLAGS_ANTENNA = 112,
RX_RES_PHY_FLAGS_ANTENNA_POS = 4,
RX_RES_PHY_FLAGS_AGG = 128,
RX_RES_PHY_FLAGS_OFDM_HT = 256,
RX_RES_PHY_FLAGS_OFDM_GF = 512,
RX_RES_PHY_FLAGS_OFDM_VHT = 1024,
};
enum iwl_mac_conf_subcmd_ids {
LOW_LATENCY_CMD = 3,
CHANNEL_SWITCH_TIME_EVENT_CMD = 4,
MISSED_VAP_NOTIF = 250,
SESSION_PROTECTION_CMD = 5,
CANCEL_CHANNEL_SWITCH_CMD = 6,
MAC_CONFIG_CMD = 8,
LINK_CONFIG_CMD = 9,
STA_CONFIG_CMD = 10,
AUX_STA_CMD = 11,
STA_REMOVE_CMD = 12,
STA_DISABLE_TX_CMD = 13,
ROC_CMD = 14,
ROC_NOTIF = 248,
SESSION_PROTECTION_NOTIF = 251,
PROBE_RESPONSE_DATA_NOTIF = 252,
CHANNEL_SWITCH_START_NOTIF = 255,
CHANNEL_SWITCH_ERROR_NOTIF = 249,
};
enum iwl_tx_flags {
TX_CMD_FLG_PROT_REQUIRE = 1,
TX_CMD_FLG_WRITE_TX_POWER = 2,
TX_CMD_FLG_ACK = 8,
TX_CMD_FLG_STA_RATE = 16,
TX_CMD_FLG_BAR = 64,
TX_CMD_FLG_TXOP_PROT = 128,
TX_CMD_FLG_VHT_NDPA = 256,
TX_CMD_FLG_HT_NDPA = 512,
TX_CMD_FLG_CSI_FDBK2HOST = 1024,
TX_CMD_FLG_BT_PRIO_POS = 11,
TX_CMD_FLG_BT_PRIO_MASK = 6144,
TX_CMD_FLG_BT_DIS = 4096,
TX_CMD_FLG_SEQ_CTL = 8192,
TX_CMD_FLG_MORE_FRAG = 16384,
TX_CMD_FLG_TSF = 65536,
TX_CMD_FLG_CALIB = 131072,
TX_CMD_FLG_KEEP_SEQ_CTL = 262144,
TX_CMD_FLG_MH_PAD = 1048576,
TX_CMD_FLG_RESP_TO_DRV = 2097152,
TX_CMD_FLG_TKIP_MIC_DONE = 8388608,
TX_CMD_FLG_DUR = 33554432,
TX_CMD_FLG_FW_DROP = 67108864,
TX_CMD_FLG_EXEC_PAPD = 134217728,
TX_CMD_FLG_PAPD_TYPE = 268435456,
TX_CMD_FLG_HCCA_CHUNK = 2147483648,
};
enum iwl_mac_filter_flags {
MAC_FILTER_IN_PROMISC = 1,
MAC_FILTER_IN_CONTROL_AND_MGMT = 2,
MAC_FILTER_ACCEPT_GRP = 4,
MAC_FILTER_DIS_DECRYPT = 8,
MAC_FILTER_DIS_GRP_DECRYPT = 16,
MAC_FILTER_IN_BEACON = 64,
MAC_FILTER_OUT_BCAST = 256,
MAC_FILTER_IN_CRC32 = 2048,
MAC_FILTER_IN_PROBE_REQUEST = 4096,
MAC_FILTER_IN_11AX = 16384,
};
enum iwl_mac_protection_flags {
MAC_PROT_FLG_TGG_PROTECT = 8,
MAC_PROT_FLG_HT_PROT = 8388608,
MAC_PROT_FLG_FAT_PROT = 16777216,
MAC_PROT_FLG_SELF_CTS_EN = 1073741824,
};
enum iwl_mvm_tx_fifo {
IWL_MVM_TX_FIFO_BK = 0,
IWL_MVM_TX_FIFO_BE = 1,
IWL_MVM_TX_FIFO_VI = 2,
IWL_MVM_TX_FIFO_VO = 3,
IWL_MVM_TX_FIFO_MCAST = 5,
IWL_MVM_TX_FIFO_CMD = 7,
};
enum iwl_sta_type {
IWL_STA_LINK = 0,
IWL_STA_GENERAL_PURPOSE = 1,
IWL_STA_MULTICAST = 2,
IWL_STA_TDLS_LINK = 3,
IWL_STA_AUX_ACTIVITY = 4,
};
struct agg_tx_status {
__le16 status;
__le16 sequence;
};
struct iwl_mvm_tx_resp {
u8 frame_count;
u8 bt_kill_count;
u8 failure_rts;
u8 failure_frame;
__le32 initial_rate;
__le16 wireless_media_time;
u8 pa_status;
u8 pa_integ_res_a[3];
u8 pa_integ_res_b[3];
u8 pa_integ_res_c[3];
__le16 measurement_req_id;
u8 reduced_tpc;
u8 reserved;
__le32 tfd_info;
__le16 seq_ctl;
__le16 byte_cnt;
u8 tlc_info;
u8 ra_tid;
__le16 frame_ctrl;
__le16 tx_queue;
__le16 reserved2;
struct agg_tx_status status;
};
struct iwl_mvm_tx_resp_v3 {
u8 frame_count;
u8 bt_kill_count;
u8 failure_rts;
u8 failure_frame;
__le32 initial_rate;
__le16 wireless_media_time;
u8 pa_status;
u8 pa_integ_res_a[3];
u8 pa_integ_res_b[3];
u8 pa_integ_res_c[3];
__le16 measurement_req_id;
u8 reduced_tpc;
u8 reserved;
__le32 tfd_info;
__le16 seq_ctl;
__le16 byte_cnt;
u8 tlc_info;
u8 ra_tid;
__le16 frame_ctrl;
struct agg_tx_status status[0];
};
struct iwl_tx_cmd___2 {
__le16 len;
__le16 offload_assist;
__le32 tx_flags;
struct {
u8 try_cnt;
u8 btkill_cnt;
__le16 reserved;
} scratch;
__le32 rate_n_flags;
u8 sta_id;
u8 sec_ctl;
u8 initial_rate_index;
u8 reserved2;
u8 key[16];
__le32 reserved3;
__le32 life_time;
__le32 dram_lsb_ptr;
u8 dram_msb_ptr;
u8 rts_retry_limit;
u8 data_retry_limit;
u8 tid_tspec;
__le16 pm_frame_timeout;
__le16 reserved4;
union {
struct {
struct {} __empty_payload;
u8 payload[0];
};
struct {
struct {} __empty_hdr;
struct ieee80211_hdr hdr[0];
};
};
};
struct iwl_mac_beacon_cmd_v6 {
struct iwl_tx_cmd___2 tx;
__le32 template_id;
__le32 tim_idx;
__le32 tim_size;
struct ieee80211_hdr frame[0];
};
struct iwl_mac_beacon_cmd_v7 {
struct iwl_tx_cmd___2 tx;
__le32 template_id;
__le32 tim_idx;
__le32 tim_size;
__le32 ecsa_offset;
__le32 csa_offset;
struct ieee80211_hdr frame[0];
};
struct iwl_mac_beacon_cmd {
__le16 byte_cnt;
__le16 flags;
__le32 short_ssid;
__le32 reserved;
__le32 link_id;
__le32 tim_idx;
__le32 tim_size;
__le32 ecsa_offset;
__le32 csa_offset;
struct ieee80211_hdr frame[0];
};
struct ieee80211_mutable_offsets {
u16 tim_offset;
u16 tim_length;
u16 cntdwn_counter_offs[2];
u16 mbssid_off;
};
struct iwl_mac_data_ap {
__le32 beacon_time;
__le64 beacon_tsf;
__le32 bi;
__le32 reserved1;
__le32 dtim_interval;
__le32 reserved2;
__le32 mcast_qid;
__le32 beacon_template;
} __attribute__((packed));
struct iwl_mac_data_go {
struct iwl_mac_data_ap ap;
__le32 ctwin;
__le32 opp_ps_enabled;
};
struct iwl_mac_data_sta {
__le32 is_assoc;
__le32 dtim_time;
__le64 dtim_tsf;
__le32 bi;
__le32 reserved1;
__le32 dtim_interval;
__le32 data_policy;
__le32 listen_interval;
__le32 assoc_id;
__le32 assoc_beacon_arrive_time;
} __attribute__((packed));
struct iwl_mac_data_p2p_sta {
struct iwl_mac_data_sta sta;
__le32 ctwin;
};
struct iwl_mac_data_p2p_dev {
__le32 is_disc_extended;
};
struct iwl_mac_data_pibss {
__le32 stats_interval;
};
struct iwl_mac_data_ibss {
__le32 beacon_time;
__le64 beacon_tsf;
__le32 bi;
__le32 reserved;
__le32 beacon_template;
} __attribute__((packed));
struct iwl_ac_qos___2 {
__le16 cw_min;
__le16 cw_max;
u8 aifsn;
u8 fifos_mask;
__le16 edca_txop;
};
struct iwl_mac_ctx_cmd {
__le32 id_and_color;
__le32 action;
__le32 mac_type;
__le32 tsf_id;
u8 node_addr[6];
__le16 reserved_for_node_addr;
u8 bssid_addr[6];
__le16 reserved_for_bssid_addr;
__le32 cck_rates;
__le32 ofdm_rates;
__le32 protection_flags;
__le32 cck_short_preamble;
__le32 short_slot;
__le32 filter_flags;
__le32 qos_flags;
struct iwl_ac_qos___2 ac[5];
union {
struct iwl_mac_data_ap ap;
struct iwl_mac_data_go go;
struct iwl_mac_data_sta sta;
struct iwl_mac_data_p2p_sta p2p_sta;
struct iwl_mac_data_p2p_dev p2p_dev;
struct iwl_mac_data_pibss pibss;
struct iwl_mac_data_ibss ibss;
};
};
struct iwl_mvm_go_iterator_data {
bool go_active;
};
struct iwl_mvm_mac_iface_iterator_data {
struct iwl_mvm *mvm;
struct ieee80211_vif *vif;
unsigned long available_mac_ids[1];
unsigned long available_tsf_ids[1];
enum iwl_tsf_id preferred_tsf;
bool found_vif;
};
struct iwl_extended_beacon_notif {
__le32 status;
__le64 tsf;
__le32 ibss_mgr_status;
__le32 gp2;
} __attribute__((packed));
struct iwl_extended_beacon_notif_v5 {
struct iwl_mvm_tx_resp beacon_notify_hdr;
__le64 tsf;
__le32 ibss_mgr_status;
__le32 gp2;
} __attribute__((packed));
struct iwl_missed_beacons_notif {
__le32 link_id;
__le32 consec_missed_beacons_since_last_rx;
__le32 consec_missed_beacons;
__le32 num_expected_beacons;
__le32 num_recvd_beacons;
};
struct iwl_fw_dbg_trigger_missed_bcon {
__le32 stop_consec_missed_bcon;
__le32 stop_consec_missed_bcon_since_rx;
__le32 reserved2[2];
__le32 start_consec_missed_bcon;
__le32 start_consec_missed_bcon_since_rx;
__le32 reserved1[2];
};
struct iwl_stored_beacon_notif_common {
__le32 system_time;
__le64 tsf;
__le32 beacon_timestamp;
__le16 band;
__le16 channel;
__le32 rates;
__le32 byte_count;
} __attribute__((packed));
struct iwl_stored_beacon_notif_v2 {
struct iwl_stored_beacon_notif_common common;
u8 data[600];
};
struct iwl_stored_beacon_notif_v3 {
struct iwl_stored_beacon_notif_common common;
u8 sta_id;
u8 reserved[3];
u8 data[600];
};
struct iwl_channel_switch_start_notif_v1 {
__le32 id_and_color;
};
struct iwl_channel_switch_start_notif {
__le32 link_id;
};
struct iwl_channel_switch_error_notif {
__le32 link_id;
__le32 csa_err_mask;
};
struct iwl_missed_vap_notif {
__le32 mac_id;
u8 num_beacon_intervals_elapsed;
u8 profile_periodicity;
u8 reserved[2];
};
struct iwl_mvm_mac_ap_iterator_data {
struct iwl_mvm *mvm;
struct ieee80211_vif *vif;
u32 beacon_device_ts;
u16 beacon_int;
};
enum utf16_endian {
UTF16_HOST_ENDIAN = 0,
UTF16_LITTLE_ENDIAN = 1,
UTF16_BIG_ENDIAN = 2,
};
enum usb_phy_type {
USB_PHY_TYPE_UNDEFINED = 0,
USB_PHY_TYPE_USB2 = 1,
USB_PHY_TYPE_USB3 = 2,
};
enum usb_phy_events {
USB_EVENT_NONE = 0,
USB_EVENT_VBUS = 1,
USB_EVENT_ID = 2,
USB_EVENT_CHARGER = 3,
USB_EVENT_ENUMERATED = 4,
};
enum phy_mode {
PHY_MODE_INVALID = 0,
PHY_MODE_USB_HOST = 1,
PHY_MODE_USB_HOST_LS = 2,
PHY_MODE_USB_HOST_FS = 3,
PHY_MODE_USB_HOST_HS = 4,
PHY_MODE_USB_HOST_SS = 5,
PHY_MODE_USB_DEVICE = 6,
PHY_MODE_USB_DEVICE_LS = 7,
PHY_MODE_USB_DEVICE_FS = 8,
PHY_MODE_USB_DEVICE_HS = 9,
PHY_MODE_USB_DEVICE_SS = 10,
PHY_MODE_USB_OTG = 11,
PHY_MODE_UFS_HS_A = 12,
PHY_MODE_UFS_HS_B = 13,
PHY_MODE_PCIE = 14,
PHY_MODE_ETHERNET = 15,
PHY_MODE_MIPI_DPHY = 16,
PHY_MODE_SATA = 17,
PHY_MODE_LVDS = 18,
PHY_MODE_DP = 19,
};
enum phy_media {
PHY_MEDIA_DEFAULT = 0,
PHY_MEDIA_SR = 1,
PHY_MEDIA_DAC = 2,
};
enum usb_otg_state {
OTG_STATE_UNDEFINED = 0,
OTG_STATE_B_IDLE = 1,
OTG_STATE_B_SRP_INIT = 2,
OTG_STATE_B_PERIPHERAL = 3,
OTG_STATE_B_WAIT_ACON = 4,
OTG_STATE_B_HOST = 5,
OTG_STATE_A_IDLE = 6,
OTG_STATE_A_WAIT_VRISE = 7,
OTG_STATE_A_WAIT_BCON = 8,
OTG_STATE_A_HOST = 9,
OTG_STATE_A_SUSPEND = 10,
OTG_STATE_A_PERIPHERAL = 11,
OTG_STATE_A_WAIT_VFALL = 12,
OTG_STATE_A_VBUS_ERR = 13,
};
enum usb_charger_type {
UNKNOWN_TYPE = 0,
SDP_TYPE = 1,
DCP_TYPE = 2,
CDP_TYPE = 3,
ACA_TYPE = 4,
};
enum usb_charger_state {
USB_CHARGER_DEFAULT = 0,
USB_CHARGER_PRESENT = 1,
USB_CHARGER_ABSENT = 2,
};
struct usb_cdc_union_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bMasterInterface0;
__u8 bSlaveInterface0;
};
struct usb_cdc_country_functional_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 iCountryCodeRelDate;
__le16 wCountyCode0;
};
struct usb_cdc_header_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdCDC;
} __attribute__((packed));
struct usb_cdc_acm_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bmCapabilities;
};
struct usb_cdc_ether_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 iMACAddress;
__le32 bmEthernetStatistics;
__le16 wMaxSegmentSize;
__le16 wNumberMCFilters;
__u8 bNumberPowerFilters;
} __attribute__((packed));
struct usb_cdc_call_mgmt_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bmCapabilities;
__u8 bDataInterface;
};
struct usb_cdc_dmm_desc {
__u8 bFunctionLength;
__u8 bDescriptorType;
__u8 bDescriptorSubtype;
__u16 bcdVersion;
__le16 wMaxCommand;
} __attribute__((packed));
struct usb_cdc_mdlm_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdVersion;
__u8 bGUID[16];
} __attribute__((packed));
struct usb_cdc_mdlm_detail_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bGuidDescriptorType;
__u8 bDetailData[0];
};
struct usb_cdc_ncm_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdNcmVersion;
__u8 bmNetworkCapabilities;
} __attribute__((packed));
struct usb_cdc_mbim_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdMBIMVersion;
__le16 wMaxControlMessage;
__u8 bNumberFilters;
__u8 bMaxFilterSize;
__le16 wMaxSegmentSize;
__u8 bmNetworkCapabilities;
} __attribute__((packed));
struct usb_cdc_mbim_extended_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdMBIMExtendedVersion;
__u8 bMaxOutstandingCommandMessages;
__le16 wMTU;
} __attribute__((packed));
struct extcon_dev;
struct usb_charger_current {
unsigned int sdp_min;
unsigned int sdp_max;
unsigned int dcp_min;
unsigned int dcp_max;
unsigned int cdp_min;
unsigned int cdp_max;
unsigned int aca_min;
unsigned int aca_max;
};
struct atomic_notifier_head {
spinlock_t lock;
struct notifier_block __attribute__((btf_type_tag("rcu"))) *head;
};
struct usb_otg;
struct usb_phy_io_ops;
struct usb_phy {
struct device *dev;
const char *label;
unsigned int flags;
enum usb_phy_type type;
enum usb_phy_events last_event;
struct usb_otg *otg;
struct device *io_dev;
struct usb_phy_io_ops *io_ops;
void *io_priv;
struct extcon_dev *edev;
struct extcon_dev *id_edev;
struct notifier_block vbus_nb;
struct notifier_block id_nb;
struct notifier_block type_nb;
enum usb_charger_type chg_type;
enum usb_charger_state chg_state;
struct usb_charger_current chg_cur;
struct work_struct chg_work;
struct atomic_notifier_head notifier;
u16 port_status;
u16 port_change;
struct list_head head;
int (*init)(struct usb_phy *);
void (*shutdown)(struct usb_phy *);
int (*set_vbus)(struct usb_phy *, int);
int (*set_power)(struct usb_phy *, unsigned int);
int (*set_suspend)(struct usb_phy *, int);
int (*set_wakeup)(struct usb_phy *, bool);
int (*notify_connect)(struct usb_phy *, enum usb_device_speed);
int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed);
enum usb_charger_type (*charger_detect)(struct usb_phy *);
};
struct usb_gadget;
struct phy;
struct usb_otg {
u8 default_a;
struct phy *phy;
struct usb_phy *usb_phy;
struct usb_bus *host;
struct usb_gadget *gadget;
enum usb_otg_state state;
int (*set_host)(struct usb_otg *, struct usb_bus *);
int (*set_peripheral)(struct usb_otg *, struct usb_gadget *);
int (*set_vbus)(struct usb_otg *, bool);
int (*start_srp)(struct usb_otg *);
int (*start_hnp)(struct usb_otg *);
};
struct phy_attrs {
u32 bus_width;
u32 max_link_rate;
enum phy_mode mode;
};
struct phy_ops;
struct phy {
struct device dev;
int id;
const struct phy_ops *ops;
struct mutex mutex;
int init_count;
int power_count;
struct phy_attrs attrs;
struct regulator *pwr;
struct dentry *debugfs;
};
union phy_configure_opts;
struct phy_ops {
int (*init)(struct phy *);
int (*exit)(struct phy *);
int (*power_on)(struct phy *);
int (*power_off)(struct phy *);
int (*set_mode)(struct phy *, enum phy_mode, int);
int (*set_media)(struct phy *, enum phy_media);
int (*set_speed)(struct phy *, int);
int (*configure)(struct phy *, union phy_configure_opts *);
int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *);
int (*reset)(struct phy *);
int (*calibrate)(struct phy *);
int (*connect)(struct phy *, int);
int (*disconnect)(struct phy *, int);
void (*release)(struct phy *);
struct module *owner;
};
struct phy_configure_opts_mipi_dphy {
unsigned int clk_miss;
unsigned int clk_post;
unsigned int clk_pre;
unsigned int clk_prepare;
unsigned int clk_settle;
unsigned int clk_term_en;
unsigned int clk_trail;
unsigned int clk_zero;
unsigned int d_term_en;
unsigned int eot;
unsigned int hs_exit;
unsigned int hs_prepare;
unsigned int hs_settle;
unsigned int hs_skip;
unsigned int hs_trail;
unsigned int hs_zero;
unsigned int init;
unsigned int lpx;
unsigned int ta_get;
unsigned int ta_go;
unsigned int ta_sure;
unsigned int wakeup;
unsigned long hs_clk_rate;
unsigned long lp_clk_rate;
unsigned char lanes;
};
struct phy_configure_opts_dp {
unsigned int link_rate;
unsigned int lanes;
unsigned int voltage[4];
unsigned int pre[4];
u8 ssc: 1;
u8 set_rate: 1;
u8 set_lanes: 1;
u8 set_voltages: 1;
};
struct phy_configure_opts_lvds {
unsigned int bits_per_lane_and_dclk_cycle;
unsigned long differential_clk_rate;
unsigned int lanes;
bool is_slave;
};
union phy_configure_opts {
struct phy_configure_opts_mipi_dphy mipi_dphy;
struct phy_configure_opts_dp dp;
struct phy_configure_opts_lvds lvds;
};
struct usb_phy_io_ops {
int (*read)(struct usb_phy *, u32);
int (*write)(struct usb_phy *, u32, u32);
};
struct set_config_request {
struct usb_device *udev;
int config;
struct work_struct work;
struct list_head node;
};
struct api_context {
struct completion done;
int status;
};
struct usb_cdc_network_terminal_desc;
struct usb_cdc_obex_desc;
struct usb_cdc_parsed_header {
struct usb_cdc_union_desc *usb_cdc_union_desc;
struct usb_cdc_header_desc *usb_cdc_header_desc;
struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor;
struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor;
struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc;
struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc;
struct usb_cdc_ether_desc *usb_cdc_ether_desc;
struct usb_cdc_dmm_desc *usb_cdc_dmm_desc;
struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc;
struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc;
struct usb_cdc_obex_desc *usb_cdc_obex_desc;
struct usb_cdc_ncm_desc *usb_cdc_ncm_desc;
struct usb_cdc_mbim_desc *usb_cdc_mbim_desc;
struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc;
bool phonet_magic_present;
};
struct usb_cdc_network_terminal_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__u8 bEntityId;
__u8 iName;
__u8 bChannelIndex;
__u8 bPhysicalInterface;
};
struct usb_cdc_obex_desc {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDescriptorSubType;
__le16 bcdVersion;
} __attribute__((packed));
enum nvmem_type {
NVMEM_TYPE_UNKNOWN = 0,
NVMEM_TYPE_EEPROM = 1,
NVMEM_TYPE_OTP = 2,
NVMEM_TYPE_BATTERY_BACKED = 3,
NVMEM_TYPE_FRAM = 4,
};
typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t);
typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t);
struct nvmem_cell_info;
struct nvmem_device;
struct nvmem_keepout;
struct nvmem_layout;
struct nvmem_config {
struct device *dev;
const char *name;
int id;
struct module *owner;
const struct nvmem_cell_info *cells;
int ncells;
bool add_legacy_fixed_of_cells;
void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *);
const struct nvmem_keepout *keepout;
unsigned int nkeepout;
enum nvmem_type type;
bool read_only;
bool root_only;
bool ignore_wp;
struct nvmem_layout *layout;
struct device_node *of_node;
nvmem_reg_read_t reg_read;
nvmem_reg_write_t reg_write;
int size;
int word_size;
int stride;
void *priv;
bool compat;
struct device *base_dev;
};
typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t);
struct nvmem_cell_info {
const char *name;
unsigned int offset;
size_t raw_len;
unsigned int bytes;
unsigned int bit_offset;
unsigned int nbits;
struct device_node *np;
nvmem_cell_post_process_t read_post_process;
void *priv;
};
struct nvmem_keepout {
unsigned int start;
unsigned int end;
unsigned char value;
};
struct nvmem_layout {
struct device dev;
struct nvmem_device *nvmem;
int (*add_cells)(struct nvmem_layout *);
};
struct ptp_sys_offset_precise {
struct ptp_clock_time device;
struct ptp_clock_time sys_realtime;
struct ptp_clock_time sys_monoraw;
unsigned int rsv[4];
};
struct ptp_clock_caps {
int max_adj;
int n_alarm;
int n_ext_ts;
int n_per_out;
int pps;
int n_pins;
int cross_timestamping;
int adjust_phase;
int max_phase_adj;
int rsv[11];
};
struct ptp_sys_offset_extended {
unsigned int n_samples;
unsigned int rsv[3];
struct ptp_clock_time ts[75];
};
struct ptp_sys_offset {
unsigned int n_samples;
unsigned int rsv[3];
struct ptp_clock_time ts[51];
};
struct firmware_map_entry;
struct memmap_attribute {
struct attribute attr;
ssize_t (*show)(struct firmware_map_entry *, char *);
};
struct firmware_map_entry {
u64 start;
u64 end;
const char *type;
struct list_head list;
struct kobject kobj;
};
enum {
NAPI_STATE_SCHED = 0,
NAPI_STATE_MISSED = 1,
NAPI_STATE_DISABLE = 2,
NAPI_STATE_NPSVC = 3,
NAPI_STATE_LISTED = 4,
NAPI_STATE_NO_BUSY_POLL = 5,
NAPI_STATE_IN_BUSY_POLL = 6,
NAPI_STATE_PREFER_BUSY_POLL = 7,
NAPI_STATE_THREADED = 8,
NAPI_STATE_SCHED_THREADED = 9,
};
enum gro_result {
GRO_MERGED = 0,
GRO_MERGED_FREE = 1,
GRO_HELD = 2,
GRO_NORMAL = 3,
GRO_CONSUMED = 4,
};
struct gro_cell {
struct sk_buff_head napi_skbs;
struct napi_struct napi;
};
struct percpu_free_defer {
struct callback_head rcu;
void __attribute__((btf_type_tag("percpu"))) *ptr;
};
typedef enum gro_result gro_result_t;
struct gro_cells {
struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells;
};
enum {
ETHTOOL_A_COALESCE_UNSPEC = 0,
ETHTOOL_A_COALESCE_HEADER = 1,
ETHTOOL_A_COALESCE_RX_USECS = 2,
ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 3,
ETHTOOL_A_COALESCE_RX_USECS_IRQ = 4,
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 5,
ETHTOOL_A_COALESCE_TX_USECS = 6,
ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 7,
ETHTOOL_A_COALESCE_TX_USECS_IRQ = 8,
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 9,
ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 10,
ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 11,
ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 12,
ETHTOOL_A_COALESCE_PKT_RATE_LOW = 13,
ETHTOOL_A_COALESCE_RX_USECS_LOW = 14,
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 15,
ETHTOOL_A_COALESCE_TX_USECS_LOW = 16,
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 17,
ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 18,
ETHTOOL_A_COALESCE_RX_USECS_HIGH = 19,
ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 20,
ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21,
ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22,
ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23,
ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24,
ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25,
ETHTOOL_A_COALESCE_TX_AGGR_MAX_BYTES = 26,
ETHTOOL_A_COALESCE_TX_AGGR_MAX_FRAMES = 27,
ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS = 28,
__ETHTOOL_A_COALESCE_CNT = 29,
ETHTOOL_A_COALESCE_MAX = 28,
};
struct coalesce_reply_data {
struct ethnl_reply_data base;
struct ethtool_coalesce coalesce;
struct kernel_ethtool_coalesce kernel_coalesce;
u32 supported_params;
};
struct nft_set_type {
const struct nft_set_ops ops;
u32 features;
};
struct nft_rhash {
struct rhashtable ht;
struct delayed_work gc_work;
};
struct nft_hash_elem {
struct nft_elem_priv priv;
struct hlist_node node;
struct nft_set_ext ext;
};
struct nft_rhash_elem {
struct nft_elem_priv priv;
struct rhash_head node;
struct nft_set_ext ext;
};
struct rhashtable_walker {
struct list_head list;
struct bucket_table *tbl;
};
struct rhashtable_iter {
struct rhashtable *ht;
struct rhash_head *p;
struct rhlist_head *list;
struct rhashtable_walker walker;
unsigned int slot;
unsigned int skip;
bool end_of_table;
};
struct nft_hash {
u32 seed;
u32 buckets;
struct hlist_head table[0];
};
struct nft_set_elem_expr {
u8 size;
long: 0;
unsigned char data[0];
};
struct nft_trans_gc {
struct list_head list;
struct net *net;
struct nft_set *set;
u32 seq;
u16 count;
struct nft_elem_priv *priv[256];
struct callback_head rcu;
};
struct nftables_pernet {
struct list_head tables;
struct list_head commit_list;
struct list_head binding_list;
struct list_head module_list;
struct list_head notify_list;
struct mutex commit_mutex;
u64 table_handle;
u64 tstamp;
unsigned int base_seq;
unsigned int gc_seq;
u8 validate_state;
};
struct nft_rhash_cmp_arg {
const struct nft_set *set;
const u32 *key;
u8 genmask;
u64 tstamp;
};
struct nft_rhash_ctx {
const struct nft_ctx ctx;
const struct nft_set *set;
};
struct flow_dissector_key_control {
u16 thoff;
u16 addr_type;
u32 flags;
};
struct flow_dissector_key_basic {
__be16 n_proto;
u8 ip_proto;
u8 padding;
};
struct flow_dissector_key_tags {
u32 flow_label;
};
struct flow_dissector_key_vlan {
union {
struct {
u16 vlan_id: 12;
u16 vlan_dei: 1;
u16 vlan_priority: 3;
};
__be16 vlan_tci;
};
__be16 vlan_tpid;
__be16 vlan_eth_type;
u16 padding;
};
struct flow_dissector_key_keyid {
__be32 keyid;
};
struct flow_dissector_key_ports {
union {
__be32 ports;
struct {
__be16 src;
__be16 dst;
};
};
};
struct flow_dissector_key_icmp {
struct {
u8 type;
u8 code;
};
u16 id;
};
struct flow_dissector_key_ipv4_addrs {
__be32 src;
__be32 dst;
};
struct flow_dissector_key_ipv6_addrs {
struct in6_addr src;
struct in6_addr dst;
};
struct flow_dissector_key_tipc {
__be32 key;
};
struct flow_dissector_key_addrs {
union {
struct flow_dissector_key_ipv4_addrs v4addrs;
struct flow_dissector_key_ipv6_addrs v6addrs;
struct flow_dissector_key_tipc tipckey;
};
};
struct flow_keys {
struct flow_dissector_key_control control;
struct flow_dissector_key_basic basic;
struct flow_dissector_key_tags tags;
struct flow_dissector_key_vlan vlan;
struct flow_dissector_key_vlan cvlan;
struct flow_dissector_key_keyid keyid;
struct flow_dissector_key_ports ports;
struct flow_dissector_key_icmp icmp;
struct flow_dissector_key_addrs addrs;
long: 0;
};
struct nf_br_ops {
int (*br_dev_xmit_hook)(struct sk_buff *);
};
struct tcf_walker {
int stop;
int skip;
int count;
bool nonempty;
unsigned long cookie;
int (*fn)(struct tcf_proto *, void *, struct tcf_walker *);
};
struct tcf_exts {
int action;
int police;
};
struct bridge_id {
unsigned char prio[2];
unsigned char addr[6];
};
typedef struct bridge_id bridge_id;
struct bridge_mcast_other_query {
struct timer_list timer;
struct timer_list delay_timer;
};
struct bridge_mcast_own_query {
struct timer_list timer;
u32 startup_sent;
};
struct br_ip {
union {
__be32 ip4;
struct in6_addr ip6;
} src;
union {
__be32 ip4;
struct in6_addr ip6;
unsigned char mac_addr[6];
} dst;
__be16 proto;
__u16 vid;
};
struct bridge_mcast_querier {
struct br_ip addr;
int port_ifidx;
seqcount_spinlock_t seq;
};
struct net_bridge;
struct net_bridge_vlan;
struct net_bridge_mcast {
struct net_bridge *br;
struct net_bridge_vlan *vlan;
u32 multicast_last_member_count;
u32 multicast_startup_query_count;
u8 multicast_querier;
u8 multicast_igmp_version;
u8 multicast_router;
u8 multicast_mld_version;
unsigned long multicast_last_member_interval;
unsigned long multicast_membership_interval;
unsigned long multicast_querier_interval;
unsigned long multicast_query_interval;
unsigned long multicast_query_response_interval;
unsigned long multicast_startup_query_interval;
struct hlist_head ip4_mc_router_list;
struct timer_list ip4_mc_router_timer;
struct bridge_mcast_other_query ip4_other_query;
struct bridge_mcast_own_query ip4_own_query;
struct bridge_mcast_querier ip4_querier;
struct hlist_head ip6_mc_router_list;
struct timer_list ip6_mc_router_timer;
struct bridge_mcast_other_query ip6_other_query;
struct bridge_mcast_own_query ip6_own_query;
struct bridge_mcast_querier ip6_querier;
};
struct bridge_mcast_stats;
struct net_bridge {
spinlock_t lock;
spinlock_t hash_lock;
struct hlist_head frame_type_list;
struct net_device *dev;
unsigned long options;
struct rhashtable fdb_hash_tbl;
struct list_head port_list;
union {
struct rtable fake_rtable;
struct rt6_info fake_rt6_info;
};
u16 group_fwd_mask;
u16 group_fwd_mask_required;
bridge_id designated_root;
bridge_id bridge_id;
unsigned char topology_change;
unsigned char topology_change_detected;
u16 root_port;
unsigned long max_age;
unsigned long hello_time;
unsigned long forward_delay;
unsigned long ageing_time;
unsigned long bridge_max_age;
unsigned long bridge_hello_time;
unsigned long bridge_forward_delay;
unsigned long bridge_ageing_time;
u32 root_path_cost;
u8 group_addr[6];
enum {
BR_NO_STP = 0,
BR_KERNEL_STP = 1,
BR_USER_STP = 2,
} stp_enabled;
struct net_bridge_mcast multicast_ctx;
struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats;
u32 hash_max;
spinlock_t multicast_lock;
struct rhashtable mdb_hash_tbl;
struct rhashtable sg_port_tbl;
struct hlist_head mcast_gc_list;
struct hlist_head mdb_list;
struct work_struct mcast_gc_work;
struct timer_list hello_timer;
struct timer_list tcn_timer;
struct timer_list topology_change_timer;
struct delayed_work gc_work;
struct kobject *ifobj;
u32 auto_cnt;
atomic_t fdb_n_learned;
u32 fdb_max_learned;
struct hlist_head fdb_list;
};
struct net_bridge_port;
struct net_bridge_mcast_port {
struct net_bridge_port *port;
struct net_bridge_vlan *vlan;
struct bridge_mcast_own_query ip4_own_query;
struct timer_list ip4_mc_router_timer;
struct hlist_node ip4_rlist;
struct bridge_mcast_own_query ip6_own_query;
struct timer_list ip6_mc_router_timer;
struct hlist_node ip6_rlist;
unsigned char multicast_router;
u32 mdb_n_entries;
u32 mdb_max_entries;
};
struct metadata_dst;
struct br_tunnel_info {
__be64 tunnel_id;
struct metadata_dst __attribute__((btf_type_tag("rcu"))) *tunnel_dst;
};
struct net_bridge_vlan {
struct rhash_head vnode;
struct rhash_head tnode;
u16 vid;
u16 flags;
u16 priv_flags;
u8 state;
struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *stats;
union {
struct net_bridge *br;
struct net_bridge_port *port;
};
union {
refcount_t refcnt;
struct net_bridge_vlan *brvlan;
};
struct br_tunnel_info tinfo;
union {
struct net_bridge_mcast br_mcast_ctx;
struct net_bridge_mcast_port port_mcast_ctx;
};
u16 msti;
struct list_head vlist;
struct callback_head rcu;
};
typedef __u16 port_id;
struct bridge_stp_xstats {
__u64 transition_blk;
__u64 transition_fwd;
__u64 rx_bpdu;
__u64 tx_bpdu;
__u64 rx_tcn;
__u64 tx_tcn;
};
struct net_bridge_port {
struct net_bridge *br;
struct net_device *dev;
netdevice_tracker dev_tracker;
struct list_head list;
unsigned long flags;
struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port;
u32 backup_nhid;
u8 priority;
u8 state;
u16 port_no;
unsigned char topology_change_ack;
unsigned char config_pending;
port_id port_id;
port_id designated_port;
bridge_id designated_root;
bridge_id designated_bridge;
u32 path_cost;
u32 designated_cost;
unsigned long designated_age;
struct timer_list forward_delay_timer;
struct timer_list hold_timer;
struct timer_list message_age_timer;
struct kobject kobj;
struct callback_head rcu;
struct net_bridge_mcast_port multicast_ctx;
struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats;
u32 multicast_eht_hosts_limit;
u32 multicast_eht_hosts_cnt;
struct hlist_head mglist;
char sysfs_name[16];
u16 group_fwd_mask;
u16 backup_redirected_cnt;
struct bridge_stp_xstats stp_xstats;
};
struct br_mcast_stats {
__u64 igmp_v1queries[2];
__u64 igmp_v2queries[2];
__u64 igmp_v3queries[2];
__u64 igmp_leaves[2];
__u64 igmp_v1reports[2];
__u64 igmp_v2reports[2];
__u64 igmp_v3reports[2];
__u64 igmp_parse_errors;
__u64 mld_v1queries[2];
__u64 mld_v2queries[2];
__u64 mld_leaves[2];
__u64 mld_v1reports[2];
__u64 mld_v2reports[2];
__u64 mld_parse_errors;
__u64 mcast_bytes[2];
__u64 mcast_packets[2];
};
struct bridge_mcast_stats {
struct br_mcast_stats mstats;
struct u64_stats_sync syncp;
};
enum metadata_type {
METADATA_IP_TUNNEL = 0,
METADATA_HW_PORT_MUX = 1,
METADATA_MACSEC = 2,
METADATA_XFRM = 3,
};
struct ip_tunnel_key {
__be64 tun_id;
union {
struct {
__be32 src;
__be32 dst;
} ipv4;
struct {
struct in6_addr src;
struct in6_addr dst;
} ipv6;
} u;
__be16 tun_flags;
u8 tos;
u8 ttl;
__be32 label;
u32 nhid;
__be16 tp_src;
__be16 tp_dst;
__u8 flow_flags;
};
struct ip_tunnel_encap {
u16 type;
u16 flags;
__be16 sport;
__be16 dport;
};
struct dst_cache_pcpu;
struct dst_cache {
struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache;
unsigned long reset_ts;
};
struct ip_tunnel_info {
struct ip_tunnel_key key;
struct ip_tunnel_encap encap;
struct dst_cache dst_cache;
u8 options_len;
u8 mode;
};
struct hw_port_info {
struct net_device *lower_dev;
u32 port_id;
};
typedef u64 sci_t;
struct macsec_info {
sci_t sci;
};
struct xfrm_md_info {
u32 if_id;
int link;
struct dst_entry *dst_orig;
};
struct metadata_dst {
struct dst_entry dst;
enum metadata_type type;
union {
struct ip_tunnel_info tun_info;
struct hw_port_info port_info;
struct macsec_info macsec_info;
struct xfrm_md_info xfrm_info;
} u;
};
enum net_bridge_opts {
BROPT_VLAN_ENABLED = 0,
BROPT_VLAN_STATS_ENABLED = 1,
BROPT_NF_CALL_IPTABLES = 2,
BROPT_NF_CALL_IP6TABLES = 3,
BROPT_NF_CALL_ARPTABLES = 4,
BROPT_GROUP_ADDR_SET = 5,
BROPT_MULTICAST_ENABLED = 6,
BROPT_MULTICAST_QUERY_USE_IFADDR = 7,
BROPT_MULTICAST_STATS_ENABLED = 8,
BROPT_HAS_IPV6_ADDR = 9,
BROPT_NEIGH_SUPPRESS_ENABLED = 10,
BROPT_MTU_SET_BY_USER = 11,
BROPT_VLAN_STATS_PER_PORT = 12,
BROPT_NO_LL_LEARN = 13,
BROPT_VLAN_BRIDGE_BINDING = 14,
BROPT_MCAST_VLAN_SNOOPING_ENABLED = 15,
BROPT_MST_ENABLED = 16,
};
enum br_pkt_type {
BR_PKT_UNICAST = 0,
BR_PKT_MULTICAST = 1,
BR_PKT_BROADCAST = 2,
};
enum {
IF_OPER_UNKNOWN = 0,
IF_OPER_NOTPRESENT = 1,
IF_OPER_DOWN = 2,
IF_OPER_LOWERLAYERDOWN = 3,
IF_OPER_TESTING = 4,
IF_OPER_DORMANT = 5,
IF_OPER_UP = 6,
};
struct br_input_skb_cb {
struct net_device *brdev;
u16 frag_max_size;
u8 igmp;
u8 mrouters_only: 1;
u8 proxyarp_replied: 1;
u8 src_port_isolated: 1;
u8 br_netfilter_broute: 1;
u32 backup_nhid;
};
struct net_bridge_mcast_gc {
struct hlist_node gc_node;
void (*destroy)(struct net_bridge_mcast_gc *);
};
struct net_bridge_port_group;
struct net_bridge_mdb_entry {
struct rhash_head rhnode;
struct net_bridge *br;
struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *ports;
struct br_ip addr;
bool host_joined;
struct timer_list timer;
struct hlist_node mdb_node;
struct net_bridge_mcast_gc mcast_gc;
struct callback_head rcu;
};
struct net_bridge_port_group_sg_key {
struct net_bridge_port *port;
struct br_ip addr;
};
struct net_bridge_port_group {
struct net_bridge_port_group __attribute__((btf_type_tag("rcu"))) *next;
struct net_bridge_port_group_sg_key key;
unsigned char eth_addr[6];
unsigned char flags;
unsigned char filter_mode;
unsigned char grp_query_rexmit_cnt;
unsigned char rt_protocol;
struct hlist_head src_list;
unsigned int src_ents;
struct timer_list timer;
struct timer_list rexmit_timer;
struct hlist_node mglist;
struct rb_root eht_set_tree;
struct rb_root eht_host_tree;
struct rhash_head rhnode;
struct net_bridge_mcast_gc mcast_gc;
struct callback_head rcu;
};
struct icmpv6_echo {
__be16 identifier;
__be16 sequence;
};
struct icmpv6_nd_advt {
__u32 reserved: 5;
__u32 override: 1;
__u32 solicited: 1;
__u32 router: 1;
__u32 reserved2: 24;
};
struct icmpv6_nd_ra {
__u8 hop_limit;
__u8 reserved: 3;
__u8 router_pref: 2;
__u8 home_agent: 1;
__u8 other: 1;
__u8 managed: 1;
__be16 rt_lifetime;
};
struct icmp6hdr {
__u8 icmp6_type;
__u8 icmp6_code;
__sum16 icmp6_cksum;
union {
__be32 un_data32[1];
__be16 un_data16[2];
__u8 un_data8[4];
struct icmpv6_echo u_echo;
struct icmpv6_nd_advt u_nd_advt;
struct icmpv6_nd_ra u_nd_ra;
} icmp6_dataun;
};
struct nd_msg {
struct icmp6hdr icmph;
struct in6_addr target;
__u8 opt[0];
};
struct mac_addr {
unsigned char addr[6];
};
typedef struct mac_addr mac_addr;
struct net_bridge_fdb_key {
mac_addr addr;
u16 vlan_id;
};
struct net_bridge_fdb_entry {
struct rhash_head rhnode;
struct net_bridge_port *dst;
struct net_bridge_fdb_key key;
struct hlist_node fdb_node;
unsigned long flags;
long: 64;
long: 64;
unsigned long updated;
unsigned long used;
struct callback_head rcu;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum nl80211_channel_type {
NL80211_CHAN_NO_HT = 0,
NL80211_CHAN_HT20 = 1,
NL80211_CHAN_HT40MINUS = 2,
NL80211_CHAN_HT40PLUS = 3,
};
enum ieee80211_vht_chanwidth {
IEEE80211_VHT_CHANWIDTH_USE_HT = 0,
IEEE80211_VHT_CHANWIDTH_80MHZ = 1,
IEEE80211_VHT_CHANWIDTH_160MHZ = 2,
IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3,
};
enum ieee80211_spectrum_mgmt_actioncode {
WLAN_ACTION_SPCT_MSR_REQ = 0,
WLAN_ACTION_SPCT_MSR_RPRT = 1,
WLAN_ACTION_SPCT_TPC_REQ = 2,
WLAN_ACTION_SPCT_TPC_RPRT = 3,
WLAN_ACTION_SPCT_CHL_SWITCH = 4,
};
struct ieee80211_he_6ghz_oper {
u8 primary;
u8 control;
u8 ccfs0;
u8 ccfs1;
u8 minrate;
};
struct ieee80211_csa_ie {
struct ieee80211_chan_req chanreq;
u8 mode;
u8 count;
u8 ttl;
u16 pre_value;
u16 reason_code;
u32 max_switch_time;
};
typedef void (*btf_trace_emulate_vsyscall)(void *, int);
enum {
EMULATE = 0,
XONLY = 1,
NONE = 2,
};
enum x86_pf_error_code {
X86_PF_PROT = 1,
X86_PF_WRITE = 2,
X86_PF_USER = 4,
X86_PF_RSVD = 8,
X86_PF_INSTR = 16,
X86_PF_PK = 32,
X86_PF_SHSTK = 64,
X86_PF_SGX = 32768,
X86_PF_RMP = 2147483648,
};
struct trace_event_raw_emulate_vsyscall {
struct trace_entry ent;
int nr;
char __data[0];
};
struct seccomp_data {
int nr;
__u32 arch;
__u64 instruction_pointer;
__u64 args[6];
};
struct trace_event_data_offsets_emulate_vsyscall {};
enum cpuid_leafs {
CPUID_1_EDX = 0,
CPUID_8000_0001_EDX = 1,
CPUID_8086_0001_EDX = 2,
CPUID_LNX_1 = 3,
CPUID_1_ECX = 4,
CPUID_C000_0001_EDX = 5,
CPUID_8000_0001_ECX = 6,
CPUID_LNX_2 = 7,
CPUID_LNX_3 = 8,
CPUID_7_0_EBX = 9,
CPUID_D_1_EAX = 10,
CPUID_LNX_4 = 11,
CPUID_7_1_EAX = 12,
CPUID_8000_0008_EBX = 13,
CPUID_6_EAX = 14,
CPUID_8000_000A_EDX = 15,
CPUID_7_ECX = 16,
CPUID_8000_0007_EBX = 17,
CPUID_7_EDX = 18,
CPUID_8000_001F_EAX = 19,
CPUID_8000_0021_EAX = 20,
};
struct mtrr_sentry {
__u64 base;
__u32 size;
__u32 type;
};
struct mtrr_gentry {
__u64 base;
__u32 size;
__u32 regnum;
__u32 type;
__u32 _pad;
};
typedef void (*btf_trace_page_fault_user)(void *, unsigned long, struct pt_regs *, unsigned long);
typedef void (*btf_trace_page_fault_kernel)(void *, unsigned long, struct pt_regs *, unsigned long);
enum stack_type {
STACK_TYPE_UNKNOWN = 0,
STACK_TYPE_TASK = 1,
STACK_TYPE_IRQ = 2,
STACK_TYPE_SOFTIRQ = 3,
STACK_TYPE_ENTRY = 4,
STACK_TYPE_EXCEPTION = 5,
STACK_TYPE_EXCEPTION_LAST = 10,
};
enum perf_sw_ids {
PERF_COUNT_SW_CPU_CLOCK = 0,
PERF_COUNT_SW_TASK_CLOCK = 1,
PERF_COUNT_SW_PAGE_FAULTS = 2,
PERF_COUNT_SW_CONTEXT_SWITCHES = 3,
PERF_COUNT_SW_CPU_MIGRATIONS = 4,
PERF_COUNT_SW_PAGE_FAULTS_MIN = 5,
PERF_COUNT_SW_PAGE_FAULTS_MAJ = 6,
PERF_COUNT_SW_ALIGNMENT_FAULTS = 7,
PERF_COUNT_SW_EMULATION_FAULTS = 8,
PERF_COUNT_SW_DUMMY = 9,
PERF_COUNT_SW_BPF_OUTPUT = 10,
PERF_COUNT_SW_CGROUP_SWITCHES = 11,
PERF_COUNT_SW_MAX = 12,
};
struct trace_event_raw_x86_exceptions {
struct trace_entry ent;
unsigned long address;
unsigned long ip;
unsigned long error_code;
char __data[0];
};
struct cea_exception_stacks {
char DF_stack_guard[4096];
char DF_stack[8192];
char NMI_stack_guard[4096];
char NMI_stack[8192];
char DB_stack_guard[4096];
char DB_stack[8192];
char MCE_stack_guard[4096];
char MCE_stack[8192];
char VC_stack_guard[4096];
char VC_stack[8192];
char VC2_stack_guard[4096];
char VC2_stack[8192];
char IST_top_guard[4096];
};
struct irqentry_state {
union {
bool exit_rcu;
bool lockdep;
};
};
typedef struct irqentry_state irqentry_state_t;
struct stack_info {
enum stack_type type;
unsigned long *begin;
unsigned long *end;
unsigned long *next_sp;
};
struct desc_ptr {
unsigned short size;
unsigned long address;
} __attribute__((packed));
struct trace_event_data_offsets_x86_exceptions {};
struct ldttss_desc {
u16 limit0;
u16 base0;
u16 base1: 8;
u16 type: 5;
u16 dpl: 2;
u16 p: 1;
u16 limit1: 4;
u16 zero0: 3;
u16 g: 1;
u16 base2: 8;
u32 base3;
u32 zero1;
};
typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *);
typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *);
typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *);
typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *);
typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool);
typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool);
typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int);
typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int);
struct kernfs_fs_context {
struct kernfs_root *root;
void *ns_tag;
unsigned long magic;
bool new_sb_created;
};
struct cgroup_fs_context {
struct kernfs_fs_context kfc;
struct cgroup_root *root;
struct cgroup_namespace *ns;
unsigned int flags;
bool cpuset_clone_children;
bool none;
bool all_ss;
u16 subsys_mask;
char *name;
char *release_agent;
};
struct kernfs_syscall_ops {
int (*show_options)(struct seq_file *, struct kernfs_root *);
int (*mkdir)(struct kernfs_node *, const char *, umode_t);
int (*rmdir)(struct kernfs_node *);
int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *);
int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *);
};
enum {
CGRP_ROOT_NOPREFIX = 2,
CGRP_ROOT_XATTR = 4,
CGRP_ROOT_NS_DELEGATE = 8,
CGRP_ROOT_FAVOR_DYNMODS = 16,
CGRP_ROOT_CPUSET_V2_MODE = 65536,
CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072,
CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144,
CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288,
};
enum kernfs_node_type {
KERNFS_DIR = 1,
KERNFS_FILE = 2,
KERNFS_LINK = 4,
};
enum {
CGRP_NOTIFY_ON_RELEASE = 0,
CGRP_CPUSET_CLONE_CHILDREN = 1,
CGRP_FREEZE = 2,
CGRP_FROZEN = 3,
CGRP_KILL = 4,
};
enum kernfs_root_flag {
KERNFS_ROOT_CREATE_DEACTIVATED = 1,
KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 2,
KERNFS_ROOT_SUPPORT_EXPORTOP = 4,
KERNFS_ROOT_SUPPORT_USER_XATTR = 8,
};
enum cgroup_opt_features {
OPT_FEATURE_PRESSURE = 0,
OPT_FEATURE_COUNT = 1,
};
enum {
CFTYPE_ONLY_ON_ROOT = 1,
CFTYPE_NOT_ON_ROOT = 2,
CFTYPE_NS_DELEGATABLE = 4,
CFTYPE_NO_PREFIX = 8,
CFTYPE_WORLD_WRITABLE = 16,
CFTYPE_DEBUG = 32,
CFTYPE_HIDDEN = 64,
__CFTYPE_ONLY_ON_DFL = 65536,
__CFTYPE_NOT_ON_DFL = 131072,
__CFTYPE_ADDED = 262144,
};
enum cfile_flags {
CFILE_HIDDEN = 1,
};
enum {
CSS_TASK_ITER_PROCS = 1,
CSS_TASK_ITER_THREADED = 2,
CSS_TASK_ITER_SKIPPED = 65536,
};
enum cgroup2_param {
Opt_nsdelegate = 0,
Opt_favordynmods = 1,
Opt_memory_localevents = 2,
Opt_memory_recursiveprot = 3,
Opt_memory_hugetlb_accounting = 4,
nr__cgroup2_params = 5,
};
enum psi_states {
PSI_IO_SOME = 0,
PSI_IO_FULL = 1,
PSI_MEM_SOME = 2,
PSI_MEM_FULL = 3,
PSI_CPU_SOME = 4,
PSI_CPU_FULL = 5,
PSI_NONIDLE = 6,
NR_PSI_STATES = 7,
};
enum psi_aggregators {
PSI_AVGS = 0,
PSI_POLL = 1,
NR_PSI_AGGREGATORS = 2,
};
enum psi_res {
PSI_IO = 0,
PSI_MEM = 1,
PSI_CPU = 2,
NR_PSI_RESOURCES = 3,
};
struct css_task_iter {
struct cgroup_subsys *ss;
unsigned int flags;
struct list_head *cset_pos;
struct list_head *cset_head;
struct list_head *tcset_pos;
struct list_head *tcset_head;
struct list_head *task_pos;
struct list_head *cur_tasks_head;
struct css_set *cur_cset;
struct css_set *cur_dcset;
struct task_struct *cur_task;
struct list_head iters_node;
};
struct trace_event_raw_cgroup_root {
struct trace_entry ent;
int root;
u16 ss_mask;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_cgroup {
struct trace_entry ent;
int root;
int level;
u64 id;
u32 __data_loc_path;
char __data[0];
};
struct trace_event_raw_cgroup_migrate {
struct trace_entry ent;
int dst_root;
int dst_level;
u64 dst_id;
int pid;
u32 __data_loc_dst_path;
u32 __data_loc_comm;
char __data[0];
};
struct trace_event_raw_cgroup_event {
struct trace_entry ent;
int root;
int level;
u64 id;
u32 __data_loc_path;
int val;
char __data[0];
};
struct trace_event_data_offsets_cgroup_root {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_cgroup {
u32 path;
const void *path_ptr_;
};
struct trace_event_data_offsets_cgroup_migrate {
u32 dst_path;
const void *dst_path_ptr_;
u32 comm;
const void *comm_ptr_;
};
struct trace_event_data_offsets_cgroup_event {
u32 path;
const void *path_ptr_;
};
struct cgroup_mgctx {
struct list_head preloaded_src_csets;
struct list_head preloaded_dst_csets;
struct cgroup_taskset tset;
u16 ss_mask;
};
struct kernel_clone_args {
u64 flags;
int __attribute__((btf_type_tag("user"))) *pidfd;
int __attribute__((btf_type_tag("user"))) *child_tid;
int __attribute__((btf_type_tag("user"))) *parent_tid;
const char *name;
int exit_signal;
u32 kthread: 1;
u32 io_thread: 1;
u32 user_worker: 1;
u32 no_files: 1;
unsigned long stack;
unsigned long stack_size;
unsigned long tls;
pid_t *set_tid;
size_t set_tid_size;
int cgroup;
int idle;
int (*fn)(void *);
void *fn_arg;
struct cgroup *cgrp;
struct css_set *cset;
};
struct cgroup_pidlist;
struct cgroup_file_ctx {
struct cgroup_namespace *ns;
struct {
void *trigger;
} psi;
struct {
bool started;
struct css_task_iter iter;
} procs;
struct {
struct cgroup_pidlist *pidlist;
} procs1;
};
struct psi_window {
u64 size;
u64 start_time;
u64 start_value;
u64 prev_growth;
};
struct psi_trigger {
enum psi_states state;
u64 threshold;
struct list_head node;
struct psi_group *group;
wait_queue_head_t event_wait;
struct kernfs_open_file *of;
int event;
struct psi_window win;
u64 last_event_time;
bool pending_event;
enum psi_aggregators aggregator;
};
struct memblock_region;
struct memblock_type {
unsigned long cnt;
unsigned long max;
phys_addr_t total_size;
struct memblock_region *regions;
char *name;
};
struct memblock {
bool bottom_up;
phys_addr_t current_limit;
struct memblock_type memory;
struct memblock_type reserved;
};
enum memblock_flags {
MEMBLOCK_NONE = 0,
MEMBLOCK_HOTPLUG = 1,
MEMBLOCK_MIRROR = 2,
MEMBLOCK_NOMAP = 4,
MEMBLOCK_DRIVER_MANAGED = 8,
MEMBLOCK_RSRV_NOINIT = 16,
};
struct memblock_region {
phys_addr_t base;
phys_addr_t size;
enum memblock_flags flags;
int nid;
};
struct prepend_buffer {
char *buf;
int len;
};
enum mapping_flags {
AS_EIO = 0,
AS_ENOSPC = 1,
AS_MM_ALL_LOCKS = 2,
AS_UNEVICTABLE = 3,
AS_EXITING = 4,
AS_NO_WRITEBACK_TAGS = 5,
AS_LARGE_FOLIO_SUPPORT = 6,
AS_RELEASE_ALWAYS = 7,
AS_STABLE_WRITES = 8,
AS_UNMOVABLE = 9,
};
enum jbd_state_bits {
BH_JBD = 16,
BH_JWrite = 17,
BH_Freed = 18,
BH_Revoked = 19,
BH_RevokeValid = 20,
BH_JBDDirty = 21,
BH_JournalHead = 22,
BH_Shadow = 23,
BH_Verified = 24,
BH_JBDPrivateStart = 25,
};
struct ext4_io_end_vec {
struct list_head list;
loff_t offset;
ssize_t size;
};
struct ext4_io_end {
struct list_head list;
handle_t *handle;
struct inode *inode;
struct bio *bio;
unsigned int flag;
refcount_t count;
struct list_head list_vec;
};
typedef struct ext4_io_end ext4_io_end_t;
struct ext4_io_submit {
struct writeback_control *io_wbc;
struct bio *io_bio;
ext4_io_end_t *io_end;
sector_t io_next_block;
};
struct folio_iter {
struct folio *folio;
size_t offset;
size_t length;
struct folio *_next;
size_t _seg_count;
int _i;
};
enum {
FUSE_I_ADVISE_RDPLUS = 0,
FUSE_I_INIT_RDPLUS = 1,
FUSE_I_SIZE_UNSTABLE = 2,
FUSE_I_BAD = 3,
FUSE_I_BTIME = 4,
FUSE_I_CACHE_IO_MODE = 5,
};
struct fuse_forget_link;
struct fuse_submount_lookup;
struct fuse_backing;
struct fuse_inode {
struct inode inode;
u64 nodeid;
u64 nlookup;
struct fuse_forget_link *forget;
u64 i_time;
u32 inval_mask;
umode_t orig_i_mode;
struct timespec64 i_btime;
u64 orig_ino;
u64 attr_version;
union {
struct {
struct list_head write_files;
struct list_head queued_writes;
int writectr;
int iocachectr;
wait_queue_head_t page_waitq;
wait_queue_head_t direct_io_waitq;
struct rb_root writepages;
};
struct {
bool cached;
loff_t size;
loff_t pos;
u64 version;
struct timespec64 mtime;
u64 iversion;
spinlock_t lock;
} rdc;
};
unsigned long state;
struct mutex mutex;
spinlock_t lock;
struct fuse_submount_lookup *submount_lookup;
struct fuse_backing *fb;
};
struct fuse_forget_one {
uint64_t nodeid;
uint64_t nlookup;
};
struct fuse_forget_link {
struct fuse_forget_one forget_one;
struct fuse_forget_link *next;
};
struct fuse_submount_lookup {
refcount_t count;
u64 nodeid;
struct fuse_forget_link *forget;
};
struct fuse_backing {
struct file *file;
struct cred *cred;
refcount_t count;
struct callback_head rcu;
};
struct fuse_iqueue_ops;
struct fuse_iqueue {
unsigned int connected;
spinlock_t lock;
wait_queue_head_t waitq;
u64 reqctr;
struct list_head pending;
struct list_head interrupts;
struct fuse_forget_link forget_list_head;
struct fuse_forget_link *forget_list_tail;
int forget_batch;
struct fasync_struct *fasync;
const struct fuse_iqueue_ops *ops;
void *priv;
};
struct fuse_sync_bucket;
struct fuse_conn {
spinlock_t lock;
refcount_t count;
atomic_t dev_count;
struct callback_head rcu;
kuid_t user_id;
kgid_t group_id;
struct pid_namespace *pid_ns;
struct user_namespace *user_ns;
unsigned int max_read;
unsigned int max_write;
unsigned int max_pages;
unsigned int max_pages_limit;
struct fuse_iqueue iq;
atomic64_t khctr;
struct rb_root polled_files;
unsigned int max_background;
unsigned int congestion_threshold;
unsigned int num_background;
unsigned int active_background;
struct list_head bg_queue;
spinlock_t bg_lock;
int initialized;
int blocked;
wait_queue_head_t blocked_waitq;
unsigned int connected;
bool aborted;
unsigned int conn_error: 1;
unsigned int conn_init: 1;
unsigned int async_read: 1;
unsigned int abort_err: 1;
unsigned int atomic_o_trunc: 1;
unsigned int export_support: 1;
unsigned int writeback_cache: 1;
unsigned int parallel_dirops: 1;
unsigned int handle_killpriv: 1;
unsigned int cache_symlinks: 1;
unsigned int legacy_opts_show: 1;
unsigned int handle_killpriv_v2: 1;
unsigned int no_open: 1;
unsigned int no_opendir: 1;
unsigned int no_fsync: 1;
unsigned int no_fsyncdir: 1;
unsigned int no_flush: 1;
unsigned int no_setxattr: 1;
unsigned int setxattr_ext: 1;
unsigned int no_getxattr: 1;
unsigned int no_listxattr: 1;
unsigned int no_removexattr: 1;
unsigned int no_lock: 1;
unsigned int no_access: 1;
unsigned int no_create: 1;
unsigned int no_interrupt: 1;
unsigned int no_bmap: 1;
unsigned int no_poll: 1;
unsigned int big_writes: 1;
unsigned int dont_mask: 1;
unsigned int no_flock: 1;
unsigned int no_fallocate: 1;
unsigned int no_rename2: 1;
unsigned int auto_inval_data: 1;
unsigned int explicit_inval_data: 1;
unsigned int do_readdirplus: 1;
unsigned int readdirplus_auto: 1;
unsigned int async_dio: 1;
unsigned int no_lseek: 1;
unsigned int posix_acl: 1;
unsigned int default_permissions: 1;
unsigned int allow_other: 1;
unsigned int no_copy_file_range: 1;
unsigned int destroy: 1;
unsigned int delete_stale: 1;
unsigned int no_control: 1;
unsigned int no_force_umount: 1;
unsigned int auto_submounts: 1;
unsigned int sync_fs: 1;
unsigned int init_security: 1;
unsigned int create_supp_group: 1;
unsigned int inode_dax: 1;
unsigned int no_tmpfile: 1;
unsigned int direct_io_allow_mmap: 1;
unsigned int no_statx: 1;
unsigned int passthrough: 1;
int max_stack_depth;
atomic_t num_waiting;
unsigned int minor;
struct list_head entry;
dev_t dev;
struct dentry *ctl_dentry[5];
int ctl_ndents;
u32 scramble_key[4];
atomic64_t attr_version;
void (*release)(struct fuse_conn *);
struct rw_semaphore killsb;
struct list_head devices;
struct list_head mounts;
struct fuse_sync_bucket __attribute__((btf_type_tag("rcu"))) *curr_bucket;
struct idr backing_files_map;
};
struct fuse_iqueue_ops {
void (*wake_forget_and_unlock)(struct fuse_iqueue *);
void (*wake_interrupt_and_unlock)(struct fuse_iqueue *);
void (*wake_pending_and_unlock)(struct fuse_iqueue *);
void (*release)(struct fuse_iqueue *);
};
struct fuse_sync_bucket {
atomic_t count;
wait_queue_head_t waitq;
struct callback_head rcu;
};
struct fuse_mount {
struct fuse_conn *fc;
struct super_block *sb;
struct list_head fc_entry;
struct callback_head rcu;
};
struct btrfs_compr_pool {
struct shrinker *shrinker;
spinlock_t lock;
struct list_head list;
int count;
int thresh;
};
enum btrfs_compression_type {
BTRFS_COMPRESS_NONE = 0,
BTRFS_COMPRESS_ZLIB = 1,
BTRFS_COMPRESS_LZO = 2,
BTRFS_COMPRESS_ZSTD = 3,
BTRFS_NR_COMPRESS_TYPES = 4,
};
enum {
BIOSET_NEED_BVECS = 1,
BIOSET_NEED_RESCUER = 2,
BIOSET_PERCPU_CACHE = 4,
};
enum {
__EXTENT_FLAG_PINNED_BIT = 0,
EXTENT_FLAG_PINNED = 1,
__EXTENT_FLAG_PINNED_SEQ = 0,
__EXTENT_FLAG_COMPRESS_ZLIB_BIT = 1,
EXTENT_FLAG_COMPRESS_ZLIB = 2,
__EXTENT_FLAG_COMPRESS_ZLIB_SEQ = 1,
__EXTENT_FLAG_COMPRESS_LZO_BIT = 2,
EXTENT_FLAG_COMPRESS_LZO = 4,
__EXTENT_FLAG_COMPRESS_LZO_SEQ = 2,
__EXTENT_FLAG_COMPRESS_ZSTD_BIT = 3,
EXTENT_FLAG_COMPRESS_ZSTD = 8,
__EXTENT_FLAG_COMPRESS_ZSTD_SEQ = 3,
__EXTENT_FLAG_PREALLOC_BIT = 4,
EXTENT_FLAG_PREALLOC = 16,
__EXTENT_FLAG_PREALLOC_SEQ = 4,
__EXTENT_FLAG_LOGGING_BIT = 5,
EXTENT_FLAG_LOGGING = 32,
__EXTENT_FLAG_LOGGING_SEQ = 5,
__EXTENT_FLAG_FILLING_BIT = 6,
EXTENT_FLAG_FILLING = 64,
__EXTENT_FLAG_FILLING_SEQ = 6,
__EXTENT_FLAG_MERGED_BIT = 7,
EXTENT_FLAG_MERGED = 128,
__EXTENT_FLAG_MERGED_SEQ = 7,
};
struct bucket_item;
struct heuristic_ws {
u8 *sample;
u32 sample_size;
struct bucket_item *bucket;
struct bucket_item *bucket_b;
struct list_head list;
};
struct bucket_item {
u32 count;
};
struct btrfs_ordered_extent {
u64 file_offset;
u64 num_bytes;
u64 ram_bytes;
u64 disk_bytenr;
u64 disk_num_bytes;
u64 offset;
u64 bytes_left;
u64 truncated_len;
unsigned long flags;
int compress_type;
int qgroup_rsv;
refcount_t refs;
struct inode *inode;
struct list_head list;
struct list_head log_list;
wait_queue_head_t wait;
struct rb_node rb_node;
struct list_head root_extent_list;
struct btrfs_work work;
struct completion completion;
struct btrfs_work flush_work;
struct list_head work_list;
struct list_head bioc_list;
};
struct btrfs_ordered_sum {
u64 logical;
u32 len;
struct list_head list;
u8 sums[0];
};
struct extent_map {
struct rb_node rb_node;
u64 start;
u64 len;
u64 mod_start;
u64 mod_len;
u64 orig_start;
u64 orig_block_len;
u64 ram_bytes;
u64 block_start;
u64 block_len;
u64 generation;
u32 flags;
refcount_t refs;
struct list_head list;
};
struct cmac_desc_ctx {
unsigned int len;
u8 odds[0];
};
struct cmac_tfm_ctx {
struct crypto_cipher *child;
__be64 consts[0];
};
struct sha512_state;
typedef void sha512_block_fn(struct sha512_state *, const u8 *, int);
struct sha512_state {
u64 state[8];
u64 count[2];
u8 buf[128];
};
enum {
IO_CHECK_CQ_OVERFLOW_BIT = 0,
IO_CHECK_CQ_DROPPED_BIT = 1,
};
struct io_napi_entry {
unsigned int napi_id;
struct list_head list;
unsigned long timeout;
struct hlist_node node;
struct callback_head rcu;
};
struct io_wait_queue {
struct wait_queue_entry wq;
struct io_ring_ctx *ctx;
unsigned int cq_tail;
unsigned int nr_timeouts;
ktime_t timeout;
unsigned int napi_busy_poll_to;
bool napi_prefer_busy_poll;
};
struct io_uring_napi {
__u32 busy_poll_to;
__u8 prefer_busy_poll;
__u8 pad[3];
__u64 resv;
};
struct acpi_rsconvert_info {
u8 opcode;
u8 resource_offset;
u8 aml_offset;
u8 value;
};
struct aml_resource_small_header {
u8 descriptor_type;
};
struct aml_resource_large_header {
u8 descriptor_type;
u16 resource_length;
} __attribute__((packed));
struct aml_resource_irq {
u8 descriptor_type;
u16 irq_mask;
u8 flags;
} __attribute__((packed));
struct aml_resource_dma {
u8 descriptor_type;
u8 dma_channel_mask;
u8 flags;
};
struct aml_resource_start_dependent {
u8 descriptor_type;
u8 flags;
};
struct aml_resource_end_dependent {
u8 descriptor_type;
};
struct aml_resource_io {
u8 descriptor_type;
u8 flags;
u16 minimum;
u16 maximum;
u8 alignment;
u8 address_length;
};
struct aml_resource_fixed_io {
u8 descriptor_type;
u16 address;
u8 address_length;
} __attribute__((packed));
struct aml_resource_fixed_dma {
u8 descriptor_type;
u16 request_lines;
u16 channels;
u8 width;
} __attribute__((packed));
struct aml_resource_vendor_small {
u8 descriptor_type;
};
struct aml_resource_end_tag {
u8 descriptor_type;
u8 checksum;
};
struct aml_resource_memory24 {
u8 descriptor_type;
u16 resource_length;
u8 flags;
u16 minimum;
u16 maximum;
u16 alignment;
u16 address_length;
} __attribute__((packed));
struct aml_resource_generic_register {
u8 descriptor_type;
u16 resource_length;
u8 address_space_id;
u8 bit_width;
u8 bit_offset;
u8 access_size;
u64 address;
} __attribute__((packed));
struct aml_resource_vendor_large {
u8 descriptor_type;
u16 resource_length;
} __attribute__((packed));
struct aml_resource_memory32 {
u8 descriptor_type;
u16 resource_length;
u8 flags;
u32 minimum;
u32 maximum;
u32 alignment;
u32 address_length;
} __attribute__((packed));
struct aml_resource_fixed_memory32 {
u8 descriptor_type;
u16 resource_length;
u8 flags;
u32 address;
u32 address_length;
} __attribute__((packed));
struct aml_resource_address16 {
u8 descriptor_type;
u16 resource_length;
u8 resource_type;
u8 flags;
u8 specific_flags;
u16 granularity;
u16 minimum;
u16 maximum;
u16 translation_offset;
u16 address_length;
} __attribute__((packed));
struct aml_resource_address32 {
u8 descriptor_type;
u16 resource_length;
u8 resource_type;
u8 flags;
u8 specific_flags;
u32 granularity;
u32 minimum;
u32 maximum;
u32 translation_offset;
u32 address_length;
} __attribute__((packed));
struct aml_resource_address64 {
u8 descriptor_type;
u16 resource_length;
u8 resource_type;
u8 flags;
u8 specific_flags;
u64 granularity;
u64 minimum;
u64 maximum;
u64 translation_offset;
u64 address_length;
} __attribute__((packed));
struct aml_resource_extended_address64 {
u8 descriptor_type;
u16 resource_length;
u8 resource_type;
u8 flags;
u8 specific_flags;
u8 revision_ID;
u8 reserved;
u64 granularity;
u64 minimum;
u64 maximum;
u64 translation_offset;
u64 address_length;
u64 type_specific;
} __attribute__((packed));
struct aml_resource_extended_irq {
u8 descriptor_type;
u16 resource_length;
u8 flags;
u8 interrupt_count;
union {
u32 interrupt;
struct {
struct {} __Empty_interrupts;
u32 interrupts[0];
};
};
} __attribute__((packed));
struct aml_resource_gpio {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 connection_type;
u16 flags;
u16 int_flags;
u8 pin_config;
u16 drive_strength;
u16 debounce_timeout;
u16 pin_table_offset;
u8 res_source_index;
u16 res_source_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_i2c_serialbus {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 res_source_index;
u8 type;
u8 flags;
u16 type_specific_flags;
u8 type_revision_id;
u16 type_data_length;
u32 connection_speed;
u16 slave_address;
} __attribute__((packed));
struct aml_resource_spi_serialbus {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 res_source_index;
u8 type;
u8 flags;
u16 type_specific_flags;
u8 type_revision_id;
u16 type_data_length;
u32 connection_speed;
u8 data_bit_length;
u8 clock_phase;
u8 clock_polarity;
u16 device_selection;
} __attribute__((packed));
struct aml_resource_uart_serialbus {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 res_source_index;
u8 type;
u8 flags;
u16 type_specific_flags;
u8 type_revision_id;
u16 type_data_length;
u32 default_baud_rate;
u16 rx_fifo_size;
u16 tx_fifo_size;
u8 parity;
u8 lines_enabled;
} __attribute__((packed));
struct aml_resource_csi2_serialbus {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 res_source_index;
u8 type;
u8 flags;
u16 type_specific_flags;
u8 type_revision_id;
u16 type_data_length;
} __attribute__((packed));
struct aml_resource_common_serialbus {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u8 res_source_index;
u8 type;
u8 flags;
u16 type_specific_flags;
u8 type_revision_id;
u16 type_data_length;
} __attribute__((packed));
struct aml_resource_pin_function {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u8 pin_config;
u16 function_number;
u16 pin_table_offset;
u8 res_source_index;
u16 res_source_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_pin_config {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u8 pin_config_type;
u32 pin_config_value;
u16 pin_table_offset;
u8 res_source_index;
u16 res_source_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_pin_group {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u16 pin_table_offset;
u16 label_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_pin_group_function {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u16 function_number;
u8 res_source_index;
u16 res_source_offset;
u16 res_source_label_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_pin_group_config {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u8 pin_config_type;
u32 pin_config_value;
u8 res_source_index;
u16 res_source_offset;
u16 res_source_label_offset;
u16 vendor_offset;
u16 vendor_length;
} __attribute__((packed));
struct aml_resource_clock_input {
u8 descriptor_type;
u16 resource_length;
u8 revision_id;
u16 flags;
u16 frequency_divisor;
u32 frequency_numerator;
} __attribute__((packed));
struct aml_resource_address {
u8 descriptor_type;
u16 resource_length;
u8 resource_type;
u8 flags;
u8 specific_flags;
} __attribute__((packed));
union aml_resource {
u8 descriptor_type;
struct aml_resource_small_header small_header;
struct aml_resource_large_header large_header;
struct aml_resource_irq irq;
struct aml_resource_dma dma;
struct aml_resource_start_dependent start_dpf;
struct aml_resource_end_dependent end_dpf;
struct aml_resource_io io;
struct aml_resource_fixed_io fixed_io;
struct aml_resource_fixed_dma fixed_dma;
struct aml_resource_vendor_small vendor_small;
struct aml_resource_end_tag end_tag;
struct aml_resource_memory24 memory24;
struct aml_resource_generic_register generic_reg;
struct aml_resource_vendor_large vendor_large;
struct aml_resource_memory32 memory32;
struct aml_resource_fixed_memory32 fixed_memory32;
struct aml_resource_address16 address16;
struct aml_resource_address32 address32;
struct aml_resource_address64 address64;
struct aml_resource_extended_address64 ext_address64;
struct aml_resource_extended_irq extended_irq;
struct aml_resource_gpio gpio;
struct aml_resource_i2c_serialbus i2c_serial_bus;
struct aml_resource_spi_serialbus spi_serial_bus;
struct aml_resource_uart_serialbus uart_serial_bus;
struct aml_resource_csi2_serialbus csi2_serial_bus;
struct aml_resource_common_serialbus common_serial_bus;
struct aml_resource_pin_function pin_function;
struct aml_resource_pin_config pin_config;
struct aml_resource_pin_group pin_group;
struct aml_resource_pin_group_function pin_group_function;
struct aml_resource_pin_group_config pin_group_config;
struct aml_resource_clock_input clock_input;
struct aml_resource_address address;
u32 dword_item;
u16 word_item;
u8 byte_item;
};
enum {
ACPI_RSC_INITGET = 0,
ACPI_RSC_INITSET = 1,
ACPI_RSC_FLAGINIT = 2,
ACPI_RSC_1BITFLAG = 3,
ACPI_RSC_2BITFLAG = 4,
ACPI_RSC_3BITFLAG = 5,
ACPI_RSC_6BITFLAG = 6,
ACPI_RSC_ADDRESS = 7,
ACPI_RSC_BITMASK = 8,
ACPI_RSC_BITMASK16 = 9,
ACPI_RSC_COUNT = 10,
ACPI_RSC_COUNT16 = 11,
ACPI_RSC_COUNT_GPIO_PIN = 12,
ACPI_RSC_COUNT_GPIO_RES = 13,
ACPI_RSC_COUNT_GPIO_VEN = 14,
ACPI_RSC_COUNT_SERIAL_RES = 15,
ACPI_RSC_COUNT_SERIAL_VEN = 16,
ACPI_RSC_DATA8 = 17,
ACPI_RSC_EXIT_EQ = 18,
ACPI_RSC_EXIT_LE = 19,
ACPI_RSC_EXIT_NE = 20,
ACPI_RSC_LENGTH = 21,
ACPI_RSC_MOVE_GPIO_PIN = 22,
ACPI_RSC_MOVE_GPIO_RES = 23,
ACPI_RSC_MOVE_SERIAL_RES = 24,
ACPI_RSC_MOVE_SERIAL_VEN = 25,
ACPI_RSC_MOVE8 = 26,
ACPI_RSC_MOVE16 = 27,
ACPI_RSC_MOVE32 = 28,
ACPI_RSC_MOVE64 = 29,
ACPI_RSC_SET8 = 30,
ACPI_RSC_SOURCE = 31,
ACPI_RSC_SOURCEX = 32,
};
typedef u16 acpi_rs_length;
typedef u32 acpi_rsdesc_size;
struct acpi_rw_lock {
void *writer_mutex;
void *reader_mutex;
u32 num_readers;
};
typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **);
enum xa_lock_type {
XA_LOCK_IRQ = 1,
XA_LOCK_BH = 2,
};
struct swnode {
struct kobject kobj;
struct fwnode_handle fwnode;
const struct software_node *node;
int id;
struct ida child_ids;
struct list_head entry;
struct list_head children;
struct swnode *parent;
unsigned int allocated: 1;
unsigned int managed: 1;
};
struct e1000_stats {
char stat_string[32];
int type;
int sizeof_stat;
int stat_offset;
};
enum {
NETIF_MSG_DRV_BIT = 0,
NETIF_MSG_PROBE_BIT = 1,
NETIF_MSG_LINK_BIT = 2,
NETIF_MSG_TIMER_BIT = 3,
NETIF_MSG_IFDOWN_BIT = 4,
NETIF_MSG_IFUP_BIT = 5,
NETIF_MSG_RX_ERR_BIT = 6,
NETIF_MSG_TX_ERR_BIT = 7,
NETIF_MSG_TX_QUEUED_BIT = 8,
NETIF_MSG_INTR_BIT = 9,
NETIF_MSG_TX_DONE_BIT = 10,
NETIF_MSG_RX_STATUS_BIT = 11,
NETIF_MSG_PKTDATA_BIT = 12,
NETIF_MSG_HW_BIT = 13,
NETIF_MSG_WOL_BIT = 14,
NETIF_MSG_CLASS_COUNT = 15,
};
enum e1000_state_t {
__E1000_TESTING = 0,
__E1000_RESETTING = 1,
__E1000_DOWN = 2,
__E1000_DISABLED = 3,
};
enum ethtool_test_flags {
ETH_TEST_FL_OFFLINE = 1,
ETH_TEST_FL_FAILED = 2,
ETH_TEST_FL_EXTERNAL_LB = 4,
ETH_TEST_FL_EXTERNAL_LB_DONE = 8,
};
enum ethtool_stringset {
ETH_SS_TEST = 0,
ETH_SS_STATS = 1,
ETH_SS_PRIV_FLAGS = 2,
ETH_SS_NTUPLE_FILTERS = 3,
ETH_SS_FEATURES = 4,
ETH_SS_RSS_HASH_FUNCS = 5,
ETH_SS_TUNABLES = 6,
ETH_SS_PHY_STATS = 7,
ETH_SS_PHY_TUNABLES = 8,
ETH_SS_LINK_MODES = 9,
ETH_SS_MSG_CLASSES = 10,
ETH_SS_WOL_MODES = 11,
ETH_SS_SOF_TIMESTAMPING = 12,
ETH_SS_TS_TX_TYPES = 13,
ETH_SS_TS_RX_FILTERS = 14,
ETH_SS_UDP_TUNNEL_TYPES = 15,
ETH_SS_STATS_STD = 16,
ETH_SS_STATS_ETH_PHY = 17,
ETH_SS_STATS_ETH_MAC = 18,
ETH_SS_STATS_ETH_CTRL = 19,
ETH_SS_STATS_RMON = 20,
ETH_SS_COUNT = 21,
};
enum {
NETDEV_STATS = 0,
E1000_STATS = 1,
};
enum ethtool_link_mode_bit_indices {
ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
ETHTOOL_LINK_MODE_TP_BIT = 7,
ETHTOOL_LINK_MODE_AUI_BIT = 8,
ETHTOOL_LINK_MODE_MII_BIT = 9,
ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
ETHTOOL_LINK_MODE_BNC_BIT = 11,
ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
ETHTOOL_LINK_MODE_Pause_BIT = 13,
ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
ETHTOOL_LINK_MODE_Backplane_BIT = 16,
ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52,
ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53,
ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54,
ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55,
ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56,
ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57,
ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58,
ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59,
ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60,
ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61,
ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62,
ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63,
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74,
ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75,
ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76,
ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77,
ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78,
ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79,
ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80,
ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81,
ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82,
ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83,
ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84,
ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85,
ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86,
ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87,
ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88,
ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89,
ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90,
ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91,
ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92,
ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93,
ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94,
ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95,
ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96,
ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97,
ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98,
ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99,
ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
__ETHTOOL_LINK_MODE_MASK_NBITS = 102,
};
struct e1000_tx_desc {
__le64 buffer_addr;
union {
__le32 data;
struct {
__le16 length;
u8 cso;
u8 cmd;
} flags;
} lower;
union {
__le32 data;
struct {
u8 status;
u8 css;
__le16 special;
} fields;
} upper;
};
struct e1000_rx_desc {
__le64 buffer_addr;
__le16 length;
__le16 csum;
u8 status;
u8 errors;
__le16 special;
};
typedef enum {
e1000_undefined___2 = 0,
e1000_82542_rev2_0 = 1,
e1000_82542_rev2_1 = 2,
e1000_82543 = 3,
e1000_82544 = 4,
e1000_82540 = 5,
e1000_82545 = 6,
e1000_82545_rev_3 = 7,
e1000_82546 = 8,
e1000_ce4100 = 9,
e1000_82546_rev_3 = 10,
e1000_82541 = 11,
e1000_82541_rev_2 = 12,
e1000_82547 = 13,
e1000_82547_rev_2 = 14,
e1000_num_macs___2 = 15,
} e1000_mac_type;
typedef enum {
e1000_phy_m88___3 = 0,
e1000_phy_igp___3 = 1,
e1000_phy_8211 = 2,
e1000_phy_8201 = 3,
e1000_phy_undefined = 255,
} e1000_phy_type;
typedef enum {
e1000_media_type_copper___2 = 0,
e1000_media_type_fiber___2 = 1,
e1000_media_type_internal_serdes___2 = 2,
e1000_num_media_types___2 = 3,
} e1000_media_type;
typedef enum {
E1000_FC_NONE = 0,
E1000_FC_RX_PAUSE = 1,
E1000_FC_TX_PAUSE = 2,
E1000_FC_FULL = 3,
E1000_FC_DEFAULT = 255,
} e1000_fc_type;
typedef enum {
e1000_bus_speed_unknown___2 = 0,
e1000_bus_speed_33___2 = 1,
e1000_bus_speed_66___2 = 2,
e1000_bus_speed_100___2 = 3,
e1000_bus_speed_120___2 = 4,
e1000_bus_speed_133___2 = 5,
e1000_bus_speed_reserved___2 = 6,
} e1000_bus_speed;
typedef enum {
e1000_bus_width_unknown___2 = 0,
e1000_bus_width_32___2 = 1,
e1000_bus_width_64___2 = 2,
e1000_bus_width_reserved___2 = 3,
} e1000_bus_width;
typedef enum {
e1000_bus_type_unknown___2 = 0,
e1000_bus_type_pci___2 = 1,
e1000_bus_type_pcix___2 = 2,
e1000_bus_type_reserved___2 = 3,
} e1000_bus_type;
typedef enum {
e1000_eeprom_uninitialized = 0,
e1000_eeprom_spi = 1,
e1000_eeprom_microwire = 2,
e1000_eeprom_flash = 3,
e1000_eeprom_none = 4,
e1000_num_eeprom_types = 5,
} e1000_eeprom_type;
struct e1000_eeprom_info {
e1000_eeprom_type type;
u16 word_size;
u16 opcode_bits;
u16 address_bits;
u16 delay_usec;
u16 page_size;
};
typedef enum {
e1000_ms_hw_default___2 = 0,
e1000_ms_force_master___2 = 1,
e1000_ms_force_slave___2 = 2,
e1000_ms_auto___2 = 3,
} e1000_ms_type;
typedef enum {
e1000_ffe_config_enabled = 0,
e1000_ffe_config_active = 1,
e1000_ffe_config_blocked = 2,
} e1000_ffe_config;
typedef enum {
e1000_smart_speed_default___2 = 0,
e1000_smart_speed_on___2 = 1,
e1000_smart_speed_off___2 = 2,
} e1000_smart_speed;
typedef enum {
e1000_dsp_config_disabled = 0,
e1000_dsp_config_enabled = 1,
e1000_dsp_config_activated = 2,
e1000_dsp_config_undefined = 255,
} e1000_dsp_config;
struct e1000_shadow_ram___2;
struct e1000_hw___3 {
u8 *hw_addr;
u8 *flash_address;
void *ce4100_gbe_mdio_base_virt;
e1000_mac_type mac_type;
e1000_phy_type phy_type;
u32 phy_init_script;
e1000_media_type media_type;
void *back;
struct e1000_shadow_ram___2 *eeprom_shadow_ram;
u32 flash_bank_size;
u32 flash_base_addr;
e1000_fc_type fc;
e1000_bus_speed bus_speed;
e1000_bus_width bus_width;
e1000_bus_type bus_type;
struct e1000_eeprom_info eeprom;
e1000_ms_type master_slave;
e1000_ms_type original_master_slave;
e1000_ffe_config ffe_config_state;
u32 asf_firmware_present;
u32 eeprom_semaphore_present;
unsigned long io_base;
u32 phy_id;
u32 phy_revision;
u32 phy_addr;
u32 original_fc;
u32 txcw;
u32 autoneg_failed;
u32 max_frame_size;
u32 min_frame_size;
u32 mc_filter_type;
u32 num_mc_addrs;
u32 collision_delta;
u32 tx_packet_delta;
u32 ledctl_default;
u32 ledctl_mode1;
u32 ledctl_mode2;
bool tx_pkt_filtering;
struct e1000_host_mng_dhcp_cookie mng_cookie;
u16 phy_spd_default;
u16 autoneg_advertised;
u16 pci_cmd_word;
u16 fc_high_water;
u16 fc_low_water;
u16 fc_pause_time;
u16 current_ifs_val;
u16 ifs_min_val;
u16 ifs_max_val;
u16 ifs_step_size;
u16 ifs_ratio;
u16 device_id;
u16 vendor_id;
u16 subsystem_id;
u16 subsystem_vendor_id;
u8 revision_id;
u8 autoneg;
u8 mdix;
u8 forced_speed_duplex;
u8 wait_autoneg_complete;
u8 dma_fairness;
u8 mac_addr[6];
u8 perm_mac_addr[6];
bool disable_polarity_correction;
bool speed_downgraded;
e1000_smart_speed smart_speed;
e1000_dsp_config dsp_config_state;
bool get_link_status;
bool serdes_has_link;
bool tbi_compatibility_en;
bool tbi_compatibility_on;
bool laa_is_present;
bool phy_reset_disable;
bool initialize_hw_bits_disable;
bool fc_send_xon;
bool fc_strict_ieee;
bool report_tx_early;
bool adaptive_ifs;
bool ifs_params_forced;
bool in_ifs_mode;
bool mng_reg_access_disabled;
bool leave_av_bit_off;
bool bad_tx_carr_stats_fd;
bool has_smbus;
};
struct e1000_shadow_ram___2 {
u16 eeprom_word;
bool modified;
};
struct e1000_hw_stats___3 {
u64 crcerrs;
u64 algnerrc;
u64 symerrs;
u64 rxerrc;
u64 txerrc;
u64 mpc;
u64 scc;
u64 ecol;
u64 mcc;
u64 latecol;
u64 colc;
u64 dc;
u64 tncrs;
u64 sec;
u64 cexterr;
u64 rlec;
u64 xonrxc;
u64 xontxc;
u64 xoffrxc;
u64 xofftxc;
u64 fcruc;
u64 prc64;
u64 prc127;
u64 prc255;
u64 prc511;
u64 prc1023;
u64 prc1522;
u64 gprc;
u64 bprc;
u64 mprc;
u64 gptc;
u64 gorcl;
u64 gorch;
u64 gotcl;
u64 gotch;
u64 rnbc;
u64 ruc;
u64 rfc;
u64 roc;
u64 rlerrc;
u64 rjc;
u64 mgprc;
u64 mgpdc;
u64 mgptc;
u64 torl;
u64 torh;
u64 totl;
u64 toth;
u64 tpr;
u64 tpt;
u64 ptc64;
u64 ptc127;
u64 ptc255;
u64 ptc511;
u64 ptc1023;
u64 ptc1522;
u64 mptc;
u64 bptc;
u64 tsctc;
u64 tsctfc;
u64 iac;
u64 icrxptc;
u64 icrxatc;
u64 ictxptc;
u64 ictxatc;
u64 ictxqec;
u64 ictxqmtc;
u64 icrxdmtc;
u64 icrxoc;
};
typedef enum {
e1000_cable_length_50 = 0,
e1000_cable_length_50_80 = 1,
e1000_cable_length_80_110 = 2,
e1000_cable_length_110_140 = 3,
e1000_cable_length_140 = 4,
e1000_cable_length_undefined = 255,
} e1000_cable_length;
typedef enum {
e1000_10bt_ext_dist_enable_normal = 0,
e1000_10bt_ext_dist_enable_lower = 1,
e1000_10bt_ext_dist_enable_undefined = 255,
} e1000_10bt_ext_dist_enable;
typedef enum {
e1000_rev_polarity_normal___2 = 0,
e1000_rev_polarity_reversed___2 = 1,
e1000_rev_polarity_undefined___2 = 255,
} e1000_rev_polarity;
typedef enum {
e1000_downshift_normal = 0,
e1000_downshift_activated = 1,
e1000_downshift_undefined = 255,
} e1000_downshift;
typedef enum {
e1000_polarity_reversal_enabled = 0,
e1000_polarity_reversal_disabled = 1,
e1000_polarity_reversal_undefined = 255,
} e1000_polarity_reversal;
typedef enum {
e1000_auto_x_mode_manual_mdi = 0,
e1000_auto_x_mode_manual_mdix = 1,
e1000_auto_x_mode_auto1 = 2,
e1000_auto_x_mode_auto2 = 3,
e1000_auto_x_mode_undefined = 255,
} e1000_auto_x_mode;
typedef enum {
e1000_1000t_rx_status_not_ok___2 = 0,
e1000_1000t_rx_status_ok___2 = 1,
e1000_1000t_rx_status_undefined___2 = 255,
} e1000_1000t_rx_status;
struct e1000_phy_info___3 {
e1000_cable_length cable_length;
e1000_10bt_ext_dist_enable extended_10bt_distance;
e1000_rev_polarity cable_polarity;
e1000_downshift downshift;
e1000_polarity_reversal polarity_correction;
e1000_auto_x_mode mdix_mode;
e1000_1000t_rx_status local_rx;
e1000_1000t_rx_status remote_rx;
};
struct e1000_tx_buffer;
struct e1000_tx_ring {
void *desc;
dma_addr_t dma;
unsigned int size;
unsigned int count;
unsigned int next_to_use;
unsigned int next_to_clean;
struct e1000_tx_buffer *buffer_info;
u16 tdh;
u16 tdt;
bool last_tx_tso;
};
struct e1000_rx_buffer;
struct e1000_rx_ring {
void *desc;
dma_addr_t dma;
unsigned int size;
unsigned int count;
unsigned int next_to_use;
unsigned int next_to_clean;
struct e1000_rx_buffer *buffer_info;
struct sk_buff *rx_skb_top;
int cpu;
u16 rdh;
u16 rdt;
};
struct e1000_adapter___2 {
unsigned long active_vlans[64];
u16 mng_vlan_id;
u32 bd_number;
u32 rx_buffer_len;
u32 wol;
u32 smartspeed;
u32 en_mng_pt;
u16 link_speed;
u16 link_duplex;
spinlock_t stats_lock;
unsigned int total_tx_bytes;
unsigned int total_tx_packets;
unsigned int total_rx_bytes;
unsigned int total_rx_packets;
u32 itr;
u32 itr_setting;
u16 tx_itr;
u16 rx_itr;
u8 fc_autoneg;
struct e1000_tx_ring *tx_ring;
unsigned int restart_queue;
u32 txd_cmd;
u32 tx_int_delay;
u32 tx_abs_int_delay;
u32 gotcl;
u64 gotcl_old;
u64 tpt_old;
u64 colc_old;
u32 tx_timeout_count;
u32 tx_fifo_head;
u32 tx_head_addr;
u32 tx_fifo_size;
u8 tx_timeout_factor;
atomic_t tx_fifo_stall;
bool pcix_82544;
bool detect_tx_hung;
bool dump_buffers;
bool (*clean_rx)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int *, int);
void (*alloc_rx_buf)(struct e1000_adapter___2 *, struct e1000_rx_ring *, int);
struct e1000_rx_ring *rx_ring;
struct napi_struct napi;
int num_tx_queues;
int num_rx_queues;
u64 hw_csum_err;
u64 hw_csum_good;
u32 alloc_rx_buff_failed;
u32 rx_int_delay;
u32 rx_abs_int_delay;
bool rx_csum;
u32 gorcl;
u64 gorcl_old;
struct net_device *netdev;
struct pci_dev *pdev;
struct e1000_hw___3 hw;
struct e1000_hw_stats___3 stats;
struct e1000_phy_info___3 phy_info;
struct e1000_phy_stats phy_stats;
u32 test_icr;
struct e1000_tx_ring test_tx_ring;
struct e1000_rx_ring test_rx_ring;
int msg_enable;
bool tso_force;
bool smart_power_down;
bool quad_port_a;
unsigned long flags;
u32 eeprom_wol;
int bars;
int need_ioport;
bool discarding;
struct work_struct reset_task;
struct delayed_work watchdog_task;
struct delayed_work fifo_stall_task;
struct delayed_work phy_info_task;
};
struct e1000_tx_buffer {
struct sk_buff *skb;
dma_addr_t dma;
unsigned long time_stamp;
u16 length;
u16 next_to_watch;
bool mapped_as_page;
unsigned short segs;
unsigned int bytecount;
};
struct e1000_rx_buffer {
union {
struct page *page;
u8 *data;
} rxbuf;
dma_addr_t dma;
};
enum CMD_MODE {
CMD_ASYNC = 1,
CMD_WANT_SKB = 2,
CMD_SEND_IN_RFKILL = 4,
CMD_BLOCK_TXQS = 8,
CMD_SEND_IN_D3 = 16,
};
enum iwl_sf_scenario {
SF_SCENARIO_SINGLE_UNICAST = 0,
SF_SCENARIO_AGG_UNICAST = 1,
SF_SCENARIO_MULTICAST = 2,
SF_SCENARIO_BA_RESP = 3,
SF_SCENARIO_TX_RESP = 4,
SF_NUM_SCENARIO = 5,
};
struct iwl_sf_cfg_cmd {
__le32 state;
__le32 watermark[2];
__le32 long_delay_timeouts[10];
__le32 full_on_timeouts[10];
};
struct iwl_mvm_active_iface_iterator_data {
struct ieee80211_vif *ignore_vif;
struct ieee80211_sta *sta_vif_ap_sta;
enum iwl_sf_state sta_vif_state;
u32 num_active_macs;
};
struct rtw8822c_dpk_data {
u8 txbb;
u8 pga;
u8 limited_pga;
u8 agc_cnt;
bool loss_only;
bool gain_only;
u8 path;
};
struct rtw_phy_cck_pd_reg {
u32 reg_pd;
u32 mask_pd;
u32 reg_cs;
u32 mask_cs;
};
enum rtw_fwcd_item {
RTW_FWCD_TLV = 0,
RTW_FWCD_REG = 1,
RTW_FWCD_ROM = 2,
RTW_FWCD_IMEM = 3,
RTW_FWCD_DMEM = 4,
RTW_FWCD_EMEM = 5,
};
enum rtw_sc_offset {
RTW_SC_DONT_CARE = 0,
RTW_SC_20_UPPER = 1,
RTW_SC_20_LOWER = 2,
RTW_SC_20_UPMOST = 3,
RTW_SC_20_LOWEST = 4,
RTW_SC_40_UPPER = 9,
RTW_SC_40_LOWER = 10,
};
enum rtw_rx_desc_enc {
RX_DESC_ENC_NONE = 0,
RX_DESC_ENC_WEP40 = 1,
RX_DESC_ENC_TKIP_WO_MIC = 2,
RX_DESC_ENC_TKIP_MIC = 3,
RX_DESC_ENC_AES = 4,
RX_DESC_ENC_WEP104 = 5,
};
enum rtw_trx_desc_rate {
DESC_RATE1M = 0,
DESC_RATE2M = 1,
DESC_RATE5_5M = 2,
DESC_RATE11M = 3,
DESC_RATE6M = 4,
DESC_RATE9M = 5,
DESC_RATE12M = 6,
DESC_RATE18M = 7,
DESC_RATE24M = 8,
DESC_RATE36M = 9,
DESC_RATE48M = 10,
DESC_RATE54M = 11,
DESC_RATEMCS0 = 12,
DESC_RATEMCS1 = 13,
DESC_RATEMCS2 = 14,
DESC_RATEMCS3 = 15,
DESC_RATEMCS4 = 16,
DESC_RATEMCS5 = 17,
DESC_RATEMCS6 = 18,
DESC_RATEMCS7 = 19,
DESC_RATEMCS8 = 20,
DESC_RATEMCS9 = 21,
DESC_RATEMCS10 = 22,
DESC_RATEMCS11 = 23,
DESC_RATEMCS12 = 24,
DESC_RATEMCS13 = 25,
DESC_RATEMCS14 = 26,
DESC_RATEMCS15 = 27,
DESC_RATEMCS16 = 28,
DESC_RATEMCS17 = 29,
DESC_RATEMCS18 = 30,
DESC_RATEMCS19 = 31,
DESC_RATEMCS20 = 32,
DESC_RATEMCS21 = 33,
DESC_RATEMCS22 = 34,
DESC_RATEMCS23 = 35,
DESC_RATEMCS24 = 36,
DESC_RATEMCS25 = 37,
DESC_RATEMCS26 = 38,
DESC_RATEMCS27 = 39,
DESC_RATEMCS28 = 40,
DESC_RATEMCS29 = 41,
DESC_RATEMCS30 = 42,
DESC_RATEMCS31 = 43,
DESC_RATEVHT1SS_MCS0 = 44,
DESC_RATEVHT1SS_MCS1 = 45,
DESC_RATEVHT1SS_MCS2 = 46,
DESC_RATEVHT1SS_MCS3 = 47,
DESC_RATEVHT1SS_MCS4 = 48,
DESC_RATEVHT1SS_MCS5 = 49,
DESC_RATEVHT1SS_MCS6 = 50,
DESC_RATEVHT1SS_MCS7 = 51,
DESC_RATEVHT1SS_MCS8 = 52,
DESC_RATEVHT1SS_MCS9 = 53,
DESC_RATEVHT2SS_MCS0 = 54,
DESC_RATEVHT2SS_MCS1 = 55,
DESC_RATEVHT2SS_MCS2 = 56,
DESC_RATEVHT2SS_MCS3 = 57,
DESC_RATEVHT2SS_MCS4 = 58,
DESC_RATEVHT2SS_MCS5 = 59,
DESC_RATEVHT2SS_MCS6 = 60,
DESC_RATEVHT2SS_MCS7 = 61,
DESC_RATEVHT2SS_MCS8 = 62,
DESC_RATEVHT2SS_MCS9 = 63,
DESC_RATEVHT3SS_MCS0 = 64,
DESC_RATEVHT3SS_MCS1 = 65,
DESC_RATEVHT3SS_MCS2 = 66,
DESC_RATEVHT3SS_MCS3 = 67,
DESC_RATEVHT3SS_MCS4 = 68,
DESC_RATEVHT3SS_MCS5 = 69,
DESC_RATEVHT3SS_MCS6 = 70,
DESC_RATEVHT3SS_MCS7 = 71,
DESC_RATEVHT3SS_MCS8 = 72,
DESC_RATEVHT3SS_MCS9 = 73,
DESC_RATEVHT4SS_MCS0 = 74,
DESC_RATEVHT4SS_MCS1 = 75,
DESC_RATEVHT4SS_MCS2 = 76,
DESC_RATEVHT4SS_MCS3 = 77,
DESC_RATEVHT4SS_MCS4 = 78,
DESC_RATEVHT4SS_MCS5 = 79,
DESC_RATEVHT4SS_MCS6 = 80,
DESC_RATEVHT4SS_MCS7 = 81,
DESC_RATEVHT4SS_MCS8 = 82,
DESC_RATEVHT4SS_MCS9 = 83,
DESC_RATE_MAX = 84,
};
enum rtw_rate_section {
RTW_RATE_SECTION_CCK = 0,
RTW_RATE_SECTION_OFDM = 1,
RTW_RATE_SECTION_HT_1S = 2,
RTW_RATE_SECTION_HT_2S = 3,
RTW_RATE_SECTION_VHT_1S = 4,
RTW_RATE_SECTION_VHT_2S = 5,
RTW_RATE_SECTION_MAX = 6,
};
enum rtw_dm_cap {
RTW_DM_CAP_NA = 0,
RTW_DM_CAP_TXGAPK = 1,
RTW_DM_CAP_NUM = 2,
};
enum rtw_rf_band {
RF_BAND_2G_CCK = 0,
RF_BAND_2G_OFDM = 1,
RF_BAND_5G_L = 2,
RF_BAND_5G_M = 3,
RF_BAND_5G_H = 4,
RF_BAND_MAX = 5,
};
enum rtw8822c_dpk_one_shot_action {
RTW_DPK_CAL_PWR = 0,
RTW_DPK_GAIN_LOSS = 1,
RTW_DPK_DO_DPK = 2,
RTW_DPK_DPK_ON = 3,
RTW_DPK_DAGC = 4,
RTW_DPK_ACTION_MAX = 5,
};
enum rtw8822c_dpk_agc_phase {
RTW_DPK_GAIN_CHECK = 0,
RTW_DPK_GAIN_LARGE = 1,
RTW_DPK_GAIN_LESS = 2,
RTW_DPK_GL_LARGE = 3,
RTW_DPK_GL_LESS = 4,
RTW_DPK_LOSS_CHECK = 5,
RTW_DPK_AGC_OUT = 6,
};
enum coex_wl_link_mode {
COEX_WLINK_2G1PORT = 0,
COEX_WLINK_5G = 3,
COEX_WLINK_2GFREE = 7,
COEX_WLINK_MAX = 8,
};
struct rtw8822ce_efuse {
u8 mac_addr[6];
u8 vender_id[2];
u8 device_id[2];
u8 sub_vender_id[2];
u8 sub_device_id[2];
u8 pmc[2];
u8 exp_device_cap[2];
u8 msi_cap;
u8 ltr_cap;
u8 exp_link_control[2];
u8 link_cap[4];
u8 link_control[2];
u8 serial_number[8];
u8 res0: 2;
u8 ltr_en: 1;
u8 res1: 2;
u8 obff: 2;
char: 1;
u8 res2: 3;
u8 obff_cap: 2;
short: 3;
u8 res3: 4;
u8 class_code[3];
u8 res4;
u8 pci_pm_L1_2_supp: 1;
u8 pci_pm_L1_1_supp: 1;
u8 aspm_pm_L1_2_supp: 1;
u8 aspm_pm_L1_1_supp: 1;
u8 L1_pm_substates_supp: 1;
u8 res5: 3;
u8 port_common_mode_restore_time;
u8 port_t_power_on_scale: 2;
u8 res6: 1;
u8 port_t_power_on_value: 5;
u8 res7;
};
struct rtw8822cu_efuse {
u8 res0[48];
u8 vid[2];
u8 pid[2];
u8 res1[3];
u8 mac_addr[6];
u8 res2[61];
};
struct rtw8822cs_efuse {
u8 res0[74];
u8 mac_addr[6];
};
struct rtw8822c_efuse {
__le16 rtl_id;
u8 res0[14];
struct rtw_txpwr_idx txpwr_idx_table[4];
u8 channel_plan;
u8 xtal_k;
u8 res1;
u8 iqk_lck;
u8 res2[5];
u8 rf_board_option;
u8 rf_feature_option;
u8 rf_bt_setting;
u8 eeprom_version;
u8 eeprom_customer_id;
u8 tx_bb_swing_setting_2g;
u8 tx_bb_swing_setting_5g;
u8 tx_pwr_calibrate_rate;
u8 rf_antenna_option;
u8 rfe_option;
u8 country_code[2];
u8 res3[3];
u8 path_a_thermal;
u8 path_b_thermal;
u8 res4[2];
u8 rx_gain_gap_2g_ofdm;
u8 res5;
u8 rx_gain_gap_2g_cck;
u8 res6;
u8 rx_gain_gap_5gl;
u8 res7;
u8 rx_gain_gap_5gm;
u8 res8;
u8 rx_gain_gap_5gh;
u8 res9;
u8 res10[66];
union {
struct rtw8822ce_efuse e;
struct rtw8822cu_efuse u;
struct rtw8822cs_efuse s;
};
};
struct rtw_tx_desc {
__le32 w0;
__le32 w1;
__le32 w2;
__le32 w3;
__le32 w4;
__le32 w5;
__le32 w6;
__le32 w7;
__le32 w8;
__le32 w9;
};
struct rtw_backup_info {
u8 len;
u32 reg;
u32 val;
};
struct rtw_iqk_para {
u8 clear;
u8 segment_iqk;
};
struct rtw_swing_table {
const u8 *p[4];
const u8 *n[4];
};
struct dpk_cfg_pair {
u32 addr;
u32 bitmask;
u32 data;
};
struct cpuidle_state_attr {
struct attribute attr;
ssize_t (*show)(struct cpuidle_state *, struct cpuidle_state_usage *, char *);
ssize_t (*store)(struct cpuidle_state *, struct cpuidle_state_usage *, const char *, size_t);
};
struct cpuidle_state_kobj {
struct cpuidle_state *state;
struct cpuidle_state_usage *state_usage;
struct completion kobj_unregister;
struct kobject kobj;
struct cpuidle_device *device;
};
struct cpuidle_device_kobj {
struct cpuidle_device *dev;
struct completion kobj_unregister;
struct kobject kobj;
};
struct cpuidle_governor {
char name[16];
struct list_head governor_list;
unsigned int rating;
int (*enable)(struct cpuidle_driver *, struct cpuidle_device *);
void (*disable)(struct cpuidle_driver *, struct cpuidle_device *);
int (*select)(struct cpuidle_driver *, struct cpuidle_device *, bool *);
void (*reflect)(struct cpuidle_device *, int);
};
struct cpuidle_attr {
struct attribute attr;
ssize_t (*show)(struct cpuidle_device *, char *);
ssize_t (*store)(struct cpuidle_device *, const char *, size_t);
};
struct __call_single_data {
struct __call_single_node node;
smp_call_func_t func;
void *info;
};
typedef struct __call_single_data call_single_data_t;
struct sd_flow_limit;
struct softnet_data {
struct list_head poll_list;
struct sk_buff_head process_queue;
unsigned int processed;
unsigned int time_squeeze;
struct softnet_data *rps_ipi_list;
bool in_net_rx_action;
bool in_napi_threaded_poll;
struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit;
struct Qdisc *output_queue;
struct Qdisc **output_queue_tailp;
struct sk_buff *completion_queue;
struct {
u16 recursion;
u8 more;
u8 skip_txqueue;
} xmit;
long: 64;
long: 64;
long: 64;
unsigned int input_queue_head;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
call_single_data_t csd;
struct softnet_data *rps_ipi_next;
unsigned int cpu;
unsigned int input_queue_tail;
unsigned int received_rps;
unsigned int dropped;
struct sk_buff_head input_pkt_queue;
struct napi_struct backlog;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t defer_lock;
int defer_count;
int defer_ipi_scheduled;
struct sk_buff *defer_list;
long: 64;
long: 64;
call_single_data_t defer_csd;
};
struct netdev_name_node {
struct hlist_node hlist;
struct list_head list;
struct net_device *dev;
const char *name;
struct callback_head rcu;
};
struct cpu_rmap {
struct kref refcount;
u16 size;
void **obj;
struct {
u16 index;
u16 dist;
} near[0];
};
struct mii_bus;
struct mdio_device {
struct device dev;
struct mii_bus *bus;
char modalias[32];
int (*bus_match)(struct device *, struct device_driver *);
void (*device_free)(struct mdio_device *);
void (*device_remove)(struct mdio_device *);
int addr;
int flags;
int reset_state;
struct gpio_desc *reset_gpio;
struct reset_control *reset_ctrl;
unsigned int reset_assert_delay;
unsigned int reset_deassert_delay;
};
struct phy_c45_device_ids {
u32 devices_in_package;
u32 mmds_present;
u32 device_ids[32];
};
enum phy_state {
PHY_DOWN = 0,
PHY_READY = 1,
PHY_HALTED = 2,
PHY_ERROR = 3,
PHY_UP = 4,
PHY_RUNNING = 5,
PHY_NOLINK = 6,
PHY_CABLETEST = 7,
};
typedef enum {
PHY_INTERFACE_MODE_NA = 0,
PHY_INTERFACE_MODE_INTERNAL = 1,
PHY_INTERFACE_MODE_MII = 2,
PHY_INTERFACE_MODE_GMII = 3,
PHY_INTERFACE_MODE_SGMII = 4,
PHY_INTERFACE_MODE_TBI = 5,
PHY_INTERFACE_MODE_REVMII = 6,
PHY_INTERFACE_MODE_RMII = 7,
PHY_INTERFACE_MODE_REVRMII = 8,
PHY_INTERFACE_MODE_RGMII = 9,
PHY_INTERFACE_MODE_RGMII_ID = 10,
PHY_INTERFACE_MODE_RGMII_RXID = 11,
PHY_INTERFACE_MODE_RGMII_TXID = 12,
PHY_INTERFACE_MODE_RTBI = 13,
PHY_INTERFACE_MODE_SMII = 14,
PHY_INTERFACE_MODE_XGMII = 15,
PHY_INTERFACE_MODE_XLGMII = 16,
PHY_INTERFACE_MODE_MOCA = 17,
PHY_INTERFACE_MODE_PSGMII = 18,
PHY_INTERFACE_MODE_QSGMII = 19,
PHY_INTERFACE_MODE_TRGMII = 20,
PHY_INTERFACE_MODE_100BASEX = 21,
PHY_INTERFACE_MODE_1000BASEX = 22,
PHY_INTERFACE_MODE_2500BASEX = 23,
PHY_INTERFACE_MODE_5GBASER = 24,
PHY_INTERFACE_MODE_RXAUI = 25,
PHY_INTERFACE_MODE_XAUI = 26,
PHY_INTERFACE_MODE_10GBASER = 27,
PHY_INTERFACE_MODE_25GBASER = 28,
PHY_INTERFACE_MODE_USXGMII = 29,
PHY_INTERFACE_MODE_10GKR = 30,
PHY_INTERFACE_MODE_QUSGMII = 31,
PHY_INTERFACE_MODE_1000BASEKX = 32,
PHY_INTERFACE_MODE_MAX = 33,
} phy_interface_t;
struct eee_config {
u32 tx_lpi_timer;
bool tx_lpi_enabled;
bool eee_enabled;
};
struct phylink;
struct pse_control;
struct phy_driver;
struct device_link;
struct phy_package_shared;
struct mii_timestamper;
struct phy_device {
struct mdio_device mdio;
const struct phy_driver *drv;
struct device_link *devlink;
u32 phy_id;
struct phy_c45_device_ids c45_ids;
unsigned int is_c45: 1;
unsigned int is_internal: 1;
unsigned int is_pseudo_fixed_link: 1;
unsigned int is_gigabit_capable: 1;
unsigned int has_fixups: 1;
unsigned int suspended: 1;
unsigned int suspended_by_mdio_bus: 1;
unsigned int sysfs_links: 1;
unsigned int loopback_enabled: 1;
unsigned int downshifted_rate: 1;
unsigned int is_on_sfp_module: 1;
unsigned int mac_managed_pm: 1;
unsigned int wol_enabled: 1;
unsigned int autoneg: 1;
unsigned int link: 1;
unsigned int autoneg_complete: 1;
unsigned int interrupts: 1;
unsigned int irq_suspended: 1;
unsigned int irq_rerun: 1;
int rate_matching;
enum phy_state state;
u32 dev_flags;
phy_interface_t interface;
unsigned long possible_interfaces[1];
int speed;
int duplex;
int port;
int pause;
int asym_pause;
u8 master_slave_get;
u8 master_slave_set;
u8 master_slave_state;
unsigned long supported[2];
unsigned long advertising[2];
unsigned long lp_advertising[2];
unsigned long adv_old[2];
unsigned long supported_eee[2];
unsigned long advertising_eee[2];
bool eee_enabled;
unsigned long host_interfaces[1];
u32 eee_broken_modes;
bool enable_tx_lpi;
struct eee_config eee_cfg;
struct list_head leds;
int irq;
void *priv;
struct phy_package_shared *shared;
struct sk_buff *skb;
void *ehdr;
struct nlattr *nest;
struct delayed_work state_queue;
struct mutex lock;
bool sfp_bus_attached;
struct sfp_bus *sfp_bus;
struct phylink *phylink;
struct net_device *attached_dev;
struct mii_timestamper *mii_ts;
struct pse_control *psec;
u8 mdix;
u8 mdix_ctrl;
int pma_extable;
unsigned int link_down_events;
void (*phy_link_change)(struct phy_device *, bool);
void (*adjust_link)(struct net_device *);
};
struct mdio_bus_stats {
u64_stats_t transfers;
u64_stats_t errors;
u64_stats_t writes;
u64_stats_t reads;
struct u64_stats_sync syncp;
};
struct mii_bus {
struct module *owner;
const char *name;
char id[61];
void *priv;
int (*read)(struct mii_bus *, int, int);
int (*write)(struct mii_bus *, int, int, u16);
int (*read_c45)(struct mii_bus *, int, int, int);
int (*write_c45)(struct mii_bus *, int, int, int, u16);
int (*reset)(struct mii_bus *);
struct mdio_bus_stats stats[32];
struct mutex mdio_lock;
struct device *parent;
enum {
MDIOBUS_ALLOCATED = 1,
MDIOBUS_REGISTERED = 2,
MDIOBUS_UNREGISTERED = 3,
MDIOBUS_RELEASED = 4,
} state;
struct device dev;
struct mdio_device *mdio_map[32];
u32 phy_mask;
u32 phy_ignore_ta_mask;
int irq[32];
int reset_delay_us;
int reset_post_delay_us;
struct gpio_desc *reset_gpiod;
struct mutex shared_lock;
struct phy_package_shared *shared[32];
};
struct phy_package_shared {
u8 base_addr;
struct device_node *np;
refcount_t refcnt;
unsigned long flags;
size_t priv_size;
void *priv;
};
struct mdio_driver_common {
struct device_driver driver;
int flags;
};
enum led_brightness {
LED_OFF = 0,
LED_ON = 1,
LED_HALF = 127,
LED_FULL = 255,
};
struct phy_tdr_config;
struct phy_plca_cfg;
struct phy_plca_status;
struct phy_driver {
struct mdio_driver_common mdiodrv;
u32 phy_id;
char *name;
u32 phy_id_mask;
const unsigned long * const features;
u32 flags;
const void *driver_data;
int (*soft_reset)(struct phy_device *);
int (*config_init)(struct phy_device *);
int (*probe)(struct phy_device *);
int (*get_features)(struct phy_device *);
int (*get_rate_matching)(struct phy_device *, phy_interface_t);
int (*suspend)(struct phy_device *);
int (*resume)(struct phy_device *);
int (*config_aneg)(struct phy_device *);
int (*aneg_done)(struct phy_device *);
int (*read_status)(struct phy_device *);
int (*config_intr)(struct phy_device *);
irqreturn_t (*handle_interrupt)(struct phy_device *);
void (*remove)(struct phy_device *);
int (*match_phy_device)(struct phy_device *);
int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *);
void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *);
void (*link_change_notify)(struct phy_device *);
int (*read_mmd)(struct phy_device *, int, u16);
int (*write_mmd)(struct phy_device *, int, u16, u16);
int (*read_page)(struct phy_device *);
int (*write_page)(struct phy_device *, int);
int (*module_info)(struct phy_device *, struct ethtool_modinfo *);
int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *);
int (*cable_test_start)(struct phy_device *);
int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *);
int (*cable_test_get_status)(struct phy_device *, bool *);
int (*get_sset_count)(struct phy_device *);
void (*get_strings)(struct phy_device *, u8 *);
void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *);
int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *);
int (*set_loopback)(struct phy_device *, bool);
int (*get_sqi)(struct phy_device *);
int (*get_sqi_max)(struct phy_device *);
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *);
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness);
int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *);
int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long);
int (*led_hw_control_set)(struct phy_device *, u8, unsigned long);
int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *);
int (*led_polarity_set)(struct phy_device *, int, unsigned long);
};
struct phy_tdr_config {
u32 first;
u32 last;
u32 step;
s8 pair;
};
struct phy_plca_cfg {
int version;
int enabled;
int node_id;
int node_cnt;
int to_tmr;
int burst_cnt;
int burst_tmr;
};
struct phy_plca_status {
bool pst;
};
enum device_link_state {
DL_STATE_NONE = -1,
DL_STATE_DORMANT = 0,
DL_STATE_AVAILABLE = 1,
DL_STATE_CONSUMER_PROBE = 2,
DL_STATE_ACTIVE = 3,
DL_STATE_SUPPLIER_UNBIND = 4,
};
struct device_link {
struct device *supplier;
struct list_head s_node;
struct device *consumer;
struct list_head c_node;
struct device link_dev;
enum device_link_state status;
u32 flags;
refcount_t rpm_active;
struct kref kref;
struct work_struct rm_work;
bool supplier_preactivated;
};
struct mii_timestamper {
bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int);
void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int);
int (*hwtstamp)(struct mii_timestamper *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *);
void (*link_state)(struct mii_timestamper *, struct phy_device *);
int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *);
struct device *device;
};
struct bpf_xdp_link {
struct bpf_link link;
struct net_device *dev;
int flags;
};
struct ib_device;
struct devlink;
enum devlink_port_type {
DEVLINK_PORT_TYPE_NOTSET = 0,
DEVLINK_PORT_TYPE_AUTO = 1,
DEVLINK_PORT_TYPE_ETH = 2,
DEVLINK_PORT_TYPE_IB = 3,
};
enum devlink_port_flavour {
DEVLINK_PORT_FLAVOUR_PHYSICAL = 0,
DEVLINK_PORT_FLAVOUR_CPU = 1,
DEVLINK_PORT_FLAVOUR_DSA = 2,
DEVLINK_PORT_FLAVOUR_PCI_PF = 3,
DEVLINK_PORT_FLAVOUR_PCI_VF = 4,
DEVLINK_PORT_FLAVOUR_VIRTUAL = 5,
DEVLINK_PORT_FLAVOUR_UNUSED = 6,
DEVLINK_PORT_FLAVOUR_PCI_SF = 7,
};
struct devlink_port_phys_attrs {
u32 port_number;
u32 split_subport_number;
};
struct devlink_port_pci_pf_attrs {
u32 controller;
u16 pf;
u8 external: 1;
};
struct devlink_port_pci_vf_attrs {
u32 controller;
u16 pf;
u16 vf;
u8 external: 1;
};
struct devlink_port_pci_sf_attrs {
u32 controller;
u32 sf;
u16 pf;
u8 external: 1;
};
struct devlink_port_attrs {
u8 split: 1;
u8 splittable: 1;
u32 lanes;
enum devlink_port_flavour flavour;
struct netdev_phys_item_id switch_id;
union {
struct devlink_port_phys_attrs phys;
struct devlink_port_pci_pf_attrs pci_pf;
struct devlink_port_pci_vf_attrs pci_vf;
struct devlink_port_pci_sf_attrs pci_sf;
};
};
struct devlink_linecard;
struct devlink_port_ops;
struct devlink_rate;
struct devlink_port {
struct list_head list;
struct list_head region_list;
struct devlink *devlink;
const struct devlink_port_ops *ops;
unsigned int index;
spinlock_t type_lock;
enum devlink_port_type type;
enum devlink_port_type desired_type;
union {
struct {
struct net_device *netdev;
int ifindex;
char ifname[16];
} type_eth;
struct {
struct ib_device *ibdev;
} type_ib;
};
struct devlink_port_attrs attrs;
u8 attrs_set: 1;
u8 switch_port: 1;
u8 registered: 1;
u8 initialized: 1;
struct delayed_work type_warn_dw;
struct list_head reporter_list;
struct devlink_rate *devlink_rate;
struct devlink_linecard *linecard;
u32 rel_index;
};
enum devlink_port_fn_state {
DEVLINK_PORT_FN_STATE_INACTIVE = 0,
DEVLINK_PORT_FN_STATE_ACTIVE = 1,
};
enum devlink_port_fn_opstate {
DEVLINK_PORT_FN_OPSTATE_DETACHED = 0,
DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1,
};
struct devlink_port_ops {
int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *);
int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
int (*port_type_set)(struct devlink_port *, enum devlink_port_type);
int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *);
int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *);
int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *);
int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *);
int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *);
int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *);
int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *);
};
enum devlink_rate_type {
DEVLINK_RATE_TYPE_LEAF = 0,
DEVLINK_RATE_TYPE_NODE = 1,
};
struct devlink_rate {
struct list_head list;
enum devlink_rate_type type;
struct devlink *devlink;
void *priv;
u64 tx_share;
u64 tx_max;
struct devlink_rate *parent;
union {
struct devlink_port *devlink_port;
struct {
char *name;
refcount_t refcnt;
};
};
u32 tx_priority;
u32 tx_weight;
};
struct sd_flow_limit {
u64 count;
unsigned int num_buckets;
unsigned int history_head;
u16 history[128];
u8 buckets[0];
};
struct smp_hotplug_thread {
struct task_struct * __attribute__((btf_type_tag("percpu"))) *store;
struct list_head list;
int (*thread_should_run)(unsigned int);
void (*thread_fn)(unsigned int);
void (*create)(unsigned int);
void (*setup)(unsigned int);
void (*cleanup)(unsigned int, bool);
void (*park)(unsigned int);
void (*unpark)(unsigned int);
bool selfparking;
const char *thread_comm;
};
enum {
RTM_BASE = 16,
RTM_NEWLINK = 16,
RTM_DELLINK = 17,
RTM_GETLINK = 18,
RTM_SETLINK = 19,
RTM_NEWADDR = 20,
RTM_DELADDR = 21,
RTM_GETADDR = 22,
RTM_NEWROUTE = 24,
RTM_DELROUTE = 25,
RTM_GETROUTE = 26,
RTM_NEWNEIGH = 28,
RTM_DELNEIGH = 29,
RTM_GETNEIGH = 30,
RTM_NEWRULE = 32,
RTM_DELRULE = 33,
RTM_GETRULE = 34,
RTM_NEWQDISC = 36,
RTM_DELQDISC = 37,
RTM_GETQDISC = 38,
RTM_NEWTCLASS = 40,
RTM_DELTCLASS = 41,
RTM_GETTCLASS = 42,
RTM_NEWTFILTER = 44,
RTM_DELTFILTER = 45,
RTM_GETTFILTER = 46,
RTM_NEWACTION = 48,
RTM_DELACTION = 49,
RTM_GETACTION = 50,
RTM_NEWPREFIX = 52,
RTM_GETMULTICAST = 58,
RTM_GETANYCAST = 62,
RTM_NEWNEIGHTBL = 64,
RTM_GETNEIGHTBL = 66,
RTM_SETNEIGHTBL = 67,
RTM_NEWNDUSEROPT = 68,
RTM_NEWADDRLABEL = 72,
RTM_DELADDRLABEL = 73,
RTM_GETADDRLABEL = 74,
RTM_GETDCB = 78,
RTM_SETDCB = 79,
RTM_NEWNETCONF = 80,
RTM_DELNETCONF = 81,
RTM_GETNETCONF = 82,
RTM_NEWMDB = 84,
RTM_DELMDB = 85,
RTM_GETMDB = 86,
RTM_NEWNSID = 88,
RTM_DELNSID = 89,
RTM_GETNSID = 90,
RTM_NEWSTATS = 92,
RTM_GETSTATS = 94,
RTM_SETSTATS = 95,
RTM_NEWCACHEREPORT = 96,
RTM_NEWCHAIN = 100,
RTM_DELCHAIN = 101,
RTM_GETCHAIN = 102,
RTM_NEWNEXTHOP = 104,
RTM_DELNEXTHOP = 105,
RTM_GETNEXTHOP = 106,
RTM_NEWLINKPROP = 108,
RTM_DELLINKPROP = 109,
RTM_GETLINKPROP = 110,
RTM_NEWVLAN = 112,
RTM_DELVLAN = 113,
RTM_GETVLAN = 114,
RTM_NEWNEXTHOPBUCKET = 116,
RTM_DELNEXTHOPBUCKET = 117,
RTM_GETNEXTHOPBUCKET = 118,
RTM_NEWTUNNEL = 120,
RTM_DELTUNNEL = 121,
RTM_GETTUNNEL = 122,
__RTM_MAX = 123,
};
enum xps_map_type {
XPS_CPUS = 0,
XPS_RXQS = 1,
XPS_MAPS_MAX = 2,
};
enum {
HI_SOFTIRQ = 0,
TIMER_SOFTIRQ = 1,
NET_TX_SOFTIRQ = 2,
NET_RX_SOFTIRQ = 3,
BLOCK_SOFTIRQ = 4,
IRQ_POLL_SOFTIRQ = 5,
TASKLET_SOFTIRQ = 6,
SCHED_SOFTIRQ = 7,
HRTIMER_SOFTIRQ = 8,
RCU_SOFTIRQ = 9,
NR_SOFTIRQS = 10,
};
enum {
SCM_TSTAMP_SND = 0,
SCM_TSTAMP_SCHED = 1,
SCM_TSTAMP_ACK = 2,
};
enum {
NAPIF_STATE_SCHED = 1,
NAPIF_STATE_MISSED = 2,
NAPIF_STATE_DISABLE = 4,
NAPIF_STATE_NPSVC = 8,
NAPIF_STATE_LISTED = 16,
NAPIF_STATE_NO_BUSY_POLL = 32,
NAPIF_STATE_IN_BUSY_POLL = 64,
NAPIF_STATE_PREFER_BUSY_POLL = 128,
NAPIF_STATE_THREADED = 256,
NAPIF_STATE_SCHED_THREADED = 512,
};
enum {
NAPI_F_PREFER_BUSY_POLL = 1,
NAPI_F_END_ON_RESCHED = 2,
};
enum netdev_queue_type {
NETDEV_QUEUE_TYPE_RX = 0,
NETDEV_QUEUE_TYPE_TX = 1,
};
enum netdev_offload_xstats_type {
NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1,
};
enum bpf_xdp_mode {
XDP_MODE_SKB = 0,
XDP_MODE_DRV = 1,
XDP_MODE_HW = 2,
__MAX_XDP_MODE = 3,
};
enum {
SKBFL_ZEROCOPY_ENABLE = 1,
SKBFL_SHARED_FRAG = 2,
SKBFL_PURE_ZEROCOPY = 4,
SKBFL_DONT_ORPHAN = 8,
SKBFL_MANAGED_FRAG_REFS = 16,
};
enum {
SKB_GSO_TCPV4 = 1,
SKB_GSO_DODGY = 2,
SKB_GSO_TCP_ECN = 4,
SKB_GSO_TCP_FIXEDID = 8,
SKB_GSO_TCPV6 = 16,
SKB_GSO_FCOE = 32,
SKB_GSO_GRE = 64,
SKB_GSO_GRE_CSUM = 128,
SKB_GSO_IPXIP4 = 256,
SKB_GSO_IPXIP6 = 512,
SKB_GSO_UDP_TUNNEL = 1024,
SKB_GSO_UDP_TUNNEL_CSUM = 2048,
SKB_GSO_PARTIAL = 4096,
SKB_GSO_TUNNEL_REMCSUM = 8192,
SKB_GSO_SCTP = 16384,
SKB_GSO_ESP = 32768,
SKB_GSO_UDP = 65536,
SKB_GSO_UDP_L4 = 131072,
SKB_GSO_FRAGLIST = 262144,
};
enum nf_dev_hooks {
NF_NETDEV_INGRESS = 0,
NF_NETDEV_EGRESS = 1,
NF_NETDEV_NUMHOOKS = 2,
};
enum tcx_action_base {
TCX_NEXT = -1,
TCX_PASS = 0,
TCX_DROP = 2,
TCX_REDIRECT = 7,
};
enum {
NESTED_SYNC_IMM_BIT = 0,
NESTED_SYNC_TODO_BIT = 1,
};
enum {
SKB_FCLONE_UNAVAILABLE = 0,
SKB_FCLONE_ORIG = 1,
SKB_FCLONE_CLONE = 2,
};
struct packet_type {
__be16 type;
bool ignore_outgoing;
struct net_device *dev;
netdevice_tracker dev_tracker;
int (*func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
void (*list_func)(struct list_head *, struct packet_type *, struct net_device *);
bool (*id_match)(struct packet_type *, struct sock *);
struct net *af_packet_net;
void *af_packet_priv;
struct list_head list;
};
struct netdev_adjacent {
struct net_device *dev;
netdevice_tracker dev_tracker;
bool master;
bool ignore;
u16 ref_nr;
void *private;
struct list_head list;
struct callback_head rcu;
};
struct dst_cache_pcpu {
unsigned long refresh_ts;
struct dst_entry *dst;
u32 cookie;
union {
struct in_addr in_saddr;
struct in6_addr in6_saddr;
};
};
struct dev_kfree_skb_cb {
enum skb_drop_reason reason;
};
struct vlan_ethhdr {
union {
struct {
unsigned char h_dest[6];
unsigned char h_source[6];
};
struct {
unsigned char h_dest[6];
unsigned char h_source[6];
} addrs;
};
__be16 h_vlan_proto;
__be16 h_vlan_TCI;
__be16 h_vlan_encapsulated_proto;
};
struct rps_sock_flow_table {
u32 mask;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
u32 ents[0];
};
struct netdev_net_notifier {
struct list_head list;
struct notifier_block *nb;
};
struct net_device_path_stack {
int num_paths;
struct net_device_path path[5];
};
struct skb_checksum_ops {
__wsum (*update)(const void *, int, __wsum);
__wsum (*combine)(__wsum, __wsum, int, int);
};
struct udphdr {
__be16 source;
__be16 dest;
__be16 len;
__sum16 check;
};
struct netdev_nested_priv {
unsigned char flags;
void *data;
};
struct netdev_notifier_offload_xstats_rd;
struct netdev_notifier_offload_xstats_ru;
struct netdev_notifier_offload_xstats_info {
struct netdev_notifier_info info;
enum netdev_offload_xstats_type type;
union {
struct netdev_notifier_offload_xstats_rd *report_delta;
struct netdev_notifier_offload_xstats_ru *report_used;
};
};
struct netdev_notifier_offload_xstats_rd {
struct rtnl_hw_stats64 stats;
bool used;
};
struct netdev_notifier_offload_xstats_ru {
bool used;
};
struct netdev_notifier_info_ext {
struct netdev_notifier_info info;
union {
u32 mtu;
} ext;
};
struct netdev_notifier_pre_changeaddr_info {
struct netdev_notifier_info info;
const unsigned char *dev_addr;
};
typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *);
struct xa_limit {
u32 max;
u32 min;
};
struct softirq_action {
void (*action)(struct softirq_action *);
};
struct netdev_notifier_change_info {
struct netdev_notifier_info info;
unsigned int flags_changed;
};
struct netdev_notifier_changeupper_info {
struct netdev_notifier_info info;
struct net_device *upper_dev;
bool master;
bool linking;
void *upper_info;
};
struct ifslave {
__s32 slave_id;
char slave_name[16];
__s8 link;
__s8 state;
__u32 link_failure_count;
};
typedef struct ifslave ifslave;
struct ifbond {
__s32 bond_mode;
__s32 num_slaves;
__s32 miimon;
};
typedef struct ifbond ifbond;
struct netdev_bonding_info {
ifslave slave;
ifbond master;
};
struct netdev_notifier_bonding_info {
struct netdev_notifier_info info;
struct netdev_bonding_info bonding_info;
};
struct netdev_notifier_changelowerstate_info {
struct netdev_notifier_info info;
void *lower_state_info;
};
struct xt_action_param;
struct xt_tgchk_param;
struct xt_tgdtor_param;
struct xt_target {
struct list_head list;
const char name[29];
u_int8_t revision;
unsigned int (*target)(struct sk_buff *, const struct xt_action_param *);
int (*checkentry)(const struct xt_tgchk_param *);
void (*destroy)(const struct xt_tgdtor_param *);
struct module *me;
const char *table;
unsigned int targetsize;
unsigned int usersize;
unsigned int hooks;
unsigned short proto;
unsigned short family;
};
struct xt_match;
struct xt_action_param {
union {
const struct xt_match *match;
const struct xt_target *target;
};
union {
const void *matchinfo;
const void *targinfo;
};
const struct nf_hook_state *state;
unsigned int thoff;
u16 fragoff;
bool hotdrop;
};
struct xt_mtchk_param;
struct xt_mtdtor_param;
struct xt_match {
struct list_head list;
const char name[29];
u_int8_t revision;
bool (*match)(const struct sk_buff *, struct xt_action_param *);
int (*checkentry)(const struct xt_mtchk_param *);
void (*destroy)(const struct xt_mtdtor_param *);
struct module *me;
const char *table;
unsigned int matchsize;
unsigned int usersize;
unsigned int hooks;
unsigned short proto;
unsigned short family;
};
struct xt_mtchk_param {
struct net *net;
const char *table;
const void *entryinfo;
const struct xt_match *match;
void *matchinfo;
unsigned int hook_mask;
u_int8_t family;
bool nft_compat;
};
struct xt_mtdtor_param {
struct net *net;
const struct xt_match *match;
void *matchinfo;
u_int8_t family;
};
struct xt_tgchk_param {
struct net *net;
const char *table;
const void *entryinfo;
const struct xt_target *target;
void *targinfo;
unsigned int hook_mask;
u_int8_t family;
bool nft_compat;
};
struct xt_tgdtor_param {
struct net *net;
const struct xt_target *target;
void *targinfo;
u_int8_t family;
};
struct nf_nat_ipv4_range {
unsigned int flags;
__be32 min_ip;
__be32 max_ip;
union nf_conntrack_man_proto min;
union nf_conntrack_man_proto max;
};
struct nf_nat_ipv4_multi_range_compat {
unsigned int rangesize;
struct nf_nat_ipv4_range range[1];
};
enum {
IFLA_UNSPEC = 0,
IFLA_ADDRESS = 1,
IFLA_BROADCAST = 2,
IFLA_IFNAME = 3,
IFLA_MTU = 4,
IFLA_LINK = 5,
IFLA_QDISC = 6,
IFLA_STATS = 7,
IFLA_COST = 8,
IFLA_PRIORITY = 9,
IFLA_MASTER = 10,
IFLA_WIRELESS = 11,
IFLA_PROTINFO = 12,
IFLA_TXQLEN = 13,
IFLA_MAP = 14,
IFLA_WEIGHT = 15,
IFLA_OPERSTATE = 16,
IFLA_LINKMODE = 17,
IFLA_LINKINFO = 18,
IFLA_NET_NS_PID = 19,
IFLA_IFALIAS = 20,
IFLA_NUM_VF = 21,
IFLA_VFINFO_LIST = 22,
IFLA_STATS64 = 23,
IFLA_VF_PORTS = 24,
IFLA_PORT_SELF = 25,
IFLA_AF_SPEC = 26,
IFLA_GROUP = 27,
IFLA_NET_NS_FD = 28,
IFLA_EXT_MASK = 29,
IFLA_PROMISCUITY = 30,
IFLA_NUM_TX_QUEUES = 31,
IFLA_NUM_RX_QUEUES = 32,
IFLA_CARRIER = 33,
IFLA_PHYS_PORT_ID = 34,
IFLA_CARRIER_CHANGES = 35,
IFLA_PHYS_SWITCH_ID = 36,
IFLA_LINK_NETNSID = 37,
IFLA_PHYS_PORT_NAME = 38,
IFLA_PROTO_DOWN = 39,
IFLA_GSO_MAX_SEGS = 40,
IFLA_GSO_MAX_SIZE = 41,
IFLA_PAD = 42,
IFLA_XDP = 43,
IFLA_EVENT = 44,
IFLA_NEW_NETNSID = 45,
IFLA_IF_NETNSID = 46,
IFLA_TARGET_NETNSID = 46,
IFLA_CARRIER_UP_COUNT = 47,
IFLA_CARRIER_DOWN_COUNT = 48,
IFLA_NEW_IFINDEX = 49,
IFLA_MIN_MTU = 50,
IFLA_MAX_MTU = 51,
IFLA_PROP_LIST = 52,
IFLA_ALT_IFNAME = 53,
IFLA_PERM_ADDRESS = 54,
IFLA_PROTO_DOWN_REASON = 55,
IFLA_PARENT_DEV_NAME = 56,
IFLA_PARENT_DEV_BUS_NAME = 57,
IFLA_GRO_MAX_SIZE = 58,
IFLA_TSO_MAX_SIZE = 59,
IFLA_TSO_MAX_SEGS = 60,
IFLA_ALLMULTI = 61,
IFLA_DEVLINK_PORT = 62,
IFLA_GSO_IPV4_MAX_SIZE = 63,
IFLA_GRO_IPV4_MAX_SIZE = 64,
IFLA_DPLL_PIN = 65,
__IFLA_MAX = 66,
};
enum tunnel_encap_types {
TUNNEL_ENCAP_NONE = 0,
TUNNEL_ENCAP_FOU = 1,
TUNNEL_ENCAP_GUE = 2,
TUNNEL_ENCAP_MPLS = 3,
};
enum lwtunnel_encap_types {
LWTUNNEL_ENCAP_NONE = 0,
LWTUNNEL_ENCAP_MPLS = 1,
LWTUNNEL_ENCAP_IP = 2,
LWTUNNEL_ENCAP_ILA = 3,
LWTUNNEL_ENCAP_IP6 = 4,
LWTUNNEL_ENCAP_SEG6 = 5,
LWTUNNEL_ENCAP_BPF = 6,
LWTUNNEL_ENCAP_SEG6_LOCAL = 7,
LWTUNNEL_ENCAP_RPL = 8,
LWTUNNEL_ENCAP_IOAM6 = 9,
LWTUNNEL_ENCAP_XFRM = 10,
__LWTUNNEL_ENCAP_MAX = 11,
};
struct ip_tunnel_prl_entry;
struct ip_tunnel {
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *next;
struct hlist_node hash_node;
struct net_device *dev;
netdevice_tracker dev_tracker;
struct net *net;
unsigned long err_time;
int err_count;
u32 i_seqno;
atomic_t o_seqno;
int tun_hlen;
u32 index;
u8 erspan_ver;
u8 dir;
u16 hwid;
struct dst_cache dst_cache;
struct ip_tunnel_parm parms;
int mlink;
int encap_hlen;
int hlen;
struct ip_tunnel_encap encap;
struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *prl;
unsigned int prl_count;
unsigned int ip_tnl_net_id;
struct gro_cells gro_cells;
__u32 fwmark;
bool collect_md;
bool ignore_df;
};
struct ip_tunnel_prl_entry {
struct ip_tunnel_prl_entry __attribute__((btf_type_tag("rcu"))) *next;
__be32 addr;
u16 flags;
struct callback_head callback_head;
};
struct ip_tunnel_encap_ops {
size_t (*encap_hlen)(struct ip_tunnel_encap *);
int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *);
int (*err_handler)(struct sk_buff *, u32);
};
struct ip_tunnel_net {
struct net_device *fb_tunnel_dev;
struct rtnl_link_ops *rtnl_link_ops;
struct hlist_head tunnels[128];
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *collect_md_tun;
int type;
};
struct tnl_ptk_info {
__be16 flags;
__be16 proto;
__be32 key;
__be32 seq;
int hdr_len;
};
struct rtnl_af_ops {
struct list_head list;
int family;
int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32);
size_t (*get_link_af_size)(const struct net_device *, u32);
int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *);
int (*fill_stats_af)(struct sk_buff *, const struct net_device *);
size_t (*get_stats_af_size)(const struct net_device *);
};
enum rtnetlink_groups {
RTNLGRP_NONE = 0,
RTNLGRP_LINK = 1,
RTNLGRP_NOTIFY = 2,
RTNLGRP_NEIGH = 3,
RTNLGRP_TC = 4,
RTNLGRP_IPV4_IFADDR = 5,
RTNLGRP_IPV4_MROUTE = 6,
RTNLGRP_IPV4_ROUTE = 7,
RTNLGRP_IPV4_RULE = 8,
RTNLGRP_IPV6_IFADDR = 9,
RTNLGRP_IPV6_MROUTE = 10,
RTNLGRP_IPV6_ROUTE = 11,
RTNLGRP_IPV6_IFINFO = 12,
RTNLGRP_DECnet_IFADDR = 13,
RTNLGRP_NOP2 = 14,
RTNLGRP_DECnet_ROUTE = 15,
RTNLGRP_DECnet_RULE = 16,
RTNLGRP_NOP4 = 17,
RTNLGRP_IPV6_PREFIX = 18,
RTNLGRP_IPV6_RULE = 19,
RTNLGRP_ND_USEROPT = 20,
RTNLGRP_PHONET_IFADDR = 21,
RTNLGRP_PHONET_ROUTE = 22,
RTNLGRP_DCB = 23,
RTNLGRP_IPV4_NETCONF = 24,
RTNLGRP_IPV6_NETCONF = 25,
RTNLGRP_MDB = 26,
RTNLGRP_MPLS_ROUTE = 27,
RTNLGRP_NSID = 28,
RTNLGRP_MPLS_NETCONF = 29,
RTNLGRP_IPV4_MROUTE_R = 30,
RTNLGRP_IPV6_MROUTE_R = 31,
RTNLGRP_NEXTHOP = 32,
RTNLGRP_BRVLAN = 33,
RTNLGRP_MCTP_IFADDR = 34,
RTNLGRP_TUNNEL = 35,
RTNLGRP_STATS = 36,
__RTNLGRP_MAX = 37,
};
enum {
IFLA_BRPORT_UNSPEC = 0,
IFLA_BRPORT_STATE = 1,
IFLA_BRPORT_PRIORITY = 2,
IFLA_BRPORT_COST = 3,
IFLA_BRPORT_MODE = 4,
IFLA_BRPORT_GUARD = 5,
IFLA_BRPORT_PROTECT = 6,
IFLA_BRPORT_FAST_LEAVE = 7,
IFLA_BRPORT_LEARNING = 8,
IFLA_BRPORT_UNICAST_FLOOD = 9,
IFLA_BRPORT_PROXYARP = 10,
IFLA_BRPORT_LEARNING_SYNC = 11,
IFLA_BRPORT_PROXYARP_WIFI = 12,
IFLA_BRPORT_ROOT_ID = 13,
IFLA_BRPORT_BRIDGE_ID = 14,
IFLA_BRPORT_DESIGNATED_PORT = 15,
IFLA_BRPORT_DESIGNATED_COST = 16,
IFLA_BRPORT_ID = 17,
IFLA_BRPORT_NO = 18,
IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19,
IFLA_BRPORT_CONFIG_PENDING = 20,
IFLA_BRPORT_MESSAGE_AGE_TIMER = 21,
IFLA_BRPORT_FORWARD_DELAY_TIMER = 22,
IFLA_BRPORT_HOLD_TIMER = 23,
IFLA_BRPORT_FLUSH = 24,
IFLA_BRPORT_MULTICAST_ROUTER = 25,
IFLA_BRPORT_PAD = 26,
IFLA_BRPORT_MCAST_FLOOD = 27,
IFLA_BRPORT_MCAST_TO_UCAST = 28,
IFLA_BRPORT_VLAN_TUNNEL = 29,
IFLA_BRPORT_BCAST_FLOOD = 30,
IFLA_BRPORT_GROUP_FWD_MASK = 31,
IFLA_BRPORT_NEIGH_SUPPRESS = 32,
IFLA_BRPORT_ISOLATED = 33,
IFLA_BRPORT_BACKUP_PORT = 34,
IFLA_BRPORT_MRP_RING_OPEN = 35,
IFLA_BRPORT_MRP_IN_OPEN = 36,
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37,
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38,
IFLA_BRPORT_LOCKED = 39,
IFLA_BRPORT_MAB = 40,
IFLA_BRPORT_MCAST_N_GROUPS = 41,
IFLA_BRPORT_MCAST_MAX_GROUPS = 42,
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43,
IFLA_BRPORT_BACKUP_NHID = 44,
__IFLA_BRPORT_MAX = 45,
};
enum {
IFLA_BRIDGE_FLAGS = 0,
IFLA_BRIDGE_MODE = 1,
IFLA_BRIDGE_VLAN_INFO = 2,
IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3,
IFLA_BRIDGE_MRP = 4,
IFLA_BRIDGE_CFM = 5,
IFLA_BRIDGE_MST = 6,
__IFLA_BRIDGE_MAX = 7,
};
enum {
BR_FDB_LOCAL = 0,
BR_FDB_STATIC = 1,
BR_FDB_STICKY = 2,
BR_FDB_ADDED_BY_USER = 3,
BR_FDB_ADDED_BY_EXT_LEARN = 4,
BR_FDB_OFFLOADED = 5,
BR_FDB_NOTIFY = 6,
BR_FDB_NOTIFY_INACTIVE = 7,
BR_FDB_LOCKED = 8,
BR_FDB_DYNAMIC_LEARNED = 9,
};
enum {
BR_GROUPFWD_STP = 1,
BR_GROUPFWD_MACPAUSE = 2,
BR_GROUPFWD_LACP = 4,
};
enum {
IFLA_BR_UNSPEC = 0,
IFLA_BR_FORWARD_DELAY = 1,
IFLA_BR_HELLO_TIME = 2,
IFLA_BR_MAX_AGE = 3,
IFLA_BR_AGEING_TIME = 4,
IFLA_BR_STP_STATE = 5,
IFLA_BR_PRIORITY = 6,
IFLA_BR_VLAN_FILTERING = 7,
IFLA_BR_VLAN_PROTOCOL = 8,
IFLA_BR_GROUP_FWD_MASK = 9,
IFLA_BR_ROOT_ID = 10,
IFLA_BR_BRIDGE_ID = 11,
IFLA_BR_ROOT_PORT = 12,
IFLA_BR_ROOT_PATH_COST = 13,
IFLA_BR_TOPOLOGY_CHANGE = 14,
IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15,
IFLA_BR_HELLO_TIMER = 16,
IFLA_BR_TCN_TIMER = 17,
IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18,
IFLA_BR_GC_TIMER = 19,
IFLA_BR_GROUP_ADDR = 20,
IFLA_BR_FDB_FLUSH = 21,
IFLA_BR_MCAST_ROUTER = 22,
IFLA_BR_MCAST_SNOOPING = 23,
IFLA_BR_MCAST_QUERY_USE_IFADDR = 24,
IFLA_BR_MCAST_QUERIER = 25,
IFLA_BR_MCAST_HASH_ELASTICITY = 26,
IFLA_BR_MCAST_HASH_MAX = 27,
IFLA_BR_MCAST_LAST_MEMBER_CNT = 28,
IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29,
IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30,
IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31,
IFLA_BR_MCAST_QUERIER_INTVL = 32,
IFLA_BR_MCAST_QUERY_INTVL = 33,
IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34,
IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35,
IFLA_BR_NF_CALL_IPTABLES = 36,
IFLA_BR_NF_CALL_IP6TABLES = 37,
IFLA_BR_NF_CALL_ARPTABLES = 38,
IFLA_BR_VLAN_DEFAULT_PVID = 39,
IFLA_BR_PAD = 40,
IFLA_BR_VLAN_STATS_ENABLED = 41,
IFLA_BR_MCAST_STATS_ENABLED = 42,
IFLA_BR_MCAST_IGMP_VERSION = 43,
IFLA_BR_MCAST_MLD_VERSION = 44,
IFLA_BR_VLAN_STATS_PER_PORT = 45,
IFLA_BR_MULTI_BOOLOPT = 46,
IFLA_BR_MCAST_QUERIER_STATE = 47,
IFLA_BR_FDB_N_LEARNED = 48,
IFLA_BR_FDB_MAX_LEARNED = 49,
__IFLA_BR_MAX = 50,
};
enum {
IFLA_STATS_UNSPEC = 0,
IFLA_STATS_LINK_64 = 1,
IFLA_STATS_LINK_XSTATS = 2,
IFLA_STATS_LINK_XSTATS_SLAVE = 3,
IFLA_STATS_LINK_OFFLOAD_XSTATS = 4,
IFLA_STATS_AF_SPEC = 5,
__IFLA_STATS_MAX = 6,
};
enum {
LINK_XSTATS_TYPE_UNSPEC = 0,
LINK_XSTATS_TYPE_BRIDGE = 1,
LINK_XSTATS_TYPE_BOND = 2,
__LINK_XSTATS_TYPE_MAX = 3,
};
enum {
BRIDGE_XSTATS_UNSPEC = 0,
BRIDGE_XSTATS_VLAN = 1,
BRIDGE_XSTATS_MCAST = 2,
BRIDGE_XSTATS_PAD = 3,
BRIDGE_XSTATS_STP = 4,
__BRIDGE_XSTATS_MAX = 5,
};
struct bridge_vlan_info {
__u16 flags;
__u16 vid;
};
struct net_bridge_fdb_flush_desc {
unsigned long flags;
unsigned long flags_mask;
int port_ifindex;
u16 vlan_id;
};
struct vtunnel_info {
u32 tunid;
u16 vid;
u16 flags;
};
struct br_boolopt_multi {
__u32 optval;
__u32 optmask;
};
struct net_bridge_vlan_group {
struct rhashtable vlan_hash;
struct rhashtable tunnel_hash;
struct list_head vlan_list;
u16 num_vlans;
u16 pvid;
u8 pvid_state;
};
struct ifinfomsg {
unsigned char ifi_family;
unsigned char __ifi_pad;
unsigned short ifi_type;
int ifi_index;
unsigned int ifi_flags;
unsigned int ifi_change;
};
struct mcs_group {
u16 flags;
u8 streams;
u8 shift;
u8 bw;
u16 duration[10];
};
struct ieee80211_tx_status;
struct ieee80211_tx_rate_control;
struct rate_control_ops {
unsigned long capa;
const char *name;
void * (*alloc)(struct ieee80211_hw *);
void (*add_debugfs)(struct ieee80211_hw *, void *, struct dentry *);
void (*free)(void *);
void * (*alloc_sta)(void *, struct ieee80211_sta *, gfp_t);
void (*rate_init)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *);
void (*rate_update)(void *, struct ieee80211_supported_band *, struct cfg80211_chan_def *, struct ieee80211_sta *, void *, u32);
void (*free_sta)(void *, struct ieee80211_sta *, void *);
void (*tx_status_ext)(void *, struct ieee80211_supported_band *, void *, struct ieee80211_tx_status *);
void (*tx_status)(void *, struct ieee80211_supported_band *, struct ieee80211_sta *, void *, struct sk_buff *);
void (*get_rate)(void *, struct ieee80211_sta *, void *, struct ieee80211_tx_rate_control *);
void (*add_sta_debugfs)(void *, void *, struct dentry *);
u32 (*get_expected_throughput)(void *);
};
struct ieee80211_rate_status;
struct ieee80211_tx_status {
struct ieee80211_sta *sta;
struct ieee80211_tx_info *info;
struct sk_buff *skb;
struct ieee80211_rate_status *rates;
ktime_t ack_hwtstamp;
u8 n_rates;
struct list_head *free_list;
};
struct ieee80211_rate_status {
struct rate_info rate_idx;
u8 try_count;
u8 tx_power_idx;
};
struct ieee80211_tx_rate_control {
struct ieee80211_hw *hw;
struct ieee80211_supported_band *sband;
struct ieee80211_bss_conf *bss_conf;
struct sk_buff *skb;
struct ieee80211_tx_rate reported_rate;
bool rts;
bool short_preamble;
u32 rate_idx_mask;
u8 *rate_idx_mcs_mask;
bool bss;
};
enum ieee80211_rate_flags {
IEEE80211_RATE_SHORT_PREAMBLE = 1,
IEEE80211_RATE_MANDATORY_A = 2,
IEEE80211_RATE_MANDATORY_B = 4,
IEEE80211_RATE_MANDATORY_G = 8,
IEEE80211_RATE_ERP_G = 16,
IEEE80211_RATE_SUPPORTS_5MHZ = 32,
IEEE80211_RATE_SUPPORTS_10MHZ = 64,
};
struct rate_control_ref {
const struct rate_control_ops *ops;
void *priv;
};
enum ieee80211_vht_mcs_support {
IEEE80211_VHT_MCS_SUPPORT_0_7 = 0,
IEEE80211_VHT_MCS_SUPPORT_0_8 = 1,
IEEE80211_VHT_MCS_SUPPORT_0_9 = 2,
IEEE80211_VHT_MCS_NOT_SUPPORTED = 3,
};
enum minstrel_sample_type {
MINSTREL_SAMPLE_TYPE_INC = 0,
MINSTREL_SAMPLE_TYPE_JUMP = 1,
MINSTREL_SAMPLE_TYPE_SLOW = 2,
__MINSTREL_SAMPLE_TYPE_MAX = 3,
};
enum rate_info_flags {
RATE_INFO_FLAGS_MCS = 1,
RATE_INFO_FLAGS_VHT_MCS = 2,
RATE_INFO_FLAGS_SHORT_GI = 4,
RATE_INFO_FLAGS_DMG = 8,
RATE_INFO_FLAGS_HE_MCS = 16,
RATE_INFO_FLAGS_EDMG = 32,
RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64,
RATE_INFO_FLAGS_EHT_MCS = 128,
RATE_INFO_FLAGS_S1G_MCS = 256,
};
struct minstrel_sample_category {
u8 sample_group;
u16 sample_rates[5];
u16 cur_sample_rates[5];
};
struct minstrel_rate_stats {
u16 attempts;
u16 last_attempts;
u16 success;
u16 last_success;
u32 att_hist;
u32 succ_hist;
u16 prob_avg;
u16 prob_avg_1;
u8 retry_count;
u8 retry_count_rtscts;
bool retry_updated;
};
struct minstrel_mcs_group_data {
u8 index;
u8 column;
u16 max_group_tp_rate[4];
u16 max_group_prob_rate;
struct minstrel_rate_stats rates[10];
};
struct minstrel_ht_sta {
struct ieee80211_sta *sta;
unsigned int ampdu_len;
unsigned int ampdu_packets;
unsigned int avg_ampdu_len;
u16 max_tp_rate[4];
u16 max_prob_rate;
unsigned long last_stats_update;
unsigned int overhead;
unsigned int overhead_rtscts;
unsigned int overhead_legacy;
unsigned int overhead_legacy_rtscts;
unsigned int total_packets;
unsigned int sample_packets;
u32 tx_flags;
bool use_short_preamble;
u8 band;
u8 sample_seq;
u16 sample_rate;
unsigned long sample_time;
struct minstrel_sample_category sample[3];
u16 supported[42];
struct minstrel_mcs_group_data groups[42];
};
struct minstrel_priv {
struct ieee80211_hw *hw;
unsigned int cw_min;
unsigned int cw_max;
unsigned int max_retry;
unsigned int segment_size;
unsigned int update_interval;
u8 cck_rates[4];
u8 ofdm_rates[48];
};
struct perf_guest_switch_msr {
unsigned int msr;
u64 host;
u64 guest;
};
struct event_constraint;
struct debug_store;
struct er_account;
struct intel_shared_regs;
struct intel_excl_cntrs;
struct amd_nb;
struct cpu_hw_events {
struct perf_event *events[64];
unsigned long active_mask[1];
unsigned long dirty[1];
int enabled;
int n_events;
int n_added;
int n_txn;
int n_txn_pair;
int n_txn_metric;
int assign[64];
u64 tags[64];
struct perf_event *event_list[64];
struct event_constraint *event_constraint[64];
int n_excl;
unsigned int txn_flags;
int is_fake;
struct debug_store *ds;
void *ds_pebs_vaddr;
void *ds_bts_vaddr;
u64 pebs_enabled;
int n_pebs;
int n_large_pebs;
int n_pebs_via_pt;
int pebs_output;
u64 pebs_data_cfg;
u64 active_pebs_data_cfg;
int pebs_record_size;
u64 fixed_ctrl_val;
u64 active_fixed_ctrl_val;
int lbr_users;
int lbr_pebs_users;
struct perf_branch_stack lbr_stack;
struct perf_branch_entry lbr_entries[32];
u64 lbr_counters[32];
union {
struct er_account *lbr_sel;
struct er_account *lbr_ctl;
};
u64 br_sel;
void *last_task_ctx;
int last_log_id;
int lbr_select;
void *lbr_xsave;
u64 intel_ctrl_guest_mask;
u64 intel_ctrl_host_mask;
struct perf_guest_switch_msr guest_switch_msrs[64];
u64 intel_cp_status;
struct intel_shared_regs *shared_regs;
struct event_constraint *constraint_list;
struct intel_excl_cntrs *excl_cntrs;
int excl_thread_id;
u64 tfa_shadow;
int n_metric;
struct amd_nb *amd_nb;
int brs_active;
u64 perf_ctr_virt_mask;
int n_pair;
void *kfree_on_online[2];
struct pmu *pmu;
};
struct event_constraint {
union {
unsigned long idxmsk[1];
u64 idxmsk64;
};
u64 code;
u64 cmask;
int weight;
int overlap;
int flags;
unsigned int size;
};
struct debug_store {
u64 bts_buffer_base;
u64 bts_index;
u64 bts_absolute_maximum;
u64 bts_interrupt_threshold;
u64 pebs_buffer_base;
u64 pebs_index;
u64 pebs_absolute_maximum;
u64 pebs_interrupt_threshold;
u64 pebs_event_reset[48];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct er_account {
raw_spinlock_t lock;
u64 config;
u64 reg;
atomic_t ref;
};
struct intel_shared_regs {
struct er_account regs[7];
int refcnt;
unsigned int core_id;
};
enum intel_excl_state_type {
INTEL_EXCL_UNUSED = 0,
INTEL_EXCL_SHARED = 1,
INTEL_EXCL_EXCLUSIVE = 2,
};
struct intel_excl_states {
enum intel_excl_state_type state[64];
bool sched_started;
};
struct intel_excl_cntrs {
raw_spinlock_t lock;
struct intel_excl_states states[2];
union {
u16 has_exclusive[2];
u32 exclusive_present;
};
int refcnt;
unsigned int core_id;
};
struct amd_nb {
int nb_id;
int refcnt;
struct perf_event *owners[64];
struct event_constraint event_constraints[64];
};
union perf_capabilities {
struct {
u64 lbr_format: 6;
u64 pebs_trap: 1;
u64 pebs_arch_reg: 1;
u64 pebs_format: 4;
u64 smm_freeze: 1;
u64 full_width_write: 1;
u64 pebs_baseline: 1;
u64 perf_metrics: 1;
u64 pebs_output_pt_available: 1;
u64 pebs_timing_info: 1;
u64 anythread_deprecated: 1;
};
u64 capabilities;
};
enum hybrid_cpu_type {
HYBRID_INTEL_NONE = 0,
HYBRID_INTEL_ATOM = 32,
HYBRID_INTEL_CORE = 64,
};
struct x86_pmu_quirk;
struct extra_reg;
struct x86_hybrid_pmu;
struct x86_pmu {
const char *name;
int version;
int (*handle_irq)(struct pt_regs *);
void (*disable_all)();
void (*enable_all)(int);
void (*enable)(struct perf_event *);
void (*disable)(struct perf_event *);
void (*assign)(struct perf_event *, int);
void (*add)(struct perf_event *);
void (*del)(struct perf_event *);
void (*read)(struct perf_event *);
int (*set_period)(struct perf_event *);
u64 (*update)(struct perf_event *);
int (*hw_config)(struct perf_event *);
int (*schedule_events)(struct cpu_hw_events *, int, int *);
unsigned int eventsel;
unsigned int perfctr;
int (*addr_offset)(int, bool);
int (*rdpmc_index)(int);
u64 (*event_map)(int);
int max_events;
int num_counters;
int num_counters_fixed;
int cntval_bits;
u64 cntval_mask;
union {
unsigned long events_maskl;
unsigned long events_mask[1];
};
int events_mask_len;
int apic;
u64 max_period;
struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *);
void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *);
void (*start_scheduling)(struct cpu_hw_events *);
void (*commit_scheduling)(struct cpu_hw_events *, int, int);
void (*stop_scheduling)(struct cpu_hw_events *);
struct event_constraint *event_constraints;
struct x86_pmu_quirk *quirks;
void (*limit_period)(struct perf_event *, s64 *);
unsigned int late_ack: 1;
unsigned int mid_ack: 1;
unsigned int enabled_ack: 1;
int attr_rdpmc_broken;
int attr_rdpmc;
struct attribute **format_attrs;
ssize_t (*events_sysfs_show)(char *, u64);
const struct attribute_group **attr_update;
unsigned long attr_freeze_on_smi;
int (*cpu_prepare)(int);
void (*cpu_starting)(int);
void (*cpu_dying)(int);
void (*cpu_dead)(int);
void (*check_microcode)();
void (*sched_task)(struct perf_event_pmu_context *, bool);
u64 intel_ctrl;
union perf_capabilities intel_cap;
unsigned int bts: 1;
unsigned int bts_active: 1;
unsigned int pebs: 1;
unsigned int pebs_active: 1;
unsigned int pebs_broken: 1;
unsigned int pebs_prec_dist: 1;
unsigned int pebs_no_tlb: 1;
unsigned int pebs_no_isolation: 1;
unsigned int pebs_block: 1;
unsigned int pebs_ept: 1;
int pebs_record_size;
int pebs_buffer_size;
int max_pebs_events;
void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *);
struct event_constraint *pebs_constraints;
void (*pebs_aliases)(struct perf_event *);
u64 (*pebs_latency_data)(struct perf_event *, u64);
unsigned long large_pebs_flags;
u64 rtm_abort_event;
u64 pebs_capable;
unsigned int lbr_tos;
unsigned int lbr_from;
unsigned int lbr_to;
unsigned int lbr_info;
unsigned int lbr_nr;
union {
u64 lbr_sel_mask;
u64 lbr_ctl_mask;
};
union {
const int *lbr_sel_map;
int *lbr_ctl_map;
};
bool lbr_double_abort;
bool lbr_pt_coexist;
unsigned int lbr_has_info: 1;
unsigned int lbr_has_tsx: 1;
unsigned int lbr_from_flags: 1;
unsigned int lbr_to_cycles: 1;
unsigned int lbr_depth_mask: 8;
unsigned int lbr_deep_c_reset: 1;
unsigned int lbr_lip: 1;
unsigned int lbr_cpl: 1;
unsigned int lbr_filter: 1;
unsigned int lbr_call_stack: 1;
unsigned int lbr_mispred: 1;
unsigned int lbr_timed_lbr: 1;
unsigned int lbr_br_type: 1;
unsigned int lbr_counters: 4;
void (*lbr_reset)();
void (*lbr_read)(struct cpu_hw_events *);
void (*lbr_save)(void *);
void (*lbr_restore)(void *);
atomic_t lbr_exclusive[3];
int num_topdown_events;
void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *);
unsigned int amd_nb_constraints: 1;
u64 perf_ctr_pair_en;
struct extra_reg *extra_regs;
unsigned int flags;
struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *);
int (*check_period)(struct perf_event *, u64);
int (*aux_output_match)(struct perf_event *);
void (*filter)(struct pmu *, int, bool *);
int num_hybrid_pmus;
struct x86_hybrid_pmu *hybrid_pmu;
enum hybrid_cpu_type (*get_hybrid_cpu_type)();
};
struct x86_pmu_quirk {
struct x86_pmu_quirk *next;
void (*func)();
};
struct extra_reg {
unsigned int event;
unsigned int msr;
u64 config_mask;
u64 valid_mask;
int idx;
bool extra_msr_access;
};
enum hybrid_pmu_type {
not_hybrid = 0,
hybrid_small = 1,
hybrid_big = 2,
hybrid_big_small = 3,
};
struct x86_hybrid_pmu {
struct pmu pmu;
const char *name;
enum hybrid_pmu_type pmu_type;
cpumask_t supported_cpus;
union perf_capabilities intel_cap;
u64 intel_ctrl;
int max_pebs_events;
int num_counters;
int num_counters_fixed;
struct event_constraint unconstrained;
u64 hw_cache_event_ids[42];
u64 hw_cache_extra_regs[42];
struct event_constraint *event_constraints;
struct event_constraint *pebs_constraints;
struct extra_reg *extra_regs;
unsigned int late_ack: 1;
unsigned int mid_ack: 1;
unsigned int enabled_ack: 1;
u64 pebs_data_source[16];
};
typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
struct nmiaction {
struct list_head list;
nmi_handler_t handler;
u64 max_duration;
unsigned long flags;
const char *name;
};
struct perf_pmu_events_attr {
struct device_attribute attr;
u64 id;
const char *event_str;
};
enum {
x86_lbr_exclusive_lbr = 0,
x86_lbr_exclusive_bts = 1,
x86_lbr_exclusive_pt = 2,
x86_lbr_exclusive_max = 3,
};
enum perf_type_id {
PERF_TYPE_HARDWARE = 0,
PERF_TYPE_SOFTWARE = 1,
PERF_TYPE_TRACEPOINT = 2,
PERF_TYPE_HW_CACHE = 3,
PERF_TYPE_RAW = 4,
PERF_TYPE_BREAKPOINT = 5,
PERF_TYPE_MAX = 6,
};
enum perf_branch_sample_type {
PERF_SAMPLE_BRANCH_USER = 1,
PERF_SAMPLE_BRANCH_KERNEL = 2,
PERF_SAMPLE_BRANCH_HV = 4,
PERF_SAMPLE_BRANCH_ANY = 8,
PERF_SAMPLE_BRANCH_ANY_CALL = 16,
PERF_SAMPLE_BRANCH_ANY_RETURN = 32,
PERF_SAMPLE_BRANCH_IND_CALL = 64,
PERF_SAMPLE_BRANCH_ABORT_TX = 128,
PERF_SAMPLE_BRANCH_IN_TX = 256,
PERF_SAMPLE_BRANCH_NO_TX = 512,
PERF_SAMPLE_BRANCH_COND = 1024,
PERF_SAMPLE_BRANCH_CALL_STACK = 2048,
PERF_SAMPLE_BRANCH_IND_JUMP = 4096,
PERF_SAMPLE_BRANCH_CALL = 8192,
PERF_SAMPLE_BRANCH_NO_FLAGS = 16384,
PERF_SAMPLE_BRANCH_NO_CYCLES = 32768,
PERF_SAMPLE_BRANCH_TYPE_SAVE = 65536,
PERF_SAMPLE_BRANCH_HW_INDEX = 131072,
PERF_SAMPLE_BRANCH_PRIV_SAVE = 262144,
PERF_SAMPLE_BRANCH_COUNTERS = 524288,
PERF_SAMPLE_BRANCH_MAX = 1048576,
};
enum perf_event_x86_regs {
PERF_REG_X86_AX = 0,
PERF_REG_X86_BX = 1,
PERF_REG_X86_CX = 2,
PERF_REG_X86_DX = 3,
PERF_REG_X86_SI = 4,
PERF_REG_X86_DI = 5,
PERF_REG_X86_BP = 6,
PERF_REG_X86_SP = 7,
PERF_REG_X86_IP = 8,
PERF_REG_X86_FLAGS = 9,
PERF_REG_X86_CS = 10,
PERF_REG_X86_SS = 11,
PERF_REG_X86_DS = 12,
PERF_REG_X86_ES = 13,
PERF_REG_X86_FS = 14,
PERF_REG_X86_GS = 15,
PERF_REG_X86_R8 = 16,
PERF_REG_X86_R9 = 17,
PERF_REG_X86_R10 = 18,
PERF_REG_X86_R11 = 19,
PERF_REG_X86_R12 = 20,
PERF_REG_X86_R13 = 21,
PERF_REG_X86_R14 = 22,
PERF_REG_X86_R15 = 23,
PERF_REG_X86_32_MAX = 16,
PERF_REG_X86_64_MAX = 24,
PERF_REG_X86_XMM0 = 32,
PERF_REG_X86_XMM1 = 34,
PERF_REG_X86_XMM2 = 36,
PERF_REG_X86_XMM3 = 38,
PERF_REG_X86_XMM4 = 40,
PERF_REG_X86_XMM5 = 42,
PERF_REG_X86_XMM6 = 44,
PERF_REG_X86_XMM7 = 46,
PERF_REG_X86_XMM8 = 48,
PERF_REG_X86_XMM9 = 50,
PERF_REG_X86_XMM10 = 52,
PERF_REG_X86_XMM11 = 54,
PERF_REG_X86_XMM12 = 56,
PERF_REG_X86_XMM13 = 58,
PERF_REG_X86_XMM14 = 60,
PERF_REG_X86_XMM15 = 62,
PERF_REG_X86_XMM_MAX = 64,
};
enum {
PERF_X86_EVENT_PEBS_LDLAT = 1,
PERF_X86_EVENT_PEBS_ST = 2,
PERF_X86_EVENT_PEBS_ST_HSW = 4,
PERF_X86_EVENT_PEBS_LD_HSW = 8,
PERF_X86_EVENT_PEBS_NA_HSW = 16,
PERF_X86_EVENT_EXCL = 32,
PERF_X86_EVENT_DYNAMIC = 64,
PERF_X86_EVENT_EXCL_ACCT = 256,
PERF_X86_EVENT_AUTO_RELOAD = 512,
PERF_X86_EVENT_LARGE_PEBS = 1024,
PERF_X86_EVENT_PEBS_VIA_PT = 2048,
PERF_X86_EVENT_PAIR = 4096,
PERF_X86_EVENT_LBR_SELECT = 8192,
PERF_X86_EVENT_TOPDOWN = 16384,
PERF_X86_EVENT_PEBS_STLAT = 32768,
PERF_X86_EVENT_AMD_BRS = 65536,
PERF_X86_EVENT_PEBS_LAT_HYBRID = 131072,
PERF_X86_EVENT_NEEDS_BRANCH_STACK = 262144,
PERF_X86_EVENT_BRANCH_COUNTERS = 524288,
};
enum perf_hw_cache_id {
PERF_COUNT_HW_CACHE_L1D = 0,
PERF_COUNT_HW_CACHE_L1I = 1,
PERF_COUNT_HW_CACHE_LL = 2,
PERF_COUNT_HW_CACHE_DTLB = 3,
PERF_COUNT_HW_CACHE_ITLB = 4,
PERF_COUNT_HW_CACHE_BPU = 5,
PERF_COUNT_HW_CACHE_NODE = 6,
PERF_COUNT_HW_CACHE_MAX = 7,
};
enum perf_hw_cache_op_id {
PERF_COUNT_HW_CACHE_OP_READ = 0,
PERF_COUNT_HW_CACHE_OP_WRITE = 1,
PERF_COUNT_HW_CACHE_OP_PREFETCH = 2,
PERF_COUNT_HW_CACHE_OP_MAX = 3,
};
enum perf_hw_cache_op_result_id {
PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0,
PERF_COUNT_HW_CACHE_RESULT_MISS = 1,
PERF_COUNT_HW_CACHE_RESULT_MAX = 2,
};
enum perf_event_sample_format {
PERF_SAMPLE_IP = 1,
PERF_SAMPLE_TID = 2,
PERF_SAMPLE_TIME = 4,
PERF_SAMPLE_ADDR = 8,
PERF_SAMPLE_READ = 16,
PERF_SAMPLE_CALLCHAIN = 32,
PERF_SAMPLE_ID = 64,
PERF_SAMPLE_CPU = 128,
PERF_SAMPLE_PERIOD = 256,
PERF_SAMPLE_STREAM_ID = 512,
PERF_SAMPLE_RAW = 1024,
PERF_SAMPLE_BRANCH_STACK = 2048,
PERF_SAMPLE_REGS_USER = 4096,
PERF_SAMPLE_STACK_USER = 8192,
PERF_SAMPLE_WEIGHT = 16384,
PERF_SAMPLE_DATA_SRC = 32768,
PERF_SAMPLE_IDENTIFIER = 65536,
PERF_SAMPLE_TRANSACTION = 131072,
PERF_SAMPLE_REGS_INTR = 262144,
PERF_SAMPLE_PHYS_ADDR = 524288,
PERF_SAMPLE_AUX = 1048576,
PERF_SAMPLE_CGROUP = 2097152,
PERF_SAMPLE_DATA_PAGE_SIZE = 4194304,
PERF_SAMPLE_CODE_PAGE_SIZE = 8388608,
PERF_SAMPLE_WEIGHT_STRUCT = 16777216,
PERF_SAMPLE_MAX = 33554432,
};
enum {
NMI_LOCAL = 0,
NMI_UNKNOWN = 1,
NMI_SERR = 2,
NMI_IO_CHECK = 3,
NMI_MAX = 4,
};
enum {
X86_PERF_KFREE_SHARED = 0,
X86_PERF_KFREE_EXCL = 1,
X86_PERF_KFREE_MAX = 2,
};
enum extra_reg_type {
EXTRA_REG_NONE = -1,
EXTRA_REG_RSP_0 = 0,
EXTRA_REG_RSP_1 = 1,
EXTRA_REG_LBR = 2,
EXTRA_REG_LDLAT = 3,
EXTRA_REG_FE = 4,
EXTRA_REG_SNOOP_0 = 5,
EXTRA_REG_SNOOP_1 = 6,
EXTRA_REG_MAX = 7,
};
struct perf_pmu_events_ht_attr {
struct device_attribute attr;
u64 id;
const char *event_str_ht;
const char *event_str_noht;
};
struct perf_pmu_events_hybrid_attr {
struct device_attribute attr;
u64 id;
const char *event_str;
u64 pmu_type;
};
struct stack_frame {
struct stack_frame *next_frame;
unsigned long return_address;
};
struct sched_state {
int weight;
int event;
int counter;
int unassigned;
int nr_gp;
u64 used;
};
struct perf_sched {
int max_weight;
int max_events;
int max_gp;
int saved_states;
struct event_constraint **constraints;
struct sched_state state;
struct sched_state saved[2];
};
struct cyc2ns_data {
u32 cyc2ns_mul;
u32 cyc2ns_shift;
u64 cyc2ns_offset;
};
struct perf_callchain_entry_ctx {
struct perf_callchain_entry *entry;
u32 max_stack;
u32 nr;
short contexts;
bool contexts_maxed;
};
struct unwind_state {
struct stack_info stack_info;
unsigned long stack_mask;
struct task_struct *task;
int graph_idx;
struct llist_node *kr_cur;
bool error;
bool signal;
bool full_regs;
unsigned long sp;
unsigned long bp;
unsigned long ip;
struct pt_regs *regs;
struct pt_regs *prev_regs;
};
struct perf_event_mmap_page {
__u32 version;
__u32 compat_version;
__u32 lock;
__u32 index;
__s64 offset;
__u64 time_enabled;
__u64 time_running;
union {
__u64 capabilities;
struct {
__u64 cap_bit0: 1;
__u64 cap_bit0_is_deprecated: 1;
__u64 cap_user_rdpmc: 1;
__u64 cap_user_time: 1;
__u64 cap_user_time_zero: 1;
__u64 cap_user_time_short: 1;
__u64 cap_____res: 58;
};
};
__u16 pmc_width;
__u16 time_shift;
__u32 time_mult;
__u64 time_offset;
__u64 time_zero;
__u32 size;
__u32 __reserved_1;
__u64 time_cycles;
__u64 time_mask;
__u8 __reserved[928];
__u64 data_head;
__u64 data_tail;
__u64 data_offset;
__u64 data_size;
__u64 aux_head;
__u64 aux_tail;
__u64 aux_offset;
__u64 aux_size;
};
struct x86_pmu_capability {
int version;
int num_counters_gp;
int num_counters_fixed;
int bit_width_gp;
int bit_width_fixed;
unsigned int events_mask;
int events_mask_len;
unsigned int pebs_ept: 1;
};
struct x86_cpu_id {
__u16 vendor;
__u16 family;
__u16 model;
__u16 steppings;
__u16 feature;
kernel_ulong_t driver_data;
};
struct muldiv {
u32 multiplier;
u32 divider;
};
struct freq_desc {
bool use_msr_plat;
struct muldiv muldiv[16];
u32 freqs[16];
u32 mask;
};
struct tsc_adjust {
s64 bootval;
s64 adjusted;
unsigned long nextcheck;
bool warned;
};
typedef unsigned long long cycles_t;
struct vector_cleanup {
struct hlist_head head;
struct timer_list timer;
};
enum {
X86_IRQ_ALLOC_LEGACY = 1,
};
enum {
IRQ_SET_MASK_OK = 0,
IRQ_SET_MASK_OK_NOCOPY = 1,
IRQ_SET_MASK_OK_DONE = 2,
};
struct irq_cfg {
unsigned int dest_apicid;
unsigned int vector;
};
struct apic_chip_data {
struct irq_cfg hw_irq_cfg;
unsigned int vector;
unsigned int prev_vector;
unsigned int cpu;
unsigned int prev_cpu;
unsigned int irq;
struct hlist_node clist;
unsigned int move_in_progress: 1;
unsigned int is_managed: 1;
unsigned int can_reserve: 1;
unsigned int has_reserved: 1;
};
typedef struct irq_desc *vector_irq_t[256];
struct dma_sgt_handle {
struct sg_table sgt;
struct page **pages;
};
struct dma_map_ops {
unsigned int flags;
void * (*alloc)(struct device *, size_t, dma_addr_t *, gfp_t, unsigned long);
void (*free)(struct device *, size_t, void *, dma_addr_t, unsigned long);
struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t);
void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction);
struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, unsigned long);
void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction);
int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, unsigned long);
int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, unsigned long);
dma_addr_t (*map_page)(struct device *, struct page *, unsigned long, size_t, enum dma_data_direction, unsigned long);
void (*unmap_page)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long);
int (*map_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long);
void (*unmap_sg)(struct device *, struct scatterlist *, int, enum dma_data_direction, unsigned long);
dma_addr_t (*map_resource)(struct device *, phys_addr_t, size_t, enum dma_data_direction, unsigned long);
void (*unmap_resource)(struct device *, dma_addr_t, size_t, enum dma_data_direction, unsigned long);
void (*sync_single_for_cpu)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
void (*sync_single_for_device)(struct device *, dma_addr_t, size_t, enum dma_data_direction);
void (*sync_sg_for_cpu)(struct device *, struct scatterlist *, int, enum dma_data_direction);
void (*sync_sg_for_device)(struct device *, struct scatterlist *, int, enum dma_data_direction);
void (*cache_sync)(struct device *, void *, size_t, enum dma_data_direction);
int (*dma_supported)(struct device *, u64);
u64 (*get_required_mask)(struct device *);
size_t (*max_mapping_size)(struct device *);
size_t (*opt_mapping_size)();
unsigned long (*get_merge_boundary)(struct device *);
};
typedef int (*dr_match_t)(struct device *, void *, void *);
struct dma_devres {
size_t size;
void *vaddr;
dma_addr_t dma_handle;
unsigned long attrs;
};
enum rdmacg_resource_type {
RDMACG_RESOURCE_HCA_HANDLE = 0,
RDMACG_RESOURCE_HCA_OBJECT = 1,
RDMACG_RESOURCE_MAX = 2,
};
enum rdmacg_file_type {
RDMACG_RESOURCE_TYPE_MAX = 0,
RDMACG_RESOURCE_TYPE_STAT = 1,
};
struct rdmacg_resource {
int max;
int usage;
};
struct rdmacg_device;
struct rdmacg_resource_pool {
struct rdmacg_device *device;
struct rdmacg_resource resources[2];
struct list_head cg_node;
struct list_head dev_node;
u64 usage_sum;
int num_max_cnt;
};
struct rdmacg_device {
struct list_head dev_node;
struct list_head rpools;
char *name;
};
struct rdma_cgroup {
struct cgroup_subsys_state css;
struct list_head rpools;
};
enum trace_type {
__TRACE_FIRST_TYPE = 0,
TRACE_FN = 1,
TRACE_CTX = 2,
TRACE_WAKE = 3,
TRACE_STACK = 4,
TRACE_PRINT = 5,
TRACE_BPRINT = 6,
TRACE_MMIO_RW = 7,
TRACE_MMIO_MAP = 8,
TRACE_BRANCH = 9,
TRACE_GRAPH_RET = 10,
TRACE_GRAPH_ENT = 11,
TRACE_USER_STACK = 12,
TRACE_BLK = 13,
TRACE_BPUTS = 14,
TRACE_HWLAT = 15,
TRACE_OSNOISE = 16,
TRACE_TIMERLAT = 17,
TRACE_RAW_DATA = 18,
TRACE_FUNC_REPEATS = 19,
__TRACE_LAST_TYPE = 20,
};
enum {
TRACE_FTRACE_BIT = 0,
TRACE_FTRACE_NMI_BIT = 1,
TRACE_FTRACE_IRQ_BIT = 2,
TRACE_FTRACE_SIRQ_BIT = 3,
TRACE_FTRACE_TRANSITION_BIT = 4,
TRACE_INTERNAL_BIT = 5,
TRACE_INTERNAL_NMI_BIT = 6,
TRACE_INTERNAL_IRQ_BIT = 7,
TRACE_INTERNAL_SIRQ_BIT = 8,
TRACE_INTERNAL_TRANSITION_BIT = 9,
TRACE_BRANCH_BIT = 10,
TRACE_IRQ_BIT = 11,
TRACE_GRAPH_BIT = 12,
TRACE_GRAPH_DEPTH_START_BIT = 13,
TRACE_GRAPH_DEPTH_END_BIT = 14,
TRACE_GRAPH_NOTRACE_BIT = 15,
TRACE_RECORD_RECURSION_BIT = 16,
};
enum trace_iterator_flags {
TRACE_ITER_PRINT_PARENT = 1,
TRACE_ITER_SYM_OFFSET = 2,
TRACE_ITER_SYM_ADDR = 4,
TRACE_ITER_VERBOSE = 8,
TRACE_ITER_RAW = 16,
TRACE_ITER_HEX = 32,
TRACE_ITER_BIN = 64,
TRACE_ITER_BLOCK = 128,
TRACE_ITER_FIELDS = 256,
TRACE_ITER_PRINTK = 512,
TRACE_ITER_ANNOTATE = 1024,
TRACE_ITER_USERSTACKTRACE = 2048,
TRACE_ITER_SYM_USEROBJ = 4096,
TRACE_ITER_PRINTK_MSGONLY = 8192,
TRACE_ITER_CONTEXT_INFO = 16384,
TRACE_ITER_LATENCY_FMT = 32768,
TRACE_ITER_RECORD_CMD = 65536,
TRACE_ITER_RECORD_TGID = 131072,
TRACE_ITER_OVERWRITE = 262144,
TRACE_ITER_STOP_ON_FREE = 524288,
TRACE_ITER_IRQ_INFO = 1048576,
TRACE_ITER_MARKERS = 2097152,
TRACE_ITER_EVENT_FORK = 4194304,
TRACE_ITER_PAUSE_ON_TRACE = 8388608,
TRACE_ITER_HASH_PTR = 16777216,
TRACE_ITER_FUNCTION = 33554432,
TRACE_ITER_FUNC_FORK = 67108864,
TRACE_ITER_DISPLAY_GRAPH = 134217728,
TRACE_ITER_STACKTRACE = 268435456,
};
enum {
FTRACE_HASH_FL_MOD = 1,
};
enum trace_flag_type {
TRACE_FLAG_IRQS_OFF = 1,
TRACE_FLAG_IRQS_NOSUPPORT = 2,
TRACE_FLAG_NEED_RESCHED = 4,
TRACE_FLAG_HARDIRQ = 8,
TRACE_FLAG_SOFTIRQ = 16,
TRACE_FLAG_PREEMPT_RESCHED = 32,
TRACE_FLAG_NMI = 64,
TRACE_FLAG_BH_OFF = 128,
};
enum {
FLAGS_FILL_FULL = 268435456,
FLAGS_FILL_START = 536870912,
FLAGS_FILL_END = 805306368,
};
struct fgraph_cpu_data {
pid_t last_pid;
int depth;
int depth_irq;
int ignore;
unsigned long enter_funcs[50];
};
struct ftrace_graph_ent_entry {
struct trace_entry ent;
struct ftrace_graph_ent graph_ent;
};
struct ftrace_graph_ret_entry {
struct trace_entry ent;
struct ftrace_graph_ret ret;
};
struct ftrace_func_entry {
struct hlist_node hlist;
unsigned long ip;
unsigned long direct;
};
struct fgraph_data {
struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data;
struct ftrace_graph_ent_entry ent;
struct ftrace_graph_ret_entry ret;
int failed;
int cpu;
long: 0;
} __attribute__((packed));
struct vm_special_mapping {
const char *name;
struct page **pages;
vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *);
int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *);
};
struct xol_area {
wait_queue_head_t wq;
atomic_t slot_count;
unsigned long *bitmap;
struct vm_special_mapping xol_mapping;
struct page *pages[2];
unsigned long vaddr;
};
struct uprobe_consumer;
struct uprobe {
struct rb_node rb_node;
refcount_t ref;
struct rw_semaphore register_rwsem;
struct rw_semaphore consumer_rwsem;
struct list_head pending_list;
struct uprobe_consumer *consumers;
struct inode *inode;
loff_t offset;
loff_t ref_ctr_offset;
unsigned long flags;
struct arch_uprobe arch;
};
enum uprobe_filter_ctx {
UPROBE_FILTER_REGISTER = 0,
UPROBE_FILTER_UNREGISTER = 1,
UPROBE_FILTER_MMAP = 2,
};
struct uprobe_consumer {
int (*handler)(struct uprobe_consumer *, struct pt_regs *);
int (*ret_handler)(struct uprobe_consumer *, unsigned long, struct pt_regs *);
bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
struct uprobe_consumer *next;
};
enum {
MM_FILEPAGES = 0,
MM_ANONPAGES = 1,
MM_SWAPENTS = 2,
MM_SHMEMPAGES = 3,
NR_MM_COUNTERS = 4,
};
typedef u8 uprobe_opcode_t;
struct delayed_uprobe {
struct list_head list;
struct uprobe *uprobe;
struct mm_struct *mm;
};
struct page_vma_mapped_walk {
unsigned long pfn;
unsigned long nr_pages;
unsigned long pgoff;
struct vm_area_struct *vma;
unsigned long address;
pmd_t *pmd;
pte_t *pte;
spinlock_t *ptl;
unsigned int flags;
};
struct mmu_notifier_range {
unsigned long start;
unsigned long end;
};
struct __uprobe_key {
struct inode *inode;
loff_t offset;
};
struct map_info___2 {
struct map_info___2 *next;
struct mm_struct *mm;
unsigned long vaddr;
};
enum {
XA_CHECK_SCHED = 4096,
};
enum {
HUGETLB_SHMFS_INODE = 1,
HUGETLB_ANONHUGE_INODE = 2,
};
struct simple_xattrs {
struct rb_root rb_root;
rwlock_t lock;
};
struct shmem_inode_info {
spinlock_t lock;
unsigned int seals;
unsigned long flags;
unsigned long alloced;
unsigned long swapped;
union {
struct offset_ctx dir_offsets;
struct {
struct list_head shrinklist;
struct list_head swaplist;
};
};
struct timespec64 i_crtime;
struct shared_policy policy;
struct simple_xattrs xattrs;
unsigned long fallocend;
unsigned int fsflags;
atomic_t stop_eviction;
struct inode vfs_inode;
};
struct hugetlbfs_inode_info {
struct inode vfs_inode;
unsigned int seals;
};
struct elf64_phdr {
Elf64_Word p_type;
Elf64_Word p_flags;
Elf64_Off p_offset;
Elf64_Addr p_vaddr;
Elf64_Addr p_paddr;
Elf64_Xword p_filesz;
Elf64_Xword p_memsz;
Elf64_Xword p_align;
};
struct memelfnote {
const char *name;
int type;
unsigned int datasz;
void *data;
};
struct elf_thread_core_info;
struct elf_note_info {
struct elf_thread_core_info *thread;
struct memelfnote psinfo;
struct memelfnote signote;
struct memelfnote auxv;
struct memelfnote files;
siginfo_t csigdata;
size_t size;
int thread_notes;
};
struct elf_siginfo {
int si_signo;
int si_code;
int si_errno;
};
struct elf_prstatus_common {
struct elf_siginfo pr_info;
short pr_cursig;
unsigned long pr_sigpend;
unsigned long pr_sighold;
pid_t pr_pid;
pid_t pr_ppid;
pid_t pr_pgrp;
pid_t pr_sid;
struct __kernel_old_timeval pr_utime;
struct __kernel_old_timeval pr_stime;
struct __kernel_old_timeval pr_cutime;
struct __kernel_old_timeval pr_cstime;
};
typedef unsigned long elf_greg_t;
typedef elf_greg_t elf_gregset_t[27];
struct elf_prstatus {
struct elf_prstatus_common common;
elf_gregset_t pr_reg;
int pr_fpvalid;
};
struct elf_thread_core_info {
struct elf_thread_core_info *next;
struct task_struct *task;
struct elf_prstatus prstatus;
struct memelfnote notes[0];
};
typedef unsigned int __kernel_uid_t;
typedef unsigned int __kernel_gid_t;
struct elf_prpsinfo {
char pr_state;
char pr_sname;
char pr_zomb;
char pr_nice;
unsigned long pr_flag;
__kernel_uid_t pr_uid;
__kernel_gid_t pr_gid;
pid_t pr_pid;
pid_t pr_ppid;
pid_t pr_pgrp;
pid_t pr_sid;
char pr_fname[16];
char pr_psargs[80];
};
struct user_regset;
struct user_regset_view {
const char *name;
const struct user_regset *regsets;
unsigned int n;
u32 e_flags;
u16 e_machine;
u8 ei_osabi;
};
struct membuf;
typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf);
typedef int user_regset_set_fn(struct task_struct *, const struct user_regset *, unsigned int, unsigned int, const void *, const void __attribute__((btf_type_tag("user"))) *);
typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *);
typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int);
struct user_regset {
user_regset_get2_fn *regset_get;
user_regset_set_fn *set;
user_regset_active_fn *active;
user_regset_writeback_fn *writeback;
unsigned int n;
unsigned int size;
unsigned int align;
unsigned int bias;
unsigned int core_note_type;
};
struct membuf {
void *p;
size_t left;
};
struct arch_elf_state {};
struct elf64_note {
Elf64_Word n_namesz;
Elf64_Word n_descsz;
Elf64_Word n_type;
};
struct dx_hash_info {
u32 hash;
u32 minor_hash;
int hash_version;
u32 *seed;
};
enum shrink_type {
SHRINK_DESTROY = 0,
SHRINK_BUSY_STOP = 1,
SHRINK_BUSY_SKIP = 2,
};
enum btrfs_feature_set {
FEAT_COMPAT = 0,
FEAT_COMPAT_RO = 1,
FEAT_INCOMPAT = 2,
FEAT_MAX = 3,
};
struct btrfs_feature_attr {
struct kobj_attribute kobj_attr;
enum btrfs_feature_set feature_set;
u64 feature_bit;
};
enum btrfs_raid_types {
BTRFS_RAID_SINGLE = 0,
BTRFS_RAID_RAID0 = 1,
BTRFS_RAID_RAID1 = 2,
BTRFS_RAID_DUP = 3,
BTRFS_RAID_RAID10 = 4,
BTRFS_RAID_RAID5 = 5,
BTRFS_RAID_RAID6 = 6,
BTRFS_RAID_RAID1C3 = 7,
BTRFS_RAID_RAID1C4 = 8,
BTRFS_NR_RAID_TYPES = 9,
};
enum btrfs_dev_stat_values {
BTRFS_DEV_STAT_WRITE_ERRS = 0,
BTRFS_DEV_STAT_READ_ERRS = 1,
BTRFS_DEV_STAT_FLUSH_ERRS = 2,
BTRFS_DEV_STAT_CORRUPTION_ERRS = 3,
BTRFS_DEV_STAT_GENERATION_ERRS = 4,
BTRFS_DEV_STAT_VALUES_MAX = 5,
};
enum btrfs_qgroup_rsv_type {
BTRFS_QGROUP_RSV_DATA = 0,
BTRFS_QGROUP_RSV_META_PERTRANS = 1,
BTRFS_QGROUP_RSV_META_PREALLOC = 2,
BTRFS_QGROUP_RSV_LAST = 3,
};
enum btrfs_qgroup_mode {
BTRFS_QGROUP_MODE_DISABLED = 0,
BTRFS_QGROUP_MODE_FULL = 1,
BTRFS_QGROUP_MODE_SIMPLE = 2,
};
struct btrfs_qgroup_rsv {
u64 values[3];
};
struct btrfs_qgroup {
u64 qgroupid;
u64 rfer;
u64 rfer_cmpr;
u64 excl;
u64 excl_cmpr;
u64 lim_flags;
u64 max_rfer;
u64 max_excl;
u64 rsv_rfer;
u64 rsv_excl;
struct btrfs_qgroup_rsv rsv;
struct list_head groups;
struct list_head members;
struct list_head dirty;
struct list_head iterator;
struct list_head nested_iterator;
struct rb_node node;
u64 old_refcnt;
u64 new_refcnt;
struct kobject kobj;
};
struct raid_kobject {
u64 flags;
struct kobject kobj;
};
typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t);
struct asn1_decoder {
const unsigned char *machine;
size_t machlen;
const asn1_action_t *actions;
};
struct rsa_key {
const u8 *n;
const u8 *e;
const u8 *d;
const u8 *p;
const u8 *q;
const u8 *dp;
const u8 *dq;
const u8 *qinv;
size_t n_sz;
size_t e_sz;
size_t d_sz;
size_t p_sz;
size_t q_sz;
size_t dp_sz;
size_t dq_sz;
size_t qinv_sz;
};
struct rsa_asn1_template {
const char *name;
const u8 *data;
size_t size;
};
struct akcipher_request;
struct crypto_akcipher;
struct akcipher_alg {
int (*sign)(struct akcipher_request *);
int (*verify)(struct akcipher_request *);
int (*encrypt)(struct akcipher_request *);
int (*decrypt)(struct akcipher_request *);
int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int);
int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int);
unsigned int (*max_size)(struct crypto_akcipher *);
int (*init)(struct crypto_akcipher *);
void (*exit)(struct crypto_akcipher *);
struct crypto_alg base;
};
struct akcipher_request {
struct crypto_async_request base;
struct scatterlist *src;
struct scatterlist *dst;
unsigned int src_len;
unsigned int dst_len;
void *__ctx[0];
};
struct crypto_akcipher {
unsigned int reqsize;
struct crypto_tfm base;
};
struct akcipher_instance {
void (*free)(struct akcipher_instance *);
union {
struct {
char head[72];
struct crypto_instance base;
} s;
struct akcipher_alg alg;
};
};
struct crypto_akcipher_spawn {
struct crypto_spawn base;
};
struct pkcs1pad_inst_ctx {
struct crypto_akcipher_spawn spawn;
const struct rsa_asn1_template *digest_info;
};
struct pkcs1pad_ctx {
struct crypto_akcipher *child;
unsigned int key_size;
};
struct pkcs1pad_request {
struct scatterlist in_sg[2];
struct scatterlist out_sg[1];
uint8_t *in_buf;
uint8_t *out_buf;
struct akcipher_request child_req;
};
struct chksum_ctx {
u32 key;
};
struct chksum_desc_ctx {
u32 crc;
};
enum {
DISK_EVENT_FLAG_POLL = 1,
DISK_EVENT_FLAG_UEVENT = 2,
DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4,
};
enum {
DISK_EVENT_MEDIA_CHANGE = 1,
DISK_EVENT_EJECT_REQUEST = 2,
};
struct bdev_inode {
struct block_device bdev;
struct inode vfs_inode;
};
struct pseudo_fs_context {
const struct super_operations *ops;
const struct xattr_handler * const *xattr;
const struct dentry_operations *dops;
unsigned long magic;
};
enum backlight_type {
BACKLIGHT_RAW = 1,
BACKLIGHT_PLATFORM = 2,
BACKLIGHT_FIRMWARE = 3,
BACKLIGHT_TYPE_MAX = 4,
};
enum backlight_scale {
BACKLIGHT_SCALE_UNKNOWN = 0,
BACKLIGHT_SCALE_LINEAR = 1,
BACKLIGHT_SCALE_NON_LINEAR = 2,
};
enum backlight_update_reason {
BACKLIGHT_UPDATE_HOTKEY = 0,
BACKLIGHT_UPDATE_SYSFS = 1,
};
enum backlight_notification {
BACKLIGHT_REGISTERED = 0,
BACKLIGHT_UNREGISTERED = 1,
};
struct backlight_properties {
int brightness;
int max_brightness;
int power;
int fb_blank;
enum backlight_type type;
unsigned int state;
enum backlight_scale scale;
};
struct backlight_ops;
struct backlight_device {
struct backlight_properties props;
struct mutex update_lock;
struct mutex ops_lock;
const struct backlight_ops *ops;
struct notifier_block fb_notif;
struct list_head entry;
struct device dev;
bool fb_bl_on[32];
int use_count;
};
struct backlight_ops {
unsigned int options;
int (*update_status)(struct backlight_device *);
int (*get_brightness)(struct backlight_device *);
int (*check_fb)(struct backlight_device *, struct fb_info *);
};
struct pnp_resource {
struct list_head list;
struct resource res;
};
enum nvme_subsys_type {
NVME_NQN_DISC = 1,
NVME_NQN_NVME = 2,
NVME_NQN_CURR = 3,
};
enum nvme_ctrl_state {
NVME_CTRL_NEW = 0,
NVME_CTRL_LIVE = 1,
NVME_CTRL_RESETTING = 2,
NVME_CTRL_CONNECTING = 3,
NVME_CTRL_DELETING = 4,
NVME_CTRL_DELETING_NOIO = 5,
NVME_CTRL_DEAD = 6,
};
enum nvme_ctrl_type {
NVME_CTRL_IO = 1,
NVME_CTRL_DISC = 2,
NVME_CTRL_ADMIN = 3,
};
enum nvme_dctype {
NVME_DCTYPE_NOT_REPORTED = 0,
NVME_DCTYPE_DDC = 1,
NVME_DCTYPE_CDC = 2,
};
enum nvme_ctrl_flags {
NVME_CTRL_FAILFAST_EXPIRED = 0,
NVME_CTRL_ADMIN_Q_STOPPED = 1,
NVME_CTRL_STARTED_ONCE = 2,
NVME_CTRL_STOPPED = 3,
NVME_CTRL_SKIP_ID_CNS_CS = 4,
NVME_CTRL_DIRTY_CAPABILITY = 5,
NVME_CTRL_FROZEN = 6,
};
struct nvme_subsystem {
int instance;
struct device dev;
struct kref ref;
struct list_head entry;
struct mutex lock;
struct list_head ctrls;
struct list_head nsheads;
char subnqn[223];
char serial[20];
char model[40];
char firmware_rev[8];
u8 cmic;
enum nvme_subsys_type subtype;
u16 vendor_id;
u16 awupf;
struct ida ns_ida;
};
struct nvme_fault_inject {};
struct nvme_ctrl;
struct nvme_ns_head;
struct nvme_ns {
struct list_head list;
struct nvme_ctrl *ctrl;
struct request_queue *queue;
struct gendisk *disk;
struct list_head siblings;
struct kref kref;
struct nvme_ns_head *head;
unsigned long flags;
struct cdev cdev;
struct device cdev_device;
struct nvme_fault_inject fault_inject;
};
struct opal_dev;
struct nvme_id_power_state {
__le16 max_power;
__u8 rsvd2;
__u8 flags;
__le32 entry_lat;
__le32 exit_lat;
__u8 read_tput;
__u8 read_lat;
__u8 write_tput;
__u8 write_lat;
__le16 idle_power;
__u8 idle_scale;
__u8 rsvd19;
__le16 active_power;
__u8 active_work_scale;
__u8 rsvd23[9];
};
struct nvme_sgl_desc {
__le64 addr;
__le32 length;
__u8 rsvd[3];
__u8 type;
};
struct nvme_keyed_sgl_desc {
__le64 addr;
__u8 length[3];
__u8 key[4];
__u8 type;
};
union nvme_data_ptr {
struct {
__le64 prp1;
__le64 prp2;
};
struct nvme_sgl_desc sgl;
struct nvme_keyed_sgl_desc ksgl;
};
struct nvme_common_command {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__le32 cdw2[2];
__le64 metadata;
union nvme_data_ptr dptr;
union {
struct {
__le32 cdw10;
__le32 cdw11;
__le32 cdw12;
__le32 cdw13;
__le32 cdw14;
__le32 cdw15;
};
struct {
__le32 cdw10;
__le32 cdw11;
__le32 cdw12;
__le32 cdw13;
__le32 cdw14;
__le32 cdw15;
} cdws;
};
};
struct nvme_rw_command {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__le32 cdw2;
__le32 cdw3;
__le64 metadata;
union nvme_data_ptr dptr;
__le64 slba;
__le16 length;
__le16 control;
__le32 dsmgmt;
__le32 reftag;
__le16 apptag;
__le16 appmask;
};
struct nvme_identify {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[2];
union nvme_data_ptr dptr;
__u8 cns;
__u8 rsvd3;
__le16 ctrlid;
__u8 rsvd11[3];
__u8 csi;
__u32 rsvd12[4];
};
struct nvme_features {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[2];
union nvme_data_ptr dptr;
__le32 fid;
__le32 dword11;
__le32 dword12;
__le32 dword13;
__le32 dword14;
__le32 dword15;
};
struct nvme_create_cq {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[5];
__le64 prp1;
__u64 rsvd8;
__le16 cqid;
__le16 qsize;
__le16 cq_flags;
__le16 irq_vector;
__u32 rsvd12[4];
};
struct nvme_create_sq {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[5];
__le64 prp1;
__u64 rsvd8;
__le16 sqid;
__le16 qsize;
__le16 sq_flags;
__le16 cqid;
__u32 rsvd12[4];
};
struct nvme_delete_queue {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[9];
__le16 qid;
__u16 rsvd10;
__u32 rsvd11[5];
};
struct nvme_download_firmware {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[5];
union nvme_data_ptr dptr;
__le32 numd;
__le32 offset;
__u32 rsvd12[4];
};
struct nvme_format_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[4];
__le32 cdw10;
__u32 rsvd11[5];
};
struct nvme_dsm_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[2];
union nvme_data_ptr dptr;
__le32 nr;
__le32 attributes;
__u32 rsvd12[4];
};
struct nvme_write_zeroes_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2;
__le64 metadata;
union nvme_data_ptr dptr;
__le64 slba;
__le16 length;
__le16 control;
__le32 dsmgmt;
__le32 reftag;
__le16 apptag;
__le16 appmask;
};
struct nvme_zone_mgmt_send_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__le32 cdw2[2];
__le64 metadata;
union nvme_data_ptr dptr;
__le64 slba;
__le32 cdw12;
__u8 zsa;
__u8 select_all;
__u8 rsvd13[2];
__le32 cdw14[2];
};
struct nvme_zone_mgmt_recv_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__le64 rsvd2[2];
union nvme_data_ptr dptr;
__le64 slba;
__le32 numd;
__u8 zra;
__u8 zrasf;
__u8 pr;
__u8 rsvd13;
__le32 cdw14[2];
};
struct nvme_abort_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[9];
__le16 sqid;
__u16 cid;
__u32 rsvd11[5];
};
struct nvme_get_log_page_command {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[2];
union nvme_data_ptr dptr;
__u8 lid;
__u8 lsp;
__le16 numdl;
__le16 numdu;
__u16 rsvd11;
union {
struct {
__le32 lpol;
__le32 lpou;
};
__le64 lpo;
};
__u8 rsvd14[3];
__u8 csi;
__u32 rsvd15;
};
struct nvmf_common_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[35];
__u8 ts[24];
};
struct nvmf_connect_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[19];
union nvme_data_ptr dptr;
__le16 recfmt;
__le16 qid;
__le16 sqsize;
__u8 cattr;
__u8 resv3;
__le32 kato;
__u8 resv4[12];
};
struct nvmf_property_set_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[35];
__u8 attrib;
__u8 resv3[3];
__le32 offset;
__le64 value;
__u8 resv4[8];
};
struct nvmf_property_get_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[35];
__u8 attrib;
__u8 resv3[3];
__le32 offset;
__u8 resv4[16];
};
struct nvmf_auth_common_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[19];
union nvme_data_ptr dptr;
__u8 resv3;
__u8 spsp0;
__u8 spsp1;
__u8 secp;
__le32 al_tl;
__u8 resv4[16];
};
struct nvmf_auth_send_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[19];
union nvme_data_ptr dptr;
__u8 resv3;
__u8 spsp0;
__u8 spsp1;
__u8 secp;
__le32 tl;
__u8 resv4[16];
};
struct nvmf_auth_receive_command {
__u8 opcode;
__u8 resv1;
__u16 command_id;
__u8 fctype;
__u8 resv2[19];
union nvme_data_ptr dptr;
__u8 resv3;
__u8 spsp0;
__u8 spsp1;
__u8 secp;
__le32 al;
__u8 resv4[16];
};
struct nvme_dbbuf {
__u8 opcode;
__u8 flags;
__u16 command_id;
__u32 rsvd1[5];
__le64 prp1;
__le64 prp2;
__u32 rsvd12[6];
};
struct nvme_directive_cmd {
__u8 opcode;
__u8 flags;
__u16 command_id;
__le32 nsid;
__u64 rsvd2[2];
union nvme_data_ptr dptr;
__le32 numd;
__u8 doper;
__u8 dtype;
__le16 dspec;
__u8 endir;
__u8 tdtype;
__u16 rsvd15;
__u32 rsvd16[3];
};
struct nvme_command {
union {
struct nvme_common_command common;
struct nvme_rw_command rw;
struct nvme_identify identify;
struct nvme_features features;
struct nvme_create_cq create_cq;
struct nvme_create_sq create_sq;
struct nvme_delete_queue delete_queue;
struct nvme_download_firmware dlfw;
struct nvme_format_cmd format;
struct nvme_dsm_cmd dsm;
struct nvme_write_zeroes_cmd write_zeroes;
struct nvme_zone_mgmt_send_cmd zms;
struct nvme_zone_mgmt_recv_cmd zmr;
struct nvme_abort_cmd abort;
struct nvme_get_log_page_command get_log_page;
struct nvmf_common_command fabrics;
struct nvmf_connect_command connect;
struct nvmf_property_set_command prop_set;
struct nvmf_property_get_command prop_get;
struct nvmf_auth_common_command auth_common;
struct nvmf_auth_send_command auth_send;
struct nvmf_auth_receive_command auth_receive;
struct nvme_dbbuf dbbuf;
struct nvme_directive_cmd directive;
};
};
struct nvme_ctrl_ops;
struct nvme_effects_log;
struct nvmf_ctrl_options;
struct nvme_ctrl {
bool comp_seen;
bool identified;
bool passthru_err_log_enabled;
enum nvme_ctrl_state state;
spinlock_t lock;
struct mutex scan_lock;
const struct nvme_ctrl_ops *ops;
struct request_queue *admin_q;
struct request_queue *connect_q;
struct request_queue *fabrics_q;
struct device *dev;
int instance;
int numa_node;
struct blk_mq_tag_set *tagset;
struct blk_mq_tag_set *admin_tagset;
struct list_head namespaces;
struct rw_semaphore namespaces_rwsem;
struct device ctrl_device;
struct device *device;
struct cdev cdev;
struct work_struct reset_work;
struct work_struct delete_work;
wait_queue_head_t state_wq;
struct nvme_subsystem *subsys;
struct list_head subsys_entry;
struct opal_dev *opal_dev;
char name[12];
u16 cntlid;
u16 mtfa;
u32 ctrl_config;
u32 queue_count;
u64 cap;
u32 max_hw_sectors;
u32 max_segments;
u32 max_integrity_segments;
u32 max_zeroes_sectors;
u16 crdt[3];
u16 oncs;
u8 dmrl;
u32 dmrsl;
u16 oacs;
u16 sqsize;
u32 max_namespaces;
atomic_t abort_limit;
u8 vwc;
u32 vs;
u32 sgls;
u16 kas;
u8 npss;
u8 apsta;
u16 wctemp;
u16 cctemp;
u32 oaes;
u32 aen_result;
u32 ctratt;
unsigned int shutdown_timeout;
unsigned int kato;
bool subsystem;
unsigned long quirks;
struct nvme_id_power_state psd[32];
struct nvme_effects_log *effects;
struct xarray cels;
struct work_struct scan_work;
struct work_struct async_event_work;
struct delayed_work ka_work;
struct delayed_work failfast_work;
struct nvme_command ka_cmd;
unsigned long ka_last_check_time;
struct work_struct fw_act_work;
unsigned long events;
struct key *tls_key;
u64 ps_max_latency_us;
bool apst_enabled;
u16 hmmaxd;
u32 hmpre;
u32 hmmin;
u32 hmminds;
u32 ioccsz;
u32 iorcsz;
u16 icdoff;
u16 maxcmd;
int nr_reconnects;
unsigned long flags;
struct nvmf_ctrl_options *opts;
struct page *discard_page;
unsigned long discard_page_busy;
struct nvme_fault_inject fault_inject;
enum nvme_ctrl_type cntrltype;
enum nvme_dctype dctype;
};
struct nvme_ctrl_ops {
const char *name;
struct module *module;
unsigned int flags;
const struct attribute_group **dev_attr_groups;
int (*reg_read32)(struct nvme_ctrl *, u32, u32 *);
int (*reg_write32)(struct nvme_ctrl *, u32, u32);
int (*reg_read64)(struct nvme_ctrl *, u32, u64 *);
void (*free_ctrl)(struct nvme_ctrl *);
void (*submit_async_event)(struct nvme_ctrl *);
void (*delete_ctrl)(struct nvme_ctrl *);
void (*stop_ctrl)(struct nvme_ctrl *);
int (*get_address)(struct nvme_ctrl *, char *, int);
void (*print_device_info)(struct nvme_ctrl *);
bool (*supports_pci_p2pdma)(struct nvme_ctrl *);
};
struct nvme_effects_log {
__le32 acs[256];
__le32 iocs[256];
__u8 resv[2048];
};
struct nvmf_host;
struct nvmf_ctrl_options {
unsigned int mask;
int max_reconnects;
char *transport;
char *subsysnqn;
char *traddr;
char *trsvcid;
char *host_traddr;
char *host_iface;
size_t queue_size;
unsigned int nr_io_queues;
unsigned int reconnect_delay;
bool discovery_nqn;
bool duplicate_connect;
unsigned int kato;
struct nvmf_host *host;
char *dhchap_secret;
char *dhchap_ctrl_secret;
struct key *keyring;
struct key *tls_key;
bool tls;
bool disable_sqflow;
bool hdr_digest;
bool data_digest;
unsigned int nr_write_queues;
unsigned int nr_poll_queues;
int tos;
int fast_io_fail_tmo;
};
struct nvmf_host {
struct kref ref;
struct list_head list;
char nqn[223];
uuid_t id;
};
struct nvme_ns_ids {
u8 eui64[8];
u8 nguid[16];
uuid_t uuid;
u8 csi;
};
struct nvme_ns_head {
struct list_head list;
struct srcu_struct srcu;
struct nvme_subsystem *subsys;
struct nvme_ns_ids ids;
struct list_head entry;
struct kref ref;
bool shared;
bool passthru_err_log_enabled;
int instance;
struct nvme_effects_log *effects;
u64 nuse;
unsigned int ns_id;
int lba_shift;
u16 ms;
u16 pi_size;
u8 pi_type;
u8 pi_offset;
u8 guard_type;
u16 sgs;
u32 sws;
unsigned long features;
struct ratelimit_state rs_nuse;
struct cdev cdev;
struct device cdev_device;
struct gendisk *disk;
};
struct nvme_lbaf {
__le16 ms;
__u8 ds;
__u8 rp;
};
struct nvme_id_ns {
__le64 nsze;
__le64 ncap;
__le64 nuse;
__u8 nsfeat;
__u8 nlbaf;
__u8 flbas;
__u8 mc;
__u8 dpc;
__u8 dps;
__u8 nmic;
__u8 rescap;
__u8 fpi;
__u8 dlfeat;
__le16 nawun;
__le16 nawupf;
__le16 nacwu;
__le16 nabsn;
__le16 nabo;
__le16 nabspf;
__le16 noiob;
__u8 nvmcap[16];
__le16 npwg;
__le16 npwa;
__le16 npdg;
__le16 npda;
__le16 nows;
__u8 rsvd74[18];
__le32 anagrpid;
__u8 rsvd96[3];
__u8 nsattr;
__le16 nvmsetid;
__le16 endgid;
__u8 nguid[16];
__u8 eui64[8];
struct nvme_lbaf lbaf[64];
__u8 vs[3712];
};
struct iwl_mod_params {
int swcrypto;
unsigned int disable_11n;
int amsdu_size;
bool fw_restart;
bool bt_coex_active;
int led_mode;
bool power_save;
int power_level;
char *nvm_file;
u32 uapsd_disable;
bool disable_11ac;
bool disable_11ax;
bool remove_when_gone;
u32 enable_ini;
bool disable_11be;
};
struct iwlwifi_opmode_table {
const char *name;
const struct iwl_op_mode_ops *ops;
struct list_head drv;
};
struct iwl_drv {
struct list_head list;
struct iwl_fw fw;
struct iwl_op_mode *op_mode;
struct iwl_trans *trans;
struct device *dev;
int fw_index;
char firmware_name[64];
struct completion request_firmware_complete;
};
enum {
SILICON_A_STEP = 0,
SILICON_B_STEP = 1,
SILICON_C_STEP = 2,
SILICON_D_STEP = 3,
SILICON_E_STEP = 4,
SILICON_TC_STEP = 14,
SILICON_Z_STEP = 15,
};
enum {
DVM_OP_MODE = 0,
MVM_OP_MODE = 1,
};
enum iwl_ucode_tlv_type {
IWL_UCODE_TLV_INVALID = 0,
IWL_UCODE_TLV_INST = 1,
IWL_UCODE_TLV_DATA = 2,
IWL_UCODE_TLV_INIT = 3,
IWL_UCODE_TLV_INIT_DATA = 4,
IWL_UCODE_TLV_BOOT = 5,
IWL_UCODE_TLV_PROBE_MAX_LEN = 6,
IWL_UCODE_TLV_PAN = 7,
IWL_UCODE_TLV_MEM_DESC = 7,
IWL_UCODE_TLV_RUNT_EVTLOG_PTR = 8,
IWL_UCODE_TLV_RUNT_EVTLOG_SIZE = 9,
IWL_UCODE_TLV_RUNT_ERRLOG_PTR = 10,
IWL_UCODE_TLV_INIT_EVTLOG_PTR = 11,
IWL_UCODE_TLV_INIT_EVTLOG_SIZE = 12,
IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13,
IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14,
IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15,
IWL_UCODE_TLV_WOWLAN_INST = 16,
IWL_UCODE_TLV_WOWLAN_DATA = 17,
IWL_UCODE_TLV_FLAGS = 18,
IWL_UCODE_TLV_SEC_RT = 19,
IWL_UCODE_TLV_SEC_INIT = 20,
IWL_UCODE_TLV_SEC_WOWLAN = 21,
IWL_UCODE_TLV_DEF_CALIB = 22,
IWL_UCODE_TLV_PHY_SKU = 23,
IWL_UCODE_TLV_SECURE_SEC_RT = 24,
IWL_UCODE_TLV_SECURE_SEC_INIT = 25,
IWL_UCODE_TLV_SECURE_SEC_WOWLAN = 26,
IWL_UCODE_TLV_NUM_OF_CPU = 27,
IWL_UCODE_TLV_CSCHEME = 28,
IWL_UCODE_TLV_API_CHANGES_SET = 29,
IWL_UCODE_TLV_ENABLED_CAPABILITIES = 30,
IWL_UCODE_TLV_N_SCAN_CHANNELS = 31,
IWL_UCODE_TLV_PAGING = 32,
IWL_UCODE_TLV_SEC_RT_USNIFFER = 34,
IWL_UCODE_TLV_FW_VERSION = 36,
IWL_UCODE_TLV_FW_DBG_DEST = 38,
IWL_UCODE_TLV_FW_DBG_CONF = 39,
IWL_UCODE_TLV_FW_DBG_TRIGGER = 40,
IWL_UCODE_TLV_CMD_VERSIONS = 48,
IWL_UCODE_TLV_FW_GSCAN_CAPA = 50,
IWL_UCODE_TLV_FW_MEM_SEG = 51,
IWL_UCODE_TLV_IML = 52,
IWL_UCODE_TLV_UMAC_DEBUG_ADDRS = 54,
IWL_UCODE_TLV_LMAC_DEBUG_ADDRS = 55,
IWL_UCODE_TLV_FW_RECOVERY_INFO = 57,
IWL_UCODE_TLV_HW_TYPE = 58,
IWL_UCODE_TLV_FW_FSEQ_VERSION = 60,
IWL_UCODE_TLV_PHY_INTEGRATION_VERSION = 61,
IWL_UCODE_TLV_PNVM_VERSION = 62,
IWL_UCODE_TLV_PNVM_SKU = 64,
IWL_UCODE_TLV_SEC_TABLE_ADDR = 66,
IWL_UCODE_TLV_D3_KEK_KCK_ADDR = 67,
IWL_UCODE_TLV_CURRENT_PC = 68,
IWL_UCODE_TLV_FW_NUM_STATIONS = 256,
IWL_UCODE_TLV_FW_NUM_BEACONS = 258,
IWL_UCODE_TLV_TYPE_DEBUG_INFO = 16777221,
IWL_UCODE_TLV_TYPE_BUFFER_ALLOCATION = 16777222,
IWL_UCODE_TLV_TYPE_HCMD = 16777223,
IWL_UCODE_TLV_TYPE_REGIONS = 16777224,
IWL_UCODE_TLV_TYPE_TRIGGERS = 16777225,
IWL_UCODE_TLV_TYPE_CONF_SET = 16777226,
IWL_UCODE_TLV_DEBUG_MAX = 16777225,
IWL_UCODE_TLV_FW_DBG_DUMP_LST = 4096,
};
enum iwl_ucode_tlv_flag {
IWL_UCODE_TLV_FLAGS_PAN = 1,
IWL_UCODE_TLV_FLAGS_NEWSCAN = 2,
IWL_UCODE_TLV_FLAGS_MFP = 4,
IWL_UCODE_TLV_FLAGS_SHORT_BL = 128,
IWL_UCODE_TLV_FLAGS_D3_6_IPV6_ADDRS = 1024,
IWL_UCODE_TLV_FLAGS_NO_BASIC_SSID = 4096,
IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_SMALL = 32768,
IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_LARGE = 65536,
IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT = 16777216,
IWL_UCODE_TLV_FLAGS_EBS_SUPPORT = 33554432,
IWL_UCODE_TLV_FLAGS_P2P_PS_UAPSD = 67108864,
};
enum iwl_fw_phy_cfg {
FW_PHY_CFG_RADIO_TYPE_POS = 0,
FW_PHY_CFG_RADIO_TYPE = 3,
FW_PHY_CFG_RADIO_STEP_POS = 2,
FW_PHY_CFG_RADIO_STEP = 12,
FW_PHY_CFG_RADIO_DASH_POS = 4,
FW_PHY_CFG_RADIO_DASH = 48,
FW_PHY_CFG_TX_CHAIN_POS = 16,
FW_PHY_CFG_TX_CHAIN = 983040,
FW_PHY_CFG_RX_CHAIN_POS = 20,
FW_PHY_CFG_RX_CHAIN = 15728640,
FW_PHY_CFG_CHAIN_SAD_POS = 23,
FW_PHY_CFG_CHAIN_SAD_ENABLED = 8388608,
FW_PHY_CFG_CHAIN_SAD_ANT_A = 16777216,
FW_PHY_CFG_CHAIN_SAD_ANT_B = 33554432,
FW_PHY_CFG_SHARED_CLK = 2147483648,
};
enum iwl_error_event_table_status {
IWL_ERROR_EVENT_TABLE_LMAC1 = 1,
IWL_ERROR_EVENT_TABLE_LMAC2 = 2,
IWL_ERROR_EVENT_TABLE_UMAC = 4,
IWL_ERROR_EVENT_TABLE_TCM1 = 8,
IWL_ERROR_EVENT_TABLE_TCM2 = 16,
IWL_ERROR_EVENT_TABLE_RCM1 = 32,
IWL_ERROR_EVENT_TABLE_RCM2 = 64,
};
struct iwl_ucode_header {
__le32 ver;
union {
struct {
__le32 inst_size;
__le32 data_size;
__le32 init_size;
__le32 init_data_size;
__le32 boot_size;
u8 data[0];
} v1;
struct {
__le32 build;
__le32 inst_size;
__le32 data_size;
__le32 init_size;
__le32 init_data_size;
__le32 boot_size;
u8 data[0];
} v2;
} u;
};
struct fw_sec_parsing {
__le32 offset;
const u8 data[0];
};
struct iwl_tlv_calib_data {
__le32 ucode_type;
struct iwl_tlv_calib_ctrl calib;
};
struct fw_sec;
struct fw_img_parsing {
struct fw_sec *sec;
int sec_counter;
};
struct iwl_fw_dbg_dest_tlv;
struct iwl_firmware_pieces {
struct fw_img_parsing img[4];
u32 init_evtlog_ptr;
u32 init_evtlog_size;
u32 init_errlog_ptr;
u32 inst_evtlog_ptr;
u32 inst_evtlog_size;
u32 inst_errlog_ptr;
bool dbg_dest_tlv_init;
const u8 *dbg_dest_ver;
union {
const struct iwl_fw_dbg_dest_tlv *dbg_dest_tlv;
const struct iwl_fw_dbg_dest_tlv_v1 *dbg_dest_tlv_v1;
};
const struct iwl_fw_dbg_conf_tlv *dbg_conf_tlv[32];
size_t dbg_conf_tlv_len[32];
const struct iwl_fw_dbg_trigger_tlv *dbg_trigger_tlv[17];
size_t dbg_trigger_tlv_len[17];
struct iwl_fw_dbg_mem_seg_tlv *dbg_mem_tlv;
size_t n_mem_tlv;
};
struct fw_sec {
const void *data;
size_t size;
u32 offset;
};
struct iwl_fw_dbg_dest_tlv {
u8 version;
u8 monitor_mode;
u8 size_power;
u8 reserved;
__le32 cfg_reg;
__le32 write_ptr_reg;
__le32 wrap_count;
u8 base_shift;
u8 size_shift;
struct iwl_fw_dbg_reg_op reg_ops[0];
} __attribute__((packed));
struct iwl_tlv_ucode_header {
__le32 zero;
__le32 magic;
u8 human_readable[64];
__le32 ver;
__le32 build;
__le64 ignore;
u8 data[0];
};
struct iwl_umac_debug_addrs {
__le32 error_info_addr;
__le32 dbg_print_buff_addr;
};
struct iwl_lmac_debug_addrs {
__le32 error_event_table_ptr;
__le32 log_event_table_ptr;
__le32 cpu_register_ptr;
__le32 dbgm_config_ptr;
__le32 alive_counter_ptr;
__le32 scd_base_ptr;
__le32 st_fwrd_addr;
__le32 st_fwrd_size;
};
struct iwl_fw_dump_exclude {
__le32 addr;
__le32 size;
};
struct iwl_ucode_api {
__le32 api_index;
__le32 api_flags;
};
struct iwl_ucode_capa {
__le32 api_index;
__le32 api_capa;
};
enum rtw_fw_fifo_sel {
RTW_FW_FIFO_SEL_TX = 0,
RTW_FW_FIFO_SEL_RX = 1,
RTW_FW_FIFO_SEL_RSVD_PAGE = 2,
RTW_FW_FIFO_SEL_REPORT = 3,
RTW_FW_FIFO_SEL_LLT = 4,
RTW_FW_FIFO_SEL_RXBUF_FW = 5,
RTW_FW_FIFO_MAX = 6,
};
enum rtw_flags {
RTW_FLAG_RUNNING = 0,
RTW_FLAG_FW_RUNNING = 1,
RTW_FLAG_SCANNING = 2,
RTW_FLAG_POWERON = 3,
RTW_FLAG_LEISURE_PS = 4,
RTW_FLAG_LEISURE_PS_DEEP = 5,
RTW_FLAG_DIG_DISABLE = 6,
RTW_FLAG_BUSY_TRAFFIC = 7,
RTW_FLAG_WOWLAN = 8,
RTW_FLAG_RESTARTING = 9,
RTW_FLAG_RESTART_TRIGGERING = 10,
RTW_FLAG_FORCE_LOWEST_RATE = 11,
NUM_OF_RTW_FLAGS = 12,
};
enum coex_notify_type_switchband {
COEX_NOT_SWITCH = 0,
COEX_SWITCH_TO_24G = 1,
COEX_SWITCH_TO_5G = 2,
COEX_SWITCH_TO_24G_NOFORSCAN = 3,
};
enum rtw_vif_port_set {
PORT_SET_MAC_ADDR = 1,
PORT_SET_BSSID = 2,
PORT_SET_NET_TYPE = 4,
PORT_SET_AID = 8,
PORT_SET_BCN_CTRL = 16,
};
enum rtw_wireless_set {
WIRELESS_CCK = 1,
WIRELESS_OFDM = 2,
WIRELESS_HT = 4,
WIRELESS_VHT = 8,
};
enum rtw_fw_feature {
FW_FEATURE_SIG = 1,
FW_FEATURE_LPS_C2H = 2,
FW_FEATURE_LCLK = 4,
FW_FEATURE_PG = 8,
FW_FEATURE_TX_WAKE = 16,
FW_FEATURE_BCN_FILTER = 32,
FW_FEATURE_NOTIFY_SCAN = 64,
FW_FEATURE_ADAPTIVITY = 128,
FW_FEATURE_SCAN_OFFLOAD = 256,
FW_FEATURE_MAX = 2147483648,
};
enum coex_notify_type_scan {
COEX_SCAN_FINISH = 0,
COEX_SCAN_START = 1,
COEX_SCAN_START_2G = 2,
COEX_SCAN_START_5G = 3,
};
enum rtw_rsvd_packet_type {
RSVD_BEACON = 0,
RSVD_DUMMY = 1,
RSVD_PS_POLL = 2,
RSVD_PROBE_RESP = 3,
RSVD_NULL = 4,
RSVD_QOS_NULL = 5,
RSVD_LPS_PG_DPK = 6,
RSVD_LPS_PG_INFO = 7,
RSVD_PROBE_REQ = 8,
RSVD_NLO_INFO = 9,
RSVD_CH_INFO = 10,
};
enum nl80211_feature_flags {
NL80211_FEATURE_SK_TX_STATUS = 1,
NL80211_FEATURE_HT_IBSS = 2,
NL80211_FEATURE_INACTIVITY_TIMER = 4,
NL80211_FEATURE_CELL_BASE_REG_HINTS = 8,
NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 16,
NL80211_FEATURE_SAE = 32,
NL80211_FEATURE_LOW_PRIORITY_SCAN = 64,
NL80211_FEATURE_SCAN_FLUSH = 128,
NL80211_FEATURE_AP_SCAN = 256,
NL80211_FEATURE_VIF_TXPOWER = 512,
NL80211_FEATURE_NEED_OBSS_SCAN = 1024,
NL80211_FEATURE_P2P_GO_CTWIN = 2048,
NL80211_FEATURE_P2P_GO_OPPPS = 4096,
NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 16384,
NL80211_FEATURE_FULL_AP_CLIENT_STATE = 32768,
NL80211_FEATURE_USERSPACE_MPM = 65536,
NL80211_FEATURE_ACTIVE_MONITOR = 131072,
NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 262144,
NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 524288,
NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1048576,
NL80211_FEATURE_QUIET = 2097152,
NL80211_FEATURE_TX_POWER_INSERTION = 4194304,
NL80211_FEATURE_ACKTO_ESTIMATION = 8388608,
NL80211_FEATURE_STATIC_SMPS = 16777216,
NL80211_FEATURE_DYNAMIC_SMPS = 33554432,
NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 67108864,
NL80211_FEATURE_MAC_ON_CREATE = 134217728,
NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 268435456,
NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 536870912,
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1073741824,
NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 2147483648,
};
enum rtw_chip_type {
RTW_CHIP_TYPE_8822B = 0,
RTW_CHIP_TYPE_8822C = 1,
RTW_CHIP_TYPE_8723D = 2,
RTW_CHIP_TYPE_8821C = 3,
};
enum rtw_port {
RTW_PORT_0 = 0,
RTW_PORT_1 = 1,
RTW_PORT_2 = 2,
RTW_PORT_3 = 3,
RTW_PORT_4 = 4,
RTW_PORT_NUM = 5,
};
enum rtw_rate_index {
RTW_RATEID_BGN_40M_2SS = 0,
RTW_RATEID_BGN_40M_1SS = 1,
RTW_RATEID_BGN_20M_2SS = 2,
RTW_RATEID_BGN_20M_1SS = 3,
RTW_RATEID_GN_N2SS = 4,
RTW_RATEID_GN_N1SS = 5,
RTW_RATEID_BG = 6,
RTW_RATEID_G = 7,
RTW_RATEID_B_20M = 8,
RTW_RATEID_ARFR0_AC_2SS = 9,
RTW_RATEID_ARFR1_AC_1SS = 10,
RTW_RATEID_ARFR2_AC_2G_1SS = 11,
RTW_RATEID_ARFR3_AC_2G_2SS = 12,
RTW_RATEID_ARFR4_AC_3SS = 13,
RTW_RATEID_ARFR5_N_3SS = 14,
RTW_RATEID_ARFR7_N_4SS = 15,
RTW_RATEID_ARFR6_AC_4SS = 16,
};
enum rtw_c2h_cmd_id {
C2H_CCX_TX_RPT = 3,
C2H_BT_INFO = 9,
C2H_BT_MP_INFO = 11,
C2H_BT_HID_INFO = 69,
C2H_RA_RPT = 12,
C2H_HW_FEATURE_REPORT = 25,
C2H_WLAN_INFO = 39,
C2H_WLAN_RFON = 50,
C2H_BCN_FILTER_NOTIFY = 54,
C2H_ADAPTIVITY = 55,
C2H_SCAN_RESULT = 56,
C2H_HW_FEATURE_DUMP = 253,
C2H_HALMAC = 255,
};
enum rtw_txq_flags {
RTW_TXQ_AMPDU = 0,
RTW_TXQ_BLOCK_BA = 1,
};
enum rtw_evm {
RTW_EVM_OFDM = 0,
RTW_EVM_1SS = 1,
RTW_EVM_2SS_A = 2,
RTW_EVM_2SS_B = 3,
RTW_EVM_NUM = 4,
};
enum rtw_snr {
RTW_SNR_OFDM_A = 0,
RTW_SNR_OFDM_B = 1,
RTW_SNR_OFDM_C = 2,
RTW_SNR_OFDM_D = 3,
RTW_SNR_1SS_A = 4,
RTW_SNR_1SS_B = 5,
RTW_SNR_1SS_C = 6,
RTW_SNR_1SS_D = 7,
RTW_SNR_2SS_A = 8,
RTW_SNR_2SS_B = 9,
RTW_SNR_2SS_C = 10,
RTW_SNR_2SS_D = 11,
RTW_SNR_NUM = 12,
};
enum rtw_fw_feature_ext {
FW_FEATURE_EXT_OLD_PAGE_NUM = 1,
};
enum ieee80211_max_ampdu_length_exp {
IEEE80211_HT_MAX_AMPDU_8K = 0,
IEEE80211_HT_MAX_AMPDU_16K = 1,
IEEE80211_HT_MAX_AMPDU_32K = 2,
IEEE80211_HT_MAX_AMPDU_64K = 3,
};
struct rtw_rsvd_page {
struct list_head vif_list;
struct rtw_vif *rtwvif;
struct list_head build_list;
struct sk_buff *skb;
enum rtw_rsvd_packet_type type;
u8 page;
u16 tim_offset;
bool add_txdesc;
struct cfg80211_ssid *ssid;
u16 probe_req_size;
};
struct rtw_fwcd_hdr {
u32 item;
u32 size;
u32 padding1;
u32 padding2;
};
struct rtw_txq {
struct list_head list;
unsigned long flags;
};
struct rtw_fw_hdr_legacy {
__le16 signature;
u8 category;
u8 function;
__le16 version;
u8 subversion1;
u8 subversion2;
u8 month;
u8 day;
u8 hour;
u8 minute;
__le16 size;
__le16 rsvd2;
__le32 idx;
__le32 rsvd3;
__le32 rsvd4;
__le32 rsvd5;
};
struct rtw_fw_hdr {
__le16 signature;
u8 category;
u8 function;
__le16 version;
u8 subversion;
u8 subindex;
__le32 rsvd;
__le32 feature;
u8 month;
u8 day;
u8 hour;
u8 min;
__le16 year;
__le16 rsvd3;
u8 mem_usage;
u8 rsvd4[3];
__le16 h2c_fmt_ver;
__le16 rsvd5;
__le32 dmem_addr;
__le32 dmem_size;
__le32 rsvd6;
__le32 rsvd7;
__le32 imem_size;
__le32 emem_size;
__le32 emem_addr;
__le32 imem_addr;
};
struct rtw_channel_params {
u8 center_chan;
u8 primary_chan;
u8 bandwidth;
};
struct rtw_watch_dog_iter_data {
struct rtw_dev *rtwdev;
struct rtw_vif *rtwvif;
};
struct rtw_txq_ba_iter_data {};
struct rtw_iter_port_switch_data {
struct rtw_dev *rtwdev;
struct rtw_vif *rtwvif_ap;
};
struct md_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct mddev *, char *);
ssize_t (*store)(struct mddev *, const char *, size_t);
};
enum bitmap_page_attr {
BITMAP_PAGE_DIRTY = 0,
BITMAP_PAGE_PENDING = 1,
BITMAP_PAGE_NEEDWRITE = 2,
};
typedef __u16 bitmap_counter_t;
struct bitmap_unplug_work {
struct work_struct work;
struct bitmap *bitmap;
struct completion *done;
};
struct bitmap_super_s {
__le32 magic;
__le32 version;
__u8 uuid[16];
__le64 events;
__le64 events_cleared;
__le64 sync_size;
__le32 state;
__le32 chunksize;
__le32 daemon_sleep;
__le32 write_behind;
__le32 sectors_reserved;
__le32 nodes;
__u8 cluster_name[64];
__u8 pad[120];
};
typedef struct bitmap_super_s bitmap_super_t;
struct strset_info {
bool per_dev;
bool free_strings;
unsigned int count;
const char (*strings)[32];
};
enum {
ETHTOOL_A_STRSET_UNSPEC = 0,
ETHTOOL_A_STRSET_HEADER = 1,
ETHTOOL_A_STRSET_STRINGSETS = 2,
ETHTOOL_A_STRSET_COUNTS_ONLY = 3,
__ETHTOOL_A_STRSET_CNT = 4,
ETHTOOL_A_STRSET_MAX = 3,
};
enum {
ETHTOOL_A_STRINGSETS_UNSPEC = 0,
ETHTOOL_A_STRINGSETS_STRINGSET = 1,
__ETHTOOL_A_STRINGSETS_CNT = 2,
ETHTOOL_A_STRINGSETS_MAX = 1,
};
enum {
ETHTOOL_A_STRINGSET_UNSPEC = 0,
ETHTOOL_A_STRINGSET_ID = 1,
ETHTOOL_A_STRINGSET_COUNT = 2,
ETHTOOL_A_STRINGSET_STRINGS = 3,
__ETHTOOL_A_STRINGSET_CNT = 4,
ETHTOOL_A_STRINGSET_MAX = 3,
};
enum {
ETHTOOL_A_STRINGS_UNSPEC = 0,
ETHTOOL_A_STRINGS_STRING = 1,
__ETHTOOL_A_STRINGS_CNT = 2,
ETHTOOL_A_STRINGS_MAX = 1,
};
enum {
ETHTOOL_A_STRING_UNSPEC = 0,
ETHTOOL_A_STRING_INDEX = 1,
ETHTOOL_A_STRING_VALUE = 2,
__ETHTOOL_A_STRING_CNT = 3,
ETHTOOL_A_STRING_MAX = 2,
};
struct strset_req_info {
struct ethnl_req_info base;
u32 req_ids;
bool counts_only;
};
struct strset_reply_data {
struct ethnl_reply_data base;
struct strset_info sets[21];
};
struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *);
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
struct net_proto_family {
int family;
int (*create)(struct net *, struct socket *, int, int);
struct module *owner;
};
enum {
SOCK_WAKE_IO = 0,
SOCK_WAKE_WAITD = 1,
SOCK_WAKE_SPACE = 2,
SOCK_WAKE_URG = 3,
};
enum unix_socket_lock_class {
U_LOCK_NORMAL = 0,
U_LOCK_SECOND = 1,
U_LOCK_DIAG = 2,
};
enum sock_shutdown_cmd {
SHUT_RD = 0,
SHUT_WR = 1,
SHUT_RDWR = 2,
};
enum {
BTF_SOCK_TYPE_INET = 0,
BTF_SOCK_TYPE_INET_CONN = 1,
BTF_SOCK_TYPE_INET_REQ = 2,
BTF_SOCK_TYPE_INET_TW = 3,
BTF_SOCK_TYPE_REQ = 4,
BTF_SOCK_TYPE_SOCK = 5,
BTF_SOCK_TYPE_SOCK_COMMON = 6,
BTF_SOCK_TYPE_TCP = 7,
BTF_SOCK_TYPE_TCP_REQ = 8,
BTF_SOCK_TYPE_TCP_TW = 9,
BTF_SOCK_TYPE_TCP6 = 10,
BTF_SOCK_TYPE_UDP = 11,
BTF_SOCK_TYPE_UDP6 = 12,
BTF_SOCK_TYPE_UNIX = 13,
BTF_SOCK_TYPE_MPTCP = 14,
BTF_SOCK_TYPE_SOCKET = 15,
MAX_BTF_SOCK_TYPE = 16,
};
struct scm_stat {
atomic_t nr_fds;
};
struct unix_address;
struct unix_sock {
struct sock sk;
struct unix_address *addr;
struct path path;
struct mutex iolock;
struct mutex bindlock;
struct sock *peer;
struct list_head link;
unsigned long inflight;
spinlock_t lock;
unsigned long gc_flags;
long: 64;
struct socket_wq peer_wq;
wait_queue_entry_t peer_wake;
struct scm_stat scm_stat;
struct sk_buff *oob_skb;
long: 64;
};
struct sockaddr_un {
__kernel_sa_family_t sun_family;
char sun_path[108];
};
struct unix_address {
refcount_t refcnt;
int len;
struct sockaddr_un name[0];
};
struct scm_fp_list;
struct unix_skb_parms {
struct pid *pid;
kuid_t uid;
kgid_t gid;
struct scm_fp_list *fp;
u32 consumed;
};
struct scm_fp_list {
short count;
short count_unix;
short max;
struct user_struct *user;
struct file *fp[253];
};
struct socket_alloc {
struct socket socket;
struct inode vfs_inode;
long: 64;
long: 64;
};
struct scm_cookie {
struct pid *pid;
struct scm_fp_list *fp;
struct scm_creds creds;
};
struct ucred {
__u32 pid;
__u32 uid;
__u32 gid;
};
struct bpf_iter__unix {
union {
struct bpf_iter_meta *meta;
};
union {
struct unix_sock *unix_sk;
};
uid_t uid;
};
struct bpf_unix_iter_state {
struct seq_net_private p;
unsigned int cur_sk;
unsigned int end_sk;
unsigned int max_sk;
struct sock **batch;
bool st_bucket_done;
};
struct unix_stream_read_state {
int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *);
struct socket *socket;
struct msghdr *msg;
struct pipe_inode_info *pipe;
size_t size;
int flags;
unsigned int splice_flags;
};
struct fwdb_country {
u8 alpha2[2];
__be16 coll_ptr;
};
struct fwdb_header {
__be32 magic;
__be32 version;
struct fwdb_country country[0];
};
enum nl80211_reg_rule_flags {
NL80211_RRF_NO_OFDM = 1,
NL80211_RRF_NO_CCK = 2,
NL80211_RRF_NO_INDOOR = 4,
NL80211_RRF_NO_OUTDOOR = 8,
NL80211_RRF_DFS = 16,
NL80211_RRF_PTP_ONLY = 32,
NL80211_RRF_PTMP_ONLY = 64,
NL80211_RRF_NO_IR = 128,
__NL80211_RRF_NO_IBSS = 256,
NL80211_RRF_AUTO_BW = 2048,
NL80211_RRF_IR_CONCURRENT = 4096,
NL80211_RRF_NO_HT40MINUS = 8192,
NL80211_RRF_NO_HT40PLUS = 16384,
NL80211_RRF_NO_80MHZ = 32768,
NL80211_RRF_NO_160MHZ = 65536,
NL80211_RRF_NO_HE = 131072,
NL80211_RRF_NO_320MHZ = 262144,
NL80211_RRF_NO_EHT = 524288,
NL80211_RRF_PSD = 1048576,
NL80211_RRF_DFS_CONCURRENT = 2097152,
NL80211_RRF_NO_6GHZ_VLP_CLIENT = 4194304,
NL80211_RRF_NO_6GHZ_AFC_CLIENT = 8388608,
};
enum ieee80211_regd_source {
REGD_SOURCE_INTERNAL_DB = 0,
REGD_SOURCE_CRDA = 1,
REGD_SOURCE_CACHED = 2,
};
enum nl80211_radar_event {
NL80211_RADAR_DETECTED = 0,
NL80211_RADAR_CAC_FINISHED = 1,
NL80211_RADAR_CAC_ABORTED = 2,
NL80211_RADAR_NOP_FINISHED = 3,
NL80211_RADAR_PRE_CAC_EXPIRED = 4,
NL80211_RADAR_CAC_STARTED = 5,
};
enum key_being_used_for {
VERIFYING_MODULE_SIGNATURE = 0,
VERIFYING_FIRMWARE_SIGNATURE = 1,
VERIFYING_KEXEC_PE_SIGNATURE = 2,
VERIFYING_KEY_SIGNATURE = 3,
VERIFYING_KEY_SELF_SIGNATURE = 4,
VERIFYING_UNSPECIFIED_SIGNATURE = 5,
NR__KEY_BEING_USED_FOR = 6,
};
enum reg_request_treatment {
REG_REQ_OK = 0,
REG_REQ_IGNORE = 1,
REG_REQ_INTERSECT = 2,
REG_REQ_ALREADY_SET = 3,
};
enum fwdb_flags {
FWDB_FLAG_NO_OFDM = 1,
FWDB_FLAG_NO_OUTDOOR = 2,
FWDB_FLAG_DFS = 4,
FWDB_FLAG_NO_IR = 8,
FWDB_FLAG_AUTO_BW = 16,
};
enum nl80211_commands {
NL80211_CMD_UNSPEC = 0,
NL80211_CMD_GET_WIPHY = 1,
NL80211_CMD_SET_WIPHY = 2,
NL80211_CMD_NEW_WIPHY = 3,
NL80211_CMD_DEL_WIPHY = 4,
NL80211_CMD_GET_INTERFACE = 5,
NL80211_CMD_SET_INTERFACE = 6,
NL80211_CMD_NEW_INTERFACE = 7,
NL80211_CMD_DEL_INTERFACE = 8,
NL80211_CMD_GET_KEY = 9,
NL80211_CMD_SET_KEY = 10,
NL80211_CMD_NEW_KEY = 11,
NL80211_CMD_DEL_KEY = 12,
NL80211_CMD_GET_BEACON = 13,
NL80211_CMD_SET_BEACON = 14,
NL80211_CMD_START_AP = 15,
NL80211_CMD_NEW_BEACON = 15,
NL80211_CMD_STOP_AP = 16,
NL80211_CMD_DEL_BEACON = 16,
NL80211_CMD_GET_STATION = 17,
NL80211_CMD_SET_STATION = 18,
NL80211_CMD_NEW_STATION = 19,
NL80211_CMD_DEL_STATION = 20,
NL80211_CMD_GET_MPATH = 21,
NL80211_CMD_SET_MPATH = 22,
NL80211_CMD_NEW_MPATH = 23,
NL80211_CMD_DEL_MPATH = 24,
NL80211_CMD_SET_BSS = 25,
NL80211_CMD_SET_REG = 26,
NL80211_CMD_REQ_SET_REG = 27,
NL80211_CMD_GET_MESH_CONFIG = 28,
NL80211_CMD_SET_MESH_CONFIG = 29,
NL80211_CMD_SET_MGMT_EXTRA_IE = 30,
NL80211_CMD_GET_REG = 31,
NL80211_CMD_GET_SCAN = 32,
NL80211_CMD_TRIGGER_SCAN = 33,
NL80211_CMD_NEW_SCAN_RESULTS = 34,
NL80211_CMD_SCAN_ABORTED = 35,
NL80211_CMD_REG_CHANGE = 36,
NL80211_CMD_AUTHENTICATE = 37,
NL80211_CMD_ASSOCIATE = 38,
NL80211_CMD_DEAUTHENTICATE = 39,
NL80211_CMD_DISASSOCIATE = 40,
NL80211_CMD_MICHAEL_MIC_FAILURE = 41,
NL80211_CMD_REG_BEACON_HINT = 42,
NL80211_CMD_JOIN_IBSS = 43,
NL80211_CMD_LEAVE_IBSS = 44,
NL80211_CMD_TESTMODE = 45,
NL80211_CMD_CONNECT = 46,
NL80211_CMD_ROAM = 47,
NL80211_CMD_DISCONNECT = 48,
NL80211_CMD_SET_WIPHY_NETNS = 49,
NL80211_CMD_GET_SURVEY = 50,
NL80211_CMD_NEW_SURVEY_RESULTS = 51,
NL80211_CMD_SET_PMKSA = 52,
NL80211_CMD_DEL_PMKSA = 53,
NL80211_CMD_FLUSH_PMKSA = 54,
NL80211_CMD_REMAIN_ON_CHANNEL = 55,
NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 56,
NL80211_CMD_SET_TX_BITRATE_MASK = 57,
NL80211_CMD_REGISTER_FRAME = 58,
NL80211_CMD_REGISTER_ACTION = 58,
NL80211_CMD_FRAME = 59,
NL80211_CMD_ACTION = 59,
NL80211_CMD_FRAME_TX_STATUS = 60,
NL80211_CMD_ACTION_TX_STATUS = 60,
NL80211_CMD_SET_POWER_SAVE = 61,
NL80211_CMD_GET_POWER_SAVE = 62,
NL80211_CMD_SET_CQM = 63,
NL80211_CMD_NOTIFY_CQM = 64,
NL80211_CMD_SET_CHANNEL = 65,
NL80211_CMD_SET_WDS_PEER = 66,
NL80211_CMD_FRAME_WAIT_CANCEL = 67,
NL80211_CMD_JOIN_MESH = 68,
NL80211_CMD_LEAVE_MESH = 69,
NL80211_CMD_UNPROT_DEAUTHENTICATE = 70,
NL80211_CMD_UNPROT_DISASSOCIATE = 71,
NL80211_CMD_NEW_PEER_CANDIDATE = 72,
NL80211_CMD_GET_WOWLAN = 73,
NL80211_CMD_SET_WOWLAN = 74,
NL80211_CMD_START_SCHED_SCAN = 75,
NL80211_CMD_STOP_SCHED_SCAN = 76,
NL80211_CMD_SCHED_SCAN_RESULTS = 77,
NL80211_CMD_SCHED_SCAN_STOPPED = 78,
NL80211_CMD_SET_REKEY_OFFLOAD = 79,
NL80211_CMD_PMKSA_CANDIDATE = 80,
NL80211_CMD_TDLS_OPER = 81,
NL80211_CMD_TDLS_MGMT = 82,
NL80211_CMD_UNEXPECTED_FRAME = 83,
NL80211_CMD_PROBE_CLIENT = 84,
NL80211_CMD_REGISTER_BEACONS = 85,
NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 86,
NL80211_CMD_SET_NOACK_MAP = 87,
NL80211_CMD_CH_SWITCH_NOTIFY = 88,
NL80211_CMD_START_P2P_DEVICE = 89,
NL80211_CMD_STOP_P2P_DEVICE = 90,
NL80211_CMD_CONN_FAILED = 91,
NL80211_CMD_SET_MCAST_RATE = 92,
NL80211_CMD_SET_MAC_ACL = 93,
NL80211_CMD_RADAR_DETECT = 94,
NL80211_CMD_GET_PROTOCOL_FEATURES = 95,
NL80211_CMD_UPDATE_FT_IES = 96,
NL80211_CMD_FT_EVENT = 97,
NL80211_CMD_CRIT_PROTOCOL_START = 98,
NL80211_CMD_CRIT_PROTOCOL_STOP = 99,
NL80211_CMD_GET_COALESCE = 100,
NL80211_CMD_SET_COALESCE = 101,
NL80211_CMD_CHANNEL_SWITCH = 102,
NL80211_CMD_VENDOR = 103,
NL80211_CMD_SET_QOS_MAP = 104,
NL80211_CMD_ADD_TX_TS = 105,
NL80211_CMD_DEL_TX_TS = 106,
NL80211_CMD_GET_MPP = 107,
NL80211_CMD_JOIN_OCB = 108,
NL80211_CMD_LEAVE_OCB = 109,
NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 110,
NL80211_CMD_TDLS_CHANNEL_SWITCH = 111,
NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112,
NL80211_CMD_WIPHY_REG_CHANGE = 113,
NL80211_CMD_ABORT_SCAN = 114,
NL80211_CMD_START_NAN = 115,
NL80211_CMD_STOP_NAN = 116,
NL80211_CMD_ADD_NAN_FUNCTION = 117,
NL80211_CMD_DEL_NAN_FUNCTION = 118,
NL80211_CMD_CHANGE_NAN_CONFIG = 119,
NL80211_CMD_NAN_MATCH = 120,
NL80211_CMD_SET_MULTICAST_TO_UNICAST = 121,
NL80211_CMD_UPDATE_CONNECT_PARAMS = 122,
NL80211_CMD_SET_PMK = 123,
NL80211_CMD_DEL_PMK = 124,
NL80211_CMD_PORT_AUTHORIZED = 125,
NL80211_CMD_RELOAD_REGDB = 126,
NL80211_CMD_EXTERNAL_AUTH = 127,
NL80211_CMD_STA_OPMODE_CHANGED = 128,
NL80211_CMD_CONTROL_PORT_FRAME = 129,
NL80211_CMD_GET_FTM_RESPONDER_STATS = 130,
NL80211_CMD_PEER_MEASUREMENT_START = 131,
NL80211_CMD_PEER_MEASUREMENT_RESULT = 132,
NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 133,
NL80211_CMD_NOTIFY_RADAR = 134,
NL80211_CMD_UPDATE_OWE_INFO = 135,
NL80211_CMD_PROBE_MESH_LINK = 136,
NL80211_CMD_SET_TID_CONFIG = 137,
NL80211_CMD_UNPROT_BEACON = 138,
NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 139,
NL80211_CMD_SET_SAR_SPECS = 140,
NL80211_CMD_OBSS_COLOR_COLLISION = 141,
NL80211_CMD_COLOR_CHANGE_REQUEST = 142,
NL80211_CMD_COLOR_CHANGE_STARTED = 143,
NL80211_CMD_COLOR_CHANGE_ABORTED = 144,
NL80211_CMD_COLOR_CHANGE_COMPLETED = 145,
NL80211_CMD_SET_FILS_AAD = 146,
NL80211_CMD_ASSOC_COMEBACK = 147,
NL80211_CMD_ADD_LINK = 148,
NL80211_CMD_REMOVE_LINK = 149,
NL80211_CMD_ADD_LINK_STA = 150,
NL80211_CMD_MODIFY_LINK_STA = 151,
NL80211_CMD_REMOVE_LINK_STA = 152,
NL80211_CMD_SET_HW_TIMESTAMP = 153,
NL80211_CMD_LINKS_REMOVED = 154,
NL80211_CMD_SET_TID_TO_LINK_MAPPING = 155,
__NL80211_CMD_AFTER_LAST = 156,
NL80211_CMD_MAX = 155,
};
struct reg_beacon {
struct list_head list;
struct ieee80211_channel chan;
};
struct fwdb_wmm_ac {
u8 ecw;
u8 aifsn;
__be16 cot;
};
struct reg_regdb_apply_request {
struct list_head list;
const struct ieee80211_regdomain *regdom;
};
struct fwdb_collection {
u8 len;
u8 n_rules;
u8 dfs_region;
int: 0;
};
struct fwdb_rule {
u8 len;
u8 flags;
__be16 max_eirp;
__be32 start;
__be32 end;
__be32 max_bw;
__be16 cac_timeout;
__be16 wmm_ptr;
};
struct fwdb_wmm_rule {
struct fwdb_wmm_ac client[4];
struct fwdb_wmm_ac ap[4];
};
struct rapl_pmu;
struct rapl_pmus {
struct pmu pmu;
unsigned int maxdie;
struct rapl_pmu *pmus[0];
};
struct rapl_pmu {
raw_spinlock_t lock;
int n_active;
int cpu;
struct list_head active_list;
struct pmu *pmu;
ktime_t timer_interval;
struct hrtimer hrtimer;
};
enum rapl_unit_quirk {
RAPL_UNIT_QUIRK_NONE = 0,
RAPL_UNIT_QUIRK_INTEL_HSW = 1,
RAPL_UNIT_QUIRK_INTEL_SPR = 2,
};
struct perf_msr;
struct rapl_model {
struct perf_msr *rapl_msrs;
unsigned long events;
unsigned int msr_power_unit;
enum rapl_unit_quirk unit_quirk;
};
struct perf_msr {
u64 msr;
struct attribute_group *grp;
bool (*test)(int, void *);
bool no_check;
u64 mask;
};
enum perf_rapl_events {
PERF_RAPL_PP0 = 0,
PERF_RAPL_PKG = 1,
PERF_RAPL_RAM = 2,
PERF_RAPL_PP1 = 3,
PERF_RAPL_PSYS = 4,
PERF_RAPL_MAX = 5,
NR_RAPL_DOMAINS = 5,
};
enum perf_event_task_context {
perf_invalid_context = -1,
perf_hw_context = 0,
perf_sw_context = 1,
perf_nr_task_contexts = 2,
};
enum pconfig_target {
INVALID_TARGET = 0,
MKTME_TARGET = 1,
PCONFIG_TARGET_NR = 2,
};
enum {
PCONFIG_CPUID_SUBLEAF_INVALID = 0,
PCONFIG_CPUID_SUBLEAF_TARGETID = 1,
};
struct cpuid_regs {
u32 eax;
u32 ebx;
u32 ecx;
u32 edx;
};
enum tsx_ctrl_states {
TSX_CTRL_ENABLE = 0,
TSX_CTRL_DISABLE = 1,
TSX_CTRL_RTM_ALWAYS_ABORT = 2,
TSX_CTRL_NOT_SUPPORTED = 3,
};
struct microcode_header_intel {
unsigned int hdrver;
unsigned int rev;
unsigned int date;
unsigned int sig;
unsigned int cksum;
unsigned int ldrver;
unsigned int pf;
unsigned int datasize;
unsigned int totalsize;
unsigned int metasize;
unsigned int min_req_ver;
unsigned int reserved;
};
struct microcode_intel {
struct microcode_header_intel hdr;
unsigned int bits[0];
};
enum ucode_state {
UCODE_OK = 0,
UCODE_NEW = 1,
UCODE_NEW_SAFE = 2,
UCODE_UPDATED = 3,
UCODE_NFOUND = 4,
UCODE_ERROR = 5,
UCODE_TIMEOUT = 6,
UCODE_OFFLINE = 7,
};
struct cpu_signature;
struct microcode_ops {
enum ucode_state (*request_microcode_fw)(int, struct device *);
void (*microcode_fini_cpu)(int);
enum ucode_state (*apply_microcode)(int);
int (*collect_cpu_info)(int, struct cpu_signature *);
void (*finalize_late_load)(int);
unsigned int nmi_safe: 1;
unsigned int use_nmi: 1;
};
struct cpu_signature {
unsigned int sig;
unsigned int pf;
unsigned int rev;
};
struct extended_signature {
unsigned int sig;
unsigned int pf;
unsigned int cksum;
};
struct extended_sigtable {
unsigned int count;
unsigned int cksum;
unsigned int reserved[3];
struct extended_signature sigs[0];
};
struct cpio_data {
void *data;
size_t size;
char name[18];
};
struct ucode_cpu_info {
struct cpu_signature cpu_sig;
void *mc;
};
struct early_load_data {
u32 old_rev;
u32 new_rev;
};
struct cfs_rq {
struct load_weight load;
unsigned int nr_running;
unsigned int h_nr_running;
unsigned int idle_nr_running;
unsigned int idle_h_nr_running;
s64 avg_vruntime;
u64 avg_load;
u64 exec_clock;
u64 min_vruntime;
struct rb_root_cached tasks_timeline;
struct sched_entity *curr;
struct sched_entity *next;
unsigned int nr_spread_over;
long: 64;
long: 64;
long: 64;
struct sched_avg avg;
struct {
raw_spinlock_t lock;
int nr;
unsigned long load_avg;
unsigned long util_avg;
unsigned long runnable_avg;
long: 64;
long: 64;
long: 64;
long: 64;
} removed;
u64 last_update_tg_load_avg;
unsigned long tg_load_avg_contrib;
long propagate;
long prop_runnable_sum;
unsigned long h_load;
u64 last_h_load_update;
struct sched_entity *h_load_next;
struct rq *rq;
int on_list;
struct list_head leaf_cfs_rq_list;
struct task_group *tg;
int idle;
long: 64;
long: 64;
long: 64;
};
struct rt_prio_array {
unsigned long bitmap[2];
struct list_head queue[100];
};
struct rt_rq {
struct rt_prio_array active;
unsigned int rt_nr_running;
unsigned int rr_nr_running;
struct {
int curr;
int next;
} highest_prio;
int overloaded;
struct plist_head pushable_tasks;
int rt_queued;
int rt_throttled;
u64 rt_time;
u64 rt_runtime;
raw_spinlock_t rt_runtime_lock;
};
struct dl_rq {
struct rb_root_cached root;
unsigned int dl_nr_running;
struct {
u64 curr;
u64 next;
} earliest_dl;
int overloaded;
struct rb_root_cached pushable_dl_tasks_root;
u64 running_bw;
u64 this_bw;
u64 extra_bw;
u64 max_bw;
u64 bw_ratio;
};
struct scx_rq {
struct scx_dispatch_q local_dsq;
struct list_head runnable_list;
unsigned long ops_qseq;
u64 extra_enq_flags;
u32 nr_running;
u32 flags;
u32 cpuperf_target;
bool cpu_released;
cpumask_var_t cpus_to_kick;
cpumask_var_t cpus_to_kick_if_idle;
cpumask_var_t cpus_to_preempt;
cpumask_var_t cpus_to_wait;
unsigned long pnt_seq;
struct irq_work kick_cpus_irq_work;
};
struct cpu_stop_done;
struct cpu_stop_work {
struct list_head list;
cpu_stop_fn_t fn;
unsigned long caller;
void *arg;
struct cpu_stop_done *done;
};
struct root_domain;
struct sched_domain;
struct balance_callback;
struct rq {
raw_spinlock_t __lock;
unsigned int nr_running;
unsigned long last_blocked_load_update_tick;
unsigned int has_blocked_load;
long: 64;
call_single_data_t nohz_csd;
unsigned int nohz_tick_stopped;
atomic_t nohz_flags;
unsigned int ttwu_pending;
u64 nr_switches;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct cfs_rq cfs;
struct rt_rq rt;
struct dl_rq dl;
struct scx_rq scx;
struct list_head leaf_cfs_rq_list;
struct list_head *tmp_alone_branch;
unsigned int nr_uninterruptible;
struct task_struct __attribute__((btf_type_tag("rcu"))) *curr;
struct task_struct *idle;
struct task_struct *stop;
unsigned long next_balance;
struct mm_struct *prev_mm;
unsigned int clock_update_flags;
u64 clock;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
u64 clock_task;
u64 clock_pelt;
unsigned long lost_idle_time;
u64 clock_pelt_idle;
u64 clock_idle;
atomic_t nr_iowait;
u64 last_seen_need_resched_ns;
int ticks_without_resched;
int membarrier_state;
struct root_domain *rd;
struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd;
unsigned long cpu_capacity;
struct balance_callback *balance_callback;
unsigned char nohz_idle_balance;
unsigned char idle_balance;
unsigned long misfit_task_load;
int active_balance;
int push_cpu;
struct cpu_stop_work active_balance_work;
int cpu;
int online;
struct list_head cfs_tasks;
struct sched_avg avg_rt;
struct sched_avg avg_dl;
u64 idle_stamp;
u64 avg_idle;
u64 max_idle_balance_cost;
struct rcuwait hotplug_wait;
unsigned long calc_load_update;
long calc_load_active;
long: 64;
long: 64;
call_single_data_t hrtick_csd;
struct hrtimer hrtick_timer;
ktime_t hrtick_time;
struct cpuidle_state *idle_state;
unsigned int nr_pinned;
unsigned int push_busy;
struct cpu_stop_work push_work;
cpumask_var_t scratch_mask;
long: 64;
long: 64;
};
struct dl_bw {
raw_spinlock_t lock;
u64 bw;
u64 total_bw;
};
struct cpudl_item;
struct cpudl {
raw_spinlock_t lock;
int size;
cpumask_var_t free_cpus;
struct cpudl_item *elements;
};
struct cpupri_vec {
atomic_t count;
cpumask_var_t mask;
};
struct cpupri {
struct cpupri_vec pri_to_cpu[101];
int *cpu_to_pri;
};
struct perf_domain;
struct root_domain {
atomic_t refcount;
atomic_t rto_count;
struct callback_head rcu;
cpumask_var_t span;
cpumask_var_t online;
int overload;
int overutilized;
cpumask_var_t dlo_mask;
atomic_t dlo_count;
struct dl_bw dl_bw;
struct cpudl cpudl;
u64 visit_gen;
struct irq_work rto_push_work;
raw_spinlock_t rto_lock;
int rto_loop;
int rto_cpu;
atomic_t rto_loop_next;
atomic_t rto_loop_start;
cpumask_var_t rto_mask;
struct cpupri cpupri;
unsigned long max_cpu_capacity;
struct perf_domain __attribute__((btf_type_tag("rcu"))) *pd;
};
struct cpudl_item {
u64 dl;
int cpu;
int idx;
};
struct em_perf_domain;
struct perf_domain {
struct em_perf_domain *em_pd;
struct perf_domain *next;
struct callback_head rcu;
};
struct em_perf_table;
struct em_perf_domain {
struct em_perf_table __attribute__((btf_type_tag("rcu"))) *em_table;
int nr_perf_states;
unsigned long flags;
unsigned long cpus[0];
};
struct em_perf_state {
unsigned long performance;
unsigned long frequency;
unsigned long power;
unsigned long cost;
unsigned long flags;
};
struct em_perf_table {
struct callback_head rcu;
struct kref kref;
struct em_perf_state state[0];
};
struct sched_group;
struct sched_domain_shared;
struct sched_domain {
struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent;
struct sched_domain __attribute__((btf_type_tag("rcu"))) *child;
struct sched_group *groups;
unsigned long min_interval;
unsigned long max_interval;
unsigned int busy_factor;
unsigned int imbalance_pct;
unsigned int cache_nice_tries;
unsigned int imb_numa_nr;
int nohz_idle;
int flags;
int level;
unsigned long last_balance;
unsigned int balance_interval;
unsigned int nr_balance_failed;
u64 max_newidle_lb_cost;
unsigned long last_decay_max_lb_cost;
char *name;
union {
void *private;
struct callback_head rcu;
};
struct sched_domain_shared *shared;
unsigned int span_weight;
unsigned long span[0];
};
struct sched_group_capacity;
struct sched_group {
struct sched_group *next;
atomic_t ref;
unsigned int group_weight;
unsigned int cores;
struct sched_group_capacity *sgc;
int asym_prefer_cpu;
int flags;
unsigned long cpumask[0];
};
struct sched_group_capacity {
atomic_t ref;
unsigned long capacity;
unsigned long min_capacity;
unsigned long max_capacity;
unsigned long next_update;
int imbalance;
int id;
unsigned long cpumask[0];
};
struct sched_domain_shared {
atomic_t ref;
atomic_t nr_busy_cpus;
int has_idle_cores;
int nr_idle_scan;
};
struct balance_callback {
struct balance_callback *next;
void (*func)(struct rq *);
};
struct cfs_bandwidth {};
struct task_group {
struct cgroup_subsys_state css;
struct sched_entity **se;
struct cfs_rq **cfs_rq;
unsigned long shares;
int idle;
long: 64;
atomic_long_t load_avg;
u32 scx_flags;
u32 scx_weight;
struct callback_head rcu;
struct list_head list;
struct task_group *parent;
struct list_head siblings;
struct list_head children;
struct cfs_bandwidth cfs_bandwidth;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct pin_cookie {
unsigned int val;
};
struct rq_flags {
unsigned long flags;
struct pin_cookie cookie;
unsigned int clock_update_flags;
};
struct affinity_context {
const struct cpumask *new_mask;
struct cpumask *user_mask;
unsigned int flags;
};
struct sd_flag_debug {
unsigned int meta_flags;
char *name;
};
struct update_util_data {
void (*func)(struct update_util_data *, u64, unsigned int);
};
enum numa_topology_type {
NUMA_DIRECT = 0,
NUMA_GLUELESS_MESH = 1,
NUMA_BACKPLANE = 2,
};
typedef const struct cpumask * (*sched_domain_mask_f)(int);
typedef int (*sched_domain_flags_f)();
struct sd_data {
struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd;
struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds;
struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg;
struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc;
};
struct sched_domain_topology_level {
sched_domain_mask_f mask;
sched_domain_flags_f sd_flags;
int flags;
int numa_level;
struct sd_data data;
char *name;
};
struct sched_domain_attr {
int relax_domain_level;
};
struct housekeeping {
cpumask_var_t cpumasks[9];
unsigned long flags;
};
struct sched_clock_data {
u64 tick_raw;
u64 tick_gtod;
u64 clock;
};
struct cpuacct {
struct cgroup_subsys_state css;
u64 __attribute__((btf_type_tag("percpu"))) *cpuusage;
struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat;
};
struct sugov_tunables {
struct gov_attr_set attr_set;
unsigned int rate_limit_us;
};
struct sugov_policy;
struct sugov_cpu {
struct update_util_data update_util;
struct sugov_policy *sg_policy;
unsigned int cpu;
bool iowait_boost_pending;
unsigned int iowait_boost;
u64 last_update;
unsigned long util;
unsigned long bw_min;
unsigned long saved_idle_calls;
};
struct sugov_policy {
struct cpufreq_policy *policy;
struct sugov_tunables *tunables;
struct list_head tunables_hook;
raw_spinlock_t update_lock;
u64 last_freq_update_time;
s64 freq_update_delay_ns;
unsigned int next_freq;
unsigned int cached_raw_freq;
struct irq_work irq_work;
struct kthread_work work;
struct mutex work_lock;
struct kthread_worker worker;
struct task_struct *thread;
bool work_in_progress;
bool limits_changed;
bool need_freq_update;
};
enum hk_type {
HK_TYPE_TIMER = 0,
HK_TYPE_RCU = 1,
HK_TYPE_MISC = 2,
HK_TYPE_SCHED = 3,
HK_TYPE_TICK = 4,
HK_TYPE_DOMAIN = 5,
HK_TYPE_WQ = 6,
HK_TYPE_MANAGED_IRQ = 7,
HK_TYPE_KTHREAD = 8,
HK_TYPE_MAX = 9,
};
enum psi_task_count {
NR_IOWAIT = 0,
NR_MEMSTALL = 1,
NR_RUNNING = 2,
NR_MEMSTALL_RUNNING = 3,
NR_PSI_TASK_COUNTS = 4,
};
enum hk_flags {
HK_FLAG_TIMER = 1,
HK_FLAG_RCU = 2,
HK_FLAG_MISC = 4,
HK_FLAG_SCHED = 8,
HK_FLAG_TICK = 16,
HK_FLAG_DOMAIN = 32,
HK_FLAG_WQ = 64,
HK_FLAG_MANAGED_IRQ = 128,
HK_FLAG_KTHREAD = 256,
};
enum cpuacct_stat_index {
CPUACCT_STAT_USER = 0,
CPUACCT_STAT_SYSTEM = 1,
CPUACCT_STAT_NSTATS = 2,
};
enum cpu_usage_stat {
CPUTIME_USER = 0,
CPUTIME_NICE = 1,
CPUTIME_SYSTEM = 2,
CPUTIME_SOFTIRQ = 3,
CPUTIME_IRQ = 4,
CPUTIME_IDLE = 5,
CPUTIME_IOWAIT = 6,
CPUTIME_STEAL = 7,
CPUTIME_GUEST = 8,
CPUTIME_GUEST_NICE = 9,
NR_STATS = 10,
};
enum {
__SCHED_FEAT_PLACE_LAG = 0,
__SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1,
__SCHED_FEAT_RUN_TO_PARITY = 2,
__SCHED_FEAT_NEXT_BUDDY = 3,
__SCHED_FEAT_CACHE_HOT_BUDDY = 4,
__SCHED_FEAT_WAKEUP_PREEMPTION = 5,
__SCHED_FEAT_HRTICK = 6,
__SCHED_FEAT_HRTICK_DL = 7,
__SCHED_FEAT_DOUBLE_TICK = 8,
__SCHED_FEAT_NONTASK_CAPACITY = 9,
__SCHED_FEAT_TTWU_QUEUE = 10,
__SCHED_FEAT_SIS_UTIL = 11,
__SCHED_FEAT_WARN_DOUBLE_CLOCK = 12,
__SCHED_FEAT_RT_PUSH_IPI = 13,
__SCHED_FEAT_RT_RUNTIME_SHARE = 14,
__SCHED_FEAT_LB_MIN = 15,
__SCHED_FEAT_ATTACH_AGE_LOAD = 16,
__SCHED_FEAT_WA_IDLE = 17,
__SCHED_FEAT_WA_WEIGHT = 18,
__SCHED_FEAT_WA_BIAS = 19,
__SCHED_FEAT_UTIL_EST = 20,
__SCHED_FEAT_LATENCY_WARN = 21,
__SCHED_FEAT_HZ_BW = 22,
__SCHED_FEAT_NR = 23,
};
enum sched_tunable_scaling {
SCHED_TUNABLESCALING_NONE = 0,
SCHED_TUNABLESCALING_LOG = 1,
SCHED_TUNABLESCALING_LINEAR = 2,
SCHED_TUNABLESCALING_END = 3,
};
enum {
__SD_BALANCE_NEWIDLE = 0,
__SD_BALANCE_EXEC = 1,
__SD_BALANCE_FORK = 2,
__SD_BALANCE_WAKE = 3,
__SD_WAKE_AFFINE = 4,
__SD_ASYM_CPUCAPACITY = 5,
__SD_ASYM_CPUCAPACITY_FULL = 6,
__SD_SHARE_CPUCAPACITY = 7,
__SD_CLUSTER = 8,
__SD_SHARE_LLC = 9,
__SD_SERIALIZE = 10,
__SD_ASYM_PACKING = 11,
__SD_PREFER_SIBLING = 12,
__SD_OVERLAP = 13,
__SD_NUMA = 14,
__SD_FLAG_CNT = 15,
};
enum {
CSD_FLAG_LOCK = 1,
IRQ_WORK_PENDING = 1,
IRQ_WORK_BUSY = 2,
IRQ_WORK_LAZY = 4,
IRQ_WORK_HARD_IRQ = 8,
IRQ_WORK_CLAIMED = 3,
CSD_TYPE_ASYNC = 0,
CSD_TYPE_SYNC = 16,
CSD_TYPE_IRQ_WORK = 32,
CSD_TYPE_TTWU = 48,
CSD_FLAG_TYPE_MASK = 240,
};
enum {
SD_BALANCE_NEWIDLE = 1,
SD_BALANCE_EXEC = 2,
SD_BALANCE_FORK = 4,
SD_BALANCE_WAKE = 8,
SD_WAKE_AFFINE = 16,
SD_ASYM_CPUCAPACITY = 32,
SD_ASYM_CPUCAPACITY_FULL = 64,
SD_SHARE_CPUCAPACITY = 128,
SD_CLUSTER = 256,
SD_SHARE_LLC = 512,
SD_SERIALIZE = 1024,
SD_ASYM_PACKING = 2048,
SD_PREFER_SIBLING = 4096,
SD_OVERLAP = 8192,
SD_NUMA = 16384,
};
enum s_alloc {
sa_rootdomain = 0,
sa_sd = 1,
sa_sd_storage = 2,
sa_none = 3,
};
enum membarrier_cmd {
MEMBARRIER_CMD_QUERY = 0,
MEMBARRIER_CMD_GLOBAL = 1,
MEMBARRIER_CMD_GLOBAL_EXPEDITED = 2,
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 4,
MEMBARRIER_CMD_PRIVATE_EXPEDITED = 8,
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 16,
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 32,
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 64,
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 128,
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 256,
MEMBARRIER_CMD_GET_REGISTRATIONS = 512,
MEMBARRIER_CMD_SHARED = 1,
};
enum membarrier_cmd_flag {
MEMBARRIER_CMD_FLAG_CPU = 1,
};
enum {
MEMBARRIER_FLAG_SYNC_CORE = 1,
MEMBARRIER_FLAG_RSEQ = 2,
};
enum {
MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1,
MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2,
MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4,
MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8,
MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16,
MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32,
MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64,
MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128,
};
enum rseq_event_mask_bits {
RSEQ_EVENT_PREEMPT_BIT = 0,
RSEQ_EVENT_SIGNAL_BIT = 1,
RSEQ_EVENT_MIGRATE_BIT = 2,
};
struct swait_queue {
struct task_struct *task;
struct list_head task_list;
};
struct wait_bit_key {
void *flags;
int bit_nr;
unsigned long timeout;
};
struct wait_bit_queue_entry {
struct wait_bit_key key;
struct wait_queue_entry wq_entry;
};
struct __cmp_key {
const struct cpumask *cpus;
struct cpumask ***masks;
int node;
int cpu;
int w;
};
struct asym_cap_data {
struct list_head link;
unsigned long capacity;
unsigned long cpus[0];
};
struct sched_attr {
__u32 size;
__u32 sched_policy;
__u64 sched_flags;
__s32 sched_nice;
__u32 sched_priority;
__u64 sched_runtime;
__u64 sched_deadline;
__u64 sched_period;
__u32 sched_util_min;
__u32 sched_util_max;
};
struct s_data {
struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd;
struct root_domain *rd;
};
typedef struct mutex *class_mutex_t;
typedef int wait_bit_action_f(struct wait_bit_key *, int);
struct bpf_id_pair {
u32 old;
u32 cur;
};
struct bpf_idmap {
u32 tmp_id_gen;
struct bpf_id_pair map[600];
};
struct bpf_idset {
u32 count;
u32 ids[600];
};
struct bpf_verifier_log {
u64 start_pos;
u64 end_pos;
char __attribute__((btf_type_tag("user"))) *ubuf;
u32 level;
u32 len_total;
u32 len_max;
char kbuf[1024];
};
struct bpf_subprog_arg_info {
enum bpf_arg_type arg_type;
union {
u32 mem_size;
u32 btf_id;
};
};
struct bpf_subprog_info {
u32 start;
u32 linfo_idx;
u16 stack_depth;
u16 stack_extra;
bool has_tail_call: 1;
bool tail_call_reachable: 1;
bool has_ld_abs: 1;
bool is_cb: 1;
bool is_async_cb: 1;
bool is_exception_cb: 1;
bool args_cached: 1;
u8 arg_cnt;
struct bpf_subprog_arg_info args[5];
};
struct backtrack_state {
struct bpf_verifier_env *env;
u32 frame;
u32 reg_masks[8];
u64 stack_masks[8];
};
struct bpf_verifier_ops;
struct bpf_verifier_stack_elem;
struct bpf_verifier_state;
struct bpf_verifier_state_list;
struct bpf_insn_aux_data;
struct bpf_jmp_history_entry;
struct bpf_verifier_env {
u32 insn_idx;
u32 prev_insn_idx;
struct bpf_prog *prog;
const struct bpf_verifier_ops *ops;
struct module *attach_btf_mod;
struct bpf_verifier_stack_elem *head;
int stack_size;
bool strict_alignment;
bool test_state_freq;
bool test_reg_invariants;
struct bpf_verifier_state *cur_state;
struct bpf_verifier_state_list **explored_states;
struct bpf_verifier_state_list *free_list;
struct bpf_map *used_maps[64];
struct btf_mod_pair used_btfs[64];
u32 used_map_cnt;
u32 used_btf_cnt;
u32 id_gen;
u32 hidden_subprog_cnt;
int exception_callback_subprog;
bool explore_alu_limits;
bool allow_ptr_leaks;
bool allow_uninit_stack;
bool bpf_capable;
bool bypass_spec_v1;
bool bypass_spec_v4;
bool seen_direct_write;
bool seen_exception;
struct bpf_insn_aux_data *insn_aux_data;
const struct bpf_line_info *prev_linfo;
struct bpf_verifier_log log;
struct bpf_subprog_info subprog_info[258];
union {
struct bpf_idmap idmap_scratch;
struct bpf_idset idset_scratch;
};
struct {
int *insn_state;
int *insn_stack;
int cur_stack;
} cfg;
struct backtrack_state bt;
struct bpf_jmp_history_entry *cur_hist_ent;
u32 pass_cnt;
u32 subprog_cnt;
u32 prev_insn_processed;
u32 insn_processed;
u32 prev_jmps_processed;
u32 jmps_processed;
u64 verification_time;
u32 max_states_per_insn;
u32 total_states;
u32 peak_states;
u32 longest_mark_read_walk;
bpfptr_t fd_array;
u32 scratched_regs;
u64 scratched_stack_slots;
u64 prev_log_pos;
u64 prev_insn_print_pos;
char tmp_str_buf[320];
};
enum bpf_access_type {
BPF_READ = 1,
BPF_WRITE = 2,
};
struct bpf_insn_access_aux;
struct bpf_reg_state;
struct bpf_verifier_ops {
const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *);
bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *);
int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *);
int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *);
u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int);
};
struct bpf_insn_access_aux {
enum bpf_reg_type reg_type;
union {
int ctx_field_size;
struct {
struct btf *btf;
u32 btf_id;
};
};
struct bpf_verifier_log *log;
};
enum bpf_dynptr_type {
BPF_DYNPTR_TYPE_INVALID = 0,
BPF_DYNPTR_TYPE_LOCAL = 1,
BPF_DYNPTR_TYPE_RINGBUF = 2,
BPF_DYNPTR_TYPE_SKB = 3,
BPF_DYNPTR_TYPE_XDP = 4,
};
enum bpf_iter_state {
BPF_ITER_STATE_INVALID = 0,
BPF_ITER_STATE_ACTIVE = 1,
BPF_ITER_STATE_DRAINED = 2,
};
struct tnum {
u64 value;
u64 mask;
};
enum bpf_reg_liveness {
REG_LIVE_NONE = 0,
REG_LIVE_READ32 = 1,
REG_LIVE_READ64 = 2,
REG_LIVE_READ = 3,
REG_LIVE_WRITTEN = 4,
REG_LIVE_DONE = 8,
};
struct bpf_reg_state {
enum bpf_reg_type type;
s32 off;
union {
int range;
struct {
struct bpf_map *map_ptr;
u32 map_uid;
};
struct {
struct btf *btf;
u32 btf_id;
};
struct {
u32 mem_size;
u32 dynptr_id;
};
struct {
enum bpf_dynptr_type type;
bool first_slot;
} dynptr;
struct {
struct btf *btf;
u32 btf_id;
enum bpf_iter_state state: 2;
int depth: 30;
} iter;
struct {
unsigned long raw1;
unsigned long raw2;
} raw;
u32 subprogno;
};
struct tnum var_off;
s64 smin_value;
s64 smax_value;
u64 umin_value;
u64 umax_value;
s32 s32_min_value;
s32 s32_max_value;
u32 u32_min_value;
u32 u32_max_value;
u32 id;
u32 ref_obj_id;
struct bpf_reg_state *parent;
u32 frameno;
s32 subreg_def;
enum bpf_reg_liveness live;
bool precise;
};
struct bpf_active_lock {
void *ptr;
u32 id;
};
struct bpf_verifier_state {
struct bpf_func_state *frame[8];
struct bpf_verifier_state *parent;
u32 branches;
u32 insn_idx;
u32 curframe;
struct bpf_active_lock active_lock;
bool speculative;
bool active_rcu_lock;
u32 active_preempt_lock;
bool used_as_loop_entry;
bool in_sleepable;
u32 first_insn_idx;
u32 last_insn_idx;
struct bpf_verifier_state *loop_entry;
struct bpf_jmp_history_entry *jmp_history;
u32 jmp_history_cnt;
u32 dfs_depth;
u32 callback_unroll_depth;
u32 may_goto_depth;
};
struct bpf_retval_range {
s32 minval;
s32 maxval;
};
struct bpf_reference_state;
struct bpf_stack_state;
struct bpf_func_state {
struct bpf_reg_state regs[11];
int callsite;
u32 frameno;
u32 subprogno;
u32 async_entry_cnt;
struct bpf_retval_range callback_ret_range;
bool in_callback_fn;
bool in_async_callback_fn;
bool in_exception_callback_fn;
u32 callback_depth;
int acquired_refs;
struct bpf_reference_state *refs;
struct bpf_stack_state *stack;
int allocated_stack;
};
struct bpf_reference_state {
int id;
int insn_idx;
int callback_ref;
};
struct bpf_stack_state {
struct bpf_reg_state spilled_ptr;
u8 slot_type[8];
};
struct bpf_jmp_history_entry {
u32 idx;
u32 prev_idx: 22;
u32 flags: 10;
};
struct bpf_verifier_state_list {
struct bpf_verifier_state state;
struct bpf_verifier_state_list *next;
int miss_cnt;
int hit_cnt;
};
struct bpf_map_ptr_state {
struct bpf_map *map_ptr;
bool poison;
bool unpriv;
};
struct bpf_loop_inline_state {
unsigned int initialized: 1;
unsigned int fit_for_inline: 1;
u32 callback_subprogno;
};
struct btf_struct_meta;
struct bpf_insn_aux_data {
union {
enum bpf_reg_type ptr_type;
struct bpf_map_ptr_state map_ptr_state;
s32 call_imm;
u32 alu_limit;
struct {
u32 map_index;
u32 map_off;
};
struct {
enum bpf_reg_type reg_type;
union {
struct {
struct btf *btf;
u32 btf_id;
};
u32 mem_size;
};
} btf_var;
struct bpf_loop_inline_state loop_inline_state;
};
union {
u64 obj_new_size;
u64 insert_off;
};
struct btf_struct_meta *kptr_struct_meta;
u64 map_key_state;
int ctx_field_size;
u32 seen;
bool sanitize_stack_spill;
bool zext_dst;
bool needs_zext;
bool storage_get_func_atomic;
bool is_iter_next;
bool call_with_percpu_alloc_ptr;
u8 alu_state;
unsigned int orig_idx;
bool jmp_point;
bool prune_point;
bool force_checkpoint;
bool calls_callback;
};
struct btf_struct_meta {
u32 btf_id;
struct btf_record *record;
};
struct bpf_prog_offload_ops;
struct bpf_offload_dev {
const struct bpf_prog_offload_ops *ops;
struct list_head netdevs;
void *priv;
};
struct bpf_prog_offload_ops {
int (*insn_hook)(struct bpf_verifier_env *, int, int);
int (*finalize)(struct bpf_verifier_env *);
int (*replace_insn)(struct bpf_verifier_env *, u32, struct bpf_insn *);
int (*remove_insns)(struct bpf_verifier_env *, u32, u32);
int (*prepare)(struct bpf_prog *);
int (*translate)(struct bpf_prog *);
void (*destroy)(struct bpf_prog *);
};
enum xdp_rx_metadata {
XDP_METADATA_KFUNC_RX_TIMESTAMP = 0,
XDP_METADATA_KFUNC_RX_HASH = 1,
XDP_METADATA_KFUNC_RX_VLAN_TAG = 2,
MAX_XDP_METADATA_KFUNC = 3,
};
struct bpf_offload_netdev {
struct rhash_head l;
struct net_device *netdev;
struct bpf_offload_dev *offdev;
struct list_head progs;
struct list_head maps;
struct list_head offdev_netdevs;
};
typedef struct ns_common *ns_get_path_helper_t(void *);
struct bpf_prog_info;
struct ns_get_path_bpf_prog_args {
struct bpf_prog *prog;
struct bpf_prog_info *info;
};
struct bpf_prog_info {
__u32 type;
__u32 id;
__u8 tag[8];
__u32 jited_prog_len;
__u32 xlated_prog_len;
__u64 jited_prog_insns;
__u64 xlated_prog_insns;
__u64 load_time;
__u32 created_by_uid;
__u32 nr_map_ids;
__u64 map_ids;
char name[16];
__u32 ifindex;
__u32 gpl_compatible: 1;
__u64 netns_dev;
__u64 netns_ino;
__u32 nr_jited_ksyms;
__u32 nr_jited_func_lens;
__u64 jited_ksyms;
__u64 jited_func_lens;
__u32 btf_id;
__u32 func_info_rec_size;
__u64 func_info;
__u32 nr_func_info;
__u32 nr_line_info;
__u64 line_info;
__u64 jited_line_info;
__u32 nr_jited_line_info;
__u32 line_info_rec_size;
__u32 jited_line_info_rec_size;
__u32 nr_prog_tags;
__u64 prog_tags;
__u64 run_time_ns;
__u64 run_cnt;
__u64 recursion_misses;
__u32 verified_insns;
__u32 attach_btf_obj_id;
__u32 attach_btf_id;
};
struct bpf_map_info;
struct ns_get_path_bpf_map_args {
struct bpf_offloaded_map *offmap;
struct bpf_map_info *info;
};
struct bpf_map_info {
__u32 type;
__u32 id;
__u32 key_size;
__u32 value_size;
__u32 max_entries;
__u32 map_flags;
char name[16];
__u32 ifindex;
__u32 btf_vmlinux_value_type_id;
__u64 netns_dev;
__u64 netns_ino;
__u32 btf_id;
__u32 btf_key_type_id;
__u32 btf_value_type_id;
__u32 btf_vmlinux_id;
__u64 map_extra;
};
struct swap_slots_cache {
bool lock_initialized;
struct mutex alloc_lock;
swp_entry_t *slots;
int nr;
int cur;
spinlock_t free_lock;
swp_entry_t *slots_ret;
int n_ret;
};
struct bh_lru {
struct buffer_head *bhs[16];
};
struct bh_accounting {
int nr;
int ratelimit;
};
struct postprocess_bh_ctx {
struct work_struct work;
struct buffer_head *bh;
};
struct fat_entry {
int entry;
union {
u8 *ent12_p[2];
__le16 *ent16_p;
__le32 *ent32_p;
} u;
int nr_bhs;
struct buffer_head *bhs[2];
struct inode *fat_inode;
};
typedef unsigned long long llu;
struct fatent_ra {
sector_t cur;
sector_t limit;
unsigned int ra_blocks;
sector_t ra_advance;
sector_t ra_next;
sector_t ra_limit;
};
struct fstrim_range {
__u64 start;
__u64 len;
__u64 minlen;
};
enum {
WORK_DONE_BIT = 0,
WORK_ORDER_DONE_BIT = 1,
};
struct btrfs_workqueue {
struct workqueue_struct *normal_wq;
struct btrfs_fs_info *fs_info;
struct list_head ordered_list;
spinlock_t list_lock;
atomic_t pending;
int limit_active;
int current_active;
int thresh;
unsigned int count;
spinlock_t thres_lock;
};
struct ulist_node {
u64 val;
u64 aux;
struct list_head list;
struct rb_node rb_node;
};
struct ulist_iterator {
struct list_head *cur_list;
};
enum {
READA_NONE = 0,
READA_BACK = 1,
READA_FORWARD = 2,
READA_FORWARD_ALWAYS = 3,
};
struct btrfs_dev_replace_item {
__le64 src_devid;
__le64 cursor_left;
__le64 cursor_right;
__le64 cont_reading_from_srcdev_mode;
__le64 replace_state;
__le64 time_started;
__le64 time_stopped;
__le64 num_write_errors;
__le64 num_uncorrectable_read_errors;
};
struct btrfs_zoned_device_info {
u64 zone_size;
u8 zone_size_shift;
u32 nr_zones;
unsigned int max_active_zones;
int reserved_active_zones;
atomic_t active_zones_left;
unsigned long *seq_zones;
unsigned long *empty_zones;
unsigned long *active_zones;
struct blk_zone *zone_cache;
struct blk_zone sb_zones[6];
};
struct btrfs_dev_extent {
__le64 chunk_tree;
__le64 chunk_objectid;
__le64 chunk_offset;
__le64 length;
__u8 chunk_tree_uuid[16];
};
struct btrfs_dev_lookup_args {
u64 devid;
u8 *uuid;
u8 *fsid;
bool missing;
};
struct btrfs_ioctl_dev_replace_start_params {
__u64 srcdevid;
__u64 cont_reading_from_srcdev_mode;
__u8 srcdev_name[1025];
__u8 tgtdev_name[1025];
};
struct btrfs_ioctl_dev_replace_status_params {
__u64 replace_state;
__u64 progress_1000;
__u64 time_started;
__u64 time_stopped;
__u64 num_write_errors;
__u64 num_uncorrectable_read_errors;
};
struct btrfs_ioctl_dev_replace_args {
__u64 cmd;
__u64 result;
union {
struct btrfs_ioctl_dev_replace_start_params start;
struct btrfs_ioctl_dev_replace_status_params status;
};
__u64 spare[64];
};
enum sum_check_bits {
SUM_CHECK_P = 0,
SUM_CHECK_Q = 1,
};
struct pr_keys {
u32 generation;
u32 num_keys;
u64 keys[0];
};
struct pr_held_reservation {
u64 key;
u32 generation;
enum pr_type type;
};
struct pr_reservation {
__u64 key;
__u32 type;
__u32 flags;
};
struct pr_preempt {
__u64 old_key;
__u64 new_key;
__u32 type;
__u32 flags;
};
struct pr_clear {
__u64 key;
__u32 flags;
__u32 __pad;
};
struct pr_registration {
__u64 old_key;
__u64 new_key;
__u32 flags;
__u32 __pad;
};
struct blkpg_ioctl_arg {
int op;
int flags;
int datalen;
void __attribute__((btf_type_tag("user"))) *data;
};
struct blkpg_partition {
long long start;
long long length;
int pno;
char devname[64];
char volname[64];
};
struct reciprocal_value {
u32 m;
u8 sh1;
u8 sh2;
};
struct reciprocal_value_adv {
u32 m;
u8 sh;
u8 exp;
bool is_wide_m;
};
typedef enum {
trustInput = 0,
checkMaxSymbolValue = 1,
} HIST_checkInput_e;
typedef ZSTD_ErrorCode ERR_enum;
struct dim_cq_moder {
u16 usec;
u16 pkts;
u16 comps;
u8 cq_period_mode;
};
enum dim_cq_period_mode {
DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0,
DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1,
DIM_CQ_PERIOD_NUM_MODES = 2,
};
enum dim_state {
DIM_START_MEASURE = 0,
DIM_MEASURE_IN_PROGRESS = 1,
DIM_APPLY_NEW_PROFILE = 2,
};
enum dim_stats_state {
DIM_STATS_WORSE = 0,
DIM_STATS_SAME = 1,
DIM_STATS_BETTER = 2,
};
enum dim_step_result {
DIM_STEPPED = 0,
DIM_TOO_TIRED = 1,
DIM_ON_EDGE = 2,
};
enum pci_fixup_pass {
pci_fixup_early = 0,
pci_fixup_header = 1,
pci_fixup_final = 2,
pci_fixup_enable = 3,
pci_fixup_resume = 4,
pci_fixup_suspend = 5,
pci_fixup_resume_early = 6,
pci_fixup_suspend_late = 7,
};
enum {
pci_channel_io_normal = 1,
pci_channel_io_frozen = 2,
pci_channel_io_perm_failure = 3,
};
struct pci_dynid {
struct list_head node;
struct pci_device_id id;
};
struct drv_dev_and_id {
struct pci_driver *drv;
struct pci_dev *dev;
const struct pci_device_id *id;
};
enum {
ACPI_GENL_CMD_UNSPEC = 0,
ACPI_GENL_CMD_EVENT = 1,
__ACPI_GENL_CMD_MAX = 2,
};
enum {
ACPI_GENL_ATTR_UNSPEC = 0,
ACPI_GENL_ATTR_EVENT = 1,
__ACPI_GENL_ATTR_MAX = 2,
};
typedef int (*netlink_filter_fn)(struct sock *, struct sk_buff *, void *);
struct acpi_bus_event {
struct list_head node;
acpi_device_class device_class;
acpi_bus_id bus_id;
u32 type;
u32 data;
};
struct acpi_genl_event {
acpi_device_class device_class;
char bus_id[15];
u32 type;
u32 data;
};
struct devres_node {
struct list_head entry;
dr_release_t release;
const char *name;
size_t size;
};
struct devres {
struct devres_node node;
u8 data[0];
};
struct devres_group {
struct devres_node node[2];
void *id;
int color;
};
struct action_devres {
void *data;
void (*action)(void *);
};
struct pages_devres {
unsigned long addr;
unsigned int order;
};
struct scsi_varlen_cdb_hdr {
__u8 opcode;
__u8 control;
__u8 misc[5];
__u8 additional_cdb_length;
__be16 service_action;
};
enum iwl_fw_sta_type {
STATION_TYPE_PEER = 0,
STATION_TYPE_BCAST_MGMT = 1,
STATION_TYPE_MCAST = 2,
STATION_TYPE_AUX = 3,
};
enum iwl_scd_queue_cfg_operation {
IWL_SCD_QUEUE_ADD = 0,
IWL_SCD_QUEUE_REMOVE = 1,
IWL_SCD_QUEUE_MODIFY = 2,
};
enum iwl_rx_baid_action {
IWL_RX_BAID_ACTION_ADD = 0,
IWL_RX_BAID_ACTION_MODIFY = 1,
IWL_RX_BAID_ACTION_REMOVE = 2,
};
struct iwl_mvm_aux_sta_cmd {
__le32 sta_id;
__le32 lmac_id;
u8 mac_addr[6];
__le16 reserved_for_mac_addr;
};
struct iwl_he_pkt_ext_v2 {
u8 pkt_ext_qam_th[20];
};
struct iwl_mvm_sta_cfg_cmd {
__le32 sta_id;
__le32 link_id;
u8 peer_mld_address[6];
__le16 reserved_for_peer_mld_address;
u8 peer_link_address[6];
__le16 reserved_for_peer_link_address;
__le32 station_type;
__le32 assoc_id;
__le32 beamform_flags;
__le32 mfp;
__le32 mimo;
__le32 mimo_protection;
__le32 ack_enabled;
__le32 trig_rnd_alloc;
__le32 tx_ampdu_spacing;
__le32 tx_ampdu_max_size;
__le32 sp_length;
__le32 uapsd_acs;
struct iwl_he_pkt_ext_v2 pkt_ext;
__le32 htc_flags;
};
struct iwl_mvm_remove_sta_cmd {
__le32 sta_id;
};
struct iwl_scd_queue_cfg_cmd {
__le32 operation;
union {
struct {
__le32 sta_mask;
u8 tid;
u8 reserved[3];
__le32 flags;
__le32 cb_size;
__le64 bc_dram_addr;
__le64 tfdq_dram_addr;
} add;
struct {
__le32 sta_mask;
__le32 tid;
} remove;
struct {
__le32 old_sta_mask;
__le32 tid;
__le32 new_sta_mask;
} modify;
} u;
} __attribute__((packed));
struct iwl_mvm_txq {
struct list_head list;
u16 txq_id;
atomic_t tx_request;
unsigned long state;
};
struct iwl_mvm_sta_disable_tx_cmd {
__le32 sta_id;
__le32 disable;
};
struct iwl_rx_baid_cfg_cmd_alloc {
__le32 sta_id_mask;
u8 tid;
u8 reserved[3];
__le16 ssn;
__le16 win_size;
};
struct iwl_rx_baid_cfg_cmd_modify {
__le32 old_sta_id_mask;
__le32 new_sta_id_mask;
__le32 tid;
};
struct iwl_rx_baid_cfg_cmd_remove_v1 {
__le32 baid;
};
struct iwl_rx_baid_cfg_cmd_remove {
__le32 sta_id_mask;
__le32 tid;
};
struct iwl_rx_baid_cfg_cmd {
__le32 action;
union {
struct iwl_rx_baid_cfg_cmd_alloc alloc;
struct iwl_rx_baid_cfg_cmd_modify modify;
struct iwl_rx_baid_cfg_cmd_remove_v1 remove_v1;
struct iwl_rx_baid_cfg_cmd_remove remove;
};
};
struct input_event {
__kernel_ulong_t __sec;
__kernel_ulong_t __usec;
__u16 type;
__u16 code;
__s32 value;
};
struct input_mt_slot {
int abs[14];
unsigned int frame;
unsigned int key;
};
struct input_mt {
int trkid;
int num_slots;
int slot;
unsigned int flags;
unsigned int frame;
int *red;
struct input_mt_slot slots[0];
};
struct input_mt_pos {
s16 x;
s16 y;
};
struct stripe {
struct dm_dev *dev;
sector_t physical_start;
atomic_t error_count;
};
struct stripe_c {
uint32_t stripes;
int stripes_shift;
sector_t stripe_width;
uint32_t chunk_size;
int chunk_size_shift;
struct dm_target *ti;
struct work_struct trigger_event;
struct stripe stripe[0];
};
enum {
ETHTOOL_A_LINKSTATE_UNSPEC = 0,
ETHTOOL_A_LINKSTATE_HEADER = 1,
ETHTOOL_A_LINKSTATE_LINK = 2,
ETHTOOL_A_LINKSTATE_SQI = 3,
ETHTOOL_A_LINKSTATE_SQI_MAX = 4,
ETHTOOL_A_LINKSTATE_EXT_STATE = 5,
ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 6,
ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 7,
__ETHTOOL_A_LINKSTATE_CNT = 8,
ETHTOOL_A_LINKSTATE_MAX = 7,
};
struct linkstate_reply_data {
struct ethnl_reply_data base;
int link;
int sqi;
int sqi_max;
struct ethtool_link_ext_stats link_stats;
bool link_ext_state_provided;
struct ethtool_link_ext_state_info ethtool_link_ext_state_info;
};
enum nft_rt_keys {
NFT_RT_CLASSID = 0,
NFT_RT_NEXTHOP4 = 1,
NFT_RT_NEXTHOP6 = 2,
NFT_RT_TCPMSS = 3,
NFT_RT_XFRM = 4,
__NFT_RT_MAX = 5,
};
enum nft_rt_attributes {
NFTA_RT_UNSPEC = 0,
NFTA_RT_DREG = 1,
NFTA_RT_KEY = 2,
__NFTA_RT_MAX = 3,
};
enum nft_data_types {
NFT_DATA_VALUE = 0,
NFT_DATA_VERDICT = 4294967040,
};
struct nft_rt {
enum nft_rt_keys key: 8;
u8 dreg;
};
struct tcp_plb_state {
u8 consec_cong_rounds: 5;
u8 unused: 3;
u32 pause_until;
};
struct inet_protosw {
struct list_head list;
unsigned short type;
unsigned short protocol;
struct proto *prot;
const struct proto_ops *ops;
unsigned char flags;
};
struct icmp6_filter {
__u32 data[8];
};
struct raw6_sock {
struct inet_sock inet;
__u32 checksum;
__u32 offset;
struct icmp6_filter filter;
__u32 ip6mr_table;
struct ipv6_pinfo inet6;
};
struct raw6_frag_vec {
struct msghdr *msg;
int hlen;
char c[4];
};
enum ieee80211_chanctx_change {
IEEE80211_CHANCTX_CHANGE_WIDTH = 1,
IEEE80211_CHANCTX_CHANGE_RX_CHAINS = 2,
IEEE80211_CHANCTX_CHANGE_RADAR = 4,
IEEE80211_CHANCTX_CHANGE_CHANNEL = 8,
IEEE80211_CHANCTX_CHANGE_MIN_WIDTH = 16,
IEEE80211_CHANCTX_CHANGE_AP = 32,
IEEE80211_CHANCTX_CHANGE_PUNCTURING = 64,
};
enum ieee80211_rate_control_changed {
IEEE80211_RC_BW_CHANGED = 1,
IEEE80211_RC_SMPS_CHANGED = 2,
IEEE80211_RC_SUPP_RATES_CHANGED = 4,
IEEE80211_RC_NSS_CHANGED = 8,
};
enum ieee80211_sdata_state_bits {
SDATA_STATE_RUNNING = 0,
SDATA_STATE_OFFCHANNEL = 1,
SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2,
};
struct mpc_ioapic {
unsigned char type;
unsigned char apicid;
unsigned char apicver;
unsigned char flags;
unsigned int apicaddr;
};
struct mp_ioapic_gsi {
u32 gsi_base;
u32 gsi_end;
};
struct IO_APIC_route_entry;
struct ioapic {
int nr_registers;
struct IO_APIC_route_entry *saved_registers;
struct mpc_ioapic mp_config;
struct mp_ioapic_gsi gsi_config;
struct ioapic_domain_cfg irqdomain_cfg;
struct irq_domain *irqdomain;
struct resource *iomem_res;
};
struct IO_APIC_route_entry {
union {
struct {
u64 vector: 8;
u64 delivery_mode: 3;
u64 dest_mode_logical: 1;
u64 delivery_status: 1;
u64 active_low: 1;
u64 irr: 1;
u64 is_level: 1;
u64 masked: 1;
u64 reserved_0: 15;
u64 reserved_1: 17;
u64 virt_destid_8_14: 7;
u64 destid_0_7: 8;
};
struct {
u64 ir_shared_0: 8;
u64 ir_zero: 3;
u64 ir_index_15: 1;
u64 ir_shared_1: 5;
u64 ir_reserved_0: 31;
u64 ir_format: 1;
u64 ir_index_0_14: 15;
};
struct {
u64 w1: 32;
u64 w2: 32;
};
};
};
struct irq_pin_list {
struct list_head list;
int apic;
int pin;
};
struct io_apic {
unsigned int index;
unsigned int unused[3];
unsigned int data;
unsigned int unused2[11];
unsigned int eoi;
};
union IO_APIC_reg_00 {
u32 raw;
struct {
u32 __reserved_2: 14;
u32 LTS: 1;
u32 delivery_type: 1;
u32 __reserved_1: 8;
u32 ID: 8;
} bits;
};
union IO_APIC_reg_01 {
u32 raw;
struct {
u32 version: 8;
u32 __reserved_2: 7;
u32 PRQ: 1;
u32 entries: 8;
u32 __reserved_1: 8;
} bits;
};
union IO_APIC_reg_02 {
u32 raw;
struct {
u32 __reserved_2: 24;
u32 arbitration: 4;
u32 __reserved_1: 4;
} bits;
};
struct mp_chip_data {
struct list_head irq_2_pin;
struct IO_APIC_route_entry entry;
bool is_level;
bool active_low;
bool isa_irq;
u32 count;
};
union IO_APIC_reg_03 {
u32 raw;
struct {
u32 boot_DT: 1;
u32 __reserved_1: 31;
} bits;
};
struct mutex_waiter {
struct list_head list;
struct task_struct *task;
struct ww_acquire_ctx *ww_ctx;
void *magic;
};
typedef void (*btf_trace_lock_acquire)(void *, struct lockdep_map *, unsigned int, int, int, int, struct lockdep_map *, unsigned long);
typedef void (*btf_trace_lock_release)(void *, struct lockdep_map *, unsigned long);
typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int);
typedef void (*btf_trace_contention_end)(void *, void *, int);
struct trace_event_raw_lock_acquire {
struct trace_entry ent;
unsigned int flags;
u32 __data_loc_name;
void *lockdep_addr;
char __data[0];
};
struct trace_event_raw_lock {
struct trace_entry ent;
u32 __data_loc_name;
void *lockdep_addr;
char __data[0];
};
struct trace_event_raw_contention_begin {
struct trace_entry ent;
void *lock_addr;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_contention_end {
struct trace_entry ent;
void *lock_addr;
int ret;
char __data[0];
};
struct trace_event_data_offsets_lock_acquire {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_lock {
u32 name;
const void *name_ptr_;
};
struct wake_q_head {
struct wake_q_node *first;
struct wake_q_node **lastp;
};
struct trace_event_data_offsets_contention_begin {};
struct trace_event_data_offsets_contention_end {};
struct bpf_local_storage_elem {
struct hlist_node map_node;
struct hlist_node snode;
struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage;
struct callback_head rcu;
long: 64;
struct bpf_local_storage_data sdata;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct bpf_local_storage_cache {
spinlock_t idx_lock;
u64 idx_usage_counts[16];
};
struct __old_kernel_stat {
unsigned short st_dev;
unsigned short st_ino;
unsigned short st_mode;
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev;
unsigned int st_size;
unsigned int st_atime;
unsigned int st_mtime;
unsigned int st_ctime;
};
struct stat {
__kernel_ulong_t st_dev;
__kernel_ulong_t st_ino;
__kernel_ulong_t st_nlink;
unsigned int st_mode;
unsigned int st_uid;
unsigned int st_gid;
unsigned int __pad0;
__kernel_ulong_t st_rdev;
__kernel_long_t st_size;
__kernel_long_t st_blksize;
__kernel_long_t st_blocks;
__kernel_ulong_t st_atime;
__kernel_ulong_t st_atime_nsec;
__kernel_ulong_t st_mtime;
__kernel_ulong_t st_mtime_nsec;
__kernel_ulong_t st_ctime;
__kernel_ulong_t st_ctime_nsec;
__kernel_long_t __unused[3];
};
struct statx_timestamp {
__s64 tv_sec;
__u32 tv_nsec;
__s32 __reserved;
};
struct statx {
__u32 stx_mask;
__u32 stx_blksize;
__u64 stx_attributes;
__u32 stx_nlink;
__u32 stx_uid;
__u32 stx_gid;
__u16 stx_mode;
__u16 __spare0[1];
__u64 stx_ino;
__u64 stx_size;
__u64 stx_blocks;
__u64 stx_attributes_mask;
struct statx_timestamp stx_atime;
struct statx_timestamp stx_btime;
struct statx_timestamp stx_ctime;
struct statx_timestamp stx_mtime;
__u32 stx_rdev_major;
__u32 stx_rdev_minor;
__u32 stx_dev_major;
__u32 stx_dev_minor;
__u64 stx_mnt_id;
__u32 stx_dio_mem_align;
__u32 stx_dio_offset_align;
__u64 __spare3[12];
};
struct fid {
union {
struct {
u32 ino;
u32 gen;
u32 parent_ino;
u32 parent_gen;
} i32;
struct {
u64 ino;
u32 gen;
} __attribute__((packed)) i64;
struct {
u32 block;
u16 partref;
u16 parent_partref;
u32 generation;
u32 parent_block;
u32 parent_generation;
} udf;
struct {
struct {} __empty_raw;
__u32 raw[0];
};
};
};
enum fid_type {
FILEID_ROOT = 0,
FILEID_INO32_GEN = 1,
FILEID_INO32_GEN_PARENT = 2,
FILEID_BTRFS_WITHOUT_PARENT = 77,
FILEID_BTRFS_WITH_PARENT = 78,
FILEID_BTRFS_WITH_PARENT_ROOT = 79,
FILEID_UDF_WITHOUT_PARENT = 81,
FILEID_UDF_WITH_PARENT = 82,
FILEID_NILFS_WITHOUT_PARENT = 97,
FILEID_NILFS_WITH_PARENT = 98,
FILEID_FAT_WITHOUT_PARENT = 113,
FILEID_FAT_WITH_PARENT = 114,
FILEID_INO64_GEN = 129,
FILEID_INO64_GEN_PARENT = 130,
FILEID_LUSTRE = 151,
FILEID_BCACHEFS_WITHOUT_PARENT = 177,
FILEID_BCACHEFS_WITH_PARENT = 178,
FILEID_KERNFS = 254,
FILEID_INVALID = 255,
};
struct file_handle {
__u32 handle_bytes;
int handle_type;
unsigned char f_handle[0];
};
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
long tm_year;
int tm_wday;
int tm_yday;
};
enum btrfs_rbio_ops {
BTRFS_RBIO_WRITE = 0,
BTRFS_RBIO_READ_REBUILD = 1,
BTRFS_RBIO_PARITY_SCRUB = 2,
};
struct btrfs_plug_cb {
struct blk_plug_cb cb;
struct btrfs_fs_info *info;
struct list_head rbio_list;
};
struct btrfs_stripe_hash {
struct list_head hash_list;
spinlock_t lock;
};
struct btrfs_stripe_hash_table {
struct list_head stripe_cache;
spinlock_t cache_lock;
int cache_size;
struct btrfs_stripe_hash table[0];
};
struct sector_ptr;
struct btrfs_raid_bio {
struct btrfs_io_context *bioc;
struct list_head hash_list;
struct list_head stripe_cache;
struct work_struct work;
struct bio_list bio_list;
spinlock_t bio_list_lock;
struct list_head plug_list;
unsigned long flags;
enum btrfs_rbio_ops operation;
u16 nr_pages;
u16 nr_sectors;
u8 nr_data;
u8 real_stripes;
u8 stripe_npages;
u8 stripe_nsectors;
u8 scrubp;
int bio_list_bytes;
refcount_t refs;
atomic_t stripes_pending;
wait_queue_head_t io_wait;
unsigned long dbitmap;
unsigned long finish_pbitmap;
struct page **stripe_pages;
struct sector_ptr *bio_sectors;
struct sector_ptr *stripe_sectors;
void **finish_pointers;
unsigned long *error_bitmap;
u8 *csum_buf;
unsigned long *csum_bitmap;
};
struct sector_ptr {
struct page *page;
unsigned int pgoff: 24;
unsigned int uptodate: 8;
};
typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *);
struct raid56_bio_trace_info {
u64 devid;
u32 offset;
u8 stripe_nr;
};
struct bvec_iter_all {
struct bio_vec bv;
int idx;
unsigned int done;
};
struct lzorle_ctx {
void *lzorle_comp_mem;
};
enum elv_merge {
ELEVATOR_NO_MERGE = 0,
ELEVATOR_FRONT_MERGE = 1,
ELEVATOR_BACK_MERGE = 2,
ELEVATOR_DISCARD_MERGE = 3,
};
enum {
BLK_MQ_F_SHOULD_MERGE = 1,
BLK_MQ_F_TAG_QUEUE_SHARED = 2,
BLK_MQ_F_STACKING = 4,
BLK_MQ_F_TAG_HCTX_SHARED = 8,
BLK_MQ_F_BLOCKING = 32,
BLK_MQ_F_NO_SCHED = 64,
BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128,
BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
BLK_MQ_F_ALLOC_POLICY_BITS = 1,
BLK_MQ_S_STOPPED = 0,
BLK_MQ_S_TAG_ACTIVE = 1,
BLK_MQ_S_SCHED_RESTART = 2,
BLK_MQ_S_INACTIVE = 3,
BLK_MQ_MAX_DEPTH = 10240,
BLK_MQ_CPU_WORK_BATCH = 8,
};
enum {
BLK_MQ_NO_TAG = 4294967295,
BLK_MQ_TAG_MIN = 1,
BLK_MQ_TAG_MAX = 4294967294,
};
enum {
BLK_MQ_REQ_NOWAIT = 1,
BLK_MQ_REQ_RESERVED = 2,
BLK_MQ_REQ_PM = 4,
};
enum hctx_type {
HCTX_TYPE_DEFAULT = 0,
HCTX_TYPE_READ = 1,
HCTX_TYPE_POLL = 2,
HCTX_MAX_TYPES = 3,
};
enum prep_dispatch {
PREP_DISPATCH_OK = 0,
PREP_DISPATCH_NO_TAG = 1,
PREP_DISPATCH_NO_BUDGET = 2,
};
struct elevator_type;
struct elevator_queue {
struct elevator_type *type;
void *elevator_data;
struct kobject kobj;
struct mutex sysfs_lock;
unsigned long flags;
struct hlist_head hash[64];
};
typedef unsigned int blk_insert_t;
struct blk_mq_alloc_data;
struct elevator_mq_ops {
int (*init_sched)(struct request_queue *, struct elevator_type *);
void (*exit_sched)(struct elevator_queue *);
int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int);
void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int);
void (*depth_updated)(struct blk_mq_hw_ctx *);
bool (*allow_merge)(struct request_queue *, struct request *, struct bio *);
bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int);
int (*request_merge)(struct request_queue *, struct request **, struct bio *);
void (*request_merged)(struct request_queue *, struct request *, enum elv_merge);
void (*requests_merged)(struct request_queue *, struct request *, struct request *);
void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *);
void (*prepare_request)(struct request *);
void (*finish_request)(struct request *);
void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t);
struct request * (*dispatch_request)(struct blk_mq_hw_ctx *);
bool (*has_work)(struct blk_mq_hw_ctx *);
void (*completed_request)(struct request *, u64);
void (*requeue_request)(struct request *);
struct request * (*former_request)(struct request_queue *, struct request *);
struct request * (*next_request)(struct request_queue *, struct request *);
void (*init_icq)(struct io_cq *);
void (*exit_icq)(struct io_cq *);
};
struct elv_fs_entry;
struct elevator_type {
struct kmem_cache *icq_cache;
struct elevator_mq_ops ops;
size_t icq_size;
size_t icq_align;
struct elv_fs_entry *elevator_attrs;
const char *elevator_name;
const char *elevator_alias;
const unsigned int elevator_features;
struct module *elevator_owner;
const struct blk_mq_debugfs_attr *queue_debugfs_attrs;
const struct blk_mq_debugfs_attr *hctx_debugfs_attrs;
char icq_cache_name[22];
struct list_head list;
};
struct blk_mq_ctxs {
struct kobject kobj;
struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx;
};
struct blk_mq_alloc_data {
struct request_queue *q;
blk_mq_req_flags_t flags;
unsigned int shallow_depth;
blk_opf_t cmd_flags;
req_flags_t rq_flags;
unsigned int nr_tags;
struct request **cached_rq;
struct blk_mq_ctx *ctx;
struct blk_mq_hw_ctx *hctx;
};
struct elv_fs_entry {
struct attribute attr;
ssize_t (*show)(struct elevator_queue *, char *);
ssize_t (*store)(struct elevator_queue *, const char *, size_t);
};
struct blk_mq_qe_pair {
struct list_head node;
struct request_queue *q;
struct elevator_type *type;
};
typedef bool busy_tag_iter_fn(struct request *, void *);
typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *);
struct flush_busy_ctx_data {
struct blk_mq_hw_ctx *hctx;
struct list_head *list;
};
struct dispatch_rq_data {
struct blk_mq_hw_ctx *hctx;
struct request *rq;
};
struct blk_expired_data {
bool has_timedout_rq;
unsigned long next;
unsigned long timeout_start;
};
struct rq_iter_data {
struct blk_mq_hw_ctx *hctx;
bool has_rq;
};
struct mq_inflight {
struct block_device *part;
unsigned int inflight[2];
};
struct blk_rq_wait {
struct completion done;
blk_status_t ret;
};
enum bus_notifier_event {
BUS_NOTIFY_ADD_DEVICE = 0,
BUS_NOTIFY_DEL_DEVICE = 1,
BUS_NOTIFY_REMOVED_DEVICE = 2,
BUS_NOTIFY_BIND_DRIVER = 3,
BUS_NOTIFY_BOUND_DRIVER = 4,
BUS_NOTIFY_UNBIND_DRIVER = 5,
BUS_NOTIFY_UNBOUND_DRIVER = 6,
BUS_NOTIFY_DRIVER_NOT_BOUND = 7,
};
struct vga_device {
struct list_head list;
struct pci_dev *pdev;
unsigned int decodes;
unsigned int owns;
unsigned int locks;
unsigned int io_lock_cnt;
unsigned int mem_lock_cnt;
unsigned int io_norm_cnt;
unsigned int mem_norm_cnt;
bool bridge_has_one_vga;
bool is_firmware_default;
unsigned int (*set_decode)(struct pci_dev *, bool);
};
struct vga_arb_user_card {
struct pci_dev *pdev;
unsigned int mem_cnt;
unsigned int io_cnt;
};
struct vga_arb_private {
struct list_head list;
struct pci_dev *target;
struct vga_arb_user_card cards[16];
spinlock_t lock;
};
struct platform_s2idle_ops {
int (*begin)();
int (*prepare)();
int (*prepare_late)();
void (*check)();
bool (*wake)();
void (*restore_early)();
void (*restore)();
void (*end)();
};
typedef int suspend_state_t;
struct platform_suspend_ops {
int (*valid)(suspend_state_t);
int (*begin)(suspend_state_t);
int (*prepare)();
int (*prepare_late)();
int (*enter)(suspend_state_t);
void (*wake)();
void (*finish)();
bool (*suspend_again)();
void (*end)();
void (*recover)();
};
struct platform_hibernation_ops {
int (*begin)(pm_message_t);
void (*end)();
int (*pre_snapshot)();
void (*finish)();
int (*prepare)();
int (*enter)();
void (*leave)();
int (*pre_restore)();
void (*restore_cleanup)();
void (*recover)();
};
struct acpi_table_facs {
char signature[4];
u32 length;
u32 hardware_signature;
u32 firmware_waking_vector;
u32 global_lock;
u32 flags;
u64 xfirmware_waking_vector;
u8 version;
u8 reserved[3];
u32 ospm_flags;
u8 reserved1[24];
};
enum sys_off_mode {
SYS_OFF_MODE_POWER_OFF_PREPARE = 0,
SYS_OFF_MODE_POWER_OFF = 1,
SYS_OFF_MODE_RESTART_PREPARE = 2,
SYS_OFF_MODE_RESTART = 3,
};
typedef u32 acpi_event_status;
struct sys_off_data {
int mode;
void *cb_data;
const char *cmd;
struct device *dev;
};
struct firmware_cache {
spinlock_t lock;
struct list_head head;
int state;
spinlock_t name_lock;
struct list_head fw_names;
struct delayed_work work;
struct notifier_block pm_notify;
};
struct async_domain {
struct list_head pending;
unsigned int registered: 1;
};
enum fw_status {
FW_STATUS_UNKNOWN = 0,
FW_STATUS_LOADING = 1,
FW_STATUS_DONE = 2,
FW_STATUS_ABORTED = 3,
};
enum fw_opt {
FW_OPT_UEVENT = 1,
FW_OPT_NOWAIT = 2,
FW_OPT_USERHELPER = 4,
FW_OPT_NO_WARN = 8,
FW_OPT_NOCACHE = 16,
FW_OPT_NOFALLBACK_SYSFS = 32,
FW_OPT_FALLBACK_PLATFORM = 64,
FW_OPT_PARTIAL = 128,
};
enum kernel_read_file_id {
READING_UNKNOWN = 0,
READING_FIRMWARE = 1,
READING_MODULE = 2,
READING_KEXEC_IMAGE = 3,
READING_KEXEC_INITRAMFS = 4,
READING_POLICY = 5,
READING_X509_CERTIFICATE = 6,
READING_MAX_ID = 7,
};
struct fw_state {
struct completion completion;
enum fw_status status;
};
struct fw_priv {
struct kref ref;
struct list_head list;
struct firmware_cache *fwc;
struct fw_state fw_st;
void *data;
size_t size;
size_t allocated_size;
size_t offset;
u32 opt_flags;
const char *fw_name;
};
struct firmware_work {
struct work_struct work;
struct module *module;
const char *name;
struct device *device;
void *context;
void (*cont)(const struct firmware *, void *);
u32 opt_flags;
};
struct fw_cache_entry {
struct list_head list;
const char *name;
};
struct fw_name_devm {
unsigned long magic;
const char *name;
};
typedef void (*async_func_t)(void *, async_cookie_t);
struct phy_setting {
u32 speed;
u8 duplex;
u8 bit;
};
struct pnvm_sku_package {
u8 rev;
u32 total_size;
u8 n_skus;
u32 reserved[2];
u8 data[0];
} __attribute__((packed));
struct iwl_sku_id {
__le32 data[3];
};
struct iwl_pnvm_section {
__le32 offset;
const u8 data[0];
};
struct iwl_notification_wait {
struct list_head list;
bool (*fn)(struct iwl_notif_wait_data *, struct iwl_rx_packet *, void *);
void *fn_data;
u16 cmds[5];
u8 n_cmds;
bool triggered;
bool aborted;
};
struct iwl_pnvm_init_complete_ntfy {
__le32 status;
};
struct xhci_file_map {
const char *name;
int (*show)(struct seq_file *, void *);
};
struct debugfs_reg32 {
char *name;
unsigned long offset;
};
struct debugfs_regset32 {
const struct debugfs_reg32 *regs;
int nregs;
void *base;
struct device *dev;
};
struct xhci_regset {
char name[32];
struct debugfs_regset32 regset;
size_t nregs;
struct list_head list;
};
struct xhci_ep_priv;
struct xhci_slot_priv {
char name[32];
struct dentry *root;
struct xhci_ep_priv *eps[31];
struct xhci_virt_device *dev;
};
struct xhci_ep_priv {
char name[32];
struct dentry *root;
struct xhci_stream_info *stream_info;
struct xhci_ring *show_ring;
unsigned int stream_id;
};
struct rc_dev;
struct ir_raw_event;
struct ir_raw_handler {
struct list_head list;
u64 protocols;
int (*decode)(struct rc_dev *, struct ir_raw_event);
int (*encode)(enum rc_proto, u32, struct ir_raw_event *, unsigned int);
u32 carrier;
u32 min_timeout;
int (*raw_register)(struct rc_dev *);
int (*raw_unregister)(struct rc_dev *);
};
struct ir_raw_event {
union {
u32 duration;
u32 carrier;
};
u8 duty_cycle;
unsigned int pulse: 1;
unsigned int overflow: 1;
unsigned int timeout: 1;
unsigned int carrier_report: 1;
};
enum rc_driver_type {
RC_DRIVER_SCANCODE = 0,
RC_DRIVER_IR_RAW = 1,
RC_DRIVER_IR_RAW_TX = 2,
};
struct rc_scancode_filter {
u32 data;
u32 mask;
};
struct ir_raw_event_ctrl;
struct rc_dev {
struct device dev;
bool managed_alloc;
const struct attribute_group *sysfs_groups[5];
const char *device_name;
const char *input_phys;
struct input_id input_id;
const char *driver_name;
const char *map_name;
struct rc_map rc_map;
struct mutex lock;
unsigned int minor;
struct ir_raw_event_ctrl *raw;
struct input_dev *input_dev;
enum rc_driver_type driver_type;
bool idle;
bool encode_wakeup;
u64 allowed_protocols;
u64 enabled_protocols;
u64 allowed_wakeup_protocols;
enum rc_proto wakeup_protocol;
struct rc_scancode_filter scancode_filter;
struct rc_scancode_filter scancode_wakeup_filter;
u32 scancode_mask;
u32 users;
void *priv;
spinlock_t keylock;
bool keypressed;
unsigned long keyup_jiffies;
struct timer_list timer_keyup;
struct timer_list timer_repeat;
u32 last_keycode;
enum rc_proto last_protocol;
u64 last_scancode;
u8 last_toggle;
u32 timeout;
u32 min_timeout;
u32 max_timeout;
u32 rx_resolution;
u32 tx_resolution;
bool registered;
int (*change_protocol)(struct rc_dev *, u64 *);
int (*open)(struct rc_dev *);
void (*close)(struct rc_dev *);
int (*s_tx_mask)(struct rc_dev *, u32);
int (*s_tx_carrier)(struct rc_dev *, u32);
int (*s_tx_duty_cycle)(struct rc_dev *, u32);
int (*s_rx_carrier_range)(struct rc_dev *, u32, u32);
int (*tx_ir)(struct rc_dev *, unsigned int *, unsigned int);
void (*s_idle)(struct rc_dev *, bool);
int (*s_wideband_receiver)(struct rc_dev *, int);
int (*s_carrier_report)(struct rc_dev *, int);
int (*s_filter)(struct rc_dev *, struct rc_scancode_filter *);
int (*s_wakeup_filter)(struct rc_dev *, struct rc_scancode_filter *);
int (*s_timeout)(struct rc_dev *, unsigned int);
};
struct nec_dec {
int state;
unsigned int count;
u32 bits;
bool is_nec_x;
bool necx_repeat;
};
struct rc5_dec {
int state;
u32 bits;
unsigned int count;
bool is_rc5x;
};
struct rc6_dec {
int state;
u8 header;
u32 body;
bool toggle;
unsigned int count;
unsigned int wanted_bits;
};
struct sony_dec {
int state;
u32 bits;
unsigned int count;
};
struct jvc_dec {
int state;
u16 bits;
u16 old_bits;
unsigned int count;
bool first;
bool toggle;
};
struct sanyo_dec {
int state;
unsigned int count;
u64 bits;
};
struct sharp_dec {
int state;
unsigned int count;
u32 bits;
unsigned int pulse_len;
};
struct mce_kbd_dec {
spinlock_t keylock;
struct timer_list rx_timeout;
int state;
u8 header;
u32 body;
unsigned int count;
unsigned int wanted_bits;
};
struct xmp_dec {
int state;
unsigned int count;
u32 durations[16];
};
struct ir_raw_event_ctrl {
struct list_head list;
struct task_struct *thread;
struct {
union {
struct __kfifo kfifo;
struct ir_raw_event *type;
const struct ir_raw_event *const_type;
char (*rectype)[0];
struct ir_raw_event *ptr;
const struct ir_raw_event *ptr_const;
};
struct ir_raw_event buf[512];
} kfifo;
ktime_t last_event;
struct rc_dev *dev;
spinlock_t edge_spinlock;
struct timer_list edge_handle;
struct ir_raw_event prev_ev;
struct ir_raw_event this_ev;
struct nec_dec nec;
struct rc5_dec rc5;
struct rc6_dec rc6;
struct sony_dec sony;
struct jvc_dec jvc;
struct sanyo_dec sanyo;
struct sharp_dec sharp;
struct mce_kbd_dec mce_kbd;
struct xmp_dec xmp;
};
struct ir_raw_timings_manchester {
unsigned int leader_pulse;
unsigned int leader_space;
unsigned int clock;
unsigned int invert: 1;
unsigned int trailer_space;
};
enum mce_kbd_state {
STATE_INACTIVE = 0,
STATE_HEADER_BIT_START = 1,
STATE_HEADER_BIT_END = 2,
STATE_BODY_BIT_START = 3,
STATE_BODY_BIT_END = 4,
STATE_FINISHED = 5,
};
enum mce_kbd_mode {
MCIR2_MODE_KEYBOARD = 0,
MCIR2_MODE_MOUSE = 1,
MCIR2_MODE_UNKNOWN = 2,
};
struct lirc_scancode {
__u64 timestamp;
__u16 flags;
__u16 rc_proto;
__u32 keycode;
__u64 scancode;
};
struct tso_t {
int next_frag_idx;
int size;
void *data;
u16 ip_id;
u8 tlen;
bool ipv6;
u32 tcp_seq;
};
enum hwtstamp_tx_types {
HWTSTAMP_TX_OFF = 0,
HWTSTAMP_TX_ON = 1,
HWTSTAMP_TX_ONESTEP_SYNC = 2,
HWTSTAMP_TX_ONESTEP_P2P = 3,
__HWTSTAMP_TX_CNT = 4,
};
enum hwtstamp_rx_filters {
HWTSTAMP_FILTER_NONE = 0,
HWTSTAMP_FILTER_ALL = 1,
HWTSTAMP_FILTER_SOME = 2,
HWTSTAMP_FILTER_PTP_V1_L4_EVENT = 3,
HWTSTAMP_FILTER_PTP_V1_L4_SYNC = 4,
HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ = 5,
HWTSTAMP_FILTER_PTP_V2_L4_EVENT = 6,
HWTSTAMP_FILTER_PTP_V2_L4_SYNC = 7,
HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ = 8,
HWTSTAMP_FILTER_PTP_V2_L2_EVENT = 9,
HWTSTAMP_FILTER_PTP_V2_L2_SYNC = 10,
HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ = 11,
HWTSTAMP_FILTER_PTP_V2_EVENT = 12,
HWTSTAMP_FILTER_PTP_V2_SYNC = 13,
HWTSTAMP_FILTER_PTP_V2_DELAY_REQ = 14,
HWTSTAMP_FILTER_NTP_ALL = 15,
__HWTSTAMP_FILTER_CNT = 16,
};
enum {
ETHTOOL_A_TSINFO_UNSPEC = 0,
ETHTOOL_A_TSINFO_HEADER = 1,
ETHTOOL_A_TSINFO_TIMESTAMPING = 2,
ETHTOOL_A_TSINFO_TX_TYPES = 3,
ETHTOOL_A_TSINFO_RX_FILTERS = 4,
ETHTOOL_A_TSINFO_PHC_INDEX = 5,
__ETHTOOL_A_TSINFO_CNT = 6,
ETHTOOL_A_TSINFO_MAX = 5,
};
struct tsinfo_reply_data {
struct ethnl_reply_data base;
struct ethtool_ts_info ts_info;
};
enum nft_dynset_ops {
NFT_DYNSET_OP_ADD = 0,
NFT_DYNSET_OP_UPDATE = 1,
NFT_DYNSET_OP_DELETE = 2,
};
enum nft_dynset_attributes {
NFTA_DYNSET_UNSPEC = 0,
NFTA_DYNSET_SET_NAME = 1,
NFTA_DYNSET_SET_ID = 2,
NFTA_DYNSET_OP = 3,
NFTA_DYNSET_SREG_KEY = 4,
NFTA_DYNSET_SREG_DATA = 5,
NFTA_DYNSET_TIMEOUT = 6,
NFTA_DYNSET_EXPR = 7,
NFTA_DYNSET_PAD = 8,
NFTA_DYNSET_FLAGS = 9,
NFTA_DYNSET_EXPRESSIONS = 10,
__NFTA_DYNSET_MAX = 11,
};
enum nft_dynset_flags {
NFT_DYNSET_F_INV = 1,
NFT_DYNSET_F_EXPR = 2,
};
enum nft_list_attributes {
NFTA_LIST_UNSPEC = 0,
NFTA_LIST_ELEM = 1,
__NFTA_LIST_MAX = 2,
};
struct nft_set_ext_tmpl {
u16 len;
u8 offset[9];
u8 ext_len[9];
};
struct nft_set_binding {
struct list_head list;
const struct nft_chain *chain;
u32 flags;
};
struct nft_dynset {
struct nft_set *set;
struct nft_set_ext_tmpl tmpl;
enum nft_dynset_ops op: 8;
u8 sreg_key;
u8 sreg_data;
bool invert;
bool expr;
u8 num_exprs;
u64 timeout;
struct nft_expr *expr_array[2];
struct nft_set_binding binding;
};
struct skb_gso_cb {
union {
int mac_offset;
int data_offset;
};
int encap_level;
__wsum csum;
__u16 csum_start;
};
struct gre_base_hdr {
__be16 flags;
__be16 protocol;
};
struct napi_gro_cb {
union {
struct {
void *frag0;
unsigned int frag0_len;
};
struct {
struct sk_buff *last;
unsigned long age;
};
};
int data_offset;
u16 flush;
u16 flush_id;
u16 count;
u16 proto;
union {
struct {
u16 gro_remcsum_start;
u8 same_flow: 1;
u8 encap_mark: 1;
u8 csum_valid: 1;
u8 csum_cnt: 3;
u8 free: 2;
u8 is_ipv6: 1;
u8 is_fou: 1;
u8 is_atomic: 1;
u8 recursion_counter: 4;
u8 is_flist: 1;
};
struct {
u16 gro_remcsum_start;
u8 same_flow: 1;
u8 encap_mark: 1;
u8 csum_valid: 1;
u8 csum_cnt: 3;
u8 free: 2;
u8 is_ipv6: 1;
u8 is_fou: 1;
u8 is_atomic: 1;
u8 recursion_counter: 4;
u8 is_flist: 1;
} zeroed;
};
__wsum csum;
};
typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *);
struct packet_offload {
__be16 type;
u16 priority;
struct offload_callbacks callbacks;
struct list_head list;
};
struct sock_ee_data_rfc4884 {
__u16 len;
__u8 flags;
__u8 reserved;
};
struct sock_extended_err {
__u32 ee_errno;
__u8 ee_origin;
__u8 ee_type;
__u8 ee_code;
__u8 ee_pad;
__u32 ee_info;
union {
__u32 ee_data;
struct sock_ee_data_rfc4884 ee_rfc4884;
};
};
struct sock_exterr_skb {
union {
struct inet_skb_parm h4;
struct inet6_skb_parm h6;
} header;
struct sock_extended_err ee;
u16 addr_offset;
__be16 port;
u8 opt_stats: 1;
u8 unused: 7;
};
struct in_pktinfo {
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
struct cmsghdr {
__kernel_size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
struct drop_reason_list {
const char * const *reasons;
size_t n_reasons;
};
struct mesh_rmc {
struct hlist_head bucket[256];
u32 idx_mask;
};
enum mac80211_scan_flags {
SCAN_SW_SCANNING = 0,
SCAN_HW_SCANNING = 1,
SCAN_ONCHANNEL_SCANNING = 2,
SCAN_COMPLETED = 3,
SCAN_ABORTED = 4,
SCAN_HW_CANCELLED = 5,
SCAN_BEACON_WAIT = 6,
SCAN_BEACON_DONE = 7,
};
enum ieee80211_max_queues {
IEEE80211_MAX_QUEUES = 16,
IEEE80211_MAX_QUEUE_MAP = 65535,
};
enum ieee80211_radiotap_mcs_have {
IEEE80211_RADIOTAP_MCS_HAVE_BW = 1,
IEEE80211_RADIOTAP_MCS_HAVE_MCS = 2,
IEEE80211_RADIOTAP_MCS_HAVE_GI = 4,
IEEE80211_RADIOTAP_MCS_HAVE_FMT = 8,
IEEE80211_RADIOTAP_MCS_HAVE_FEC = 16,
IEEE80211_RADIOTAP_MCS_HAVE_STBC = 32,
};
enum ieee80211_radiotap_vht_known {
IEEE80211_RADIOTAP_VHT_KNOWN_STBC = 1,
IEEE80211_RADIOTAP_VHT_KNOWN_TXOP_PS_NA = 2,
IEEE80211_RADIOTAP_VHT_KNOWN_GI = 4,
IEEE80211_RADIOTAP_VHT_KNOWN_SGI_NSYM_DIS = 8,
IEEE80211_RADIOTAP_VHT_KNOWN_LDPC_EXTRA_OFDM_SYM = 16,
IEEE80211_RADIOTAP_VHT_KNOWN_BEAMFORMED = 32,
IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH = 64,
IEEE80211_RADIOTAP_VHT_KNOWN_GROUP_ID = 128,
IEEE80211_RADIOTAP_VHT_KNOWN_PARTIAL_AID = 256,
};
enum rate_control_capabilities {
RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1,
RATE_CTRL_CAPA_AMPDU_TRIGGER = 2,
};
enum skb_drop_reason_subsys {
SKB_DROP_REASON_SUBSYS_CORE = 0,
SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1,
SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2,
SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3,
SKB_DROP_REASON_SUBSYS_NUM = 4,
};
enum {
IEEE80211_RX_MSG = 1,
IEEE80211_TX_STATUS_MSG = 2,
};
enum cpio_fields {
C_MAGIC = 0,
C_INO = 1,
C_MODE = 2,
C_UID = 3,
C_GID = 4,
C_NLINK = 5,
C_MTIME = 6,
C_FILESIZE = 7,
C_MAJ = 8,
C_MIN = 9,
C_RMAJ = 10,
C_RMIN = 11,
C_NAMESIZE = 12,
C_CHKSUM = 13,
C_NFIELDS = 14,
};
enum {
RADIX_TREE_ITER_TAG_MASK = 15,
RADIX_TREE_ITER_TAGGED = 16,
RADIX_TREE_ITER_CONTIG = 32,
};
struct radix_tree_iter {
unsigned long index;
unsigned long next_index;
unsigned long tags;
struct xa_node *node;
};
struct ida_bitmap {
unsigned long bitmap[16];
};
struct uevent_sock {
struct list_head list;
struct sock *sk;
};
struct netlink_kernel_cfg {
unsigned int groups;
unsigned int flags;
void (*input)(struct sk_buff *);
struct mutex *cb_mutex;
int (*bind)(struct net *, int);
void (*unbind)(struct net *, int);
void (*release)(struct sock *, unsigned long *);
};
struct cpu_perf_ibs;
struct perf_ibs {
struct pmu pmu;
unsigned int msr;
u64 config_mask;
u64 cnt_mask;
u64 enable_mask;
u64 valid_mask;
u64 max_period;
unsigned long offset_mask[1];
int offset_max;
unsigned int fetch_count_reset_broken: 1;
unsigned int fetch_ignore_if_zero_rip: 1;
struct cpu_perf_ibs __attribute__((btf_type_tag("percpu"))) *pcpu;
u64 (*get_count)(u64);
};
struct cpu_perf_ibs {
struct perf_event *event;
unsigned long state[1];
};
enum perf_hw_id {
PERF_COUNT_HW_CPU_CYCLES = 0,
PERF_COUNT_HW_INSTRUCTIONS = 1,
PERF_COUNT_HW_CACHE_REFERENCES = 2,
PERF_COUNT_HW_CACHE_MISSES = 3,
PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
PERF_COUNT_HW_BRANCH_MISSES = 5,
PERF_COUNT_HW_BUS_CYCLES = 6,
PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7,
PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8,
PERF_COUNT_HW_REF_CPU_CYCLES = 9,
PERF_COUNT_HW_MAX = 10,
};
enum ibs_states {
IBS_ENABLED = 0,
IBS_STARTED = 1,
IBS_STOPPING = 2,
IBS_STOPPED = 3,
IBS_MAX_STATES = 4,
};
union ibs_fetch_ctl {
__u64 val;
struct {
__u64 fetch_maxcnt: 16;
__u64 fetch_cnt: 16;
__u64 fetch_lat: 16;
__u64 fetch_en: 1;
__u64 fetch_val: 1;
__u64 fetch_comp: 1;
__u64 ic_miss: 1;
__u64 phy_addr_valid: 1;
__u64 l1tlb_pgsz: 2;
__u64 l1tlb_miss: 1;
__u64 l2tlb_miss: 1;
__u64 rand_en: 1;
__u64 fetch_l2_miss: 1;
__u64 l3_miss_only: 1;
__u64 fetch_oc_miss: 1;
__u64 fetch_l3_miss: 1;
__u64 reserved: 2;
};
};
union ibs_op_ctl {
__u64 val;
struct {
__u64 opmaxcnt: 16;
__u64 l3_miss_only: 1;
__u64 op_en: 1;
__u64 op_val: 1;
__u64 cnt_ctl: 1;
__u64 opmaxcnt_ext: 7;
__u64 reserved0: 5;
__u64 opcurcnt: 27;
__u64 reserved1: 5;
};
};
struct perf_ibs_data {
u32 size;
union {
u32 data[0];
u32 caps;
};
u64 regs[8];
};
union ibs_op_data3 {
__u64 val;
struct {
__u64 ld_op: 1;
__u64 st_op: 1;
__u64 dc_l1tlb_miss: 1;
__u64 dc_l2tlb_miss: 1;
__u64 dc_l1tlb_hit_2m: 1;
__u64 dc_l1tlb_hit_1g: 1;
__u64 dc_l2tlb_hit_2m: 1;
__u64 dc_miss: 1;
__u64 dc_mis_acc: 1;
__u64 reserved: 4;
__u64 dc_wc_mem_acc: 1;
__u64 dc_uc_mem_acc: 1;
__u64 dc_locked_op: 1;
__u64 dc_miss_no_mab_alloc: 1;
__u64 dc_lin_addr_valid: 1;
__u64 dc_phy_addr_valid: 1;
__u64 dc_l2_tlb_hit_1g: 1;
__u64 l2_miss: 1;
__u64 sw_pf: 1;
__u64 op_mem_width: 4;
__u64 op_dc_miss_open_mem_reqs: 6;
__u64 dc_miss_lat: 16;
__u64 tlb_refill_lat: 16;
};
};
union ibs_op_data2 {
__u64 val;
struct {
__u64 data_src_lo: 3;
__u64 reserved0: 1;
__u64 rmt_node: 1;
__u64 cache_hit_st: 1;
__u64 data_src_hi: 2;
__u64 reserved1: 56;
};
};
union ibs_op_data {
__u64 val;
struct {
__u64 comp_to_ret_ctr: 16;
__u64 tag_to_ret_ctr: 16;
__u64 reserved1: 2;
__u64 op_return: 1;
__u64 op_brn_taken: 1;
__u64 op_brn_misp: 1;
__u64 op_brn_ret: 1;
__u64 op_rip_invalid: 1;
__u64 op_brn_fuse: 1;
__u64 op_microcode: 1;
__u64 reserved2: 23;
};
};
enum cfi_mode {
CFI_DEFAULT = 0,
CFI_OFF = 1,
CFI_KCFI = 2,
CFI_FINEIBT = 3,
};
struct text_poke_loc {
s32 rel_addr;
s32 disp;
u8 len;
u8 opcode;
const u8 text[5];
u8 old;
};
struct bp_patching_desc {
struct text_poke_loc *vec;
int nr_entries;
atomic_t refs;
};
struct smp_alt_module {
struct module *mod;
char *name;
const s32 *locks;
const s32 *locks_end;
u8 *text;
u8 *text_end;
struct list_head next;
};
union text_poke_insn {
u8 text[5];
struct {
u8 opcode;
s32 disp;
} __attribute__((packed));
};
struct alt_instr {
s32 instr_offset;
s32 repl_offset;
union {
struct {
u32 cpuid: 16;
u32 flags: 16;
};
u32 ft_flags;
};
u8 instrlen;
u8 replacementlen;
} __attribute__((packed));
typedef void text_poke_f(void *, const void *, size_t);
typedef struct {
struct mm_struct *mm;
} temp_mm_state_t;
struct tlb_context {
u64 ctx_id;
u64 tlb_gen;
};
struct tlb_state {
struct mm_struct *loaded_mm;
union {
struct mm_struct *last_user_mm;
unsigned long last_user_mm_spec;
};
u16 loaded_mm_asid;
u16 next_asid;
bool invalidate_other;
unsigned short user_pcid_flush_mask;
unsigned long cr4;
struct tlb_context ctxs[6];
};
enum {
REGION_INTERSECTS = 0,
REGION_DISJOINT = 1,
REGION_MIXED = 2,
};
enum l1tf_mitigations {
L1TF_MITIGATION_OFF = 0,
L1TF_MITIGATION_FLUSH_NOWARN = 1,
L1TF_MITIGATION_FLUSH = 2,
L1TF_MITIGATION_FLUSH_NOSMT = 3,
L1TF_MITIGATION_FULL = 4,
L1TF_MITIGATION_FULL_FORCE = 5,
};
struct map_range {
unsigned long start;
unsigned long end;
unsigned int page_size_mask;
};
struct trace_probe_log {
const char *subsystem;
const char **argv;
int argc;
int index;
};
typedef int (*print_type_func_t)(struct trace_seq *, void *, void *);
struct fetch_type {
const char *name;
size_t size;
bool is_signed;
bool is_string;
print_type_func_t print;
const char *fmt;
const char *fmttype;
};
enum {
TP_ERR_FILE_NOT_FOUND = 0,
TP_ERR_NO_REGULAR_FILE = 1,
TP_ERR_BAD_REFCNT = 2,
TP_ERR_REFCNT_OPEN_BRACE = 3,
TP_ERR_BAD_REFCNT_SUFFIX = 4,
TP_ERR_BAD_UPROBE_OFFS = 5,
TP_ERR_BAD_MAXACT_TYPE = 6,
TP_ERR_BAD_MAXACT = 7,
TP_ERR_MAXACT_TOO_BIG = 8,
TP_ERR_BAD_PROBE_ADDR = 9,
TP_ERR_NON_UNIQ_SYMBOL = 10,
TP_ERR_BAD_RETPROBE = 11,
TP_ERR_NO_TRACEPOINT = 12,
TP_ERR_BAD_ADDR_SUFFIX = 13,
TP_ERR_NO_GROUP_NAME = 14,
TP_ERR_GROUP_TOO_LONG = 15,
TP_ERR_BAD_GROUP_NAME = 16,
TP_ERR_NO_EVENT_NAME = 17,
TP_ERR_EVENT_TOO_LONG = 18,
TP_ERR_BAD_EVENT_NAME = 19,
TP_ERR_EVENT_EXIST = 20,
TP_ERR_RETVAL_ON_PROBE = 21,
TP_ERR_NO_RETVAL = 22,
TP_ERR_BAD_STACK_NUM = 23,
TP_ERR_BAD_ARG_NUM = 24,
TP_ERR_BAD_VAR = 25,
TP_ERR_BAD_REG_NAME = 26,
TP_ERR_BAD_MEM_ADDR = 27,
TP_ERR_BAD_IMM = 28,
TP_ERR_IMMSTR_NO_CLOSE = 29,
TP_ERR_FILE_ON_KPROBE = 30,
TP_ERR_BAD_FILE_OFFS = 31,
TP_ERR_SYM_ON_UPROBE = 32,
TP_ERR_TOO_MANY_OPS = 33,
TP_ERR_DEREF_NEED_BRACE = 34,
TP_ERR_BAD_DEREF_OFFS = 35,
TP_ERR_DEREF_OPEN_BRACE = 36,
TP_ERR_COMM_CANT_DEREF = 37,
TP_ERR_BAD_FETCH_ARG = 38,
TP_ERR_ARRAY_NO_CLOSE = 39,
TP_ERR_BAD_ARRAY_SUFFIX = 40,
TP_ERR_BAD_ARRAY_NUM = 41,
TP_ERR_ARRAY_TOO_BIG = 42,
TP_ERR_BAD_TYPE = 43,
TP_ERR_BAD_STRING = 44,
TP_ERR_BAD_SYMSTRING = 45,
TP_ERR_BAD_BITFIELD = 46,
TP_ERR_ARG_NAME_TOO_LONG = 47,
TP_ERR_NO_ARG_NAME = 48,
TP_ERR_BAD_ARG_NAME = 49,
TP_ERR_USED_ARG_NAME = 50,
TP_ERR_ARG_TOO_LONG = 51,
TP_ERR_NO_ARG_BODY = 52,
TP_ERR_BAD_INSN_BNDRY = 53,
TP_ERR_FAIL_REG_PROBE = 54,
TP_ERR_DIFF_PROBE_TYPE = 55,
TP_ERR_DIFF_ARG_TYPE = 56,
TP_ERR_SAME_PROBE = 57,
TP_ERR_NO_EVENT_INFO = 58,
TP_ERR_BAD_ATTACH_EVENT = 59,
TP_ERR_BAD_ATTACH_ARG = 60,
TP_ERR_NO_EP_FILTER = 61,
TP_ERR_NOSUP_BTFARG = 62,
TP_ERR_NO_BTFARG = 63,
TP_ERR_NO_BTF_ENTRY = 64,
TP_ERR_BAD_VAR_ARGS = 65,
TP_ERR_NOFENTRY_ARGS = 66,
TP_ERR_DOUBLE_ARGS = 67,
TP_ERR_ARGS_2LONG = 68,
TP_ERR_ARGIDX_2BIG = 69,
TP_ERR_NO_PTR_STRCT = 70,
TP_ERR_NOSUP_DAT_ARG = 71,
TP_ERR_BAD_HYPHEN = 72,
TP_ERR_NO_BTF_FIELD = 73,
TP_ERR_BAD_BTF_TID = 74,
TP_ERR_BAD_TYPE4STR = 75,
TP_ERR_NEED_STRING_TYPE = 76,
};
enum fetch_op {
FETCH_OP_NOP = 0,
FETCH_OP_REG = 1,
FETCH_OP_STACK = 2,
FETCH_OP_STACKP = 3,
FETCH_OP_RETVAL = 4,
FETCH_OP_IMM = 5,
FETCH_OP_COMM = 6,
FETCH_OP_ARG = 7,
FETCH_OP_FOFFS = 8,
FETCH_OP_DATA = 9,
FETCH_OP_EDATA = 10,
FETCH_OP_DEREF = 11,
FETCH_OP_UDEREF = 12,
FETCH_OP_ST_RAW = 13,
FETCH_OP_ST_MEM = 14,
FETCH_OP_ST_UMEM = 15,
FETCH_OP_ST_STRING = 16,
FETCH_OP_ST_USTRING = 17,
FETCH_OP_ST_SYMSTR = 18,
FETCH_OP_ST_EDATA = 19,
FETCH_OP_MOD_BF = 20,
FETCH_OP_LP_ARRAY = 21,
FETCH_OP_TP_ARG = 22,
FETCH_OP_END = 23,
FETCH_NOP_SYMBOL = 24,
};
enum probe_print_type {
PROBE_PRINT_NORMAL = 0,
PROBE_PRINT_RETURN = 1,
PROBE_PRINT_EVENT = 2,
};
enum {
TRACE_EVENT_FL_FILTERED = 1,
TRACE_EVENT_FL_CAP_ANY = 2,
TRACE_EVENT_FL_NO_SET_FILTER = 4,
TRACE_EVENT_FL_IGNORE_ENABLE = 8,
TRACE_EVENT_FL_TRACEPOINT = 16,
TRACE_EVENT_FL_DYNAMIC = 32,
TRACE_EVENT_FL_KPROBE = 64,
TRACE_EVENT_FL_UPROBE = 128,
TRACE_EVENT_FL_EPROBE = 256,
TRACE_EVENT_FL_FPROBE = 512,
TRACE_EVENT_FL_CUSTOM = 1024,
};
struct event_file_link {
struct trace_event_file *file;
struct list_head list;
};
struct btf_array {
__u32 type;
__u32 index_type;
__u32 nelems;
};
struct fetch_insn;
struct probe_arg {
struct fetch_insn *code;
bool dynamic;
unsigned int offset;
unsigned int count;
const char *name;
const char *comm;
char *fmt;
const struct fetch_type *type;
};
struct fetch_insn {
enum fetch_op op;
union {
unsigned int param;
struct {
unsigned int size;
int offset;
};
struct {
unsigned char basesize;
unsigned char lshift;
unsigned char rshift;
};
unsigned long immediate;
void *data;
};
};
struct btf_param;
struct trace_probe;
struct traceprobe_parse_context {
struct trace_event_call *event;
const char *funcname;
const struct btf_type *proto;
const struct btf_param *params;
s32 nr_params;
struct btf *btf;
const struct btf_type *last_type;
u32 last_bitoffs;
u32 last_bitsize;
struct trace_probe *tp;
unsigned int flags;
int offset;
};
struct btf_param {
__u32 name_off;
__u32 type;
};
struct trace_probe_event;
struct probe_entry_arg;
struct trace_probe {
struct list_head list;
struct trace_probe_event *event;
ssize_t size;
unsigned int nr_args;
struct probe_entry_arg *entry_arg;
struct probe_arg args[0];
};
struct trace_uprobe_filter {
rwlock_t rwlock;
int nr_systemwide;
struct list_head perf_events;
};
struct trace_probe_event {
unsigned int flags;
struct trace_event_class class;
struct trace_event_call call;
struct list_head files;
struct list_head probes;
struct trace_uprobe_filter filter[0];
};
struct probe_entry_arg {
struct fetch_insn *code;
unsigned int size;
};
struct btf_member {
__u32 name_off;
__u32 type;
__u32 offset;
};
struct btf_kfunc_hook_filter {
btf_kfunc_filter_t filters[16];
u32 nr_filters;
};
struct btf_kfunc_set_tab {
struct btf_id_set8 *sets[13];
struct btf_kfunc_hook_filter hook_filters[13];
};
struct btf_id_dtor_kfunc_tab {
u32 cnt;
struct btf_id_dtor_kfunc dtors[0];
};
struct btf_struct_metas {
u32 cnt;
struct btf_struct_meta types[0];
};
struct bpf_struct_ops;
struct bpf_struct_ops_arg_info;
struct bpf_struct_ops_desc {
struct bpf_struct_ops *st_ops;
const struct btf_type *type;
const struct btf_type *value_type;
u32 type_id;
u32 value_id;
struct bpf_struct_ops_arg_info *arg_info;
};
struct btf_struct_ops_tab {
u32 cnt;
u32 capacity;
struct bpf_struct_ops_desc ops[0];
};
struct bpf_struct_ops {
const struct bpf_verifier_ops *verifier_ops;
int (*init)(struct btf *);
int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *);
int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *);
int (*reg)(void *);
void (*unreg)(void *);
int (*update)(void *, void *);
int (*validate)(void *);
void *cfi_stubs;
struct module *owner;
const char *name;
struct btf_func_model func_models[64];
};
struct bpf_struct_ops_arg_info {
struct bpf_ctx_arg_aux *info;
u32 cnt;
};
struct sk_psock_progs {
struct bpf_prog *msg_parser;
struct bpf_prog *stream_parser;
struct bpf_prog *stream_verdict;
struct bpf_prog *skb_verdict;
struct bpf_link *msg_parser_link;
struct bpf_link *stream_parser_link;
struct bpf_link *stream_verdict_link;
struct bpf_link *skb_verdict_link;
};
struct sk_psock_work_state {
u32 len;
u32 off;
};
struct sk_msg;
struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
bool redir_ingress;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
unsigned long state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_destroy)(struct sock *);
void (*saved_close)(struct sock *, long);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct delayed_work work;
struct sock *sk_pair;
struct rcu_work rwork;
};
struct sk_msg_sg {
u32 start;
u32 curr;
u32 end;
u32 size;
u32 copybreak;
unsigned long copy[1];
struct scatterlist data[19];
};
struct sk_msg {
struct sk_msg_sg sg;
void *data;
void *data_end;
u32 apply_bytes;
u32 cork_bytes;
u32 flags;
struct sk_buff *skb;
struct sock *sk_redir;
struct sock *sk;
struct list_head list;
};
struct bpf_sock_addr {
__u32 user_family;
__u32 user_ip4;
__u32 user_ip6[4];
__u32 user_port;
__u32 family;
__u32 type;
__u32 protocol;
__u32 msg_src_ip4;
__u32 msg_src_ip6[4];
union {
struct bpf_sock *sk;
};
};
struct bpf_sock_addr_kern {
struct sock *sk;
struct sockaddr *uaddr;
u64 tmp_reg;
void *t_ctx;
u32 uaddrlen;
};
struct bpf_sock_ops {
__u32 op;
union {
__u32 args[4];
__u32 reply;
__u32 replylong[4];
};
__u32 family;
__u32 remote_ip4;
__u32 local_ip4;
__u32 remote_ip6[4];
__u32 local_ip6[4];
__u32 remote_port;
__u32 local_port;
__u32 is_fullsock;
__u32 snd_cwnd;
__u32 srtt_us;
__u32 bpf_sock_ops_cb_flags;
__u32 state;
__u32 rtt_min;
__u32 snd_ssthresh;
__u32 rcv_nxt;
__u32 snd_nxt;
__u32 snd_una;
__u32 mss_cache;
__u32 ecn_flags;
__u32 rate_delivered;
__u32 rate_interval_us;
__u32 packets_out;
__u32 retrans_out;
__u32 total_retrans;
__u32 segs_in;
__u32 data_segs_in;
__u32 segs_out;
__u32 data_segs_out;
__u32 lost_out;
__u32 sacked_out;
__u32 sk_txhash;
__u64 bytes_received;
__u64 bytes_acked;
union {
struct bpf_sock *sk;
};
union {
void *skb_data;
};
union {
void *skb_data_end;
};
__u32 skb_len;
__u32 skb_tcp_flags;
__u64 skb_hwtstamp;
};
struct sk_msg_md {
union {
void *data;
};
union {
void *data_end;
};
__u32 family;
__u32 remote_ip4;
__u32 local_ip4;
__u32 remote_ip6[4];
__u32 local_ip6[4];
__u32 remote_port;
__u32 local_port;
__u32 size;
union {
struct bpf_sock *sk;
};
};
typedef struct pt_regs bpf_user_pt_regs_t;
struct bpf_perf_event_data {
bpf_user_pt_regs_t regs;
__u64 sample_period;
__u64 addr;
};
struct bpf_perf_event_data_kern {
bpf_user_pt_regs_t *regs;
struct perf_sample_data *data;
struct perf_event *event;
};
struct bpf_raw_tracepoint_args {
__u64 args[0];
};
struct bpf_cgroup_dev_ctx {
__u32 access_type;
__u32 major;
__u32 minor;
};
struct bpf_sysctl {
__u32 write;
__u32 file_pos;
};
struct bpf_sysctl_kern {
struct ctl_table_header *head;
struct ctl_table *table;
void *cur_val;
size_t cur_len;
void *new_val;
size_t new_len;
int new_updated;
int write;
loff_t *ppos;
u64 tmp_reg;
};
struct bpf_sockopt {
union {
struct bpf_sock *sk;
};
union {
void *optval;
};
union {
void *optval_end;
};
__s32 level;
__s32 optname;
__s32 optlen;
__s32 retval;
};
struct bpf_sockopt_kern {
struct sock *sk;
u8 *optval;
u8 *optval_end;
s32 level;
s32 optname;
s32 optlen;
struct task_struct *current_task;
u64 tmp_reg;
};
struct sk_reuseport_md {
union {
void *data;
};
union {
void *data_end;
};
__u32 len;
__u32 eth_protocol;
__u32 ip_protocol;
__u32 bind_inany;
__u32 hash;
union {
struct bpf_sock *sk;
};
union {
struct bpf_sock *migrating_sk;
};
};
struct sk_reuseport_kern {
struct sk_buff *skb;
struct sock *sk;
struct sock *selected_sk;
struct sock *migrating_sk;
void *data_end;
u32 hash;
u32 reuseport_id;
bool bind_inany;
};
struct bpf_ctx_convert {
struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog;
struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern;
struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog;
struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern;
struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog;
struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern;
struct xdp_md BPF_PROG_TYPE_XDP_prog;
struct xdp_buff BPF_PROG_TYPE_XDP_kern;
struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog;
struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern;
struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog;
struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern;
struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog;
struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern;
struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog;
struct sk_buff BPF_PROG_TYPE_LWT_IN_kern;
struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog;
struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern;
struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog;
struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern;
struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog;
struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern;
struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog;
struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern;
struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog;
struct sk_buff BPF_PROG_TYPE_SK_SKB_kern;
struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog;
struct sk_msg BPF_PROG_TYPE_SK_MSG_kern;
struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog;
struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern;
bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog;
struct pt_regs BPF_PROG_TYPE_KPROBE_kern;
__u64 BPF_PROG_TYPE_TRACEPOINT_prog;
u64 BPF_PROG_TYPE_TRACEPOINT_kern;
struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog;
struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern;
struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog;
u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern;
struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog;
u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern;
void *BPF_PROG_TYPE_TRACING_prog;
void *BPF_PROG_TYPE_TRACING_kern;
struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog;
struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern;
struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog;
struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern;
struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog;
struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern;
struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog;
struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern;
struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog;
struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern;
void *BPF_PROG_TYPE_STRUCT_OPS_prog;
void *BPF_PROG_TYPE_STRUCT_OPS_kern;
void *BPF_PROG_TYPE_EXT_prog;
void *BPF_PROG_TYPE_EXT_kern;
void *BPF_PROG_TYPE_SYSCALL_prog;
void *BPF_PROG_TYPE_SYSCALL_kern;
struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog;
struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern;
};
struct btf_verifier_env;
struct resolve_vertex;
struct btf_show;
struct btf_kind_operations {
s32 (*check_meta)(struct btf_verifier_env *, const struct btf_type *, u32);
int (*resolve)(struct btf_verifier_env *, const struct resolve_vertex *);
int (*check_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
int (*check_kflag_member)(struct btf_verifier_env *, const struct btf_type *, const struct btf_member *, const struct btf_type *);
void (*log_details)(struct btf_verifier_env *, const struct btf_type *);
void (*show)(const struct btf *, const struct btf_type *, u32, void *, u8, struct btf_show *);
};
struct resolve_vertex {
const struct btf_type *t;
u32 type_id;
u16 next_member;
};
enum verifier_phase {
CHECK_META = 0,
CHECK_TYPE = 1,
};
enum resolve_mode {
RESOLVE_TBD = 0,
RESOLVE_PTR = 1,
RESOLVE_STRUCT_OR_ARRAY = 2,
};
struct btf_verifier_env {
struct btf *btf;
u8 *visit_states;
struct resolve_vertex stack[32];
struct bpf_verifier_log log;
u32 log_type_id;
u32 top_stack;
enum verifier_phase phase;
enum resolve_mode resolve_mode;
};
struct btf_show {
u64 flags;
void *target;
void (*showfn)(struct btf_show *, const char *, struct __va_list_tag *);
const struct btf *btf;
struct {
u8 depth;
u8 depth_to_show;
u8 depth_check;
u8 array_member: 1;
u8 array_terminated: 1;
u16 array_encoding;
u32 type_id;
int status;
const struct btf_type *type;
const struct btf_member *member;
char name[80];
} state;
struct {
u32 size;
void *head;
void *data;
u8 safe[32];
} obj;
};
struct bpf_cand_cache {
const char *name;
u32 name_len;
u16 kind;
u16 cnt;
struct {
const struct btf *btf;
u32 id;
} cands[0];
};
enum bpf_type_flag {
PTR_MAYBE_NULL = 256,
MEM_RDONLY = 512,
MEM_RINGBUF = 1024,
MEM_USER = 2048,
MEM_PERCPU = 4096,
OBJ_RELEASE = 8192,
PTR_UNTRUSTED = 16384,
MEM_UNINIT = 32768,
DYNPTR_TYPE_LOCAL = 65536,
DYNPTR_TYPE_RINGBUF = 131072,
MEM_FIXED_SIZE = 262144,
MEM_ALLOC = 524288,
PTR_TRUSTED = 1048576,
MEM_RCU = 2097152,
NON_OWN_REF = 4194304,
DYNPTR_TYPE_SKB = 8388608,
DYNPTR_TYPE_XDP = 16777216,
__BPF_TYPE_FLAG_MAX = 16777217,
__BPF_TYPE_LAST_FLAG = 16777216,
};
enum bpf_struct_walk_result {
WALK_SCALAR = 0,
WALK_PTR = 1,
WALK_STRUCT = 2,
};
enum btf_func_linkage {
BTF_FUNC_STATIC = 0,
BTF_FUNC_GLOBAL = 1,
BTF_FUNC_EXTERN = 2,
};
enum btf_arg_tag {
ARG_TAG_CTX = 1,
ARG_TAG_NONNULL = 2,
ARG_TAG_TRUSTED = 4,
ARG_TAG_NULLABLE = 8,
ARG_TAG_ARENA = 16,
};
enum {
BTF_F_COMPACT = 1,
BTF_F_NONAME = 2,
BTF_F_PTR_RAW = 4,
BTF_F_ZERO = 8,
};
enum {
BTF_MODULE_F_LIVE = 1,
};
enum btf_kfunc_hook {
BTF_KFUNC_HOOK_COMMON = 0,
BTF_KFUNC_HOOK_XDP = 1,
BTF_KFUNC_HOOK_TC = 2,
BTF_KFUNC_HOOK_STRUCT_OPS = 3,
BTF_KFUNC_HOOK_TRACING = 4,
BTF_KFUNC_HOOK_SYSCALL = 5,
BTF_KFUNC_HOOK_FMODRET = 6,
BTF_KFUNC_HOOK_CGROUP_SKB = 7,
BTF_KFUNC_HOOK_SCHED_ACT = 8,
BTF_KFUNC_HOOK_SK_SKB = 9,
BTF_KFUNC_HOOK_SOCKET_FILTER = 10,
BTF_KFUNC_HOOK_LWT = 11,
BTF_KFUNC_HOOK_NETFILTER = 12,
BTF_KFUNC_HOOK_MAX = 13,
};
enum {
BTF_KFUNC_SET_MAX_CNT = 256,
BTF_DTOR_KFUNC_MAX_CNT = 256,
BTF_KFUNC_FILTER_MAX_CNT = 16,
};
enum bpf_core_relo_kind {
BPF_CORE_FIELD_BYTE_OFFSET = 0,
BPF_CORE_FIELD_BYTE_SIZE = 1,
BPF_CORE_FIELD_EXISTS = 2,
BPF_CORE_FIELD_SIGNED = 3,
BPF_CORE_FIELD_LSHIFT_U64 = 4,
BPF_CORE_FIELD_RSHIFT_U64 = 5,
BPF_CORE_TYPE_ID_LOCAL = 6,
BPF_CORE_TYPE_ID_TARGET = 7,
BPF_CORE_TYPE_EXISTS = 8,
BPF_CORE_TYPE_SIZE = 9,
BPF_CORE_ENUMVAL_EXISTS = 10,
BPF_CORE_ENUMVAL_VALUE = 11,
BPF_CORE_TYPE_MATCHES = 12,
};
enum {
BTF_FIELD_IGNORE = 0,
BTF_FIELD_FOUND = 1,
};
enum visit_state {
NOT_VISITED = 0,
VISITED = 1,
RESOLVED = 2,
};
enum {
BTF_VAR_STATIC = 0,
BTF_VAR_GLOBAL_ALLOCATED = 1,
BTF_VAR_GLOBAL_EXTERN = 2,
};
struct btf_module {
struct list_head list;
struct module *module;
struct btf *btf;
struct bin_attribute *sysfs_attr;
int flags;
};
typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int);
struct btf_decl_tag {
__s32 component_idx;
};
struct btf_var_secinfo {
__u32 type;
__u32 offset;
__u32 size;
};
struct btf_sec_info {
u32 off;
u32 len;
};
struct btf_enum {
__u32 name_off;
__s32 val;
};
struct btf_var {
__u32 linkage;
};
struct btf_enum64 {
__u32 name_off;
__u32 val_lo32;
__u32 val_hi32;
};
struct btf_show_snprintf {
struct btf_show show;
int len_left;
int len;
};
struct btf_field_info {
enum btf_field_type type;
u32 off;
union {
struct {
u32 type_id;
} kptr;
struct {
const char *node_name;
u32 value_btf_id;
} graph_root;
};
};
typedef int (*cmp_r_func_t)(const void *, const void *, const void *);
typedef void (*swap_r_func_t)(void *, void *, int, const void *);
struct btf_id_set {
u32 cnt;
u32 ids[0];
};
struct bpf_core_relo {
__u32 insn_off;
__u32 type_id;
__u32 access_str_off;
enum bpf_core_relo_kind kind;
};
struct bpf_core_cand;
struct bpf_core_cand_list {
struct bpf_core_cand *cands;
int len;
};
struct bpf_core_cand {
const struct btf *btf;
__u32 id;
};
struct bpf_core_accessor {
__u32 type_id;
__u32 idx;
const char *name;
};
struct bpf_core_spec {
const struct btf *btf;
struct bpf_core_accessor spec[64];
__u32 root_type_id;
enum bpf_core_relo_kind relo_kind;
int len;
int raw_spec[64];
int raw_len;
__u32 bit_offset;
};
struct bpf_core_relo_res {
__u64 orig_val;
__u64 new_val;
bool poison;
bool validate;
bool fail_memsz_adjust;
__u32 orig_sz;
__u32 orig_type_id;
__u32 new_sz;
__u32 new_type_id;
};
struct bpf_core_ctx {
struct bpf_verifier_log *log;
const struct btf *btf;
};
struct bpf_btf_info {
__u64 btf;
__u32 btf_size;
__u32 id;
__u64 name;
__u32 name_len;
__u32 kernel_btf;
};
struct iomap_dio {
struct kiocb *iocb;
const struct iomap_dio_ops *dops;
loff_t i_size;
loff_t size;
atomic_t ref;
unsigned int flags;
int error;
size_t done_before;
bool wait_for_completion;
union {
struct {
struct iov_iter *iter;
struct task_struct *waiter;
} submit;
struct {
struct work_struct work;
} aio;
};
};
struct ext4_group_desc {
__le32 bg_block_bitmap_lo;
__le32 bg_inode_bitmap_lo;
__le32 bg_inode_table_lo;
__le16 bg_free_blocks_count_lo;
__le16 bg_free_inodes_count_lo;
__le16 bg_used_dirs_count_lo;
__le16 bg_flags;
__le32 bg_exclude_bitmap_lo;
__le16 bg_block_bitmap_csum_lo;
__le16 bg_inode_bitmap_csum_lo;
__le16 bg_itable_unused_lo;
__le16 bg_checksum;
__le32 bg_block_bitmap_hi;
__le32 bg_inode_bitmap_hi;
__le32 bg_inode_table_hi;
__le16 bg_free_blocks_count_hi;
__le16 bg_free_inodes_count_hi;
__le16 bg_used_dirs_count_hi;
__le16 bg_itable_unused_hi;
__le32 bg_exclude_bitmap_hi;
__le16 bg_block_bitmap_csum_hi;
__le16 bg_inode_bitmap_csum_hi;
__u32 bg_reserved;
};
struct iso_inode_info {
unsigned long i_iget5_block;
unsigned long i_iget5_offset;
unsigned int i_first_extent;
unsigned char i_file_format;
unsigned char i_format_parm[3];
unsigned long i_next_section_block;
unsigned long i_next_section_offset;
off_t i_section_size;
struct inode vfs_inode;
};
struct internal_state {
int dummy;
};
union fuse_file_args;
struct fuse_file {
struct fuse_mount *fm;
union fuse_file_args *args;
u64 kh;
u64 fh;
u64 nodeid;
refcount_t count;
u32 open_flags;
struct list_head write_entry;
struct {
loff_t pos;
loff_t cache_off;
u64 version;
} readdir;
struct rb_node polled_node;
wait_queue_head_t poll_wait;
enum {
IOM_NONE = 0,
IOM_CACHED = 1,
IOM_UNCACHED = 2,
} iomode;
struct file *passthrough;
const struct cred *cred;
bool flock: 1;
};
struct fileattr {
u32 flags;
u32 fsx_xflags;
u32 fsx_extsize;
u32 fsx_nextents;
u32 fsx_projid;
u32 fsx_cowextsize;
bool flags_valid: 1;
bool fsx_valid: 1;
};
struct fuse_open_out {
uint64_t fh;
uint32_t open_flags;
int32_t backing_id;
};
struct fuse_in_arg {
unsigned int size;
const void *value;
};
struct fuse_arg {
unsigned int size;
void *value;
};
struct fuse_args {
uint64_t nodeid;
uint32_t opcode;
uint8_t in_numargs;
uint8_t out_numargs;
uint8_t ext_idx;
bool force: 1;
bool noreply: 1;
bool nocreds: 1;
bool in_pages: 1;
bool out_pages: 1;
bool user_pages: 1;
bool out_argvar: 1;
bool page_zeroing: 1;
bool page_replace: 1;
bool may_block: 1;
bool is_ext: 1;
bool is_pinned: 1;
struct fuse_in_arg in_args[3];
struct fuse_arg out_args[2];
void (*end)(struct fuse_mount *, struct fuse_args *, int);
};
struct fuse_release_in {
uint64_t fh;
uint32_t flags;
uint32_t release_flags;
uint64_t lock_owner;
};
struct fuse_release_args {
struct fuse_args args;
struct fuse_release_in inarg;
struct inode *inode;
};
union fuse_file_args {
struct fuse_open_out open_outarg;
struct fuse_release_args release_args;
};
enum fuse_opcode {
FUSE_LOOKUP = 1,
FUSE_FORGET = 2,
FUSE_GETATTR = 3,
FUSE_SETATTR = 4,
FUSE_READLINK = 5,
FUSE_SYMLINK = 6,
FUSE_MKNOD = 8,
FUSE_MKDIR = 9,
FUSE_UNLINK = 10,
FUSE_RMDIR = 11,
FUSE_RENAME = 12,
FUSE_LINK = 13,
FUSE_OPEN = 14,
FUSE_READ = 15,
FUSE_WRITE = 16,
FUSE_STATFS = 17,
FUSE_RELEASE = 18,
FUSE_FSYNC = 20,
FUSE_SETXATTR = 21,
FUSE_GETXATTR = 22,
FUSE_LISTXATTR = 23,
FUSE_REMOVEXATTR = 24,
FUSE_FLUSH = 25,
FUSE_INIT = 26,
FUSE_OPENDIR = 27,
FUSE_READDIR = 28,
FUSE_RELEASEDIR = 29,
FUSE_FSYNCDIR = 30,
FUSE_GETLK = 31,
FUSE_SETLK = 32,
FUSE_SETLKW = 33,
FUSE_ACCESS = 34,
FUSE_CREATE = 35,
FUSE_INTERRUPT = 36,
FUSE_BMAP = 37,
FUSE_DESTROY = 38,
FUSE_IOCTL = 39,
FUSE_POLL = 40,
FUSE_NOTIFY_REPLY = 41,
FUSE_BATCH_FORGET = 42,
FUSE_FALLOCATE = 43,
FUSE_READDIRPLUS = 44,
FUSE_RENAME2 = 45,
FUSE_LSEEK = 46,
FUSE_COPY_FILE_RANGE = 47,
FUSE_SETUPMAPPING = 48,
FUSE_REMOVEMAPPING = 49,
FUSE_SYNCFS = 50,
FUSE_TMPFILE = 51,
FUSE_STATX = 52,
CUSE_INIT = 4096,
CUSE_INIT_BSWAP_RESERVED = 1048576,
FUSE_INIT_BSWAP_RESERVED = 436207616,
};
struct fuse_page_desc {
unsigned int length;
unsigned int offset;
};
struct fuse_ioctl_out {
int32_t result;
uint32_t flags;
uint32_t in_iovs;
uint32_t out_iovs;
};
struct fuse_ioctl_iovec {
uint64_t base;
uint64_t len;
};
struct fuse_ioctl_in {
uint64_t fh;
uint32_t flags;
uint32_t cmd;
uint64_t arg;
uint32_t in_size;
uint32_t out_size;
};
struct fuse_args_pages {
struct fuse_args args;
struct page **pages;
struct fuse_page_desc *descs;
unsigned int num_pages;
};
struct fsxattr {
__u32 fsx_xflags;
__u32 fsx_extsize;
__u32 fsx_nextents;
__u32 fsx_projid;
__u32 fsx_cowextsize;
unsigned char fsx_pad[8];
};
struct crypto_akcipher_sync_data {
struct crypto_akcipher *tfm;
const void *src;
void *dst;
unsigned int slen;
unsigned int dlen;
struct akcipher_request *req;
struct crypto_wait cwait;
struct scatterlist sg;
u8 *buf;
};
struct crypto_sig {
struct crypto_tfm base;
};
struct barrett_ctx_s;
typedef struct barrett_ctx_s *mpi_barrett_t;
struct barrett_ctx_s {
MPI m;
int m_copied;
int k;
MPI y;
MPI r1;
MPI r2;
MPI r3;
};
typedef struct {
unsigned char op;
unsigned char bits;
unsigned short val;
} code;
typedef enum {
HEAD = 0,
FLAGS = 1,
TIME = 2,
OS = 3,
EXLEN = 4,
EXTRA = 5,
NAME = 6,
COMMENT = 7,
HCRC = 8,
DICTID = 9,
DICT = 10,
TYPE = 11,
TYPEDO = 12,
STORED = 13,
COPY = 14,
TABLE = 15,
LENLENS = 16,
CODELENS = 17,
LEN = 18,
LENEXT = 19,
DIST = 20,
DISTEXT = 21,
MATCH = 22,
LIT = 23,
CHECK = 24,
LENGTH = 25,
DONE = 26,
BAD = 27,
MEM = 28,
SYNC = 29,
} inflate_mode;
struct inflate_state {
inflate_mode mode;
int last;
int wrap;
int havedict;
int flags;
unsigned int dmax;
unsigned long check;
unsigned long total;
unsigned int wbits;
unsigned int wsize;
unsigned int whave;
unsigned int write;
unsigned char *window;
unsigned long hold;
unsigned int bits;
unsigned int length;
unsigned int offset;
unsigned int extra;
const code *lencode;
const code *distcode;
unsigned int lenbits;
unsigned int distbits;
unsigned int ncode;
unsigned int nlen;
unsigned int ndist;
unsigned int have;
code *next;
unsigned short lens[320];
unsigned short work[288];
code codes[2048];
};
struct inflate_workspace {
struct inflate_state inflate_state;
unsigned char working_window[32768];
};
typedef enum {
CODES = 0,
LENS = 1,
DISTS = 2,
} codetype;
struct raid6_avx2_constants {
u64 x1d[4];
};
struct sbq_wait {
struct sbitmap_queue *sbq;
struct wait_queue_entry wait;
};
enum acpi_predicate {
all_versions = 0,
less_than_or_equal = 1,
equal = 2,
greater_than_or_equal = 3,
};
struct acpi_device_bus_id {
const char *bus_id;
struct ida instance_ida;
struct list_head node;
};
struct acpi_handle_list {
u32 count;
acpi_handle *handles;
};
struct acpi_pld_info {
u8 revision;
u8 ignore_color;
u8 red;
u8 green;
u8 blue;
u16 width;
u16 height;
u8 user_visible;
u8 dock;
u8 lid;
u8 panel;
u8 vertical_position;
u8 horizontal_position;
u8 shape;
u8 group_orientation;
u8 group_token;
u8 group_position;
u8 bay;
u8 ejectable;
u8 ospm_eject_required;
u8 cabinet_number;
u8 card_cage_number;
u8 reference;
u8 rotation;
u8 order;
u8 reserved;
u16 vertical_offset;
u16 horizontal_offset;
};
typedef struct {
__u8 b[16];
} guid_t;
struct acpi_dev_match_info {
struct acpi_device_id hid[2];
const char *uid;
s64 hrv;
};
struct acpi_platform_list {
char oem_id[7];
char oem_table_id[9];
u32 oem_revision;
char *table;
enum acpi_predicate pred;
char *reason;
u32 data;
};
typedef enum {
ACPI_IMODE_LOAD_PASS1 = 1,
ACPI_IMODE_LOAD_PASS2 = 2,
ACPI_IMODE_EXECUTE = 3,
} acpi_interpreter_mode;
typedef u32 acpi_mutex_handle;
struct acpi_gpe_walk_info {
struct acpi_namespace_node *gpe_device;
struct acpi_gpe_block_info *gpe_block;
u16 count;
acpi_owner_id owner_id;
u8 execute_by_owner_id;
};
struct clk_hw;
struct clk_lookup {
struct list_head node;
const char *dev_id;
const char *con_id;
struct clk *clk;
struct clk_hw *clk_hw;
};
struct clk_core;
struct clk_init_data;
struct clk_hw {
struct clk_core *core;
struct clk *clk;
const struct clk_init_data *init;
};
struct clk_ops;
struct clk_parent_data;
struct clk_init_data {
const char *name;
const struct clk_ops *ops;
const char * const *parent_names;
const struct clk_parent_data *parent_data;
const struct clk_hw **parent_hws;
u8 num_parents;
unsigned long flags;
};
struct clk_rate_request;
struct clk_duty;
struct clk_ops {
int (*prepare)(struct clk_hw *);
void (*unprepare)(struct clk_hw *);
int (*is_prepared)(struct clk_hw *);
void (*unprepare_unused)(struct clk_hw *);
int (*enable)(struct clk_hw *);
void (*disable)(struct clk_hw *);
int (*is_enabled)(struct clk_hw *);
void (*disable_unused)(struct clk_hw *);
int (*save_context)(struct clk_hw *);
void (*restore_context)(struct clk_hw *);
unsigned long (*recalc_rate)(struct clk_hw *, unsigned long);
long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *);
int (*determine_rate)(struct clk_hw *, struct clk_rate_request *);
int (*set_parent)(struct clk_hw *, u8);
u8 (*get_parent)(struct clk_hw *);
int (*set_rate)(struct clk_hw *, unsigned long, unsigned long);
int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8);
unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long);
int (*get_phase)(struct clk_hw *);
int (*set_phase)(struct clk_hw *, int);
int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *);
int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *);
int (*init)(struct clk_hw *);
void (*terminate)(struct clk_hw *);
void (*debug_init)(struct clk_hw *, struct dentry *);
};
struct clk_rate_request {
struct clk_core *core;
unsigned long rate;
unsigned long min_rate;
unsigned long max_rate;
unsigned long best_parent_rate;
struct clk_hw *best_parent_hw;
};
struct clk_duty {
unsigned int num;
unsigned int den;
};
struct clk_parent_data {
const struct clk_hw *hw;
const char *fw_name;
const char *name;
int index;
};
struct clk_lookup_alloc {
struct clk_lookup cl;
char dev_id[24];
char con_id[16];
};
enum uart_pm_state {
UART_PM_STATE_ON = 0,
UART_PM_STATE_OFF = 3,
UART_PM_STATE_UNDEFINED = 4,
};
struct serial_ctrl_device {
struct device dev;
struct ida port_ida;
};
struct uart_port;
struct serial_port_device {
struct device dev;
struct uart_port *port;
};
struct uart_icount {
__u32 cts;
__u32 dsr;
__u32 rng;
__u32 dcd;
__u32 rx;
__u32 tx;
__u32 frame;
__u32 overrun;
__u32 parity;
__u32 brk;
__u32 buf_overrun;
};
typedef u64 upf_t;
typedef unsigned int upstat_t;
struct serial_rs485 {
__u32 flags;
__u32 delay_rts_before_send;
__u32 delay_rts_after_send;
union {
__u32 padding[5];
struct {
__u8 addr_recv;
__u8 addr_dest;
__u8 padding0[2];
__u32 padding1[4];
};
};
};
struct serial_iso7816 {
__u32 flags;
__u32 tg;
__u32 sc_fi;
__u32 sc_di;
__u32 clk;
__u32 reserved[5];
};
struct uart_state;
struct uart_ops;
struct uart_port {
spinlock_t lock;
unsigned long iobase;
unsigned char *membase;
unsigned int (*serial_in)(struct uart_port *, int);
void (*serial_out)(struct uart_port *, int, int);
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
void (*set_ldisc)(struct uart_port *, struct ktermios *);
unsigned int (*get_mctrl)(struct uart_port *);
void (*set_mctrl)(struct uart_port *, unsigned int);
unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *);
void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int);
int (*startup)(struct uart_port *);
void (*shutdown)(struct uart_port *);
void (*throttle)(struct uart_port *);
void (*unthrottle)(struct uart_port *);
int (*handle_irq)(struct uart_port *);
void (*pm)(struct uart_port *, unsigned int, unsigned int);
void (*handle_break)(struct uart_port *);
int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *);
unsigned int ctrl_id;
unsigned int port_id;
unsigned int irq;
unsigned long irqflags;
unsigned int uartclk;
unsigned int fifosize;
unsigned char x_char;
unsigned char regshift;
unsigned char iotype;
unsigned char quirks;
unsigned int read_status_mask;
unsigned int ignore_status_mask;
struct uart_state *state;
struct uart_icount icount;
struct console *cons;
upf_t flags;
upstat_t status;
bool hw_stopped;
unsigned int mctrl;
unsigned int frame_time;
unsigned int type;
const struct uart_ops *ops;
unsigned int custom_divisor;
unsigned int line;
unsigned int minor;
resource_size_t mapbase;
resource_size_t mapsize;
struct device *dev;
struct serial_port_device *port_dev;
unsigned long sysrq;
u8 sysrq_ch;
unsigned char has_sysrq;
unsigned char sysrq_seq;
unsigned char hub6;
unsigned char suspended;
unsigned char console_reinit;
const char *name;
struct attribute_group *attr_group;
const struct attribute_group **tty_groups;
struct serial_rs485 rs485;
struct serial_rs485 rs485_supported;
struct gpio_desc *rs485_term_gpio;
struct gpio_desc *rs485_rx_during_tx_gpio;
struct serial_iso7816 iso7816;
void *private_data;
};
struct circ_buf {
char *buf;
int head;
int tail;
};
struct uart_state {
struct tty_port port;
enum uart_pm_state pm_state;
struct circ_buf xmit;
atomic_t refcount;
wait_queue_head_t remove_wait;
struct uart_port *uart_port;
};
struct uart_ops {
unsigned int (*tx_empty)(struct uart_port *);
void (*set_mctrl)(struct uart_port *, unsigned int);
unsigned int (*get_mctrl)(struct uart_port *);
void (*stop_tx)(struct uart_port *);
void (*start_tx)(struct uart_port *);
void (*throttle)(struct uart_port *);
void (*unthrottle)(struct uart_port *);
void (*send_xchar)(struct uart_port *, char);
void (*stop_rx)(struct uart_port *);
void (*start_rx)(struct uart_port *);
void (*enable_ms)(struct uart_port *);
void (*break_ctl)(struct uart_port *, int);
int (*startup)(struct uart_port *);
void (*shutdown)(struct uart_port *);
void (*flush_buffer)(struct uart_port *);
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
void (*set_ldisc)(struct uart_port *, struct ktermios *);
void (*pm)(struct uart_port *, unsigned int, unsigned int);
const char * (*type)(struct uart_port *);
void (*release_port)(struct uart_port *);
int (*request_port)(struct uart_port *);
void (*config_port)(struct uart_port *, int);
int (*verify_port)(struct uart_port *, struct serial_struct *);
int (*ioctl)(struct uart_port *, unsigned int, unsigned long);
};
struct container_dev {
struct device dev;
int (*offline)(struct container_dev *);
};
struct dma_fence_cb;
typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *);
struct dma_fence_cb {
struct list_head node;
dma_fence_func_t func;
};
struct dma_fence_chain {
struct dma_fence base;
struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev;
u64 prev_seqno;
struct dma_fence *fence;
union {
struct dma_fence_cb cb;
struct irq_work work;
};
spinlock_t lock;
};
struct mii_if_info {
int phy_id;
int advertising;
int phy_id_mask;
int reg_num_mask;
unsigned int full_duplex: 1;
unsigned int force_media: 1;
unsigned int supports_gmii: 1;
struct net_device *dev;
int (*mdio_read)(struct net_device *, int, int);
void (*mdio_write)(struct net_device *, int, int, int);
};
struct ethtool_cmd {
__u32 cmd;
__u32 supported;
__u32 advertising;
__u16 speed;
__u8 duplex;
__u8 port;
__u8 phy_address;
__u8 transceiver;
__u8 autoneg;
__u8 mdio_support;
__u32 maxtxpkt;
__u32 maxrxpkt;
__u16 speed_hi;
__u8 eth_tp_mdix;
__u8 eth_tp_mdix_ctrl;
__u32 lp_advertising;
__u32 reserved[2];
};
struct mii_ioctl_data {
__u16 phy_id;
__u16 reg_num;
__u16 val_in;
__u16 val_out;
};
enum {
IWL_CALIB_ENABLE_ALL = 0,
IWL_SENSITIVITY_CALIB_DISABLED = 1,
IWL_CHAIN_NOISE_CALIB_DISABLED = 2,
IWL_TX_POWER_CALIB_DISABLED = 4,
IWL_CALIB_DISABLE_ALL = 4294967295,
};
enum iwlagn_false_alarm_state {
IWL_FA_TOO_MANY = 0,
IWL_FA_TOO_FEW = 1,
IWL_FA_GOOD_RANGE = 2,
};
enum iwlagn_chain_noise_state {
IWL_CHAIN_NOISE_ALIVE = 0,
IWL_CHAIN_NOISE_ACCUMULATE = 1,
IWL_CHAIN_NOISE_CALIBRATED = 2,
IWL_CHAIN_NOISE_DONE = 3,
};
struct iwl_calib_hdr {
u8 op_code;
u8 first_group;
u8 groups_num;
u8 data_valid;
};
struct iwl_calib_cmd {
struct iwl_calib_hdr hdr;
u8 data[0];
};
struct iwl_calib_result {
struct list_head list;
size_t cmd_len;
struct iwl_calib_cmd cmd;
};
struct statistics_general_data {
u32 beacon_silence_rssi_a;
u32 beacon_silence_rssi_b;
u32 beacon_silence_rssi_c;
u32 beacon_energy_a;
u32 beacon_energy_b;
u32 beacon_energy_c;
};
struct iwl_enhance_sensitivity_cmd {
__le16 control;
__le16 enhance_table[23];
};
struct iwl_sensitivity_cmd {
__le16 control;
__le16 table[11];
};
struct iwl_calib_chain_noise_gain_cmd {
struct iwl_calib_hdr hdr;
u8 delta_gain_1;
u8 delta_gain_2;
u8 pad[2];
};
enum coex_wl2bt_scoreboard {
COEX_SCBD_ACTIVE = 1,
COEX_SCBD_ONOFF = 2,
COEX_SCBD_SCAN = 4,
COEX_SCBD_UNDERTEST = 8,
COEX_SCBD_RXGAIN = 16,
COEX_SCBD_BT_RFK = 32,
COEX_SCBD_WLBUSY = 64,
COEX_SCBD_EXTFEM = 256,
COEX_SCBD_TDMA = 512,
COEX_SCBD_FIX2M = 1024,
COEX_SCBD_ALL = 65535,
};
enum coex_set_ant_phase {
COEX_SET_ANT_INIT = 0,
COEX_SET_ANT_WONLY = 1,
COEX_SET_ANT_WOFF = 2,
COEX_SET_ANT_2G = 3,
COEX_SET_ANT_5G = 4,
COEX_SET_ANT_POWERON = 5,
COEX_SET_ANT_2G_WLBT = 6,
COEX_SET_ANT_2G_FREERUN = 7,
COEX_SET_ANT_MAX = 8,
};
enum coex_notify_type_ips {
COEX_IPS_LEAVE = 0,
COEX_IPS_ENTER = 1,
};
enum coex_notify_type_lps {
COEX_LPS_DISABLE = 0,
COEX_LPS_ENABLE = 1,
};
enum coex_runreason {
COEX_RSN_2GSCANSTART = 0,
COEX_RSN_5GSCANSTART = 1,
COEX_RSN_SCANFINISH = 2,
COEX_RSN_2GSWITCHBAND = 3,
COEX_RSN_5GSWITCHBAND = 4,
COEX_RSN_2GCONSTART = 5,
COEX_RSN_5GCONSTART = 6,
COEX_RSN_2GCONFINISH = 7,
COEX_RSN_5GCONFINISH = 8,
COEX_RSN_2GMEDIA = 9,
COEX_RSN_5GMEDIA = 10,
COEX_RSN_MEDIADISCON = 11,
COEX_RSN_BTINFO = 12,
COEX_RSN_LPS = 13,
COEX_RSN_WLSTATUS = 14,
COEX_RSN_BTSTATUS = 15,
COEX_RSN_MAX = 16,
};
enum rtw_coex_wl_state_cnt {
COEX_CNT_WL_SCANAP = 0,
COEX_CNT_WL_CONNPKT = 1,
COEX_CNT_WL_COEXRUN = 2,
COEX_CNT_WL_NOISY0 = 3,
COEX_CNT_WL_NOISY1 = 4,
COEX_CNT_WL_NOISY2 = 5,
COEX_CNT_WL_5MS_NOEXTEND = 6,
COEX_CNT_WL_FW_NOTIFY = 7,
COEX_CNT_WL_MAX = 8,
};
enum coex_notify_type_associate {
COEX_ASSOCIATE_FINISH = 0,
COEX_ASSOCIATE_START = 1,
COEX_ASSOCIATE_5G_FINISH = 2,
COEX_ASSOCIATE_5G_START = 3,
};
enum coex_notify_type_media_status {
COEX_MEDIA_DISCONNECT = 0,
COEX_MEDIA_CONNECT = 1,
COEX_MEDIA_CONNECT_5G = 2,
};
enum coex_wl_priority_mask {
COEX_WLPRI_RX_RSP = 2,
COEX_WLPRI_TX_RSP = 3,
COEX_WLPRI_TX_BEACON = 4,
COEX_WLPRI_TX_OFDM = 11,
COEX_WLPRI_TX_CCK = 12,
COEX_WLPRI_TX_BEACONQ = 27,
COEX_WLPRI_RX_CCK = 28,
COEX_WLPRI_RX_OFDM = 29,
COEX_WLPRI_MAX = 30,
};
enum rtw_coex_bt_state_cnt {
COEX_CNT_BT_RETRY = 0,
COEX_CNT_BT_REINIT = 1,
COEX_CNT_BT_REENABLE = 2,
COEX_CNT_BT_POPEVENT = 3,
COEX_CNT_BT_SETUPLINK = 4,
COEX_CNT_BT_IGNWLANACT = 5,
COEX_CNT_BT_INQ = 6,
COEX_CNT_BT_PAGE = 7,
COEX_CNT_BT_ROLESWITCH = 8,
COEX_CNT_BT_AFHUPDATE = 9,
COEX_CNT_BT_INFOUPDATE = 10,
COEX_CNT_BT_IQK = 11,
COEX_CNT_BT_IQKFAIL = 12,
COEX_CNT_BT_MAX = 13,
};
enum coex_btrssi_type {
COEX_BTRSSI_RATIO = 0,
COEX_BTRSSI_DBM = 1,
COEX_BTRSSI_MAX = 2,
};
enum coex_ext_ant_switch_ctrl_type {
COEX_SWITCH_CTRL_BY_BBSW = 0,
COEX_SWITCH_CTRL_BY_PTA = 1,
COEX_SWITCH_CTRL_BY_ANTDIV = 2,
COEX_SWITCH_CTRL_BY_MAC = 3,
COEX_SWITCH_CTRL_BY_BT = 4,
COEX_SWITCH_CTRL_BY_FW = 5,
COEX_SWITCH_CTRL_MAX = 6,
};
enum coex_ext_ant_switch_pos_type {
COEX_SWITCH_TO_BT = 0,
COEX_SWITCH_TO_WLG = 1,
COEX_SWITCH_TO_WLA = 2,
COEX_SWITCH_TO_NOCARE = 3,
COEX_SWITCH_TO_WLG_BT = 4,
COEX_SWITCH_TO_MAX = 5,
};
enum coex_gnt_setup_state {
COEX_GNT_SET_HW_PTA = 0,
COEX_GNT_SET_SW_LOW = 1,
COEX_GNT_SET_SW_HIGH = 3,
};
enum coex_rssi_state {
COEX_RSSI_STATE_HIGH = 0,
COEX_RSSI_STATE_MEDIUM = 1,
COEX_RSSI_STATE_LOW = 2,
COEX_RSSI_STATE_STAY_HIGH = 3,
COEX_RSSI_STATE_STAY_MEDIUM = 4,
COEX_RSSI_STATE_STAY_LOW = 5,
};
enum coex_power_save_type {
COEX_PS_WIFI_NATIVE = 0,
COEX_PS_LPS_ON = 1,
COEX_PS_LPS_OFF = 2,
};
enum coex_pstdma_type {
COEX_PSTDMA_FORCE_LPSOFF = 0,
COEX_PSTDMA_FORCE_LPSON = 1,
COEX_PSTDMA_MAX = 2,
};
enum coex_mp_info_op {
BT_MP_INFO_OP_PATCH_VER = 0,
BT_MP_INFO_OP_READ_REG = 17,
BT_MP_INFO_OP_SUPP_FEAT = 42,
BT_MP_INFO_OP_SUPP_VER = 43,
BT_MP_INFO_OP_SCAN_TYPE = 45,
BT_MP_INFO_OP_LNA_CONSTRAINT = 50,
};
enum coex_bt_status {
COEX_BTSTATUS_NCON_IDLE = 0,
COEX_BTSTATUS_CON_IDLE = 1,
COEX_BTSTATUS_INQ_PAGE = 2,
COEX_BTSTATUS_ACL_BUSY = 3,
COEX_BTSTATUS_SCO_BUSY = 4,
COEX_BTSTATUS_ACL_SCO_BUSY = 5,
COEX_BTSTATUS_MAX = 6,
};
enum coex_wl_tput_dir {
COEX_WL_TPUT_TX = 0,
COEX_WL_TPUT_RX = 1,
COEX_WL_TPUT_MAX = 2,
};
enum coex_algorithm {
COEX_ALGO_NOPROFILE = 0,
COEX_ALGO_HFP = 1,
COEX_ALGO_HID = 2,
COEX_ALGO_A2DP = 3,
COEX_ALGO_PAN = 4,
COEX_ALGO_A2DP_HID = 5,
COEX_ALGO_A2DP_PAN = 6,
COEX_ALGO_PAN_HID = 7,
COEX_ALGO_A2DP_PAN_HID = 8,
COEX_ALGO_MAX = 9,
};
enum coex_bt_profile {
BPM_NOPROFILE = 0,
BPM_HFP = 1,
BPM_HID = 2,
BPM_A2DP = 4,
BPM_PAN = 8,
BPM_HID_HFP = 3,
BPM_A2DP_HFP = 5,
BPM_A2DP_HID = 6,
BPM_A2DP_HID_HFP = 7,
BPM_PAN_HFP = 9,
BPM_PAN_HID = 10,
BPM_PAN_HID_HFP = 11,
BPM_PAN_A2DP = 12,
BPM_PAN_A2DP_HFP = 13,
BPM_PAN_A2DP_HID = 14,
BPM_PAN_A2DP_HID_HFP = 15,
};
struct rtw_coex_hid_info_a {
u8 cmd_id;
u8 len;
u8 subid;
u8 handle;
u8 vendor;
u8 name[3];
};
struct rtw_c2h_cmd {
u8 id;
u8 seq;
u8 payload[0];
};
struct rtw_coex_info_req {
u8 seq;
u8 op_code;
u8 para1;
u8 para2;
u8 para3;
};
struct thermal_attr {
struct device_attribute attr;
char name[20];
};
struct thermal_instance {
int id;
char name[20];
struct thermal_zone_device *tz;
struct thermal_cooling_device *cdev;
const struct thermal_trip *trip;
bool initialized;
unsigned long upper;
unsigned long lower;
unsigned long target;
char attr_name[20];
struct device_attribute attr;
char weight_attr_name[20];
struct device_attribute weight_attr;
struct list_head tz_node;
struct list_head cdev_node;
unsigned int weight;
bool upper_no_limit;
};
struct hid_control_fifo {
unsigned char dir;
struct hid_report *report;
char *raw_report;
};
struct hid_output_fifo {
struct hid_report *report;
char *raw_report;
};
struct usbhid_device {
struct hid_device *hid;
struct usb_interface *intf;
int ifnum;
unsigned int bufsize;
struct urb *urbin;
char *inbuf;
dma_addr_t inbuf_dma;
struct urb *urbctrl;
struct usb_ctrlrequest *cr;
struct hid_control_fifo ctrl[256];
unsigned char ctrlhead;
unsigned char ctrltail;
char *ctrlbuf;
dma_addr_t ctrlbuf_dma;
unsigned long last_ctrl;
struct urb *urbout;
struct hid_output_fifo out[256];
unsigned char outhead;
unsigned char outtail;
char *outbuf;
dma_addr_t outbuf_dma;
unsigned long last_out;
struct mutex mutex;
spinlock_t lock;
unsigned long iofl;
struct timer_list io_retry;
unsigned long stop_retry;
unsigned int retry_delay;
struct work_struct reset_work;
wait_queue_head_t wait;
};
struct hid_class_descriptor {
__u8 bDescriptorType;
__le16 wDescriptorLength;
} __attribute__((packed));
struct hid_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 bcdHID;
__u8 bCountryCode;
__u8 bNumDescriptors;
struct hid_class_descriptor desc[1];
} __attribute__((packed));
struct xsk_queue;
struct xdp_umem;
struct xdp_buff_xsk;
struct xdp_desc;
struct xsk_buff_pool {
struct device *dev;
struct net_device *netdev;
struct list_head xsk_tx_list;
spinlock_t xsk_tx_list_lock;
refcount_t users;
struct xdp_umem *umem;
struct work_struct work;
struct list_head free_list;
struct list_head xskb_list;
u32 heads_cnt;
u16 queue_id;
long: 64;
long: 64;
long: 64;
long: 64;
struct xsk_queue *fq;
struct xsk_queue *cq;
dma_addr_t *dma_pages;
struct xdp_buff_xsk *heads;
struct xdp_desc *tx_descs;
u64 chunk_mask;
u64 addrs_cnt;
u32 free_list_cnt;
u32 dma_pages_cnt;
u32 free_heads_cnt;
u32 headroom;
u32 chunk_size;
u32 chunk_shift;
u32 frame_len;
u8 tx_metadata_len;
u8 cached_need_wakeup;
bool uses_need_wakeup;
bool dma_need_sync;
bool unaligned;
bool tx_sw_csum;
void *addrs;
spinlock_t cq_lock;
struct xdp_buff_xsk *free_heads[0];
long: 64;
long: 64;
long: 64;
};
struct xdp_umem {
void *addrs;
u64 size;
u32 headroom;
u32 chunk_size;
u32 chunks;
u32 npgs;
struct user_struct *user;
refcount_t users;
u8 flags;
u8 tx_metadata_len;
bool zc;
struct page **pgs;
int id;
struct list_head xsk_dma_list;
struct work_struct work;
};
struct xdp_buff_xsk {
struct xdp_buff xdp;
u8 cb[24];
dma_addr_t dma;
dma_addr_t frame_dma;
struct xsk_buff_pool *pool;
u64 orig_addr;
struct list_head free_list_node;
struct list_head xskb_list_node;
};
struct xdp_desc {
__u64 addr;
__u32 len;
__u32 options;
};
enum flow_action_id {
FLOW_ACTION_ACCEPT = 0,
FLOW_ACTION_DROP = 1,
FLOW_ACTION_TRAP = 2,
FLOW_ACTION_GOTO = 3,
FLOW_ACTION_REDIRECT = 4,
FLOW_ACTION_MIRRED = 5,
FLOW_ACTION_REDIRECT_INGRESS = 6,
FLOW_ACTION_MIRRED_INGRESS = 7,
FLOW_ACTION_VLAN_PUSH = 8,
FLOW_ACTION_VLAN_POP = 9,
FLOW_ACTION_VLAN_MANGLE = 10,
FLOW_ACTION_TUNNEL_ENCAP = 11,
FLOW_ACTION_TUNNEL_DECAP = 12,
FLOW_ACTION_MANGLE = 13,
FLOW_ACTION_ADD = 14,
FLOW_ACTION_CSUM = 15,
FLOW_ACTION_MARK = 16,
FLOW_ACTION_PTYPE = 17,
FLOW_ACTION_PRIORITY = 18,
FLOW_ACTION_RX_QUEUE_MAPPING = 19,
FLOW_ACTION_WAKE = 20,
FLOW_ACTION_QUEUE = 21,
FLOW_ACTION_SAMPLE = 22,
FLOW_ACTION_POLICE = 23,
FLOW_ACTION_CT = 24,
FLOW_ACTION_CT_METADATA = 25,
FLOW_ACTION_MPLS_PUSH = 26,
FLOW_ACTION_MPLS_POP = 27,
FLOW_ACTION_MPLS_MANGLE = 28,
FLOW_ACTION_GATE = 29,
FLOW_ACTION_PPPOE_PUSH = 30,
FLOW_ACTION_JUMP = 31,
FLOW_ACTION_PIPE = 32,
FLOW_ACTION_VLAN_PUSH_ETH = 33,
FLOW_ACTION_VLAN_POP_ETH = 34,
FLOW_ACTION_CONTINUE = 35,
NUM_FLOW_ACTIONS = 36,
};
enum flow_action_mangle_base {
FLOW_ACT_MANGLE_UNSPEC = 0,
FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1,
FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2,
FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3,
FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4,
FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5,
};
enum flow_dissector_key_id {
FLOW_DISSECTOR_KEY_CONTROL = 0,
FLOW_DISSECTOR_KEY_BASIC = 1,
FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2,
FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3,
FLOW_DISSECTOR_KEY_PORTS = 4,
FLOW_DISSECTOR_KEY_PORTS_RANGE = 5,
FLOW_DISSECTOR_KEY_ICMP = 6,
FLOW_DISSECTOR_KEY_ETH_ADDRS = 7,
FLOW_DISSECTOR_KEY_TIPC = 8,
FLOW_DISSECTOR_KEY_ARP = 9,
FLOW_DISSECTOR_KEY_VLAN = 10,
FLOW_DISSECTOR_KEY_FLOW_LABEL = 11,
FLOW_DISSECTOR_KEY_GRE_KEYID = 12,
FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13,
FLOW_DISSECTOR_KEY_ENC_KEYID = 14,
FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15,
FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16,
FLOW_DISSECTOR_KEY_ENC_CONTROL = 17,
FLOW_DISSECTOR_KEY_ENC_PORTS = 18,
FLOW_DISSECTOR_KEY_MPLS = 19,
FLOW_DISSECTOR_KEY_TCP = 20,
FLOW_DISSECTOR_KEY_IP = 21,
FLOW_DISSECTOR_KEY_CVLAN = 22,
FLOW_DISSECTOR_KEY_ENC_IP = 23,
FLOW_DISSECTOR_KEY_ENC_OPTS = 24,
FLOW_DISSECTOR_KEY_META = 25,
FLOW_DISSECTOR_KEY_CT = 26,
FLOW_DISSECTOR_KEY_HASH = 27,
FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28,
FLOW_DISSECTOR_KEY_PPPOE = 29,
FLOW_DISSECTOR_KEY_L2TPV3 = 30,
FLOW_DISSECTOR_KEY_CFM = 31,
FLOW_DISSECTOR_KEY_IPSEC = 32,
FLOW_DISSECTOR_KEY_MAX = 33,
};
enum {
ETHTOOL_MSG_KERNEL_NONE = 0,
ETHTOOL_MSG_STRSET_GET_REPLY = 1,
ETHTOOL_MSG_LINKINFO_GET_REPLY = 2,
ETHTOOL_MSG_LINKINFO_NTF = 3,
ETHTOOL_MSG_LINKMODES_GET_REPLY = 4,
ETHTOOL_MSG_LINKMODES_NTF = 5,
ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6,
ETHTOOL_MSG_DEBUG_GET_REPLY = 7,
ETHTOOL_MSG_DEBUG_NTF = 8,
ETHTOOL_MSG_WOL_GET_REPLY = 9,
ETHTOOL_MSG_WOL_NTF = 10,
ETHTOOL_MSG_FEATURES_GET_REPLY = 11,
ETHTOOL_MSG_FEATURES_SET_REPLY = 12,
ETHTOOL_MSG_FEATURES_NTF = 13,
ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14,
ETHTOOL_MSG_PRIVFLAGS_NTF = 15,
ETHTOOL_MSG_RINGS_GET_REPLY = 16,
ETHTOOL_MSG_RINGS_NTF = 17,
ETHTOOL_MSG_CHANNELS_GET_REPLY = 18,
ETHTOOL_MSG_CHANNELS_NTF = 19,
ETHTOOL_MSG_COALESCE_GET_REPLY = 20,
ETHTOOL_MSG_COALESCE_NTF = 21,
ETHTOOL_MSG_PAUSE_GET_REPLY = 22,
ETHTOOL_MSG_PAUSE_NTF = 23,
ETHTOOL_MSG_EEE_GET_REPLY = 24,
ETHTOOL_MSG_EEE_NTF = 25,
ETHTOOL_MSG_TSINFO_GET_REPLY = 26,
ETHTOOL_MSG_CABLE_TEST_NTF = 27,
ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28,
ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29,
ETHTOOL_MSG_FEC_GET_REPLY = 30,
ETHTOOL_MSG_FEC_NTF = 31,
ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32,
ETHTOOL_MSG_STATS_GET_REPLY = 33,
ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34,
ETHTOOL_MSG_MODULE_GET_REPLY = 35,
ETHTOOL_MSG_MODULE_NTF = 36,
ETHTOOL_MSG_PSE_GET_REPLY = 37,
ETHTOOL_MSG_RSS_GET_REPLY = 38,
ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 39,
ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 40,
ETHTOOL_MSG_PLCA_NTF = 41,
ETHTOOL_MSG_MM_GET_REPLY = 42,
ETHTOOL_MSG_MM_NTF = 43,
__ETHTOOL_MSG_KERNEL_CNT = 44,
ETHTOOL_MSG_KERNEL_MAX = 43,
};
enum ethtool_flags {
ETH_FLAG_TXVLAN = 128,
ETH_FLAG_RXVLAN = 256,
ETH_FLAG_LRO = 32768,
ETH_FLAG_NTUPLE = 134217728,
ETH_FLAG_RXHASH = 268435456,
};
enum ethtool_sfeatures_retval_bits {
ETHTOOL_F_UNSUPPORTED__BIT = 0,
ETHTOOL_F_WISH__BIT = 1,
ETHTOOL_F_COMPAT__BIT = 2,
};
enum tunable_id {
ETHTOOL_ID_UNSPEC = 0,
ETHTOOL_RX_COPYBREAK = 1,
ETHTOOL_TX_COPYBREAK = 2,
ETHTOOL_PFC_PREVENTION_TOUT = 3,
ETHTOOL_TX_COPYBREAK_BUF_SIZE = 4,
__ETHTOOL_TUNABLE_COUNT = 5,
};
enum tunable_type_id {
ETHTOOL_TUNABLE_UNSPEC = 0,
ETHTOOL_TUNABLE_U8 = 1,
ETHTOOL_TUNABLE_U16 = 2,
ETHTOOL_TUNABLE_U32 = 3,
ETHTOOL_TUNABLE_U64 = 4,
ETHTOOL_TUNABLE_STRING = 5,
ETHTOOL_TUNABLE_S8 = 6,
ETHTOOL_TUNABLE_S16 = 7,
ETHTOOL_TUNABLE_S32 = 8,
ETHTOOL_TUNABLE_S64 = 9,
};
enum phy_tunable_id {
ETHTOOL_PHY_ID_UNSPEC = 0,
ETHTOOL_PHY_DOWNSHIFT = 1,
ETHTOOL_PHY_FAST_LINK_DOWN = 2,
ETHTOOL_PHY_EDPD = 3,
__ETHTOOL_PHY_TUNABLE_COUNT = 4,
};
enum ethtool_fec_config_bits {
ETHTOOL_FEC_NONE_BIT = 0,
ETHTOOL_FEC_AUTO_BIT = 1,
ETHTOOL_FEC_OFF_BIT = 2,
ETHTOOL_FEC_RS_BIT = 3,
ETHTOOL_FEC_BASER_BIT = 4,
ETHTOOL_FEC_LLRS_BIT = 5,
};
struct flow_dissector {
unsigned long long used_keys;
unsigned short offset[33];
};
struct flow_dissector_key_ip {
__u8 tos;
__u8 ttl;
};
struct flow_dissector_key_eth_addrs {
unsigned char dst[6];
unsigned char src[6];
};
struct ethtool_rx_flow_key {
struct flow_dissector_key_basic basic;
union {
struct flow_dissector_key_ipv4_addrs ipv4;
struct flow_dissector_key_ipv6_addrs ipv6;
};
struct flow_dissector_key_ports tp;
struct flow_dissector_key_ip ip;
struct flow_dissector_key_vlan vlan;
struct flow_dissector_key_eth_addrs eth_addrs;
};
struct ethtool_rx_flow_match {
struct flow_dissector dissector;
struct ethtool_rx_flow_key key;
struct ethtool_rx_flow_key mask;
};
struct ethtool_devlink_compat {
struct devlink *devlink;
union {
struct ethtool_flash efl;
struct ethtool_drvinfo info;
};
};
struct ethtool_value {
__u32 cmd;
__u32 data;
};
struct flow_rule;
struct ethtool_rx_flow_rule {
struct flow_rule *rule;
unsigned long priv[0];
};
struct flow_match {
struct flow_dissector *dissector;
void *mask;
void *key;
};
typedef void (*action_destr)(void *);
struct psample_group;
struct action_gate_entry;
struct nf_flowtable;
struct flow_action_cookie;
struct flow_action_entry {
enum flow_action_id id;
u32 hw_index;
unsigned long cookie;
u64 miss_cookie;
enum flow_action_hw_stats hw_stats;
action_destr destructor;
void *destructor_priv;
union {
u32 chain_index;
struct net_device *dev;
struct {
u16 vid;
__be16 proto;
u8 prio;
} vlan;
struct {
unsigned char dst[6];
unsigned char src[6];
} vlan_push_eth;
struct {
enum flow_action_mangle_base htype;
u32 offset;
u32 mask;
u32 val;
} mangle;
struct ip_tunnel_info *tunnel;
u32 csum_flags;
u32 mark;
u16 ptype;
u16 rx_queue;
u32 priority;
struct {
u32 ctx;
u32 index;
u8 vf;
} queue;
struct {
struct psample_group *psample_group;
u32 rate;
u32 trunc_size;
bool truncate;
} sample;
struct {
u32 burst;
u64 rate_bytes_ps;
u64 peakrate_bytes_ps;
u32 avrate;
u16 overhead;
u64 burst_pkt;
u64 rate_pkt_ps;
u32 mtu;
struct {
enum flow_action_id act_id;
u32 extval;
} exceed;
struct {
enum flow_action_id act_id;
u32 extval;
} notexceed;
} police;
struct {
int action;
u16 zone;
struct nf_flowtable *flow_table;
} ct;
struct {
unsigned long cookie;
u32 mark;
u32 labels[4];
bool orig_dir;
} ct_metadata;
struct {
u32 label;
__be16 proto;
u8 tc;
u8 bos;
u8 ttl;
} mpls_push;
struct {
__be16 proto;
} mpls_pop;
struct {
u32 label;
u8 tc;
u8 bos;
u8 ttl;
} mpls_mangle;
struct {
s32 prio;
u64 basetime;
u64 cycletime;
u64 cycletimeext;
u32 num_entries;
struct action_gate_entry *entries;
} gate;
struct {
u16 sid;
} pppoe;
};
struct flow_action_cookie *user_cookie;
};
struct flow_action {
unsigned int num_entries;
struct flow_action_entry entries[0];
};
struct flow_rule {
struct flow_match match;
struct flow_action action;
};
struct flow_action_cookie {
u32 cookie_len;
u8 cookie[0];
};
struct ethtool_eee {
__u32 cmd;
__u32 supported;
__u32 advertised;
__u32 lp_advertised;
__u32 eee_active;
__u32 eee_enabled;
__u32 tx_lpi_enabled;
__u32 tx_lpi_timer;
__u32 reserved[2];
};
struct ethtool_link_usettings {
struct ethtool_link_settings base;
struct {
__u32 supported[4];
__u32 advertising[4];
__u32 lp_advertising[4];
} link_modes;
};
struct ethtool_rx_flow_spec_input {
const struct ethtool_rx_flow_spec *fs;
u32 rss_ctx;
};
struct ethtool_gstrings {
__u32 cmd;
__u32 string_set;
__u32 len;
__u8 data[0];
};
struct ethtool_perm_addr {
__u32 cmd;
__u32 size;
__u8 data[0];
};
struct ethtool_sset_info {
__u32 cmd;
__u32 reserved;
__u64 sset_mask;
__u32 data[0];
};
struct ethtool_rxfh {
__u32 cmd;
__u32 rss_context;
__u32 indir_size;
__u32 key_size;
__u8 hfunc;
__u8 input_xfrm;
__u8 rsvd8[2];
__u32 rsvd32;
__u32 rss_config[0];
};
struct ethtool_get_features_block {
__u32 available;
__u32 requested;
__u32 active;
__u32 never_changed;
};
struct ethtool_gfeatures {
__u32 cmd;
__u32 size;
struct ethtool_get_features_block features[0];
};
struct ethtool_set_features_block {
__u32 valid;
__u32 requested;
};
struct ethtool_sfeatures {
__u32 cmd;
__u32 size;
struct ethtool_set_features_block features[0];
};
struct ethtool_per_queue_op {
__u32 cmd;
__u32 sub_command;
__u32 queue_mask[128];
char data[0];
};
enum nft_offload_dep_type {
NFT_OFFLOAD_DEP_UNSPEC = 0,
NFT_OFFLOAD_DEP_NETWORK = 1,
NFT_OFFLOAD_DEP_TRANSPORT = 2,
};
struct nft_offload_reg {
u32 key;
u32 len;
u32 base_offset;
u32 offset;
u32 flags;
struct nft_data data;
struct nft_data mask;
};
struct nft_offload_ctx {
struct {
enum nft_offload_dep_type type;
__be16 l3num;
u8 protonum;
} dep;
unsigned int num_actions;
struct net *net;
struct nft_offload_reg regs[24];
};
struct flow_dissector_key_meta {
int ingress_ifindex;
u16 ingress_iftype;
u8 l2_miss;
};
struct nft_flow_key {
struct flow_dissector_key_basic basic;
struct flow_dissector_key_control control;
union {
struct flow_dissector_key_ipv4_addrs ipv4;
struct flow_dissector_key_ipv6_addrs ipv6;
};
struct flow_dissector_key_ports tp;
struct flow_dissector_key_ip ip;
struct flow_dissector_key_vlan vlan;
struct flow_dissector_key_vlan cvlan;
struct flow_dissector_key_eth_addrs eth_addrs;
struct flow_dissector_key_meta meta;
};
struct nft_flow_match {
struct flow_dissector dissector;
struct nft_flow_key key;
struct nft_flow_key mask;
};
struct nft_flow_rule {
__be16 proto;
struct nft_flow_match match;
struct flow_rule *rule;
};
struct nf_flowtable_type;
struct nf_flowtable {
unsigned int flags;
int priority;
struct rhashtable rhashtable;
struct list_head list;
const struct nf_flowtable_type *type;
struct delayed_work gc_work;
struct flow_block flow_block;
struct rw_semaphore flow_block_lock;
possible_net_t net;
};
enum flow_block_command {
FLOW_BLOCK_BIND = 0,
FLOW_BLOCK_UNBIND = 1,
};
enum flow_offload_tuple_dir {
FLOW_OFFLOAD_DIR_ORIGINAL = 0,
FLOW_OFFLOAD_DIR_REPLY = 1,
};
struct flow_offload;
struct nf_flow_rule;
struct nf_flowtable_type {
struct list_head list;
int family;
int (*init)(struct nf_flowtable *);
bool (*gc)(const struct flow_offload *);
int (*setup)(struct nf_flowtable *, struct net_device *, enum flow_block_command);
int (*action)(struct net *, struct flow_offload *, enum flow_offload_tuple_dir, struct nf_flow_rule *);
void (*free)(struct nf_flowtable *);
void (*get)(struct nf_flowtable *);
void (*put)(struct nf_flowtable *);
nf_hookfn *hook;
struct module *owner;
};
struct flow_offload_tuple {
union {
struct in_addr src_v4;
struct in6_addr src_v6;
};
union {
struct in_addr dst_v4;
struct in6_addr dst_v6;
};
struct {
__be16 src_port;
__be16 dst_port;
};
int iifidx;
u8 l3proto;
u8 l4proto;
struct {
u16 id;
__be16 proto;
} encap[2];
struct {} __hash;
u8 dir: 2;
u8 xmit_type: 3;
u8 encap_num: 2;
char: 1;
u8 in_vlan_ingress: 2;
u16 mtu;
union {
struct {
struct dst_entry *dst_cache;
u32 dst_cookie;
};
struct {
u32 ifidx;
u32 hw_ifidx;
u8 h_source[6];
u8 h_dest[6];
} out;
struct {
u32 iifidx;
} tc;
};
};
struct flow_offload_tuple_rhash {
struct rhash_head node;
struct flow_offload_tuple tuple;
};
struct flow_offload {
struct flow_offload_tuple_rhash tuplehash[2];
struct nf_conn *ct;
unsigned long flags;
u16 type;
u32 timeout;
struct callback_head callback_head;
};
struct flow_dissector_key_tcp {
__be16 flags;
};
struct nf_flow_key {
struct flow_dissector_key_meta meta;
struct flow_dissector_key_control control;
struct flow_dissector_key_control enc_control;
struct flow_dissector_key_basic basic;
struct flow_dissector_key_vlan vlan;
struct flow_dissector_key_vlan cvlan;
union {
struct flow_dissector_key_ipv4_addrs ipv4;
struct flow_dissector_key_ipv6_addrs ipv6;
};
struct flow_dissector_key_keyid enc_key_id;
union {
struct flow_dissector_key_ipv4_addrs enc_ipv4;
struct flow_dissector_key_ipv6_addrs enc_ipv6;
};
struct flow_dissector_key_tcp tcp;
struct flow_dissector_key_ports tp;
};
struct nf_flow_match {
struct flow_dissector dissector;
struct nf_flow_key key;
struct nf_flow_key mask;
};
struct nf_flow_rule {
struct nf_flow_match match;
struct flow_rule *rule;
};
struct nft_inner_tun_ctx {
u16 type;
u16 inner_tunoff;
u16 inner_lloff;
u16 inner_nhoff;
u16 inner_thoff;
__be16 llproto;
u8 l4proto;
u8 flags;
};
enum nft_meta_keys {
NFT_META_LEN = 0,
NFT_META_PROTOCOL = 1,
NFT_META_PRIORITY = 2,
NFT_META_MARK = 3,
NFT_META_IIF = 4,
NFT_META_OIF = 5,
NFT_META_IIFNAME = 6,
NFT_META_OIFNAME = 7,
NFT_META_IFTYPE = 8,
NFT_META_OIFTYPE = 9,
NFT_META_SKUID = 10,
NFT_META_SKGID = 11,
NFT_META_NFTRACE = 12,
NFT_META_RTCLASSID = 13,
NFT_META_SECMARK = 14,
NFT_META_NFPROTO = 15,
NFT_META_L4PROTO = 16,
NFT_META_BRI_IIFNAME = 17,
NFT_META_BRI_OIFNAME = 18,
NFT_META_PKTTYPE = 19,
NFT_META_CPU = 20,
NFT_META_IIFGROUP = 21,
NFT_META_OIFGROUP = 22,
NFT_META_CGROUP = 23,
NFT_META_PRANDOM = 24,
NFT_META_SECPATH = 25,
NFT_META_IIFKIND = 26,
NFT_META_OIFKIND = 27,
NFT_META_BRI_IIFPVID = 28,
NFT_META_BRI_IIFVPROTO = 29,
NFT_META_TIME_NS = 30,
NFT_META_TIME_DAY = 31,
NFT_META_TIME_HOUR = 32,
NFT_META_SDIF = 33,
NFT_META_SDIFNAME = 34,
NFT_META_BRI_BROUTE = 35,
__NFT_META_IIFTYPE = 36,
};
enum {
NFT_INNER_EXPR_PAYLOAD = 0,
NFT_INNER_EXPR_META = 1,
};
enum nft_inner_flags {
NFT_INNER_HDRSIZE = 1,
NFT_INNER_LL = 2,
NFT_INNER_NH = 4,
NFT_INNER_TH = 8,
};
enum {
NFT_PAYLOAD_CTX_INNER_TUN = 1,
NFT_PAYLOAD_CTX_INNER_LL = 2,
NFT_PAYLOAD_CTX_INNER_NH = 4,
NFT_PAYLOAD_CTX_INNER_TH = 8,
};
enum nft_inner_type {
NFT_INNER_UNSPEC = 0,
NFT_INNER_VXLAN = 1,
NFT_INNER_GENEVE = 2,
};
enum {
IP6_FH_F_FRAG = 1,
IP6_FH_F_AUTH = 2,
IP6_FH_F_SKIP_RH = 4,
};
enum nft_inner_attributes {
NFTA_INNER_UNSPEC = 0,
NFTA_INNER_NUM = 1,
NFTA_INNER_TYPE = 2,
NFTA_INNER_FLAGS = 3,
NFTA_INNER_HDRSIZE = 4,
NFTA_INNER_EXPR = 5,
__NFTA_INNER_MAX = 6,
};
struct nft_meta {
enum nft_meta_keys key: 8;
u8 len;
union {
u8 dreg;
u8 sreg;
};
};
struct __nft_expr {
const struct nft_expr_ops *ops;
union {
struct nft_payload payload;
struct nft_meta meta;
};
};
struct nft_inner {
u8 flags;
u8 hdrsize;
u8 type;
u8 expr_type;
struct __nft_expr expr;
};
struct genevehdr {
u8 opt_len: 6;
u8 ver: 2;
u8 rsvd1: 6;
u8 critical: 1;
u8 oam: 1;
__be16 proto_type;
u8 vni[3];
u8 rsvd2;
u8 options[0];
};
struct nft_expr_info {
const struct nft_expr_ops *ops;
const struct nlattr *attr;
struct nlattr *tb[17];
};
struct inet6_protocol {
int (*handler)(struct sk_buff *);
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
unsigned int flags;
u32 secret;
};
enum ieee80211_key_len {
WLAN_KEY_LEN_WEP40 = 5,
WLAN_KEY_LEN_WEP104 = 13,
WLAN_KEY_LEN_CCMP = 16,
WLAN_KEY_LEN_CCMP_256 = 32,
WLAN_KEY_LEN_TKIP = 32,
WLAN_KEY_LEN_AES_CMAC = 16,
WLAN_KEY_LEN_SMS4 = 32,
WLAN_KEY_LEN_GCMP = 16,
WLAN_KEY_LEN_GCMP_256 = 32,
WLAN_KEY_LEN_BIP_CMAC_256 = 32,
WLAN_KEY_LEN_BIP_GMAC_128 = 16,
WLAN_KEY_LEN_BIP_GMAC_256 = 32,
};
enum ieee80211_p2p_attr_id {
IEEE80211_P2P_ATTR_STATUS = 0,
IEEE80211_P2P_ATTR_MINOR_REASON = 1,
IEEE80211_P2P_ATTR_CAPABILITY = 2,
IEEE80211_P2P_ATTR_DEVICE_ID = 3,
IEEE80211_P2P_ATTR_GO_INTENT = 4,
IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5,
IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6,
IEEE80211_P2P_ATTR_GROUP_BSSID = 7,
IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8,
IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9,
IEEE80211_P2P_ATTR_MANAGABILITY = 10,
IEEE80211_P2P_ATTR_CHANNEL_LIST = 11,
IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12,
IEEE80211_P2P_ATTR_DEVICE_INFO = 13,
IEEE80211_P2P_ATTR_GROUP_INFO = 14,
IEEE80211_P2P_ATTR_GROUP_ID = 15,
IEEE80211_P2P_ATTR_INTERFACE = 16,
IEEE80211_P2P_ATTR_OPER_CHANNEL = 17,
IEEE80211_P2P_ATTR_INVITE_FLAGS = 18,
IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221,
IEEE80211_P2P_ATTR_MAX = 222,
};
struct iface_combination_params {
int num_different_channels;
u8 radar_detect;
int iftype_num[13];
u32 new_beacon_int;
};
struct ieee80211s_hdr {
u8 flags;
u8 ttl;
__le32 seqnum;
u8 eaddr1[6];
u8 eaddr2[6];
} __attribute__((packed));
struct mpls_label {
__be32 entry;
};
struct iapp_layer2_update {
u8 da[6];
u8 sa[6];
__be16 len;
u8 dsap;
u8 ssap;
u8 control;
u8 xid_info[3];
};
struct vdso_exception_table_entry {
int insn;
int fixup;
};
enum xstate_copy_mode {
XSTATE_COPY_FP = 0,
XSTATE_COPY_FX = 1,
XSTATE_COPY_XSAVE = 2,
};
enum xfeature {
XFEATURE_FP = 0,
XFEATURE_SSE = 1,
XFEATURE_YMM = 2,
XFEATURE_BNDREGS = 3,
XFEATURE_BNDCSR = 4,
XFEATURE_OPMASK = 5,
XFEATURE_ZMM_Hi256 = 6,
XFEATURE_Hi16_ZMM = 7,
XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8,
XFEATURE_PKRU = 9,
XFEATURE_PASID = 10,
XFEATURE_CET_USER = 11,
XFEATURE_CET_KERNEL_UNUSED = 12,
XFEATURE_RSRVD_COMP_13 = 13,
XFEATURE_RSRVD_COMP_14 = 14,
XFEATURE_LBR = 15,
XFEATURE_RSRVD_COMP_16 = 16,
XFEATURE_XTILE_CFG = 17,
XFEATURE_XTILE_DATA = 18,
XFEATURE_MAX = 19,
};
struct fpu_guest {
u64 xfeatures;
u64 perm;
u64 xfd_err;
unsigned int uabi_size;
struct fpstate *fpstate;
};
struct pkru_state {
u32 pkru;
u32 pad;
};
struct var_mtrr_range_state {
unsigned long base_pfn;
unsigned long size_pfn;
mtrr_type type;
};
enum rwsem_waiter_type {
RWSEM_WAITING_FOR_WRITE = 0,
RWSEM_WAITING_FOR_READ = 1,
};
enum rwsem_wake_type {
RWSEM_WAKE_ANY = 0,
RWSEM_WAKE_READERS = 1,
RWSEM_WAKE_READ_OWNED = 2,
};
enum owner_state {
OWNER_NULL = 1,
OWNER_WRITER = 2,
OWNER_READER = 4,
OWNER_NONSPINNABLE = 8,
};
struct rwsem_waiter {
struct list_head list;
struct task_struct *task;
enum rwsem_waiter_type type;
unsigned long timeout;
bool handoff_set;
};
typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int);
typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t);
typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t);
typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t);
struct alarm_base {
spinlock_t lock;
struct timerqueue_head timerqueue;
ktime_t (*get_ktime)();
void (*get_timespec)(struct timespec64 *);
clockid_t base_clockid;
};
struct trace_event_raw_alarmtimer_suspend {
struct trace_entry ent;
s64 expires;
unsigned char alarm_type;
char __data[0];
};
struct trace_event_raw_alarm_class {
struct trace_entry ent;
void *alarm;
unsigned char alarm_type;
s64 expires;
s64 now;
char __data[0];
};
struct trace_event_data_offsets_alarmtimer_suspend {};
struct trace_event_data_offsets_alarm_class {};
enum {
Blktrace_setup = 1,
Blktrace_running = 2,
Blktrace_stopped = 3,
};
enum blktrace_cat {
BLK_TC_READ = 1,
BLK_TC_WRITE = 2,
BLK_TC_FLUSH = 4,
BLK_TC_SYNC = 8,
BLK_TC_SYNCIO = 8,
BLK_TC_QUEUE = 16,
BLK_TC_REQUEUE = 32,
BLK_TC_ISSUE = 64,
BLK_TC_COMPLETE = 128,
BLK_TC_FS = 256,
BLK_TC_PC = 512,
BLK_TC_NOTIFY = 1024,
BLK_TC_AHEAD = 2048,
BLK_TC_META = 4096,
BLK_TC_DISCARD = 8192,
BLK_TC_DRV_DATA = 16384,
BLK_TC_FUA = 32768,
BLK_TC_END = 32768,
};
enum blktrace_notify {
__BLK_TN_PROCESS = 0,
__BLK_TN_TIMESTAMP = 1,
__BLK_TN_MESSAGE = 2,
__BLK_TN_CGROUP = 256,
};
enum blktrace_act {
__BLK_TA_QUEUE = 1,
__BLK_TA_BACKMERGE = 2,
__BLK_TA_FRONTMERGE = 3,
__BLK_TA_GETRQ = 4,
__BLK_TA_SLEEPRQ = 5,
__BLK_TA_REQUEUE = 6,
__BLK_TA_ISSUE = 7,
__BLK_TA_COMPLETE = 8,
__BLK_TA_PLUG = 9,
__BLK_TA_UNPLUG_IO = 10,
__BLK_TA_UNPLUG_TIMER = 11,
__BLK_TA_INSERT = 12,
__BLK_TA_SPLIT = 13,
__BLK_TA_BOUNCE = 14,
__BLK_TA_REMAP = 15,
__BLK_TA_ABORT = 16,
__BLK_TA_DRV_DATA = 17,
__BLK_TA_CGROUP = 256,
};
struct blk_io_trace {
__u32 magic;
__u32 sequence;
__u64 time;
__u64 sector;
__u32 bytes;
__u32 action;
__u32 pid;
__u32 device;
__u32 cpu;
__u16 error;
__u16 pdu_len;
};
struct blk_user_trace_setup {
char name[32];
__u16 act_mask;
__u32 buf_size;
__u32 buf_nr;
__u64 start_lba;
__u64 end_lba;
__u32 pid;
};
struct blk_io_trace_remap {
__be32 device_from;
__be32 device_to;
__be64 sector_from;
};
typedef void blk_log_action_t(struct trace_iterator *, const char *, bool);
struct padata_work {
struct work_struct pw_work;
struct list_head pw_list;
void *pw_data;
};
struct padata_instance;
struct padata_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct padata_instance *, struct attribute *, char *);
ssize_t (*store)(struct padata_instance *, struct attribute *, const char *, size_t);
};
struct padata_cpumask {
cpumask_var_t pcpu;
cpumask_var_t cbcpu;
};
struct padata_instance {
struct hlist_node cpu_online_node;
struct hlist_node cpu_dead_node;
struct workqueue_struct *parallel_wq;
struct workqueue_struct *serial_wq;
struct list_head pslist;
struct padata_cpumask cpumask;
struct kobject kobj;
struct mutex lock;
u8 flags;
};
enum wq_affn_scope {
WQ_AFFN_DFL = 0,
WQ_AFFN_CPU = 1,
WQ_AFFN_SMT = 2,
WQ_AFFN_CACHE = 3,
WQ_AFFN_NUMA = 4,
WQ_AFFN_SYSTEM = 5,
WQ_AFFN_NR_TYPES = 6,
};
struct padata_shell;
struct padata_list;
struct padata_serial_queue;
struct parallel_data {
struct padata_shell *ps;
struct padata_list __attribute__((btf_type_tag("percpu"))) *reorder_list;
struct padata_serial_queue __attribute__((btf_type_tag("percpu"))) *squeue;
refcount_t refcnt;
unsigned int seq_nr;
unsigned int processed;
int cpu;
struct padata_cpumask cpumask;
struct work_struct reorder_work;
spinlock_t lock;
};
struct padata_shell {
struct padata_instance *pinst;
struct parallel_data __attribute__((btf_type_tag("rcu"))) *pd;
struct parallel_data *opd;
struct list_head list;
};
struct padata_list {
struct list_head list;
spinlock_t lock;
};
struct padata_serial_queue {
struct padata_list serial;
struct work_struct work;
struct parallel_data *pd;
};
struct padata_priv {
struct list_head list;
struct parallel_data *pd;
int cb_cpu;
unsigned int seq_nr;
int info;
void (*parallel)(struct padata_priv *);
void (*serial)(struct padata_priv *);
};
struct workqueue_attrs {
int nice;
cpumask_var_t cpumask;
cpumask_var_t __pod_cpumask;
bool affn_strict;
enum wq_affn_scope affn_scope;
bool ordered;
};
struct padata_mt_job {
void (*thread_fn)(unsigned long, unsigned long, void *);
void *fn_arg;
unsigned long start;
unsigned long size;
unsigned long align;
unsigned long min_chunk;
int max_threads;
bool numa_aware;
};
struct padata_mt_job_state {
spinlock_t lock;
struct completion completion;
struct padata_mt_job *job;
int nworks;
int nworks_fini;
unsigned long chunk_size;
};
typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_mm_compaction_migratepages)(void *, unsigned int, unsigned int);
typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool);
typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int);
typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int);
typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int);
typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int);
typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int);
typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int);
typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int);
typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int);
typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type);
typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type);
enum compact_result {
COMPACT_NOT_SUITABLE_ZONE = 0,
COMPACT_SKIPPED = 1,
COMPACT_DEFERRED = 2,
COMPACT_NO_SUITABLE_PAGE = 3,
COMPACT_CONTINUE = 4,
COMPACT_COMPLETE = 5,
COMPACT_PARTIAL_SKIPPED = 6,
COMPACT_CONTENDED = 7,
COMPACT_SUCCESS = 8,
};
enum compact_priority {
COMPACT_PRIO_SYNC_FULL = 0,
MIN_COMPACT_PRIORITY = 0,
COMPACT_PRIO_SYNC_LIGHT = 1,
MIN_COMPACT_COSTLY_PRIORITY = 1,
DEF_COMPACT_PRIORITY = 1,
COMPACT_PRIO_ASYNC = 2,
INIT_COMPACT_PRIORITY = 2,
};
enum pageblock_bits {
PB_migrate = 0,
PB_migrate_end = 2,
PB_migrate_skip = 3,
NR_PAGEBLOCK_BITS = 4,
};
enum migratetype {
MIGRATE_UNMOVABLE = 0,
MIGRATE_MOVABLE = 1,
MIGRATE_RECLAIMABLE = 2,
MIGRATE_PCPTYPES = 3,
MIGRATE_HIGHATOMIC = 3,
MIGRATE_TYPES = 4,
};
enum vmscan_throttle_state {
VMSCAN_THROTTLE_WRITEBACK = 0,
VMSCAN_THROTTLE_ISOLATED = 1,
VMSCAN_THROTTLE_NOPROGRESS = 2,
VMSCAN_THROTTLE_CONGESTED = 3,
NR_VMSCAN_THROTTLE = 4,
};
enum lru_list {
LRU_INACTIVE_ANON = 0,
LRU_ACTIVE_ANON = 1,
LRU_INACTIVE_FILE = 2,
LRU_ACTIVE_FILE = 3,
LRU_UNEVICTABLE = 4,
NR_LRU_LISTS = 5,
};
enum zone_watermarks {
WMARK_MIN = 0,
WMARK_LOW = 1,
WMARK_HIGH = 2,
WMARK_PROMO = 3,
NR_WMARK = 4,
};
typedef unsigned int isolate_mode_t;
struct trace_event_raw_mm_compaction_isolate_template {
struct trace_entry ent;
unsigned long start_pfn;
unsigned long end_pfn;
unsigned long nr_scanned;
unsigned long nr_taken;
char __data[0];
};
struct trace_event_raw_mm_compaction_migratepages {
struct trace_entry ent;
unsigned long nr_migrated;
unsigned long nr_failed;
char __data[0];
};
struct trace_event_raw_mm_compaction_begin {
struct trace_entry ent;
unsigned long zone_start;
unsigned long migrate_pfn;
unsigned long free_pfn;
unsigned long zone_end;
bool sync;
char __data[0];
};
struct trace_event_raw_mm_compaction_end {
struct trace_entry ent;
unsigned long zone_start;
unsigned long migrate_pfn;
unsigned long free_pfn;
unsigned long zone_end;
bool sync;
int status;
char __data[0];
};
struct trace_event_raw_mm_compaction_try_to_compact_pages {
struct trace_entry ent;
int order;
unsigned long gfp_mask;
int prio;
char __data[0];
};
struct trace_event_raw_mm_compaction_suitable_template {
struct trace_entry ent;
int nid;
enum zone_type idx;
int order;
int ret;
char __data[0];
};
struct trace_event_raw_mm_compaction_defer_template {
struct trace_entry ent;
int nid;
enum zone_type idx;
int order;
unsigned int considered;
unsigned int defer_shift;
int order_failed;
char __data[0];
};
struct trace_event_raw_mm_compaction_kcompactd_sleep {
struct trace_entry ent;
int nid;
char __data[0];
};
struct trace_event_raw_kcompactd_wake_template {
struct trace_entry ent;
int nid;
int order;
enum zone_type highest_zoneidx;
char __data[0];
};
struct movable_operations {
bool (*isolate_page)(struct page *, isolate_mode_t);
int (*migrate_page)(struct page *, struct page *, enum migrate_mode);
void (*putback_page)(struct page *);
};
typedef enum {
ISOLATE_ABORT = 0,
ISOLATE_NONE = 1,
ISOLATE_SUCCESS = 2,
} isolate_migrate_t;
struct trace_event_data_offsets_mm_compaction_isolate_template {};
struct trace_event_data_offsets_mm_compaction_migratepages {};
struct trace_event_data_offsets_mm_compaction_begin {};
struct trace_event_data_offsets_mm_compaction_end {};
struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {};
struct trace_event_data_offsets_mm_compaction_suitable_template {};
struct trace_event_data_offsets_mm_compaction_defer_template {};
struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {};
struct trace_event_data_offsets_kcompactd_wake_template {};
struct alloc_context {
struct zonelist *zonelist;
nodemask_t *nodemask;
struct zoneref *preferred_zoneref;
int migratetype;
enum zone_type highest_zoneidx;
bool spread_dirty_pages;
};
typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *);
struct mpage_readpage_args {
struct bio *bio;
struct folio *folio;
unsigned int nr_pages;
bool is_readahead;
sector_t last_block_in_bio;
struct buffer_head map_bh;
unsigned long first_logical_block;
get_block_t *get_block;
};
struct mpage_data {
struct bio *bio;
sector_t last_block_in_bio;
get_block_t *get_block;
};
struct ext4_extent {
__le32 ee_block;
__le16 ee_len;
__le16 ee_start_hi;
__le32 ee_start_lo;
};
struct ext4_extent_header {
__le16 eh_magic;
__le16 eh_entries;
__le16 eh_max;
__le16 eh_depth;
__le32 eh_generation;
};
struct ext4_extent_idx {
__le32 ei_block;
__le32 ei_leaf_lo;
__le16 ei_leaf_hi;
__u16 ei_unused;
};
struct migrate_struct {
ext4_lblk_t first_block;
ext4_lblk_t last_block;
ext4_lblk_t curr_block;
ext4_fsblk_t first_pblock;
ext4_fsblk_t last_pblock;
};
struct ext4_ext_path {
ext4_fsblk_t p_block;
__u16 p_depth;
__u16 p_maxdepth;
struct ext4_extent *p_ext;
struct ext4_extent_idx *p_idx;
struct ext4_extent_header *p_hdr;
struct buffer_head *p_bh;
};
enum fuse_dax_mode {
FUSE_DAX_INODE_DEFAULT = 0,
FUSE_DAX_ALWAYS = 1,
FUSE_DAX_NEVER = 2,
FUSE_DAX_INODE_USER = 3,
};
enum {
OPT_SOURCE = 0,
OPT_SUBTYPE = 1,
OPT_FD = 2,
OPT_ROOTMODE = 3,
OPT_USER_ID = 4,
OPT_GROUP_ID = 5,
OPT_DEFAULT_PERMISSIONS = 6,
OPT_ALLOW_OTHER = 7,
OPT_MAX_READ = 8,
OPT_BLKSIZE = 9,
OPT_ERR = 10,
};
struct fuse_init_in {
uint32_t major;
uint32_t minor;
uint32_t max_readahead;
uint32_t flags;
uint32_t flags2;
uint32_t unused[11];
};
struct fuse_init_out {
uint32_t major;
uint32_t minor;
uint32_t max_readahead;
uint32_t flags;
uint16_t max_background;
uint16_t congestion_threshold;
uint32_t max_write;
uint32_t time_gran;
uint16_t max_pages;
uint16_t map_alignment;
uint32_t flags2;
uint32_t max_stack_depth;
uint32_t unused[6];
};
struct fuse_init_args {
struct fuse_args args;
struct fuse_init_in in;
struct fuse_init_out out;
};
struct fuse_attr {
uint64_t ino;
uint64_t size;
uint64_t blocks;
uint64_t atime;
uint64_t mtime;
uint64_t ctime;
uint32_t atimensec;
uint32_t mtimensec;
uint32_t ctimensec;
uint32_t mode;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint32_t rdev;
uint32_t blksize;
uint32_t flags;
};
struct fuse_pqueue {
unsigned int connected;
spinlock_t lock;
struct list_head *processing;
struct list_head io;
};
struct fuse_dev {
struct fuse_conn *fc;
struct fuse_pqueue pq;
struct list_head entry;
};
struct fuse_kstatfs {
uint64_t blocks;
uint64_t bfree;
uint64_t bavail;
uint64_t files;
uint64_t ffree;
uint32_t bsize;
uint32_t namelen;
uint32_t frsize;
uint32_t padding;
uint32_t spare[6];
};
struct fuse_entry_out {
uint64_t nodeid;
uint64_t generation;
uint64_t entry_valid;
uint64_t attr_valid;
uint32_t entry_valid_nsec;
uint32_t attr_valid_nsec;
struct fuse_attr attr;
};
typedef s64 int64_t;
struct fuse_sx_time {
int64_t tv_sec;
uint32_t tv_nsec;
int32_t __reserved;
};
struct fuse_statx {
uint32_t mask;
uint32_t blksize;
uint64_t attributes;
uint32_t nlink;
uint32_t uid;
uint32_t gid;
uint16_t mode;
uint16_t __spare0[1];
uint64_t ino;
uint64_t size;
uint64_t blocks;
uint64_t attributes_mask;
struct fuse_sx_time atime;
struct fuse_sx_time btime;
struct fuse_sx_time ctime;
struct fuse_sx_time mtime;
uint32_t rdev_major;
uint32_t rdev_minor;
uint32_t dev_major;
uint32_t dev_minor;
uint64_t __spare2[14];
};
struct fuse_fs_context {
int fd;
struct file *file;
unsigned int rootmode;
kuid_t user_id;
kgid_t group_id;
bool is_bdev: 1;
bool fd_present: 1;
bool rootmode_present: 1;
bool user_id_present: 1;
bool group_id_present: 1;
bool default_permissions: 1;
bool allow_other: 1;
bool destroy: 1;
bool no_control: 1;
bool no_force_umount: 1;
bool legacy_opts_show: 1;
enum fuse_dax_mode dax_mode;
unsigned int max_read;
unsigned int blksize;
const char *subtype;
struct dax_device *dax_dev;
void **fudptr;
};
struct fuse_syncfs_in {
uint64_t padding;
};
struct fuse_statfs_out {
struct fuse_kstatfs st;
};
struct fuse_inode_handle {
u64 nodeid;
u32 generation;
};
struct keyring_search_context {
struct keyring_index_key index_key;
const struct cred *cred;
struct key_match_data match_data;
unsigned int flags;
int (*iterator)(const void *, void *);
int skipped_ret;
bool possessed;
key_ref_t result;
time64_t now;
};
enum devcg_behavior {
DEVCG_DEFAULT_NONE = 0,
DEVCG_DEFAULT_ALLOW = 1,
DEVCG_DEFAULT_DENY = 2,
};
struct dev_cgroup {
struct cgroup_subsys_state css;
struct list_head exceptions;
enum devcg_behavior behavior;
};
struct dev_exception_item {
u32 major;
u32 minor;
short type;
short access;
struct list_head list;
struct callback_head rcu;
};
struct io_statx {
struct file *file;
int dfd;
unsigned int mask;
unsigned int flags;
struct filename *filename;
struct statx __attribute__((btf_type_tag("user"))) *buffer;
};
struct irq_override_cmp {
const struct dmi_system_id *system;
unsigned char irq;
unsigned char triggering;
unsigned char polarity;
unsigned char shareable;
bool override;
};
struct resource_entry {
struct list_head node;
struct resource *res;
resource_size_t offset;
struct resource __res;
};
struct res_proc_context {
struct list_head *list;
int (*preproc)(struct acpi_resource *, void *);
void *preproc_data;
int count;
int error;
};
struct resource_win {
struct resource res;
resource_size_t offset;
};
enum idle_boot_override {
IDLE_NO_OVERRIDE = 0,
IDLE_HALT = 1,
IDLE_NOMWAIT = 2,
IDLE_POLL = 3,
};
enum tick_broadcast_mode {
TICK_BROADCAST_OFF = 0,
TICK_BROADCAST_ON = 1,
TICK_BROADCAST_FORCE = 2,
};
struct acpi_power_register {
u8 descriptor;
u16 length;
u8 space_id;
u8 bit_width;
u8 bit_offset;
u8 access_size;
u64 address;
} __attribute__((packed));
struct acpi_lpi_states_array {
unsigned int size;
unsigned int composite_states_size;
struct acpi_lpi_state *entries;
struct acpi_lpi_state *composite_states[8];
};
struct attribute_container {
struct list_head node;
struct klist containers;
struct class *class;
const struct attribute_group *grp;
struct device_attribute **attrs;
int (*match)(struct attribute_container *, struct device *);
unsigned long flags;
};
struct transport_container {
struct attribute_container ac;
const struct attribute_group *statistics;
};
struct scsi_transport_template {
struct transport_container host_attrs;
struct transport_container target_attrs;
struct transport_container device_attrs;
int (*user_scan)(struct Scsi_Host *, uint, uint, u64);
int device_size;
int device_private_offset;
int target_size;
int target_private_offset;
int host_size;
unsigned int create_work_queue: 1;
void (*eh_strategy_handler)(struct Scsi_Host *);
};
struct transport_class {
struct class class;
int (*setup)(struct transport_container *, struct device *, struct device *);
int (*configure)(struct transport_container *, struct device *, struct device *);
int (*remove)(struct transport_container *, struct device *, struct device *);
};
enum ata_dev_iter_mode {
ATA_DITER_ENABLED = 0,
ATA_DITER_ENABLED_REVERSE = 1,
ATA_DITER_ALL = 2,
ATA_DITER_ALL_REVERSE = 3,
};
struct ata_internal {
struct scsi_transport_template t;
struct device_attribute private_port_attrs[3];
struct device_attribute private_link_attrs[3];
struct device_attribute private_dev_attrs[9];
struct transport_container link_attr_cont;
struct transport_container dev_attr_cont;
struct device_attribute *link_attrs[4];
struct device_attribute *port_attrs[4];
struct device_attribute *dev_attrs[10];
};
struct ata_show_ering_arg {
char *buf;
int written;
};
enum iwl_disable_11n {
IWL_DISABLE_HT_ALL = 1,
IWL_DISABLE_HT_TXAGG = 2,
IWL_DISABLE_HT_RXAGG = 4,
IWL_ENABLE_HT_TXAGG = 8,
};
enum ieee80211_min_mpdu_spacing {
IEEE80211_HT_MPDU_DENSITY_NONE = 0,
IEEE80211_HT_MPDU_DENSITY_0_25 = 1,
IEEE80211_HT_MPDU_DENSITY_0_5 = 2,
IEEE80211_HT_MPDU_DENSITY_1 = 3,
IEEE80211_HT_MPDU_DENSITY_2 = 4,
IEEE80211_HT_MPDU_DENSITY_4 = 5,
IEEE80211_HT_MPDU_DENSITY_8 = 6,
IEEE80211_HT_MPDU_DENSITY_16 = 7,
};
enum eeprom_sku_bits {
EEPROM_SKU_CAP_BAND_24GHZ = 16,
EEPROM_SKU_CAP_BAND_52GHZ = 32,
EEPROM_SKU_CAP_11N_ENABLE = 64,
EEPROM_SKU_CAP_AMT_ENABLE = 128,
EEPROM_SKU_CAP_IPAN_ENABLE = 256,
};
enum iwl_eeprom_channel_flags {
EEPROM_CHANNEL_VALID = 1,
EEPROM_CHANNEL_IBSS = 2,
EEPROM_CHANNEL_ACTIVE = 8,
EEPROM_CHANNEL_RADAR = 16,
EEPROM_CHANNEL_WIDE = 32,
EEPROM_CHANNEL_DFS = 128,
};
enum iwl_eeprom_enhanced_txpwr_flags {
IWL_EEPROM_ENH_TXP_FL_VALID = 1,
IWL_EEPROM_ENH_TXP_FL_BAND_52G = 2,
IWL_EEPROM_ENH_TXP_FL_OFDM = 4,
IWL_EEPROM_ENH_TXP_FL_40MHZ = 8,
IWL_EEPROM_ENH_TXP_FL_HT_AP = 16,
IWL_EEPROM_ENH_TXP_FL_RES1 = 32,
IWL_EEPROM_ENH_TXP_FL_RES2 = 64,
IWL_EEPROM_ENH_TXP_FL_COMMON_TYPE = 128,
};
struct iwl_eeprom_calib_hdr {
u8 version;
u8 pa_type;
__le16 voltage;
};
struct iwl_eeprom_channel {
u8 flags;
s8 max_power_avg;
};
struct iwl_eeprom_enhanced_txpwr {
u8 flags;
u8 channel;
s8 chain_a_max;
s8 chain_b_max;
s8 chain_c_max;
u8 delta_20_in_40;
s8 mimo2_max;
s8 mimo3_max;
};
enum iwl_sec_key_flags {
IWL_SEC_KEY_FLAG_CIPHER_MASK = 7,
IWL_SEC_KEY_FLAG_CIPHER_WEP = 1,
IWL_SEC_KEY_FLAG_CIPHER_CCMP = 2,
IWL_SEC_KEY_FLAG_CIPHER_TKIP = 3,
IWL_SEC_KEY_FLAG_CIPHER_GCMP = 5,
IWL_SEC_KEY_FLAG_NO_TX = 8,
IWL_SEC_KEY_FLAG_KEY_SIZE = 16,
IWL_SEC_KEY_FLAG_MFP = 32,
IWL_SEC_KEY_FLAG_MCAST_KEY = 64,
IWL_SEC_KEY_FLAG_SPP_AMSDU = 128,
};
struct iwl_sec_key_cmd {
__le32 action;
union {
struct {
__le32 sta_mask;
__le32 key_id;
__le32 key_flags;
u8 key[32];
u8 tkip_mic_rx_key[8];
u8 tkip_mic_tx_key[8];
__le64 rx_seq;
__le64 tx_seq;
} __attribute__((packed)) add;
struct {
__le32 old_sta_mask;
__le32 new_sta_mask;
__le32 key_id;
__le32 key_flags;
} modify;
struct {
__le32 sta_mask;
__le32 key_id;
__le32 key_flags;
} remove;
} u;
};
struct iwl_mvm_sta_key_update_data {
struct ieee80211_sta *sta;
u32 old_sta_mask;
u32 new_sta_mask;
int err;
};
struct quirk_entry {
u16 vid;
u16 pid;
u32 flags;
};
struct mc146818_get_time_callback_param {
struct rtc_time *time;
unsigned char ctrl;
unsigned char century;
};
enum i2c_alert_protocol {
I2C_PROTOCOL_SMBUS_ALERT = 0,
I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1,
};
struct i2c_device_id;
struct i2c_board_info;
struct i2c_driver {
unsigned int class;
int (*probe)(struct i2c_client *);
void (*remove)(struct i2c_client *);
void (*shutdown)(struct i2c_client *);
void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int);
int (*command)(struct i2c_client *, unsigned int, void *);
struct device_driver driver;
const struct i2c_device_id *id_table;
int (*detect)(struct i2c_client *, struct i2c_board_info *);
const unsigned short *address_list;
struct list_head clients;
u32 flags;
};
struct i2c_device_id {
char name[20];
kernel_ulong_t driver_data;
};
struct i2c_board_info {
char type[20];
unsigned short flags;
unsigned short addr;
const char *dev_name;
void *platform_data;
struct device_node *of_node;
struct fwnode_handle *fwnode;
const struct software_node *swnode;
const struct resource *resources;
unsigned int num_resources;
int irq;
};
struct i2c_smbus_alert {
struct work_struct alert;
struct i2c_client *ara;
};
struct alert_data {
unsigned short addr;
enum i2c_alert_protocol type;
unsigned int data;
};
struct i2c_smbus_alert_setup {
int irq;
};
enum dm_io_mem_type {
DM_IO_PAGE_LIST = 0,
DM_IO_BIO = 1,
DM_IO_VMA = 2,
DM_IO_KMEM = 3,
};
struct page_list;
struct dm_io_memory {
enum dm_io_mem_type type;
unsigned int offset;
union {
struct page_list *pl;
struct bio *bio;
void *vma;
void *addr;
} ptr;
};
typedef void (*io_notify_fn)(unsigned long, void *);
struct dm_io_notify {
io_notify_fn fn;
void *context;
};
struct dm_io_client;
struct dm_io_request {
blk_opf_t bi_opf;
struct dm_io_memory mem;
struct dm_io_notify notify;
struct dm_io_client *client;
};
struct page_list {
struct page_list *next;
struct page *page;
};
struct dm_io_client {
mempool_t pool;
struct bio_set bios;
};
struct dpages {
void (*get_page)(struct dpages *, struct page **, unsigned long *, unsigned int *);
void (*next_page)(struct dpages *);
union {
unsigned int context_u;
struct bvec_iter context_bi;
};
void *context_ptr;
void *vma_invalidate_address;
unsigned long vma_invalidate_size;
};
struct dm_io_region {
struct block_device *bdev;
sector_t sector;
sector_t count;
};
struct io {
unsigned long error_bits;
atomic_t count;
struct dm_io_client *client;
io_notify_fn callback;
void *context;
void *vma_invalidate_address;
unsigned long vma_invalidate_size;
long: 64;
};
struct sync_io {
unsigned long error_bits;
struct completion wait;
};
struct pcpu_gen_cookie;
struct gen_cookie {
struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
atomic64_t forward_last;
atomic64_t reverse_last;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct pcpu_gen_cookie {
local_t nesting;
u64 last;
};
enum rtnl_link_flags {
RTNL_FLAG_DOIT_UNLOCKED = 1,
RTNL_FLAG_BULK_DEL_SUPPORTED = 2,
RTNL_FLAG_DUMP_UNLOCKED = 4,
};
enum {
NETNSA_NONE = 0,
NETNSA_NSID = 1,
NETNSA_PID = 2,
NETNSA_FD = 3,
NETNSA_TARGET_NSID = 4,
NETNSA_CURRENT_NSID = 5,
__NETNSA_MAX = 6,
};
struct net_fill_args {
u32 portid;
u32 seq;
int flags;
int cmd;
int nsid;
bool add_ref;
int ref_nsid;
};
struct rtnl_net_dump_cb {
struct net *tgt_net;
struct net *ref_net;
struct sk_buff *skb;
struct net_fill_args fillargs;
int idx;
int s_idx;
};
typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *);
typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
struct rtgenmsg {
unsigned char rtgen_family;
};
enum fib_event_type {
FIB_EVENT_ENTRY_REPLACE = 0,
FIB_EVENT_ENTRY_APPEND = 1,
FIB_EVENT_ENTRY_ADD = 2,
FIB_EVENT_ENTRY_DEL = 3,
FIB_EVENT_RULE_ADD = 4,
FIB_EVENT_RULE_DEL = 5,
FIB_EVENT_NH_ADD = 6,
FIB_EVENT_NH_DEL = 7,
FIB_EVENT_VIF_ADD = 8,
FIB_EVENT_VIF_DEL = 9,
};
enum {
IPV4_DEVCONF_FORWARDING = 1,
IPV4_DEVCONF_MC_FORWARDING = 2,
IPV4_DEVCONF_PROXY_ARP = 3,
IPV4_DEVCONF_ACCEPT_REDIRECTS = 4,
IPV4_DEVCONF_SECURE_REDIRECTS = 5,
IPV4_DEVCONF_SEND_REDIRECTS = 6,
IPV4_DEVCONF_SHARED_MEDIA = 7,
IPV4_DEVCONF_RP_FILTER = 8,
IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9,
IPV4_DEVCONF_BOOTP_RELAY = 10,
IPV4_DEVCONF_LOG_MARTIANS = 11,
IPV4_DEVCONF_TAG = 12,
IPV4_DEVCONF_ARPFILTER = 13,
IPV4_DEVCONF_MEDIUM_ID = 14,
IPV4_DEVCONF_NOXFRM = 15,
IPV4_DEVCONF_NOPOLICY = 16,
IPV4_DEVCONF_FORCE_IGMP_VERSION = 17,
IPV4_DEVCONF_ARP_ANNOUNCE = 18,
IPV4_DEVCONF_ARP_IGNORE = 19,
IPV4_DEVCONF_PROMOTE_SECONDARIES = 20,
IPV4_DEVCONF_ARP_ACCEPT = 21,
IPV4_DEVCONF_ARP_NOTIFY = 22,
IPV4_DEVCONF_ACCEPT_LOCAL = 23,
IPV4_DEVCONF_SRC_VMARK = 24,
IPV4_DEVCONF_PROXY_ARP_PVLAN = 25,
IPV4_DEVCONF_ROUTE_LOCALNET = 26,
IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27,
IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28,
IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29,
IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30,
IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31,
IPV4_DEVCONF_BC_FORWARDING = 32,
IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33,
__IPV4_DEVCONF_MAX = 34,
};
typedef unsigned int t_key;
struct key_vector {
t_key key;
unsigned char pos;
unsigned char bits;
unsigned char slen;
union {
struct hlist_head leaf;
struct {
struct {} __empty_tnode;
struct key_vector __attribute__((btf_type_tag("rcu"))) *tnode[0];
};
};
};
struct trie {
struct key_vector kv[1];
};
typedef u8 dscp_t;
struct fib_alias {
struct hlist_node fa_list;
struct fib_info *fa_info;
dscp_t fa_dscp;
u8 fa_type;
u8 fa_state;
u8 fa_slen;
u32 tb_id;
s16 fa_default;
u8 offload;
u8 trap;
u8 offload_failed;
struct callback_head rcu;
};
struct fib_table {
struct hlist_node tb_hlist;
u32 tb_id;
int tb_num_default;
struct callback_head rcu;
unsigned long *tb_data;
unsigned long __data[0];
};
struct tnode {
struct callback_head rcu;
t_key empty_children;
t_key full_children;
struct key_vector __attribute__((btf_type_tag("rcu"))) *parent;
struct key_vector kv[1];
};
struct fib_rt_info {
struct fib_info *fi;
u32 tb_id;
__be32 dst;
int dst_len;
dscp_t dscp;
u8 type;
u8 offload: 1;
u8 trap: 1;
u8 offload_failed: 1;
u8 unused: 5;
};
struct nl_info {
struct nlmsghdr *nlh;
struct net *nl_net;
u32 portid;
u8 skip_notify: 1;
u8 skip_notify_kernel: 1;
};
struct rtnexthop;
struct fib_config {
u8 fc_dst_len;
dscp_t fc_dscp;
u8 fc_protocol;
u8 fc_scope;
u8 fc_type;
u8 fc_gw_family;
u32 fc_table;
__be32 fc_dst;
union {
__be32 fc_gw4;
struct in6_addr fc_gw6;
};
int fc_oif;
u32 fc_flags;
u32 fc_priority;
__be32 fc_prefsrc;
u32 fc_nh_id;
struct nlattr *fc_mx;
struct rtnexthop *fc_mp;
int fc_mx_len;
int fc_mp_len;
u32 fc_flow;
u32 fc_nlflags;
struct nl_info fc_nlinfo;
struct nlattr *fc_encap;
u16 fc_encap_type;
};
struct rtnexthop {
unsigned short rtnh_len;
unsigned char rtnh_flags;
unsigned char rtnh_hops;
int rtnh_ifindex;
};
struct fib_notifier_info {
int family;
struct netlink_ext_ack *extack;
};
struct fib_entry_notifier_info {
struct fib_notifier_info info;
u32 dst;
int dst_len;
struct fib_info *fi;
dscp_t dscp;
u8 type;
u32 tb_id;
};
struct fib_dump_filter {
u32 table_id;
bool filter_set;
bool dump_routes;
bool dump_exceptions;
bool rtnl_held;
unsigned char protocol;
unsigned char rt_type;
unsigned int flags;
struct net_device *dev;
};
struct trie_stat {
unsigned int totdepth;
unsigned int maxdepth;
unsigned int tnodes;
unsigned int leaves;
unsigned int nullpointers;
unsigned int prefixes;
unsigned int nodesizes[32];
};
struct fib_trie_iter {
struct seq_net_private p;
struct fib_table *tb;
struct key_vector *tnode;
unsigned int index;
unsigned int depth;
};
struct fib_route_iter {
struct seq_net_private p;
struct fib_table *main_tb;
struct key_vector *tnode;
loff_t pos;
t_key key;
};
struct fib_result {
__be32 prefix;
unsigned char prefixlen;
unsigned char nh_sel;
unsigned char type;
unsigned char scope;
u32 tclassid;
struct fib_nh_common *nhc;
struct fib_info *fi;
struct fib_table *table;
struct hlist_head *fa_head;
};
enum ieee80211_eid_ext {
WLAN_EID_EXT_ASSOC_DELAY_INFO = 1,
WLAN_EID_EXT_FILS_REQ_PARAMS = 2,
WLAN_EID_EXT_FILS_KEY_CONFIRM = 3,
WLAN_EID_EXT_FILS_SESSION = 4,
WLAN_EID_EXT_FILS_HLP_CONTAINER = 5,
WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN = 6,
WLAN_EID_EXT_KEY_DELIVERY = 7,
WLAN_EID_EXT_FILS_WRAPPED_DATA = 8,
WLAN_EID_EXT_FILS_PUBLIC_KEY = 12,
WLAN_EID_EXT_FILS_NONCE = 13,
WLAN_EID_EXT_FUTURE_CHAN_GUIDANCE = 14,
WLAN_EID_EXT_HE_CAPABILITY = 35,
WLAN_EID_EXT_HE_OPERATION = 36,
WLAN_EID_EXT_UORA = 37,
WLAN_EID_EXT_HE_MU_EDCA = 38,
WLAN_EID_EXT_HE_SPR = 39,
WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41,
WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42,
WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43,
WLAN_EID_EXT_ESS_REPORT = 45,
WLAN_EID_EXT_OPS = 46,
WLAN_EID_EXT_HE_BSS_LOAD = 47,
WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52,
WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55,
WLAN_EID_EXT_NON_INHERITANCE = 56,
WLAN_EID_EXT_KNOWN_BSSID = 57,
WLAN_EID_EXT_SHORT_SSID_LIST = 58,
WLAN_EID_EXT_HE_6GHZ_CAPA = 59,
WLAN_EID_EXT_UL_MU_POWER_CAPA = 60,
WLAN_EID_EXT_EHT_OPERATION = 106,
WLAN_EID_EXT_EHT_MULTI_LINK = 107,
WLAN_EID_EXT_EHT_CAPABILITY = 108,
WLAN_EID_EXT_TID_TO_LINK_MAPPING = 109,
WLAN_EID_EXT_BANDWIDTH_INDICATION = 135,
};
typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *);
typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *);
struct fpu_state_config {
unsigned int max_size;
unsigned int default_size;
u64 max_features;
u64 default_features;
u64 legacy_features;
};
struct trace_event_raw_x86_fpu {
struct trace_entry ent;
struct fpu *fpu;
bool load_fpu;
u64 xfeatures;
u64 xcomp_bv;
char __data[0];
};
struct trace_event_data_offsets_x86_fpu {};
enum perf_sample_regs_abi {
PERF_SAMPLE_REGS_ABI_NONE = 0,
PERF_SAMPLE_REGS_ABI_32 = 1,
PERF_SAMPLE_REGS_ABI_64 = 2,
};
struct x86_perf_regs {
struct pt_regs regs;
u64 *xmm_regs;
};
enum tick_device_mode {
TICKDEV_MODE_PERIODIC = 0,
TICKDEV_MODE_ONESHOT = 1,
};
struct tick_device {
struct clock_event_device *evtdev;
enum tick_device_mode mode;
};
enum tick_broadcast_state {
TICK_BROADCAST_EXIT = 0,
TICK_BROADCAST_ENTER = 1,
};
enum bpf_lru_list_type {
BPF_LRU_LIST_T_ACTIVE = 0,
BPF_LRU_LIST_T_INACTIVE = 1,
BPF_LRU_LIST_T_FREE = 2,
BPF_LRU_LOCAL_LIST_T_FREE = 3,
BPF_LRU_LOCAL_LIST_T_PENDING = 4,
};
struct bpf_lru_list {
struct list_head lists[3];
unsigned int counts[2];
struct list_head *next_inactive_rotation;
raw_spinlock_t lock;
};
struct bpf_lru_locallist {
struct list_head lists[2];
u16 next_steal;
raw_spinlock_t lock;
};
struct bpf_lru_node {
struct list_head list;
u16 cpu;
u8 type;
u8 ref;
};
struct bpf_common_lru {
struct bpf_lru_list lru_list;
struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *);
struct bpf_lru {
union {
struct bpf_common_lru common_lru;
struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru;
};
del_from_htab_func del_from_htab;
void *del_arg;
unsigned int hash_offset;
unsigned int nr_scans;
bool percpu;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct vm_event_state {
unsigned long event[98];
};
enum writeback_stat_item {
NR_DIRTY_THRESHOLD = 0,
NR_DIRTY_BG_THRESHOLD = 1,
NR_VM_WRITEBACK_STAT_ITEMS = 2,
};
struct contig_page_info {
unsigned long free_pages;
unsigned long free_blocks_total;
unsigned long free_blocks_suitable;
};
struct files_stat_struct {
unsigned long nr_files;
unsigned long nr_free_files;
unsigned long max_files;
};
struct backing_file {
struct file file;
struct path user_path;
};
struct inotify_inode_mark {
struct fsnotify_mark fsn_mark;
int wd;
};
struct inotify_event_info {
struct fsnotify_event fse;
u32 mask;
int wd;
u32 sync_cookie;
int name_len;
char name[0];
};
struct inotify_event {
__s32 wd;
__u32 mask;
__u32 cookie;
__u32 len;
char name[0];
};
typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t);
typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *);
typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int);
typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int);
typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *);
typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int);
typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *);
typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long);
typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t);
typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int);
typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int);
typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int);
typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *);
typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *);
typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *);
typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int);
typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *);
typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *);
typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t);
typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t);
typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long);
struct ext4_allocation_context;
struct ext4_prealloc_space;
typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
struct ext4_free_extent {
ext4_lblk_t fe_logical;
ext4_grpblk_t fe_start;
ext4_group_t fe_group;
ext4_grpblk_t fe_len;
};
struct ext4_allocation_context {
struct inode *ac_inode;
struct super_block *ac_sb;
struct ext4_free_extent ac_o_ex;
struct ext4_free_extent ac_g_ex;
struct ext4_free_extent ac_b_ex;
struct ext4_free_extent ac_f_ex;
ext4_grpblk_t ac_orig_goal_len;
__u32 ac_flags;
__u16 ac_groups_scanned;
__u16 ac_groups_linear_remaining;
__u16 ac_found;
__u16 ac_cX_found[5];
__u16 ac_tail;
__u16 ac_buddy;
__u8 ac_status;
__u8 ac_criteria;
__u8 ac_2order;
__u8 ac_op;
struct page *ac_bitmap_page;
struct page *ac_buddy_page;
struct ext4_prealloc_space *ac_pa;
struct ext4_locality_group *ac_lg;
};
struct ext4_prealloc_space {
union {
struct rb_node inode_node;
struct list_head lg_list;
} pa_node;
struct list_head pa_group_list;
union {
struct list_head pa_tmp_list;
struct callback_head pa_rcu;
} u;
spinlock_t pa_lock;
atomic_t pa_count;
unsigned int pa_deleted;
ext4_fsblk_t pa_pstart;
ext4_lblk_t pa_lstart;
ext4_grpblk_t pa_len;
ext4_grpblk_t pa_free;
unsigned short pa_type;
union {
rwlock_t *inode_lock;
spinlock_t *lg_lock;
} pa_node_lock;
struct inode *pa_inode;
};
typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *);
typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int);
typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *);
typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int);
typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int);
typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *);
typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long);
typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int);
typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int);
typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int);
typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int);
typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *);
typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *);
typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *);
typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64);
typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int);
typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *);
typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int);
typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long);
typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long);
typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long);
typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool);
typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int);
typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int);
typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int);
typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int);
typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *);
typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int);
typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *);
typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *);
typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *);
typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *);
typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int);
typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int);
typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t);
typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long);
typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long);
typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long);
typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long);
typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t);
typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t);
typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int);
typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short);
struct partial_cluster;
typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *);
struct partial_cluster {
ext4_fsblk_t pclu;
ext4_lblk_t lblk;
enum {
initial = 0,
tofree = 1,
nofree = 2,
} state;
};
typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *);
typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t);
typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int);
typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16);
typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *);
typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *);
typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t);
typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t);
typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *);
typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t);
typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int);
typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int);
typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int);
typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int);
typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t);
typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t);
typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int);
typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool);
typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64);
typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64);
struct ext4_fsmap;
typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *);
struct ext4_fsmap {
struct list_head fmr_list;
dev_t fmr_device;
uint32_t fmr_flags;
uint64_t fmr_physical;
uint64_t fmr_owner;
uint64_t fmr_length;
};
typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *);
typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *);
typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long);
typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int);
typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int);
typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t);
typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int);
typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int);
typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t);
typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t);
typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *);
typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int);
typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int);
typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int);
typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int);
typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int);
typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t);
typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int);
struct ext4_lazy_init {
unsigned long li_state;
struct list_head li_request_list;
struct mutex li_list_mtx;
};
struct ext4_err_translation {
int code;
int errno;
};
struct mount_opts {
int token;
int mount_opt;
int flags;
};
struct constant_table {
const char *name;
int value;
};
enum {
ES_WRITTEN_B = 0,
ES_UNWRITTEN_B = 1,
ES_DELAYED_B = 2,
ES_HOLE_B = 3,
ES_REFERENCED_B = 4,
ES_FLAGS = 5,
};
enum {
EXT4_FC_REASON_XATTR = 0,
EXT4_FC_REASON_CROSS_RENAME = 1,
EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2,
EXT4_FC_REASON_NOMEM = 3,
EXT4_FC_REASON_SWAP_BOOT = 4,
EXT4_FC_REASON_RESIZE = 5,
EXT4_FC_REASON_RENAME_DIR = 6,
EXT4_FC_REASON_FALLOC_RANGE = 7,
EXT4_FC_REASON_INODE_JOURNAL_DATA = 8,
EXT4_FC_REASON_ENCRYPTED_FILENAME = 9,
EXT4_FC_REASON_MAX = 10,
};
enum {
Opt_bsd_df = 0,
Opt_minix_df = 1,
Opt_grpid = 2,
Opt_nogrpid = 3,
Opt_resgid = 4,
Opt_resuid = 5,
Opt_sb = 6,
Opt_nouid32 = 7,
Opt_debug___2 = 8,
Opt_removed = 9,
Opt_user_xattr = 10,
Opt_acl = 11,
Opt_auto_da_alloc = 12,
Opt_noauto_da_alloc = 13,
Opt_noload = 14,
Opt_commit = 15,
Opt_min_batch_time = 16,
Opt_max_batch_time = 17,
Opt_journal_dev = 18,
Opt_journal_path = 19,
Opt_journal_checksum = 20,
Opt_journal_async_commit = 21,
Opt_abort = 22,
Opt_data_journal = 23,
Opt_data_ordered = 24,
Opt_data_writeback = 25,
Opt_data_err_abort = 26,
Opt_data_err_ignore = 27,
Opt_test_dummy_encryption = 28,
Opt_inlinecrypt = 29,
Opt_usrjquota = 30,
Opt_grpjquota = 31,
Opt_quota = 32,
Opt_noquota = 33,
Opt_barrier = 34,
Opt_nobarrier = 35,
Opt_err___2 = 36,
Opt_usrquota = 37,
Opt_grpquota = 38,
Opt_prjquota = 39,
Opt_dax = 40,
Opt_dax_always = 41,
Opt_dax_inode = 42,
Opt_dax_never = 43,
Opt_stripe = 44,
Opt_delalloc = 45,
Opt_nodelalloc = 46,
Opt_warn_on_error = 47,
Opt_nowarn_on_error = 48,
Opt_mblk_io_submit = 49,
Opt_debug_want_extra_isize = 50,
Opt_nomblk_io_submit = 51,
Opt_block_validity = 52,
Opt_noblock_validity = 53,
Opt_inode_readahead_blks = 54,
Opt_journal_ioprio = 55,
Opt_dioread_nolock = 56,
Opt_dioread_lock = 57,
Opt_discard___2 = 58,
Opt_nodiscard = 59,
Opt_init_itable = 60,
Opt_noinit_itable = 61,
Opt_max_dir_size_kb = 62,
Opt_nojournal_checksum = 63,
Opt_nombcache = 64,
Opt_no_prefetch_block_bitmaps = 65,
Opt_mb_optimize_scan = 66,
Opt_errors = 67,
Opt_data = 68,
Opt_data_err = 69,
Opt_jqfmt = 70,
Opt_dax_type = 71,
};
enum {
IOPRIO_CLASS_NONE = 0,
IOPRIO_CLASS_RT = 1,
IOPRIO_CLASS_BE = 2,
IOPRIO_CLASS_IDLE = 3,
IOPRIO_CLASS_INVALID = 7,
};
enum {
IOPRIO_HINT_NONE = 0,
IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1,
IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2,
IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3,
IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4,
IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5,
IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6,
IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7,
};
enum positive_aop_returns {
AOP_WRITEPAGE_ACTIVATE = 524288,
AOP_TRUNCATED_PAGE = 524289,
};
struct trace_event_raw_ext4_other_inode_update_time {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ino_t orig_ino;
uid_t uid;
gid_t gid;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_free_inode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
uid_t uid;
gid_t gid;
__u64 blocks;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_request_inode {
struct trace_entry ent;
dev_t dev;
ino_t dir;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_allocate_inode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ino_t dir;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_evict_inode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int nlink;
char __data[0];
};
struct trace_event_raw_ext4_drop_inode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int drop;
char __data[0];
};
struct trace_event_raw_ext4_nfs_commit_metadata {
struct trace_entry ent;
dev_t dev;
ino_t ino;
char __data[0];
};
struct trace_event_raw_ext4_mark_inode_dirty {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned long ip;
char __data[0];
};
struct trace_event_raw_ext4_begin_ordered_truncate {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t new_size;
char __data[0];
};
struct trace_event_raw_ext4__write_begin {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t pos;
unsigned int len;
char __data[0];
};
struct trace_event_raw_ext4__write_end {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t pos;
unsigned int len;
unsigned int copied;
char __data[0];
};
struct trace_event_raw_ext4_writepages {
struct trace_entry ent;
dev_t dev;
ino_t ino;
long nr_to_write;
long pages_skipped;
loff_t range_start;
loff_t range_end;
unsigned long writeback_index;
int sync_mode;
char for_kupdate;
char range_cyclic;
char __data[0];
};
struct trace_event_raw_ext4_da_write_pages {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned long first_page;
long nr_to_write;
int sync_mode;
char __data[0];
};
struct trace_event_raw_ext4_da_write_pages_extent {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 lblk;
__u32 len;
__u32 flags;
char __data[0];
};
struct trace_event_raw_ext4_writepages_result {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int ret;
int pages_written;
long pages_skipped;
unsigned long writeback_index;
int sync_mode;
char __data[0];
};
struct trace_event_raw_ext4__folio_op {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned long index;
char __data[0];
};
struct trace_event_raw_ext4_invalidate_folio_op {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned long index;
size_t offset;
size_t length;
char __data[0];
};
struct trace_event_raw_ext4_discard_blocks {
struct trace_entry ent;
dev_t dev;
__u64 blk;
__u64 count;
char __data[0];
};
struct trace_event_raw_ext4__mb_new_pa {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 pa_pstart;
__u64 pa_lstart;
__u32 pa_len;
char __data[0];
};
struct trace_event_raw_ext4_mb_release_inode_pa {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 block;
__u32 count;
char __data[0];
};
struct trace_event_raw_ext4_mb_release_group_pa {
struct trace_entry ent;
dev_t dev;
__u64 pa_pstart;
__u32 pa_len;
char __data[0];
};
struct trace_event_raw_ext4_discard_preallocations {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned int len;
char __data[0];
};
struct trace_event_raw_ext4_mb_discard_preallocations {
struct trace_entry ent;
dev_t dev;
int needed;
char __data[0];
};
struct trace_event_raw_ext4_request_blocks {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned int len;
__u32 logical;
__u32 lleft;
__u32 lright;
__u64 goal;
__u64 pleft;
__u64 pright;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_ext4_allocate_blocks {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 block;
unsigned int len;
__u32 logical;
__u32 lleft;
__u32 lright;
__u64 goal;
__u64 pleft;
__u64 pright;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_ext4_free_blocks {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 block;
unsigned long count;
int flags;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_sync_file_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ino_t parent;
int datasync;
char __data[0];
};
struct trace_event_raw_ext4_sync_file_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int ret;
char __data[0];
};
struct trace_event_raw_ext4_sync_fs {
struct trace_entry ent;
dev_t dev;
int wait;
char __data[0];
};
struct trace_event_raw_ext4_alloc_da_blocks {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned int data_blocks;
char __data[0];
};
struct trace_event_raw_ext4_mballoc_alloc {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u32 orig_logical;
int orig_start;
__u32 orig_group;
int orig_len;
__u32 goal_logical;
int goal_start;
__u32 goal_group;
int goal_len;
__u32 result_logical;
int result_start;
__u32 result_group;
int result_len;
__u16 found;
__u16 groups;
__u16 buddy;
__u16 flags;
__u16 tail;
__u8 cr;
char __data[0];
};
struct trace_event_raw_ext4_mballoc_prealloc {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u32 orig_logical;
int orig_start;
__u32 orig_group;
int orig_len;
__u32 result_logical;
int result_start;
__u32 result_group;
int result_len;
char __data[0];
};
struct trace_event_raw_ext4__mballoc {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int result_start;
__u32 result_group;
int result_len;
char __data[0];
};
struct trace_event_raw_ext4_forget {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 block;
int is_metadata;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_da_update_reserve_space {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 i_blocks;
int used_blocks;
int reserved_data_blocks;
int quota_claim;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_da_reserve_space {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 i_blocks;
int reserved_data_blocks;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4_da_release_space {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 i_blocks;
int freed_blocks;
int reserved_data_blocks;
__u16 mode;
char __data[0];
};
struct trace_event_raw_ext4__bitmap_load {
struct trace_entry ent;
dev_t dev;
__u32 group;
char __data[0];
};
struct trace_event_raw_ext4_read_block_bitmap_load {
struct trace_entry ent;
dev_t dev;
__u32 group;
bool prefetch;
char __data[0];
};
struct trace_event_raw_ext4__fallocate_mode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t offset;
loff_t len;
int mode;
char __data[0];
};
struct trace_event_raw_ext4_fallocate_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t pos;
unsigned int blocks;
int ret;
char __data[0];
};
struct trace_event_raw_ext4_unlink_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ino_t parent;
loff_t size;
char __data[0];
};
struct trace_event_raw_ext4_unlink_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int ret;
char __data[0];
};
struct trace_event_raw_ext4__truncate {
struct trace_entry ent;
dev_t dev;
ino_t ino;
__u64 blocks;
char __data[0];
};
struct trace_event_raw_ext4_ext_convert_to_initialized_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t m_lblk;
unsigned int m_len;
ext4_lblk_t u_lblk;
unsigned int u_len;
ext4_fsblk_t u_pblk;
char __data[0];
};
struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t m_lblk;
unsigned int m_len;
ext4_lblk_t u_lblk;
unsigned int u_len;
ext4_fsblk_t u_pblk;
ext4_lblk_t i_lblk;
unsigned int i_len;
ext4_fsblk_t i_pblk;
char __data[0];
};
struct trace_event_raw_ext4__map_blocks_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
unsigned int len;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_ext4__map_blocks_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned int flags;
ext4_fsblk_t pblk;
ext4_lblk_t lblk;
unsigned int len;
unsigned int mflags;
int ret;
char __data[0];
};
struct trace_event_raw_ext4_ext_load_extent {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_fsblk_t pblk;
ext4_lblk_t lblk;
char __data[0];
};
struct trace_event_raw_ext4_load_inode {
struct trace_entry ent;
dev_t dev;
ino_t ino;
char __data[0];
};
struct trace_event_raw_ext4_journal_start_sb {
struct trace_entry ent;
dev_t dev;
unsigned long ip;
int blocks;
int rsv_blocks;
int revoke_creds;
int type;
char __data[0];
};
struct trace_event_raw_ext4_journal_start_inode {
struct trace_entry ent;
unsigned long ino;
dev_t dev;
unsigned long ip;
int blocks;
int rsv_blocks;
int revoke_creds;
int type;
char __data[0];
};
struct trace_event_raw_ext4_journal_start_reserved {
struct trace_entry ent;
dev_t dev;
unsigned long ip;
int blocks;
char __data[0];
};
struct trace_event_raw_ext4__trim {
struct trace_entry ent;
int dev_major;
int dev_minor;
__u32 group;
int start;
int len;
char __data[0];
};
struct trace_event_raw_ext4_ext_handle_unwritten_extents {
struct trace_entry ent;
dev_t dev;
ino_t ino;
int flags;
ext4_lblk_t lblk;
ext4_fsblk_t pblk;
unsigned int len;
unsigned int allocated;
ext4_fsblk_t newblk;
char __data[0];
};
struct trace_event_raw_ext4_get_implied_cluster_alloc_exit {
struct trace_entry ent;
dev_t dev;
unsigned int flags;
ext4_lblk_t lblk;
ext4_fsblk_t pblk;
unsigned int len;
int ret;
char __data[0];
};
struct trace_event_raw_ext4_ext_show_extent {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_fsblk_t pblk;
ext4_lblk_t lblk;
unsigned short len;
char __data[0];
};
struct trace_event_raw_ext4_remove_blocks {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t from;
ext4_lblk_t to;
ext4_fsblk_t ee_pblk;
ext4_lblk_t ee_lblk;
unsigned short ee_len;
ext4_fsblk_t pc_pclu;
ext4_lblk_t pc_lblk;
int pc_state;
char __data[0];
};
struct trace_event_raw_ext4_ext_rm_leaf {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t start;
ext4_lblk_t ee_lblk;
ext4_fsblk_t ee_pblk;
short ee_len;
ext4_fsblk_t pc_pclu;
ext4_lblk_t pc_lblk;
int pc_state;
char __data[0];
};
struct trace_event_raw_ext4_ext_rm_idx {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_fsblk_t pblk;
char __data[0];
};
struct trace_event_raw_ext4_ext_remove_space {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t start;
ext4_lblk_t end;
int depth;
char __data[0];
};
struct trace_event_raw_ext4_ext_remove_space_done {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t start;
ext4_lblk_t end;
int depth;
ext4_fsblk_t pc_pclu;
ext4_lblk_t pc_lblk;
int pc_state;
unsigned short eh_entries;
char __data[0];
};
struct trace_event_raw_ext4__es_extent {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
ext4_lblk_t len;
ext4_fsblk_t pblk;
char status;
char __data[0];
};
struct trace_event_raw_ext4_es_remove_extent {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t lblk;
loff_t len;
char __data[0];
};
struct trace_event_raw_ext4_es_find_extent_range_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
char __data[0];
};
struct trace_event_raw_ext4_es_find_extent_range_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
ext4_lblk_t len;
ext4_fsblk_t pblk;
char status;
char __data[0];
};
struct trace_event_raw_ext4_es_lookup_extent_enter {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
char __data[0];
};
struct trace_event_raw_ext4_es_lookup_extent_exit {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
ext4_lblk_t len;
ext4_fsblk_t pblk;
char status;
int found;
char __data[0];
};
struct trace_event_raw_ext4__es_shrink_enter {
struct trace_entry ent;
dev_t dev;
int nr_to_scan;
int cache_cnt;
char __data[0];
};
struct trace_event_raw_ext4_es_shrink_scan_exit {
struct trace_entry ent;
dev_t dev;
int nr_shrunk;
int cache_cnt;
char __data[0];
};
struct trace_event_raw_ext4_collapse_range {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t offset;
loff_t len;
char __data[0];
};
struct trace_event_raw_ext4_insert_range {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t offset;
loff_t len;
char __data[0];
};
struct trace_event_raw_ext4_es_shrink {
struct trace_entry ent;
dev_t dev;
int nr_shrunk;
unsigned long long scan_time;
int nr_skipped;
int retried;
char __data[0];
};
struct trace_event_raw_ext4_es_insert_delayed_block {
struct trace_entry ent;
dev_t dev;
ino_t ino;
ext4_lblk_t lblk;
ext4_lblk_t len;
ext4_fsblk_t pblk;
char status;
bool allocated;
char __data[0];
};
struct trace_event_raw_ext4_fsmap_class {
struct trace_entry ent;
dev_t dev;
dev_t keydev;
u32 agno;
u64 bno;
u64 len;
u64 owner;
char __data[0];
};
struct trace_event_raw_ext4_getfsmap_class {
struct trace_entry ent;
dev_t dev;
dev_t keydev;
u64 block;
u64 len;
u64 owner;
u64 flags;
char __data[0];
};
struct trace_event_raw_ext4_shutdown {
struct trace_entry ent;
dev_t dev;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_ext4_error {
struct trace_entry ent;
dev_t dev;
const char *function;
unsigned int line;
char __data[0];
};
struct trace_event_raw_ext4_prefetch_bitmaps {
struct trace_entry ent;
dev_t dev;
__u32 group;
__u32 next;
__u32 ios;
char __data[0];
};
struct trace_event_raw_ext4_lazy_itable_init {
struct trace_entry ent;
dev_t dev;
__u32 group;
char __data[0];
};
struct trace_event_raw_ext4_fc_replay_scan {
struct trace_entry ent;
dev_t dev;
int error;
int off;
char __data[0];
};
struct trace_event_raw_ext4_fc_replay {
struct trace_entry ent;
dev_t dev;
int tag;
int ino;
int priv1;
int priv2;
char __data[0];
};
struct trace_event_raw_ext4_fc_commit_start {
struct trace_entry ent;
dev_t dev;
tid_t tid;
char __data[0];
};
struct trace_event_raw_ext4_fc_commit_stop {
struct trace_entry ent;
dev_t dev;
int nblks;
int reason;
int num_fc;
int num_fc_ineligible;
int nblks_agg;
tid_t tid;
char __data[0];
};
struct trace_event_raw_ext4_fc_stats {
struct trace_entry ent;
dev_t dev;
unsigned int fc_ineligible_rc[10];
unsigned long fc_commits;
unsigned long fc_ineligible_commits;
unsigned long fc_numblks;
char __data[0];
};
struct trace_event_raw_ext4_fc_track_dentry {
struct trace_entry ent;
dev_t dev;
tid_t t_tid;
ino_t i_ino;
tid_t i_sync_tid;
int error;
char __data[0];
};
struct trace_event_raw_ext4_fc_track_inode {
struct trace_entry ent;
dev_t dev;
tid_t t_tid;
ino_t i_ino;
tid_t i_sync_tid;
int error;
char __data[0];
};
struct trace_event_raw_ext4_fc_track_range {
struct trace_entry ent;
dev_t dev;
tid_t t_tid;
ino_t i_ino;
tid_t i_sync_tid;
long start;
long end;
int error;
char __data[0];
};
struct trace_event_raw_ext4_fc_cleanup {
struct trace_entry ent;
dev_t dev;
int j_fc_off;
int full;
tid_t tid;
char __data[0];
};
struct trace_event_raw_ext4_update_sb {
struct trace_entry ent;
dev_t dev;
ext4_fsblk_t fsblk;
unsigned int flags;
char __data[0];
};
struct ext4_journal_cb_entry {
struct list_head jce_list;
void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int);
};
struct fs_error_report {
int error;
struct inode *inode;
struct super_block *sb;
};
typedef enum {
EXT4_IGET_NORMAL = 0,
EXT4_IGET_SPECIAL = 1,
EXT4_IGET_HANDLE = 2,
EXT4_IGET_BAD = 4,
EXT4_IGET_EA_INODE = 8,
} ext4_iget_flags;
struct ext4_fs_context {
char *s_qf_names[3];
struct fscrypt_dummy_policy dummy_enc_policy;
int s_jquota_fmt;
unsigned short qname_spec;
unsigned long vals_s_flags;
unsigned long mask_s_flags;
unsigned long journal_devnum;
unsigned long s_commit_interval;
unsigned long s_stripe;
unsigned int s_inode_readahead_blks;
unsigned int s_want_extra_isize;
unsigned int s_li_wait_mult;
unsigned int s_max_dir_size_kb;
unsigned int journal_ioprio;
unsigned int vals_s_mount_opt;
unsigned int mask_s_mount_opt;
unsigned int vals_s_mount_opt2;
unsigned int mask_s_mount_opt2;
unsigned int opt_flags;
unsigned int spec;
u32 s_max_batch_time;
u32 s_min_batch_time;
kuid_t s_resuid;
kgid_t s_resgid;
ext4_fsblk_t s_sb_block;
};
struct ext4_mount_options {
unsigned long s_mount_opt;
unsigned long s_mount_opt2;
kuid_t s_resuid;
kgid_t s_resgid;
unsigned long s_commit_interval;
u32 s_min_batch_time;
u32 s_max_batch_time;
};
struct trace_event_data_offsets_ext4_other_inode_update_time {};
struct trace_event_data_offsets_ext4_free_inode {};
struct trace_event_data_offsets_ext4_request_inode {};
struct trace_event_data_offsets_ext4_allocate_inode {};
struct trace_event_data_offsets_ext4_evict_inode {};
struct trace_event_data_offsets_ext4_drop_inode {};
struct trace_event_data_offsets_ext4_nfs_commit_metadata {};
struct trace_event_data_offsets_ext4_mark_inode_dirty {};
struct trace_event_data_offsets_ext4_begin_ordered_truncate {};
struct trace_event_data_offsets_ext4__write_begin {};
struct trace_event_data_offsets_ext4__write_end {};
struct trace_event_data_offsets_ext4_writepages {};
struct trace_event_data_offsets_ext4_da_write_pages {};
struct trace_event_data_offsets_ext4_da_write_pages_extent {};
struct trace_event_data_offsets_ext4_writepages_result {};
struct trace_event_data_offsets_ext4__folio_op {};
struct trace_event_data_offsets_ext4_invalidate_folio_op {};
struct trace_event_data_offsets_ext4_discard_blocks {};
struct trace_event_data_offsets_ext4__mb_new_pa {};
struct trace_event_data_offsets_ext4_mb_release_inode_pa {};
struct trace_event_data_offsets_ext4_mb_release_group_pa {};
struct trace_event_data_offsets_ext4_discard_preallocations {};
struct trace_event_data_offsets_ext4_mb_discard_preallocations {};
struct trace_event_data_offsets_ext4_request_blocks {};
struct trace_event_data_offsets_ext4_allocate_blocks {};
struct trace_event_data_offsets_ext4_free_blocks {};
struct trace_event_data_offsets_ext4_sync_file_enter {};
struct trace_event_data_offsets_ext4_sync_file_exit {};
struct trace_event_data_offsets_ext4_sync_fs {};
struct trace_event_data_offsets_ext4_alloc_da_blocks {};
struct trace_event_data_offsets_ext4_mballoc_alloc {};
struct trace_event_data_offsets_ext4_mballoc_prealloc {};
struct trace_event_data_offsets_ext4__mballoc {};
struct trace_event_data_offsets_ext4_forget {};
struct trace_event_data_offsets_ext4_da_update_reserve_space {};
struct trace_event_data_offsets_ext4_da_reserve_space {};
struct trace_event_data_offsets_ext4_da_release_space {};
struct trace_event_data_offsets_ext4__bitmap_load {};
struct trace_event_data_offsets_ext4_read_block_bitmap_load {};
struct trace_event_data_offsets_ext4__fallocate_mode {};
struct trace_event_data_offsets_ext4_fallocate_exit {};
struct trace_event_data_offsets_ext4_unlink_enter {};
struct trace_event_data_offsets_ext4_unlink_exit {};
struct trace_event_data_offsets_ext4__truncate {};
struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {};
struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {};
struct trace_event_data_offsets_ext4__map_blocks_enter {};
struct trace_event_data_offsets_ext4__map_blocks_exit {};
struct trace_event_data_offsets_ext4_ext_load_extent {};
struct trace_event_data_offsets_ext4_load_inode {};
struct trace_event_data_offsets_ext4_journal_start_sb {};
struct trace_event_data_offsets_ext4_journal_start_inode {};
struct trace_event_data_offsets_ext4_journal_start_reserved {};
struct trace_event_data_offsets_ext4__trim {};
struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {};
struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {};
struct trace_event_data_offsets_ext4_ext_show_extent {};
struct trace_event_data_offsets_ext4_remove_blocks {};
struct trace_event_data_offsets_ext4_ext_rm_leaf {};
struct trace_event_data_offsets_ext4_ext_rm_idx {};
struct trace_event_data_offsets_ext4_ext_remove_space {};
struct trace_event_data_offsets_ext4_ext_remove_space_done {};
struct trace_event_data_offsets_ext4__es_extent {};
struct trace_event_data_offsets_ext4_es_remove_extent {};
struct trace_event_data_offsets_ext4_es_find_extent_range_enter {};
struct trace_event_data_offsets_ext4_es_find_extent_range_exit {};
struct trace_event_data_offsets_ext4_es_lookup_extent_enter {};
struct trace_event_data_offsets_ext4_es_lookup_extent_exit {};
struct trace_event_data_offsets_ext4__es_shrink_enter {};
struct trace_event_data_offsets_ext4_es_shrink_scan_exit {};
struct trace_event_data_offsets_ext4_collapse_range {};
struct trace_event_data_offsets_ext4_insert_range {};
struct trace_event_data_offsets_ext4_es_shrink {};
struct trace_event_data_offsets_ext4_es_insert_delayed_block {};
struct trace_event_data_offsets_ext4_fsmap_class {};
struct trace_event_data_offsets_ext4_getfsmap_class {};
struct trace_event_data_offsets_ext4_shutdown {};
struct trace_event_data_offsets_ext4_error {};
struct trace_event_data_offsets_ext4_prefetch_bitmaps {};
struct trace_event_data_offsets_ext4_lazy_itable_init {};
struct trace_event_data_offsets_ext4_fc_replay_scan {};
struct trace_event_data_offsets_ext4_fc_replay {};
struct trace_event_data_offsets_ext4_fc_commit_start {};
struct trace_event_data_offsets_ext4_fc_commit_stop {};
struct trace_event_data_offsets_ext4_fc_stats {};
struct trace_event_data_offsets_ext4_fc_track_dentry {};
struct trace_event_data_offsets_ext4_fc_track_inode {};
struct trace_event_data_offsets_ext4_fc_track_range {};
struct trace_event_data_offsets_ext4_fc_cleanup {};
struct trace_event_data_offsets_ext4_update_sb {};
enum smbios_attr_enum {
SMBIOS_ATTR_NONE = 0,
SMBIOS_ATTR_LABEL_SHOW = 1,
SMBIOS_ATTR_INSTANCE_SHOW = 2,
};
enum dmi_device_type {
DMI_DEV_TYPE_ANY = 0,
DMI_DEV_TYPE_OTHER = 1,
DMI_DEV_TYPE_UNKNOWN = 2,
DMI_DEV_TYPE_VIDEO = 3,
DMI_DEV_TYPE_SCSI = 4,
DMI_DEV_TYPE_ETHERNET = 5,
DMI_DEV_TYPE_TOKENRING = 6,
DMI_DEV_TYPE_SOUND = 7,
DMI_DEV_TYPE_PATA = 8,
DMI_DEV_TYPE_SATA = 9,
DMI_DEV_TYPE_SAS = 10,
DMI_DEV_TYPE_IPMI = -1,
DMI_DEV_TYPE_OEM_STRING = -2,
DMI_DEV_TYPE_DEV_ONBOARD = -3,
DMI_DEV_TYPE_DEV_SLOT = -4,
};
enum acpi_attr_enum {
ACPI_ATTR_LABEL_SHOW = 0,
ACPI_ATTR_INDEX_SHOW = 1,
};
struct dmi_device {
struct list_head list;
int type;
const char *name;
void *device_data;
};
struct dmi_dev_onboard {
struct dmi_device dev;
int instance;
int segment;
int bus;
int devfn;
};
enum v4l2_fwnode_bus_type {
V4L2_FWNODE_BUS_TYPE_GUESS = 0,
V4L2_FWNODE_BUS_TYPE_CSI2_CPHY = 1,
V4L2_FWNODE_BUS_TYPE_CSI1 = 2,
V4L2_FWNODE_BUS_TYPE_CCP2 = 3,
V4L2_FWNODE_BUS_TYPE_CSI2_DPHY = 4,
V4L2_FWNODE_BUS_TYPE_PARALLEL = 5,
V4L2_FWNODE_BUS_TYPE_BT656 = 6,
V4L2_FWNODE_BUS_TYPE_DPI = 7,
NR_OF_V4L2_FWNODE_BUS_TYPE = 8,
};
enum acpi_device_swnode_ep_props {
ACPI_DEVICE_SWNODE_EP_REMOTE_EP = 0,
ACPI_DEVICE_SWNODE_EP_BUS_TYPE = 1,
ACPI_DEVICE_SWNODE_EP_REG = 2,
ACPI_DEVICE_SWNODE_EP_CLOCK_LANES = 3,
ACPI_DEVICE_SWNODE_EP_DATA_LANES = 4,
ACPI_DEVICE_SWNODE_EP_LANE_POLARITIES = 5,
ACPI_DEVICE_SWNODE_EP_LINK_FREQUENCIES = 6,
ACPI_DEVICE_SWNODE_EP_NUM_OF = 7,
ACPI_DEVICE_SWNODE_EP_NUM_ENTRIES = 8,
};
enum acpi_device_swnode_port_props {
ACPI_DEVICE_SWNODE_PORT_REG = 0,
ACPI_DEVICE_SWNODE_PORT_NUM_OF = 1,
ACPI_DEVICE_SWNODE_PORT_NUM_ENTRIES = 2,
};
enum acpi_device_swnode_dev_props {
ACPI_DEVICE_SWNODE_DEV_ROTATION = 0,
ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY = 1,
ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP = 2,
ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP = 3,
ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US = 4,
ACPI_DEVICE_SWNODE_DEV_NUM_OF = 5,
ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES = 6,
};
struct crs_csi2 {
struct list_head entry;
acpi_handle handle;
struct acpi_device_software_nodes *swnodes;
struct list_head connections;
u32 port_count;
};
struct crs_csi2_connection {
struct list_head entry;
struct acpi_resource_csi2_serialbus csi2_data;
acpi_handle remote_handle;
char remote_name[0];
};
struct csi2_resources_walk_data {
acpi_handle handle;
struct list_head connections;
};
typedef enum {
OSL_GLOBAL_LOCK_HANDLER = 0,
OSL_NOTIFY_HANDLER = 1,
OSL_GPE_HANDLER = 2,
OSL_DEBUGGER_MAIN_THREAD = 3,
OSL_DEBUGGER_EXEC_THREAD = 4,
OSL_EC_POLL_HANDLER = 5,
OSL_EC_BURST_HANDLER = 6,
} acpi_execute_type;
typedef void (*acpi_osd_exec_callback)(void *);
struct acpi_table_desc {
acpi_physical_address address;
struct acpi_table_header *pointer;
u32 length;
union acpi_name_union signature;
acpi_owner_id owner_id;
u8 flags;
u16 validation_count;
};
struct acpi_table_rsdp {
char signature[8];
u8 checksum;
char oem_id[6];
u8 revision;
u32 rsdt_physical_address;
u32 length;
u64 xsdt_physical_address;
u8 extended_checksum;
u8 reserved[3];
} __attribute__((packed));
typedef int (*acpi_op_add)(struct acpi_device *);
typedef void (*acpi_op_remove)(struct acpi_device *);
typedef void (*acpi_op_notify)(struct acpi_device *, u32);
struct acpi_device_ops {
acpi_op_add add;
acpi_op_remove remove;
acpi_op_notify notify;
};
struct acpi_driver {
char name[80];
char class[80];
const struct acpi_device_id *ids;
unsigned int flags;
struct acpi_device_ops ops;
struct device_driver drv;
struct module *owner;
};
struct acpi_thermal_trip {
unsigned long temp_dk;
struct acpi_handle_list devices;
};
struct acpi_thermal_passive {
struct acpi_thermal_trip trip;
unsigned long tc1;
unsigned long tc2;
unsigned long delay;
};
struct acpi_thermal_active {
struct acpi_thermal_trip trip;
};
struct acpi_thermal_trips {
struct acpi_thermal_passive passive;
struct acpi_thermal_active active[10];
};
struct acpi_thermal {
struct acpi_device *device;
acpi_bus_id name;
unsigned long temp_dk;
unsigned long last_temp_dk;
unsigned long polling_frequency;
volatile u8 zombie;
struct acpi_thermal_trips trips;
struct thermal_zone_device *thermal_zone;
int kelvin_offset;
struct work_struct thermal_check_work;
struct mutex thermal_check_lock;
refcount_t thermal_check_count;
};
struct adjust_trip_data {
struct acpi_thermal *tz;
u32 event;
};
struct acpi_thermal_bind_data {
struct thermal_zone_device *thermal;
struct thermal_cooling_device *cdev;
bool bind;
};
struct probe;
struct kobj_map {
struct probe *probes[255];
struct mutex *lock;
};
typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
struct probe {
struct probe *next;
dev_t dev;
unsigned long range;
struct module *owner;
kobj_probe_t *get;
int (*lock)(dev_t, void *);
void *data;
};
struct phylib_stubs {
int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *);
int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *);
};
struct phy_fixup {
struct list_head list;
char bus_id[64];
u32 phy_uid;
u32 phy_uid_mask;
int (*run)(struct phy_device *);
};
struct sfp_eeprom_id;
struct sfp_upstream_ops {
void (*attach)(void *, struct sfp_bus *);
void (*detach)(void *, struct sfp_bus *);
int (*module_insert)(void *, const struct sfp_eeprom_id *);
void (*module_remove)(void *);
int (*module_start)(void *);
void (*module_stop)(void *);
void (*link_down)(void *);
void (*link_up)(void *);
int (*connect_phy)(void *, struct phy_device *);
void (*disconnect_phy)(void *);
};
struct sfp_eeprom_base {
u8 phys_id;
u8 phys_ext_id;
u8 connector;
u8 if_1x_copper_passive: 1;
u8 if_1x_copper_active: 1;
u8 if_1x_lx: 1;
u8 if_1x_sx: 1;
u8 e10g_base_sr: 1;
u8 e10g_base_lr: 1;
u8 e10g_base_lrm: 1;
u8 e10g_base_er: 1;
u8 sonet_oc3_short_reach: 1;
u8 sonet_oc3_smf_intermediate_reach: 1;
u8 sonet_oc3_smf_long_reach: 1;
u8 unallocated_5_3: 1;
u8 sonet_oc12_short_reach: 1;
u8 sonet_oc12_smf_intermediate_reach: 1;
u8 sonet_oc12_smf_long_reach: 1;
u8 unallocated_5_7: 1;
u8 sonet_oc48_short_reach: 1;
u8 sonet_oc48_intermediate_reach: 1;
u8 sonet_oc48_long_reach: 1;
u8 sonet_reach_bit2: 1;
u8 sonet_reach_bit1: 1;
u8 sonet_oc192_short_reach: 1;
u8 escon_smf_1310_laser: 1;
u8 escon_mmf_1310_led: 1;
u8 e1000_base_sx: 1;
u8 e1000_base_lx: 1;
u8 e1000_base_cx: 1;
u8 e1000_base_t: 1;
u8 e100_base_lx: 1;
u8 e100_base_fx: 1;
u8 e_base_bx10: 1;
u8 e_base_px: 1;
u8 fc_tech_electrical_inter_enclosure: 1;
u8 fc_tech_lc: 1;
u8 fc_tech_sa: 1;
u8 fc_ll_m: 1;
u8 fc_ll_l: 1;
u8 fc_ll_i: 1;
u8 fc_ll_s: 1;
u8 fc_ll_v: 1;
u8 unallocated_8_0: 1;
u8 unallocated_8_1: 1;
u8 sfp_ct_passive: 1;
u8 sfp_ct_active: 1;
u8 fc_tech_ll: 1;
u8 fc_tech_sl: 1;
u8 fc_tech_sn: 1;
u8 fc_tech_electrical_intra_enclosure: 1;
u8 fc_media_sm: 1;
u8 unallocated_9_1: 1;
u8 fc_media_m5: 1;
u8 fc_media_m6: 1;
u8 fc_media_tv: 1;
u8 fc_media_mi: 1;
u8 fc_media_tp: 1;
u8 fc_media_tw: 1;
u8 fc_speed_100: 1;
u8 unallocated_10_1: 1;
u8 fc_speed_200: 1;
u8 fc_speed_3200: 1;
u8 fc_speed_400: 1;
u8 fc_speed_1600: 1;
u8 fc_speed_800: 1;
u8 fc_speed_1200: 1;
u8 encoding;
u8 br_nominal;
u8 rate_id;
u8 link_len[6];
char vendor_name[16];
u8 extended_cc;
char vendor_oui[3];
char vendor_pn[16];
char vendor_rev[4];
union {
__be16 optical_wavelength;
__be16 cable_compliance;
struct {
u8 sff8431_app_e: 1;
u8 fc_pi_4_app_h: 1;
u8 reserved60_2: 6;
u8 reserved61: 8;
} passive;
struct {
u8 sff8431_app_e: 1;
u8 fc_pi_4_app_h: 1;
u8 sff8431_lim: 1;
u8 fc_pi_4_lim: 1;
u8 reserved60_4: 4;
u8 reserved61: 8;
} active;
};
u8 reserved62;
u8 cc_base;
};
struct sfp_eeprom_ext {
__be16 options;
u8 br_max;
u8 br_min;
char vendor_sn[16];
char datecode[8];
u8 diagmon;
u8 enhopts;
u8 sff8472_compliance;
u8 cc_ext;
};
struct sfp_eeprom_id {
struct sfp_eeprom_base base;
struct sfp_eeprom_ext ext;
};
enum {
IWL_FIRST_OFDM_RATE___2 = 4,
IWL_LAST_OFDM_RATE = 12,
IWL_FIRST_CCK_RATE___2 = 0,
IWL_LAST_CCK_RATE___2 = 3,
};
enum {
IWL_RATE_1M_INDEX___2 = 0,
IWL_RATE_2M_INDEX___2 = 1,
IWL_RATE_5M_INDEX___2 = 2,
IWL_RATE_11M_INDEX___2 = 3,
IWL_RATE_6M_INDEX___2 = 4,
IWL_RATE_9M_INDEX___2 = 5,
IWL_RATE_12M_INDEX___2 = 6,
IWL_RATE_18M_INDEX___2 = 7,
IWL_RATE_24M_INDEX___2 = 8,
IWL_RATE_36M_INDEX___2 = 9,
IWL_RATE_48M_INDEX___2 = 10,
IWL_RATE_54M_INDEX___2 = 11,
IWL_RATE_60M_INDEX___2 = 12,
IWL_RATE_COUNT___2 = 13,
IWL_RATE_COUNT_LEGACY___2 = 12,
IWL_RATE_INVM_INDEX___2 = 13,
IWL_RATE_INVALID___2 = 13,
};
enum iwlagn_wowlan_wakeup_filters {
IWLAGN_WOWLAN_WAKEUP_MAGIC_PACKET = 1,
IWLAGN_WOWLAN_WAKEUP_PATTERN_MATCH = 2,
IWLAGN_WOWLAN_WAKEUP_BEACON_MISS = 4,
IWLAGN_WOWLAN_WAKEUP_LINK_CHANGE = 8,
IWLAGN_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16,
IWLAGN_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32,
IWLAGN_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64,
IWLAGN_WOWLAN_WAKEUP_ALWAYS = 128,
IWLAGN_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 256,
};
enum iwlagn_d3_wakeup_filters {
IWLAGN_D3_WAKEUP_RFKILL = 1,
IWLAGN_D3_WAKEUP_SYSASSERT = 2,
};
enum iwl_bt_kill_idx {
IWL_BT_KILL_DEFAULT = 0,
IWL_BT_KILL_OVERRIDE = 1,
IWL_BT_KILL_REDUCE = 2,
};
struct iwl_bt_uart_msg {
u8 header;
u8 frame1;
u8 frame2;
u8 frame3;
u8 frame4;
u8 frame5;
u8 frame6;
u8 frame7;
};
struct iwlagn_tx_power_dbm_cmd {
s8 global_lmt;
u8 flags;
s8 srv_chan_lmt;
u8 reserved;
};
struct iwl_txfifo_flush_cmd_v3 {
__le32 queue_control;
__le16 flush_control;
__le16 reserved;
};
struct iwl_txfifo_flush_cmd_v2 {
__le16 queue_control;
__le16 flush_control;
};
struct iwl_basic_bt_cmd {
u8 flags;
u8 ledtime;
u8 max_kill;
u8 bt3_timer_t7_value;
__le32 kill_ack_mask;
__le32 kill_cts_mask;
u8 bt3_prio_sample_time;
u8 bt3_timer_t2_value;
__le16 bt4_reaction_time;
__le32 bt3_lookup_table[12];
u8 reduce_txpower;
u8 reserved;
__le16 valid;
};
struct iwl_bt_cmd_v1 {
struct iwl_basic_bt_cmd basic;
u8 prio_boost;
u8 tx_prio_boost;
__le16 rx_prio_boost;
};
struct iwl_bt_cmd_v2 {
struct iwl_basic_bt_cmd basic;
__le32 prio_boost;
u8 reserved;
u8 tx_prio_boost;
__le16 rx_prio_boost;
};
struct iwl_bt_coex_profile_notif___2 {
struct iwl_bt_uart_msg last_bt_uart_msg;
u8 bt_status;
u8 bt_traffic_load;
u8 bt_ci_compliance;
u8 reserved;
};
struct iwlagn_wowlan_pattern {
u8 mask[16];
u8 pattern[128];
u8 mask_size;
u8 pattern_size;
__le16 reserved;
};
struct iwlagn_wowlan_patterns_cmd {
__le32 n_patterns;
struct iwlagn_wowlan_pattern patterns[0];
};
struct iwlagn_mic_keys {
u8 tx[8];
u8 rx_unicast[8];
u8 rx_mcast[8];
};
struct iwlagn_p1k_cache {
__le16 p1k[5];
};
struct iwlagn_wowlan_tkip_params_cmd {
struct iwlagn_mic_keys mic_keys;
struct iwlagn_p1k_cache tx;
struct iwlagn_p1k_cache rx_uni[2];
struct iwlagn_p1k_cache rx_multi[2];
};
struct iwlagn_d3_config_cmd {
__le32 min_sleep_time;
__le32 wakeup_flags;
};
struct iwlagn_wowlan_wakeup_filter_cmd {
__le32 enabled;
__le16 non_qos_seq;
__le16 reserved;
__le16 qos_seq[8];
};
struct iwlagn_wowlan_kek_kck_material_cmd {
u8 kck[32];
u8 kek[32];
__le16 kck_len;
__le16 kek_len;
__le64 replay_ctr;
} __attribute__((packed));
struct iwlagn_wowlan_rsc_tsc_params_cmd;
struct wowlan_key_data {
struct iwl_rxon_context *ctx;
struct iwlagn_wowlan_rsc_tsc_params_cmd *rsc_tsc;
struct iwlagn_wowlan_tkip_params_cmd *tkip;
const u8 *bssid;
bool error;
bool use_rsc_tsc;
bool use_tkip;
};
struct tkip_sc {
__le16 iv16;
__le16 pad;
__le32 iv32;
};
struct iwlagn_tkip_rsc_tsc {
struct tkip_sc unicast_rsc[16];
struct tkip_sc multicast_rsc[16];
struct tkip_sc tsc;
};
struct aes_sc {
__le64 pn;
};
struct iwlagn_aes_rsc_tsc {
struct aes_sc unicast_rsc[16];
struct aes_sc multicast_rsc[16];
struct aes_sc tsc;
};
union iwlagn_all_tsc_rsc {
struct iwlagn_tkip_rsc_tsc tkip;
struct iwlagn_aes_rsc_tsc aes;
};
struct iwlagn_wowlan_rsc_tsc_params_cmd {
union iwlagn_all_tsc_rsc all_tsc_rsc;
};
struct rtw_rx_addr_match_data {
struct rtw_dev *rtwdev;
struct ieee80211_hdr *hdr;
struct rtw_rx_pkt_stat *pkt_stat;
u8 *bssid;
};
enum serio_event_type {
SERIO_RESCAN_PORT = 0,
SERIO_RECONNECT_PORT = 1,
SERIO_RECONNECT_SUBTREE = 2,
SERIO_REGISTER_PORT = 3,
SERIO_ATTACH_DRIVER = 4,
};
struct serio_device_id {
__u8 type;
__u8 extra;
__u8 id;
__u8 proto;
};
struct serio_driver;
struct serio {
void *port_data;
char name[32];
char phys[32];
char firmware_id[128];
bool manual_bind;
struct serio_device_id id;
spinlock_t lock;
int (*write)(struct serio *, unsigned char);
int (*open)(struct serio *);
void (*close)(struct serio *);
int (*start)(struct serio *);
void (*stop)(struct serio *);
struct serio *parent;
struct list_head child_node;
struct list_head children;
unsigned int depth;
struct serio_driver *drv;
struct mutex drv_mutex;
struct device dev;
struct list_head node;
struct mutex *ps2_cmd_mutex;
};
struct serio_driver {
const char *description;
const struct serio_device_id *id_table;
bool manual_bind;
void (*write_wakeup)(struct serio *);
irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
int (*connect)(struct serio *, struct serio_driver *);
int (*reconnect)(struct serio *);
int (*fast_reconnect)(struct serio *);
void (*disconnect)(struct serio *);
void (*cleanup)(struct serio *);
struct device_driver driver;
};
struct serio_event {
enum serio_event_type type;
void *object;
struct module *owner;
struct list_head node;
};
struct thermal_hwmon_device {
char type[20];
struct device *device;
int count;
struct list_head tz_list;
struct list_head node;
};
struct thermal_hwmon_attr {
struct device_attribute attr;
char name[16];
};
struct thermal_hwmon_temp {
struct list_head hwmon_node;
struct thermal_zone_device *tz;
struct thermal_hwmon_attr temp_input;
struct thermal_hwmon_attr temp_crit;
};
struct efi_memory_map_data {
phys_addr_t phys_map;
unsigned long size;
unsigned long desc_version;
unsigned long desc_size;
unsigned long flags;
};
struct efi_memory_map {
phys_addr_t phys_map;
void *map;
void *map_end;
int nr_map;
unsigned long desc_version;
unsigned long desc_size;
unsigned long flags;
};
enum {
IF_LINK_MODE_DEFAULT = 0,
IF_LINK_MODE_DORMANT = 1,
IF_LINK_MODE_TESTING = 2,
};
enum lw_bits {
LW_URGENT = 0,
};
enum {
ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0,
ETHTOOL_A_TUNNEL_INFO_HEADER = 1,
ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 2,
__ETHTOOL_A_TUNNEL_INFO_CNT = 3,
ETHTOOL_A_TUNNEL_INFO_MAX = 2,
};
enum udp_tunnel_nic_info_flags {
UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1,
UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2,
UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4,
UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8,
};
enum {
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0,
ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 1,
ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 2,
__ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3,
};
enum {
ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0,
ETHTOOL_A_TUNNEL_UDP_TABLE = 1,
__ETHTOOL_A_TUNNEL_UDP_CNT = 2,
ETHTOOL_A_TUNNEL_UDP_MAX = 1,
};
enum {
ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0,
ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 1,
ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 2,
ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 3,
__ETHTOOL_A_TUNNEL_UDP_TABLE_CNT = 4,
ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 3,
};
enum {
ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0,
ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 1,
ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 2,
__ETHTOOL_A_TUNNEL_UDP_ENTRY_CNT = 3,
ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 2,
};
struct genl_dumpit_info {
struct genl_split_ops op;
struct genl_info info;
};
struct ethnl_tunnel_info_dump_ctx {
struct ethnl_req_info req_info;
unsigned long ifindex;
};
enum flow_cls_command {
FLOW_CLS_REPLACE = 0,
FLOW_CLS_DESTROY = 1,
FLOW_CLS_STATS = 2,
FLOW_CLS_TMPLT_CREATE = 3,
FLOW_CLS_TMPLT_DESTROY = 4,
};
enum nf_tables_msg_types {
NFT_MSG_NEWTABLE = 0,
NFT_MSG_GETTABLE = 1,
NFT_MSG_DELTABLE = 2,
NFT_MSG_NEWCHAIN = 3,
NFT_MSG_GETCHAIN = 4,
NFT_MSG_DELCHAIN = 5,
NFT_MSG_NEWRULE = 6,
NFT_MSG_GETRULE = 7,
NFT_MSG_DELRULE = 8,
NFT_MSG_NEWSET = 9,
NFT_MSG_GETSET = 10,
NFT_MSG_DELSET = 11,
NFT_MSG_NEWSETELEM = 12,
NFT_MSG_GETSETELEM = 13,
NFT_MSG_DELSETELEM = 14,
NFT_MSG_NEWGEN = 15,
NFT_MSG_GETGEN = 16,
NFT_MSG_TRACE = 17,
NFT_MSG_NEWOBJ = 18,
NFT_MSG_GETOBJ = 19,
NFT_MSG_DELOBJ = 20,
NFT_MSG_GETOBJ_RESET = 21,
NFT_MSG_NEWFLOWTABLE = 22,
NFT_MSG_GETFLOWTABLE = 23,
NFT_MSG_DELFLOWTABLE = 24,
NFT_MSG_GETRULE_RESET = 25,
NFT_MSG_DESTROYTABLE = 26,
NFT_MSG_DESTROYCHAIN = 27,
NFT_MSG_DESTROYRULE = 28,
NFT_MSG_DESTROYSET = 29,
NFT_MSG_DESTROYSETELEM = 30,
NFT_MSG_DESTROYOBJ = 31,
NFT_MSG_DESTROYFLOWTABLE = 32,
NFT_MSG_GETSETELEM_RESET = 33,
NFT_MSG_MAX = 34,
};
enum nft_chain_flags {
NFT_CHAIN_BASE = 1,
NFT_CHAIN_HW_OFFLOAD = 2,
NFT_CHAIN_BINDING = 4,
};
enum flow_block_binder_type {
FLOW_BLOCK_BINDER_TYPE_UNSPEC = 0,
FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS = 1,
FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS = 2,
FLOW_BLOCK_BINDER_TYPE_RED_EARLY_DROP = 3,
FLOW_BLOCK_BINDER_TYPE_RED_MARK = 4,
};
struct nft_hook {
struct list_head list;
struct nf_hook_ops ops;
struct callback_head rcu;
};
struct nft_trans {
struct list_head list;
struct list_head binding_list;
int msg_type;
bool put_net;
struct nft_ctx ctx;
char data[0];
};
struct nft_trans_chain {
struct nft_chain *chain;
bool update;
char *name;
struct nft_stats __attribute__((btf_type_tag("percpu"))) *stats;
u8 policy;
bool bound;
u32 chain_id;
struct nft_base_chain *basechain;
struct list_head hook_list;
};
struct nft_rule;
struct nft_trans_rule {
struct nft_rule *rule;
struct nft_flow_rule *flow;
u32 rule_id;
bool bound;
};
struct nft_rule {
struct list_head list;
u64 handle: 42;
u64 genmask: 2;
u64 dlen: 12;
u64 udata: 1;
unsigned char data[0];
};
struct flow_block_cb;
struct flow_block_indr {
struct list_head list;
struct net_device *dev;
struct Qdisc *sch;
enum flow_block_binder_type binder_type;
void *data;
void *cb_priv;
void (*cleanup)(struct flow_block_cb *);
};
struct flow_block_cb {
struct list_head driver_list;
struct list_head list;
flow_setup_cb_t *cb;
void *cb_ident;
void *cb_priv;
void (*release)(void *);
struct flow_block_indr indr;
unsigned int refcnt;
};
struct nft_offload_ethertype {
__be16 value;
__be16 mask;
};
struct flow_cls_common_offload {
u32 chain_index;
__be16 protocol;
u32 prio;
struct netlink_ext_ack *extack;
};
struct flow_cls_offload {
struct flow_cls_common_offload common;
enum flow_cls_command command;
bool use_act_stats;
unsigned long cookie;
struct flow_rule *rule;
struct flow_stats stats;
u32 classid;
};
struct flow_block_offload {
enum flow_block_command command;
enum flow_block_binder_type binder_type;
bool block_shared;
bool unlocked_driver_cb;
struct net *net;
struct flow_block *block;
struct list_head cb_list;
struct list_head *driver_block_list;
struct netlink_ext_ack *extack;
struct Qdisc *sch;
struct list_head *cb_list_head;
};
struct net_protocol {
int (*handler)(struct sk_buff *);
int (*err_handler)(struct sk_buff *, u32);
unsigned int no_policy: 1;
unsigned int icmp_strict_tag_validation: 1;
u32 secret;
};
struct rtentry {
unsigned long rt_pad1;
struct sockaddr rt_dst;
struct sockaddr rt_gateway;
struct sockaddr rt_genmask;
unsigned short rt_flags;
short rt_pad2;
unsigned long rt_pad3;
void *rt_pad4;
short rt_metric;
char __attribute__((btf_type_tag("user"))) *rt_dev;
unsigned long rt_mtu;
unsigned long rt_window;
unsigned short rt_irtt;
};
enum {
MDB_RTR_TYPE_DISABLED = 0,
MDB_RTR_TYPE_TEMP_QUERY = 1,
MDB_RTR_TYPE_PERM = 2,
MDB_RTR_TYPE_TEMP = 3,
};
enum {
BR_MCAST_DIR_RX = 0,
BR_MCAST_DIR_TX = 1,
BR_MCAST_DIR_SIZE = 2,
};
struct br_frame_type {
__be16 type;
int (*frame_handler)(struct net_bridge_port *, struct sk_buff *);
struct hlist_node list;
};
struct pcibios_fwaddrmap {
struct list_head list;
struct pci_dev *dev;
resource_size_t fw_addr[11];
};
struct pci_check_idx_range {
int start;
int end;
};
typedef struct {
unsigned long key[2];
} hsiphash_key_t;
enum suspend_stat_step {
SUSPEND_WORKING = 0,
SUSPEND_FREEZE = 1,
SUSPEND_PREPARE = 2,
SUSPEND_SUSPEND = 3,
SUSPEND_SUSPEND_LATE = 4,
SUSPEND_SUSPEND_NOIRQ = 5,
SUSPEND_RESUME_NOIRQ = 6,
SUSPEND_RESUME_EARLY = 7,
SUSPEND_RESUME = 8,
};
struct suspend_stats {
unsigned int step_failures[8];
unsigned int success;
unsigned int fail;
int last_failed_dev;
char failed_devs[80];
int last_failed_errno;
int errno[2];
int last_failed_step;
u64 last_hw_sleep;
u64 total_hw_sleep;
u64 max_hw_sleep;
enum suspend_stat_step failed_steps[2];
};
struct listener_list {
struct rw_semaphore sem;
struct list_head list;
};
enum {
TASKSTATS_CMD_UNSPEC = 0,
TASKSTATS_CMD_GET = 1,
TASKSTATS_CMD_NEW = 2,
__TASKSTATS_CMD_MAX = 3,
};
enum {
TASKSTATS_TYPE_UNSPEC = 0,
TASKSTATS_TYPE_PID = 1,
TASKSTATS_TYPE_TGID = 2,
TASKSTATS_TYPE_STATS = 3,
TASKSTATS_TYPE_AGGR_PID = 4,
TASKSTATS_TYPE_AGGR_TGID = 5,
TASKSTATS_TYPE_NULL = 6,
__TASKSTATS_TYPE_MAX = 7,
};
enum {
TASKSTATS_CMD_ATTR_UNSPEC = 0,
TASKSTATS_CMD_ATTR_PID = 1,
TASKSTATS_CMD_ATTR_TGID = 2,
TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 3,
TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 4,
__TASKSTATS_CMD_ATTR_MAX = 5,
};
enum actions {
REGISTER = 0,
DEREGISTER = 1,
CPU_DONT_CARE = 2,
};
enum {
CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
CGROUPSTATS_CMD_ATTR_FD = 1,
__CGROUPSTATS_CMD_ATTR_MAX = 2,
};
enum {
CGROUPSTATS_CMD_UNSPEC = 3,
CGROUPSTATS_CMD_GET = 4,
CGROUPSTATS_CMD_NEW = 5,
__CGROUPSTATS_CMD_MAX = 6,
};
enum {
CGROUPSTATS_TYPE_UNSPEC = 0,
CGROUPSTATS_TYPE_CGROUP_STATS = 1,
__CGROUPSTATS_TYPE_MAX = 2,
};
struct listener {
struct list_head list;
pid_t pid;
char valid;
};
struct cgroupstats {
__u64 nr_sleeping;
__u64 nr_running;
__u64 nr_stopped;
__u64 nr_uninterruptible;
__u64 nr_io_wait;
};
struct bpf_crypto_type;
struct bpf_crypto_type_list {
const struct bpf_crypto_type *type;
struct list_head list;
};
struct bpf_crypto_type {
void * (*alloc_tfm)(const char *);
void (*free_tfm)(void *);
int (*has_algo)(const char *);
int (*setkey)(void *, const u8 *, unsigned int);
int (*setauthsize)(void *, unsigned int);
int (*encrypt)(void *, const u8 *, u8 *, unsigned int, u8 *);
int (*decrypt)(void *, const u8 *, u8 *, unsigned int, u8 *);
unsigned int (*ivsize)(void *);
unsigned int (*statesize)(void *);
u32 (*get_flags)(void *);
struct module *owner;
char name[14];
};
struct bpf_crypto_ctx {
const struct bpf_crypto_type *type;
void *tfm;
u32 siv_len;
struct callback_head rcu;
refcount_t usage;
};
struct bpf_dynptr_kern {
void *data;
u32 size;
u32 offset;
};
struct bpf_crypto_params {
char type[14];
u8 reserved[2];
char algo[128];
u8 key[256];
u32 key_len;
u32 authsize;
};
enum mminit_level {
MMINIT_WARNING = 0,
MMINIT_VERIFY = 1,
MMINIT_TRACE = 2,
};
struct fsuuid2 {
__u8 len;
__u8 uuid[16];
};
struct file_dedupe_range_info {
__s64 dest_fd;
__u64 dest_offset;
__u64 bytes_deduped;
__s32 status;
__u32 reserved;
};
struct file_dedupe_range {
__u64 src_offset;
__u64 src_length;
__u16 dest_count;
__u16 reserved1;
__u32 reserved2;
struct file_dedupe_range_info info[0];
};
struct file_clone_range {
__s64 src_fd;
__u64 src_offset;
__u64 src_length;
__u64 dest_offset;
};
struct space_resv {
__s16 l_type;
__s16 l_whence;
__s64 l_start;
__s64 l_len;
__s32 l_sysid;
__u32 l_pid;
__s32 l_pad[4];
};
struct fs_sysfs_path {
__u8 len;
__u8 name[128];
};
struct fiemap {
__u64 fm_start;
__u64 fm_length;
__u32 fm_flags;
__u32 fm_mapped_extents;
__u32 fm_extent_count;
__u32 fm_reserved;
struct fiemap_extent fm_extents[0];
};
struct kernfs_root {
struct kernfs_node *kn;
unsigned int flags;
struct idr ino_idr;
u32 last_id_lowbits;
u32 id_highbits;
struct kernfs_syscall_ops *syscall_ops;
struct list_head supers;
wait_queue_head_t deactivate_waitq;
struct rw_semaphore kernfs_rwsem;
struct rw_semaphore kernfs_iattr_rwsem;
struct rw_semaphore kernfs_supers_rwsem;
struct callback_head rcu;
};
struct kernfs_iattrs {
kuid_t ia_uid;
kgid_t ia_gid;
struct timespec64 ia_atime;
struct timespec64 ia_mtime;
struct timespec64 ia_ctime;
struct simple_xattrs xattrs;
atomic_t nr_user_xattrs;
atomic_t user_xattr_size;
};
struct kernfs_global_locks {
struct mutex open_file_mutex[1024];
};
struct kernfs_super_info {
struct super_block *sb;
struct kernfs_root *root;
const void *ns;
struct list_head node;
};
enum {
EVENTFS_SAVE_MODE = 65536,
EVENTFS_SAVE_UID = 131072,
EVENTFS_SAVE_GID = 262144,
EVENTFS_TOPLEVEL = 524288,
};
enum {
TRACEFS_EVENT_INODE = 2,
TRACEFS_EVENT_TOP_INODE = 4,
TRACEFS_GID_PERM_SET = 8,
TRACEFS_UID_PERM_SET = 16,
TRACEFS_INSTANCE_INODE = 32,
};
struct eventfs_attr {
int mode;
kuid_t uid;
kgid_t gid;
};
struct eventfs_entry;
struct eventfs_inode {
union {
struct list_head list;
struct callback_head rcu;
};
struct list_head children;
const struct eventfs_entry *entries;
const char *name;
struct eventfs_attr *entry_attrs;
void *data;
struct eventfs_attr attr;
struct kref kref;
unsigned int is_freed: 1;
unsigned int is_events: 1;
unsigned int nr_entries: 30;
unsigned int ino;
};
typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **);
struct eventfs_entry {
const char *name;
eventfs_callback callback;
};
struct eventfs_root_inode {
struct eventfs_inode ei;
struct dentry *events_dir;
};
struct tracefs_inode {
struct inode vfs_inode;
unsigned long flags;
void *private;
};
struct efivarfs_mount_opts {
kuid_t uid;
kgid_t gid;
};
struct efivarfs_fs_info {
struct efivarfs_mount_opts mount_opts;
struct list_head efivarfs_list;
struct super_block *sb;
struct notifier_block nb;
};
typedef guid_t efi_guid_t;
typedef u16 efi_char16_t;
typedef unsigned long efi_status_t;
struct efi_variable {
efi_char16_t VariableName[512];
efi_guid_t VendorGuid;
unsigned long DataSize;
__u8 Data[1024];
efi_status_t Status;
__u32 Attributes;
} __attribute__((packed));
struct efivar_entry {
struct efi_variable var;
struct list_head list;
struct kobject kobj;
};
struct ioc_gq;
struct ioc_now;
typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
struct iocg_stat {
u64 usage_us;
u64 wait_us;
u64 indebt_us;
u64 indelay_us;
};
struct ioc;
struct iocg_pcpu_stat;
struct ioc_gq {
struct blkg_policy_data pd;
struct ioc *ioc;
u32 cfg_weight;
u32 weight;
u32 active;
u32 inuse;
u32 last_inuse;
s64 saved_margin;
sector_t cursor;
atomic64_t vtime;
atomic64_t done_vtime;
u64 abs_vdebt;
u64 delay;
u64 delay_at;
atomic64_t active_period;
struct list_head active_list;
u64 child_active_sum;
u64 child_inuse_sum;
u64 child_adjusted_sum;
int hweight_gen;
u32 hweight_active;
u32 hweight_inuse;
u32 hweight_donating;
u32 hweight_after_donation;
struct list_head walk_list;
struct list_head surplus_list;
struct wait_queue_head waitq;
struct hrtimer waitq_timer;
u64 activated_at;
struct iocg_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat;
struct iocg_stat stat;
struct iocg_stat last_stat;
u64 last_stat_abs_vusage;
u64 usage_delta_us;
u64 wait_since;
u64 indebt_since;
u64 indelay_since;
int level;
struct ioc_gq *ancestors[0];
};
struct ioc_params {
u32 qos[6];
u64 i_lcoefs[6];
u64 lcoefs[6];
u32 too_fast_vrate_pct;
u32 too_slow_vrate_pct;
};
struct ioc_margins {
s64 min;
s64 low;
s64 target;
};
enum ioc_running {
IOC_IDLE = 0,
IOC_RUNNING = 1,
IOC_STOP = 2,
};
struct ioc_pcpu_stat;
struct ioc {
struct rq_qos rqos;
bool enabled;
struct ioc_params params;
struct ioc_margins margins;
u32 period_us;
u32 timer_slack_ns;
u64 vrate_min;
u64 vrate_max;
spinlock_t lock;
struct timer_list timer;
struct list_head active_iocgs;
struct ioc_pcpu_stat __attribute__((btf_type_tag("percpu"))) *pcpu_stat;
enum ioc_running running;
atomic64_t vtime_rate;
u64 vtime_base_rate;
s64 vtime_err;
seqcount_spinlock_t period_seqcount;
u64 period_at;
u64 period_at_vtime;
atomic64_t cur_period;
int busy_level;
bool weights_updated;
atomic_t hweight_gen;
u64 dfgv_period_at;
u64 dfgv_period_rem;
u64 dfgv_usage_us_sum;
u64 autop_too_fast_at;
u64 autop_too_slow_at;
int autop_idx;
bool user_qos_params: 1;
bool user_cost_model: 1;
};
struct ioc_missed {
local_t nr_met;
local_t nr_missed;
u32 last_met;
u32 last_missed;
};
struct ioc_pcpu_stat {
struct ioc_missed missed[2];
local64_t rq_wait_ns;
u64 last_rq_wait_ns;
};
struct iocg_pcpu_stat {
local64_t abs_vusage;
};
struct ioc_now {
u64 now_ns;
u64 now;
u64 vnow;
};
typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64);
typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64);
typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int);
typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64);
enum {
MILLION = 1000000,
MIN_PERIOD = 1000,
MAX_PERIOD = 1000000,
MARGIN_MIN_PCT = 10,
MARGIN_LOW_PCT = 20,
MARGIN_TARGET_PCT = 50,
INUSE_ADJ_STEP_PCT = 25,
TIMER_SLACK_PCT = 1,
WEIGHT_ONE = 65536,
};
enum {
QOS_RPPM = 0,
QOS_RLAT = 1,
QOS_WPPM = 2,
QOS_WLAT = 3,
QOS_MIN = 4,
QOS_MAX = 5,
NR_QOS_PARAMS = 6,
};
enum {
QOS_ENABLE = 0,
QOS_CTRL = 1,
NR_QOS_CTRL_PARAMS = 2,
};
enum {
VTIME_PER_SEC_SHIFT = 37ULL,
VTIME_PER_SEC = 137438953472ULL,
VTIME_PER_USEC = 137438ULL,
VTIME_PER_NSEC = 137ULL,
VRATE_MIN_PPM = 10000ULL,
VRATE_MAX_PPM = 100000000ULL,
VRATE_MIN = 1374ULL,
VRATE_CLAMP_ADJ_PCT = 4ULL,
AUTOP_CYCLE_NSEC = 10000000000ULL,
};
enum {
AUTOP_INVALID = 0,
AUTOP_HDD = 1,
AUTOP_SSD_QD1 = 2,
AUTOP_SSD_DFL = 3,
AUTOP_SSD_FAST = 4,
};
enum {
RQ_WAIT_BUSY_PCT = 5,
UNBUSY_THR_PCT = 75,
MIN_DELAY_THR_PCT = 500,
MAX_DELAY_THR_PCT = 25000,
MIN_DELAY = 250,
MAX_DELAY = 250000,
DFGV_USAGE_PCT = 50,
DFGV_PERIOD = 100000,
MAX_LAGGING_PERIODS = 10,
IOC_PAGE_SHIFT = 12,
IOC_PAGE_SIZE = 4096,
IOC_SECT_TO_PAGE_SHIFT = 3,
LCOEF_RANDIO_PAGES = 4096,
};
enum {
I_LCOEF_RBPS = 0,
I_LCOEF_RSEQIOPS = 1,
I_LCOEF_RRANDIOPS = 2,
I_LCOEF_WBPS = 3,
I_LCOEF_WSEQIOPS = 4,
I_LCOEF_WRANDIOPS = 5,
NR_I_LCOEFS = 6,
};
enum {
LCOEF_RPAGE = 0,
LCOEF_RSEQIO = 1,
LCOEF_RRANDIO = 2,
LCOEF_WPAGE = 3,
LCOEF_WSEQIO = 4,
LCOEF_WRANDIO = 5,
NR_LCOEFS = 6,
};
enum {
COST_CTRL = 0,
COST_MODEL = 1,
NR_COST_CTRL_PARAMS = 2,
};
struct trace_event_raw_iocost_iocg_state {
struct trace_entry ent;
u32 __data_loc_devname;
u32 __data_loc_cgroup;
u64 now;
u64 vnow;
u64 vrate;
u64 last_period;
u64 cur_period;
u64 vtime;
u32 weight;
u32 inuse;
u64 hweight_active;
u64 hweight_inuse;
char __data[0];
};
struct trace_event_raw_iocg_inuse_update {
struct trace_entry ent;
u32 __data_loc_devname;
u32 __data_loc_cgroup;
u64 now;
u32 old_inuse;
u32 new_inuse;
u64 old_hweight_inuse;
u64 new_hweight_inuse;
char __data[0];
};
struct trace_event_raw_iocost_ioc_vrate_adj {
struct trace_entry ent;
u32 __data_loc_devname;
u64 old_vrate;
u64 new_vrate;
int busy_level;
u32 read_missed_ppm;
u32 write_missed_ppm;
u32 rq_wait_pct;
int nr_lagging;
int nr_shortages;
char __data[0];
};
struct trace_event_raw_iocost_iocg_forgive_debt {
struct trace_entry ent;
u32 __data_loc_devname;
u32 __data_loc_cgroup;
u64 now;
u64 vnow;
u32 usage_pct;
u64 old_debt;
u64 new_debt;
u64 old_delay;
u64 new_delay;
char __data[0];
};
struct ioc_cgrp {
struct blkcg_policy_data cpd;
unsigned int dfl_weight;
};
struct iocg_wait {
struct wait_queue_entry wait;
struct bio *bio;
u64 abs_cost;
bool committed;
};
struct trace_event_data_offsets_iocost_iocg_state {
u32 devname;
const void *devname_ptr_;
u32 cgroup;
const void *cgroup_ptr_;
};
struct trace_event_data_offsets_iocg_inuse_update {
u32 devname;
const void *devname_ptr_;
u32 cgroup;
const void *cgroup_ptr_;
};
struct trace_event_data_offsets_iocost_ioc_vrate_adj {
u32 devname;
const void *devname_ptr_;
};
struct trace_event_data_offsets_iocost_iocg_forgive_debt {
u32 devname;
const void *devname_ptr_;
u32 cgroup;
const void *cgroup_ptr_;
};
struct iocg_wake_ctx {
struct ioc_gq *iocg;
u32 hw_inuse;
s64 vbudget;
};
struct pnp_port {
resource_size_t min;
resource_size_t max;
resource_size_t align;
resource_size_t size;
unsigned char flags;
};
typedef struct {
unsigned long bits[4];
} pnp_irq_mask_t;
struct pnp_irq {
pnp_irq_mask_t map;
unsigned char flags;
};
struct pnp_dma {
unsigned char map;
unsigned char flags;
};
struct pnp_mem {
resource_size_t min;
resource_size_t max;
resource_size_t align;
resource_size_t size;
unsigned char flags;
};
struct pnp_option {
struct list_head list;
unsigned int flags;
unsigned long type;
union {
struct pnp_port port;
struct pnp_irq irq;
struct pnp_dma dma;
struct pnp_mem mem;
} u;
};
struct subsys_private {
struct kset subsys;
struct kset *devices_kset;
struct list_head interfaces;
struct mutex mutex;
struct kset *drivers_kset;
struct klist klist_devices;
struct klist klist_drivers;
struct blocking_notifier_head bus_notifier;
unsigned int drivers_autoprobe: 1;
const struct bus_type *bus;
struct device *dev_root;
struct kset glue_dirs;
const struct class *class;
struct lock_class_key lock_key;
};
struct class_attribute {
struct attribute attr;
ssize_t (*show)(const struct class *, const struct class_attribute *, char *);
ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t);
};
struct class_attribute_string {
struct class_attribute attr;
char *str;
};
struct class_compat {
struct kobject *kobj;
};
struct mdiobus_devres {
struct mii_bus *mii;
};
enum iwl_tx_queue_cfg_actions {
TX_QUEUE_CFG_ENABLE_QUEUE = 1,
TX_QUEUE_CFG_TFD_SHORT_FORMAT = 2,
};
enum iwl_tx_cmd_sec_ctrl {
TX_CMD_SEC_WEP = 1,
TX_CMD_SEC_CCM = 2,
TX_CMD_SEC_TKIP = 3,
TX_CMD_SEC_EXT = 4,
TX_CMD_SEC_GCMP = 5,
TX_CMD_SEC_KEY128 = 8,
TX_CMD_SEC_KEY_FROM_TABLE = 16,
};
struct iwl_dram_sec_info {
__le32 pn_low;
__le16 pn_high;
__le16 aux_info;
};
struct iwl_tx_cmd_gen2 {
__le16 len;
__le16 offload_assist;
__le32 flags;
struct iwl_dram_sec_info dram_info;
__le32 rate_n_flags;
struct ieee80211_hdr hdr[0];
};
struct iwl_gen3_bc_tbl_entry {
__le16 tfd_offset;
};
struct iwlagn_scd_bc_tbl {
__le16 tfd_offset[320];
};
struct iwl_tx_queue_cfg_rsp {
__le16 queue_number;
__le16 flags;
__le16 write_pointer;
__le16 reserved;
};
struct iwl_tx_queue_cfg_cmd {
u8 sta_id;
u8 tid;
__le16 flags;
__le32 cb_size;
__le64 byte_cnt_addr;
__le64 tfdq_addr;
};
struct usb_class_driver {
char *name;
char * (*devnode)(const struct device *, umode_t *);
const struct file_operations *fops;
int minor_base;
};
struct cmos_rtc {
struct rtc_device *rtc;
struct device *dev;
int irq;
struct resource *iomem;
time64_t alarm_expires;
void (*wake_on)(struct device *);
void (*wake_off)(struct device *);
u8 enabled_wake;
u8 suspend_ctrl;
u8 day_alrm;
u8 mon_alrm;
u8 century;
struct rtc_wkalrm saved_wkalrm;
};
struct cmos_read_alarm_callback_param {
struct cmos_rtc *cmos;
struct rtc_time *time;
unsigned char rtc_control;
};
struct cmos_set_alarm_callback_param {
struct cmos_rtc *cmos;
unsigned char mon;
unsigned char mday;
unsigned char hrs;
unsigned char min;
unsigned char sec;
struct rtc_wkalrm *t;
};
typedef u32 (*acpi_event_handler)(void *);
struct cmos_rtc_board_info {
void (*wake_on)(struct device *);
void (*wake_off)(struct device *);
u32 flags;
int address_space;
u8 rtc_day_alarm;
u8 rtc_mon_alarm;
u8 rtc_century;
};
enum efi_rts_ids {
EFI_NONE = 0,
EFI_GET_TIME = 1,
EFI_SET_TIME = 2,
EFI_GET_WAKEUP_TIME = 3,
EFI_SET_WAKEUP_TIME = 4,
EFI_GET_VARIABLE = 5,
EFI_GET_NEXT_VARIABLE = 6,
EFI_SET_VARIABLE = 7,
EFI_QUERY_VARIABLE_INFO = 8,
EFI_GET_NEXT_HIGH_MONO_COUNT = 9,
EFI_RESET_SYSTEM = 10,
EFI_UPDATE_CAPSULE = 11,
EFI_QUERY_CAPSULE_CAPS = 12,
EFI_ACPI_PRM_HANDLER = 13,
};
union efi_rts_args;
struct efi_runtime_work {
union efi_rts_args *args;
efi_status_t status;
struct work_struct work;
enum efi_rts_ids efi_rts_id;
struct completion efi_rts_comp;
const void *caller;
};
typedef struct {
u16 year;
u8 month;
u8 day;
u8 hour;
u8 minute;
u8 second;
u8 pad1;
u32 nanosecond;
s16 timezone;
u8 daylight;
u8 pad2;
} efi_time_t;
typedef struct {
u32 resolution;
u32 accuracy;
u8 sets_to_zero;
} efi_time_cap_t;
typedef u8 efi_bool_t;
typedef struct {
efi_guid_t guid;
u32 headersize;
u32 flags;
u32 imagesize;
} efi_capsule_header_t;
union efi_rts_args {
struct {
efi_time_t *time;
efi_time_cap_t *capabilities;
} GET_TIME;
struct {
efi_time_t *time;
} SET_TIME;
struct {
efi_bool_t *enabled;
efi_bool_t *pending;
efi_time_t *time;
} GET_WAKEUP_TIME;
struct {
efi_bool_t enable;
efi_time_t *time;
} SET_WAKEUP_TIME;
struct {
efi_char16_t *name;
efi_guid_t *vendor;
u32 *attr;
unsigned long *data_size;
void *data;
} GET_VARIABLE;
struct {
unsigned long *name_size;
efi_char16_t *name;
efi_guid_t *vendor;
} GET_NEXT_VARIABLE;
struct {
efi_char16_t *name;
efi_guid_t *vendor;
u32 attr;
unsigned long data_size;
void *data;
} SET_VARIABLE;
struct {
u32 attr;
u64 *storage_space;
u64 *remaining_space;
u64 *max_variable_size;
} QUERY_VARIABLE_INFO;
struct {
u32 *high_count;
} GET_NEXT_HIGH_MONO_COUNT;
struct {
efi_capsule_header_t **capsules;
unsigned long count;
unsigned long sg_list;
} UPDATE_CAPSULE;
struct {
efi_capsule_header_t **capsules;
unsigned long count;
u64 *max_size;
int *reset_type;
} QUERY_CAPSULE_CAPS;
struct {
efi_status_t (*acpi_prm_handler)(u64, void *);
u64 param_buffer_addr;
void *context;
} ACPI_PRM_HANDLER;
};
struct efifb_dmi_info {
char *optname;
unsigned long base;
int stride;
int width;
int height;
int flags;
};
enum {
M_I17 = 0,
M_I20 = 1,
M_I20_SR = 2,
M_I24 = 3,
M_I24_8_1 = 4,
M_I24_10_1 = 5,
M_I27_11_1 = 6,
M_MINI = 7,
M_MINI_3_1 = 8,
M_MINI_4_1 = 9,
M_MB = 10,
M_MB_2 = 11,
M_MB_3 = 12,
M_MB_5_1 = 13,
M_MB_6_1 = 14,
M_MB_7_1 = 15,
M_MB_SR = 16,
M_MBA = 17,
M_MBA_3 = 18,
M_MBP = 19,
M_MBP_2 = 20,
M_MBP_2_2 = 21,
M_MBP_SR = 22,
M_MBP_4 = 23,
M_MBP_5_1 = 24,
M_MBP_5_2 = 25,
M_MBP_5_3 = 26,
M_MBP_6_1 = 27,
M_MBP_6_2 = 28,
M_MBP_7_1 = 29,
M_MBP_8_2 = 30,
M_UNKNOWN = 31,
};
enum {
OVERRIDE_NONE = 0,
OVERRIDE_BASE = 1,
OVERRIDE_STRIDE = 2,
OVERRIDE_HEIGHT = 4,
OVERRIDE_WIDTH = 8,
};
enum {
ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0,
ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1,
ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2,
};
enum {
ETHTOOL_A_RINGS_UNSPEC = 0,
ETHTOOL_A_RINGS_HEADER = 1,
ETHTOOL_A_RINGS_RX_MAX = 2,
ETHTOOL_A_RINGS_RX_MINI_MAX = 3,
ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4,
ETHTOOL_A_RINGS_TX_MAX = 5,
ETHTOOL_A_RINGS_RX = 6,
ETHTOOL_A_RINGS_RX_MINI = 7,
ETHTOOL_A_RINGS_RX_JUMBO = 8,
ETHTOOL_A_RINGS_TX = 9,
ETHTOOL_A_RINGS_RX_BUF_LEN = 10,
ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11,
ETHTOOL_A_RINGS_CQE_SIZE = 12,
ETHTOOL_A_RINGS_TX_PUSH = 13,
ETHTOOL_A_RINGS_RX_PUSH = 14,
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15,
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16,
__ETHTOOL_A_RINGS_CNT = 17,
ETHTOOL_A_RINGS_MAX = 16,
};
enum ethtool_supported_ring_param {
ETHTOOL_RING_USE_RX_BUF_LEN = 1,
ETHTOOL_RING_USE_CQE_SIZE = 2,
ETHTOOL_RING_USE_TX_PUSH = 4,
ETHTOOL_RING_USE_RX_PUSH = 8,
ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16,
ETHTOOL_RING_USE_TCP_DATA_SPLIT = 32,
};
struct rings_reply_data {
struct ethnl_reply_data base;
struct ethtool_ringparam ringparam;
struct kernel_ethtool_ringparam kernel_ringparam;
u32 supported_ring_params;
};
enum nft_bitwise_ops {
NFT_BITWISE_BOOL = 0,
NFT_BITWISE_LSHIFT = 1,
NFT_BITWISE_RSHIFT = 2,
};
enum nft_bitwise_attributes {
NFTA_BITWISE_UNSPEC = 0,
NFTA_BITWISE_SREG = 1,
NFTA_BITWISE_DREG = 2,
NFTA_BITWISE_LEN = 3,
NFTA_BITWISE_MASK = 4,
NFTA_BITWISE_XOR = 5,
NFTA_BITWISE_OP = 6,
NFTA_BITWISE_DATA = 7,
__NFTA_BITWISE_MAX = 8,
};
struct nft_bitwise {
u8 sreg;
u8 dreg;
enum nft_bitwise_ops op: 8;
u8 len;
struct nft_data mask;
struct nft_data xor;
struct nft_data data;
};
struct nft_data_desc {
enum nft_data_types type;
unsigned int size;
unsigned int len;
unsigned int flags;
};
enum skb_ext_id {
SKB_EXT_BRIDGE_NF = 0,
SKB_EXT_NUM = 1,
};
struct nf_bridge_info {
enum {
BRNF_PROTO_UNCHANGED = 0,
BRNF_PROTO_8021Q = 1,
BRNF_PROTO_PPPOE = 2,
} orig_proto: 8;
u8 pkt_otherhost: 1;
u8 in_prerouting: 1;
u8 bridged_dnat: 1;
u8 sabotage_in_done: 1;
__u16 frag_max_size;
int physinif;
struct net_device *physoutdev;
union {
__be32 ipv4_daddr;
struct in6_addr ipv6_daddr;
char neigh_header[8];
};
};
struct link_container {
struct ieee80211_link_data data;
struct ieee80211_bss_conf conf;
};
struct cppc_perf_caps {
u32 guaranteed_perf;
u32 highest_perf;
u32 nominal_perf;
u32 lowest_perf;
u32 lowest_nonlinear_perf;
u32 lowest_freq;
u32 nominal_freq;
u32 energy_perf;
bool auto_sel;
};
struct cpc_reg {
u8 descriptor;
u16 length;
u8 space_id;
u8 bit_width;
u8 bit_offset;
u8 access_width;
u64 address;
} __attribute__((packed));
struct cstate_entry {
struct {
unsigned int eax;
unsigned int ecx;
} states[8];
};
struct mwait_cpu_dead {
unsigned int control;
unsigned int status;
};
enum apic_intr_mode_id {
APIC_PIC = 0,
APIC_VIRTUAL_WIRE = 1,
APIC_VIRTUAL_WIRE_NO_CONFIG = 2,
APIC_SYMMETRIC_IO = 3,
APIC_SYMMETRIC_IO_NO_ROUTING = 4,
};
typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long);
typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *);
enum mm_cid_state {
MM_CID_UNSET = 4294967295,
MM_CID_LAZY_PUT = 2147483648,
};
enum {
FUTEX_STATE_OK = 0,
FUTEX_STATE_EXITING = 1,
FUTEX_STATE_DEAD = 2,
};
struct trace_event_raw_task_newtask {
struct trace_entry ent;
pid_t pid;
char comm[16];
unsigned long clone_flags;
short oom_score_adj;
char __data[0];
};
struct trace_event_raw_task_rename {
struct trace_entry ent;
pid_t pid;
char oldcomm[16];
char newcomm[16];
short oom_score_adj;
char __data[0];
};
struct vm_stack {
struct callback_head rcu;
struct vm_struct *stack_vm_area;
};
struct clone_args {
__u64 flags;
__u64 pidfd;
__u64 child_tid;
__u64 parent_tid;
__u64 exit_signal;
__u64 stack;
__u64 stack_size;
__u64 tls;
__u64 set_tid;
__u64 set_tid_size;
__u64 cgroup;
};
struct trace_event_data_offsets_task_newtask {};
struct trace_event_data_offsets_task_rename {};
typedef int (*proc_visitor)(struct task_struct *, void *);
enum bpf_struct_ops_state {
BPF_STRUCT_OPS_STATE_INIT = 0,
BPF_STRUCT_OPS_STATE_INUSE = 1,
BPF_STRUCT_OPS_STATE_TOBEFREE = 2,
BPF_STRUCT_OPS_STATE_READY = 3,
};
enum bpf_tramp_prog_type {
BPF_TRAMP_FENTRY = 0,
BPF_TRAMP_FEXIT = 1,
BPF_TRAMP_MODIFY_RETURN = 2,
BPF_TRAMP_MAX = 3,
BPF_TRAMP_REPLACE = 4,
};
enum {
IDX_MODULE_ID = 0,
IDX_ST_OPS_COMMON_VALUE_ID = 1,
};
struct bpf_struct_ops_common_value {
refcount_t refcnt;
enum bpf_struct_ops_state state;
};
struct bpf_struct_ops_value {
struct bpf_struct_ops_common_value common;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
char data[0];
};
struct bpf_struct_ops_map {
struct bpf_map map;
struct callback_head rcu;
const struct bpf_struct_ops_desc *st_ops_desc;
struct mutex lock;
struct bpf_link **links;
u32 links_cnt;
u32 image_pages_cnt;
void *image_pages[8];
struct btf *btf;
struct bpf_struct_ops_value *uvalue;
struct bpf_struct_ops_value kvalue;
};
struct bpf_tramp_link {
struct bpf_link link;
struct hlist_node tramp_hlist;
u64 cookie;
};
struct bpf_struct_ops_link {
struct bpf_link link;
struct bpf_map __attribute__((btf_type_tag("rcu"))) *map;
};
struct bpf_tramp_links {
struct bpf_tramp_link *links[38];
int nr_links;
};
typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t);
struct rcu_synchronize {
struct callback_head head;
struct completion completion;
};
struct f_owner_ex {
int type;
__kernel_pid_t pid;
};
typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *);
typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *);
struct ext4_fsmap_head;
struct ext4_getfsmap_info {
struct ext4_fsmap_head *gfi_head;
ext4_fsmap_format_t gfi_formatter;
void *gfi_format_arg;
ext4_fsblk_t gfi_next_fsblk;
u32 gfi_dev;
ext4_group_t gfi_agno;
struct ext4_fsmap gfi_low;
struct ext4_fsmap gfi_high;
struct ext4_fsmap gfi_lastfree;
struct list_head gfi_meta_list;
bool gfi_last;
};
struct ext4_fsmap_head {
uint32_t fmh_iflags;
uint32_t fmh_oflags;
unsigned int fmh_count;
unsigned int fmh_entries;
struct ext4_fsmap fmh_keys[2];
};
struct fsmap {
__u32 fmr_device;
__u32 fmr_flags;
__u64 fmr_physical;
__u64 fmr_owner;
__u64 fmr_offset;
__u64 fmr_length;
__u64 fmr_reserved[3];
};
struct ext4_getfsmap_dev {
int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *);
u32 gfd_dev;
};
enum {
BTRFS_INODE_FLUSH_ON_CLOSE = 0,
BTRFS_INODE_DUMMY = 1,
BTRFS_INODE_IN_DEFRAG = 2,
BTRFS_INODE_HAS_ASYNC_EXTENT = 3,
BTRFS_INODE_NEEDS_FULL_SYNC = 4,
BTRFS_INODE_COPY_EVERYTHING = 5,
BTRFS_INODE_HAS_PROPS = 6,
BTRFS_INODE_SNAPSHOT_FLUSH = 7,
BTRFS_INODE_NO_XATTRS = 8,
BTRFS_INODE_NO_DELALLOC_FLUSH = 9,
BTRFS_INODE_VERITY_IN_PROGRESS = 10,
BTRFS_INODE_FREE_SPACE_INODE = 11,
BTRFS_INODE_NO_CAP_XATTR = 12,
};
enum btrfs_caching_type {
BTRFS_CACHE_NO = 0,
BTRFS_CACHE_STARTED = 1,
BTRFS_CACHE_FINISHED = 2,
BTRFS_CACHE_ERROR = 3,
};
struct btrfs_block_group_item {
__le64 used;
__le64 chunk_objectid;
__le64 flags;
};
enum string_size_units {
STRING_UNITS_10 = 0,
STRING_UNITS_2 = 1,
STRING_UNITS_MASK = 1,
STRING_UNITS_NO_SPACE = 1073741824,
STRING_UNITS_NO_BYTES = 2147483648,
};
struct strarray {
char **array;
size_t n;
};
enum pcie_bus_config_types {
PCIE_BUS_TUNE_OFF = 0,
PCIE_BUS_DEFAULT = 1,
PCIE_BUS_SAFE = 2,
PCIE_BUS_PERFORMANCE = 3,
PCIE_BUS_PEER2PEER = 4,
};
typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32);
struct hotplug_slot_ops;
struct hotplug_slot {
const struct hotplug_slot_ops *ops;
struct list_head slot_list;
struct pci_slot *pci_slot;
struct module *owner;
const char *mod_name;
};
struct hotplug_slot_ops {
int (*enable_slot)(struct hotplug_slot *);
int (*disable_slot)(struct hotplug_slot *);
int (*set_attention_status)(struct hotplug_slot *, u8);
int (*hardware_test)(struct hotplug_slot *, u32);
int (*get_power_status)(struct hotplug_slot *, u8 *);
int (*get_attention_status)(struct hotplug_slot *, u8 *);
int (*get_latch_status)(struct hotplug_slot *, u8 *);
int (*get_adapter_status)(struct hotplug_slot *, u8 *);
int (*reset_slot)(struct hotplug_slot *, bool);
};
struct pci_reset_fn_method {
int (*reset_fn)(struct pci_dev *, bool);
char *name;
};
enum pcie_reset_state {
pcie_deassert_reset = 1,
pcie_warm_reset = 2,
pcie_hot_reset = 3,
};
enum pci_dev_flags {
PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1,
PCI_DEV_FLAGS_NO_D3 = 2,
PCI_DEV_FLAGS_ASSIGNED = 4,
PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8,
PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32,
PCI_DEV_FLAGS_NO_BUS_RESET = 64,
PCI_DEV_FLAGS_NO_PM_RESET = 128,
PCI_DEV_FLAGS_VPD_REF_F0 = 256,
PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512,
PCI_DEV_FLAGS_NO_FLR_RESET = 1024,
PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048,
PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096,
};
enum {
PCI_REASSIGN_ALL_RSRC = 1,
PCI_REASSIGN_ALL_BUS = 2,
PCI_PROBE_ONLY = 4,
PCI_CAN_SKIP_ISA_ALIGN = 8,
PCI_ENABLE_PROC_DOMAINS = 16,
PCI_COMPAT_DOMAIN_0 = 32,
PCI_SCAN_ALL_PCIE_DEVS = 64,
};
struct pci_pme_device {
struct list_head list;
struct pci_dev *dev;
};
struct pci_saved_state {
u32 config_space[16];
struct pci_cap_saved_data cap[0];
};
struct pci_devres {
unsigned int enabled: 1;
unsigned int pinned: 1;
unsigned int orig_intx: 1;
unsigned int restore_intx: 1;
unsigned int mwi: 1;
u32 region_mask;
};
struct pci_host_bridge {
struct device dev;
struct pci_bus *bus;
struct pci_ops *ops;
struct pci_ops *child_ops;
void *sysdata;
int busnr;
int domain_nr;
struct list_head windows;
struct list_head dma_ranges;
u8 (*swizzle_irq)(struct pci_dev *, u8 *);
int (*map_irq)(const struct pci_dev *, u8, u8);
void (*release_fn)(struct pci_host_bridge *);
void *release_data;
unsigned int ignore_reset_delay: 1;
unsigned int no_ext_tags: 1;
unsigned int no_inc_mrrs: 1;
unsigned int native_aer: 1;
unsigned int native_pcie_hotplug: 1;
unsigned int native_shpc_hotplug: 1;
unsigned int native_pme: 1;
unsigned int native_ltr: 1;
unsigned int native_dpc: 1;
unsigned int native_cxl_error: 1;
unsigned int preserve_config: 1;
unsigned int size_windows: 1;
unsigned int msi_domain: 1;
resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t);
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
unsigned long private[0];
};
struct pcie_tlp_log {
u32 dw[4];
};
struct acpi_fadt_info {
const char *name;
u16 address64;
u16 address32;
u16 length;
u8 default_length;
u8 flags;
};
struct acpi_fadt_pm_info {
struct acpi_generic_address *target;
u16 source;
u8 register_num;
};
struct acpi_pkg_info {
u8 *free_space;
acpi_size length;
u32 object_space;
u32 num_packages;
};
typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *);
enum tty_flow_change {
TTY_FLOW_NO_CHANGE = 0,
TTY_THROTTLE_SAFE = 1,
TTY_UNTHROTTLE_SAFE = 2,
};
enum {
ERASE = 0,
WERASE = 1,
KILL = 2,
};
struct n_tty_data {
size_t read_head;
size_t commit_head;
size_t canon_head;
size_t echo_head;
size_t echo_commit;
size_t echo_mark;
unsigned long char_map[4];
unsigned long overrun_time;
unsigned int num_overrun;
bool no_room;
unsigned char lnext: 1;
unsigned char erasing: 1;
unsigned char raw: 1;
unsigned char real_raw: 1;
unsigned char icanon: 1;
unsigned char push: 1;
u8 read_buf[4096];
unsigned long read_flags[64];
u8 echo_buf[4096];
size_t read_tail;
size_t line_start;
size_t lookahead_count;
unsigned int column;
unsigned int canon_column;
size_t echo_tail;
struct mutex atomic_read_lock;
struct mutex output_lock;
};
enum scsi_devinfo_key {
SCSI_DEVINFO_GLOBAL = 0,
SCSI_DEVINFO_SPI = 1,
};
struct scsi_dev_info_list {
struct list_head dev_info_list;
char vendor[8];
char model[16];
blist_flags_t flags;
unsigned int compatible;
};
struct scsi_dev_info_list_table {
struct list_head node;
struct list_head scsi_dev_info_list;
const char *name;
int key;
};
enum E1000_INVM_STRUCTURE_TYPE {
E1000_INVM_UNINITIALIZED_STRUCTURE = 0,
E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1,
E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2,
E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3,
E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4,
E1000_INVM_INVALIDATED_STRUCTURE = 15,
};
enum iwl_statistics_subcmd_ids {
STATISTICS_OPER_NOTIF = 0,
STATISTICS_OPER_PART1_NOTIF = 1,
};
enum iwl_statistics_notif_flags {
IWL_STATISTICS_REPLY_FLG_CLEAR = 1,
};
enum ieee80211_vif_flags {
IEEE80211_VIF_BEACON_FILTER = 1,
IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2,
IEEE80211_VIF_SUPPORTS_UAPSD = 4,
IEEE80211_VIF_GET_NOA_UPDATE = 8,
IEEE80211_VIF_EML_ACTIVE = 16,
IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = 32,
};
enum iwl_fw_statistics_type {
FW_STATISTICS_OPERATIONAL = 0,
FW_STATISTICS_PHY = 1,
FW_STATISTICS_MAC = 2,
FW_STATISTICS_RX = 3,
FW_STATISTICS_TX = 4,
FW_STATISTICS_DURATION = 5,
FW_STATISTICS_HE = 6,
};
struct iwl_rx_mpdu_res_start {
__le16 byte_count;
__le16 assist;
};
struct iwl_stats_ntfy_per_link {
__le32 beacon_filter_average_energy;
__le32 air_time;
__le32 beacon_counter;
__le32 beacon_average_energy;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 rx_bytes;
};
struct iwl_stats_ntfy_per_phy {
__le32 channel_load;
__le32 channel_load_by_us;
__le32 channel_load_not_by_us;
__le32 clt;
__le32 act;
__le32 elp;
__le32 rx_detected_per_ch_width[5];
__le32 success_per_ch_width[5];
__le32 fail_per_ch_width[5];
__le32 last_tx_ch_width_indx;
};
struct iwl_statistics_ntfy_hdr {
u8 type;
u8 version;
__le16 size;
};
struct iwl_statistics_operational_ntfy_ver_14 {
struct iwl_statistics_ntfy_hdr hdr;
__le32 flags;
__le32 mac_id;
__le32 beacon_filter_average_energy;
__le32 beacon_filter_reason;
__le32 radio_temperature;
__le32 air_time[4];
__le32 beacon_counter[4];
__le32 beacon_average_energy[4];
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 rx_bytes[4];
__le64 rx_time;
__le64 tx_time;
__le64 on_time_rf;
__le64 on_time_scan;
__le32 average_energy[16];
__le32 reserved;
} __attribute__((packed));
struct iwl_stats_ntfy_per_mac {
__le32 beacon_filter_average_energy;
__le32 air_time;
__le32 beacon_counter;
__le32 beacon_average_energy;
__le32 beacon_rssi_a;
__le32 beacon_rssi_b;
__le32 rx_bytes;
};
struct iwl_stats_ntfy_per_sta {
__le32 average_energy;
};
struct iwl_statistics_operational_ntfy {
struct iwl_statistics_ntfy_hdr hdr;
__le32 flags;
struct iwl_stats_ntfy_per_mac per_mac[4];
struct iwl_stats_ntfy_per_phy per_phy[3];
struct iwl_stats_ntfy_per_sta per_sta[16];
__le64 rx_time;
__le64 tx_time;
__le64 on_time_rf;
__le64 on_time_scan;
};
struct iwl_mvm_stat_data {
struct iwl_mvm *mvm;
__le32 flags;
__le32 mac_id;
u8 beacon_filter_average_energy;
__le32 *beacon_counter;
u8 *beacon_average_energy;
};
struct iwl_mvm_stat_data_all_macs {
struct iwl_mvm *mvm;
__le32 flags;
struct iwl_stats_ntfy_per_mac *per_mac;
};
struct iwl_system_statistics_notif_oper {
__le32 time_stamp;
struct iwl_stats_ntfy_per_link per_link[4];
struct iwl_stats_ntfy_per_phy per_phy[3];
struct iwl_stats_ntfy_per_sta per_sta[16];
};
struct iwl_stats_ntfy_part1_per_link {
__le64 rx_time;
__le64 tx_time;
__le32 rx_action;
__le32 tx_action;
__le32 cca_defers;
__le32 beacon_filtered;
};
struct iwl_system_statistics_part1_notif_oper {
__le32 time_stamp;
struct iwl_stats_ntfy_part1_per_link per_link[4];
__le32 per_phy_crc_error_stats[3];
} __attribute__((packed));
struct mvm_statistics_tx_non_phy_v3 {
__le32 preamble_cnt;
__le32 rx_detected_cnt;
__le32 bt_prio_defer_cnt;
__le32 bt_prio_kill_cnt;
__le32 few_bytes_cnt;
__le32 cts_timeout;
__le32 ack_timeout;
__le32 expected_ack_cnt;
__le32 actual_ack_cnt;
__le32 dump_msdu_cnt;
__le32 burst_abort_next_frame_mismatch_cnt;
__le32 burst_abort_missing_next_frame_cnt;
__le32 cts_timeout_collision;
__le32 ack_or_ba_timeout_collision;
};
struct mvm_statistics_tx_non_phy_agg {
__le32 ba_timeout;
__le32 ba_reschedule_frames;
__le32 scd_query_agg_frame_cnt;
__le32 scd_query_no_agg;
__le32 scd_query_agg;
__le32 scd_query_mismatch;
__le32 frame_not_ready;
__le32 underrun;
__le32 bt_prio_kill;
__le32 rx_ba_rsp_cnt;
__s8 txpower[3];
__s8 reserved;
__le32 reserved2;
};
struct mvm_statistics_tx_channel_width {
__le32 ext_cca_narrow_ch20[1];
__le32 ext_cca_narrow_ch40[2];
__le32 ext_cca_narrow_ch80[3];
__le32 ext_cca_narrow_ch160[4];
__le32 last_tx_ch_width_indx;
__le32 rx_detected_per_ch_width[4];
__le32 success_per_ch_width[4];
__le32 fail_per_ch_width[4];
};
struct mvm_statistics_tx_v4 {
struct mvm_statistics_tx_non_phy_v3 general;
struct mvm_statistics_tx_non_phy_agg agg;
struct mvm_statistics_tx_channel_width channel_width;
};
struct mvm_statistics_dbg {
__le32 burst_check;
__le32 burst_count;
__le32 wait_for_silence_timeout_cnt;
u8 reserved[12];
};
struct mvm_statistics_div {
__le32 tx_on_a;
__le32 tx_on_b;
__le32 exec_time;
__le32 probe_time;
__le32 rssi_ant;
__le32 reserved2;
};
struct mvm_statistics_bt_activity {
__le32 hi_priority_tx_req_cnt;
__le32 hi_priority_tx_denied_cnt;
__le32 lo_priority_tx_req_cnt;
__le32 lo_priority_tx_denied_cnt;
__le32 hi_priority_rx_req_cnt;
__le32 hi_priority_rx_denied_cnt;
__le32 lo_priority_rx_req_cnt;
__le32 lo_priority_rx_denied_cnt;
};
struct mvm_statistics_general_common_v19 {
__le32 radio_temperature;
__le32 radio_voltage;
struct mvm_statistics_dbg dbg;
__le32 sleep_time;
__le32 slots_out;
__le32 slots_idle;
__le32 ttl_timestamp;
struct mvm_statistics_div slow_div;
__le32 rx_enable_counter;
__le32 num_of_sos_states;
__le32 beacon_filtered;
__le32 missed_beacons;
u8 beacon_filter_average_energy;
u8 beacon_filter_reason;
u8 beacon_filter_current_energy;
u8 beacon_filter_reserved;
__le32 beacon_filter_delta_time;
struct mvm_statistics_bt_activity bt_activity;
__le64 rx_time;
__le64 on_time_rf;
__le64 on_time_scan;
__le64 tx_time;
};
struct mvm_statistics_general_v8 {
struct mvm_statistics_general_common_v19 common;
__le32 beacon_counter[5];
u8 beacon_average_energy[5];
u8 reserved[3];
} __attribute__((packed));
struct mvm_statistics_load_v1 {
__le32 air_time[5];
__le32 byte_count[5];
__le32 pkt_count[5];
u8 avg_energy[16];
};
struct iwl_notif_statistics_v11 {
__le32 flag;
struct mvm_statistics_rx_v3 rx;
struct mvm_statistics_tx_v4 tx;
struct mvm_statistics_general_v8 general;
struct mvm_statistics_load_v1 load_stats;
};
struct mvm_statistics_tx_non_phy {
__le32 bt_prio_defer_cnt;
__le32 bt_prio_kill_cnt;
__le32 few_bytes_cnt;
__le32 cts_timeout;
__le32 ack_timeout;
__le32 dump_msdu_cnt;
__le32 burst_abort_next_frame_mismatch_cnt;
__le32 burst_abort_missing_next_frame_cnt;
__le32 cts_timeout_collision;
__le32 ack_or_ba_timeout_collision;
};
struct mvm_statistics_tx {
struct mvm_statistics_tx_non_phy general;
struct mvm_statistics_tx_non_phy_agg agg;
struct mvm_statistics_tx_channel_width channel_width;
};
struct mvm_statistics_general_common {
__le32 radio_temperature;
struct mvm_statistics_dbg dbg;
__le32 sleep_time;
__le32 slots_out;
__le32 slots_idle;
__le32 ttl_timestamp;
struct mvm_statistics_div slow_div;
__le32 rx_enable_counter;
__le32 num_of_sos_states;
__le32 beacon_filtered;
__le32 missed_beacons;
u8 beacon_filter_average_energy;
u8 beacon_filter_reason;
u8 beacon_filter_current_energy;
u8 beacon_filter_reserved;
__le32 beacon_filter_delta_time;
struct mvm_statistics_bt_activity bt_activity;
__le64 rx_time;
__le64 on_time_rf;
__le64 on_time_scan;
__le64 tx_time;
} __attribute__((packed));
struct mvm_statistics_general {
struct mvm_statistics_general_common common;
__le32 beacon_counter[4];
u8 beacon_average_energy[4];
u8 reserved[4];
};
struct mvm_statistics_load {
__le32 air_time[4];
__le32 byte_count[4];
__le32 pkt_count[4];
u8 avg_energy[16];
};
struct iwl_notif_statistics {
__le32 flag;
struct mvm_statistics_rx rx;
struct mvm_statistics_tx tx;
struct mvm_statistics_general general;
struct mvm_statistics_load load_stats;
};
struct iwl_fw_dbg_trigger_stats {
__le32 stop_offset;
__le32 stop_threshold;
__le32 start_offset;
__le32 start_threshold;
};
struct iwl_ba_window_status_notif {
__le64 bitmap[16];
__le16 ra_tid[16];
__le32 start_seq_num[16];
__le16 mpdu_rx_count[16];
};
enum usb_port_connect_type {
USB_PORT_CONNECT_TYPE_UNKNOWN = 0,
USB_PORT_CONNECT_TYPE_HOT_PLUG = 1,
USB_PORT_CONNECT_TYPE_HARD_WIRED = 2,
USB_PORT_NOT_USED = 3,
};
enum hub_led_mode {
INDICATOR_AUTO = 0,
INDICATOR_CYCLE = 1,
INDICATOR_GREEN_BLINK = 2,
INDICATOR_GREEN_BLINK_OFF = 3,
INDICATOR_AMBER_BLINK = 4,
INDICATOR_AMBER_BLINK_OFF = 5,
INDICATOR_ALT_BLINK = 6,
INDICATOR_ALT_BLINK_OFF = 7,
} __attribute__((mode(byte)));
enum hub_quiescing_type {
HUB_DISCONNECT = 0,
HUB_PRE_RESET = 1,
HUB_SUSPEND = 2,
};
enum hub_activation_type {
HUB_INIT = 0,
HUB_INIT2 = 1,
HUB_INIT3 = 2,
HUB_POST_RESET = 3,
HUB_RESUME = 4,
HUB_RESET_RESUME = 5,
};
struct usb_hub_status {
__le16 wHubStatus;
__le16 wHubChange;
};
struct usb_port_status {
__le16 wPortStatus;
__le16 wPortChange;
__le32 dwExtPortStatus;
};
struct usb_hub_descriptor;
struct usb_port;
struct usb_hub {
struct device *intfdev;
struct usb_device *hdev;
struct kref kref;
struct urb *urb;
u8 (*buffer)[8];
union {
struct usb_hub_status hub;
struct usb_port_status port;
} *status;
struct mutex status_mutex;
int error;
int nerrors;
unsigned long event_bits[1];
unsigned long change_bits[1];
unsigned long removed_bits[1];
unsigned long wakeup_bits[1];
unsigned long power_bits[1];
unsigned long child_usage_bits[1];
unsigned long warm_reset_bits[1];
struct usb_hub_descriptor *descriptor;
struct usb_tt tt;
unsigned int mA_per_port;
unsigned int wakeup_enabled_descendants;
unsigned int limited_power: 1;
unsigned int quiescing: 1;
unsigned int disconnected: 1;
unsigned int in_reset: 1;
unsigned int quirk_disable_autosuspend: 1;
unsigned int quirk_check_port_auto_suspend: 1;
unsigned int has_indicators: 1;
u8 indicator[31];
struct delayed_work leds;
struct delayed_work init_work;
struct work_struct events;
spinlock_t irq_urb_lock;
struct timer_list irq_urb_retry;
struct usb_port **ports;
struct list_head onboard_hub_devs;
};
struct usb_hub_descriptor {
__u8 bDescLength;
__u8 bDescriptorType;
__u8 bNbrPorts;
__le16 wHubCharacteristics;
__u8 bPwrOn2PwrGood;
__u8 bHubContrCurrent;
union {
struct {
__u8 DeviceRemovable[4];
__u8 PortPwrCtrlMask[4];
} hs;
struct {
__u8 bHubHdrDecLat;
__le16 wHubDelay;
__le16 DeviceRemovable;
} __attribute__((packed)) ss;
} u;
} __attribute__((packed));
typedef u32 usb_port_location_t;
struct usb_dev_state;
struct typec_connector;
struct usb_port {
struct usb_device *child;
struct device dev;
struct usb_dev_state *port_owner;
struct usb_port *peer;
struct typec_connector *connector;
struct dev_pm_qos_request *req;
enum usb_port_connect_type connect_type;
enum usb_device_state state;
struct kernfs_node *state_kn;
usb_port_location_t location;
struct mutex status_lock;
u32 over_current_count;
u8 portnum;
u32 quirks;
unsigned int early_stop: 1;
unsigned int ignore_event: 1;
unsigned int is_superspeed: 1;
unsigned int usb3_lpm_u1_permit: 1;
unsigned int usb3_lpm_u2_permit: 1;
};
struct typec_connector {
void (*attach)(struct typec_connector *, struct device *);
void (*deattach)(struct typec_connector *, struct device *);
};
struct usb_tt_clear {
struct list_head clear_list;
unsigned int tt;
u16 devinfo;
struct usb_hcd *hcd;
struct usb_host_endpoint *ep;
};
struct usb_qualifier_descriptor {
__u8 bLength;
__u8 bDescriptorType;
__le16 bcdUSB;
__u8 bDeviceClass;
__u8 bDeviceSubClass;
__u8 bDeviceProtocol;
__u8 bMaxPacketSize0;
__u8 bNumConfigurations;
__u8 bRESERVED;
};
struct usbdevfs_hub_portinfo {
char nports;
char port[127];
};
struct usb_set_sel_req {
__u8 u1_sel;
__u8 u1_pel;
__le16 u2_sel;
__le16 u2_pel;
};
struct dax_operations {
long (*direct_access)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *);
bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t);
int (*zero_page_range)(struct dax_device *, unsigned long, size_t);
size_t (*recovery_write)(struct dax_device *, unsigned long, void *, size_t, struct iov_iter *);
};
enum {
DM_TIO_INSIDE_DM_IO = 0,
DM_TIO_IS_DUPLICATE_BIO = 1,
};
enum {
DM_IO_ACCOUNTED = 0,
DM_IO_WAS_SPLIT = 1,
DM_IO_BLK_STAT = 2,
};
struct table_device {
struct list_head list;
refcount_t count;
struct dm_dev dm_dev;
};
struct clone_info {
struct dm_table *map;
struct bio *bio;
struct dm_io *io;
sector_t sector;
unsigned int sector_count;
bool is_abnormal_io: 1;
bool submit_as_polled: 1;
};
struct dm_pr {
u64 old_key;
u64 new_key;
u32 flags;
bool abort;
bool fail_early;
int ret;
enum pr_type type;
struct pr_keys *read_keys;
struct pr_held_reservation *rsv;
};
struct page_pool_stats {
struct page_pool_alloc_stats alloc_stats;
struct page_pool_recycle_stats recycle_stats;
};
struct conntrack_gc_work {
struct delayed_work dwork;
u32 next_bucket;
u32 avg_timeout;
u32 count;
u32 start_time;
bool exiting;
bool early_drop;
};
struct nf_ct_hook {
int (*update)(struct net *, struct sk_buff *);
void (*destroy)(struct nf_conntrack *);
bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *);
void (*attach)(struct sk_buff *, const struct sk_buff *);
void (*set_closing)(struct nf_conntrack *);
int (*confirm)(struct sk_buff *);
};
enum nf_ct_ecache_state {
NFCT_ECACHE_DESTROY_FAIL = 0,
NFCT_ECACHE_DESTROY_SENT = 1,
};
enum nf_ct_helper_flags {
NF_CT_HELPER_F_USERSPACE = 1,
NF_CT_HELPER_F_CONFIGURED = 2,
};
struct nf_ct_timeout {
__u16 l3num;
const struct nf_conntrack_l4proto *l4proto;
char data[0];
};
struct nf_conn_timeout {
struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout;
};
enum {
IPT_TTL_EQ = 0,
IPT_TTL_NE = 1,
IPT_TTL_LT = 2,
IPT_TTL_GT = 3,
};
enum {
IP6T_HL_EQ = 0,
IP6T_HL_NE = 1,
IP6T_HL_LT = 2,
IP6T_HL_GT = 3,
};
struct ipt_ttl_info {
__u8 mode;
__u8 ttl;
};
struct ip6t_hl_info {
__u8 mode;
__u8 hop_limit;
};
enum nl80211_sta_info {
__NL80211_STA_INFO_INVALID = 0,
NL80211_STA_INFO_INACTIVE_TIME = 1,
NL80211_STA_INFO_RX_BYTES = 2,
NL80211_STA_INFO_TX_BYTES = 3,
NL80211_STA_INFO_LLID = 4,
NL80211_STA_INFO_PLID = 5,
NL80211_STA_INFO_PLINK_STATE = 6,
NL80211_STA_INFO_SIGNAL = 7,
NL80211_STA_INFO_TX_BITRATE = 8,
NL80211_STA_INFO_RX_PACKETS = 9,
NL80211_STA_INFO_TX_PACKETS = 10,
NL80211_STA_INFO_TX_RETRIES = 11,
NL80211_STA_INFO_TX_FAILED = 12,
NL80211_STA_INFO_SIGNAL_AVG = 13,
NL80211_STA_INFO_RX_BITRATE = 14,
NL80211_STA_INFO_BSS_PARAM = 15,
NL80211_STA_INFO_CONNECTED_TIME = 16,
NL80211_STA_INFO_STA_FLAGS = 17,
NL80211_STA_INFO_BEACON_LOSS = 18,
NL80211_STA_INFO_T_OFFSET = 19,
NL80211_STA_INFO_LOCAL_PM = 20,
NL80211_STA_INFO_PEER_PM = 21,
NL80211_STA_INFO_NONPEER_PM = 22,
NL80211_STA_INFO_RX_BYTES64 = 23,
NL80211_STA_INFO_TX_BYTES64 = 24,
NL80211_STA_INFO_CHAIN_SIGNAL = 25,
NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 26,
NL80211_STA_INFO_EXPECTED_THROUGHPUT = 27,
NL80211_STA_INFO_RX_DROP_MISC = 28,
NL80211_STA_INFO_BEACON_RX = 29,
NL80211_STA_INFO_BEACON_SIGNAL_AVG = 30,
NL80211_STA_INFO_TID_STATS = 31,
NL80211_STA_INFO_RX_DURATION = 32,
NL80211_STA_INFO_PAD = 33,
NL80211_STA_INFO_ACK_SIGNAL = 34,
NL80211_STA_INFO_ACK_SIGNAL_AVG = 35,
NL80211_STA_INFO_RX_MPDUS = 36,
NL80211_STA_INFO_FCS_ERROR_COUNT = 37,
NL80211_STA_INFO_CONNECTED_TO_GATE = 38,
NL80211_STA_INFO_TX_DURATION = 39,
NL80211_STA_INFO_AIRTIME_WEIGHT = 40,
NL80211_STA_INFO_AIRTIME_LINK_METRIC = 41,
NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 42,
NL80211_STA_INFO_CONNECTED_TO_AS = 43,
__NL80211_STA_INFO_AFTER_LAST = 44,
NL80211_STA_INFO_MAX = 43,
};
enum bpf_text_poke_type {
BPF_MOD_CALL = 0,
BPF_MOD_JUMP = 1,
};
enum bpf_addr_space_cast {
BPF_ADDR_SPACE_CAST = 1,
};
typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int);
struct bpf_binary_header {
u32 size;
long: 0;
u8 image[0];
};
struct jit_context {
int cleanup_addr;
int tail_call_direct_label;
int tail_call_indirect_label;
};
struct bpf_tramp_run_ctx;
typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *);
struct bpf_tramp_run_ctx {
struct bpf_run_ctx run_ctx;
u64 bpf_cookie;
struct bpf_run_ctx *saved_run_ctx;
};
typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *);
struct x64_jit_data {
struct bpf_binary_header *rw_header;
struct bpf_binary_header *header;
int *addrs;
u8 *image;
int proglen;
struct jit_context ctx;
};
struct dma_chan___2 {
int lock;
const char *device_id;
};
enum ring_buffer_type {
RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28,
RINGBUF_TYPE_PADDING = 29,
RINGBUF_TYPE_TIME_EXTEND = 30,
RINGBUF_TYPE_TIME_STAMP = 31,
};
enum {
RB_LEN_TIME_EXTEND = 8,
RB_LEN_TIME_STAMP = 8,
};
enum ring_buffer_flags {
RB_FL_OVERWRITE = 1,
};
enum {
RB_CTX_TRANSITION = 0,
RB_CTX_NMI = 1,
RB_CTX_IRQ = 2,
RB_CTX_SOFTIRQ = 3,
RB_CTX_NORMAL = 4,
RB_CTX_MAX = 5,
};
enum {
RB_ADD_STAMP_NONE = 0,
RB_ADD_STAMP_EXTEND = 2,
RB_ADD_STAMP_ABSOLUTE = 4,
RB_ADD_STAMP_FORCE = 8,
};
struct buffer_data_page;
struct buffer_page {
struct list_head list;
local_t write;
unsigned int read;
local_t entries;
unsigned long real_end;
unsigned int order;
struct buffer_data_page *page;
};
struct buffer_data_page {
u64 time_stamp;
local_t commit;
unsigned char data[0];
};
struct ring_buffer_per_cpu;
struct ring_buffer_iter {
struct ring_buffer_per_cpu *cpu_buffer;
unsigned long head;
unsigned long next_event;
struct buffer_page *head_page;
struct buffer_page *cache_reader_page;
unsigned long cache_read;
unsigned long cache_pages_removed;
u64 read_stamp;
u64 page_stamp;
struct ring_buffer_event *event;
size_t event_size;
int missed_events;
};
struct rb_time_struct {
local64_t time;
};
typedef struct rb_time_struct rb_time_t;
struct rb_irq_work {
struct irq_work work;
wait_queue_head_t waiters;
wait_queue_head_t full_waiters;
atomic_t seq;
bool waiters_pending;
bool full_waiters_pending;
bool wakeup_full;
};
struct ring_buffer_per_cpu {
int cpu;
atomic_t record_disabled;
atomic_t resize_disabled;
struct trace_buffer *buffer;
raw_spinlock_t reader_lock;
arch_spinlock_t lock;
struct lock_class_key lock_key;
struct buffer_data_page *free_page;
unsigned long nr_pages;
unsigned int current_context;
struct list_head *pages;
struct buffer_page *head_page;
struct buffer_page *tail_page;
struct buffer_page *commit_page;
struct buffer_page *reader_page;
unsigned long lost_events;
unsigned long last_overrun;
unsigned long nest;
local_t entries_bytes;
local_t entries;
local_t overrun;
local_t commit_overrun;
local_t dropped_events;
local_t committing;
local_t commits;
local_t pages_touched;
local_t pages_lost;
local_t pages_read;
long last_pages_touch;
size_t shortest_full;
unsigned long read;
unsigned long read_bytes;
rb_time_t write_stamp;
rb_time_t before_stamp;
u64 event_stamp[5];
u64 read_stamp;
unsigned long pages_removed;
long nr_pages_to_update;
struct list_head new_pages;
struct work_struct update_pages_work;
struct completion update_done;
struct rb_irq_work irq_work;
};
struct trace_buffer {
unsigned int flags;
int cpus;
atomic_t record_disabled;
atomic_t resizing;
cpumask_var_t cpumask;
struct lock_class_key *reader_lock_key;
struct mutex mutex;
struct ring_buffer_per_cpu **buffers;
struct hlist_node node;
u64 (*clock)();
struct rb_irq_work irq_work;
bool time_stamp_abs;
unsigned int subbuf_size;
unsigned int subbuf_order;
unsigned int max_data_size;
};
typedef bool (*ring_buffer_cond_fn)(void *);
struct rb_event_info {
u64 ts;
u64 delta;
u64 before;
u64 after;
unsigned long length;
struct buffer_page *tail_page;
int add_timestamp;
};
struct buffer_data_read_page {
unsigned int order;
struct buffer_data_page *data;
};
struct rb_wait_data {
struct rb_irq_work *irq_work;
int seq;
};
typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *);
typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long);
typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *);
typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *);
struct anon_vma_chain {
struct vm_area_struct *vma;
struct anon_vma *anon_vma;
struct list_head same_vma;
struct rb_node rb;
unsigned long rb_subtree_last;
};
struct trace_event_raw_vm_unmapped_area {
struct trace_entry ent;
unsigned long addr;
unsigned long total_vm;
unsigned long flags;
unsigned long length;
unsigned long low_limit;
unsigned long high_limit;
unsigned long align_mask;
unsigned long align_offset;
char __data[0];
};
struct trace_event_raw_vma_mas_szero {
struct trace_entry ent;
struct maple_tree *mt;
unsigned long start;
unsigned long end;
char __data[0];
};
struct trace_event_raw_vma_store {
struct trace_entry ent;
struct maple_tree *mt;
struct vm_area_struct *vma;
unsigned long vm_start;
unsigned long vm_end;
char __data[0];
};
struct trace_event_raw_exit_mmap {
struct trace_entry ent;
struct mm_struct *mm;
struct maple_tree *mt;
char __data[0];
};
struct vma_prepare {
struct vm_area_struct *vma;
struct vm_area_struct *adj_next;
struct file *file;
struct address_space *mapping;
struct anon_vma *anon_vma;
struct vm_area_struct *insert;
struct vm_area_struct *remove;
struct vm_area_struct *remove2;
};
struct encoded_page;
struct mmu_gather_batch {
struct mmu_gather_batch *next;
unsigned int nr;
unsigned int max;
struct encoded_page *encoded_pages[0];
};
struct mmu_gather {
struct mm_struct *mm;
unsigned long start;
unsigned long end;
unsigned int fullmm: 1;
unsigned int need_flush_all: 1;
unsigned int freed_tables: 1;
unsigned int delayed_rmap: 1;
unsigned int cleared_ptes: 1;
unsigned int cleared_pmds: 1;
unsigned int cleared_puds: 1;
unsigned int cleared_p4ds: 1;
unsigned int vma_exec: 1;
unsigned int vma_huge: 1;
unsigned int vma_pfn: 1;
unsigned int batch_count;
struct mmu_gather_batch *active;
struct mmu_gather_batch local;
struct page *__pages[8];
};
struct trace_event_data_offsets_vm_unmapped_area {};
struct trace_event_data_offsets_vma_mas_szero {};
struct trace_event_data_offsets_vma_store {};
struct trace_event_data_offsets_exit_mmap {};
typedef __kernel_long_t __kernel_old_time_t;
struct utimbuf {
__kernel_old_time_t actime;
__kernel_old_time_t modtime;
};
struct kcore_list {
struct list_head list;
unsigned long addr;
size_t size;
int type;
};
enum kcore_type {
KCORE_TEXT = 0,
KCORE_VMALLOC = 1,
KCORE_RAM = 2,
KCORE_VMEMMAP = 3,
KCORE_USER = 4,
};
struct iso_directory_record {
__u8 length[1];
__u8 ext_attr_length[1];
__u8 extent[8];
__u8 size[8];
__u8 date[7];
__u8 flags[1];
__u8 file_unit_size[1];
__u8 interleave[1];
__u8 volume_sequence_number[4];
__u8 name_len[1];
char name[0];
};
struct isofs_sb_info {
unsigned long s_ninodes;
unsigned long s_nzones;
unsigned long s_firstdatazone;
unsigned long s_log_zone_size;
unsigned long s_max_size;
int s_rock_offset;
s32 s_sbsector;
unsigned char s_joliet_level;
unsigned char s_mapping;
unsigned char s_check;
unsigned char s_session;
unsigned int s_high_sierra: 1;
unsigned int s_rock: 2;
unsigned int s_cruft: 1;
unsigned int s_nocompress: 1;
unsigned int s_hide: 1;
unsigned int s_showassoc: 1;
unsigned int s_overriderockperm: 1;
unsigned int s_uid_set: 1;
unsigned int s_gid_set: 1;
umode_t s_fmode;
umode_t s_dmode;
kgid_t s_gid;
kuid_t s_uid;
struct nls_table *s_nls_iocharset;
};
struct crypto_shash_spawn {
struct crypto_spawn base;
};
struct hmac_ctx {
struct crypto_shash *hash;
u8 pads[0];
};
enum {
IORING_MSG_DATA = 0,
IORING_MSG_SEND_FD = 1,
};
struct io_msg {
struct file *file;
struct file *src_file;
struct callback_head tw;
u64 user_data;
u32 len;
u32 cmd;
u32 src_fd;
union {
u32 dst_fd;
u32 cqe_flags;
};
u32 flags;
};
struct io_cache_entry {
struct io_wq_work_node node;
};
struct io_rsrc_put {
u64 tag;
union {
void *rsrc;
struct file *file;
struct io_mapped_ubuf *buf;
};
};
struct io_rsrc_node {
union {
struct io_cache_entry cache;
struct io_ring_ctx *ctx;
};
int refs;
bool empty;
u16 type;
struct list_head node;
struct io_rsrc_put item;
};
struct io_mapped_ubuf {
u64 ubuf;
u64 ubuf_end;
unsigned int nr_bvecs;
unsigned long acct_pages;
struct bio_vec bvec[0];
};
struct io_rsrc_data {
struct io_ring_ctx *ctx;
u64 **tags;
unsigned int nr;
u16 rsrc_type;
bool quiesce;
};
struct acpi_table_spcr {
struct acpi_table_header header;
u8 interface_type;
u8 reserved[3];
struct acpi_generic_address serial_port;
u8 interrupt_type;
u8 pc_interrupt;
u32 interrupt;
u8 baud_rate;
u8 parity;
u8 stop_bits;
u8 flow_control;
u8 terminal_type;
u8 reserved1;
u16 pci_device_id;
u16 pci_vendor_id;
u8 pci_bus;
u8 pci_device;
u8 pci_function;
u32 pci_flags;
u8 pci_segment;
u32 reserved2;
} __attribute__((packed));
struct clk_fixed_rate {
struct clk_hw hw;
unsigned long fixed_rate;
unsigned long fixed_accuracy;
unsigned long flags;
};
struct con_driver {
const struct consw *con;
const char *desc;
struct device *dev;
int node;
int first;
int last;
int flag;
};
struct vc {
struct vc_data *d;
struct work_struct SAK_work;
};
struct interval {
uint32_t first;
uint32_t last;
};
enum {
blank_off = 0,
blank_normal_wait = 1,
blank_vesa_wait = 2,
};
enum vc_ctl_state {
ESnormal = 0,
ESesc = 1,
ESsquare = 2,
ESgetpars = 3,
ESfunckey = 4,
EShash = 5,
ESsetG0 = 6,
ESsetG1 = 7,
ESpercent = 8,
EScsiignore = 9,
ESnonstd = 10,
ESpalette = 11,
ESosc = 12,
ESANSI_first = 12,
ESapc = 13,
ESpm = 14,
ESdcs = 15,
ESANSI_last = 15,
};
enum {
EPecma = 0,
EPdec = 1,
EPeq = 2,
EPgt = 3,
EPlt = 4,
};
enum translation_map {
LAT1_MAP = 0,
GRAF_MAP = 1,
IBMPC_MAP = 2,
USER_MAP = 3,
FIRST_MAP = 0,
LAST_MAP = 3,
};
enum CSI_J {
CSI_J_CURSOR_TO_END = 0,
CSI_J_START_TO_CURSOR = 1,
CSI_J_VISIBLE = 2,
CSI_J_FULL = 3,
};
enum {
ASCII_NULL = 0,
ASCII_BELL = 7,
ASCII_BACKSPACE = 8,
ASCII_IGNORE_FIRST = 8,
ASCII_HTAB = 9,
ASCII_LINEFEED = 10,
ASCII_VTAB = 11,
ASCII_FORMFEED = 12,
ASCII_CAR_RET = 13,
ASCII_IGNORE_LAST = 13,
ASCII_SHIFTOUT = 14,
ASCII_SHIFTIN = 15,
ASCII_CANCEL = 24,
ASCII_SUBSTITUTE = 26,
ASCII_ESCAPE = 27,
ASCII_CSI_IGNORE_FIRST = 32,
ASCII_CSI_IGNORE_LAST = 63,
ASCII_DEL = 127,
ASCII_EXT_CSI = 155,
};
enum {
CSI_DEC_hl_CURSOR_KEYS = 1,
CSI_DEC_hl_132_COLUMNS = 3,
CSI_DEC_hl_REVERSE_VIDEO = 5,
CSI_DEC_hl_ORIGIN_MODE = 6,
CSI_DEC_hl_AUTOWRAP = 7,
CSI_DEC_hl_AUTOREPEAT = 8,
CSI_DEC_hl_MOUSE_X10 = 9,
CSI_DEC_hl_SHOW_CURSOR = 25,
CSI_DEC_hl_MOUSE_VT200 = 1000,
};
enum {
CSI_K_CURSOR_TO_LINEEND = 0,
CSI_K_LINESTART_TO_CURSOR = 1,
CSI_K_LINE = 2,
};
enum {
CSI_hl_DISPLAY_CTRL = 3,
CSI_hl_INSERT = 4,
CSI_hl_AUTO_NL = 20,
};
enum {
CSI_m_DEFAULT = 0,
CSI_m_BOLD = 1,
CSI_m_HALF_BRIGHT = 2,
CSI_m_ITALIC = 3,
CSI_m_UNDERLINE = 4,
CSI_m_BLINK = 5,
CSI_m_REVERSE = 7,
CSI_m_PRI_FONT = 10,
CSI_m_ALT_FONT1 = 11,
CSI_m_ALT_FONT2 = 12,
CSI_m_DOUBLE_UNDERLINE = 21,
CSI_m_NORMAL_INTENSITY = 22,
CSI_m_NO_ITALIC = 23,
CSI_m_NO_UNDERLINE = 24,
CSI_m_NO_BLINK = 25,
CSI_m_NO_REVERSE = 27,
CSI_m_FG_COLOR_BEG = 30,
CSI_m_FG_COLOR_END = 37,
CSI_m_FG_COLOR = 38,
CSI_m_DEFAULT_FG_COLOR = 39,
CSI_m_BG_COLOR_BEG = 40,
CSI_m_BG_COLOR_END = 47,
CSI_m_BG_COLOR = 48,
CSI_m_DEFAULT_BG_COLOR = 49,
CSI_m_BRIGHT_FG_COLOR_BEG = 90,
CSI_m_BRIGHT_FG_COLOR_END = 97,
CSI_m_BRIGHT_FG_COLOR_OFF = 60,
CSI_m_BRIGHT_BG_COLOR_BEG = 100,
CSI_m_BRIGHT_BG_COLOR_END = 107,
CSI_m_BRIGHT_BG_COLOR_OFF = 60,
};
enum CSI_right_square_bracket {
CSI_RSB_COLOR_FOR_UNDERLINE = 1,
CSI_RSB_COLOR_FOR_HALF_BRIGHT = 2,
CSI_RSB_MAKE_CUR_COLOR_DEFAULT = 8,
CSI_RSB_BLANKING_INTERVAL = 9,
CSI_RSB_BELL_FREQUENCY = 10,
CSI_RSB_BELL_DURATION = 11,
CSI_RSB_BRING_CONSOLE_TO_FRONT = 12,
CSI_RSB_UNBLANK = 13,
CSI_RSB_VESA_OFF_INTERVAL = 14,
CSI_RSB_BRING_PREV_CONSOLE_TO_FRONT = 15,
CSI_RSB_CURSOR_BLINK_INTERVAL = 16,
};
typedef unsigned short ushort;
struct tiocl_selection {
unsigned short xs;
unsigned short ys;
unsigned short xe;
unsigned short ye;
unsigned short sel_mode;
};
struct console_font_op {
unsigned int op;
unsigned int flags;
unsigned int width;
unsigned int height;
unsigned int charcount;
unsigned char __attribute__((btf_type_tag("user"))) *data;
};
struct vc_draw_region {
unsigned long from;
unsigned long to;
int x;
};
struct rgb {
u8 r;
u8 g;
u8 b;
};
struct mdio_driver {
struct mdio_driver_common mdiodrv;
int (*probe)(struct mdio_device *);
void (*remove)(struct mdio_device *);
void (*shutdown)(struct mdio_device *);
};
enum {
MEASUREMENT_READY = 1,
MEASUREMENT_ACTIVE = 2,
};
enum rfkill_hard_block_reasons {
RFKILL_HARD_BLOCK_SIGNAL = 1,
RFKILL_HARD_BLOCK_NOT_OWNER = 2,
};
struct iwl_rx_mpdu_res_start___2 {
__le16 byte_count;
__le16 reserved;
};
struct iwlagn_non_cfg_phy {
__le32 non_cfg_phy[8];
};
struct iwl_error_resp {
__le32 error_type;
u8 cmd_id;
u8 reserved1;
__le16 bad_cmd_seq_num;
__le32 error_info;
__le64 timestamp;
} __attribute__((packed));
struct iwl_csa_notification {
__le16 band;
__le16 channel;
__le32 status;
};
struct iwlagn_tx_resp {
u8 frame_count;
u8 bt_kill_count;
u8 failure_rts;
u8 failure_frame;
__le32 rate_n_flags;
__le16 wireless_media_time;
u8 pa_status;
u8 pa_integ_res_a[3];
u8 pa_integ_res_b[3];
u8 pa_integ_res_C[3];
__le32 tfd_info;
__le16 seq_ctl;
__le16 byte_cnt;
u8 tlc_info;
u8 ra_tid;
__le16 frame_ctrl;
struct agg_tx_status status;
};
struct iwlagn_beacon_notif {
struct iwlagn_tx_resp beacon_notify_hdr;
__le32 low_tsf;
__le32 high_tsf;
__le32 ibss_mgr_status;
};
struct iwl_wipan_noa_descriptor {
u8 count;
__le32 duration;
__le32 interval;
__le32 starttime;
} __attribute__((packed));
struct iwl_wipan_noa_attribute {
u8 id;
__le16 length;
u8 index;
u8 ct_window;
struct iwl_wipan_noa_descriptor descr0;
struct iwl_wipan_noa_descriptor descr1;
u8 reserved;
} __attribute__((packed));
struct iwl_wipan_noa_notification {
u32 noa_active;
struct iwl_wipan_noa_attribute noa_attribute;
};
struct statistics_rx {
struct statistics_rx_phy ofdm;
struct statistics_rx_phy cck;
struct statistics_rx_non_phy general;
struct statistics_rx_ht_phy ofdm_ht;
};
struct statistics_general {
struct statistics_general_common common;
__le32 reserved2;
__le32 reserved3;
};
struct iwl_notif_statistics___2 {
__le32 flag;
struct statistics_rx rx;
struct statistics_tx tx;
struct statistics_general general;
};
struct statistics_rx_non_phy_bt {
struct statistics_rx_non_phy common;
__le32 num_bt_kills;
__le32 reserved[2];
};
struct statistics_rx_bt {
struct statistics_rx_phy ofdm;
struct statistics_rx_phy cck;
struct statistics_rx_non_phy_bt general;
struct statistics_rx_ht_phy ofdm_ht;
};
struct statistics_bt_activity {
__le32 hi_priority_tx_req_cnt;
__le32 hi_priority_tx_denied_cnt;
__le32 lo_priority_tx_req_cnt;
__le32 lo_priority_tx_denied_cnt;
__le32 hi_priority_rx_req_cnt;
__le32 hi_priority_rx_denied_cnt;
__le32 lo_priority_rx_req_cnt;
__le32 lo_priority_rx_denied_cnt;
};
struct statistics_general_bt {
struct statistics_general_common common;
struct statistics_bt_activity activity;
__le32 reserved2;
__le32 reserved3;
};
struct iwl_bt_notif_statistics {
__le32 flag;
struct statistics_rx_bt rx;
struct statistics_tx tx;
struct statistics_general_bt general;
};
struct iwl_card_state_notif {
__le32 flags;
};
struct iwl_missed_beacon_notif {
__le32 consecutive_missed_beacons;
__le32 total_missed_becons;
__le32 num_expected_beacons;
__le32 num_recvd_beacons;
};
struct usb_dev_cap_header {
__u8 bLength;
__u8 bDescriptorType;
__u8 bDevCapabilityType;
};
struct usb_descriptor_header {
__u8 bLength;
__u8 bDescriptorType;
};
struct bulk_cb_wrap {
__le32 Signature;
__u32 Tag;
__le32 DataTransferLength;
__u8 Flags;
__u8 Lun;
__u8 Length;
__u8 CDB[16];
};
struct bulk_cs_wrap {
__le32 Signature;
__u32 Tag;
__le32 Residue;
__u8 Status;
};
enum i2c_driver_flags {
I2C_DRV_ACPI_WAIVE_D0_PROBE = 1,
};
enum acpi_reconfig_event {
ACPI_RECONFIG_DEVICE_ADD = 0,
ACPI_RECONFIG_DEVICE_REMOVE = 1,
};
struct i2c_acpi_irq_context {
int irq;
bool wake_capable;
};
struct i2c_acpi_lookup {
struct i2c_board_info *info;
acpi_handle adapter_handle;
acpi_handle device_handle;
acpi_handle search_handle;
int n;
int index;
u32 speed;
u32 min_speed;
u32 force_speed;
};
enum tcpa_event_types {
PREBOOT = 0,
POST_CODE = 1,
UNUSED = 2,
NO_ACTION = 3,
SEPARATOR = 4,
ACTION = 5,
EVENT_TAG = 6,
SCRTM_CONTENTS = 7,
SCRTM_VERSION = 8,
CPU_MICROCODE = 9,
PLATFORM_CONFIG_FLAGS = 10,
TABLE_OF_DEVICES = 11,
COMPACT_HASH = 12,
IPL = 13,
IPL_PARTITION_DATA = 14,
NONHOST_CODE = 15,
NONHOST_CONFIG = 16,
NONHOST_INFO = 17,
};
struct tpm_digest {
u16 alg_id;
u8 digest[64];
};
struct tcg_pcr_event2_head {
u32 pcr_idx;
u32 event_type;
u32 count;
struct tpm_digest digests[0];
};
struct tcg_efi_specid_event_algs {
u16 alg_id;
u16 digest_size;
};
struct tcg_efi_specid_event_head {
u8 signature[16];
u32 platform_class;
u8 spec_version_minor;
u8 spec_version_major;
u8 spec_errata;
u8 uintnsize;
u32 num_algs;
struct tcg_efi_specid_event_algs digest_sizes[0];
};
struct tcg_event_field {
u32 event_size;
u8 event[0];
};
struct tcg_pcr_event {
u32 pcr_idx;
u32 event_type;
u8 digest[20];
u32 event_size;
u8 event[0];
};
struct linux_efi_tpm_eventlog {
u32 size;
u32 final_events_preboot_size;
u8 version;
u8 log[0];
};
struct efi_tcg2_final_events_table {
u64 version;
u64 nr_events;
u8 events[0];
};
struct csum_state {
__wsum csum;
size_t off;
};
enum {
INET_FRAG_FIRST_IN = 1,
INET_FRAG_LAST_IN = 2,
INET_FRAG_COMPLETE = 4,
INET_FRAG_HASH_DEAD = 8,
INET_FRAG_DROP = 16,
};
enum ip_defrag_users {
IP_DEFRAG_LOCAL_DELIVER = 0,
IP_DEFRAG_CALL_RA_CHAIN = 1,
IP_DEFRAG_CONNTRACK_IN = 2,
__IP_DEFRAG_CONNTRACK_IN_END = 65537,
IP_DEFRAG_CONNTRACK_OUT = 65538,
__IP_DEFRAG_CONNTRACK_OUT_END = 131073,
IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074,
__IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609,
IP_DEFRAG_VS_IN = 196610,
IP_DEFRAG_VS_OUT = 196611,
IP_DEFRAG_VS_FWD = 196612,
IP_DEFRAG_AF_PACKET = 196613,
IP_DEFRAG_MACVLAN = 196614,
};
struct inet_peer;
struct ipq {
struct inet_frag_queue q;
u8 ecn;
u16 max_df_size;
int iif;
unsigned int rid;
struct inet_peer *peer;
};
struct ipv4_addr_key {
__be32 addr;
int vif;
};
struct inetpeer_addr {
union {
struct ipv4_addr_key a4;
struct in6_addr a6;
u32 key[4];
};
__u16 family;
};
struct inet_peer {
struct rb_node rb_node;
struct inetpeer_addr daddr;
u32 metrics[17];
u32 rate_tokens;
u32 n_redirects;
unsigned long rate_last;
union {
struct {
atomic_t rid;
};
struct callback_head rcu;
};
__u32 dtime;
refcount_t refcnt;
};
enum fib6_walk_state {
FWS_L = 0,
FWS_R = 1,
FWS_C = 2,
FWS_U = 3,
};
enum {
FIB6_NO_SERNUM_CHANGE = 0,
};
struct fib6_walker {
struct list_head lh;
struct fib6_node *root;
struct fib6_node *node;
struct fib6_info *leaf;
enum fib6_walk_state state;
unsigned int skip;
unsigned int count;
unsigned int skip_in_node;
int (*func)(struct fib6_walker *);
void *args;
};
struct fib6_cleaner {
struct fib6_walker w;
struct net *net;
int (*func)(struct fib6_info *, void *);
int sernum;
void *arg;
bool skip_notify;
};
typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int);
struct fib6_result {
struct fib6_nh *nh;
struct fib6_info *f6i;
u32 fib6_flags;
u8 fib6_type;
struct rt6_info *rt6;
};
struct fib6_dump_arg {
struct net *net;
struct notifier_block *nb;
struct netlink_ext_ack *extack;
};
struct fib6_entry_notifier_info {
struct fib_notifier_info info;
struct fib6_info *rt;
unsigned int nsiblings;
};
struct lookup_args {
int offset;
const struct in6_addr *addr;
};
struct fib6_gc_args {
int timeout;
int more;
};
struct ipv6_route_iter {
struct seq_net_private p;
struct fib6_walker w;
loff_t skip;
struct fib6_table *tbl;
int sernum;
};
struct bpf_iter__ipv6_route {
union {
struct bpf_iter_meta *meta;
};
union {
struct fib6_info *rt;
};
};
struct fib6_nh_pcpu_arg {
struct fib6_info *from;
const struct fib6_table *table;
};
struct rt6_rtnl_dump_arg {
struct sk_buff *skb;
struct netlink_callback *cb;
struct net *net;
struct fib_dump_filter filter;
};
struct rtmsg {
unsigned char rtm_family;
unsigned char rtm_dst_len;
unsigned char rtm_src_len;
unsigned char rtm_tos;
unsigned char rtm_table;
unsigned char rtm_protocol;
unsigned char rtm_scope;
unsigned char rtm_type;
unsigned int rtm_flags;
};
struct entry_stack {
char stack[4096];
};
struct entry_stack_page {
struct entry_stack stack;
};
struct exception_stacks {
char DF_stack_guard[0];
char DF_stack[8192];
char NMI_stack_guard[0];
char NMI_stack[8192];
char DB_stack_guard[0];
char DB_stack[8192];
char MCE_stack_guard[0];
char MCE_stack[8192];
char VC_stack_guard[0];
char VC_stack[0];
char VC2_stack_guard[0];
char VC2_stack[0];
char IST_top_guard[0];
};
struct debug_store_buffers {
char bts_buffer[65536];
char pebs_buffer[65536];
};
struct cpu_entry_area {
char gdt[4096];
struct entry_stack_page entry_stack_page;
struct tss_struct tss;
struct cea_exception_stacks estacks;
struct debug_store cpu_debug_store;
struct debug_store_buffers cpu_debug_buffers;
};
struct gdt_page {
struct desc_struct gdt[16];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum sysctl_writes_mode {
SYSCTL_WRITES_LEGACY = -1,
SYSCTL_WRITES_WARN = 0,
SYSCTL_WRITES_STRICT = 1,
};
struct do_proc_dointvec_minmax_conv_param {
int *min;
int *max;
};
struct do_proc_douintvec_minmax_conv_param {
unsigned int *min;
unsigned int *max;
};
struct boot_triggers {
const char *event;
char *trigger;
};
struct ftrace_func_command {
struct list_head list;
char *name;
int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int);
};
struct ftrace_probe_ops {
void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *);
int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **);
void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *);
int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *);
};
enum {
EVENT_FILE_FL_ENABLED_BIT = 0,
EVENT_FILE_FL_RECORDED_CMD_BIT = 1,
EVENT_FILE_FL_RECORDED_TGID_BIT = 2,
EVENT_FILE_FL_FILTERED_BIT = 3,
EVENT_FILE_FL_NO_SET_FILTER_BIT = 4,
EVENT_FILE_FL_SOFT_MODE_BIT = 5,
EVENT_FILE_FL_SOFT_DISABLED_BIT = 6,
EVENT_FILE_FL_TRIGGER_MODE_BIT = 7,
EVENT_FILE_FL_TRIGGER_COND_BIT = 8,
EVENT_FILE_FL_PID_FILTER_BIT = 9,
EVENT_FILE_FL_WAS_ENABLED_BIT = 10,
EVENT_FILE_FL_FREED_BIT = 11,
};
enum {
TRACE_PIDS = 1,
TRACE_NO_PIDS = 2,
};
enum {
TRACE_ARRAY_FL_GLOBAL = 1,
};
enum {
FORMAT_HEADER = 1,
FORMAT_FIELD_SEPERATOR = 2,
FORMAT_PRINTFMT = 3,
};
struct module_string {
struct list_head next;
struct module *module;
char *str;
};
struct trace_parser {
bool cont;
char *buffer;
unsigned int idx;
unsigned int size;
};
struct event_probe_data {
struct trace_event_file *file;
unsigned long count;
int ref;
bool enable;
};
typedef int (*ftrace_mapper_func)(void *);
enum OID {
OID_id_dsa_with_sha1 = 0,
OID_id_dsa = 1,
OID_id_ecPublicKey = 2,
OID_id_prime192v1 = 3,
OID_id_prime256v1 = 4,
OID_id_ecdsa_with_sha1 = 5,
OID_id_ecdsa_with_sha224 = 6,
OID_id_ecdsa_with_sha256 = 7,
OID_id_ecdsa_with_sha384 = 8,
OID_id_ecdsa_with_sha512 = 9,
OID_rsaEncryption = 10,
OID_sha1WithRSAEncryption = 11,
OID_sha256WithRSAEncryption = 12,
OID_sha384WithRSAEncryption = 13,
OID_sha512WithRSAEncryption = 14,
OID_sha224WithRSAEncryption = 15,
OID_data = 16,
OID_signed_data = 17,
OID_email_address = 18,
OID_contentType = 19,
OID_messageDigest = 20,
OID_signingTime = 21,
OID_smimeCapabilites = 22,
OID_smimeAuthenticatedAttrs = 23,
OID_mskrb5 = 24,
OID_krb5 = 25,
OID_krb5u2u = 26,
OID_msIndirectData = 27,
OID_msStatementType = 28,
OID_msSpOpusInfo = 29,
OID_msPeImageDataObjId = 30,
OID_msIndividualSPKeyPurpose = 31,
OID_msOutlookExpress = 32,
OID_ntlmssp = 33,
OID_negoex = 34,
OID_spnego = 35,
OID_IAKerb = 36,
OID_PKU2U = 37,
OID_Scram = 38,
OID_certAuthInfoAccess = 39,
OID_sha1 = 40,
OID_id_ansip384r1 = 41,
OID_sha256 = 42,
OID_sha384 = 43,
OID_sha512 = 44,
OID_sha224 = 45,
OID_commonName = 46,
OID_surname = 47,
OID_countryName = 48,
OID_locality = 49,
OID_stateOrProvinceName = 50,
OID_organizationName = 51,
OID_organizationUnitName = 52,
OID_title = 53,
OID_description = 54,
OID_name = 55,
OID_givenName = 56,
OID_initials = 57,
OID_generationalQualifier = 58,
OID_subjectKeyIdentifier = 59,
OID_keyUsage = 60,
OID_subjectAltName = 61,
OID_issuerAltName = 62,
OID_basicConstraints = 63,
OID_crlDistributionPoints = 64,
OID_certPolicies = 65,
OID_authorityKeyIdentifier = 66,
OID_extKeyUsage = 67,
OID_NetlogonMechanism = 68,
OID_appleLocalKdcSupported = 69,
OID_gostCPSignA = 70,
OID_gostCPSignB = 71,
OID_gostCPSignC = 72,
OID_gost2012PKey256 = 73,
OID_gost2012PKey512 = 74,
OID_gost2012Digest256 = 75,
OID_gost2012Digest512 = 76,
OID_gost2012Signature256 = 77,
OID_gost2012Signature512 = 78,
OID_gostTC26Sign256A = 79,
OID_gostTC26Sign256B = 80,
OID_gostTC26Sign256C = 81,
OID_gostTC26Sign256D = 82,
OID_gostTC26Sign512A = 83,
OID_gostTC26Sign512B = 84,
OID_gostTC26Sign512C = 85,
OID_sm2 = 86,
OID_sm3 = 87,
OID_SM2_with_SM3 = 88,
OID_sm3WithRSAEncryption = 89,
OID_TPMLoadableKey = 90,
OID_TPMImportableKey = 91,
OID_TPMSealedData = 92,
OID_sha3_256 = 93,
OID_sha3_384 = 94,
OID_sha3_512 = 95,
OID_id_ecdsa_with_sha3_256 = 96,
OID_id_ecdsa_with_sha3_384 = 97,
OID_id_ecdsa_with_sha3_512 = 98,
OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 99,
OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 100,
OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 101,
OID__NR = 102,
};
struct x509_certificate;
struct pkcs7_signed_info;
struct pkcs7_message {
struct x509_certificate *certs;
struct x509_certificate *crl;
struct pkcs7_signed_info *signed_infos;
u8 version;
bool have_authattrs;
enum OID data_type;
size_t data_len;
size_t data_hdrlen;
const void *data;
};
struct mem_cgroup_reclaim_cookie {
pg_data_t *pgdat;
unsigned int generation;
};
struct user_arg_ptr {
union {
const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native;
} ptr;
};
struct fat_slot_info {
loff_t i_pos;
loff_t slot_off;
int nr_slots;
struct msdos_dir_entry *de;
struct buffer_head *bh;
};
struct btrfs_lockdep_keyset {
u64 id;
char names[192];
struct lock_class_key keys[8];
};
enum btrfs_lock_nesting {
BTRFS_NESTING_NORMAL = 0,
BTRFS_NESTING_COW = 1,
BTRFS_NESTING_LEFT = 2,
BTRFS_NESTING_RIGHT = 3,
BTRFS_NESTING_LEFT_COW = 4,
BTRFS_NESTING_RIGHT_COW = 5,
BTRFS_NESTING_SPLIT = 6,
BTRFS_NESTING_NEW_ROOT = 7,
BTRFS_NESTING_MAX = 8,
};
enum asymmetric_payload_bits {
asym_crypto = 0,
asym_subtype = 1,
asym_key_ids = 2,
asym_auth = 3,
};
struct public_key_signature;
struct asymmetric_key_subtype {
struct module *owner;
const char *name;
unsigned short name_len;
void (*describe)(const struct key *, struct seq_file *);
void (*destroy)(void *, void *);
int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *);
int (*eds_op)(struct kernel_pkey_params *, const void *, void *);
int (*verify_signature)(const struct key *, const struct public_key_signature *);
};
struct asymmetric_key_id;
struct public_key_signature {
struct asymmetric_key_id *auth_ids[3];
u8 *s;
u8 *digest;
u32 s_size;
u32 digest_size;
const char *pkey_algo;
const char *hash_algo;
const char *encoding;
};
struct asymmetric_key_id {
unsigned short len;
unsigned char data[0];
};
struct bio_map_data {
bool is_our_pages: 1;
bool is_null_mapped: 1;
struct iov_iter iter;
struct iovec iov[0];
};
union nested_table {
union nested_table __attribute__((btf_type_tag("rcu"))) *table;
struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket;
};
typedef struct {
__be64 a;
__be64 b;
} be128;
struct gf128mul_4k;
struct gf128mul_64k {
struct gf128mul_4k *t[16];
};
struct gf128mul_4k {
be128 t[256];
};
typedef struct {
__le64 b;
__le64 a;
} le128;
enum blake2s_lengths {
BLAKE2S_BLOCK_SIZE = 64,
BLAKE2S_HASH_SIZE = 32,
BLAKE2S_KEY_SIZE = 32,
BLAKE2S_128_HASH_SIZE = 16,
BLAKE2S_160_HASH_SIZE = 20,
BLAKE2S_224_HASH_SIZE = 28,
BLAKE2S_256_HASH_SIZE = 32,
};
enum blake2s_iv {
BLAKE2S_IV0 = 1779033703,
BLAKE2S_IV1 = 3144134277,
BLAKE2S_IV2 = 1013904242,
BLAKE2S_IV3 = 2773480762,
BLAKE2S_IV4 = 1359893119,
BLAKE2S_IV5 = 2600822924,
BLAKE2S_IV6 = 528734635,
BLAKE2S_IV7 = 1541459225,
};
struct blake2s_state {
u32 h[8];
u32 t[2];
u32 f[2];
u8 buf[64];
unsigned int buflen;
unsigned int outlen;
};
struct mpi_ec_ctx;
struct field_table {
const char *p;
void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
};
enum gcry_mpi_ec_models {
MPI_EC_WEIERSTRASS = 0,
MPI_EC_MONTGOMERY = 1,
MPI_EC_EDWARDS = 2,
};
enum ecc_dialects {
ECC_DIALECT_STANDARD = 0,
ECC_DIALECT_ED25519 = 1,
ECC_DIALECT_SAFECURVE = 2,
};
struct gcry_mpi_point;
typedef struct gcry_mpi_point *MPI_POINT;
struct mpi_ec_ctx {
enum gcry_mpi_ec_models model;
enum ecc_dialects dialect;
int flags;
unsigned int nbits;
MPI p;
MPI a;
MPI b;
MPI_POINT G;
MPI n;
unsigned int h;
MPI_POINT Q;
MPI d;
const char *name;
struct {
struct {
unsigned int a_is_pminus3: 1;
unsigned int two_inv_p: 1;
} valid;
int a_is_pminus3;
MPI two_inv_p;
mpi_barrett_t p_barrett;
MPI scratch[11];
} t;
void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *);
void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *);
void (*mul2)(MPI, MPI, struct mpi_ec_ctx *);
};
struct gcry_mpi_point {
MPI x;
MPI y;
MPI z;
};
enum gcry_mpi_constants {
MPI_C_ZERO = 0,
MPI_C_ONE = 1,
MPI_C_TWO = 2,
MPI_C_THREE = 3,
MPI_C_FOUR = 4,
MPI_C_EIGHT = 5,
};
enum pci_bar_type {
pci_bar_unknown = 0,
pci_bar_io = 1,
pci_bar_mem32 = 2,
pci_bar_mem64 = 3,
};
struct pci_domain_busn_res {
struct list_head list;
struct resource res;
int domain_nr;
};
struct pcc_mbox_chan;
struct cppc_pcc_data {
struct pcc_mbox_chan *pcc_channel;
void *pcc_comm_addr;
bool pcc_channel_acquired;
unsigned int deadline_us;
unsigned int pcc_mpar;
unsigned int pcc_mrtt;
unsigned int pcc_nominal;
bool pending_pcc_write_cmd;
bool platform_owns_pcc;
unsigned int pcc_write_cnt;
struct rw_semaphore pcc_lock;
wait_queue_head_t pcc_write_wait_q;
ktime_t last_cmd_cmpl_time;
ktime_t last_mpar_reset;
int mpar_count;
int refcount;
};
struct mbox_chan;
struct pcc_mbox_chan {
struct mbox_chan *mchan;
u64 shmem_base_addr;
u64 shmem_size;
u32 latency;
u32 max_access_rate;
u16 min_turnaround_time;
};
struct mbox_controller;
struct mbox_client;
struct mbox_chan {
struct mbox_controller *mbox;
unsigned int txdone_method;
struct mbox_client *cl;
struct completion tx_complete;
void *active_req;
unsigned int msg_count;
unsigned int msg_free;
void *msg_data[20];
spinlock_t lock;
void *con_priv;
};
struct mbox_chan_ops;
struct mbox_controller {
struct device *dev;
const struct mbox_chan_ops *ops;
struct mbox_chan *chans;
int num_chans;
bool txdone_irq;
bool txdone_poll;
unsigned int txpoll_period;
struct mbox_chan * (*of_xlate)(struct mbox_controller *, const struct of_phandle_args *);
struct hrtimer poll_hrt;
spinlock_t poll_hrt_lock;
struct list_head node;
};
struct mbox_chan_ops {
int (*send_data)(struct mbox_chan *, void *);
int (*flush)(struct mbox_chan *, unsigned long);
int (*startup)(struct mbox_chan *);
void (*shutdown)(struct mbox_chan *);
bool (*last_tx_done)(struct mbox_chan *);
bool (*peek_data)(struct mbox_chan *);
};
struct mbox_client {
struct device *dev;
bool tx_block;
unsigned long tx_tout;
bool knows_txdone;
void (*rx_callback)(struct mbox_client *, void *);
void (*tx_prepare)(struct mbox_client *, void *);
void (*tx_done)(struct mbox_client *, void *, int);
};
struct cpc_register_resource {
acpi_object_type type;
u64 *sys_mem_vaddr;
union {
struct cpc_reg reg;
u64 int_value;
} cpc_entry;
};
struct cpc_desc {
int num_entries;
int version;
int cpu_id;
int write_cmd_status;
int write_cmd_id;
struct cpc_register_resource cpc_regs[21];
struct acpi_psd_package domain_info;
struct kobject kobj;
};
enum cppc_regs {
HIGHEST_PERF = 0,
NOMINAL_PERF = 1,
LOW_NON_LINEAR_PERF = 2,
LOWEST_PERF = 3,
GUARANTEED_PERF = 4,
DESIRED_PERF = 5,
MIN_PERF = 6,
MAX_PERF = 7,
PERF_REDUC_TOLERANCE = 8,
TIME_WINDOW = 9,
CTR_WRAP_TIME = 10,
REFERENCE_CTR = 11,
DELIVERED_CTR = 12,
PERF_LIMITED = 13,
ENABLE = 14,
AUTO_SEL_ENABLE = 15,
AUTO_ACT_WINDOW = 16,
ENERGY_PERF = 17,
REFERENCE_PERF = 18,
LOWEST_FREQ = 19,
NOMINAL_FREQ = 20,
};
enum dmi_entry_type {
DMI_ENTRY_BIOS = 0,
DMI_ENTRY_SYSTEM = 1,
DMI_ENTRY_BASEBOARD = 2,
DMI_ENTRY_CHASSIS = 3,
DMI_ENTRY_PROCESSOR = 4,
DMI_ENTRY_MEM_CONTROLLER = 5,
DMI_ENTRY_MEM_MODULE = 6,
DMI_ENTRY_CACHE = 7,
DMI_ENTRY_PORT_CONNECTOR = 8,
DMI_ENTRY_SYSTEM_SLOT = 9,
DMI_ENTRY_ONBOARD_DEVICE = 10,
DMI_ENTRY_OEMSTRINGS = 11,
DMI_ENTRY_SYSCONF = 12,
DMI_ENTRY_BIOS_LANG = 13,
DMI_ENTRY_GROUP_ASSOC = 14,
DMI_ENTRY_SYSTEM_EVENT_LOG = 15,
DMI_ENTRY_PHYS_MEM_ARRAY = 16,
DMI_ENTRY_MEM_DEVICE = 17,
DMI_ENTRY_32_MEM_ERROR = 18,
DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19,
DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20,
DMI_ENTRY_BUILTIN_POINTING_DEV = 21,
DMI_ENTRY_PORTABLE_BATTERY = 22,
DMI_ENTRY_SYSTEM_RESET = 23,
DMI_ENTRY_HW_SECURITY = 24,
DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25,
DMI_ENTRY_VOLTAGE_PROBE = 26,
DMI_ENTRY_COOLING_DEV = 27,
DMI_ENTRY_TEMP_PROBE = 28,
DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29,
DMI_ENTRY_OOB_REMOTE_ACCESS = 30,
DMI_ENTRY_BIS_ENTRY = 31,
DMI_ENTRY_SYSTEM_BOOT = 32,
DMI_ENTRY_MGMT_DEV = 33,
DMI_ENTRY_MGMT_DEV_COMPONENT = 34,
DMI_ENTRY_MGMT_DEV_THRES = 35,
DMI_ENTRY_MEM_CHANNEL = 36,
DMI_ENTRY_IPMI_DEV = 37,
DMI_ENTRY_SYS_POWER_SUPPLY = 38,
DMI_ENTRY_ADDITIONAL = 39,
DMI_ENTRY_ONBOARD_DEV_EXT = 40,
DMI_ENTRY_MGMT_CONTROLLER_HOST = 41,
DMI_ENTRY_INACTIVE = 126,
DMI_ENTRY_END_OF_TABLE = 127,
};
struct dmi_header {
u8 type;
u8 length;
u16 handle;
};
struct cppc_perf_ctrls {
u32 max_perf;
u32 min_perf;
u32 desired_perf;
u32 energy_perf;
};
struct cppc_perf_fb_ctrs {
u64 reference;
u64 delivered;
u64 reference_perf;
u64 wraparound_time;
};
struct cppc_cpudata {
struct list_head node;
struct cppc_perf_caps perf_caps;
struct cppc_perf_ctrls perf_ctrls;
struct cppc_perf_fb_ctrs perf_fb_ctrs;
unsigned int shared_type;
cpumask_var_t shared_cpu_map;
};
struct acpi_pcct_shared_memory {
u32 signature;
u16 command;
u16 status;
};
struct sync_file {
struct file *file;
char user_name[32];
struct list_head sync_file_list;
wait_queue_head_t wq;
unsigned long flags;
struct dma_fence *fence;
struct dma_fence_cb cb;
};
struct sync_merge_data {
char name[32];
__s32 fd2;
__s32 fence;
__u32 flags;
__u32 pad;
};
struct sync_set_deadline {
__u64 deadline_ns;
__u64 pad;
};
struct dma_fence_unwrap {
struct dma_fence *chain;
struct dma_fence *array;
unsigned int index;
};
struct sync_file_info {
char name[32];
__s32 status;
__u32 flags;
__u32 num_fences;
__u32 pad;
__u64 sync_fence_info;
};
struct sync_fence_info {
char obj_name[32];
char driver_name[32];
__s32 status;
__u32 flags;
__u64 timestamp_ns;
};
struct rtl8169_private;
struct rtl_cond {
bool (*check)(struct rtl8169_private *);
const char *msg;
};
enum mac_version {
RTL_GIGA_MAC_VER_02 = 0,
RTL_GIGA_MAC_VER_03 = 1,
RTL_GIGA_MAC_VER_04 = 2,
RTL_GIGA_MAC_VER_05 = 3,
RTL_GIGA_MAC_VER_06 = 4,
RTL_GIGA_MAC_VER_07 = 5,
RTL_GIGA_MAC_VER_08 = 6,
RTL_GIGA_MAC_VER_09 = 7,
RTL_GIGA_MAC_VER_10 = 8,
RTL_GIGA_MAC_VER_11 = 9,
RTL_GIGA_MAC_VER_14 = 10,
RTL_GIGA_MAC_VER_17 = 11,
RTL_GIGA_MAC_VER_18 = 12,
RTL_GIGA_MAC_VER_19 = 13,
RTL_GIGA_MAC_VER_20 = 14,
RTL_GIGA_MAC_VER_21 = 15,
RTL_GIGA_MAC_VER_22 = 16,
RTL_GIGA_MAC_VER_23 = 17,
RTL_GIGA_MAC_VER_24 = 18,
RTL_GIGA_MAC_VER_25 = 19,
RTL_GIGA_MAC_VER_26 = 20,
RTL_GIGA_MAC_VER_28 = 21,
RTL_GIGA_MAC_VER_29 = 22,
RTL_GIGA_MAC_VER_30 = 23,
RTL_GIGA_MAC_VER_31 = 24,
RTL_GIGA_MAC_VER_32 = 25,
RTL_GIGA_MAC_VER_33 = 26,
RTL_GIGA_MAC_VER_34 = 27,
RTL_GIGA_MAC_VER_35 = 28,
RTL_GIGA_MAC_VER_36 = 29,
RTL_GIGA_MAC_VER_37 = 30,
RTL_GIGA_MAC_VER_38 = 31,
RTL_GIGA_MAC_VER_39 = 32,
RTL_GIGA_MAC_VER_40 = 33,
RTL_GIGA_MAC_VER_42 = 34,
RTL_GIGA_MAC_VER_43 = 35,
RTL_GIGA_MAC_VER_44 = 36,
RTL_GIGA_MAC_VER_46 = 37,
RTL_GIGA_MAC_VER_48 = 38,
RTL_GIGA_MAC_VER_51 = 39,
RTL_GIGA_MAC_VER_52 = 40,
RTL_GIGA_MAC_VER_53 = 41,
RTL_GIGA_MAC_VER_61 = 42,
RTL_GIGA_MAC_VER_63 = 43,
RTL_GIGA_MAC_VER_65 = 44,
RTL_GIGA_MAC_NONE = 45,
};
enum rtl_dash_type {
RTL_DASH_NONE = 0,
RTL_DASH_DP = 1,
RTL_DASH_EP = 2,
};
struct ring_info {
struct sk_buff *skb;
u32 len;
};
struct rtl8169_tc_offsets {
bool inited;
__le64 tx_errors;
__le32 tx_multi_collision;
__le16 tx_aborted;
__le16 rx_missed;
};
struct TxDesc;
struct RxDesc;
struct rtl8169_counters;
struct rtl_fw;
struct rtl8169_private {
void *mmio_addr;
struct pci_dev *pci_dev;
struct net_device *dev;
struct phy_device *phydev;
struct napi_struct napi;
enum mac_version mac_version;
enum rtl_dash_type dash_type;
u32 cur_rx;
u32 cur_tx;
u32 dirty_tx;
struct TxDesc *TxDescArray;
struct RxDesc *RxDescArray;
dma_addr_t TxPhyAddr;
dma_addr_t RxPhyAddr;
struct page *Rx_databuff[256];
struct ring_info tx_skb[256];
u16 cp_cmd;
u16 tx_lpi_timer;
u32 irq_mask;
int irq;
struct clk *clk;
struct {
unsigned long flags[1];
struct work_struct work;
} wk;
raw_spinlock_t config25_lock;
raw_spinlock_t mac_ocp_lock;
struct mutex led_lock;
raw_spinlock_t cfg9346_usage_lock;
int cfg9346_usage_count;
unsigned int supports_gmii: 1;
unsigned int aspm_manageable: 1;
unsigned int dash_enabled: 1;
dma_addr_t counters_phys_addr;
struct rtl8169_counters *counters;
struct rtl8169_tc_offsets tc_offset;
u32 saved_wolopts;
const char *fw_name;
struct rtl_fw *rtl_fw;
u32 ocp_base;
};
struct netdev_queue_stats_rx {
u64 bytes;
u64 packets;
u64 alloc_fail;
};
struct netdev_queue_stats_tx {
u64 bytes;
u64 packets;
};
struct TxDesc {
__le32 opts1;
__le32 opts2;
__le64 addr;
};
struct RxDesc {
__le32 opts1;
__le32 opts2;
__le64 addr;
};
struct rtl8169_counters {
__le64 tx_packets;
__le64 rx_packets;
__le64 tx_errors;
__le32 rx_errors;
__le16 rx_missed;
__le16 align_errors;
__le32 tx_one_collision;
__le32 tx_multi_collision;
__le64 rx_unicast;
__le64 rx_broadcast;
__le32 rx_multicast;
__le16 tx_aborted;
__le16 tx_underun;
};
typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int);
typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int);
struct rtl_fw_phy_action {
__le32 *code;
size_t size;
};
struct rtl_fw {
rtl_fw_write_t phy_write;
rtl_fw_read_t phy_read;
rtl_fw_write_t mac_mcu_write;
rtl_fw_read_t mac_mcu_read;
const struct firmware *fw;
const char *fw_name;
struct device *dev;
char version[32];
struct rtl_fw_phy_action phy_action;
};
typedef void (*rtl_generic_fct)(struct rtl8169_private *);
struct ephy_info {
unsigned int offset;
u16 mask;
u16 bits;
};
struct rtl_mac_info {
u16 mask;
u16 val;
enum mac_version ver;
};
struct rtl_coalesce_info {
u32 speed;
u32 scale_nsecs[4];
};
enum rtl8168_registers {
LED_CTRL = 24,
LED_FREQ = 26,
EEE_LED = 27,
ERIDR = 112,
ERIAR = 116,
EPHY_RXER_NUM = 124,
OCPDR = 176,
OCPAR = 180,
GPHY_OCP = 184,
RDSAR1 = 208,
MISC = 240,
};
enum rtl8168_8101_registers {
CSIDR = 100,
CSIAR = 104,
PMCH = 111,
EPHYAR = 128,
DLLPR = 208,
DBG_REG = 209,
TWSI = 210,
MCU = 211,
EFUSEAR = 220,
MISC_1 = 242,
};
enum rtl_registers {
MAC0 = 0,
MAC4 = 4,
MAR0 = 8,
CounterAddrLow = 16,
CounterAddrHigh = 20,
TxDescStartAddrLow = 32,
TxDescStartAddrHigh = 36,
TxHDescStartAddrLow = 40,
TxHDescStartAddrHigh = 44,
FLASH = 48,
ERSR = 54,
ChipCmd = 55,
TxPoll = 56,
IntrMask = 60,
IntrStatus = 62,
TxConfig = 64,
RxConfig = 68,
Cfg9346 = 80,
Config0 = 81,
Config1 = 82,
Config2 = 83,
Config3 = 84,
Config4 = 85,
Config5 = 86,
PHYAR = 96,
PHYstatus = 108,
RxMaxSize = 218,
CPlusCmd = 224,
IntrMitigate = 226,
RxDescAddrLow = 228,
RxDescAddrHigh = 232,
EarlyTxThres = 236,
MaxTxPacketSize = 236,
FuncEvent = 240,
FuncEventMask = 244,
FuncPresetState = 248,
IBCR0 = 248,
IBCR2 = 249,
IBIMR0 = 250,
IBISR0 = 251,
FuncForceEvent = 252,
};
enum rtl_register_content {
SYSErr = 32768,
PCSTimeout = 16384,
SWInt = 256,
TxDescUnavail = 128,
RxFIFOOver = 64,
LinkChg = 32,
RxOverflow = 16,
TxErr = 8,
TxOK = 4,
RxErr = 2,
RxOK = 1,
RxRWT = 4194304,
RxRES = 2097152,
RxRUNT = 1048576,
RxCRC = 524288,
StopReq = 128,
CmdReset = 16,
CmdRxEnb = 8,
CmdTxEnb = 4,
RxBufEmpty = 1,
HPQ = 128,
NPQ = 64,
FSWInt = 1,
Cfg9346_Lock = 0,
Cfg9346_Unlock = 192,
AcceptErr = 32,
AcceptRunt = 16,
AcceptBroadcast = 8,
AcceptMulticast = 4,
AcceptMyPhys = 2,
AcceptAllPhys = 1,
TxInterFrameGapShift = 24,
TxDMAShift = 8,
LEDS1 = 128,
LEDS0 = 64,
Speed_down = 16,
MEMMAP = 8,
IOMAP = 4,
VPD = 2,
PMEnable = 1,
ClkReqEn = 128,
MSIEnable = 32,
PCI_Clock_66MHz = 1,
PCI_Clock_33MHz = 0,
MagicPacket = 32,
LinkUp = 16,
Jumbo_En0 = 4,
Rdy_to_L23 = 2,
Beacon_en = 1,
Jumbo_En1 = 2,
BWF = 64,
MWF = 32,
UWF = 16,
Spi_en = 8,
LanWake = 2,
PMEStatus = 1,
ASPM_en = 1,
EnableBist = 32768,
Mac_dbgo_oe = 16384,
EnAnaPLL = 16384,
Normal_mode = 8192,
Force_half_dup = 4096,
Force_rxflow_en = 2048,
Force_txflow_en = 1024,
Cxpl_dbg_sel = 512,
ASF = 256,
PktCntrDisable = 128,
Mac_dbgo_sel = 28,
RxVlan = 64,
RxChkSum = 32,
PCIDAC = 16,
PCIMulRW = 8,
TBI_Enable = 128,
TxFlowCtrl = 64,
RxFlowCtrl = 32,
_1000bpsF = 16,
_100bps = 8,
_10bps = 4,
LinkStatus = 2,
FullDup = 1,
CounterReset = 1,
CounterDump = 8,
MagicPacket_v2 = 65536,
};
enum rtl_desc_bit {
DescOwn = -2147483648,
RingEnd = 1073741824,
FirstFrag = 536870912,
LastFrag = 268435456,
};
enum rtl_flag {
RTL_FLAG_TASK_ENABLED = 0,
RTL_FLAG_TASK_RESET_PENDING = 1,
RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2,
RTL_FLAG_TASK_TX_TIMEOUT = 3,
RTL_FLAG_MAX = 4,
};
enum rtl8125_registers {
LEDSEL0 = 24,
INT_CFG0_8125 = 52,
IntrMask_8125 = 56,
IntrStatus_8125 = 60,
INT_CFG1_8125 = 122,
LEDSEL2 = 132,
LEDSEL1 = 134,
TxPoll_8125 = 144,
LEDSEL3 = 150,
MAC0_BKP = 6624,
EEE_TXIDLE_TIMER_8125 = 24648,
};
enum rtl_tx_desc_bit {
TD_LSO = 134217728,
TxVlanTag = 131072,
};
enum rtl_tx_desc_bit_0 {
TD0_TCP_CS = 65536,
TD0_UDP_CS = 131072,
TD0_IP_CS = 262144,
};
enum rtl_tx_desc_bit_1 {
TD1_GTSENV4 = 67108864,
TD1_GTSENV6 = 33554432,
TD1_IPv6_CS = 268435456,
TD1_IPv4_CS = 536870912,
TD1_TCP_CS = 1073741824,
TD1_UDP_CS = -2147483648,
};
enum rtl_rx_desc_bit {
PID1 = 262144,
PID0 = 131072,
IPFail = 65536,
UDPFail = 32768,
TCPFail = 16384,
RxVlanTag = 65536,
};
struct netdev_hw_addr {
struct list_head list;
struct rb_node node;
unsigned char addr[32];
unsigned char type;
bool global_use;
int sync_cnt;
int refcount;
int synced;
struct callback_head callback_head;
};
struct touchscreen_properties {
unsigned int max_x;
unsigned int max_y;
bool invert_x;
bool invert_y;
bool swap_x_y;
};
struct hwmon_ops;
struct hwmon_channel_info;
struct hwmon_chip_info {
const struct hwmon_ops *ops;
const struct hwmon_channel_info * const *info;
};
enum hwmon_sensor_types {
hwmon_chip = 0,
hwmon_temp = 1,
hwmon_in = 2,
hwmon_curr = 3,
hwmon_power = 4,
hwmon_energy = 5,
hwmon_humidity = 6,
hwmon_fan = 7,
hwmon_pwm = 8,
hwmon_intrusion = 9,
hwmon_max = 10,
};
struct hwmon_ops {
umode_t (*is_visible)(const void *, enum hwmon_sensor_types, u32, int);
int (*read)(struct device *, enum hwmon_sensor_types, u32, int, long *);
int (*read_string)(struct device *, enum hwmon_sensor_types, u32, int, const char **);
int (*write)(struct device *, enum hwmon_sensor_types, u32, int, long);
};
struct hwmon_channel_info {
enum hwmon_sensor_types type;
const u32 *config;
};
struct hwmon_type_attr_list {
const u32 *attrs;
size_t n_attrs;
};
enum power_supply_type {
POWER_SUPPLY_TYPE_UNKNOWN = 0,
POWER_SUPPLY_TYPE_BATTERY = 1,
POWER_SUPPLY_TYPE_UPS = 2,
POWER_SUPPLY_TYPE_MAINS = 3,
POWER_SUPPLY_TYPE_USB = 4,
POWER_SUPPLY_TYPE_USB_DCP = 5,
POWER_SUPPLY_TYPE_USB_CDP = 6,
POWER_SUPPLY_TYPE_USB_ACA = 7,
POWER_SUPPLY_TYPE_USB_TYPE_C = 8,
POWER_SUPPLY_TYPE_USB_PD = 9,
POWER_SUPPLY_TYPE_USB_PD_DRP = 10,
POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11,
POWER_SUPPLY_TYPE_WIRELESS = 12,
};
enum power_supply_usb_type {
POWER_SUPPLY_USB_TYPE_UNKNOWN = 0,
POWER_SUPPLY_USB_TYPE_SDP = 1,
POWER_SUPPLY_USB_TYPE_DCP = 2,
POWER_SUPPLY_USB_TYPE_CDP = 3,
POWER_SUPPLY_USB_TYPE_ACA = 4,
POWER_SUPPLY_USB_TYPE_C = 5,
POWER_SUPPLY_USB_TYPE_PD = 6,
POWER_SUPPLY_USB_TYPE_PD_DRP = 7,
POWER_SUPPLY_USB_TYPE_PD_PPS = 8,
POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9,
};
enum power_supply_property {
POWER_SUPPLY_PROP_STATUS = 0,
POWER_SUPPLY_PROP_CHARGE_TYPE = 1,
POWER_SUPPLY_PROP_HEALTH = 2,
POWER_SUPPLY_PROP_PRESENT = 3,
POWER_SUPPLY_PROP_ONLINE = 4,
POWER_SUPPLY_PROP_AUTHENTIC = 5,
POWER_SUPPLY_PROP_TECHNOLOGY = 6,
POWER_SUPPLY_PROP_CYCLE_COUNT = 7,
POWER_SUPPLY_PROP_VOLTAGE_MAX = 8,
POWER_SUPPLY_PROP_VOLTAGE_MIN = 9,
POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10,
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11,
POWER_SUPPLY_PROP_VOLTAGE_NOW = 12,
POWER_SUPPLY_PROP_VOLTAGE_AVG = 13,
POWER_SUPPLY_PROP_VOLTAGE_OCV = 14,
POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15,
POWER_SUPPLY_PROP_CURRENT_MAX = 16,
POWER_SUPPLY_PROP_CURRENT_NOW = 17,
POWER_SUPPLY_PROP_CURRENT_AVG = 18,
POWER_SUPPLY_PROP_CURRENT_BOOT = 19,
POWER_SUPPLY_PROP_POWER_NOW = 20,
POWER_SUPPLY_PROP_POWER_AVG = 21,
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22,
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23,
POWER_SUPPLY_PROP_CHARGE_FULL = 24,
POWER_SUPPLY_PROP_CHARGE_EMPTY = 25,
POWER_SUPPLY_PROP_CHARGE_NOW = 26,
POWER_SUPPLY_PROP_CHARGE_AVG = 27,
POWER_SUPPLY_PROP_CHARGE_COUNTER = 28,
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29,
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30,
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31,
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32,
POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33,
POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34,
POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35,
POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36,
POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR = 37,
POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 38,
POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 39,
POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 40,
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 41,
POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 42,
POWER_SUPPLY_PROP_ENERGY_FULL = 43,
POWER_SUPPLY_PROP_ENERGY_EMPTY = 44,
POWER_SUPPLY_PROP_ENERGY_NOW = 45,
POWER_SUPPLY_PROP_ENERGY_AVG = 46,
POWER_SUPPLY_PROP_CAPACITY = 47,
POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 48,
POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 49,
POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 50,
POWER_SUPPLY_PROP_CAPACITY_LEVEL = 51,
POWER_SUPPLY_PROP_TEMP = 52,
POWER_SUPPLY_PROP_TEMP_MAX = 53,
POWER_SUPPLY_PROP_TEMP_MIN = 54,
POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 55,
POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 56,
POWER_SUPPLY_PROP_TEMP_AMBIENT = 57,
POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 58,
POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 59,
POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 60,
POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 61,
POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 62,
POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 63,
POWER_SUPPLY_PROP_TYPE = 64,
POWER_SUPPLY_PROP_USB_TYPE = 65,
POWER_SUPPLY_PROP_SCOPE = 66,
POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 67,
POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 68,
POWER_SUPPLY_PROP_CALIBRATE = 69,
POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 70,
POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 71,
POWER_SUPPLY_PROP_MANUFACTURE_DAY = 72,
POWER_SUPPLY_PROP_MODEL_NAME = 73,
POWER_SUPPLY_PROP_MANUFACTURER = 74,
POWER_SUPPLY_PROP_SERIAL_NUMBER = 75,
};
enum hwmon_temp_attributes {
hwmon_temp_enable = 0,
hwmon_temp_input = 1,
hwmon_temp_type = 2,
hwmon_temp_lcrit = 3,
hwmon_temp_lcrit_hyst = 4,
hwmon_temp_min = 5,
hwmon_temp_min_hyst = 6,
hwmon_temp_max = 7,
hwmon_temp_max_hyst = 8,
hwmon_temp_crit = 9,
hwmon_temp_crit_hyst = 10,
hwmon_temp_emergency = 11,
hwmon_temp_emergency_hyst = 12,
hwmon_temp_alarm = 13,
hwmon_temp_lcrit_alarm = 14,
hwmon_temp_min_alarm = 15,
hwmon_temp_max_alarm = 16,
hwmon_temp_crit_alarm = 17,
hwmon_temp_emergency_alarm = 18,
hwmon_temp_fault = 19,
hwmon_temp_offset = 20,
hwmon_temp_label = 21,
hwmon_temp_lowest = 22,
hwmon_temp_highest = 23,
hwmon_temp_reset_history = 24,
hwmon_temp_rated_min = 25,
hwmon_temp_rated_max = 26,
hwmon_temp_beep = 27,
};
enum hwmon_in_attributes {
hwmon_in_enable = 0,
hwmon_in_input = 1,
hwmon_in_min = 2,
hwmon_in_max = 3,
hwmon_in_lcrit = 4,
hwmon_in_crit = 5,
hwmon_in_average = 6,
hwmon_in_lowest = 7,
hwmon_in_highest = 8,
hwmon_in_reset_history = 9,
hwmon_in_label = 10,
hwmon_in_alarm = 11,
hwmon_in_min_alarm = 12,
hwmon_in_max_alarm = 13,
hwmon_in_lcrit_alarm = 14,
hwmon_in_crit_alarm = 15,
hwmon_in_rated_min = 16,
hwmon_in_rated_max = 17,
hwmon_in_beep = 18,
hwmon_in_fault = 19,
};
enum hwmon_curr_attributes {
hwmon_curr_enable = 0,
hwmon_curr_input = 1,
hwmon_curr_min = 2,
hwmon_curr_max = 3,
hwmon_curr_lcrit = 4,
hwmon_curr_crit = 5,
hwmon_curr_average = 6,
hwmon_curr_lowest = 7,
hwmon_curr_highest = 8,
hwmon_curr_reset_history = 9,
hwmon_curr_label = 10,
hwmon_curr_alarm = 11,
hwmon_curr_min_alarm = 12,
hwmon_curr_max_alarm = 13,
hwmon_curr_lcrit_alarm = 14,
hwmon_curr_crit_alarm = 15,
hwmon_curr_rated_min = 16,
hwmon_curr_rated_max = 17,
hwmon_curr_beep = 18,
};
struct power_supply;
struct power_supply_hwmon {
struct power_supply *psy;
unsigned long *props;
};
struct power_supply_desc;
struct power_supply_battery_info;
struct power_supply {
const struct power_supply_desc *desc;
char **supplied_to;
size_t num_supplicants;
char **supplied_from;
size_t num_supplies;
struct device_node *of_node;
void *drv_data;
struct device dev;
struct work_struct changed_work;
struct delayed_work deferred_register_work;
spinlock_t changed_lock;
bool changed;
bool initialized;
bool removing;
atomic_t use_cnt;
struct power_supply_battery_info *battery_info;
struct thermal_zone_device *tzd;
struct thermal_cooling_device *tcd;
};
union power_supply_propval;
struct power_supply_desc {
const char *name;
enum power_supply_type type;
u8 charge_behaviours;
const enum power_supply_usb_type *usb_types;
size_t num_usb_types;
const enum power_supply_property *properties;
size_t num_properties;
int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *);
int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *);
int (*property_is_writeable)(struct power_supply *, enum power_supply_property);
void (*external_power_changed)(struct power_supply *);
void (*set_charged)(struct power_supply *);
bool no_thermal;
int use_for_apm;
};
union power_supply_propval {
int intval;
const char *strval;
};
struct power_supply_maintenance_charge_table;
struct power_supply_battery_ocv_table;
struct power_supply_resistance_temp_table;
struct power_supply_vbat_ri_table;
struct power_supply_battery_info {
unsigned int technology;
int energy_full_design_uwh;
int charge_full_design_uah;
int voltage_min_design_uv;
int voltage_max_design_uv;
int tricklecharge_current_ua;
int precharge_current_ua;
int precharge_voltage_max_uv;
int charge_term_current_ua;
int charge_restart_voltage_uv;
int overvoltage_limit_uv;
int constant_charge_current_max_ua;
int constant_charge_voltage_max_uv;
struct power_supply_maintenance_charge_table *maintenance_charge;
int maintenance_charge_size;
int alert_low_temp_charge_current_ua;
int alert_low_temp_charge_voltage_uv;
int alert_high_temp_charge_current_ua;
int alert_high_temp_charge_voltage_uv;
int factory_internal_resistance_uohm;
int factory_internal_resistance_charging_uohm;
int ocv_temp[20];
int temp_ambient_alert_min;
int temp_ambient_alert_max;
int temp_alert_min;
int temp_alert_max;
int temp_min;
int temp_max;
struct power_supply_battery_ocv_table *ocv_table[20];
int ocv_table_size[20];
struct power_supply_resistance_temp_table *resist_table;
int resist_table_size;
struct power_supply_vbat_ri_table *vbat2ri_discharging;
int vbat2ri_discharging_size;
struct power_supply_vbat_ri_table *vbat2ri_charging;
int vbat2ri_charging_size;
int bti_resistance_ohm;
int bti_resistance_tolerance;
};
struct power_supply_maintenance_charge_table {
int charge_current_max_ua;
int charge_voltage_max_uv;
int charge_safety_timer_minutes;
};
struct power_supply_battery_ocv_table {
int ocv;
int capacity;
};
struct power_supply_resistance_temp_table {
int temp;
int resistance;
};
struct power_supply_vbat_ri_table {
int vbat_uv;
int ri_uohm;
};
struct efi_system_resource_table {
u32 fw_resource_count;
u32 fw_resource_count_max;
u64 fw_resource_version;
u8 entries[0];
};
struct esre_entry;
struct esre_attribute {
struct attribute attr;
ssize_t (*show)(struct esre_entry *, char *);
ssize_t (*store)(struct esre_entry *, const char *, size_t);
};
struct efi_system_resource_entry_v1;
struct esre_entry {
union {
struct efi_system_resource_entry_v1 *esre1;
} esre;
struct kobject kobj;
struct list_head list;
};
struct efi_system_resource_entry_v1 {
efi_guid_t fw_class;
u32 fw_type;
u32 fw_version;
u32 lowest_supported_fw_version;
u32 capsule_flags;
u32 last_attempt_version;
u32 last_attempt_status;
};
enum {
ETHTOOL_A_LINKINFO_UNSPEC = 0,
ETHTOOL_A_LINKINFO_HEADER = 1,
ETHTOOL_A_LINKINFO_PORT = 2,
ETHTOOL_A_LINKINFO_PHYADDR = 3,
ETHTOOL_A_LINKINFO_TP_MDIX = 4,
ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 5,
ETHTOOL_A_LINKINFO_TRANSCEIVER = 6,
__ETHTOOL_A_LINKINFO_CNT = 7,
ETHTOOL_A_LINKINFO_MAX = 6,
};
struct linkinfo_reply_data {
struct ethnl_reply_data base;
struct ethtool_link_ksettings ksettings;
struct ethtool_link_settings *lsettings;
};
enum {
NEIGH_ARP_TABLE = 0,
NEIGH_ND_TABLE = 1,
NEIGH_DN_TABLE = 2,
NEIGH_NR_TABLES = 3,
NEIGH_LINK_TABLE = 3,
};
enum {
NEIGH_VAR_MCAST_PROBES = 0,
NEIGH_VAR_UCAST_PROBES = 1,
NEIGH_VAR_APP_PROBES = 2,
NEIGH_VAR_MCAST_REPROBES = 3,
NEIGH_VAR_RETRANS_TIME = 4,
NEIGH_VAR_BASE_REACHABLE_TIME = 5,
NEIGH_VAR_DELAY_PROBE_TIME = 6,
NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7,
NEIGH_VAR_GC_STALETIME = 8,
NEIGH_VAR_QUEUE_LEN_BYTES = 9,
NEIGH_VAR_PROXY_QLEN = 10,
NEIGH_VAR_ANYCAST_DELAY = 11,
NEIGH_VAR_PROXY_DELAY = 12,
NEIGH_VAR_LOCKTIME = 13,
NEIGH_VAR_QUEUE_LEN = 14,
NEIGH_VAR_RETRANS_TIME_MS = 15,
NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16,
NEIGH_VAR_GC_INTERVAL = 17,
NEIGH_VAR_GC_THRESH1 = 18,
NEIGH_VAR_GC_THRESH2 = 19,
NEIGH_VAR_GC_THRESH3 = 20,
NEIGH_VAR_MAX = 21,
};
struct neighbour_cb {
unsigned long sched_next;
unsigned int flags;
};
struct arphdr {
__be16 ar_hrd;
__be16 ar_pro;
unsigned char ar_hln;
unsigned char ar_pln;
__be16 ar_op;
};
struct arpreq {
struct sockaddr arp_pa;
struct sockaddr arp_ha;
int arp_flags;
struct sockaddr arp_netmask;
char arp_dev[16];
};
struct neigh_seq_state {
struct seq_net_private p;
struct neigh_table *tbl;
struct neigh_hash_table *nht;
void * (*neigh_sub_iter)(struct neigh_seq_state *, struct neighbour *, loff_t *);
unsigned int bucket;
unsigned int flags;
};
struct snmp_mib {
const char *name;
int entry;
};
enum ieee80211_encrypt {
ENCRYPT_NO = 0,
ENCRYPT_MGMT = 1,
ENCRYPT_DATA = 2,
};
enum ieee80211_radiotap_flags {
IEEE80211_RADIOTAP_F_CFP = 1,
IEEE80211_RADIOTAP_F_SHORTPRE = 2,
IEEE80211_RADIOTAP_F_WEP = 4,
IEEE80211_RADIOTAP_F_FRAG = 8,
IEEE80211_RADIOTAP_F_FCS = 16,
IEEE80211_RADIOTAP_F_DATAPAD = 32,
IEEE80211_RADIOTAP_F_BADFCS = 64,
};
enum ieee80211_radiotap_tx_flags {
IEEE80211_RADIOTAP_F_TX_FAIL = 1,
IEEE80211_RADIOTAP_F_TX_CTS = 2,
IEEE80211_RADIOTAP_F_TX_RTS = 4,
IEEE80211_RADIOTAP_F_TX_NOACK = 8,
IEEE80211_RADIOTAP_F_TX_NOSEQNO = 16,
IEEE80211_RADIOTAP_F_TX_ORDER = 32,
};
enum ieee80211_radiotap_mcs_flags {
IEEE80211_RADIOTAP_MCS_BW_MASK = 3,
IEEE80211_RADIOTAP_MCS_BW_20 = 0,
IEEE80211_RADIOTAP_MCS_BW_40 = 1,
IEEE80211_RADIOTAP_MCS_BW_20L = 2,
IEEE80211_RADIOTAP_MCS_BW_20U = 3,
IEEE80211_RADIOTAP_MCS_SGI = 4,
IEEE80211_RADIOTAP_MCS_FMT_GF = 8,
IEEE80211_RADIOTAP_MCS_FEC_LDPC = 16,
IEEE80211_RADIOTAP_MCS_STBC_MASK = 96,
IEEE80211_RADIOTAP_MCS_STBC_1 = 1,
IEEE80211_RADIOTAP_MCS_STBC_2 = 2,
IEEE80211_RADIOTAP_MCS_STBC_3 = 3,
IEEE80211_RADIOTAP_MCS_STBC_SHIFT = 5,
};
enum ieee80211_radiotap_vht_flags {
IEEE80211_RADIOTAP_VHT_FLAG_STBC = 1,
IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA = 2,
IEEE80211_RADIOTAP_VHT_FLAG_SGI = 4,
IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 = 8,
IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM = 16,
IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED = 32,
};
enum ieee80211_internal_key_flags {
KEY_FLAG_UPLOADED_TO_HARDWARE = 1,
KEY_FLAG_TAINTED = 2,
};
enum monitor_flags {
MONITOR_FLAG_CHANGED = 1,
MONITOR_FLAG_FCSFAIL = 2,
MONITOR_FLAG_PLCPFAIL = 4,
MONITOR_FLAG_CONTROL = 8,
MONITOR_FLAG_OTHER_BSS = 16,
MONITOR_FLAG_COOK_FRAMES = 32,
MONITOR_FLAG_ACTIVE = 64,
};
enum ieee80211_sta_flags {
IEEE80211_STA_CONNECTION_POLL = 2,
IEEE80211_STA_CONTROL_PORT = 4,
IEEE80211_STA_MFP_ENABLED = 64,
IEEE80211_STA_UAPSD_ENABLED = 128,
IEEE80211_STA_NULLFUNC_ACKED = 256,
IEEE80211_STA_ENABLE_RRM = 32768,
};
enum ieee80211_offload_flags {
IEEE80211_OFFLOAD_ENCAP_ENABLED = 1,
IEEE80211_OFFLOAD_ENCAP_4ADDR = 2,
IEEE80211_OFFLOAD_DECAP_ENABLED = 4,
};
enum mesh_path_flags {
MESH_PATH_ACTIVE = 1,
MESH_PATH_RESOLVING = 2,
MESH_PATH_SN_VALID = 4,
MESH_PATH_FIXED = 8,
MESH_PATH_RESOLVED = 16,
MESH_PATH_REQ_QUEUED = 32,
MESH_PATH_DELETED = 64,
};
typedef unsigned int ieee80211_tx_result;
struct ieee80211_radiotap_header {
uint8_t it_version;
uint8_t it_pad;
__le16 it_len;
__le32 it_present;
__le32 it_optional[0];
};
typedef bool fq_skb_filter_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *, void *);
typedef void fq_skb_free_t(struct fq *, struct fq_tin *, struct fq_flow *, struct sk_buff *);
struct ieee80211_tx_data {
struct sk_buff *skb;
struct sk_buff_head skbs;
struct ieee80211_local *local;
struct ieee80211_sub_if_data *sdata;
struct sta_info *sta;
struct ieee80211_key *key;
struct ieee80211_tx_rate rate;
unsigned int flags;
};
struct ieee80211_radiotap_vendor_namespaces;
struct ieee80211_radiotap_namespace;
struct ieee80211_radiotap_iterator {
struct ieee80211_radiotap_header *_rtheader;
const struct ieee80211_radiotap_vendor_namespaces *_vns;
const struct ieee80211_radiotap_namespace *current_namespace;
unsigned char *_arg;
unsigned char *_next_ns_data;
__le32 *_next_bitmap;
unsigned char *this_arg;
int this_arg_index;
int this_arg_size;
int is_radiotap_ns;
int _max_length;
int _arg_index;
uint32_t _bitmap_shifter;
int _reset_on_ext;
};
struct ieee80211_radiotap_vendor_namespaces {
const struct ieee80211_radiotap_namespace *ns;
int n_ns;
};
struct radiotap_align_size;
struct ieee80211_radiotap_namespace {
const struct radiotap_align_size *align_size;
int n_bits;
uint32_t oui;
uint8_t subns;
};
struct radiotap_align_size {
uint8_t align: 4;
uint8_t size: 4;
};
typedef struct sk_buff *fq_tin_dequeue_t(struct fq *, struct fq_tin *, struct fq_flow *);
typedef u32 (*codel_skb_len_t)(const struct sk_buff *);
typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *);
typedef void (*codel_skb_drop_t)(struct sk_buff *, void *);
typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *);
struct ieee80211_ema_beacons {
u8 cnt;
struct {
struct sk_buff *skb;
struct ieee80211_mutable_offsets offs;
} bcn[0];
};
struct mesh_path {
u8 dst[6];
u8 mpp[6];
struct rhash_head rhash;
struct hlist_node walk_list;
struct hlist_node gate_list;
struct ieee80211_sub_if_data *sdata;
struct sta_info __attribute__((btf_type_tag("rcu"))) *next_hop;
struct timer_list timer;
struct sk_buff_head frame_queue;
struct callback_head rcu;
u32 sn;
u32 metric;
u8 hop_count;
unsigned long exp_time;
u32 discovery_timeout;
u8 discovery_retries;
enum mesh_path_flags flags;
spinlock_t state_lock;
u8 rann_snd_addr[6];
u32 rann_metric;
unsigned long last_preq_to_root;
unsigned long fast_tx_check;
bool is_root;
bool is_gate;
u32 path_change_count;
};
struct ieee80211_pspoll {
__le16 frame_control;
__le16 aid;
u8 bssid[6];
u8 ta[6];
};
struct ieee80211_hdr_3addr {
__le16 frame_control;
__le16 duration_id;
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
__le16 seq_ctrl;
};
struct ieee80211_rts {
__le16 frame_control;
__le16 duration;
u8 ra[6];
u8 ta[6];
};
struct ieee80211_cts {
__le16 frame_control;
__le16 duration;
u8 ra[6];
};
typedef long (*sys_call_ptr_t)(const struct pt_regs *);
enum {
HW_BREAKPOINT_EMPTY = 0,
HW_BREAKPOINT_R = 1,
HW_BREAKPOINT_W = 2,
HW_BREAKPOINT_RW = 3,
HW_BREAKPOINT_X = 4,
HW_BREAKPOINT_INVALID = 7,
};
enum {
HW_BREAKPOINT_LEN_1 = 1,
HW_BREAKPOINT_LEN_2 = 2,
HW_BREAKPOINT_LEN_3 = 3,
HW_BREAKPOINT_LEN_4 = 4,
HW_BREAKPOINT_LEN_5 = 5,
HW_BREAKPOINT_LEN_6 = 6,
HW_BREAKPOINT_LEN_7 = 7,
HW_BREAKPOINT_LEN_8 = 8,
};
struct cpuid_dep {
unsigned int feature;
unsigned int depends;
};
enum {
PER_LINUX = 0,
PER_LINUX_32BIT = 8388608,
PER_LINUX_FDPIC = 524288,
PER_SVR4 = 68157441,
PER_SVR3 = 83886082,
PER_SCOSVR3 = 117440515,
PER_OSR5 = 100663299,
PER_WYSEV386 = 83886084,
PER_ISCR4 = 67108869,
PER_BSD = 6,
PER_SUNOS = 67108870,
PER_XENIX = 83886087,
PER_LINUX32 = 8,
PER_LINUX32_3GB = 134217736,
PER_IRIX32 = 67108873,
PER_IRIXN32 = 67108874,
PER_IRIX64 = 67108875,
PER_RISCOS = 12,
PER_SOLARIS = 67108877,
PER_UW7 = 68157454,
PER_OSF4 = 15,
PER_HPUX = 16,
PER_MASK = 255,
};
enum uts_proc {
UTS_PROC_ARCH = 0,
UTS_PROC_OSTYPE = 1,
UTS_PROC_OSRELEASE = 2,
UTS_PROC_VERSION = 3,
UTS_PROC_HOSTNAME = 4,
UTS_PROC_DOMAINNAME = 5,
};
struct tms {
__kernel_clock_t tms_utime;
__kernel_clock_t tms_stime;
__kernel_clock_t tms_cutime;
__kernel_clock_t tms_cstime;
};
struct old_utsname {
char sysname[65];
char nodename[65];
char release[65];
char version[65];
char machine[65];
};
struct oldold_utsname {
char sysname[9];
char nodename[9];
char release[9];
char version[9];
char machine[9];
};
struct rlimit64 {
__u64 rlim_cur;
__u64 rlim_max;
};
struct getcpu_cache {
unsigned long blob[16];
};
struct prctl_mm_map {
__u64 start_code;
__u64 end_code;
__u64 start_data;
__u64 end_data;
__u64 start_brk;
__u64 brk;
__u64 start_stack;
__u64 arg_start;
__u64 arg_end;
__u64 env_start;
__u64 env_end;
__u64 *auxv;
__u32 auxv_size;
__u32 exe_fd;
};
enum {
TRACE_NOP_OPT_ACCEPT = 1,
TRACE_NOP_OPT_REFUSE = 2,
};
struct bpf_cpu_map_entry;
struct xdp_bulk_queue {
void *q[8];
struct list_head flush_node;
struct bpf_cpu_map_entry *obj;
unsigned int count;
};
struct bpf_cpumap_val {
__u32 qsize;
union {
int fd;
__u32 id;
} bpf_prog;
};
struct bpf_cpu_map_entry {
u32 cpu;
int map_id;
struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq;
struct ptr_ring *queue;
struct task_struct *kthread;
struct bpf_cpumap_val value;
struct bpf_prog *prog;
struct completion kthread_running;
struct rcu_work free_work;
};
struct bpf_cpu_map {
struct bpf_map map;
struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map;
};
struct xdp_cpumap_stats {
unsigned int redirect;
unsigned int pass;
unsigned int drop;
};
enum {
I_DATA_SEM_NORMAL = 0,
I_DATA_SEM_OTHER = 1,
I_DATA_SEM_QUOTA = 2,
I_DATA_SEM_EA = 3,
};
struct utf8_table {
int cmask;
int cval;
int shift;
long lmask;
long lval;
};
typedef u32 unicode_t;
enum {
BTRFS_ORDERED_REGULAR = 0,
BTRFS_ORDERED_NOCOW = 1,
BTRFS_ORDERED_PREALLOC = 2,
BTRFS_ORDERED_COMPRESSED = 3,
BTRFS_ORDERED_DIRECT = 4,
BTRFS_ORDERED_IO_DONE = 5,
BTRFS_ORDERED_COMPLETE = 6,
BTRFS_ORDERED_IOERR = 7,
BTRFS_ORDERED_TRUNCATED = 8,
BTRFS_ORDERED_LOGGED = 9,
BTRFS_ORDERED_LOGGED_CSUM = 10,
BTRFS_ORDERED_PENDING = 11,
BTRFS_ORDERED_ENCODED = 12,
};
struct crypto_aes_ctx {
u32 key_enc[60];
u32 key_dec[60];
u32 key_length;
};
struct authenc_esn_instance_ctx {
struct crypto_ahash_spawn auth;
struct crypto_skcipher_spawn enc;
};
struct crypto_sync_skcipher {
struct crypto_skcipher base;
};
struct crypto_authenc_keys {
const u8 *authkey;
const u8 *enckey;
unsigned int authkeylen;
unsigned int enckeylen;
};
struct crypto_authenc_esn_ctx {
unsigned int reqoff;
struct crypto_ahash *auth;
struct crypto_skcipher *enc;
struct crypto_sync_skcipher *null;
};
struct authenc_esn_request_ctx {
struct scatterlist src[2];
struct scatterlist dst[2];
char tail[0];
};
enum gcry_mpi_format {
GCRYMPI_FMT_NONE = 0,
GCRYMPI_FMT_STD = 1,
GCRYMPI_FMT_PGP = 2,
GCRYMPI_FMT_SSH = 3,
GCRYMPI_FMT_HEX = 4,
GCRYMPI_FMT_USG = 5,
GCRYMPI_FMT_OPAQUE = 8,
};
struct pci_slot_attribute {
struct attribute attr;
ssize_t (*show)(struct pci_slot *, char *);
ssize_t (*store)(struct pci_slot *, const char *, size_t);
};
enum {
AML_FIELD_UPDATE_PRESERVE = 0,
AML_FIELD_UPDATE_WRITE_AS_ONES = 32,
AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64,
};
enum gpiod_flags {
GPIOD_ASIS = 0,
GPIOD_IN = 1,
GPIOD_OUT_LOW = 3,
GPIOD_OUT_HIGH = 7,
GPIOD_OUT_LOW_OPEN_DRAIN = 11,
GPIOD_OUT_HIGH_OPEN_DRAIN = 15,
};
struct clk_gpio {
struct clk_hw hw;
struct gpio_desc *gpiod;
};
struct mctrl_gpios;
struct uart_8250_dma;
struct uart_8250_ops;
struct uart_8250_em485;
struct uart_8250_port {
struct uart_port port;
struct timer_list timer;
struct list_head list;
u32 capabilities;
u16 bugs;
unsigned int tx_loadsz;
unsigned char acr;
unsigned char fcr;
unsigned char ier;
unsigned char lcr;
unsigned char mcr;
unsigned char cur_iotype;
unsigned int rpm_tx_active;
unsigned char canary;
unsigned char probe;
struct mctrl_gpios *gpios;
u16 lsr_saved_flags;
u16 lsr_save_mask;
unsigned char msr_saved_flags;
struct uart_8250_dma *dma;
const struct uart_8250_ops *ops;
u32 (*dl_read)(struct uart_8250_port *);
void (*dl_write)(struct uart_8250_port *, u32);
struct uart_8250_em485 *em485;
void (*rs485_start_tx)(struct uart_8250_port *);
void (*rs485_stop_tx)(struct uart_8250_port *);
struct delayed_work overrun_backoff;
u32 overrun_backoff_time_ms;
};
struct uart_8250_dma {
int (*tx_dma)(struct uart_8250_port *);
int (*rx_dma)(struct uart_8250_port *);
void (*prepare_tx_dma)(struct uart_8250_port *);
void (*prepare_rx_dma)(struct uart_8250_port *);
dma_filter_fn fn;
void *rx_param;
void *tx_param;
struct dma_slave_config rxconf;
struct dma_slave_config txconf;
struct dma_chan *rxchan;
struct dma_chan *txchan;
phys_addr_t rx_dma_addr;
phys_addr_t tx_dma_addr;
dma_addr_t rx_addr;
dma_addr_t tx_addr;
dma_cookie_t rx_cookie;
dma_cookie_t tx_cookie;
void *rx_buf;
size_t rx_size;
size_t tx_size;
unsigned char tx_running;
unsigned char tx_err;
unsigned char rx_running;
};
struct uart_8250_ops {
int (*setup_irq)(struct uart_8250_port *);
void (*release_irq)(struct uart_8250_port *);
void (*setup_timer)(struct uart_8250_port *);
};
struct uart_8250_em485 {
struct hrtimer start_tx_timer;
struct hrtimer stop_tx_timer;
struct hrtimer *active_timer;
struct uart_8250_port *port;
unsigned int tx_stopped: 1;
};
struct old_serial_port {
unsigned int uart;
unsigned int baud_base;
unsigned int port;
unsigned int irq;
upf_t flags;
unsigned char io_type;
unsigned char *iomem_base;
unsigned short iomem_reg_shift;
};
struct uart_driver {
struct module *owner;
const char *driver_name;
const char *dev_name;
int major;
int minor;
int nr;
struct console *cons;
struct uart_state *state;
struct tty_driver *tty_driver;
};
enum {
PLAT8250_DEV_LEGACY = -1,
PLAT8250_DEV_PLATFORM = 0,
PLAT8250_DEV_PLATFORM1 = 1,
PLAT8250_DEV_PLATFORM2 = 2,
PLAT8250_DEV_FOURPORT = 3,
PLAT8250_DEV_ACCENT = 4,
PLAT8250_DEV_BOCA = 5,
PLAT8250_DEV_EXAR_ST16C554 = 6,
PLAT8250_DEV_HUB6 = 7,
PLAT8250_DEV_AU1X00 = 8,
PLAT8250_DEV_SM501 = 9,
};
struct irq_info {
struct hlist_node node;
int irq;
spinlock_t lock;
struct list_head *head;
};
struct plat_serial8250_port {
unsigned long iobase;
void *membase;
resource_size_t mapbase;
resource_size_t mapsize;
unsigned int uartclk;
unsigned int irq;
unsigned long irqflags;
void *private_data;
unsigned char regshift;
unsigned char iotype;
unsigned char hub6;
unsigned char has_sysrq;
unsigned int type;
upf_t flags;
u16 bugs;
unsigned int (*serial_in)(struct uart_port *, int);
void (*serial_out)(struct uart_port *, int, int);
u32 (*dl_read)(struct uart_8250_port *);
void (*dl_write)(struct uart_8250_port *, u32);
void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *);
void (*set_ldisc)(struct uart_port *, struct ktermios *);
unsigned int (*get_mctrl)(struct uart_port *);
int (*handle_irq)(struct uart_port *);
void (*pm)(struct uart_port *, unsigned int, unsigned int);
void (*handle_break)(struct uart_port *);
};
enum scsi_scan_mode {
SCSI_SCAN_INITIAL = 0,
SCSI_SCAN_RESCAN = 1,
SCSI_SCAN_MANUAL = 2,
};
enum scsi_timeouts {
SCSI_DEFAULT_EH_TIMEOUT = 10000,
};
struct async_scan_data {
struct list_head list;
struct Scsi_Host *shost;
struct completion prev_finished;
};
typedef void (*activate_complete)(void *, int);
struct scsi_device_handler {
struct list_head list;
struct module *module;
const char *name;
enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *);
int (*attach)(struct scsi_device *);
void (*detach)(struct scsi_device *);
int (*activate)(struct scsi_device *, activate_complete, void *);
blk_status_t (*prep_fn)(struct scsi_device *, struct request *);
int (*set_params)(struct scsi_device *, const char *);
void (*rescan)(struct scsi_device *);
};
struct scsi_driver {
struct device_driver gendrv;
void (*rescan)(struct device *);
blk_status_t (*init_command)(struct scsi_cmnd *);
void (*uninit_command)(struct scsi_cmnd *);
int (*done)(struct scsi_cmnd *);
int (*eh_action)(struct scsi_cmnd *, int);
void (*eh_reset)(struct scsi_cmnd *);
};
struct scsi_failure {
int result;
u8 sense;
u8 asc;
u8 ascq;
s8 allowed;
s8 retries;
};
struct scsi_failures {
int total_allowed;
int total_retries;
struct scsi_failure *failure_definitions;
};
struct scsi_exec_args {
unsigned char *sense;
unsigned int sense_len;
struct scsi_sense_hdr *sshdr;
blk_mq_req_flags_t req_flags;
int scmd_flags;
int *resid;
struct scsi_failures *failures;
};
struct scsi_lun {
__u8 scsi_lun[8];
};
enum iwl_prph_scratch_flags {
IWL_PRPH_SCRATCH_IMR_DEBUG_EN = 2,
IWL_PRPH_SCRATCH_EARLY_DEBUG_EN = 16,
IWL_PRPH_SCRATCH_EDBG_DEST_DRAM = 256,
IWL_PRPH_SCRATCH_EDBG_DEST_INTERNAL = 512,
IWL_PRPH_SCRATCH_EDBG_DEST_ST_ARBITER = 1024,
IWL_PRPH_SCRATCH_EDBG_DEST_TB22DTF = 2048,
IWL_PRPH_SCRATCH_RB_SIZE_4K = 65536,
IWL_PRPH_SCRATCH_MTR_MODE = 131072,
IWL_PRPH_SCRATCH_MTR_FORMAT = 786432,
IWL_PRPH_SCRATCH_RB_SIZE_EXT_MASK = 15728640,
IWL_PRPH_SCRATCH_RB_SIZE_EXT_8K = 8388608,
IWL_PRPH_SCRATCH_RB_SIZE_EXT_12K = 9437184,
IWL_PRPH_SCRATCH_RB_SIZE_EXT_16K = 10485760,
};
enum iwl_prph_scratch_mtr_format {
IWL_PRPH_MTR_FORMAT_16B = 0,
IWL_PRPH_MTR_FORMAT_32B = 262144,
IWL_PRPH_MTR_FORMAT_64B = 524288,
IWL_PRPH_MTR_FORMAT_256B = 786432,
};
struct iwl_prph_scrath_mem_desc_addr_array {
__le64 mem_descs[64];
};
enum data_queue_flags {
QUEUE_STARTED = 0,
QUEUE_PAUSED = 1,
};
struct rt2x00_bar_list_entry {
struct list_head list;
struct callback_head head;
struct queue_entry *entry;
int block_acked;
__u8 ra[6];
__u8 ta[6];
__le16 control;
__le16 start_seq_num;
};
struct rt2x00_rate {
unsigned short flags;
unsigned short bitrate;
unsigned short ratemask;
unsigned short plcp;
unsigned short mcs;
};
struct usb_device_driver {
const char *name;
bool (*match)(struct usb_device *);
int (*probe)(struct usb_device *);
void (*disconnect)(struct usb_device *);
int (*suspend)(struct usb_device *, pm_message_t);
int (*resume)(struct usb_device *, pm_message_t);
int (*choose_configuration)(struct usb_device *);
const struct attribute_group **dev_groups;
struct device_driver driver;
const struct usb_device_id *id_table;
unsigned int supports_autosuspend: 1;
unsigned int generic_subclass: 1;
};
enum xfer_buf_dir {
TO_XFER_BUF = 0,
FROM_XFER_BUF = 1,
};
struct scsi_disk {
struct scsi_device *device;
struct device disk_dev;
struct gendisk *disk;
struct opal_dev *opal_dev;
atomic_t openers;
sector_t capacity;
int max_retries;
u32 min_xfer_blocks;
u32 max_xfer_blocks;
u32 opt_xfer_blocks;
u32 max_ws_blocks;
u32 max_unmap_blocks;
u32 unmap_granularity;
u32 unmap_alignment;
u32 index;
unsigned int physical_block_size;
unsigned int max_medium_access_timeouts;
unsigned int medium_access_timed_out;
u16 permanent_stream_count;
u8 media_present;
u8 write_prot;
u8 protection_type;
u8 provisioning_mode;
u8 zeroing_mode;
u8 nr_actuators;
bool suspended;
unsigned int ATO: 1;
unsigned int cache_override: 1;
unsigned int WCE: 1;
unsigned int RCD: 1;
unsigned int DPOFUA: 1;
unsigned int first_scan: 1;
unsigned int lbpme: 1;
unsigned int lbprz: 1;
unsigned int lbpu: 1;
unsigned int lbpws: 1;
unsigned int lbpws10: 1;
unsigned int lbpvpd: 1;
unsigned int ws10: 1;
unsigned int ws16: 1;
unsigned int rc_basis: 2;
unsigned int zoned: 2;
unsigned int urswrz: 1;
unsigned int security: 1;
unsigned int ignore_medium_access_errors: 1;
unsigned int rscs: 1;
};
struct scsi_eh_save {
int result;
unsigned int resid_len;
int eh_eflags;
enum dma_data_direction data_direction;
unsigned int underflow;
unsigned char cmd_len;
unsigned char prot_op;
unsigned char cmnd[32];
struct scsi_data_buffer sdb;
struct scatterlist sense_sgl;
};
struct dm_stat_percpu {
unsigned long long sectors[2];
unsigned long long ios[2];
unsigned long long merges[2];
unsigned long long ticks[2];
unsigned long long io_ticks[2];
unsigned long long io_ticks_total;
unsigned long long time_in_queue;
unsigned long long *histogram;
};
struct dm_stat_shared {
atomic_t in_flight[2];
unsigned long long stamp;
struct dm_stat_percpu tmp;
};
struct dm_stat {
struct list_head list_entry;
int id;
unsigned int stat_flags;
size_t n_entries;
sector_t start;
sector_t end;
sector_t step;
unsigned int n_histogram_entries;
unsigned long long *histogram_boundaries;
const char *program_id;
const char *aux_data;
struct callback_head callback_head;
size_t shared_alloc_size;
size_t percpu_alloc_size;
size_t histogram_alloc_size;
struct dm_stat_percpu *stat_percpu[8192];
struct dm_stat_shared stat_shared[0];
};
struct dm_arg_set {
unsigned int argc;
char **argv;
};
enum {
ETHTOOL_A_MM_STAT_UNSPEC = 0,
ETHTOOL_A_MM_STAT_PAD = 1,
ETHTOOL_A_MM_STAT_REASSEMBLY_ERRORS = 2,
ETHTOOL_A_MM_STAT_SMD_ERRORS = 3,
ETHTOOL_A_MM_STAT_REASSEMBLY_OK = 4,
ETHTOOL_A_MM_STAT_RX_FRAG_COUNT = 5,
ETHTOOL_A_MM_STAT_TX_FRAG_COUNT = 6,
ETHTOOL_A_MM_STAT_HOLD_COUNT = 7,
__ETHTOOL_A_MM_STAT_CNT = 8,
ETHTOOL_A_MM_STAT_MAX = 7,
};
enum {
ETHTOOL_A_MM_UNSPEC = 0,
ETHTOOL_A_MM_HEADER = 1,
ETHTOOL_A_MM_PMAC_ENABLED = 2,
ETHTOOL_A_MM_TX_ENABLED = 3,
ETHTOOL_A_MM_TX_ACTIVE = 4,
ETHTOOL_A_MM_TX_MIN_FRAG_SIZE = 5,
ETHTOOL_A_MM_RX_MIN_FRAG_SIZE = 6,
ETHTOOL_A_MM_VERIFY_ENABLED = 7,
ETHTOOL_A_MM_VERIFY_STATUS = 8,
ETHTOOL_A_MM_VERIFY_TIME = 9,
ETHTOOL_A_MM_MAX_VERIFY_TIME = 10,
ETHTOOL_A_MM_STATS = 11,
__ETHTOOL_A_MM_CNT = 12,
ETHTOOL_A_MM_MAX = 11,
};
struct mm_reply_data {
struct ethnl_reply_data base;
struct ethtool_mm_state state;
struct ethtool_mm_stats stats;
};
struct michael_mic_ctx {
u32 l;
u32 r;
};
enum nl80211_nan_func_term_reason {
NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0,
NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 1,
NL80211_NAN_FUNC_TERM_REASON_ERROR = 2,
};
enum nl80211_txq_stats {
__NL80211_TXQ_STATS_INVALID = 0,
NL80211_TXQ_STATS_BACKLOG_BYTES = 1,
NL80211_TXQ_STATS_BACKLOG_PACKETS = 2,
NL80211_TXQ_STATS_FLOWS = 3,
NL80211_TXQ_STATS_DROPS = 4,
NL80211_TXQ_STATS_ECN_MARKS = 5,
NL80211_TXQ_STATS_OVERLIMIT = 6,
NL80211_TXQ_STATS_OVERMEMORY = 7,
NL80211_TXQ_STATS_COLLISIONS = 8,
NL80211_TXQ_STATS_TX_BYTES = 9,
NL80211_TXQ_STATS_TX_PACKETS = 10,
NL80211_TXQ_STATS_MAX_FLOWS = 11,
NUM_NL80211_TXQ_STATS = 12,
NL80211_TXQ_STATS_MAX = 11,
};
enum nl80211_sta_flags {
__NL80211_STA_FLAG_INVALID = 0,
NL80211_STA_FLAG_AUTHORIZED = 1,
NL80211_STA_FLAG_SHORT_PREAMBLE = 2,
NL80211_STA_FLAG_WME = 3,
NL80211_STA_FLAG_MFP = 4,
NL80211_STA_FLAG_AUTHENTICATED = 5,
NL80211_STA_FLAG_TDLS_PEER = 6,
NL80211_STA_FLAG_ASSOCIATED = 7,
NL80211_STA_FLAG_SPP_AMSDU = 8,
__NL80211_STA_FLAG_AFTER_LAST = 9,
NL80211_STA_FLAG_MAX = 8,
};
enum station_parameters_apply_mask {
STATION_PARAM_APPLY_UAPSD = 1,
STATION_PARAM_APPLY_CAPABILITY = 2,
STATION_PARAM_APPLY_PLINK_STATE = 4,
};
enum cfg80211_station_type {
CFG80211_STA_AP_CLIENT = 0,
CFG80211_STA_AP_CLIENT_UNASSOC = 1,
CFG80211_STA_AP_MLME_CLIENT = 2,
CFG80211_STA_AP_STA = 3,
CFG80211_STA_IBSS = 4,
CFG80211_STA_TDLS_PEER_SETUP = 5,
CFG80211_STA_TDLS_PEER_ACTIVE = 6,
CFG80211_STA_MESH_PEER_KERNEL = 7,
CFG80211_STA_MESH_PEER_USER = 8,
};
enum nl80211_scan_flags {
NL80211_SCAN_FLAG_LOW_PRIORITY = 1,
NL80211_SCAN_FLAG_FLUSH = 2,
NL80211_SCAN_FLAG_AP = 4,
NL80211_SCAN_FLAG_RANDOM_ADDR = 8,
NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 16,
NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 32,
NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 64,
NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 128,
NL80211_SCAN_FLAG_LOW_SPAN = 256,
NL80211_SCAN_FLAG_LOW_POWER = 512,
NL80211_SCAN_FLAG_HIGH_ACCURACY = 1024,
NL80211_SCAN_FLAG_RANDOM_SN = 2048,
NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 4096,
NL80211_SCAN_FLAG_FREQ_KHZ = 8192,
NL80211_SCAN_FLAG_COLOCATED_6GHZ = 16384,
};
enum wiphy_params_flags {
WIPHY_PARAM_RETRY_SHORT = 1,
WIPHY_PARAM_RETRY_LONG = 2,
WIPHY_PARAM_FRAG_THRESHOLD = 4,
WIPHY_PARAM_RTS_THRESHOLD = 8,
WIPHY_PARAM_COVERAGE_CLASS = 16,
WIPHY_PARAM_DYN_ACK = 32,
WIPHY_PARAM_TXQ_LIMIT = 64,
WIPHY_PARAM_TXQ_MEMORY_LIMIT = 128,
WIPHY_PARAM_TXQ_QUANTUM = 256,
};
enum cfg80211_nan_conf_changes {
CFG80211_NAN_CONF_CHANGED_PREF = 1,
CFG80211_NAN_CONF_CHANGED_BANDS = 2,
};
struct cfg80211_nan_match_params {
enum nl80211_nan_function_type type;
u8 inst_id;
u8 peer_inst_id;
const u8 *addr;
u8 info_len;
const u8 *info;
u64 cookie;
};
struct ieee80211_color_change_settings {
u16 counter_offset_beacon;
u16 counter_offset_presp;
u8 count;
};
struct ieee80211_csa_settings {
const u16 *counter_offsets_beacon;
const u16 *counter_offsets_presp;
int n_counter_offsets_beacon;
int n_counter_offsets_presp;
u8 count;
};
enum {
PERF_BR_UNKNOWN = 0,
PERF_BR_COND = 1,
PERF_BR_UNCOND = 2,
PERF_BR_IND = 3,
PERF_BR_CALL = 4,
PERF_BR_IND_CALL = 5,
PERF_BR_RET = 6,
PERF_BR_SYSCALL = 7,
PERF_BR_SYSRET = 8,
PERF_BR_COND_CALL = 9,
PERF_BR_COND_RET = 10,
PERF_BR_ERET = 11,
PERF_BR_IRQ = 12,
PERF_BR_SERROR = 13,
PERF_BR_NO_TX = 14,
PERF_BR_EXTEND_ABI = 15,
PERF_BR_MAX = 16,
};
enum {
X86_BR_NONE = 0,
X86_BR_USER = 1,
X86_BR_KERNEL = 2,
X86_BR_CALL = 4,
X86_BR_RET = 8,
X86_BR_SYSCALL = 16,
X86_BR_SYSRET = 32,
X86_BR_INT = 64,
X86_BR_IRET = 128,
X86_BR_JCC = 256,
X86_BR_JMP = 512,
X86_BR_IRQ = 1024,
X86_BR_IND_CALL = 2048,
X86_BR_ABORT = 4096,
X86_BR_IN_TX = 8192,
X86_BR_NO_TX = 16384,
X86_BR_ZERO_CALL = 32768,
X86_BR_CALL_STACK = 65536,
X86_BR_IND_JMP = 131072,
X86_BR_TYPE_SAVE = 262144,
};
enum energy_perf_value_index {
EPB_INDEX_PERFORMANCE = 0,
EPB_INDEX_BALANCE_PERFORMANCE = 1,
EPB_INDEX_NORMAL = 2,
EPB_INDEX_BALANCE_POWERSAVE = 3,
EPB_INDEX_POWERSAVE = 4,
};
struct equiv_cpu_entry;
struct equiv_cpu_table {
unsigned int num_entries;
struct equiv_cpu_entry *entry;
};
struct equiv_cpu_entry {
u32 installed_cpu;
u32 fixed_errata_mask;
u32 fixed_errata_compare;
u16 equiv_cpu;
u16 res;
};
struct microcode_header_amd {
u32 data_code;
u32 patch_id;
u16 mc_patch_data_id;
u8 mc_patch_data_len;
u8 init_flag;
u32 mc_patch_data_checksum;
u32 nb_dev_id;
u32 sb_dev_id;
u16 processor_rev_id;
u8 nb_rev_id;
u8 sb_rev_id;
u8 bios_api_rev;
u8 reserved1[3];
u32 match_reg[8];
};
struct microcode_amd {
struct microcode_header_amd hdr;
unsigned int mpb[0];
};
struct ucode_patch {
struct list_head plist;
void *data;
unsigned int size;
u32 patch_id;
u16 equiv_cpu;
};
struct cont_desc {
struct microcode_amd *mc;
u32 cpuid_1_eax;
u32 psize;
u8 *data;
size_t size;
};
union futex_key {
struct {
u64 i_seq;
unsigned long pgoff;
unsigned int offset;
} shared;
struct {
union {
struct mm_struct *mm;
u64 __tmp;
};
unsigned long address;
unsigned int offset;
} private;
struct {
u64 ptr;
unsigned long word;
unsigned int offset;
} both;
};
struct futex_pi_state {
struct list_head list;
struct rt_mutex_base pi_mutex;
struct task_struct *owner;
refcount_t refcount;
union futex_key key;
};
struct futex_waitv {
__u64 val;
__u64 uaddr;
__u32 flags;
__u32 __reserved;
};
struct hrtimer_sleeper {
struct hrtimer timer;
struct task_struct *task;
};
struct futex_q;
typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *);
struct futex_q {
struct plist_node list;
struct task_struct *task;
spinlock_t *lock_ptr;
futex_wake_fn *wake;
void *wake_data;
union futex_key key;
struct futex_pi_state *pi_state;
struct rt_mutex_waiter *rt_waiter;
union futex_key *requeue_pi_key;
u32 bitset;
atomic_t requeue_state;
};
struct futex_vector {
struct futex_waitv w;
struct futex_q q;
};
enum bpf_stack_slot_type {
STACK_INVALID = 0,
STACK_SPILL = 1,
STACK_MISC = 2,
STACK_ZERO = 3,
STACK_DYNPTR = 4,
STACK_ITER = 5,
};
typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *);
typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *);
typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t);
typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t);
enum behavior {
EXCLUSIVE = 0,
SHARED = 1,
DROP = 2,
};
struct trace_event_raw_mm_filemap_op_page_cache {
struct trace_entry ent;
unsigned long pfn;
unsigned long i_ino;
unsigned long index;
dev_t s_dev;
unsigned char order;
char __data[0];
};
struct trace_event_raw_filemap_set_wb_err {
struct trace_entry ent;
unsigned long i_ino;
dev_t s_dev;
errseq_t errseq;
char __data[0];
};
struct trace_event_raw_file_check_and_advance_wb_err {
struct trace_entry ent;
struct file *file;
unsigned long i_ino;
dev_t s_dev;
errseq_t old;
errseq_t new;
char __data[0];
};
struct cachestat_range {
__u64 off;
__u64 len;
};
struct cachestat {
__u64 nr_cache;
__u64 nr_dirty;
__u64 nr_writeback;
__u64 nr_evicted;
__u64 nr_recently_evicted;
};
struct wait_page_key {
struct folio *folio;
int bit_nr;
int page_match;
};
struct trace_event_data_offsets_mm_filemap_op_page_cache {};
struct trace_event_data_offsets_filemap_set_wb_err {};
struct trace_event_data_offsets_file_check_and_advance_wb_err {};
struct inodes_stat_t {
long nr_inodes;
long nr_unused;
long dummy[5];
};
enum inode_i_mutex_lock_class {
I_MUTEX_NORMAL = 0,
I_MUTEX_PARENT = 1,
I_MUTEX_CHILD = 2,
I_MUTEX_XATTR = 3,
I_MUTEX_NONDIR2 = 4,
I_MUTEX_PARENT2 = 5,
};
enum lru_status {
LRU_REMOVED = 0,
LRU_REMOVED_RETRY = 1,
LRU_ROTATE = 2,
LRU_SKIP = 3,
LRU_RETRY = 4,
LRU_STOP = 5,
};
typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *);
enum SHIFT_DIRECTION {
SHIFT_LEFT = 0,
SHIFT_RIGHT = 1,
};
struct ext4_extent_tail {
__le32 et_checksum;
};
struct ext4_iloc {
struct buffer_head *bh;
unsigned long offset;
ext4_group_t block_group;
};
enum {
CRYPTOA_UNSPEC = 0,
CRYPTOA_ALG = 1,
CRYPTOA_TYPE = 2,
__CRYPTOA_MAX = 3,
};
struct crypto_attr_type {
u32 type;
u32 mask;
};
struct crypto_attr_alg {
char name[128];
};
struct cryptomgr_param {
struct rtattr *tb[34];
struct {
struct rtattr attr;
struct crypto_attr_type data;
} type;
struct {
struct rtattr attr;
struct crypto_attr_alg data;
} attrs[32];
char template[128];
struct crypto_larval *larval;
u32 otype;
u32 omask;
};
enum dd_prio {
DD_RT_PRIO = 0,
DD_BE_PRIO = 1,
DD_IDLE_PRIO = 2,
DD_PRIO_MAX = 2,
};
enum dd_data_dir {
DD_READ = 0,
DD_WRITE = 1,
};
struct io_stats_per_prio {
uint32_t inserted;
uint32_t merged;
uint32_t dispatched;
atomic_t completed;
};
struct dd_per_prio {
struct list_head dispatch;
struct rb_root sort_list[2];
struct list_head fifo_list[2];
sector_t latest_pos[2];
struct io_stats_per_prio stats;
};
struct deadline_data {
struct dd_per_prio per_prio[3];
enum dd_data_dir last_dir;
unsigned int batching;
unsigned int starved;
int fifo_expire[2];
int fifo_batch;
int writes_starved;
int front_merges;
u32 async_depth;
int prio_aging_expire;
spinlock_t lock;
spinlock_t zone_lock;
};
typedef unsigned int FSE_DTable;
typedef struct {
U16 tableLog;
U16 fastMode;
} FSE_DTableHeader;
typedef struct {
unsigned short newState;
unsigned char symbol;
unsigned char nbBits;
} FSE_decode_t;
typedef s16 int16_t;
typedef int16_t S16;
typedef struct {
short ncount[256];
FSE_DTable dtable[0];
} FSE_DecompressWksp;
typedef struct {
size_t state;
const void *table;
} FSE_DState_t;
struct virtio_device_id {
__u32 device;
__u32 vendor;
};
struct virtio_pci_legacy_device {
struct pci_dev *pci_dev;
u8 *isr;
void *ioaddr;
struct virtio_device_id id;
};
struct memdev {
const char *name;
const struct file_operations *fops;
fmode_t fmode;
umode_t mode;
};
struct splice_desc;
typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *);
struct splice_desc {
size_t total_len;
unsigned int len;
unsigned int flags;
union {
void __attribute__((btf_type_tag("user"))) *userptr;
struct file *file;
void *data;
} u;
void (*splice_eof)(struct splice_desc *);
loff_t pos;
loff_t *opos;
size_t num_spliced;
bool need_wakeup;
};
struct mdio_board_info {
const char *bus_id;
char modalias[32];
int mdio_addr;
const void *platform_data;
};
struct mdio_board_entry {
struct list_head list;
struct mdio_board_info board_info;
};
struct iwl_rx_transfer_desc {
__le16 rbid;
__le16 reserved[3];
__le64 addr;
};
struct iwl_rx_completion_desc_bz {
__le16 rbid;
u8 flags;
u8 reserved[1];
};
struct iwl_rx_completion_desc {
__le32 reserved1;
__le16 rbid;
u8 flags;
u8 reserved2[25];
};
enum iwl_mac_config_filter_flags {
MAC_CFG_FILTER_PROMISC = 1,
MAC_CFG_FILTER_ACCEPT_CONTROL_AND_MGMT = 2,
MAC_CFG_FILTER_ACCEPT_GRP = 4,
MAC_CFG_FILTER_ACCEPT_BEACON = 8,
MAC_CFG_FILTER_ACCEPT_BCAST_PROBE_RESP = 16,
MAC_CFG_FILTER_ACCEPT_PROBE_REQ = 32,
};
struct iwl_mac_client_data {
u8 is_assoc;
u8 esr_transition_timeout;
__le16 medium_sync_delay;
__le16 assoc_id;
__le16 reserved1;
__le16 data_policy;
__le16 reserved2;
__le32 ctwin;
};
struct iwl_mac_p2p_dev_data {
__le32 is_disc_extended;
};
struct iwl_mac_config_cmd {
__le32 id_and_color;
__le32 action;
__le32 mac_type;
u8 local_mld_addr[6];
__le16 reserved_for_local_mld_addr;
__le32 filter_flags;
__le16 he_support;
__le16 he_ap_support;
__le32 eht_support;
__le32 nic_not_ack_enabled;
union {
struct iwl_mac_client_data client;
struct iwl_mac_p2p_dev_data p2p_dev;
};
};
struct class_info {
int class;
char *class_name;
};
struct pps_kinfo {
__u32 assert_sequence;
__u32 clear_sequence;
struct pps_ktime assert_tu;
struct pps_ktime clear_tu;
int current_mode;
};
struct pps_fdata {
struct pps_kinfo info;
struct pps_ktime timeout;
};
struct pps_bind_args {
int tsformat;
int edge;
int consumer;
};
typedef struct {
u32 version;
u32 num_entries;
u32 desc_size;
u32 flags;
efi_memory_desc_t entry[0];
} efi_memory_attributes_table_t;
typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool);
enum offload_act_command {
FLOW_ACT_REPLACE = 0,
FLOW_ACT_DESTROY = 1,
FLOW_ACT_STATS = 2,
};
typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *));
struct flow_indr_dev {
struct list_head list;
flow_indr_block_bind_cb_t *cb;
void *cb_priv;
refcount_t refcnt;
};
struct flow_indir_dev_info {
void *data;
struct net_device *dev;
struct Qdisc *sch;
enum tc_setup_type type;
void (*cleanup)(struct flow_block_cb *);
struct list_head list;
enum flow_block_command command;
enum flow_block_binder_type binder_type;
struct list_head *cb_list;
};
struct flow_offload_action {
struct netlink_ext_ack *extack;
enum offload_act_command command;
enum flow_action_id id;
u32 index;
unsigned long cookie;
struct flow_stats stats;
struct flow_action action;
};
struct flow_match_meta {
struct flow_dissector_key_meta *key;
struct flow_dissector_key_meta *mask;
};
struct flow_match_basic {
struct flow_dissector_key_basic *key;
struct flow_dissector_key_basic *mask;
};
struct flow_match_control {
struct flow_dissector_key_control *key;
struct flow_dissector_key_control *mask;
};
struct flow_match_eth_addrs {
struct flow_dissector_key_eth_addrs *key;
struct flow_dissector_key_eth_addrs *mask;
};
struct flow_match_vlan {
struct flow_dissector_key_vlan *key;
struct flow_dissector_key_vlan *mask;
};
struct flow_dissector_key_arp;
struct flow_match_arp {
struct flow_dissector_key_arp *key;
struct flow_dissector_key_arp *mask;
};
struct flow_dissector_key_arp {
__u32 sip;
__u32 tip;
__u8 op;
unsigned char sha[6];
unsigned char tha[6];
};
struct flow_match_ipv4_addrs {
struct flow_dissector_key_ipv4_addrs *key;
struct flow_dissector_key_ipv4_addrs *mask;
};
struct flow_match_ipv6_addrs {
struct flow_dissector_key_ipv6_addrs *key;
struct flow_dissector_key_ipv6_addrs *mask;
};
struct flow_match_ip {
struct flow_dissector_key_ip *key;
struct flow_dissector_key_ip *mask;
};
struct flow_match_ports {
struct flow_dissector_key_ports *key;
struct flow_dissector_key_ports *mask;
};
struct flow_dissector_key_ports_range;
struct flow_match_ports_range {
struct flow_dissector_key_ports_range *key;
struct flow_dissector_key_ports_range *mask;
};
struct flow_dissector_key_ports_range {
union {
struct flow_dissector_key_ports tp;
struct {
struct flow_dissector_key_ports tp_min;
struct flow_dissector_key_ports tp_max;
};
};
};
struct flow_match_tcp {
struct flow_dissector_key_tcp *key;
struct flow_dissector_key_tcp *mask;
};
struct flow_dissector_key_ipsec;
struct flow_match_ipsec {
struct flow_dissector_key_ipsec *key;
struct flow_dissector_key_ipsec *mask;
};
struct flow_dissector_key_ipsec {
__be32 spi;
};
struct flow_match_icmp {
struct flow_dissector_key_icmp *key;
struct flow_dissector_key_icmp *mask;
};
struct flow_dissector_key_mpls;
struct flow_match_mpls {
struct flow_dissector_key_mpls *key;
struct flow_dissector_key_mpls *mask;
};
struct flow_dissector_mpls_lse {
u32 mpls_ttl: 8;
u32 mpls_bos: 1;
u32 mpls_tc: 3;
u32 mpls_label: 20;
};
struct flow_dissector_key_mpls {
struct flow_dissector_mpls_lse ls[7];
u8 used_lses;
};
struct flow_match_enc_keyid {
struct flow_dissector_key_keyid *key;
struct flow_dissector_key_keyid *mask;
};
struct flow_dissector_key_enc_opts;
struct flow_match_enc_opts {
struct flow_dissector_key_enc_opts *key;
struct flow_dissector_key_enc_opts *mask;
};
struct flow_dissector_key_enc_opts {
u8 data[255];
u8 len;
__be16 dst_opt_type;
};
struct flow_dissector_key_ct;
struct flow_match_ct {
struct flow_dissector_key_ct *key;
struct flow_dissector_key_ct *mask;
};
struct flow_dissector_key_ct {
u16 ct_state;
u16 ct_zone;
u32 ct_mark;
u32 ct_labels[4];
};
struct flow_dissector_key_pppoe;
struct flow_match_pppoe {
struct flow_dissector_key_pppoe *key;
struct flow_dissector_key_pppoe *mask;
};
struct flow_dissector_key_pppoe {
__be16 session_id;
__be16 ppp_proto;
__be16 type;
};
struct flow_dissector_key_l2tpv3;
struct flow_match_l2tpv3 {
struct flow_dissector_key_l2tpv3 *key;
struct flow_dissector_key_l2tpv3 *mask;
};
struct flow_dissector_key_l2tpv3 {
__be32 session_id;
};
enum {
ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0,
ETHTOOL_A_MODULE_EEPROM_HEADER = 1,
ETHTOOL_A_MODULE_EEPROM_OFFSET = 2,
ETHTOOL_A_MODULE_EEPROM_LENGTH = 3,
ETHTOOL_A_MODULE_EEPROM_PAGE = 4,
ETHTOOL_A_MODULE_EEPROM_BANK = 5,
ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6,
ETHTOOL_A_MODULE_EEPROM_DATA = 7,
__ETHTOOL_A_MODULE_EEPROM_CNT = 8,
ETHTOOL_A_MODULE_EEPROM_MAX = 7,
};
struct eeprom_req_info {
struct ethnl_req_info base;
u32 offset;
u32 length;
u8 page;
u8 bank;
u8 i2c_address;
};
struct eeprom_reply_data {
struct ethnl_reply_data base;
u32 length;
u8 *data;
};
enum {
NFTA_COMPAT_UNSPEC = 0,
NFTA_COMPAT_NAME = 1,
NFTA_COMPAT_REV = 2,
NFTA_COMPAT_TYPE = 3,
__NFTA_COMPAT_MAX = 4,
};
enum {
NFNL_MSG_COMPAT_GET = 0,
NFNL_MSG_COMPAT_MAX = 1,
};
enum nft_target_attributes {
NFTA_TARGET_UNSPEC = 0,
NFTA_TARGET_NAME = 1,
NFTA_TARGET_REV = 2,
NFTA_TARGET_INFO = 3,
__NFTA_TARGET_MAX = 4,
};
enum nft_rule_attributes {
NFTA_RULE_UNSPEC = 0,
NFTA_RULE_TABLE = 1,
NFTA_RULE_CHAIN = 2,
NFTA_RULE_HANDLE = 3,
NFTA_RULE_EXPRESSIONS = 4,
NFTA_RULE_COMPAT = 5,
NFTA_RULE_POSITION = 6,
NFTA_RULE_USERDATA = 7,
NFTA_RULE_PAD = 8,
NFTA_RULE_ID = 9,
NFTA_RULE_POSITION_ID = 10,
NFTA_RULE_CHAIN_ID = 11,
__NFTA_RULE_MAX = 12,
};
enum nft_rule_compat_attributes {
NFTA_RULE_COMPAT_UNSPEC = 0,
NFTA_RULE_COMPAT_PROTO = 1,
NFTA_RULE_COMPAT_FLAGS = 2,
__NFTA_RULE_COMPAT_MAX = 3,
};
enum nft_rule_compat_flags {
NFT_RULE_COMPAT_F_UNUSED = 1,
NFT_RULE_COMPAT_F_INV = 2,
NFT_RULE_COMPAT_F_MASK = 2,
};
enum nft_match_attributes {
NFTA_MATCH_UNSPEC = 0,
NFTA_MATCH_NAME = 1,
NFTA_MATCH_REV = 2,
NFTA_MATCH_INFO = 3,
__NFTA_MATCH_MAX = 4,
};
struct ipt_ip {
struct in_addr src;
struct in_addr dst;
struct in_addr smsk;
struct in_addr dmsk;
char iniface[16];
char outiface[16];
unsigned char iniface_mask[16];
unsigned char outiface_mask[16];
__u16 proto;
__u8 flags;
__u8 invflags;
};
struct xt_counters {
__u64 pcnt;
__u64 bcnt;
};
struct ipt_entry {
struct ipt_ip ip;
unsigned int nfcache;
__u16 target_offset;
__u16 next_offset;
unsigned int comefrom;
struct xt_counters counters;
unsigned char elems[0];
};
struct ip6t_ip6 {
struct in6_addr src;
struct in6_addr dst;
struct in6_addr smsk;
struct in6_addr dmsk;
char iniface[16];
char outiface[16];
unsigned char iniface_mask[16];
unsigned char outiface_mask[16];
__u16 proto;
__u8 tos;
__u8 flags;
__u8 invflags;
};
struct ip6t_entry {
struct ip6t_ip6 ipv6;
unsigned int nfcache;
__u16 target_offset;
__u16 next_offset;
unsigned int comefrom;
struct xt_counters counters;
unsigned char elems[0];
};
struct ebt_entry {
unsigned int bitmask;
unsigned int invflags;
__be16 ethproto;
char in[16];
char logical_in[16];
char out[16];
char logical_out[16];
unsigned char sourcemac[6];
unsigned char sourcemsk[6];
unsigned char destmac[6];
unsigned char destmsk[6];
union {
struct {
unsigned int watchers_offset;
unsigned int target_offset;
unsigned int next_offset;
};
struct {
unsigned int watchers_offset;
unsigned int target_offset;
unsigned int next_offset;
} offsets;
};
unsigned char elems[0];
};
struct arpt_devaddr_info {
char addr[16];
char mask[16];
};
struct arpt_arp {
struct in_addr src;
struct in_addr tgt;
struct in_addr smsk;
struct in_addr tmsk;
__u8 arhln;
__u8 arhln_mask;
struct arpt_devaddr_info src_devaddr;
struct arpt_devaddr_info tgt_devaddr;
__be16 arpop;
__be16 arpop_mask;
__be16 arhrd;
__be16 arhrd_mask;
__be16 arpro;
__be16 arpro_mask;
char iniface[16];
char outiface[16];
unsigned char iniface_mask[16];
unsigned char outiface_mask[16];
__u8 flags;
__u16 invflags;
};
struct arpt_entry {
struct arpt_arp arp;
__u16 target_offset;
__u16 next_offset;
unsigned int comefrom;
struct xt_counters counters;
unsigned char elems[0];
};
union nft_entry {
struct ipt_entry e4;
struct ip6t_entry e6;
struct ebt_entry ebt;
struct arpt_entry arp;
};
struct nft_xt_match_priv {
void *info;
};
struct nf_defrag_hook {
struct module *owner;
int (*enable)(struct net *);
void (*disable)(struct net *);
};
struct nf_queue_entry;
struct nf_ipv6_ops {
void (*route_input)(struct sk_buff *);
int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
int (*reroute)(struct sk_buff *, const struct nf_queue_entry *);
};
struct nf_queue_entry {
struct list_head list;
struct sk_buff *skb;
unsigned int id;
unsigned int hook_index;
struct net_device *physin;
struct net_device *physout;
struct nf_hook_state state;
u16 size;
};
struct ip6_fraglist_iter {
struct ipv6hdr *tmp_hdr;
struct sk_buff *frag;
int offset;
unsigned int hlen;
__be32 frag_id;
u8 nexthdr;
};
struct ip6_frag_state {
u8 *prevhdr;
unsigned int hlen;
unsigned int mtu;
unsigned int left;
int offset;
int ptr;
int hroom;
int troom;
__be32 frag_id;
u8 nexthdr;
};
struct nf_bridge_frag_data;
struct ip6_rt_info {
struct in6_addr daddr;
struct in6_addr saddr;
u_int32_t mark;
};
union cpuid_0x80000022_ebx {
struct {
unsigned int num_core_pmc: 4;
unsigned int lbr_v2_stack_sz: 6;
unsigned int num_df_pmc: 6;
unsigned int num_umc_pmc: 6;
} split;
unsigned int full;
};
struct efi_runtime_map_entry {
efi_memory_desc_t md;
struct kobject kobj;
};
struct map_attribute {
struct attribute attr;
ssize_t (*show)(struct efi_runtime_map_entry *, char *);
};
typedef void (*btf_trace_notifier_register)(void *, void *);
typedef void (*btf_trace_notifier_unregister)(void *, void *);
typedef void (*btf_trace_notifier_run)(void *, void *);
struct trace_event_raw_notifier_info {
struct trace_entry ent;
void *cb;
char __data[0];
};
struct trace_event_data_offsets_notifier_info {};
struct tracer_stat;
struct stat_session {
struct list_head session_list;
struct tracer_stat *ts;
struct rb_root stat_root;
struct mutex stat_mutex;
struct dentry *file;
};
struct tracer_stat {
const char *name;
void * (*stat_start)(struct tracer_stat *);
void * (*stat_next)(void *, int);
cmp_func_t stat_cmp;
int (*stat_show)(struct seq_file *, void *);
void (*stat_release)(void *);
int (*stat_headers)(struct seq_file *);
};
struct stat_node {
struct rb_node node;
void *stat;
};
typedef void (*btf_trace_rseq_update)(void *, struct task_struct *);
typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
enum rseq_cs_flags {
RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT = 1,
RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL = 2,
RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE = 4,
};
enum rseq_flags {
RSEQ_FLAG_UNREGISTER = 1,
};
enum rseq_cpu_id_state {
RSEQ_CPU_ID_UNINITIALIZED = -1,
RSEQ_CPU_ID_REGISTRATION_FAILED = -2,
};
struct trace_event_raw_rseq_update {
struct trace_entry ent;
s32 cpu_id;
s32 node_id;
s32 mm_cid;
char __data[0];
};
struct trace_event_raw_rseq_ip_fixup {
struct trace_entry ent;
unsigned long regs_ip;
unsigned long start_ip;
unsigned long post_commit_offset;
unsigned long abort_ip;
char __data[0];
};
struct rseq_cs {
__u32 version;
__u32 flags;
__u64 start_ip;
__u64 post_commit_offset;
__u64 abort_ip;
};
struct trace_event_data_offsets_rseq_update {};
struct trace_event_data_offsets_rseq_ip_fixup {};
enum kernfs_node_flag {
KERNFS_ACTIVATED = 16,
KERNFS_NS = 32,
KERNFS_HAS_SEQ_SHOW = 64,
KERNFS_HAS_MMAP = 128,
KERNFS_LOCKDEP = 256,
KERNFS_HIDDEN = 512,
KERNFS_SUICIDAL = 1024,
KERNFS_SUICIDED = 2048,
KERNFS_EMPTY_DIR = 4096,
KERNFS_HAS_RELEASE = 8192,
KERNFS_REMOVING = 16384,
};
enum {
EXT4_FC_STATUS_OK = 0,
EXT4_FC_STATUS_INELIGIBLE = 1,
EXT4_FC_STATUS_SKIPPED = 2,
EXT4_FC_STATUS_FAILED = 3,
};
struct ext4_fc_dentry_update {
int fcd_op;
int fcd_parent;
int fcd_ino;
struct qstr fcd_name;
unsigned char fcd_iname[40];
struct list_head fcd_list;
struct list_head fcd_dilist;
};
struct __track_dentry_update_args {
struct dentry *dentry;
int op;
};
struct __track_range_args {
ext4_lblk_t start;
ext4_lblk_t end;
};
struct ext4_inode {
__le16 i_mode;
__le16 i_uid;
__le32 i_size_lo;
__le32 i_atime;
__le32 i_ctime;
__le32 i_mtime;
__le32 i_dtime;
__le16 i_gid;
__le16 i_links_count;
__le32 i_blocks_lo;
__le32 i_flags;
union {
struct {
__le32 l_i_version;
} linux1;
struct {
__u32 h_i_translator;
} hurd1;
struct {
__u32 m_i_reserved1;
} masix1;
} osd1;
__le32 i_block[15];
__le32 i_generation;
__le32 i_file_acl_lo;
__le32 i_size_high;
__le32 i_obso_faddr;
union {
struct {
__le16 l_i_blocks_high;
__le16 l_i_file_acl_high;
__le16 l_i_uid_high;
__le16 l_i_gid_high;
__le16 l_i_checksum_lo;
__le16 l_i_reserved;
} linux2;
struct {
__le16 h_i_reserved1;
__u16 h_i_mode_high;
__u16 h_i_uid_high;
__u16 h_i_gid_high;
__u32 h_i_author;
} hurd2;
struct {
__le16 h_i_reserved1;
__le16 m_i_file_acl_high;
__u32 m_i_reserved2[2];
} masix2;
} osd2;
__le16 i_extra_isize;
__le16 i_checksum_hi;
__le32 i_ctime_extra;
__le32 i_mtime_extra;
__le32 i_atime_extra;
__le32 i_crtime;
__le32 i_crtime_extra;
__le32 i_version_hi;
__le32 i_projid;
};
struct ext4_fc_tl {
__le16 fc_tag;
__le16 fc_len;
};
struct ext4_fc_head {
__le32 fc_features;
__le32 fc_tid;
};
struct ext4_fc_dentry_info {
__le32 fc_parent_ino;
__le32 fc_ino;
__u8 fc_dname[0];
};
struct ext4_fc_tail {
__le32 fc_tid;
__le32 fc_crc;
};
struct ext4_fc_add_range {
__le32 fc_ino;
__u8 fc_ex[12];
};
struct ext4_fc_tl_mem {
u16 fc_tag;
u16 fc_len;
};
struct dentry_info_args {
int parent_ino;
int dname_len;
int ino;
int inode_len;
char *dname;
};
struct ext4_fc_del_range {
__le32 fc_ino;
__le32 fc_lblk;
__le32 fc_len;
};
struct ext4_fc_inode {
__le32 fc_ino;
__u8 fc_raw_inode[0];
};
enum btrfs_inline_ref_type {
BTRFS_REF_TYPE_INVALID = 0,
BTRFS_REF_TYPE_BLOCK = 1,
BTRFS_REF_TYPE_DATA = 2,
BTRFS_REF_TYPE_ANY = 3,
};
enum {
____TRANS_FREEZABLE_BIT = 0,
__TRANS_FREEZABLE = 1,
____TRANS_FREEZABLE_SEQ = 0,
____TRANS_START_BIT = 1,
__TRANS_START = 2,
____TRANS_START_SEQ = 1,
____TRANS_ATTACH_BIT = 2,
__TRANS_ATTACH = 4,
____TRANS_ATTACH_SEQ = 2,
____TRANS_JOIN_BIT = 3,
__TRANS_JOIN = 8,
____TRANS_JOIN_SEQ = 3,
____TRANS_JOIN_NOLOCK_BIT = 4,
__TRANS_JOIN_NOLOCK = 16,
____TRANS_JOIN_NOLOCK_SEQ = 4,
____TRANS_DUMMY_BIT = 5,
__TRANS_DUMMY = 32,
____TRANS_DUMMY_SEQ = 5,
____TRANS_JOIN_NOSTART_BIT = 6,
__TRANS_JOIN_NOSTART = 64,
____TRANS_JOIN_NOSTART_SEQ = 6,
};
enum btrfs_delayed_ref_action {
BTRFS_ADD_DELAYED_REF = 1,
BTRFS_DROP_DELAYED_REF = 2,
BTRFS_ADD_DELAYED_EXTENT = 3,
BTRFS_UPDATE_DELAYED_HEAD = 4,
} __attribute__((mode(byte)));
enum {
BTRFS_FILE_EXTENT_INLINE = 0,
BTRFS_FILE_EXTENT_REG = 1,
BTRFS_FILE_EXTENT_PREALLOC = 2,
BTRFS_NR_FILE_EXTENT_TYPES = 3,
};
struct btrfs_inode_extref {
__le64 parent_objectid;
__le64 index;
__le16 name_len;
__u8 name[0];
} __attribute__((packed));
struct btrfs_inode_ref {
__le64 index;
__le16 name_len;
} __attribute__((packed));
struct btrfs_extent_item {
__le64 refs;
__le64 generation;
__le64 flags;
};
struct btrfs_tree_block_info {
struct btrfs_disk_key key;
__u8 level;
};
struct extent_inode_elem {
u64 inum;
u64 offset;
u64 num_bytes;
struct extent_inode_elem *next;
};
struct btrfs_extent_inline_ref {
__u8 type;
__le64 offset;
} __attribute__((packed));
struct btrfs_backref_node;
struct btrfs_backref_edge {
struct list_head list[2];
struct btrfs_backref_node *node[2];
};
struct btrfs_backref_node {
struct {
struct rb_node rb_node;
u64 bytenr;
};
u64 new_bytenr;
u64 owner;
struct list_head list;
struct list_head upper;
struct list_head lower;
struct btrfs_root *root;
struct extent_buffer *eb;
unsigned int level: 8;
unsigned int cowonly: 1;
unsigned int lowest: 1;
unsigned int locked: 1;
unsigned int processed: 1;
unsigned int checked: 1;
unsigned int pending: 1;
unsigned int detached: 1;
unsigned int is_reloc_root: 1;
};
struct prelim_ref {
struct rb_node rbnode;
u64 root_id;
struct btrfs_key key_for_search;
u8 level;
int count;
struct extent_inode_elem *inode_list;
u64 parent;
u64 wanted_disk_byte;
};
struct btrfs_delayed_ref_node {
struct rb_node ref_node;
struct list_head add_list;
u64 bytenr;
u64 num_bytes;
u64 seq;
refcount_t refs;
int ref_mod;
unsigned int action: 8;
unsigned int type: 8;
};
struct btrfs_delayed_tree_ref {
struct btrfs_delayed_ref_node node;
u64 root;
u64 parent;
int level;
};
struct btrfs_delayed_data_ref {
struct btrfs_delayed_ref_node node;
u64 root;
u64 parent;
u64 objectid;
u64 offset;
};
struct btrfs_shared_data_ref {
__le32 count;
};
struct btrfs_extent_data_ref {
__le64 root;
__le64 objectid;
__le64 offset;
__le32 count;
} __attribute__((packed));
struct btrfs_file_extent_item {
__le64 generation;
__le64 ram_bytes;
__u8 compression;
__u8 encryption;
__le16 other_encoding;
__u8 type;
__le64 disk_bytenr;
__le64 disk_num_bytes;
__le64 offset;
__le64 num_bytes;
} __attribute__((packed));
struct rb_simple_node {
struct rb_node rb_node;
u64 bytenr;
};
struct btrfs_delayed_extent_op;
struct btrfs_delayed_ref_head {
u64 bytenr;
u64 num_bytes;
struct rb_node href_node;
struct mutex mutex;
refcount_t refs;
spinlock_t lock;
struct rb_root_cached ref_tree;
struct list_head ref_add_list;
struct btrfs_delayed_extent_op *extent_op;
int total_ref_mod;
int ref_mod;
u64 owning_root;
u64 reserved_bytes;
bool must_insert_reserved;
bool is_data;
bool is_system;
bool processing;
};
struct btrfs_delayed_extent_op {
struct btrfs_disk_key key;
u8 level;
bool update_key;
bool update_flags;
u64 flags_to_set;
};
struct preftree {
struct rb_root_cached root;
unsigned int count;
};
struct preftrees {
struct preftree direct;
struct preftree indirect;
struct preftree indirect_missing_keys;
};
struct btrfs_backref_share_check_ctx;
struct share_check {
struct btrfs_backref_share_check_ctx *ctx;
struct btrfs_root *root;
u64 inum;
u64 data_bytenr;
u64 data_extent_gen;
int share_count;
int self_ref_count;
bool have_delayed_delete_refs;
};
struct btrfs_backref_shared_cache_entry {
u64 bytenr;
u64 gen;
bool is_shared;
};
struct btrfs_backref_share_check_ctx {
struct ulist refs;
u64 curr_leaf_bytenr;
u64 prev_leaf_bytenr;
struct btrfs_backref_shared_cache_entry path_cache_entries[8];
bool use_path_cache;
struct {
u64 bytenr;
bool is_shared;
} prev_extents_cache[8];
int prev_extents_cache_slot;
};
typedef int iterate_extent_inodes_t(u64, u64, u64, u64, void *);
struct btrfs_backref_walk_ctx {
u64 bytenr;
u64 extent_item_pos;
bool ignore_extent_item_pos;
bool skip_inode_ref_list;
struct btrfs_trans_handle *trans;
struct btrfs_fs_info *fs_info;
u64 time_seq;
struct ulist *refs;
struct ulist *roots;
bool (*cache_lookup)(u64, void *, const u64 **, int *);
void (*cache_store)(u64, const struct ulist *, void *);
iterate_extent_inodes_t *indirect_ref_iterator;
int (*check_extent_item)(u64, const struct btrfs_extent_item *, const struct extent_buffer *, void *);
bool (*skip_data_ref)(u64, u64, u64, void *);
void *user_ctx;
};
struct btrfs_data_container;
struct inode_fs_paths {
struct btrfs_path *btrfs_path;
struct btrfs_root *fs_root;
struct btrfs_data_container *fspath;
};
struct btrfs_data_container {
__u32 bytes_left;
__u32 bytes_missing;
__u32 elem_cnt;
__u32 elem_missed;
__u64 val[0];
};
struct btrfs_backref_iter {
u64 bytenr;
struct btrfs_path *path;
struct btrfs_fs_info *fs_info;
struct btrfs_key cur_key;
u32 item_ptr;
u32 cur_ptr;
u32 end_ptr;
};
struct btrfs_backref_cache {
struct rb_root rb_root;
struct btrfs_backref_node *path[8];
struct list_head pending[8];
struct list_head leaves;
struct list_head changed;
struct list_head detached;
u64 last_trans;
int nr_nodes;
int nr_edges;
struct list_head pending_edge;
struct list_head useless_node;
struct btrfs_fs_info *fs_info;
bool is_reloc;
};
enum {
DIO_SHOULD_DIRTY = 1,
DIO_IS_SYNC = 2,
};
struct blkdev_dio {
union {
struct kiocb *iocb;
struct task_struct *waiter;
};
size_t size;
atomic_t ref;
unsigned int flags;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct bio bio;
long: 64;
};
struct acpi_signal_fatal_info {
u32 type;
u32 code;
u32 argument;
};
struct acpi_gpe_block_status_context {
struct acpi_gpe_register_info *gpe_skip_register_info;
u8 gpe_skip_mask;
u8 retval;
};
struct kbdiacruc {
unsigned int diacr;
unsigned int base;
unsigned int result;
};
struct uni_pagedict {
u16 **uni_pgdir[32];
unsigned long refcount;
unsigned long sum;
unsigned char *inverse_translations[4];
u16 *inverse_trans_unicode;
};
typedef unsigned short u_short;
struct unipair {
unsigned short unicode;
unsigned short fontpos;
};
struct dev_pm_domain_attach_data {
const char * const *pd_names;
const u32 num_pd_names;
const u32 pd_flags;
};
struct dev_pm_domain_list {
struct device **pd_devs;
struct device_link **pd_links;
u32 num_pds;
};
struct e1000_opt_list {
int i;
char *str;
};
struct e1000_option {
enum {
enable_option = 0,
range_option = 1,
list_option = 2,
} type;
const char *name;
const char *err;
int def;
union {
struct {
int min;
int max;
} r;
struct {
int nr;
const struct e1000_opt_list *p;
} l;
} arg;
};
enum {
e1000_10_half = 0,
e1000_10_full = 1,
e1000_100_half = 2,
e1000_100_full = 3,
};
struct iwl_fw_channel_info {
__le32 channel;
u8 band;
u8 width;
u8 ctrl_pos;
u8 reserved;
};
struct iwl_phy_context_cmd {
__le32 id_and_color;
__le32 action;
struct iwl_fw_channel_info ci;
__le32 lmac_id;
union {
__le32 rxchain_info;
struct {
u8 sbb_bandwidth;
u8 sbb_ctrl_channel_loc;
__le16 puncture_mask;
};
};
__le32 dsp_cfg_flags;
__le32 reserved;
};
struct iwl_fw_channel_info_v1 {
u8 band;
u8 channel;
u8 width;
u8 ctrl_pos;
};
struct iwl_phy_context_cmd_tail {
__le32 txchain_info;
__le32 rxchain_info;
__le32 acquisition_data;
__le32 dsp_cfg_flags;
};
struct iwl_phy_context_cmd_v1 {
__le32 id_and_color;
__le32 action;
__le32 apply_time;
__le32 tx_param_color;
struct iwl_fw_channel_info ci;
struct iwl_phy_context_cmd_tail tail;
};
struct iwl_rlc_properties {
__le32 rx_chain_info;
__le32 reserved;
};
struct iwl_sad_properties {
__le32 chain_a_sad_mode;
__le32 chain_b_sad_mode;
__le32 mac_id;
__le32 reserved;
};
struct iwl_rlc_config_cmd {
__le32 phy_id;
struct iwl_rlc_properties rlc;
struct iwl_sad_properties sad;
u8 flags;
u8 reserved[3];
};
enum rtw_wow_flags {
RTW_WOW_FLAG_EN_MAGIC_PKT = 0,
RTW_WOW_FLAG_EN_REKEY_PKT = 1,
RTW_WOW_FLAG_EN_DISCONNECT = 2,
RTW_WOW_FLAG_MAX = 3,
};
enum rtw_wow_pattern_type {
RTW_PATTERN_BROADCAST = 0,
RTW_PATTERN_MULTICAST = 1,
RTW_PATTERN_UNICAST = 2,
RTW_PATTERN_VALID = 3,
RTW_PATTERN_INVALID = 4,
};
enum rtw_hw_key_type {
RTW_CAM_NONE = 0,
RTW_CAM_WEP40 = 1,
RTW_CAM_TKIP = 2,
RTW_CAM_AES = 4,
RTW_CAM_WEP104 = 5,
};
enum rtw_wake_reason {
RTW_WOW_RSN_RX_PTK_REKEY = 1,
RTW_WOW_RSN_RX_GTK_REKEY = 2,
RTW_WOW_RSN_RX_DEAUTH = 8,
RTW_WOW_RSN_DISCONNECT = 16,
RTW_WOW_RSN_RX_MAGIC_PKT = 33,
RTW_WOW_RSN_RX_PATTERN_MATCH = 35,
RTW_WOW_RSN_RX_NLO = 85,
};
struct rtw_fw_media_status_iter_data {
struct rtw_dev *rtwdev;
u8 connect;
};
struct rtw_fw_key_type_iter_data {
struct rtw_dev *rtwdev;
u8 group_key_type;
u8 pairwise_key_type;
};
struct cfg80211_wowlan_nd_match;
struct cfg80211_wowlan_nd_info {
int n_matches;
struct cfg80211_wowlan_nd_match *matches[0];
};
struct cfg80211_wowlan_nd_match {
struct cfg80211_ssid ssid;
int n_channels;
u32 channels[0];
};
struct cfg80211_wowlan_wakeup {
bool disconnect;
bool magic_pkt;
bool gtk_rekey_failure;
bool eap_identity_req;
bool four_way_handshake;
bool rfkill_release;
bool packet_80211;
bool tcp_match;
bool tcp_connlost;
bool tcp_nomoretokens;
bool unprot_deauth_disassoc;
s32 pattern_idx;
u32 packet_present_len;
u32 packet_len;
const void *packet;
struct cfg80211_wowlan_nd_info *net_detect;
};
enum {
POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0,
POWER_SUPPLY_TECHNOLOGY_NiMH = 1,
POWER_SUPPLY_TECHNOLOGY_LION = 2,
POWER_SUPPLY_TECHNOLOGY_LIPO = 3,
POWER_SUPPLY_TECHNOLOGY_LiFe = 4,
POWER_SUPPLY_TECHNOLOGY_NiCd = 5,
POWER_SUPPLY_TECHNOLOGY_LiMn = 6,
};
enum {
POWER_SUPPLY_SCOPE_UNKNOWN = 0,
POWER_SUPPLY_SCOPE_SYSTEM = 1,
POWER_SUPPLY_SCOPE_DEVICE = 2,
};
enum power_supply_notifier_events {
PSY_EVENT_PROP_CHANGED = 0,
};
struct psy_am_i_supplied_data {
struct power_supply *psy;
unsigned int count;
};
struct psy_get_supplier_prop_data {
struct power_supply *psy;
enum power_supply_property psp;
union power_supply_propval *val;
};
struct power_supply_config {
struct device_node *of_node;
struct fwnode_handle *fwnode;
void *drv_data;
const struct attribute_group **attr_grp;
char **supplied_to;
size_t num_supplicants;
};
struct cpu_dbs_info {
u64 prev_cpu_idle;
u64 prev_update_time;
u64 prev_cpu_nice;
unsigned int prev_load;
struct update_util_data update_util;
struct policy_dbs_info *policy_dbs;
};
struct pcc_chan_reg {
void *vaddr;
struct acpi_generic_address *gas;
u64 preserve_mask;
u64 set_mask;
u64 status_mask;
};
struct pcc_chan_info {
struct pcc_mbox_chan chan;
struct pcc_chan_reg db;
struct pcc_chan_reg plat_irq_ack;
struct pcc_chan_reg cmd_complete;
struct pcc_chan_reg cmd_update;
struct pcc_chan_reg error;
int plat_irq;
u8 type;
unsigned int plat_irq_flags;
bool chan_in_use;
};
enum acpi_pcct_type {
ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2,
ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3,
ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4,
ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5,
ACPI_PCCT_TYPE_RESERVED = 6,
};
struct acpi_pcct_subspace {
struct acpi_subtable_header header;
u8 reserved[6];
u64 base_address;
u64 length;
struct acpi_generic_address doorbell_register;
u64 preserve_mask;
u64 write_mask;
u32 latency;
u32 max_access_rate;
u16 min_turnaround_time;
} __attribute__((packed));
struct acpi_table_pcct {
struct acpi_table_header header;
u32 flags;
u64 reserved;
};
struct acpi_pcct_hw_reduced {
struct acpi_subtable_header header;
u32 platform_interrupt;
u8 flags;
u8 reserved;
u64 base_address;
u64 length;
struct acpi_generic_address doorbell_register;
u64 preserve_mask;
u64 write_mask;
u32 latency;
u32 max_access_rate;
u16 min_turnaround_time;
} __attribute__((packed));
struct acpi_pcct_ext_pcc_master {
struct acpi_subtable_header header;
u32 platform_interrupt;
u8 flags;
u8 reserved1;
u64 base_address;
u32 length;
struct acpi_generic_address doorbell_register;
u64 preserve_mask;
u64 write_mask;
u32 latency;
u32 max_access_rate;
u32 min_turnaround_time;
struct acpi_generic_address platform_ack_register;
u64 ack_preserve_mask;
u64 ack_set_mask;
u64 reserved2;
struct acpi_generic_address cmd_complete_register;
u64 cmd_complete_mask;
struct acpi_generic_address cmd_update_register;
u64 cmd_update_preserve_mask;
u64 cmd_update_set_mask;
struct acpi_generic_address error_status_register;
u64 error_status_mask;
} __attribute__((packed));
struct acpi_pcct_hw_reduced_type2 {
struct acpi_subtable_header header;
u32 platform_interrupt;
u8 flags;
u8 reserved;
u64 base_address;
u64 length;
struct acpi_generic_address doorbell_register;
u64 preserve_mask;
u64 write_mask;
u32 latency;
u32 max_access_rate;
u16 min_turnaround_time;
struct acpi_generic_address platform_ack_register;
u64 ack_preserve_mask;
u64 ack_write_mask;
} __attribute__((packed));
typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason);
typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *);
typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int);
typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *);
typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int);
typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int);
typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *);
typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *);
typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *);
typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *);
typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *);
typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *);
typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *);
typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *);
typedef void (*btf_trace_napi_gro_frags_exit)(void *, int);
typedef void (*btf_trace_napi_gro_receive_exit)(void *, int);
typedef void (*btf_trace_netif_receive_skb_exit)(void *, int);
typedef void (*btf_trace_netif_rx_exit)(void *, int);
typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int);
typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int);
typedef void (*btf_trace_dql_stall_detected)(void *, unsigned short, unsigned int, unsigned long, unsigned long, unsigned long, unsigned long *);
typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *);
typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int);
typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int);
typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *);
typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *);
typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int);
typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int);
typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *);
typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *);
typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *);
typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *);
typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *);
typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *);
typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *);
typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *);
typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *);
typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8);
typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int);
typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *);
typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *);
typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *);
typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *);
typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32);
typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16);
typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16);
typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *);
typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, unsigned long);
typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *);
typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32);
typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32);
typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32);
typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int);
typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool);
typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32);
typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int);
typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int);
typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int);
typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int);
typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int);
struct trace_event_raw_kfree_skb {
struct trace_entry ent;
void *skbaddr;
void *location;
unsigned short protocol;
enum skb_drop_reason reason;
char __data[0];
};
struct trace_event_raw_consume_skb {
struct trace_entry ent;
void *skbaddr;
void *location;
char __data[0];
};
struct trace_event_raw_skb_copy_datagram_iovec {
struct trace_entry ent;
const void *skbaddr;
int len;
char __data[0];
};
struct trace_event_raw_net_dev_start_xmit {
struct trace_entry ent;
u32 __data_loc_name;
u16 queue_mapping;
const void *skbaddr;
bool vlan_tagged;
u16 vlan_proto;
u16 vlan_tci;
u16 protocol;
u8 ip_summed;
unsigned int len;
unsigned int data_len;
int network_offset;
bool transport_offset_valid;
int transport_offset;
u8 tx_flags;
u16 gso_size;
u16 gso_segs;
u16 gso_type;
char __data[0];
};
struct trace_event_raw_net_dev_xmit {
struct trace_entry ent;
void *skbaddr;
unsigned int len;
int rc;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_net_dev_xmit_timeout {
struct trace_entry ent;
u32 __data_loc_name;
u32 __data_loc_driver;
int queue_index;
char __data[0];
};
struct trace_event_raw_net_dev_template {
struct trace_entry ent;
void *skbaddr;
unsigned int len;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_net_dev_rx_verbose_template {
struct trace_entry ent;
u32 __data_loc_name;
unsigned int napi_id;
u16 queue_mapping;
const void *skbaddr;
bool vlan_tagged;
u16 vlan_proto;
u16 vlan_tci;
u16 protocol;
u8 ip_summed;
u32 hash;
bool l4_hash;
unsigned int len;
unsigned int data_len;
unsigned int truesize;
bool mac_header_valid;
int mac_header;
unsigned char nr_frags;
u16 gso_size;
u16 gso_type;
char __data[0];
};
struct trace_event_raw_net_dev_rx_exit_template {
struct trace_entry ent;
int ret;
char __data[0];
};
struct trace_event_raw_napi_poll {
struct trace_entry ent;
struct napi_struct *napi;
u32 __data_loc_dev_name;
int work;
int budget;
char __data[0];
};
struct trace_event_raw_dql_stall_detected {
struct trace_entry ent;
unsigned short thrs;
unsigned int len;
unsigned long last_reap;
unsigned long hist_head;
unsigned long now;
unsigned long hist[4];
char __data[0];
};
struct trace_event_raw_sock_rcvqueue_full {
struct trace_entry ent;
int rmem_alloc;
unsigned int truesize;
int sk_rcvbuf;
char __data[0];
};
struct trace_event_raw_sock_exceed_buf_limit {
struct trace_entry ent;
char name[32];
long sysctl_mem[3];
long allocated;
int sysctl_rmem;
int rmem_alloc;
int sysctl_wmem;
int wmem_alloc;
int wmem_queued;
int kind;
char __data[0];
};
struct trace_event_raw_inet_sock_set_state {
struct trace_entry ent;
const void *skaddr;
int oldstate;
int newstate;
__u16 sport;
__u16 dport;
__u16 family;
__u16 protocol;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
char __data[0];
};
struct trace_event_raw_inet_sk_error_report {
struct trace_entry ent;
int error;
__u16 sport;
__u16 dport;
__u16 family;
__u16 protocol;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
char __data[0];
};
struct trace_event_raw_sk_data_ready {
struct trace_entry ent;
const void *skaddr;
__u16 family;
__u16 protocol;
unsigned long ip;
char __data[0];
};
struct trace_event_raw_sock_msg_length {
struct trace_entry ent;
void *sk;
__u16 family;
__u16 protocol;
int ret;
int flags;
char __data[0];
};
struct trace_event_raw_udp_fail_queue_rcv_skb {
struct trace_entry ent;
int rc;
__u16 lport;
char __data[0];
};
struct trace_event_raw_tcp_event_sk_skb {
struct trace_entry ent;
const void *skbaddr;
const void *skaddr;
int state;
__u16 sport;
__u16 dport;
__u16 family;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
char __data[0];
};
struct trace_event_raw_tcp_event_sk {
struct trace_entry ent;
const void *skaddr;
__u16 sport;
__u16 dport;
__u16 family;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
__u64 sock_cookie;
char __data[0];
};
struct trace_event_raw_tcp_retransmit_synack {
struct trace_entry ent;
const void *skaddr;
const void *req;
__u16 sport;
__u16 dport;
__u16 family;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
char __data[0];
};
struct trace_event_raw_tcp_probe {
struct trace_entry ent;
__u8 saddr[28];
__u8 daddr[28];
__u16 sport;
__u16 dport;
__u16 family;
__u32 mark;
__u16 data_len;
__u32 snd_nxt;
__u32 snd_una;
__u32 snd_cwnd;
__u32 ssthresh;
__u32 snd_wnd;
__u32 srtt;
__u32 rcv_wnd;
__u64 sock_cookie;
const void *skbaddr;
const void *skaddr;
char __data[0];
};
struct trace_event_raw_tcp_event_skb {
struct trace_entry ent;
const void *skbaddr;
__u8 saddr[28];
__u8 daddr[28];
char __data[0];
};
struct trace_event_raw_tcp_cong_state_set {
struct trace_entry ent;
const void *skaddr;
__u16 sport;
__u16 dport;
__u16 family;
__u8 saddr[4];
__u8 daddr[4];
__u8 saddr_v6[16];
__u8 daddr_v6[16];
__u8 cong_state;
char __data[0];
};
struct trace_event_raw_fib_table_lookup {
struct trace_entry ent;
u32 tb_id;
int err;
int oif;
int iif;
u8 proto;
__u8 tos;
__u8 scope;
__u8 flags;
__u8 src[4];
__u8 dst[4];
__u8 gw4[4];
__u8 gw6[16];
u16 sport;
u16 dport;
char name[16];
char __data[0];
};
struct trace_event_raw_qdisc_dequeue {
struct trace_entry ent;
struct Qdisc *qdisc;
const struct netdev_queue *txq;
int packets;
void *skbaddr;
int ifindex;
u32 handle;
u32 parent;
unsigned long txq_state;
char __data[0];
};
struct trace_event_raw_qdisc_enqueue {
struct trace_entry ent;
struct Qdisc *qdisc;
const struct netdev_queue *txq;
void *skbaddr;
int ifindex;
u32 handle;
u32 parent;
char __data[0];
};
struct trace_event_raw_qdisc_reset {
struct trace_entry ent;
u32 __data_loc_dev;
u32 __data_loc_kind;
u32 parent;
u32 handle;
char __data[0];
};
struct trace_event_raw_qdisc_destroy {
struct trace_entry ent;
u32 __data_loc_dev;
u32 __data_loc_kind;
u32 parent;
u32 handle;
char __data[0];
};
struct trace_event_raw_qdisc_create {
struct trace_entry ent;
u32 __data_loc_dev;
u32 __data_loc_kind;
u32 parent;
char __data[0];
};
struct trace_event_raw_br_fdb_add {
struct trace_entry ent;
u8 ndm_flags;
u32 __data_loc_dev;
unsigned char addr[6];
u16 vid;
u16 nlh_flags;
char __data[0];
};
struct trace_event_raw_br_fdb_external_learn_add {
struct trace_entry ent;
u32 __data_loc_br_dev;
u32 __data_loc_dev;
unsigned char addr[6];
u16 vid;
char __data[0];
};
struct trace_event_raw_fdb_delete {
struct trace_entry ent;
u32 __data_loc_br_dev;
u32 __data_loc_dev;
unsigned char addr[6];
u16 vid;
char __data[0];
};
struct trace_event_raw_br_fdb_update {
struct trace_entry ent;
u32 __data_loc_br_dev;
u32 __data_loc_dev;
unsigned char addr[6];
u16 vid;
unsigned long flags;
char __data[0];
};
struct trace_event_raw_br_mdb_full {
struct trace_entry ent;
u32 __data_loc_dev;
int af;
u16 vid;
__u8 src[16];
__u8 grp[16];
__u8 grpmac[6];
char __data[0];
};
struct trace_event_raw_page_pool_release {
struct trace_entry ent;
const struct page_pool *pool;
s32 inflight;
u32 hold;
u32 release;
u64 cnt;
char __data[0];
};
struct trace_event_raw_page_pool_state_release {
struct trace_entry ent;
const struct page_pool *pool;
const struct page *page;
u32 release;
unsigned long pfn;
char __data[0];
};
struct trace_event_raw_page_pool_state_hold {
struct trace_entry ent;
const struct page_pool *pool;
const struct page *page;
u32 hold;
unsigned long pfn;
char __data[0];
};
struct trace_event_raw_page_pool_update_nid {
struct trace_entry ent;
const struct page_pool *pool;
int pool_nid;
int new_nid;
char __data[0];
};
struct trace_event_raw_neigh_create {
struct trace_entry ent;
u32 family;
u32 __data_loc_dev;
int entries;
u8 created;
u8 gc_exempt;
u8 primary_key4[4];
u8 primary_key6[16];
char __data[0];
};
struct trace_event_raw_neigh_update {
struct trace_entry ent;
u32 family;
u32 __data_loc_dev;
u8 lladdr[32];
u8 lladdr_len;
u8 flags;
u8 nud_state;
u8 type;
u8 dead;
int refcnt;
__u8 primary_key4[4];
__u8 primary_key6[16];
unsigned long confirmed;
unsigned long updated;
unsigned long used;
u8 new_lladdr[32];
u8 new_state;
u32 update_flags;
u32 pid;
char __data[0];
};
struct trace_event_raw_neigh__update {
struct trace_entry ent;
u32 family;
u32 __data_loc_dev;
u8 lladdr[32];
u8 lladdr_len;
u8 flags;
u8 nud_state;
u8 type;
u8 dead;
int refcnt;
__u8 primary_key4[4];
__u8 primary_key6[16];
unsigned long confirmed;
unsigned long updated;
unsigned long used;
u32 err;
char __data[0];
};
struct trace_event_data_offsets_net_dev_start_xmit {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_net_dev_xmit {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_net_dev_xmit_timeout {
u32 name;
const void *name_ptr_;
u32 driver;
const void *driver_ptr_;
};
struct trace_event_data_offsets_net_dev_template {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_net_dev_rx_verbose_template {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_napi_poll {
u32 dev_name;
const void *dev_name_ptr_;
};
struct trace_event_data_offsets_qdisc_reset {
u32 dev;
const void *dev_ptr_;
u32 kind;
const void *kind_ptr_;
};
struct trace_event_data_offsets_qdisc_destroy {
u32 dev;
const void *dev_ptr_;
u32 kind;
const void *kind_ptr_;
};
struct trace_event_data_offsets_qdisc_create {
u32 dev;
const void *dev_ptr_;
u32 kind;
const void *kind_ptr_;
};
struct trace_event_data_offsets_br_fdb_add {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_br_fdb_external_learn_add {
u32 br_dev;
const void *br_dev_ptr_;
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_fdb_delete {
u32 br_dev;
const void *br_dev_ptr_;
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_br_fdb_update {
u32 br_dev;
const void *br_dev_ptr_;
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_br_mdb_full {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_neigh_create {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_neigh_update {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_neigh__update {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_kfree_skb {};
struct trace_event_data_offsets_consume_skb {};
struct trace_event_data_offsets_skb_copy_datagram_iovec {};
struct trace_event_data_offsets_net_dev_rx_exit_template {};
struct trace_event_data_offsets_dql_stall_detected {};
struct trace_event_data_offsets_sock_rcvqueue_full {};
struct trace_event_data_offsets_sock_exceed_buf_limit {};
struct trace_event_data_offsets_inet_sock_set_state {};
struct trace_event_data_offsets_inet_sk_error_report {};
struct trace_event_data_offsets_sk_data_ready {};
struct trace_event_data_offsets_sock_msg_length {};
struct trace_event_data_offsets_udp_fail_queue_rcv_skb {};
struct trace_event_data_offsets_tcp_event_sk_skb {};
struct trace_event_data_offsets_tcp_event_sk {};
struct trace_event_data_offsets_tcp_retransmit_synack {};
struct trace_event_data_offsets_tcp_probe {};
struct trace_event_data_offsets_tcp_event_skb {};
struct trace_event_data_offsets_tcp_cong_state_set {};
struct trace_event_data_offsets_fib_table_lookup {};
struct trace_event_data_offsets_qdisc_dequeue {};
struct trace_event_data_offsets_qdisc_enqueue {};
struct trace_event_data_offsets_page_pool_release {};
struct trace_event_data_offsets_page_pool_state_release {};
struct trace_event_data_offsets_page_pool_state_hold {};
struct trace_event_data_offsets_page_pool_update_nid {};
enum pkt_hash_types {
PKT_HASH_TYPE_NONE = 0,
PKT_HASH_TYPE_L2 = 1,
PKT_HASH_TYPE_L3 = 2,
PKT_HASH_TYPE_L4 = 3,
};
enum {
LWTUNNEL_XMIT_DONE = 0,
LWTUNNEL_XMIT_CONTINUE = 256,
};
struct mmpin {
struct user_struct *user;
unsigned int num_pg;
};
struct ubuf_info_msgzc {
struct ubuf_info ubuf;
union {
struct {
unsigned long desc;
void *ctx;
};
struct {
u32 id;
u16 len;
u16 zerocopy: 1;
u32 bytelen;
};
};
struct mmpin mmp;
};
struct ip_frag_state {
bool DF;
unsigned int hlen;
unsigned int ll_rs;
unsigned int mtu;
unsigned int left;
int offset;
int ptr;
__be16 not_last_frag;
};
struct ip_fraglist_iter {
struct sk_buff *frag;
struct iphdr *iph;
int offset;
unsigned int hlen;
};
struct ip_reply_arg {
struct kvec iov[1];
int flags;
__wsum csum;
int csumoffset;
int bound_dev_if;
u8 tos;
kuid_t uid;
};
struct ioam6_pernet_data {
struct mutex lock;
struct rhashtable namespaces;
struct rhashtable schemas;
};
enum ioam6_event_type {
IOAM6_EVENT_UNSPEC = 0,
IOAM6_EVENT_TRACE = 1,
};
struct rt0_hdr {
struct ipv6_rt_hdr rt_hdr;
__u32 reserved;
struct in6_addr addr[0];
};
struct ipv6_rpl_sr_hdr {
__u8 nexthdr;
__u8 hdrlen;
__u8 type;
__u8 segments_left;
__u32 cmpre: 4;
__u32 cmpri: 4;
__u32 reserved: 4;
__u32 pad: 4;
__u32 reserved1: 16;
union {
struct {
struct {} __empty_addr;
struct in6_addr addr[0];
};
struct {
struct {} __empty_data;
__u8 data[0];
};
} segments;
};
struct ioam6_hdr {
__u8 opt_type;
__u8 opt_len;
char: 8;
__u8 type;
};
struct ioam6_trace_hdr {
__be16 namespace_id;
char: 2;
__u8 overflow: 1;
__u8 nodelen: 5;
__u8 remlen: 7;
union {
__be32 type_be32;
struct {
__u32 bit7: 1;
__u32 bit6: 1;
__u32 bit5: 1;
__u32 bit4: 1;
__u32 bit3: 1;
__u32 bit2: 1;
__u32 bit1: 1;
__u32 bit0: 1;
__u32 bit15: 1;
__u32 bit14: 1;
__u32 bit13: 1;
__u32 bit12: 1;
__u32 bit11: 1;
__u32 bit10: 1;
__u32 bit9: 1;
__u32 bit8: 1;
__u32 bit23: 1;
__u32 bit22: 1;
__u32 bit21: 1;
__u32 bit20: 1;
__u32 bit19: 1;
__u32 bit18: 1;
__u32 bit17: 1;
__u32 bit16: 1;
} type;
};
__u8 data[0];
};
struct ioam6_schema;
struct ioam6_namespace {
struct rhash_head head;
struct callback_head rcu;
struct ioam6_schema __attribute__((btf_type_tag("rcu"))) *schema;
__be16 id;
__be32 data;
__be64 data_wide;
};
struct ioam6_schema {
struct rhash_head head;
struct callback_head rcu;
struct ioam6_namespace __attribute__((btf_type_tag("rcu"))) *ns;
u32 id;
int len;
__be32 hdr;
u8 data[0];
};
enum bss_param_flags {
BSS_PARAM_FLAGS_CTS_PROT = 1,
BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2,
BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4,
};
enum sta_stats_type {
STA_STATS_RATE_TYPE_INVALID = 0,
STA_STATS_RATE_TYPE_LEGACY = 1,
STA_STATS_RATE_TYPE_HT = 2,
STA_STATS_RATE_TYPE_VHT = 3,
STA_STATS_RATE_TYPE_HE = 4,
STA_STATS_RATE_TYPE_S1G = 5,
STA_STATS_RATE_TYPE_EHT = 6,
};
enum nl80211_tid_stats {
__NL80211_TID_STATS_INVALID = 0,
NL80211_TID_STATS_RX_MSDU = 1,
NL80211_TID_STATS_TX_MSDU = 2,
NL80211_TID_STATS_TX_MSDU_RETRIES = 3,
NL80211_TID_STATS_TX_MSDU_FAILED = 4,
NL80211_TID_STATS_PAD = 5,
NL80211_TID_STATS_TXQ_STATS = 6,
NUM_NL80211_TID_STATS = 7,
NL80211_TID_STATS_MAX = 6,
};
struct sta_link_alloc {
struct link_sta_info info;
struct ieee80211_link_sta sta;
struct callback_head callback_head;
};
enum {
PERF_BR_SPEC_NA = 0,
PERF_BR_SPEC_WRONG_PATH = 1,
PERF_BR_NON_SPEC_CORRECT_PATH = 2,
PERF_BR_SPEC_CORRECT_PATH = 3,
PERF_BR_SPEC_MAX = 4,
};
enum perf_branch_sample_type_shift {
PERF_SAMPLE_BRANCH_USER_SHIFT = 0,
PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1,
PERF_SAMPLE_BRANCH_HV_SHIFT = 2,
PERF_SAMPLE_BRANCH_ANY_SHIFT = 3,
PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4,
PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5,
PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6,
PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7,
PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8,
PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9,
PERF_SAMPLE_BRANCH_COND_SHIFT = 10,
PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11,
PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 12,
PERF_SAMPLE_BRANCH_CALL_SHIFT = 13,
PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14,
PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15,
PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16,
PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17,
PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18,
PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19,
PERF_SAMPLE_BRANCH_MAX_SHIFT = 20,
};
struct branch_entry {
union {
struct {
u64 ip: 58;
u64 ip_sign_ext: 5;
u64 mispredict: 1;
} split;
u64 full;
} from;
union {
struct {
u64 ip: 58;
u64 ip_sign_ext: 3;
u64 reserved: 1;
u64 spec: 1;
u64 valid: 1;
} split;
u64 full;
} to;
};
struct stack_frame_user {
const void __attribute__((btf_type_tag("user"))) *next_fp;
unsigned long ret_addr;
};
typedef bool (*stack_trace_consume_fn)(void *, unsigned long);
struct aperfmperf {
seqcount_t seq;
unsigned long last_update;
u64 acnt;
u64 mcnt;
u64 aperf;
u64 mperf;
};
struct kretprobe_blackpoint {
const char *name;
void *addr;
};
struct __arch_relative_insn {
u8 op;
s32 raddr;
} __attribute__((packed));
struct pci_hostbridge_probe {
u32 bus;
u32 slot;
u32 vendor;
u32 device;
};
enum bug_trap_type {
BUG_TRAP_TYPE_NONE = 0,
BUG_TRAP_TYPE_WARN = 1,
BUG_TRAP_TYPE_BUG = 2,
};
struct ptrace_peeksiginfo_args {
__u64 off;
__u32 flags;
__s32 nr;
};
struct ptrace_syscall_info {
__u8 op;
__u8 pad[3];
__u32 arch;
__u64 instruction_pointer;
__u64 stack_pointer;
union {
struct {
__u64 nr;
__u64 args[6];
} entry;
struct {
__s64 rval;
__u8 is_error;
} exit;
struct {
__u64 nr;
__u64 args[6];
__u32 ret_data;
} seccomp;
};
};
struct ptrace_rseq_configuration {
__u64 rseq_abi_pointer;
__u32 rseq_abi_size;
__u32 signature;
__u32 flags;
__u32 pad;
};
typedef class_mutex_t class_mutex_intr_t;
typedef struct {
rwlock_t *lock;
} class_write_lock_irq_t;
typedef struct task_struct *class_task_lock_t;
typedef struct {
spinlock_t *lock;
} class_spinlock_t;
struct rchan_percpu_buf_dispatcher {
struct rchan_buf *buf;
struct dentry *dentry;
};
typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int);
typedef void (*btf_trace_rpm_resume)(void *, struct device *, int);
typedef void (*btf_trace_rpm_idle)(void *, struct device *, int);
typedef void (*btf_trace_rpm_usage)(void *, struct device *, int);
typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int);
typedef void (*btf_trace_rpm_status)(void *, struct device *, enum rpm_status);
struct trace_event_raw_rpm_internal {
struct trace_entry ent;
u32 __data_loc_name;
int flags;
int usage_count;
int disable_depth;
int runtime_auto;
int request_pending;
int irq_safe;
int child_count;
char __data[0];
};
struct trace_event_raw_rpm_return_int {
struct trace_entry ent;
u32 __data_loc_name;
unsigned long ip;
int ret;
char __data[0];
};
struct trace_event_raw_rpm_status {
struct trace_entry ent;
u32 __data_loc_name;
int status;
char __data[0];
};
struct trace_event_data_offsets_rpm_internal {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_rpm_return_int {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_rpm_status {
u32 name;
const void *name_ptr_;
};
typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int);
typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int);
typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t);
typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t);
typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t);
typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t);
typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long);
typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long);
typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long);
typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int);
typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long);
typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int);
typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *);
struct reclaim_stat;
typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int);
struct reclaim_stat {
unsigned int nr_dirty;
unsigned int nr_unqueued_dirty;
unsigned int nr_congested;
unsigned int nr_writeback;
unsigned int nr_immediate;
unsigned int nr_pageout;
unsigned int nr_activate[2];
unsigned int nr_ref_keep;
unsigned int nr_unmap_fail;
unsigned int nr_lazyfree_fail;
};
typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int);
typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t);
typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long);
typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int);
enum pgdat_flags {
PGDAT_DIRTY = 0,
PGDAT_WRITEBACK = 1,
PGDAT_RECLAIM_LOCKED = 2,
};
enum folio_references {
FOLIOREF_RECLAIM = 0,
FOLIOREF_RECLAIM_CLEAN = 1,
FOLIOREF_KEEP = 2,
FOLIOREF_ACTIVATE = 3,
};
enum ttu_flags {
TTU_SPLIT_HUGE_PMD = 4,
TTU_IGNORE_MLOCK = 8,
TTU_SYNC = 16,
TTU_HWPOISON = 32,
TTU_BATCH_FLUSH = 64,
TTU_RMAP_LOCKED = 128,
};
enum {
SWP_USED = 1,
SWP_WRITEOK = 2,
SWP_DISCARDABLE = 4,
SWP_DISCARDING = 8,
SWP_SOLIDSTATE = 16,
SWP_CONTINUED = 32,
SWP_BLKDEV = 64,
SWP_ACTIVATED = 128,
SWP_FS_OPS = 256,
SWP_AREA_DISCARD = 512,
SWP_PAGE_DISCARD = 1024,
SWP_STABLE_WRITES = 2048,
SWP_SYNCHRONOUS_IO = 4096,
SWP_SCANNING = 16384,
};
enum lruvec_flags {
LRUVEC_CGROUP_CONGESTED = 0,
LRUVEC_NODE_CONGESTED = 1,
};
enum memcg_memory_event {
MEMCG_LOW = 0,
MEMCG_HIGH = 1,
MEMCG_MAX = 2,
MEMCG_OOM = 3,
MEMCG_OOM_KILL = 4,
MEMCG_OOM_GROUP_KILL = 5,
MEMCG_SWAP_HIGH = 6,
MEMCG_SWAP_MAX = 7,
MEMCG_SWAP_FAIL = 8,
MEMCG_NR_MEMORY_EVENTS = 9,
};
enum scan_balance {
SCAN_EQUAL = 0,
SCAN_FRACT = 1,
SCAN_ANON = 2,
SCAN_FILE = 3,
};
enum zone_flags {
ZONE_BOOSTED_WATERMARK = 0,
ZONE_RECLAIM_ACTIVE = 1,
ZONE_BELOW_HIGH = 2,
};
struct trace_event_raw_mm_vmscan_kswapd_sleep {
struct trace_entry ent;
int nid;
char __data[0];
};
struct trace_event_raw_mm_vmscan_kswapd_wake {
struct trace_entry ent;
int nid;
int zid;
int order;
char __data[0];
};
struct trace_event_raw_mm_vmscan_wakeup_kswapd {
struct trace_entry ent;
int nid;
int zid;
int order;
unsigned long gfp_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template {
struct trace_entry ent;
int order;
unsigned long gfp_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_direct_reclaim_end_template {
struct trace_entry ent;
unsigned long nr_reclaimed;
char __data[0];
};
struct trace_event_raw_mm_shrink_slab_start {
struct trace_entry ent;
struct shrinker *shr;
void *shrink;
int nid;
long nr_objects_to_shrink;
unsigned long gfp_flags;
unsigned long cache_items;
unsigned long long delta;
unsigned long total_scan;
int priority;
char __data[0];
};
struct trace_event_raw_mm_shrink_slab_end {
struct trace_entry ent;
struct shrinker *shr;
int nid;
void *shrink;
long unused_scan;
long new_scan;
int retval;
long total_scan;
char __data[0];
};
struct trace_event_raw_mm_vmscan_lru_isolate {
struct trace_entry ent;
int highest_zoneidx;
int order;
unsigned long nr_requested;
unsigned long nr_scanned;
unsigned long nr_skipped;
unsigned long nr_taken;
int lru;
char __data[0];
};
struct trace_event_raw_mm_vmscan_write_folio {
struct trace_entry ent;
unsigned long pfn;
int reclaim_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_lru_shrink_inactive {
struct trace_entry ent;
int nid;
unsigned long nr_scanned;
unsigned long nr_reclaimed;
unsigned long nr_dirty;
unsigned long nr_writeback;
unsigned long nr_congested;
unsigned long nr_immediate;
unsigned int nr_activate0;
unsigned int nr_activate1;
unsigned long nr_ref_keep;
unsigned long nr_unmap_fail;
int priority;
int reclaim_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_lru_shrink_active {
struct trace_entry ent;
int nid;
unsigned long nr_taken;
unsigned long nr_active;
unsigned long nr_deactivated;
unsigned long nr_referenced;
int priority;
int reclaim_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_node_reclaim_begin {
struct trace_entry ent;
int nid;
int order;
unsigned long gfp_flags;
char __data[0];
};
struct trace_event_raw_mm_vmscan_throttled {
struct trace_entry ent;
int nid;
int usec_timeout;
int usec_delayed;
int reason;
char __data[0];
};
struct scan_control {
unsigned long nr_to_reclaim;
nodemask_t *nodemask;
struct mem_cgroup *target_mem_cgroup;
unsigned long anon_cost;
unsigned long file_cost;
unsigned int may_deactivate: 2;
unsigned int force_deactivate: 1;
unsigned int skipped_deactivate: 1;
unsigned int may_writepage: 1;
unsigned int may_unmap: 1;
unsigned int may_swap: 1;
unsigned int no_cache_trim_mode: 1;
unsigned int cache_trim_mode_failed: 1;
unsigned int proactive: 1;
unsigned int memcg_low_reclaim: 1;
unsigned int memcg_low_skipped: 1;
unsigned int hibernation_mode: 1;
unsigned int compaction_ready: 1;
unsigned int cache_trim_mode: 1;
unsigned int file_is_tiny: 1;
unsigned int no_demotion: 1;
s8 order;
s8 priority;
s8 reclaim_idx;
gfp_t gfp_mask;
unsigned long nr_scanned;
unsigned long nr_reclaimed;
struct {
unsigned int dirty;
unsigned int unqueued_dirty;
unsigned int congested;
unsigned int writeback;
unsigned int immediate;
unsigned int file_taken;
unsigned int taken;
} nr;
struct reclaim_state reclaim_state;
};
typedef enum {
PAGE_KEEP = 0,
PAGE_ACTIVATE = 1,
PAGE_SUCCESS = 2,
PAGE_CLEAN = 3,
} pageout_t;
struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {};
struct trace_event_data_offsets_mm_vmscan_kswapd_wake {};
struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {};
struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {};
struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {};
struct trace_event_data_offsets_mm_shrink_slab_start {};
struct trace_event_data_offsets_mm_shrink_slab_end {};
struct trace_event_data_offsets_mm_vmscan_lru_isolate {};
struct trace_event_data_offsets_mm_vmscan_write_folio {};
struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {};
struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {};
struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {};
struct trace_event_data_offsets_mm_vmscan_throttled {};
enum hugetlb_page_flags {
HPG_restore_reserve = 0,
HPG_migratable = 1,
HPG_temporary = 2,
HPG_freed = 3,
HPG_vmemmap_optimized = 4,
HPG_raw_hwp_unreliable = 5,
__NR_HPAGEFLAGS = 6,
};
enum hugetlbfs_size_type {
NO_SIZE = 0,
SIZE_STD = 1,
SIZE_PERCENT = 2,
};
enum hugetlb_param {
Opt_gid___2 = 0,
Opt_min_size = 1,
Opt_mode = 2,
Opt_nr_inodes = 3,
Opt_pagesize = 4,
Opt_size = 5,
Opt_uid___2 = 6,
};
typedef unsigned int zap_flags_t;
struct resv_map {
struct kref refs;
spinlock_t lock;
struct list_head regions;
long adds_in_progress;
struct list_head region_cache;
long region_cache_count;
struct rw_semaphore rw_sema;
struct page_counter *reservation_counter;
unsigned long pages_per_hpage;
struct cgroup_subsys_state *css;
};
struct hugetlb_vma_lock {
struct kref refs;
struct rw_semaphore rw_sema;
struct vm_area_struct *vma;
};
struct hugetlbfs_fs_context {
struct hstate *hstate;
unsigned long long max_size_opt;
unsigned long long min_size_opt;
long max_hpages;
long nr_inodes;
long min_hpages;
enum hugetlbfs_size_type max_val_type;
enum hugetlbfs_size_type min_val_type;
kuid_t uid;
kgid_t gid;
umode_t mode;
};
struct btrfs_ioctl_feature_flags {
__u64 compat_flags;
__u64 compat_ro_flags;
__u64 incompat_flags;
};
enum btrfs_err_code {
BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET = 2,
BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET = 3,
BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET = 4,
BTRFS_ERROR_DEV_TGT_REPLACE = 5,
BTRFS_ERROR_DEV_MISSING_NOT_FOUND = 6,
BTRFS_ERROR_DEV_ONLY_WRITABLE = 7,
BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS = 8,
BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET = 9,
BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET = 10,
};
struct btrfs_ioctl_space_info {
__u64 flags;
__u64 total_bytes;
__u64 used_bytes;
};
struct btrfs_ioctl_space_args {
__u64 space_slots;
__u64 total_spaces;
struct btrfs_ioctl_space_info spaces[0];
};
struct btrfs_root_ref {
__le64 dirid;
__le64 sequence;
__le16 name_len;
} __attribute__((packed));
struct btrfs_ioctl_vol_args {
__s64 fd;
char name[4088];
};
struct btrfs_ioctl_vol_args_v2 {
__s64 fd;
__u64 transid;
__u64 flags;
union {
struct {
__u64 size;
struct btrfs_qgroup_inherit __attribute__((btf_type_tag("user"))) *qgroup_inherit;
};
__u64 unused[4];
};
union {
char name[4040];
__u64 devid;
__u64 subvolid;
};
};
struct btrfs_dir_item {
struct btrfs_disk_key location;
__le64 transid;
__le16 data_len;
__le16 name_len;
__u8 type;
} __attribute__((packed));
struct fscrypt_str {
unsigned char *name;
u32 len;
};
struct btrfs_ioctl_defrag_range_args {
__u64 start;
__u64 len;
__u64 flags;
__u32 extent_thresh;
__u32 compress_type;
__u32 unused[4];
};
struct btrfs_ioctl_balance_args {
__u64 flags;
__u64 state;
struct btrfs_balance_args data;
struct btrfs_balance_args meta;
struct btrfs_balance_args sys;
struct btrfs_balance_progress stat;
__u64 unused[72];
};
struct btrfs_ioctl_send_args {
__s64 send_fd;
__u64 clone_sources_count;
__u64 __attribute__((btf_type_tag("user"))) *clone_sources;
__u64 parent_root;
__u64 flags;
__u32 version;
__u8 reserved[28];
};
struct btrfs_ioctl_get_dev_stats {
__u64 devid;
__u64 nr_items;
__u64 flags;
__u64 values[5];
__u64 unused[121];
};
struct btrfs_ioctl_quota_ctl_args {
__u64 cmd;
__u64 status;
};
struct btrfs_ioctl_ino_lookup_user_args {
__u64 dirid;
__u64 treeid;
char name[256];
char path[3824];
};
struct btrfs_ioctl_encoded_io_args {
const struct iovec __attribute__((btf_type_tag("user"))) *iov;
unsigned long iovcnt;
__s64 offset;
__u64 flags;
__u64 len;
__u64 unencoded_len;
__u64 unencoded_offset;
__u32 compression;
__u32 encryption;
__u8 reserved[64];
};
struct fscrypt_name {
const struct qstr *usr_fname;
struct fscrypt_str disk_name;
u32 hash;
u32 minor_hash;
struct fscrypt_str crypto_buf;
bool is_nokey_name;
};
struct btrfs_new_inode_args {
struct inode *dir;
struct dentry *dentry;
struct inode *inode;
bool orphan;
bool subvol;
struct posix_acl *default_acl;
struct posix_acl *acl;
struct fscrypt_name fname;
};
struct btrfs_ioctl_fs_info_args {
__u64 max_id;
__u64 num_devices;
__u8 fsid[16];
__u32 nodesize;
__u32 sectorsize;
__u32 clone_alignment;
__u16 csum_type;
__u16 csum_size;
__u64 flags;
__u64 generation;
__u8 metadata_uuid[16];
__u8 reserved[944];
};
struct btrfs_ioctl_dev_info_args {
__u64 devid;
__u8 uuid[16];
__u64 bytes_used;
__u64 total_bytes;
__u8 fsid[16];
__u64 unused[377];
__u8 path[1024];
};
struct btrfs_ioctl_search_key {
__u64 tree_id;
__u64 min_objectid;
__u64 max_objectid;
__u64 min_offset;
__u64 max_offset;
__u64 min_transid;
__u64 max_transid;
__u32 min_type;
__u32 max_type;
__u32 nr_items;
__u32 unused;
__u64 unused1;
__u64 unused2;
__u64 unused3;
__u64 unused4;
};
struct btrfs_ioctl_search_args {
struct btrfs_ioctl_search_key key;
char buf[3992];
};
struct btrfs_ioctl_search_args_v2 {
struct btrfs_ioctl_search_key key;
__u64 buf_size;
__u64 buf[0];
};
struct btrfs_ioctl_ino_lookup_args {
__u64 treeid;
__u64 objectid;
char name[4080];
};
struct btrfs_ioctl_ino_path_args {
__u64 inum;
__u64 size;
__u64 reserved[4];
__u64 fspath;
};
struct btrfs_ioctl_logical_ino_args {
__u64 logical;
__u64 size;
__u64 reserved[3];
__u64 flags;
__u64 inodes;
};
struct btrfs_ioctl_scrub_args {
__u64 devid;
__u64 start;
__u64 end;
__u64 flags;
struct btrfs_scrub_progress progress;
__u64 unused[109];
};
struct btrfs_ioctl_timespec {
__u64 sec;
__u32 nsec;
};
struct btrfs_ioctl_received_subvol_args {
char uuid[16];
__u64 stransid;
__u64 rtransid;
struct btrfs_ioctl_timespec stime;
struct btrfs_ioctl_timespec rtime;
__u64 flags;
__u64 reserved[16];
};
struct btrfs_ioctl_timespec_32 {
__u64 sec;
__u32 nsec;
} __attribute__((packed));
struct btrfs_ioctl_received_subvol_args_32 {
char uuid[16];
__u64 stransid;
__u64 rtransid;
struct btrfs_ioctl_timespec_32 stime;
struct btrfs_ioctl_timespec_32 rtime;
__u64 flags;
__u64 reserved[16];
};
struct btrfs_ioctl_qgroup_assign_args {
__u64 assign;
__u64 src;
__u64 dst;
};
struct btrfs_ioctl_qgroup_create_args {
__u64 create;
__u64 qgroupid;
};
struct btrfs_ioctl_qgroup_limit_args {
__u64 qgroupid;
struct btrfs_qgroup_limit lim;
};
struct btrfs_ioctl_quota_rescan_args {
__u64 flags;
__u64 progress;
__u64 reserved[6];
};
struct btrfs_ioctl_get_subvol_info_args {
__u64 treeid;
char name[256];
__u64 parent_id;
__u64 dirid;
__u64 generation;
__u64 flags;
__u8 uuid[16];
__u8 parent_uuid[16];
__u8 received_uuid[16];
__u64 ctransid;
__u64 otransid;
__u64 stransid;
__u64 rtransid;
struct btrfs_ioctl_timespec ctime;
struct btrfs_ioctl_timespec otime;
struct btrfs_ioctl_timespec stime;
struct btrfs_ioctl_timespec rtime;
__u64 reserved[8];
};
struct btrfs_ioctl_get_subvol_rootref_args {
__u64 min_treeid;
struct {
__u64 treeid;
__u64 dirid;
} rootref[255];
__u8 num_items;
__u8 align[7];
};
struct btrfs_ioctl_search_header {
__u64 transid;
__u64 objectid;
__u64 offset;
__u32 type;
__u32 len;
};
enum bio_merge_status {
BIO_MERGE_OK = 0,
BIO_MERGE_NONE = 1,
BIO_MERGE_FAILED = 2,
};
struct req_iterator {
struct bvec_iter iter;
struct bio *bio;
};
struct genradix_root;
struct genradix_node {
union {
struct genradix_node *children[64];
u8 data[512];
};
};
struct __genradix {
struct genradix_root *root;
};
struct genradix_iter {
size_t offset;
size_t pos;
};
typedef struct {
FSE_CTable CTable[59];
U32 scratchBuffer[41];
unsigned int count[13];
S16 norm[13];
} HUF_CompressWeightsWksp;
typedef struct {
HUF_CompressWeightsWksp wksp;
BYTE bitsToWeight[13];
BYTE huffWeight[255];
} HUF_WriteCTableWksp;
struct nodeElt_s {
U32 count;
U16 parent;
BYTE byte;
BYTE nbBits;
};
typedef struct nodeElt_s nodeElt;
typedef nodeElt huffNodeTable[512];
typedef struct {
U16 base;
U16 curr;
} rankPos;
typedef struct {
huffNodeTable huffNodeTbl;
rankPos rankPosition[192];
} HUF_buildCTable_wksp_tables;
typedef struct {
unsigned int count[256];
HUF_CElt CTable[257];
union {
HUF_buildCTable_wksp_tables buildCTable_wksp;
HUF_WriteCTableWksp writeCTable_wksp;
U32 hist_wksp[1024];
} wksps;
} HUF_compress_tables_t;
typedef struct {
size_t bitContainer[2];
size_t bitPos[2];
BYTE *startPtr;
BYTE *ptr;
BYTE *endPtr;
} HUF_CStream_t;
typedef enum {
HUF_singleStream = 0,
HUF_fourStreams = 1,
} HUF_nbStreams_e;
struct pci_filp_private {
enum pci_mmap_state mmap_state;
int write_combine;
};
struct acpi_pci_device {
acpi_handle device;
struct acpi_pci_device *next;
};
struct pci_bits {
unsigned int reg;
unsigned int width;
unsigned long mask;
unsigned long val;
};
struct ich_laptop {
u16 device;
u16 subvendor;
u16 subdevice;
};
struct piix_map_db {
const u32 mask;
const u16 port_enable;
const int map[0];
};
enum piix_controller_ids {
piix_pata_mwdma = 0,
piix_pata_33 = 1,
ich_pata_33 = 2,
ich_pata_66 = 3,
ich_pata_100 = 4,
ich_pata_100_nomwdma1 = 5,
ich5_sata = 6,
ich6_sata = 7,
ich6m_sata = 8,
ich8_sata = 9,
ich8_2port_sata = 10,
ich8m_apple_sata = 11,
tolapai_sata = 12,
piix_pata_vmw = 13,
ich8_sata_snb = 14,
ich8_2port_sata_snb = 15,
ich8_2port_sata_byt = 16,
};
enum {
PIIX_IOCFG = 84,
ICH5_PMR = 144,
ICH5_PCS = 146,
PIIX_SIDPR_BAR = 5,
PIIX_SIDPR_LEN = 16,
PIIX_SIDPR_IDX = 0,
PIIX_SIDPR_DATA = 4,
PIIX_FLAG_CHECKINTR = 268435456,
PIIX_FLAG_SIDPR = 536870912,
PIIX_PATA_FLAGS = 1,
PIIX_SATA_FLAGS = 268435458,
PIIX_FLAG_PIO16 = 1073741824,
PIIX_80C_PRI = 48,
PIIX_80C_SEC = 192,
P0 = 0,
P1 = 1,
P2 = 2,
P3 = 3,
IDE = -1,
NA = -2,
RV = -3,
PIIX_AHCI_DEVICE = 6,
PIIX_HOST_BROKEN_SUSPEND = 16777216,
};
struct piix_host_priv {
const int *map;
u32 saved_iocfg;
void *sidpr;
};
enum iwl_dsm_funcs {
DSM_FUNC_QUERY = 0,
DSM_FUNC_DISABLE_SRD = 1,
DSM_FUNC_ENABLE_INDONESIA_5G2 = 2,
DSM_FUNC_ENABLE_6E = 3,
DSM_FUNC_REGULATORY_CONFIG = 4,
DSM_FUNC_11AX_ENABLEMENT = 6,
DSM_FUNC_ENABLE_UNII4_CHAN = 7,
DSM_FUNC_ACTIVATE_CHANNEL = 8,
DSM_FUNC_FORCE_DISABLE_CHANNELS = 9,
DSM_FUNC_ENERGY_DETECTION_THRESHOLD = 10,
DSM_FUNC_RFI_CONFIG = 11,
DSM_FUNC_NUM_FUNCS = 12,
};
struct iwl_tas_data {
__le32 block_list_size;
__le32 block_list_array[16];
u8 override_tas_iec;
u8 enable_tas_iec;
u8 usa_tas_uhb_allowed;
};
enum usb_led_event {
USB_LED_EVENT_HOST = 0,
USB_LED_EVENT_GADGET = 1,
};
typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long);
struct gen_pool {
spinlock_t lock;
struct list_head chunks;
int min_alloc_order;
genpool_algo_t algo;
void *data;
const char *name;
};
enum ptp_clock_events {
PTP_CLOCK_ALARM = 0,
PTP_CLOCK_EXTTS = 1,
PTP_CLOCK_EXTOFF = 2,
PTP_CLOCK_PPS = 3,
PTP_CLOCK_PPSUSR = 4,
};
struct pps_event_time {
struct timespec64 ts_real;
};
struct ptp_clock_event {
int type;
int index;
union {
u64 timestamp;
s64 offset;
struct pps_event_time pps_times;
};
};
enum {
ETHTOOL_A_LINKMODES_UNSPEC = 0,
ETHTOOL_A_LINKMODES_HEADER = 1,
ETHTOOL_A_LINKMODES_AUTONEG = 2,
ETHTOOL_A_LINKMODES_OURS = 3,
ETHTOOL_A_LINKMODES_PEER = 4,
ETHTOOL_A_LINKMODES_SPEED = 5,
ETHTOOL_A_LINKMODES_DUPLEX = 6,
ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7,
ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8,
ETHTOOL_A_LINKMODES_LANES = 9,
ETHTOOL_A_LINKMODES_RATE_MATCHING = 10,
__ETHTOOL_A_LINKMODES_CNT = 11,
ETHTOOL_A_LINKMODES_MAX = 10,
};
struct linkmodes_reply_data {
struct ethnl_reply_data base;
struct ethtool_link_ksettings ksettings;
struct ethtool_link_settings *lsettings;
bool peer_empty;
};
struct link_mode_info {
int speed;
u8 lanes;
u8 duplex;
};
enum nft_payload_attributes {
NFTA_PAYLOAD_UNSPEC = 0,
NFTA_PAYLOAD_DREG = 1,
NFTA_PAYLOAD_BASE = 2,
NFTA_PAYLOAD_OFFSET = 3,
NFTA_PAYLOAD_LEN = 4,
NFTA_PAYLOAD_SREG = 5,
NFTA_PAYLOAD_CSUM_TYPE = 6,
NFTA_PAYLOAD_CSUM_OFFSET = 7,
NFTA_PAYLOAD_CSUM_FLAGS = 8,
__NFTA_PAYLOAD_MAX = 9,
};
enum nft_offload_reg_flags {
NFT_OFFLOAD_F_NETWORK2HOST = 1,
};
enum nft_payload_csum_types {
NFT_PAYLOAD_CSUM_NONE = 0,
NFT_PAYLOAD_CSUM_INET = 1,
NFT_PAYLOAD_CSUM_SCTP = 2,
};
enum nft_payload_csum_flags {
NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 1,
};
struct sctphdr {
__be16 source;
__be16 dest;
__be32 vtag;
__le32 checksum;
};
struct nft_payload_set {
enum nft_payload_bases base: 8;
u8 offset;
u8 len;
u8 sreg;
u8 csum_type;
u8 csum_offset;
u8 csum_flags;
};
struct udp_seq_afinfo {
sa_family_t family;
struct udp_table *udp_table;
};
struct brport_attribute {
struct attribute attr;
ssize_t (*show)(struct net_bridge_port *, char *);
int (*store)(struct net_bridge_port *, unsigned long);
int (*store_raw)(struct net_bridge_port *, char *);
};
typedef unsigned int ieee80211_rx_result;
enum ieee80211_packet_rx_flags {
IEEE80211_RX_AMSDU = 8,
IEEE80211_RX_MALFORMED_ACTION_FRM = 16,
IEEE80211_RX_DEFERRED_RELEASE = 32,
};
enum mac80211_drop_reason {
RX_CONTINUE = 1,
RX_QUEUED = 0,
RX_DROP_MONITOR = 131072,
RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073,
RX_DROP_M_BAD_BCN_KEYIDX = 131074,
RX_DROP_M_BAD_MGMT_KEYIDX = 131075,
RX_DROP_U_MIC_FAIL = 65537,
RX_DROP_U_REPLAY = 65538,
RX_DROP_U_BAD_MMIE = 65539,
RX_DROP_U_DUP = 65540,
RX_DROP_U_SPURIOUS = 65541,
RX_DROP_U_DECRYPT_FAIL = 65542,
RX_DROP_U_NO_KEY_ID = 65543,
RX_DROP_U_BAD_CIPHER = 65544,
RX_DROP_U_OOM = 65545,
RX_DROP_U_NONSEQ_PN = 65546,
RX_DROP_U_BAD_KEY_COLOR = 65547,
RX_DROP_U_BAD_4ADDR = 65548,
RX_DROP_U_BAD_AMSDU = 65549,
RX_DROP_U_BAD_AMSDU_CIPHER = 65550,
RX_DROP_U_INVALID_8023 = 65551,
RX_DROP_U_RUNT_ACTION = 65552,
RX_DROP_U_UNPROT_ACTION = 65553,
RX_DROP_U_UNPROT_DUAL = 65554,
RX_DROP_U_UNPROT_UCAST_MGMT = 65555,
RX_DROP_U_UNPROT_MCAST_MGMT = 65556,
RX_DROP_U_UNPROT_BEACON = 65557,
RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558,
RX_DROP_U_UNPROT_ROBUST_ACTION = 65559,
RX_DROP_U_ACTION_UNKNOWN_SRC = 65560,
RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561,
RX_DROP_U_EXPECT_DEFRAG_PROT = 65562,
RX_DROP_U_WEP_DEC_FAIL = 65563,
RX_DROP_U_NO_IV = 65564,
RX_DROP_U_NO_ICV = 65565,
RX_DROP_U_AP_RX_GROUPCAST = 65566,
RX_DROP_U_SHORT_MMIC = 65567,
RX_DROP_U_MMIC_FAIL = 65568,
RX_DROP_U_SHORT_TKIP = 65569,
RX_DROP_U_TKIP_FAIL = 65570,
RX_DROP_U_SHORT_CCMP = 65571,
RX_DROP_U_SHORT_CCMP_MIC = 65572,
RX_DROP_U_SHORT_GCMP = 65573,
RX_DROP_U_SHORT_GCMP_MIC = 65574,
RX_DROP_U_SHORT_CMAC = 65575,
RX_DROP_U_SHORT_CMAC256 = 65576,
RX_DROP_U_SHORT_GMAC = 65577,
RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578,
RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579,
RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580,
RX_DROP_U_NOT_PORT_CONTROL = 65581,
};
enum ___mac80211_drop_reason {
___RX_CONTINUE = 1,
___RX_QUEUED = 0,
___RX_DROP_MONITOR = 131072,
___RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073,
___RX_DROP_M_BAD_BCN_KEYIDX = 131074,
___RX_DROP_M_BAD_MGMT_KEYIDX = 131075,
___RX_DROP_UNUSABLE = 65536,
___RX_DROP_U_MIC_FAIL = 65537,
___RX_DROP_U_REPLAY = 65538,
___RX_DROP_U_BAD_MMIE = 65539,
___RX_DROP_U_DUP = 65540,
___RX_DROP_U_SPURIOUS = 65541,
___RX_DROP_U_DECRYPT_FAIL = 65542,
___RX_DROP_U_NO_KEY_ID = 65543,
___RX_DROP_U_BAD_CIPHER = 65544,
___RX_DROP_U_OOM = 65545,
___RX_DROP_U_NONSEQ_PN = 65546,
___RX_DROP_U_BAD_KEY_COLOR = 65547,
___RX_DROP_U_BAD_4ADDR = 65548,
___RX_DROP_U_BAD_AMSDU = 65549,
___RX_DROP_U_BAD_AMSDU_CIPHER = 65550,
___RX_DROP_U_INVALID_8023 = 65551,
___RX_DROP_U_RUNT_ACTION = 65552,
___RX_DROP_U_UNPROT_ACTION = 65553,
___RX_DROP_U_UNPROT_DUAL = 65554,
___RX_DROP_U_UNPROT_UCAST_MGMT = 65555,
___RX_DROP_U_UNPROT_MCAST_MGMT = 65556,
___RX_DROP_U_UNPROT_BEACON = 65557,
___RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558,
___RX_DROP_U_UNPROT_ROBUST_ACTION = 65559,
___RX_DROP_U_ACTION_UNKNOWN_SRC = 65560,
___RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561,
___RX_DROP_U_EXPECT_DEFRAG_PROT = 65562,
___RX_DROP_U_WEP_DEC_FAIL = 65563,
___RX_DROP_U_NO_IV = 65564,
___RX_DROP_U_NO_ICV = 65565,
___RX_DROP_U_AP_RX_GROUPCAST = 65566,
___RX_DROP_U_SHORT_MMIC = 65567,
___RX_DROP_U_MMIC_FAIL = 65568,
___RX_DROP_U_SHORT_TKIP = 65569,
___RX_DROP_U_TKIP_FAIL = 65570,
___RX_DROP_U_SHORT_CCMP = 65571,
___RX_DROP_U_SHORT_CCMP_MIC = 65572,
___RX_DROP_U_SHORT_GCMP = 65573,
___RX_DROP_U_SHORT_GCMP_MIC = 65574,
___RX_DROP_U_SHORT_CMAC = 65575,
___RX_DROP_U_SHORT_CMAC256 = 65576,
___RX_DROP_U_SHORT_GMAC = 65577,
___RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578,
___RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579,
___RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580,
___RX_DROP_U_NOT_PORT_CONTROL = 65581,
};
enum ieee80211_tdls_actioncode {
WLAN_TDLS_SETUP_REQUEST = 0,
WLAN_TDLS_SETUP_RESPONSE = 1,
WLAN_TDLS_SETUP_CONFIRM = 2,
WLAN_TDLS_TEARDOWN = 3,
WLAN_TDLS_PEER_TRAFFIC_INDICATION = 4,
WLAN_TDLS_CHANNEL_SWITCH_REQUEST = 5,
WLAN_TDLS_CHANNEL_SWITCH_RESPONSE = 6,
WLAN_TDLS_PEER_PSM_REQUEST = 7,
WLAN_TDLS_PEER_PSM_RESPONSE = 8,
WLAN_TDLS_PEER_TRAFFIC_RESPONSE = 9,
WLAN_TDLS_DISCOVERY_REQUEST = 10,
};
enum ieee80211_rx_flags {
IEEE80211_RX_CMNTR = 1,
IEEE80211_RX_BEACON_REPORTED = 2,
};
enum ieee80211_ht_actioncode {
WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0,
WLAN_HT_ACTION_SMPS = 1,
WLAN_HT_ACTION_PSMP = 2,
WLAN_HT_ACTION_PCO_PHASE = 3,
WLAN_HT_ACTION_CSI = 4,
WLAN_HT_ACTION_NONCOMPRESSED_BF = 5,
WLAN_HT_ACTION_COMPRESSED_BF = 6,
WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7,
};
enum wiphy_opmode_flag {
STA_OPMODE_MAX_BW_CHANGED = 1,
STA_OPMODE_SMPS_MODE_CHANGED = 2,
STA_OPMODE_N_SS_CHANGED = 4,
};
enum ieee80211_ht_chanwidth_values {
IEEE80211_HT_CHANWIDTH_20MHZ = 0,
IEEE80211_HT_CHANWIDTH_ANY = 1,
};
enum ieee80211_vht_actioncode {
WLAN_VHT_ACTION_COMPRESSED_BF = 0,
WLAN_VHT_ACTION_GROUPID_MGMT = 1,
WLAN_VHT_ACTION_OPMODE_NOTIF = 2,
};
enum ieee80211_self_protected_actioncode {
WLAN_SP_RESERVED = 0,
WLAN_SP_MESH_PEERING_OPEN = 1,
WLAN_SP_MESH_PEERING_CONFIRM = 2,
WLAN_SP_MESH_PEERING_CLOSE = 3,
WLAN_SP_MGK_INFORM = 4,
WLAN_SP_MGK_ACK = 5,
};
enum ieee80211_s1g_actioncode {
WLAN_S1G_AID_SWITCH_REQUEST = 0,
WLAN_S1G_AID_SWITCH_RESPONSE = 1,
WLAN_S1G_SYNC_CONTROL = 2,
WLAN_S1G_STA_INFO_ANNOUNCE = 3,
WLAN_S1G_EDCA_PARAM_SET = 4,
WLAN_S1G_EL_OPERATION = 5,
WLAN_S1G_TWT_SETUP = 6,
WLAN_S1G_TWT_TEARDOWN = 7,
WLAN_S1G_SECT_GROUP_ID_LIST = 8,
WLAN_S1G_SECT_ID_FEEDBACK = 9,
WLAN_S1G_TWT_INFORMATION = 11,
};
enum ieee80211_protected_eht_actioncode {
WLAN_PROTECTED_EHT_ACTION_TTLM_REQ = 0,
WLAN_PROTECTED_EHT_ACTION_TTLM_RES = 1,
WLAN_PROTECTED_EHT_ACTION_TTLM_TEARDOWN = 2,
};
enum ieee80211_sa_query_action {
WLAN_ACTION_SA_QUERY_REQUEST = 0,
WLAN_ACTION_SA_QUERY_RESPONSE = 1,
};
enum ieee80211_radiotap_channel_flags {
IEEE80211_CHAN_CCK = 32,
IEEE80211_CHAN_OFDM = 64,
IEEE80211_CHAN_2GHZ = 128,
IEEE80211_CHAN_5GHZ = 256,
IEEE80211_CHAN_DYN = 1024,
IEEE80211_CHAN_HALF = 16384,
IEEE80211_CHAN_QUARTER = 32768,
};
enum ieee80211_radiotap_rx_flags {
IEEE80211_RADIOTAP_F_RX_BADPLCP = 2,
};
enum ieee80211_radiotap_ampdu_flags {
IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN = 1,
IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN = 2,
IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN = 4,
IEEE80211_RADIOTAP_AMPDU_IS_LAST = 8,
IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR = 16,
IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN = 32,
IEEE80211_RADIOTAP_AMPDU_EOF = 64,
IEEE80211_RADIOTAP_AMPDU_EOF_KNOWN = 128,
};
enum ieee80211_radiotap_vht_coding {
IEEE80211_RADIOTAP_CODING_LDPC_USER0 = 1,
IEEE80211_RADIOTAP_CODING_LDPC_USER1 = 2,
IEEE80211_RADIOTAP_CODING_LDPC_USER2 = 4,
IEEE80211_RADIOTAP_CODING_LDPC_USER3 = 8,
};
enum ieee80211_radiotap_timestamp_flags {
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0,
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1,
IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2,
};
enum nl80211_plink_state {
NL80211_PLINK_LISTEN = 0,
NL80211_PLINK_OPN_SNT = 1,
NL80211_PLINK_OPN_RCVD = 2,
NL80211_PLINK_CNF_RCVD = 3,
NL80211_PLINK_ESTAB = 4,
NL80211_PLINK_HOLDING = 5,
NL80211_PLINK_BLOCKED = 6,
NUM_NL80211_PLINK_STATES = 7,
MAX_NL80211_PLINK_STATES = 6,
};
enum {
TASKLET_STATE_SCHED = 0,
TASKLET_STATE_RUN = 1,
};
struct ieee80211_mmie {
u8 element_id;
u8 length;
__le16 key_id;
u8 sequence_number[6];
u8 mic[8];
};
struct ieee80211_mmie_16 {
u8 element_id;
u8 length;
__le16 key_id;
u8 sequence_number[6];
u8 mic[16];
};
struct ieee80211_rx_data {
struct list_head *list;
struct sk_buff *skb;
struct ieee80211_local *local;
struct ieee80211_sub_if_data *sdata;
struct ieee80211_link_data *link;
struct sta_info *sta;
struct link_sta_info *link_sta;
struct ieee80211_key *key;
unsigned int flags;
int seqno_idx;
int security_idx;
int link_id;
union {
struct {
u32 iv32;
u16 iv16;
} tkip;
struct {
u8 pn[6];
} ccm_gcm;
};
};
struct ieee80211_tdls_data {
u8 da[6];
u8 sa[6];
__be16 ether_type;
u8 payload_type;
u8 category;
u8 action_code;
union {
struct {
u8 dialog_token;
__le16 capability;
u8 variable[0];
} __attribute__((packed)) setup_req;
struct {
__le16 status_code;
u8 dialog_token;
__le16 capability;
u8 variable[0];
} __attribute__((packed)) setup_resp;
struct {
__le16 status_code;
u8 dialog_token;
u8 variable[0];
} __attribute__((packed)) setup_cfm;
struct {
__le16 reason_code;
u8 variable[0];
} teardown;
struct {
u8 dialog_token;
u8 variable[0];
} discover_req;
struct {
u8 target_channel;
u8 oper_class;
u8 variable[0];
} chan_switch_req;
struct {
__le16 status_code;
u8 variable[0];
} chan_switch_resp;
} u;
};
struct sta_opmode_info {
u32 changed;
enum nl80211_smps_mode smps_mode;
enum nl80211_chan_width bw;
u8 rx_nss;
};
struct cfg80211_rx_info {
int freq;
int sig_dbm;
bool have_link_id;
u8 link_id;
const u8 *buf;
size_t len;
u32 flags;
u64 rx_tstamp;
u64 ack_tstamp;
};
struct zap_details {
struct folio *single_folio;
bool even_cows;
zap_flags_t zap_flags;
};
enum allow_write_msrs {
MSR_WRITES_ON = 0,
MSR_WRITES_OFF = 1,
MSR_WRITES_DEFAULT = 2,
};
struct numa_memblk {
u64 start;
u64 end;
int nid;
};
struct numa_meminfo {
int nr_blks;
struct numa_memblk blk[2048];
};
struct sysrq_key_op {
void (* const handler)(u8);
const char * const help_msg;
const char * const action_msg;
const int enable_mask;
};
typedef void (*btf_trace_console)(void *, const char *, size_t);
struct printk_buffers {
char outbuf[2048];
char scratchbuf[1024];
};
struct latched_seq {
seqcount_latch_t latch;
u64 val[2];
};
struct console_cmdline {
char name[16];
int index;
bool user_specified;
char *options;
};
enum devkmsg_log_masks {
DEVKMSG_LOG_MASK_ON = 1,
DEVKMSG_LOG_MASK_OFF = 2,
DEVKMSG_LOG_MASK_LOCK = 4,
};
enum printk_info_flags {
LOG_NEWLINE = 2,
LOG_CONT = 8,
};
enum con_msg_format_flags {
MSG_FORMAT_DEFAULT = 0,
MSG_FORMAT_SYSLOG = 1,
};
enum con_flush_mode {
CONSOLE_FLUSH_PENDING = 0,
CONSOLE_REPLAY_ALL = 1,
};
enum kmsg_dump_reason {
KMSG_DUMP_UNDEF = 0,
KMSG_DUMP_PANIC = 1,
KMSG_DUMP_OOPS = 2,
KMSG_DUMP_EMERG = 3,
KMSG_DUMP_SHUTDOWN = 4,
KMSG_DUMP_MAX = 5,
};
struct kmsg_dumper {
struct list_head list;
void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason);
enum kmsg_dump_reason max_reason;
bool registered;
};
struct trace_event_raw_console {
struct trace_entry ent;
u32 __data_loc_msg;
char __data[0];
};
struct trace_event_data_offsets_console {
u32 msg;
const void *msg_ptr_;
};
struct printk_message {
struct printk_buffers *pbufs;
unsigned int outbuf_len;
u64 seq;
unsigned long dropped;
};
struct devkmsg_user {
atomic64_t seq;
struct ratelimit_state rs;
struct mutex lock;
struct printk_buffers pbufs;
};
struct kmsg_dump_iter {
u64 cur_seq;
u64 next_seq;
};
struct bpf_empty_prog_array {
struct bpf_prog_array hdr;
struct bpf_prog *null_prog;
};
typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32);
typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int);
typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32);
typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *);
typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int);
typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int);
struct xdp_mem_allocator;
typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *);
struct xdp_mem_allocator {
struct xdp_mem_info mem;
union {
void *allocator;
struct page_pool *page_pool;
};
struct rhash_head node;
struct callback_head rcu;
};
typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *);
typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *);
typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *);
struct latch_tree_root {
seqcount_latch_t seq;
struct rb_root tree[2];
};
struct rnd_state {
__u32 s1;
__u32 s2;
__u32 s3;
__u32 s4;
};
struct latch_tree_ops {
bool (*less)(struct latch_tree_node *, struct latch_tree_node *);
int (*comp)(void *, struct latch_tree_node *);
};
struct bpf_prog_dummy {
struct bpf_prog prog;
};
enum page_size_enum {
__PAGE_SIZE = 4096,
};
struct bpf_prog_pack {
struct list_head list;
void *ptr;
unsigned long bitmap[0];
};
typedef u64 (*btf_bpf_user_rnd_u32)();
typedef u64 (*btf_bpf_get_raw_cpu_id)();
struct trace_event_raw_xdp_exception {
struct trace_entry ent;
int prog_id;
u32 act;
int ifindex;
char __data[0];
};
struct trace_event_raw_xdp_bulk_tx {
struct trace_entry ent;
int ifindex;
u32 act;
int drops;
int sent;
int err;
char __data[0];
};
struct _bpf_dtab_netdev {
struct net_device *dev;
};
struct trace_event_raw_xdp_redirect_template {
struct trace_entry ent;
int prog_id;
u32 act;
int ifindex;
int err;
int to_ifindex;
u32 map_id;
int map_index;
char __data[0];
};
struct trace_event_raw_xdp_cpumap_kthread {
struct trace_entry ent;
int map_id;
u32 act;
int cpu;
unsigned int drops;
unsigned int processed;
int sched;
unsigned int xdp_pass;
unsigned int xdp_drop;
unsigned int xdp_redirect;
char __data[0];
};
struct trace_event_raw_xdp_cpumap_enqueue {
struct trace_entry ent;
int map_id;
u32 act;
int cpu;
unsigned int drops;
unsigned int processed;
int to_cpu;
char __data[0];
};
struct trace_event_raw_xdp_devmap_xmit {
struct trace_entry ent;
int from_ifindex;
u32 act;
int to_ifindex;
int drops;
int sent;
int err;
char __data[0];
};
struct trace_event_raw_mem_disconnect {
struct trace_entry ent;
const struct xdp_mem_allocator *xa;
u32 mem_id;
u32 mem_type;
const void *allocator;
char __data[0];
};
struct trace_event_raw_mem_connect {
struct trace_entry ent;
const struct xdp_mem_allocator *xa;
u32 mem_id;
u32 mem_type;
const void *allocator;
const struct xdp_rxq_info *rxq;
int ifindex;
char __data[0];
};
struct trace_event_raw_mem_return_failed {
struct trace_entry ent;
const struct page *page;
u32 mem_id;
u32 mem_type;
char __data[0];
};
struct trace_event_raw_bpf_xdp_link_attach_failed {
struct trace_entry ent;
u32 __data_loc_msg;
char __data[0];
};
struct trace_event_data_offsets_bpf_xdp_link_attach_failed {
u32 msg;
const void *msg_ptr_;
};
typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long);
struct trace_event_data_offsets_xdp_exception {};
struct trace_event_data_offsets_xdp_bulk_tx {};
struct trace_event_data_offsets_xdp_redirect_template {};
struct trace_event_data_offsets_xdp_cpumap_kthread {};
struct trace_event_data_offsets_xdp_cpumap_enqueue {};
struct trace_event_data_offsets_xdp_devmap_xmit {};
struct trace_event_data_offsets_mem_disconnect {};
struct trace_event_data_offsets_mem_connect {};
struct trace_event_data_offsets_mem_return_failed {};
struct simple_xattr {
struct rb_node rb_node;
char *name;
size_t size;
char value[0];
};
struct xattr_name {
char name[256];
};
struct xattr_ctx {
union {
const void __attribute__((btf_type_tag("user"))) *cvalue;
void __attribute__((btf_type_tag("user"))) *value;
};
void *kvalue;
size_t size;
struct xattr_name *kname;
unsigned int flags;
};
struct pid_entry {
const char *name;
unsigned int len;
umode_t mode;
const struct inode_operations *iop;
const struct file_operations *fop;
union proc_op op;
};
struct limit_names {
const char *name;
const char *unit;
};
struct map_files_info {
unsigned long start;
unsigned long end;
fmode_t mode;
};
struct syscall_info {
__u64 sp;
struct seccomp_data data;
};
struct tgid_iter {
unsigned int tgid;
struct task_struct *task;
};
typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *);
enum {
PARSE_INVALID = 1,
PARSE_NOT_LONGNAME = 2,
PARSE_EOF = 3,
};
struct msdos_dir_slot {
__u8 id;
__u8 name0_4[10];
__u8 attr;
__u8 reserved;
__u8 alias_checksum;
__u8 name5_10[12];
__le16 start;
__u8 name11_12[4];
};
struct __fat_dirent {
long d_ino;
__kernel_off_t d_off;
unsigned short d_reclen;
char d_name[256];
};
struct fat_ioctl_filldir_callback {
struct dir_context ctx;
void __attribute__((btf_type_tag("user"))) *dirent;
int result;
const char *longname;
int long_len;
const char *shortname;
int short_len;
};
struct btrfs_free_space_info {
__le32 extent_count;
__le32 flags;
};
struct ipc_ids {
int in_use;
unsigned short seq;
struct rw_semaphore rwsem;
struct idr ipcs_idr;
int max_idx;
int last_idx;
struct rhashtable key_ht;
};
struct ipc_namespace {
struct ipc_ids ids[3];
int sem_ctls[4];
int used_sems;
unsigned int msg_ctlmax;
unsigned int msg_ctlmnb;
unsigned int msg_ctlmni;
struct percpu_counter percpu_msg_bytes;
struct percpu_counter percpu_msg_hdrs;
size_t shm_ctlmax;
size_t shm_ctlall;
unsigned long shm_tot;
int shm_ctlmni;
int shm_rmid_forced;
struct notifier_block ipcns_nb;
struct vfsmount *mq_mnt;
unsigned int mq_queues_count;
unsigned int mq_queues_max;
unsigned int mq_msg_max;
unsigned int mq_msgsize_max;
unsigned int mq_msg_default;
unsigned int mq_msgsize_default;
struct ctl_table_set mq_set;
struct ctl_table_header *mq_sysctls;
struct ctl_table_set ipc_set;
struct ctl_table_header *ipc_sysctls;
struct user_namespace *user_ns;
struct ucounts *ucounts;
struct llist_node mnt_llist;
struct ns_common ns;
};
struct mq_attr {
__kernel_long_t mq_flags;
__kernel_long_t mq_maxmsg;
__kernel_long_t mq_msgsize;
__kernel_long_t mq_curmsgs;
__kernel_long_t __reserved[4];
};
struct sigevent {
sigval_t sigev_value;
int sigev_signo;
int sigev_notify;
union {
int _pad[12];
int _tid;
struct {
void (*_function)(sigval_t);
void *_attribute;
} _sigev_thread;
} _sigev_un;
};
struct msg_msg;
struct ext_wait_queue {
struct task_struct *task;
struct list_head list;
struct msg_msg *msg;
int state;
};
struct posix_msg_tree_node;
struct mqueue_inode_info {
spinlock_t lock;
struct inode vfs_inode;
wait_queue_head_t wait_q;
struct rb_root msg_tree;
struct rb_node *msg_tree_rightmost;
struct posix_msg_tree_node *node_cache;
struct mq_attr attr;
struct sigevent notify;
struct pid *notify_owner;
u32 notify_self_exec_id;
struct user_namespace *notify_user_ns;
struct ucounts *ucounts;
struct sock *notify_sock;
struct sk_buff *notify_cookie;
struct ext_wait_queue e_wait_q[2];
unsigned long qsize;
};
struct posix_msg_tree_node {
struct rb_node rb_node;
struct list_head msg_list;
int priority;
};
struct msg_msgseg;
struct msg_msg {
struct list_head m_list;
long m_type;
size_t m_ts;
struct msg_msgseg *next;
void *security;
};
typedef int __kernel_mqd_t;
typedef __kernel_mqd_t mqd_t;
struct mqueue_fs_context {
struct ipc_namespace *ipc_ns;
bool newns;
};
struct acpi_device_physical_node {
unsigned int node_id;
struct list_head node;
struct device *dev;
bool put_online: 1;
};
struct acpi_osc_context {
char *uuid_str;
int rev;
struct acpi_buffer cap;
struct acpi_buffer ret;
};
typedef acpi_status (*acpi_table_handler)(u32, void *, void *);
struct acpi_dev_walk_context {
int (*fn)(struct acpi_device *, void *);
void *data;
};
struct acpi_processor_throttling_arg {
struct acpi_processor *pr;
int target_state;
bool force;
};
struct throttling_tstate {
unsigned int cpu;
int target_state;
};
typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *);
struct veth_q_stat_desc {
char desc[32];
size_t offset;
};
enum {
VETH_INFO_UNSPEC = 0,
VETH_INFO_PEER = 1,
__VETH_INFO_MAX = 2,
};
struct veth_stats {
u64 rx_drops;
u64 xdp_packets;
u64 xdp_bytes;
u64 xdp_redirect;
u64 xdp_drops;
u64 xdp_tx;
u64 xdp_tx_err;
u64 peer_tq_xdp_xmit;
u64 peer_tq_xdp_xmit_err;
};
struct veth_rq_stats {
struct veth_stats vs;
struct u64_stats_sync syncp;
};
struct veth_rq {
struct napi_struct xdp_napi;
struct napi_struct __attribute__((btf_type_tag("rcu"))) *napi;
struct net_device *dev;
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog;
struct xdp_mem_info xdp_mem;
struct veth_rq_stats stats;
bool rx_notify_masked;
struct ptr_ring xdp_ring;
struct xdp_rxq_info xdp_rxq;
struct page_pool *page_pool;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct veth_priv {
struct net_device __attribute__((btf_type_tag("rcu"))) *peer;
atomic64_t dropped;
struct bpf_prog *_xdp_prog;
struct veth_rq *rq;
unsigned int requested_headroom;
};
struct veth_xdp_tx_bq {
struct xdp_frame *q[16];
unsigned int count;
};
struct veth_xdp_buff {
struct xdp_buff xdp;
struct sk_buff *skb;
};
enum iwl_table_type___2 {
LQ_NONE___2 = 0,
LQ_G = 1,
LQ_A = 2,
LQ_SISO = 3,
LQ_MIMO2 = 4,
LQ_MIMO3 = 5,
LQ_MAX___2 = 6,
};
struct iwl_rate_scale_data___2 {
u64 data;
s32 success_counter;
s32 success_ratio;
s32 counter;
s32 average_tpt;
unsigned long stamp;
};
struct iwl_scale_tbl_info___2 {
enum iwl_table_type___2 lq_type;
u8 ant_type;
u8 is_SGI;
u8 is_ht40;
u8 is_dup;
u8 action;
u8 max_search;
const u16 *expected_tpt;
u32 current_rate;
struct iwl_rate_scale_data___2 win[13];
};
struct iwl_traffic_load {
unsigned long time_stamp;
u32 packet_count[20];
u32 total;
u8 queue_count;
u8 head;
};
struct iwl_lq_sta___2 {
u8 active_tbl;
u8 enable_counter;
u8 stay_in_tbl;
u8 search_better_tbl;
s32 last_tpt;
u32 table_count_limit;
u32 max_failure_limit;
u32 max_success_limit;
u32 table_count;
u32 total_failed;
u32 total_success;
u64 flush_timer;
u8 action_counter;
u8 is_green;
u8 is_dup;
int: 0;
enum nl80211_band band;
u32 supp_rates;
u16 active_legacy_rate;
u16 active_siso_rate;
u16 active_mimo2_rate;
u16 active_mimo3_rate;
s8 max_rate_idx;
u8 missed_rate_counter;
struct iwl_link_quality_cmd lq;
long: 0;
struct iwl_scale_tbl_info___2 lq_info[2];
struct iwl_traffic_load load[8];
u8 tx_agg_tid_en;
long: 0;
struct iwl_priv *drv;
int last_txrate_idx;
u32 last_rate_n_flags;
u8 is_agg;
u8 last_bt_traffic;
long: 0;
} __attribute__((packed));
struct iwl_station_priv {
struct iwl_rxon_context *ctx;
struct iwl_lq_sta___2 lq_sta;
atomic_t pending_frames;
bool client;
bool asleep;
u8 max_agg_bufsize;
u8 sta_id;
};
struct iwl_wep_cmd {
u8 num_keys;
u8 global_key_type;
u8 flags;
u8 reserved;
struct iwl_wep_key key[0];
};
struct iwl_add_sta_resp {
u8 status;
};
struct iwl_rem_sta_cmd {
u8 num_sta;
u8 reserved[3];
u8 addr[6];
u8 reserved2[2];
};
struct iwl_rem_sta_resp {
u8 status;
};
typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *);
typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *);
typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int);
typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *);
typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *);
typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *);
typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *);
typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *);
typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *);
typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *);
typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *);
typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *);
typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *);
typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *);
typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *);
typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *);
typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *);
typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *);
typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *);
typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *);
typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *);
typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32);
typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32);
typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32);
typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32);
typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32);
struct dbc_request;
typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *);
struct xhci_dbc;
struct dbc_request {
void *buf;
unsigned int length;
dma_addr_t dma;
void (*complete)(struct xhci_dbc *, struct dbc_request *);
struct list_head list_pool;
int status;
unsigned int actual;
struct xhci_dbc *dbc;
struct list_head list_pending;
dma_addr_t trb_dma;
union xhci_trb *trb;
unsigned int direction: 1;
};
enum dbc_state {
DS_DISABLED = 0,
DS_INITIALIZED = 1,
DS_ENABLED = 2,
DS_CONNECTED = 3,
DS_CONFIGURED = 4,
DS_STALLED = 5,
DS_MAX = 6,
};
struct dbc_ep {
struct xhci_dbc *dbc;
struct list_head list_pending;
struct xhci_ring *ring;
unsigned int direction: 1;
};
struct dbc_regs;
struct dbc_str_descs;
struct dbc_driver;
struct xhci_dbc {
spinlock_t lock;
struct device *dev;
struct xhci_hcd *xhci;
struct dbc_regs *regs;
struct xhci_ring *ring_evt;
struct xhci_ring *ring_in;
struct xhci_ring *ring_out;
struct xhci_erst erst;
struct xhci_container_ctx *ctx;
struct dbc_str_descs *string;
dma_addr_t string_dma;
size_t string_size;
u16 idVendor;
u16 idProduct;
u16 bcdDevice;
u8 bInterfaceProtocol;
enum dbc_state state;
struct delayed_work event_work;
unsigned int poll_interval;
unsigned int resume_required: 1;
struct dbc_ep eps[2];
const struct dbc_driver *driver;
void *priv;
};
struct dbc_regs {
__le32 capability;
__le32 doorbell;
__le32 ersts;
__le32 __reserved_0;
__le64 erstba;
__le64 erdp;
__le32 control;
__le32 status;
__le32 portsc;
__le32 __reserved_1;
__le64 dccp;
__le32 devinfo1;
__le32 devinfo2;
};
struct dbc_str_descs {
char string0[64];
char manufacturer[64];
char product[64];
char serial[64];
};
struct dbc_driver {
int (*configure)(struct xhci_dbc *);
void (*disconnect)(struct xhci_dbc *);
};
typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *);
typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *);
typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *);
struct trace_event_raw_xhci_log_msg {
struct trace_entry ent;
u32 __data_loc_msg;
char __data[0];
};
struct trace_event_raw_xhci_log_ctx {
struct trace_entry ent;
int ctx_64;
unsigned int ctx_type;
dma_addr_t ctx_dma;
u8 *ctx_va;
unsigned int ctx_ep_num;
u32 __data_loc_ctx_data;
char __data[0];
};
struct trace_event_raw_xhci_log_trb {
struct trace_entry ent;
u32 type;
u32 field0;
u32 field1;
u32 field2;
u32 field3;
char __data[0];
};
struct trace_event_raw_xhci_log_free_virt_dev {
struct trace_entry ent;
void *vdev;
unsigned long long out_ctx;
unsigned long long in_ctx;
int hcd_portnum;
int hw_portnum;
u16 current_mel;
char __data[0];
};
struct trace_event_raw_xhci_log_virt_dev {
struct trace_entry ent;
void *vdev;
unsigned long long out_ctx;
unsigned long long in_ctx;
int devnum;
int state;
int speed;
u8 portnum;
u8 level;
int slot_id;
char __data[0];
};
struct trace_event_raw_xhci_log_urb {
struct trace_entry ent;
void *urb;
unsigned int pipe;
unsigned int stream;
int status;
unsigned int flags;
int num_mapped_sgs;
int num_sgs;
int length;
int actual;
int epnum;
int dir_in;
int type;
int slot_id;
char __data[0];
};
struct trace_event_raw_xhci_log_ep_ctx {
struct trace_entry ent;
u32 info;
u32 info2;
u64 deq;
u32 tx_info;
char __data[0];
};
struct trace_event_raw_xhci_log_slot_ctx {
struct trace_entry ent;
u32 info;
u32 info2;
u32 tt_info;
u32 state;
char __data[0];
};
struct trace_event_raw_xhci_log_ctrl_ctx {
struct trace_entry ent;
u32 drop;
u32 add;
char __data[0];
};
struct trace_event_raw_xhci_log_ring {
struct trace_entry ent;
u32 type;
void *ring;
dma_addr_t enq;
dma_addr_t deq;
dma_addr_t enq_seg;
dma_addr_t deq_seg;
unsigned int num_segs;
unsigned int stream_id;
unsigned int cycle_state;
unsigned int bounce_buf_len;
char __data[0];
};
struct trace_event_raw_xhci_log_portsc {
struct trace_entry ent;
u32 busnum;
u32 portnum;
u32 portsc;
char __data[0];
};
struct trace_event_raw_xhci_log_doorbell {
struct trace_entry ent;
u32 slot;
u32 doorbell;
char __data[0];
};
struct trace_event_raw_xhci_dbc_log_request {
struct trace_entry ent;
struct dbc_request *req;
bool dir;
unsigned int actual;
unsigned int length;
int status;
char __data[0];
};
struct trace_event_data_offsets_xhci_log_msg {
u32 msg;
const void *msg_ptr_;
};
struct trace_event_data_offsets_xhci_log_ctx {
u32 ctx_data;
const void *ctx_data_ptr_;
};
struct trace_event_data_offsets_xhci_log_trb {};
struct trace_event_data_offsets_xhci_log_free_virt_dev {};
struct trace_event_data_offsets_xhci_log_virt_dev {};
struct trace_event_data_offsets_xhci_log_urb {};
struct trace_event_data_offsets_xhci_log_ep_ctx {};
struct trace_event_data_offsets_xhci_log_slot_ctx {};
struct trace_event_data_offsets_xhci_log_ctrl_ctx {};
struct trace_event_data_offsets_xhci_log_ring {};
struct trace_event_data_offsets_xhci_log_portsc {};
struct trace_event_data_offsets_xhci_log_doorbell {};
struct trace_event_data_offsets_xhci_dbc_log_request {};
struct p2sb_res_cache {
u32 bus_dev_id;
struct resource res;
};
struct cgroup_cls_state {
struct cgroup_subsys_state css;
u32 classid;
};
struct update_classid_context {
u32 classid;
unsigned int batch;
};
enum {
NFACCT_NO_QUOTA = -1,
NFACCT_UNDERQUOTA = 0,
NFACCT_OVERQUOTA = 1,
};
enum nfnl_acct_flags {
NFACCT_F_QUOTA_PKTS = 1,
NFACCT_F_QUOTA_BYTES = 2,
NFACCT_F_OVERQUOTA = 4,
};
enum nfnl_acct_msg_types {
NFNL_MSG_ACCT_NEW = 0,
NFNL_MSG_ACCT_GET = 1,
NFNL_MSG_ACCT_GET_CTRZERO = 2,
NFNL_MSG_ACCT_DEL = 3,
NFNL_MSG_ACCT_OVERQUOTA = 4,
NFNL_MSG_ACCT_MAX = 5,
};
enum nfnetlink_groups {
NFNLGRP_NONE = 0,
NFNLGRP_CONNTRACK_NEW = 1,
NFNLGRP_CONNTRACK_UPDATE = 2,
NFNLGRP_CONNTRACK_DESTROY = 3,
NFNLGRP_CONNTRACK_EXP_NEW = 4,
NFNLGRP_CONNTRACK_EXP_UPDATE = 5,
NFNLGRP_CONNTRACK_EXP_DESTROY = 6,
NFNLGRP_NFTABLES = 7,
NFNLGRP_ACCT_QUOTA = 8,
NFNLGRP_NFTRACE = 9,
__NFNLGRP_MAX = 10,
};
enum nfnl_acct_type {
NFACCT_UNSPEC = 0,
NFACCT_NAME = 1,
NFACCT_PKTS = 2,
NFACCT_BYTES = 3,
NFACCT_USE = 4,
NFACCT_FLAGS = 5,
NFACCT_QUOTA = 6,
NFACCT_FILTER = 7,
NFACCT_PAD = 8,
__NFACCT_MAX = 9,
};
enum nfnl_attr_filter_type {
NFACCT_FILTER_UNSPEC = 0,
NFACCT_FILTER_MASK = 1,
NFACCT_FILTER_VALUE = 2,
__NFACCT_FILTER_MAX = 3,
};
struct nf_acct {
atomic64_t pkts;
atomic64_t bytes;
unsigned long flags;
struct list_head head;
refcount_t refcnt;
char name[32];
struct callback_head callback_head;
char data[0];
};
struct nfnl_acct_net {
struct list_head nfnl_acct_list;
};
struct nfacct_filter {
u32 value;
u32 mask;
};
enum nft_last_attributes {
NFTA_LAST_UNSPEC = 0,
NFTA_LAST_SET = 1,
NFTA_LAST_MSECS = 2,
NFTA_LAST_PAD = 3,
__NFTA_LAST_MAX = 4,
};
struct nft_last;
struct nft_last_priv {
struct nft_last *last;
};
struct nft_last {
unsigned long jiffies;
unsigned int set;
};
enum br_boolopt_id {
BR_BOOLOPT_NO_LL_LEARN = 0,
BR_BOOLOPT_MCAST_VLAN_SNOOPING = 1,
BR_BOOLOPT_MST_ENABLE = 2,
BR_BOOLOPT_MAX = 3,
};
enum ocb_deferred_task_flags {
OCB_WORK_HOUSEKEEPING = 0,
};
union amd_uncore_info;
struct amd_uncore_pmu;
struct amd_uncore {
union amd_uncore_info __attribute__((btf_type_tag("percpu"))) *info;
struct amd_uncore_pmu *pmus;
unsigned int num_pmus;
bool init_done;
void (*scan)(struct amd_uncore *, unsigned int);
int (*init)(struct amd_uncore *, unsigned int);
void (*move)(struct amd_uncore *, unsigned int);
void (*free)(struct amd_uncore *, unsigned int);
};
union amd_uncore_info {
struct {
u64 aux_data: 32;
u64 num_pmcs: 8;
u64 gid: 8;
u64 cid: 8;
} split;
u64 full;
};
struct amd_uncore_ctx;
struct amd_uncore_pmu {
char name[16];
int num_counters;
int rdpmc_base;
u32 msr_base;
int group;
cpumask_t active_mask;
struct pmu pmu;
struct amd_uncore_ctx * __attribute__((btf_type_tag("percpu"))) *ctx;
};
struct amd_uncore_ctx {
int refcnt;
int cpu;
struct perf_event **events;
struct hlist_node node;
};
enum {
UNCORE_TYPE_DF = 0,
UNCORE_TYPE_L3 = 1,
UNCORE_TYPE_UMC = 2,
UNCORE_TYPE_MAX = 3,
};
struct machine_ops {
void (*restart)(char *);
void (*halt)();
void (*power_off)();
void (*shutdown)();
void (*crash_shutdown)(struct pt_regs *);
void (*emergency_restart)();
};
typedef void (*nmi_shootdown_cb)(int, struct pt_regs *);
enum reboot_type {
BOOT_TRIPLE = 116,
BOOT_KBD = 107,
BOOT_BIOS = 98,
BOOT_ACPI = 97,
BOOT_EFI = 101,
BOOT_CF9_FORCE = 112,
BOOT_CF9_SAFE = 113,
};
enum reboot_mode {
REBOOT_UNDEFINED = -1,
REBOOT_COLD = 0,
REBOOT_WARM = 1,
REBOOT_HARD = 2,
REBOOT_SOFT = 3,
REBOOT_GPIO = 4,
};
struct cpuid_regs_done {
struct cpuid_regs regs;
struct completion done;
};
typedef unsigned long kimage_entry_t;
struct kexec_segment {
union {
void __attribute__((btf_type_tag("user"))) *buf;
void *kbuf;
};
size_t bufsz;
unsigned long mem;
size_t memsz;
};
struct kimage_arch {
p4d_t *p4d;
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
};
struct kimage {
kimage_entry_t head;
kimage_entry_t *entry;
kimage_entry_t *last_entry;
unsigned long start;
struct page *control_code_page;
struct page *swap_page;
void *vmcoreinfo_data_copy;
unsigned long nr_segments;
struct kexec_segment segment[16];
struct list_head control_pages;
struct list_head dest_pages;
struct list_head unusable_pages;
unsigned long control_page;
unsigned int type: 1;
unsigned int preserve_context: 1;
unsigned int file_mode: 1;
struct kimage_arch arch;
void *elf_headers;
unsigned long elf_headers_sz;
unsigned long elf_load_addr;
};
struct x86_mapping_info {
void * (*alloc_pgt_page)(void *);
void *context;
unsigned long page_flag;
unsigned long offset;
bool direct_gbpages;
unsigned long kernpg_flag;
};
struct init_pgtable_data {
struct x86_mapping_info *info;
pgd_t *level4p;
};
struct io_tlb_area {
unsigned long used;
unsigned int index;
spinlock_t lock;
};
struct io_tlb_slot {
phys_addr_t orig_addr;
size_t alloc_size;
unsigned int list;
};
typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t);
struct trace_event_raw_swiotlb_bounced {
struct trace_entry ent;
u32 __data_loc_dev_name;
u64 dma_mask;
dma_addr_t dev_addr;
size_t size;
bool force;
char __data[0];
};
struct trace_event_data_offsets_swiotlb_bounced {
u32 dev_name;
const void *dev_name_ptr_;
};
enum event_trigger_type {
ETT_NONE = 0,
ETT_TRACE_ONOFF = 1,
ETT_SNAPSHOT = 2,
ETT_STACKTRACE = 4,
ETT_EVENT_ENABLE = 8,
ETT_EVENT_HIST = 16,
ETT_HIST_ENABLE = 32,
ETT_EVENT_EPROBE = 64,
};
struct event_trigger_data;
struct event_trigger_ops;
struct event_command {
struct list_head list;
char *name;
enum event_trigger_type trigger_type;
int flags;
int (*parse)(struct event_command *, struct trace_event_file *, char *, char *, char *);
int (*reg)(char *, struct event_trigger_data *, struct trace_event_file *);
void (*unreg)(char *, struct event_trigger_data *, struct trace_event_file *);
void (*unreg_all)(struct trace_event_file *);
int (*set_filter)(char *, struct event_trigger_data *, struct trace_event_file *);
struct event_trigger_ops * (*get_trigger_ops)(char *, char *);
};
struct event_trigger_data {
unsigned long count;
int ref;
int flags;
struct event_trigger_ops *ops;
struct event_command *cmd_ops;
struct event_filter __attribute__((btf_type_tag("rcu"))) *filter;
char *filter_str;
void *private_data;
bool paused;
bool paused_tmp;
struct list_head list;
char *name;
struct list_head named_list;
struct event_trigger_data *named_data;
};
struct event_trigger_ops {
void (*trigger)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *);
int (*init)(struct event_trigger_data *);
void (*free)(struct event_trigger_data *);
int (*print)(struct seq_file *, struct event_trigger_data *);
};
enum event_command_flags {
EVENT_CMD_FL_POST_TRIGGER = 1,
EVENT_CMD_FL_NEEDS_REC = 2,
};
enum {
EVENT_TRIGGER_FL_PROBE = 1,
};
struct enable_trigger_data {
struct trace_event_file *file;
bool enable;
bool hist;
};
struct callchain_cpus_entries {
struct callback_head callback_head;
struct perf_callchain_entry *cpu_entries[0];
};
enum perf_callchain_context {
PERF_CONTEXT_HV = 18446744073709551584ULL,
PERF_CONTEXT_KERNEL = 18446744073709551488ULL,
PERF_CONTEXT_USER = 18446744073709551104ULL,
PERF_CONTEXT_GUEST = 18446744073709549568ULL,
PERF_CONTEXT_GUEST_KERNEL = 18446744073709549440ULL,
PERF_CONTEXT_GUEST_USER = 18446744073709549056ULL,
PERF_CONTEXT_MAX = 18446744073709547521ULL,
};
struct perf_buffer {
refcount_t refcount;
struct callback_head callback_head;
int nr_pages;
int overwrite;
int paused;
atomic_t poll;
local_t head;
unsigned int nest;
local_t events;
local_t wakeup;
local_t lost;
long watermark;
long aux_watermark;
spinlock_t event_lock;
struct list_head event_list;
atomic_t mmap_count;
unsigned long mmap_locked;
struct user_struct *mmap_user;
long aux_head;
unsigned int aux_nest;
long aux_wakeup;
unsigned long aux_pgoff;
int aux_nr_pages;
int aux_overwrite;
atomic_t aux_mmap_count;
unsigned long aux_mmap_locked;
void (*free_aux)(void *);
refcount_t aux_refcount;
int aux_in_sampling;
void **aux_pages;
void *aux_priv;
struct perf_event_mmap_page *user_page;
void *data_pages[0];
};
struct dentry_stat_t {
long nr_dentry;
long nr_unused;
long age_limit;
long want_pages;
long nr_negative;
long dummy;
};
enum d_walk_ret {
D_WALK_CONTINUE = 0,
D_WALK_QUIT = 1,
D_WALK_NORETRY = 2,
D_WALK_SKIP = 3,
};
struct external_name {
union {
atomic_t count;
struct callback_head head;
} u;
unsigned char name[0];
};
struct check_mount {
struct vfsmount *mnt;
unsigned int mounted;
};
struct name_snapshot {
struct qstr name;
unsigned char inline_name[40];
};
struct select_data {
struct dentry *start;
union {
long found;
struct dentry *victim;
};
struct list_head dispose;
};
enum btrfs_tree_block_status {
BTRFS_TREE_BLOCK_CLEAN = 0,
BTRFS_TREE_BLOCK_INVALID_NRITEMS = 1,
BTRFS_TREE_BLOCK_INVALID_PARENT_KEY = 2,
BTRFS_TREE_BLOCK_BAD_KEY_ORDER = 3,
BTRFS_TREE_BLOCK_INVALID_LEVEL = 4,
BTRFS_TREE_BLOCK_INVALID_FREE_SPACE = 5,
BTRFS_TREE_BLOCK_INVALID_OFFSETS = 6,
BTRFS_TREE_BLOCK_INVALID_BLOCKPTR = 7,
BTRFS_TREE_BLOCK_INVALID_ITEM = 8,
BTRFS_TREE_BLOCK_INVALID_OWNER = 9,
};
struct btrfs_stripe {
__le64 devid;
__le64 offset;
__u8 dev_uuid[16];
};
struct btrfs_chunk {
__le64 length;
__le64 owner;
__le64 stripe_len;
__le64 type;
__le32 io_align;
__le32 io_width;
__le32 sector_size;
__le16 num_stripes;
__le16 sub_stripes;
struct btrfs_stripe stripe;
};
struct btrfs_raid_stride {
__le64 devid;
__le64 physical;
};
struct btrfs_stripe_extent {
__u8 encoding;
__u8 reserved[7];
struct btrfs_raid_stride strides[0];
};
struct crypto_kpp {
unsigned int reqsize;
struct crypto_tfm base;
};
struct kpp_request;
struct kpp_alg {
int (*set_secret)(struct crypto_kpp *, const void *, unsigned int);
int (*generate_public_key)(struct kpp_request *);
int (*compute_shared_secret)(struct kpp_request *);
unsigned int (*max_size)(struct crypto_kpp *);
int (*init)(struct crypto_kpp *);
void (*exit)(struct crypto_kpp *);
struct crypto_alg base;
};
struct kpp_request {
struct crypto_async_request base;
struct scatterlist *src;
struct scatterlist *dst;
unsigned int src_len;
unsigned int dst_len;
void *__ctx[0];
};
struct kpp_instance {
void (*free)(struct kpp_instance *);
union {
struct {
char head[48];
struct crypto_instance base;
} s;
struct kpp_alg alg;
};
};
struct crypto_istat_kpp {
atomic64_t setsecret_cnt;
atomic64_t generate_public_key_cnt;
atomic64_t compute_shared_secret_cnt;
atomic64_t err_cnt;
};
struct crypto_kpp_spawn {
struct crypto_spawn base;
};
struct public_key {
void *key;
u32 keylen;
enum OID algo;
void *params;
u32 paramlen;
bool key_is_private;
const char *id_type;
const char *pkey_algo;
unsigned long key_eflags;
};
struct io_buffer {
struct list_head list;
__u64 addr;
__u32 len;
__u16 bid;
__u16 bgid;
};
struct io_uring_buf_ring;
struct io_buffer_list {
union {
struct list_head buf_list;
struct {
struct page **buf_pages;
struct io_uring_buf_ring *buf_ring;
};
struct callback_head rcu;
};
__u16 bgid;
__u16 buf_nr_pages;
__u16 nr_entries;
__u16 head;
__u16 mask;
__u8 is_buf_ring;
__u8 is_mmap;
__u8 is_ready;
};
struct io_uring_buf {
__u64 addr;
__u32 len;
__u16 bid;
__u16 resv;
};
struct io_uring_buf_ring {
union {
struct {
__u64 resv1;
__u32 resv2;
__u16 resv3;
__u16 tail;
};
struct {
struct {} __empty_bufs;
struct io_uring_buf bufs[0];
};
};
};
struct io_sq_data {
refcount_t refs;
atomic_t park_pending;
struct mutex lock;
struct list_head ctx_list;
struct task_struct *thread;
struct wait_queue_head wait;
unsigned int sq_thread_idle;
int sq_cpu;
pid_t task_pid;
pid_t task_tgid;
u64 work_time;
unsigned long state;
struct completion exited;
};
enum {
IO_EVENTFD_OP_SIGNAL_BIT = 0,
IO_EVENTFD_OP_FREE_BIT = 1,
};
enum {
IORING_REGISTER_BUFFERS = 0,
IORING_UNREGISTER_BUFFERS = 1,
IORING_REGISTER_FILES = 2,
IORING_UNREGISTER_FILES = 3,
IORING_REGISTER_EVENTFD = 4,
IORING_UNREGISTER_EVENTFD = 5,
IORING_REGISTER_FILES_UPDATE = 6,
IORING_REGISTER_EVENTFD_ASYNC = 7,
IORING_REGISTER_PROBE = 8,
IORING_REGISTER_PERSONALITY = 9,
IORING_UNREGISTER_PERSONALITY = 10,
IORING_REGISTER_RESTRICTIONS = 11,
IORING_REGISTER_ENABLE_RINGS = 12,
IORING_REGISTER_FILES2 = 13,
IORING_REGISTER_FILES_UPDATE2 = 14,
IORING_REGISTER_BUFFERS2 = 15,
IORING_REGISTER_BUFFERS_UPDATE = 16,
IORING_REGISTER_IOWQ_AFF = 17,
IORING_UNREGISTER_IOWQ_AFF = 18,
IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
IORING_REGISTER_RING_FDS = 20,
IORING_UNREGISTER_RING_FDS = 21,
IORING_REGISTER_PBUF_RING = 22,
IORING_UNREGISTER_PBUF_RING = 23,
IORING_REGISTER_SYNC_CANCEL = 24,
IORING_REGISTER_FILE_ALLOC_RANGE = 25,
IORING_REGISTER_PBUF_STATUS = 26,
IORING_REGISTER_NAPI = 27,
IORING_UNREGISTER_NAPI = 28,
IORING_REGISTER_LAST = 29,
IORING_REGISTER_USE_REGISTERED_RING = 2147483648,
};
enum {
IORING_RSRC_FILE = 0,
IORING_RSRC_BUFFER = 1,
};
enum io_uring_op {
IORING_OP_NOP = 0,
IORING_OP_READV = 1,
IORING_OP_WRITEV = 2,
IORING_OP_FSYNC = 3,
IORING_OP_READ_FIXED = 4,
IORING_OP_WRITE_FIXED = 5,
IORING_OP_POLL_ADD = 6,
IORING_OP_POLL_REMOVE = 7,
IORING_OP_SYNC_FILE_RANGE = 8,
IORING_OP_SENDMSG = 9,
IORING_OP_RECVMSG = 10,
IORING_OP_TIMEOUT = 11,
IORING_OP_TIMEOUT_REMOVE = 12,
IORING_OP_ACCEPT = 13,
IORING_OP_ASYNC_CANCEL = 14,
IORING_OP_LINK_TIMEOUT = 15,
IORING_OP_CONNECT = 16,
IORING_OP_FALLOCATE = 17,
IORING_OP_OPENAT = 18,
IORING_OP_CLOSE = 19,
IORING_OP_FILES_UPDATE = 20,
IORING_OP_STATX = 21,
IORING_OP_READ = 22,
IORING_OP_WRITE = 23,
IORING_OP_FADVISE = 24,
IORING_OP_MADVISE = 25,
IORING_OP_SEND = 26,
IORING_OP_RECV = 27,
IORING_OP_OPENAT2 = 28,
IORING_OP_EPOLL_CTL = 29,
IORING_OP_SPLICE = 30,
IORING_OP_PROVIDE_BUFFERS = 31,
IORING_OP_REMOVE_BUFFERS = 32,
IORING_OP_TEE = 33,
IORING_OP_SHUTDOWN = 34,
IORING_OP_RENAMEAT = 35,
IORING_OP_UNLINKAT = 36,
IORING_OP_MKDIRAT = 37,
IORING_OP_SYMLINKAT = 38,
IORING_OP_LINKAT = 39,
IORING_OP_MSG_RING = 40,
IORING_OP_FSETXATTR = 41,
IORING_OP_SETXATTR = 42,
IORING_OP_FGETXATTR = 43,
IORING_OP_GETXATTR = 44,
IORING_OP_SOCKET = 45,
IORING_OP_URING_CMD = 46,
IORING_OP_SEND_ZC = 47,
IORING_OP_SENDMSG_ZC = 48,
IORING_OP_READ_MULTISHOT = 49,
IORING_OP_WAITID = 50,
IORING_OP_FUTEX_WAIT = 51,
IORING_OP_FUTEX_WAKE = 52,
IORING_OP_FUTEX_WAITV = 53,
IORING_OP_FIXED_FD_INSTALL = 54,
IORING_OP_FTRUNCATE = 55,
IORING_OP_LAST = 56,
};
enum {
IORING_RESTRICTION_REGISTER_OP = 0,
IORING_RESTRICTION_SQE_OP = 1,
IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3,
IORING_RESTRICTION_LAST = 4,
};
struct io_tctx_node {
struct list_head ctx_node;
struct task_struct *task;
struct io_ring_ctx *ctx;
};
struct io_uring_file_index_range {
__u32 off;
__u32 len;
__u64 resv;
};
struct io_uring_probe_op {
__u8 op;
__u8 resv;
__u16 flags;
__u32 resv2;
};
struct io_uring_probe {
__u8 last_op;
__u8 ops_len;
__u16 resv;
__u32 resv2[3];
struct io_uring_probe_op ops[0];
};
struct io_uring_restriction {
__u16 opcode;
union {
__u8 register_op;
__u8 sqe_op;
__u8 sqe_flags;
};
__u8 resv;
__u32 resv2[3];
};
struct exar8250;
struct exar8250_board {
unsigned int num_ports;
unsigned int reg_shift;
int (*setup)(struct exar8250 *, struct pci_dev *, struct uart_8250_port *, int);
void (*exit)(struct pci_dev *);
};
struct exar8250 {
unsigned int nr;
struct exar8250_board *board;
void *virt;
int line[0];
};
struct exar8250_platform {
int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *);
const struct serial_rs485 *rs485_supported;
int (*register_gpio)(struct pci_dev *, struct uart_8250_port *);
void (*unregister_gpio)(struct uart_8250_port *);
};
enum iwl_context_info_flags {
IWL_CTXT_INFO_AUTO_FUNC_INIT = 1,
IWL_CTXT_INFO_EARLY_DEBUG = 2,
IWL_CTXT_INFO_ENABLE_CDMP = 4,
IWL_CTXT_INFO_RB_CB_SIZE = 240,
IWL_CTXT_INFO_TFD_FORMAT_LONG = 256,
IWL_CTXT_INFO_RB_SIZE = 7680,
IWL_CTXT_INFO_RB_SIZE_1K = 1,
IWL_CTXT_INFO_RB_SIZE_2K = 2,
IWL_CTXT_INFO_RB_SIZE_4K = 4,
IWL_CTXT_INFO_RB_SIZE_8K = 8,
IWL_CTXT_INFO_RB_SIZE_12K = 9,
IWL_CTXT_INFO_RB_SIZE_16K = 10,
IWL_CTXT_INFO_RB_SIZE_20K = 11,
IWL_CTXT_INFO_RB_SIZE_24K = 12,
IWL_CTXT_INFO_RB_SIZE_28K = 13,
IWL_CTXT_INFO_RB_SIZE_32K = 14,
};
struct earlycon_device;
struct earlycon_id {
char name[15];
char name_term;
char compatible[128];
int (*setup)(struct earlycon_device *, const char *);
};
struct earlycon_device {
struct console *con;
struct uart_port port;
char options[32];
unsigned int baud;
};
struct font_desc {
int idx;
const char *name;
unsigned int width;
unsigned int height;
unsigned int charcount;
const void *data;
int pref;
};
struct clock_identity {
u8 id[8];
};
struct port_identity {
struct clock_identity clock_identity;
__be16 port_number;
};
struct ptp_header {
u8 tsmt;
u8 ver;
__be16 message_length;
u8 domain_number;
u8 reserved1;
u8 flag_field[2];
__be64 correction;
__be32 reserved2;
struct port_identity source_port_identity;
__be16 sequence_id;
u8 control;
u8 log_message_interval;
} __attribute__((packed));
enum ip_conntrack_expect_events {
IPEXP_NEW = 0,
IPEXP_DESTROY = 1,
};
struct ct_expect_iter_state {
struct seq_net_private p;
unsigned int bucket;
};
enum xfrm_replay_mode {
XFRM_REPLAY_MODE_LEGACY = 0,
XFRM_REPLAY_MODE_BMP = 1,
XFRM_REPLAY_MODE_ESN = 2,
};
enum ieee80211_tpt_led_trigger_flags {
IEEE80211_TPT_LEDTRIG_FL_RADIO = 1,
IEEE80211_TPT_LEDTRIG_FL_WORK = 2,
IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4,
};
struct ieee80211_roc_work {
struct list_head list;
struct ieee80211_sub_if_data *sdata;
struct ieee80211_channel *chan;
bool started;
bool abort;
bool hw_begun;
bool notified;
bool on_channel;
unsigned long start_time;
u32 duration;
u32 req_duration;
struct sk_buff *frame;
u64 cookie;
u64 mgmt_tx_cookie;
enum ieee80211_roc_type type;
};
struct cstate_model {
unsigned long core_events;
unsigned long pkg_events;
unsigned long module_events;
unsigned long quirks;
};
enum perf_cstate_pkg_events {
PERF_CSTATE_PKG_C2_RES = 0,
PERF_CSTATE_PKG_C3_RES = 1,
PERF_CSTATE_PKG_C6_RES = 2,
PERF_CSTATE_PKG_C7_RES = 3,
PERF_CSTATE_PKG_C8_RES = 4,
PERF_CSTATE_PKG_C9_RES = 5,
PERF_CSTATE_PKG_C10_RES = 6,
PERF_CSTATE_PKG_EVENT_MAX = 7,
};
enum perf_cstate_core_events {
PERF_CSTATE_CORE_C1_RES = 0,
PERF_CSTATE_CORE_C3_RES = 1,
PERF_CSTATE_CORE_C6_RES = 2,
PERF_CSTATE_CORE_C7_RES = 3,
PERF_CSTATE_CORE_EVENT_MAX = 4,
};
enum perf_cstate_module_events {
PERF_CSTATE_MODULE_C6_RES = 0,
PERF_CSTATE_MODULE_EVENT_MAX = 1,
};
struct cyc2ns {
struct cyc2ns_data data[2];
seqcount_latch_t seq;
};
typedef unsigned int u_int;
struct cpufreq_freqs {
struct cpufreq_policy *policy;
unsigned int old;
unsigned int new;
u8 flags;
};
struct cpuid_bit {
u16 feature;
u8 reg;
u8 bit;
u32 level;
u32 sub_leaf;
};
enum cpuid_regs_idx {
CPUID_EAX = 0,
CPUID_EBX = 1,
CPUID_ECX = 2,
CPUID_EDX = 3,
};
struct x86_topology_system {
unsigned int dom_shifts[7];
unsigned int dom_size[7];
};
struct topo_scan {
struct cpuinfo_x86 *c;
unsigned int dom_shifts[7];
unsigned int dom_ncpus[7];
unsigned int ebx1_nproc_shift;
u16 amd_nodes_per_pkg;
u16 amd_node_id;
};
enum {
MSI_FLAG_USE_DEF_DOM_OPS = 1,
MSI_FLAG_USE_DEF_CHIP_OPS = 2,
MSI_FLAG_ACTIVATE_EARLY = 4,
MSI_FLAG_MUST_REACTIVATE = 8,
MSI_FLAG_DEV_SYSFS = 16,
MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = 32,
MSI_FLAG_FREE_MSI_DESCS = 64,
MSI_FLAG_USE_DEV_FWNODE = 128,
MSI_FLAG_PARENT_PM_DEV = 256,
MSI_GENERIC_FLAGS_MASK = 65535,
MSI_DOMAIN_FLAGS_MASK = 4294901760,
MSI_FLAG_MULTI_PCI_MSI = 65536,
MSI_FLAG_PCI_MSIX = 131072,
MSI_FLAG_LEVEL_CAPABLE = 262144,
MSI_FLAG_MSIX_CONTIGUOUS = 524288,
MSI_FLAG_PCI_MSIX_ALLOC_DYN = 1048576,
MSI_FLAG_PCI_IMS = 2097152,
};
enum {
IRQCHIP_SET_TYPE_MASKED = 1,
IRQCHIP_EOI_IF_HANDLED = 2,
IRQCHIP_MASK_ON_SUSPEND = 4,
IRQCHIP_ONOFFLINE_ENABLED = 8,
IRQCHIP_SKIP_SET_WAKE = 16,
IRQCHIP_ONESHOT_SAFE = 32,
IRQCHIP_EOI_THREADED = 64,
IRQCHIP_SUPPORTS_LEVEL_MSI = 128,
IRQCHIP_SUPPORTS_NMI = 256,
IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512,
IRQCHIP_AFFINITY_PRE_STARTUP = 1024,
IRQCHIP_IMMUTABLE = 2048,
};
struct misc_res {
u64 max;
atomic64_t usage;
atomic64_t events;
};
struct misc_cg {
struct cgroup_subsys_state css;
struct cgroup_file events_file;
struct misc_res res[0];
};
enum misc_res_type {
MISC_CG_RES_TYPES = 0,
};
typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *);
typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *);
struct lru_rotate {
local_lock_t lock;
struct folio_batch fbatch;
};
struct cpu_fbatches {
local_lock_t lock;
struct folio_batch lru_add;
struct folio_batch lru_deactivate_file;
struct folio_batch lru_deactivate;
struct folio_batch lru_lazyfree;
struct folio_batch activate;
};
struct trace_event_raw_mm_lru_insertion {
struct trace_entry ent;
struct folio *folio;
unsigned long pfn;
enum lru_list lru;
unsigned long flags;
char __data[0];
};
struct trace_event_raw_mm_lru_activate {
struct trace_entry ent;
struct folio *folio;
unsigned long pfn;
char __data[0];
};
typedef void (*move_fn_t)(struct lruvec *, struct folio *);
struct trace_event_data_offsets_mm_lru_insertion {};
struct trace_event_data_offsets_mm_lru_activate {};
typedef union {
struct page **pages;
struct folio **folios;
struct encoded_page **encoded_pages;
} release_pages_arg;
struct mnt_idmap {
struct uid_gid_map uid_map;
struct uid_gid_map gid_map;
refcount_t count;
};
enum criteria {
CR_POWER2_ALIGNED = 0,
CR_GOAL_LEN_FAST = 1,
CR_BEST_AVAIL_LEN = 2,
CR_GOAL_LEN_SLOW = 3,
CR_ANY_FREE = 4,
EXT4_MB_NUM_CRS = 5,
};
enum {
MB_INODE_PA = 0,
MB_GROUP_PA = 1,
};
enum blk_default_limits {
BLK_MAX_SEGMENTS = 128,
BLK_SAFE_MAX_SECTORS = 255,
BLK_MAX_SEGMENT_SIZE = 65536,
BLK_SEG_BOUNDARY_MASK = 4294967295,
};
struct ext4_free_data {
struct list_head efd_list;
struct rb_node efd_node;
ext4_group_t efd_group;
ext4_grpblk_t efd_start_cluster;
ext4_grpblk_t efd_count;
tid_t efd_tid;
};
struct ext4_buddy {
struct page *bd_buddy_page;
void *bd_buddy;
struct page *bd_bitmap_page;
void *bd_bitmap;
struct ext4_group_info *bd_info;
struct super_block *bd_sb;
__u16 bd_blkbits;
ext4_group_t bd_group;
};
struct sg {
struct ext4_group_info info;
ext4_grpblk_t counters[18];
};
typedef int __kernel_key_t;
typedef __kernel_key_t key_t;
struct kern_ipc_perm {
spinlock_t lock;
bool deleted;
int id;
key_t key;
kuid_t uid;
kgid_t gid;
kuid_t cuid;
kgid_t cgid;
umode_t mode;
unsigned long seq;
void *security;
struct rhash_head khtnode;
struct callback_head rcu;
refcount_t refcount;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct ipc_params;
struct ipc_ops {
int (*getnew)(struct ipc_namespace *, struct ipc_params *);
int (*associate)(struct kern_ipc_perm *, int);
int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *);
};
struct ipc_params {
key_t key;
int flg;
union {
size_t size;
int nsems;
} u;
};
struct ipc_proc_iface {
const char *path;
const char *header;
int ids;
int (*show)(struct seq_file *, void *);
};
typedef unsigned int __kernel_mode_t;
struct ipc64_perm {
__kernel_key_t key;
__kernel_uid32_t uid;
__kernel_gid32_t gid;
__kernel_uid32_t cuid;
__kernel_gid32_t cgid;
__kernel_mode_t mode;
unsigned char __pad1[0];
unsigned short seq;
unsigned short __pad2;
__kernel_ulong_t __unused1;
__kernel_ulong_t __unused2;
};
struct ipc_perm {
__kernel_key_t key;
__kernel_uid_t uid;
__kernel_gid_t gid;
__kernel_uid_t cuid;
__kernel_gid_t cgid;
__kernel_mode_t mode;
unsigned short seq;
};
struct ipc_proc_iter {
struct ipc_namespace *ns;
struct pid_namespace *pid_ns;
struct ipc_proc_iface *iface;
};
struct io_issue_def {
unsigned int needs_file: 1;
unsigned int plug: 1;
unsigned int hash_reg_file: 1;
unsigned int unbound_nonreg_file: 1;
unsigned int pollin: 1;
unsigned int pollout: 1;
unsigned int poll_exclusive: 1;
unsigned int buffer_select: 1;
unsigned int not_supported: 1;
unsigned int audit_skip: 1;
unsigned int ioprio: 1;
unsigned int iopoll: 1;
unsigned int iopoll_queue: 1;
unsigned int manual_alloc: 1;
unsigned int vectored: 1;
int (*issue)(struct io_kiocb *, unsigned int);
int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
};
struct io_poll {
struct file *file;
struct wait_queue_head *head;
__poll_t events;
int retries;
struct wait_queue_entry wait;
};
struct async_poll {
union {
struct io_poll poll;
struct io_cache_entry cache;
};
struct io_poll *double_poll;
};
struct io_cold_def {
unsigned short async_size;
const char *name;
int (*prep_async)(struct io_kiocb *);
void (*cleanup)(struct io_kiocb *);
void (*fail)(struct io_kiocb *);
};
typedef struct {
int deltaFindState;
U32 deltaNbBits;
} FSE_symbolCompressionTransform;
typedef struct {
size_t bitContainer;
unsigned int bitPos;
char *startPtr;
char *ptr;
char *endPtr;
} BIT_CStream_t;
typedef struct {
ptrdiff_t value;
const void *stateTable;
const void *symbolTT;
unsigned int stateLog;
} FSE_CState_t;
typedef enum {
search_hashChain = 0,
search_binaryTree = 1,
search_rowHash = 2,
} searchMethod_e;
typedef U64 ZSTD_VecMask;
struct vt_spawn_console {
spinlock_t lock;
struct pid *pid;
int sig;
};
struct kbd_struct {
unsigned char lockstate;
unsigned char slockstate;
unsigned char ledmode: 1;
unsigned char ledflagstate: 4;
char: 3;
unsigned char default_ledflagstate: 4;
unsigned char kbdmode: 3;
int: 1;
unsigned char modeflags: 5;
};
typedef void k_handler_fn(struct vc_data *, unsigned char, char);
typedef void fn_handler_fn(struct vc_data *);
struct getset_keycode_data {
struct input_keymap_entry ke;
int error;
};
struct keyboard_notifier_param {
struct vc_data *vc;
int down;
int shift;
int ledstate;
unsigned int value;
};
struct kbd_repeat {
int delay;
int period;
};
struct kbdiacr {
unsigned char diacr;
unsigned char base;
unsigned char result;
};
struct kbdiacrs {
unsigned int kb_cnt;
struct kbdiacr kbdiacr[256];
};
struct kbdiacrsuc {
unsigned int kb_cnt;
struct kbdiacruc kbdiacruc[256];
};
struct kbkeycode {
unsigned int scancode;
unsigned int keycode;
};
struct kbentry {
unsigned char kb_table;
unsigned char kb_index;
unsigned short kb_value;
};
struct kbsentry {
unsigned char kb_func;
unsigned char kb_string[512];
};
enum e1000_state_t___2 {
__E1000_TESTING___2 = 0,
__E1000_RESETTING___2 = 1,
__E1000_ACCESS_SHARED_RESOURCE = 2,
__E1000_DOWN___2 = 3,
};
union e1000_rx_desc_extended {
struct {
__le64 buffer_addr;
__le64 reserved;
} read;
struct {
struct {
__le32 mrq;
union {
__le32 rss;
struct {
__le16 ip_id;
__le16 csum;
} csum_ip;
} hi_dword;
} lower;
struct {
__le32 status_error;
__le16 length;
__le16 vlan;
} upper;
} wb;
};
enum iwl_location_subcmd_ids {
TOF_RANGE_REQ_CMD = 0,
TOF_CONFIG_CMD = 1,
TOF_RANGE_ABORT_CMD = 2,
TOF_RANGE_REQ_EXT_CMD = 3,
TOF_RESPONDER_CONFIG_CMD = 4,
TOF_RESPONDER_DYN_CONFIG_CMD = 5,
CSI_HEADER_NOTIFICATION = 250,
CSI_CHUNKS_NOTIFICATION = 251,
TOF_LC_NOTIF = 252,
TOF_RESPONDER_STATS = 253,
TOF_MCSI_DEBUG_NOTIF = 254,
TOF_RANGE_RESPONSE_NOTIF = 255,
};
enum iwl_location_cipher {
IWL_LOCATION_CIPHER_CCMP_128 = 0,
IWL_LOCATION_CIPHER_GCMP_128 = 1,
IWL_LOCATION_CIPHER_GCMP_256 = 2,
IWL_LOCATION_CIPHER_INVALID = 3,
IWL_LOCATION_CIPHER_MAX = 4,
};
enum ftm_responder_stats_flags {
FTM_RESP_STAT_NON_ASAP_STARTED = 1,
FTM_RESP_STAT_NON_ASAP_IN_WIN = 2,
FTM_RESP_STAT_NON_ASAP_OUT_WIN = 4,
FTM_RESP_STAT_TRIGGER_DUP = 8,
FTM_RESP_STAT_DUP = 16,
FTM_RESP_STAT_DUP_IN_WIN = 32,
FTM_RESP_STAT_DUP_OUT_WIN = 64,
FTM_RESP_STAT_SCHED_SUCCESS = 128,
FTM_RESP_STAT_ASAP_REQ = 256,
FTM_RESP_STAT_NON_ASAP_REQ = 512,
FTM_RESP_STAT_ASAP_RESP = 1024,
FTM_RESP_STAT_NON_ASAP_RESP = 2048,
FTM_RESP_STAT_FAIL_INITIATOR_INACTIVE = 4096,
FTM_RESP_STAT_FAIL_INITIATOR_OUT_WIN = 8192,
FTM_RESP_STAT_FAIL_INITIATOR_RETRY_LIM = 16384,
FTM_RESP_STAT_FAIL_NEXT_SERVED = 32768,
FTM_RESP_STAT_FAIL_TRIGGER_ERR = 65536,
FTM_RESP_STAT_FAIL_GC = 131072,
FTM_RESP_STAT_SUCCESS = 262144,
FTM_RESP_STAT_INTEL_IE = 524288,
FTM_RESP_STAT_INITIATOR_ACTIVE = 1048576,
FTM_RESP_STAT_MEASUREMENTS_AVAILABLE = 2097152,
FTM_RESP_STAT_TRIGGER_UNKNOWN = 4194304,
FTM_RESP_STAT_PROCESS_FAIL = 8388608,
FTM_RESP_STAT_ACK = 16777216,
FTM_RESP_STAT_NACK = 33554432,
FTM_RESP_STAT_INVALID_INITIATOR_ID = 67108864,
FTM_RESP_STAT_TIMER_MIN_DELTA = 134217728,
FTM_RESP_STAT_INITIATOR_REMOVED = 268435456,
FTM_RESP_STAT_INITIATOR_ADDED = 536870912,
FTM_RESP_STAT_ERR_LIST_FULL = 1073741824,
FTM_RESP_STAT_INITIATOR_SCHED_NOW = 2147483648,
};
enum iwl_responder_dyn_cfg_valid_flags {
IWL_RESPONDER_DYN_CFG_VALID_LCI = 1,
IWL_RESPONDER_DYN_CFG_VALID_CIVIC = 2,
IWL_RESPONDER_DYN_CFG_VALID_PASN_STA = 4,
};
enum iwl_tof_responder_cmd_valid_field {
IWL_TOF_RESPONDER_CMD_VALID_CHAN_INFO = 1,
IWL_TOF_RESPONDER_CMD_VALID_TOA_OFFSET = 2,
IWL_TOF_RESPONDER_CMD_VALID_COMMON_CALIB = 4,
IWL_TOF_RESPONDER_CMD_VALID_SPECIFIC_CALIB = 8,
IWL_TOF_RESPONDER_CMD_VALID_BSSID = 16,
IWL_TOF_RESPONDER_CMD_VALID_TX_ANT = 32,
IWL_TOF_RESPONDER_CMD_VALID_ALGO_TYPE = 64,
IWL_TOF_RESPONDER_CMD_VALID_NON_ASAP_SUPPORT = 128,
IWL_TOF_RESPONDER_CMD_VALID_STATISTICS_REPORT_SUPPORT = 256,
IWL_TOF_RESPONDER_CMD_VALID_MCSI_NOTIF_SUPPORT = 512,
IWL_TOF_RESPONDER_CMD_VALID_FAST_ALGO_SUPPORT = 1024,
IWL_TOF_RESPONDER_CMD_VALID_RETRY_ON_ALGO_FAIL = 2048,
IWL_TOF_RESPONDER_CMD_VALID_STA_ID = 4096,
IWL_TOF_RESPONDER_CMD_VALID_NDP_SUPPORT = 4194304,
IWL_TOF_RESPONDER_CMD_VALID_NDP_PARAMS = 8388608,
IWL_TOF_RESPONDER_CMD_VALID_LMR_FEEDBACK = 16777216,
IWL_TOF_RESPONDER_CMD_VALID_SESSION_ID = 33554432,
IWL_TOF_RESPONDER_CMD_VALID_BSS_COLOR = 67108864,
IWL_TOF_RESPONDER_CMD_VALID_MIN_MAX_TIME_BETWEEN_MSR = 134217728,
};
enum iwl_location_frame_format {
IWL_LOCATION_FRAME_FORMAT_LEGACY = 0,
IWL_LOCATION_FRAME_FORMAT_HT = 1,
IWL_LOCATION_FRAME_FORMAT_VHT = 2,
IWL_LOCATION_FRAME_FORMAT_HE = 3,
};
enum iwl_location_bw {
IWL_LOCATION_BW_20MHZ = 0,
IWL_LOCATION_BW_40MHZ = 1,
IWL_LOCATION_BW_80MHZ = 2,
IWL_LOCATION_BW_160MHZ = 3,
};
enum iwl_tof_bandwidth {
IWL_TOF_BW_20_LEGACY = 0,
IWL_TOF_BW_20_HT = 1,
IWL_TOF_BW_40 = 2,
IWL_TOF_BW_80 = 3,
IWL_TOF_BW_160 = 4,
IWL_TOF_BW_NUM = 5,
};
struct iwl_mvm_pasn_sta {
struct list_head list;
struct iwl_mvm_int_sta int_sta;
u8 addr[6];
struct ieee80211_key_conf keyconf;
};
struct iwl_tof_responder_config_cmd_v9 {
__le32 cmd_valid_fields;
__le32 responder_cfg_flags;
u8 format_bw;
u8 bss_color;
u8 channel_num;
u8 ctrl_ch_position;
u8 sta_id;
u8 reserved1;
__le16 toa_offset;
__le16 common_calib;
__le16 specific_calib;
u8 bssid[6];
u8 r2i_ndp_params;
u8 i2r_ndp_params;
__le16 min_time_between_msr;
__le16 max_time_between_msr;
};
struct iwl_tof_responder_dyn_config_cmd_v2 {
__le32 lci_len;
__le32 civic_len;
u8 lci_civic[0];
};
struct iwl_mvm_pasn_hltk_data {
u8 *addr;
u8 cipher;
u8 *hltk;
};
struct iwl_tof_responder_dyn_config_cmd {
u8 cipher;
u8 valid_flags;
u8 lci_len;
u8 civic_len;
u8 lci_buf[160];
u8 civic_buf[160];
u8 hltk_buf[32];
u8 addr[6];
u8 reserved[2];
};
struct iwl_ftm_responder_stats {
u8 addr[6];
u8 success_ftm;
u8 ftm_per_burst;
__le32 flags;
__le32 duration;
__le32 allocated_duration;
u8 bw;
u8 rate;
__le16 reserved;
};
struct usb_dynid {
struct list_head node;
struct usb_device_id id;
};
struct freq_attr {
struct attribute attr;
ssize_t (*show)(struct cpufreq_policy *, char *);
ssize_t (*store)(struct cpufreq_policy *, const char *, size_t);
};
struct cpufreq_policy_data {
struct cpufreq_cpuinfo cpuinfo;
struct cpufreq_frequency_table *freq_table;
unsigned int cpu;
unsigned int min;
unsigned int max;
};
struct dmi_device_attribute {
struct device_attribute dev_attr;
int field;
};
struct mafield {
const char *prefix;
int field;
};
struct bpf_dispatcher_prog {
struct bpf_prog *prog;
refcount_t users;
};
struct bpf_dispatcher {
struct mutex mutex;
void *func;
struct bpf_dispatcher_prog progs[48];
int num_progs;
void *image;
void *rw_image;
u32 image_off;
struct bpf_ksym ksym;
struct static_call_key *sc_key;
void *sc_tramp;
};
struct ipv6_bpf_stub {
int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32);
struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *);
int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int);
int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t);
int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *);
};
struct bpf_scratchpad {
union {
__be32 diff[128];
u8 buff[512];
};
};
enum {
BPF_F_NEIGH = 2,
BPF_F_PEER = 4,
BPF_F_NEXTHOP = 8,
};
enum {
BPF_F_RECOMPUTE_CSUM = 1,
BPF_F_INVALIDATE_HASH = 2,
};
enum bpf_hdr_start_off {
BPF_HDR_START_MAC = 0,
BPF_HDR_START_NET = 1,
};
enum {
BPF_F_HDR_FIELD_MASK = 15,
};
enum {
BPF_F_PSEUDO_HDR = 16,
BPF_F_MARK_MANGLED_0 = 32,
BPF_F_MARK_ENFORCE = 64,
};
enum {
BPF_CSUM_LEVEL_QUERY = 0,
BPF_CSUM_LEVEL_INC = 1,
BPF_CSUM_LEVEL_DEC = 2,
BPF_CSUM_LEVEL_RESET = 3,
};
enum {
BPF_F_INGRESS = 1,
};
enum {
BPF_F_ADJ_ROOM_FIXED_GSO = 1,
BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 2,
BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 4,
BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8,
BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16,
BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32,
BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64,
BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 128,
BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 256,
};
enum {
BPF_ADJ_ROOM_ENCAP_L2_MASK = 255,
BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56,
};
enum bpf_adj_room_mode {
BPF_ADJ_ROOM_NET = 0,
BPF_ADJ_ROOM_MAC = 1,
};
struct xdp_sock {
struct sock sk;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct xsk_queue *rx;
struct net_device *dev;
struct xdp_umem *umem;
struct list_head flush_node;
struct xsk_buff_pool *pool;
u16 queue_id;
bool zc;
bool sg;
enum {
XSK_READY = 0,
XSK_BOUND = 1,
XSK_UNBOUND = 2,
} state;
long: 64;
struct xsk_queue *tx;
struct list_head tx_list;
u32 tx_budget_spent;
spinlock_t rx_lock;
u64 rx_dropped;
u64 rx_queue_full;
struct sk_buff *skb;
struct list_head map_list;
spinlock_t map_list_lock;
struct mutex mutex;
struct xsk_queue *fq_tmp;
struct xsk_queue *cq_tmp;
long: 64;
long: 64;
long: 64;
};
enum {
BPF_F_INDEX_MASK = 4294967295ULL,
BPF_F_CURRENT_CPU = 4294967295ULL,
BPF_F_CTXLEN_MASK = 4503595332403200ULL,
};
enum {
BPF_F_TUNINFO_IPV6 = 1,
};
enum {
BPF_F_TUNINFO_FLAGS = 16,
};
enum {
BPF_F_ZERO_CSUM_TX = 2,
BPF_F_DONT_FRAGMENT = 4,
BPF_F_SEQ_NUMBER = 8,
BPF_F_NO_TUNNEL_KEY = 16,
};
enum {
TCP_BPF_IW = 1001,
TCP_BPF_SNDCWND_CLAMP = 1002,
TCP_BPF_DELACK_MAX = 1003,
TCP_BPF_RTO_MIN = 1004,
TCP_BPF_SYN = 1005,
TCP_BPF_SYN_IP = 1006,
TCP_BPF_SYN_MAC = 1007,
};
enum {
BPF_FIB_LOOKUP_DIRECT = 1,
BPF_FIB_LOOKUP_OUTPUT = 2,
BPF_FIB_LOOKUP_SKIP_NEIGH = 4,
BPF_FIB_LOOKUP_TBID = 8,
BPF_FIB_LOOKUP_SRC = 16,
BPF_FIB_LOOKUP_MARK = 32,
};
enum {
BPF_FIB_LKUP_RET_SUCCESS = 0,
BPF_FIB_LKUP_RET_BLACKHOLE = 1,
BPF_FIB_LKUP_RET_UNREACHABLE = 2,
BPF_FIB_LKUP_RET_PROHIBIT = 3,
BPF_FIB_LKUP_RET_NOT_FWDED = 4,
BPF_FIB_LKUP_RET_FWD_DISABLED = 5,
BPF_FIB_LKUP_RET_UNSUPP_LWT = 6,
BPF_FIB_LKUP_RET_NO_NEIGH = 7,
BPF_FIB_LKUP_RET_FRAG_NEEDED = 8,
BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9,
};
enum bpf_check_mtu_ret {
BPF_MTU_CHK_RET_SUCCESS = 0,
BPF_MTU_CHK_RET_FRAG_NEEDED = 1,
BPF_MTU_CHK_RET_SEGS_TOOBIG = 2,
};
enum bpf_check_mtu_flags {
BPF_MTU_CHK_SEGS = 1,
};
enum {
BPF_LOAD_HDR_OPT_TCP_SYN = 1,
};
enum {
BPF_SKB_TSTAMP_UNSPEC = 0,
BPF_SKB_TSTAMP_DELIVERY_MONO = 1,
};
enum {
BPF_SK_LOOKUP_F_REPLACE = 1,
BPF_SK_LOOKUP_F_NO_REUSEPORT = 2,
};
typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *);
typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32);
typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32);
typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int);
typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int);
typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int);
typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int);
typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int);
typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int);
typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64);
typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32);
typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32);
typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32);
typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32);
typedef u64 (*btf_bpf_sk_fullsock)(struct sock *);
typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32);
typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64);
typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum);
typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum);
typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64);
typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64);
typedef u64 (*btf_bpf_redirect)(u32, u64);
typedef u64 (*btf_bpf_redirect_peer)(u32, u64);
struct bpf_redir_neigh;
typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64);
struct bpf_redir_neigh {
__u32 nh_family;
union {
__be32 ipv4_nh;
__u32 ipv6_nh[4];
};
};
typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32);
typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32);
typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64);
typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64);
typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64);
typedef u64 (*btf_bpf_get_cgroup_classid_curr)();
typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *);
typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *);
typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *);
typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *);
typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *);
typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32);
typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16);
typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *);
typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64);
typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32);
typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64);
typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64);
typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64);
typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64);
typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64);
typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *);
typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int);
typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32);
typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32);
typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int);
typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int);
typedef u64 (*btf_bpf_xdp_redirect)(u32, u64);
typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64);
typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64);
struct bpf_tunnel_key;
typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64);
struct bpf_tunnel_key {
__u32 tunnel_id;
union {
__u32 remote_ipv4;
__u32 remote_ipv6[4];
};
__u8 tunnel_tos;
__u8 tunnel_ttl;
union {
__u16 tunnel_ext;
__be16 tunnel_flags;
};
__u32 tunnel_label;
union {
__u32 local_ipv4;
__u32 local_ipv6[4];
};
};
typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32);
typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64);
typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32);
typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32);
typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *);
typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int);
typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *);
typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int);
typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64);
typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *);
typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *);
typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *);
typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *);
typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *);
typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *);
typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *);
typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *);
typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *);
typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *);
typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int);
typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int);
typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int);
typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int);
typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int);
typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int);
typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int);
typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int);
struct bpf_fib_lookup;
typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32);
struct bpf_fib_lookup {
__u8 family;
__u8 l4_protocol;
__be16 sport;
__be16 dport;
union {
__u16 tot_len;
__u16 mtu_result;
};
__u32 ifindex;
union {
__u8 tos;
__be32 flowinfo;
__u32 rt_metric;
};
union {
__be32 ipv4_src;
__u32 ipv6_src[4];
};
union {
__be32 ipv4_dst;
__u32 ipv6_dst[4];
};
union {
struct {
__be16 h_vlan_proto;
__be16 h_vlan_TCI;
};
__u32 tbid;
};
union {
struct {
__u32 mark;
};
struct {
__u8 smac[6];
__u8 dmac[6];
};
};
};
typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32);
typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64);
typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64);
typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32);
typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32);
struct bpf_sock_tuple;
typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
struct bpf_sock_tuple {
union {
struct {
__be32 saddr;
__be32 daddr;
__be16 sport;
__be16 dport;
} ipv4;
struct {
__be32 saddr[4];
__be32 daddr[4];
__be16 sport;
__be16 dport;
} ipv6;
};
};
typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_sk_release)(struct sock *);
typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64);
typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64);
struct bpf_tcp_sock {
__u32 snd_cwnd;
__u32 srtt_us;
__u32 rtt_min;
__u32 snd_ssthresh;
__u32 rcv_nxt;
__u32 snd_nxt;
__u32 snd_una;
__u32 mss_cache;
__u32 ecn_flags;
__u32 rate_delivered;
__u32 rate_interval_us;
__u32 packets_out;
__u32 retrans_out;
__u32 total_retrans;
__u32 segs_in;
__u32 data_segs_in;
__u32 segs_out;
__u32 data_segs_out;
__u32 lost_out;
__u32 sacked_out;
__u64 bytes_received;
__u64 bytes_acked;
__u32 dsack_dups;
__u32 delivered;
__u32 delivered_ce;
__u32 icsk_retransmits;
};
typedef u64 (*btf_bpf_tcp_sock)(struct sock *);
typedef u64 (*btf_bpf_get_listener_sock)(struct sock *);
typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *);
typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32);
typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64);
typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64);
typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64);
typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64);
typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32);
typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32);
typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32);
typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *);
typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *);
typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32);
typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32);
typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32);
typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64);
typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *);
typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *);
typedef u64 (*btf_bpf_sock_from_file)(struct file *);
struct strp_msg {
int full_len;
int offset;
};
struct tls_strparser {
struct sock *sk;
u32 mark: 8;
u32 stopped: 1;
u32 copy_mode: 1;
u32 mixed_decrypted: 1;
u32 msg_ready: 1;
struct strp_msg stm;
struct sk_buff *anchor;
struct work_struct work;
};
struct tls_sw_context_rx {
struct crypto_aead *aead_recv;
struct crypto_wait async_wait;
struct sk_buff_head rx_list;
void (*saved_data_ready)(struct sock *);
u8 reader_present;
u8 async_capable: 1;
u8 zc_capable: 1;
u8 reader_contended: 1;
struct tls_strparser strp;
atomic_t decrypt_pending;
struct sk_buff_head async_hold;
struct wait_queue_head wq;
};
struct tcp6_sock {
struct tcp_sock tcp;
struct ipv6_pinfo inet6;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct udp6_sock {
struct udp_sock udp;
struct ipv6_pinfo inet6;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct mptcp_sock {};
struct sock_fprog {
unsigned short len;
struct sock_filter __attribute__((btf_type_tag("user"))) *filter;
};
struct tls_prot_info {
u16 version;
u16 cipher_type;
u16 prepend_size;
u16 tag_size;
u16 overhead_size;
u16 iv_size;
u16 salt_size;
u16 rec_seq_size;
u16 aad_size;
u16 tail_size;
};
struct cipher_context {
char iv[20];
char rec_seq[8];
};
struct tls_crypto_info {
__u16 version;
__u16 cipher_type;
};
struct tls12_crypto_info_aes_gcm_128 {
struct tls_crypto_info info;
unsigned char iv[8];
unsigned char key[16];
unsigned char salt[4];
unsigned char rec_seq[8];
};
struct tls12_crypto_info_aes_gcm_256 {
struct tls_crypto_info info;
unsigned char iv[8];
unsigned char key[32];
unsigned char salt[4];
unsigned char rec_seq[8];
};
struct tls12_crypto_info_chacha20_poly1305 {
struct tls_crypto_info info;
unsigned char iv[12];
unsigned char key[32];
unsigned char salt[0];
unsigned char rec_seq[8];
};
struct tls12_crypto_info_sm4_gcm {
struct tls_crypto_info info;
unsigned char iv[8];
unsigned char key[16];
unsigned char salt[4];
unsigned char rec_seq[8];
};
struct tls12_crypto_info_sm4_ccm {
struct tls_crypto_info info;
unsigned char iv[8];
unsigned char key[16];
unsigned char salt[4];
unsigned char rec_seq[8];
};
union tls_crypto_context {
struct tls_crypto_info info;
union {
struct tls12_crypto_info_aes_gcm_128 aes_gcm_128;
struct tls12_crypto_info_aes_gcm_256 aes_gcm_256;
struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305;
struct tls12_crypto_info_sm4_gcm sm4_gcm;
struct tls12_crypto_info_sm4_ccm sm4_ccm;
};
};
struct tls_context {
struct tls_prot_info prot_info;
u8 tx_conf: 3;
u8 rx_conf: 3;
u8 zerocopy_sendfile: 1;
u8 rx_no_pad: 1;
int (*push_pending_record)(struct sock *, int);
void (*sk_write_space)(struct sock *);
void *priv_ctx_tx;
void *priv_ctx_rx;
struct net_device __attribute__((btf_type_tag("rcu"))) *netdev;
struct cipher_context tx;
struct cipher_context rx;
struct scatterlist *partially_sent_record;
u16 partially_sent_offset;
bool splicing_pages;
bool pending_open_record_frags;
struct mutex tx_lock;
unsigned long flags;
struct proto *sk_proto;
struct sock *sk;
void (*sk_destruct)(struct sock *);
union tls_crypto_context crypto_send;
union tls_crypto_context crypto_recv;
struct list_head list;
refcount_t refcount;
struct callback_head rcu;
};
typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int);
struct bpf_tcp_req_attrs {
u32 rcv_tsval;
u32 rcv_tsecr;
u16 mss;
u8 rcv_wscale;
u8 snd_wscale;
u8 ecn_ok;
u8 wscale_ok;
u8 sack_ok;
u8 tstamp_ok;
u8 usec_ts_ok;
u8 reserved[3];
};
enum nft_ct_expectation_attributes {
NFTA_CT_EXPECT_UNSPEC = 0,
NFTA_CT_EXPECT_L3PROTO = 1,
NFTA_CT_EXPECT_L4PROTO = 2,
NFTA_CT_EXPECT_DPORT = 3,
NFTA_CT_EXPECT_TIMEOUT = 4,
NFTA_CT_EXPECT_SIZE = 5,
__NFTA_CT_EXPECT_MAX = 6,
};
enum nft_ct_helper_attributes {
NFTA_CT_HELPER_UNSPEC = 0,
NFTA_CT_HELPER_NAME = 1,
NFTA_CT_HELPER_L3PROTO = 2,
NFTA_CT_HELPER_L4PROTO = 3,
__NFTA_CT_HELPER_MAX = 4,
};
enum nft_ct_attributes {
NFTA_CT_UNSPEC = 0,
NFTA_CT_DREG = 1,
NFTA_CT_KEY = 2,
NFTA_CT_DIRECTION = 3,
NFTA_CT_SREG = 4,
__NFTA_CT_MAX = 5,
};
enum nft_ct_keys {
NFT_CT_STATE = 0,
NFT_CT_DIRECTION = 1,
NFT_CT_STATUS = 2,
NFT_CT_MARK = 3,
NFT_CT_SECMARK = 4,
NFT_CT_EXPIRATION = 5,
NFT_CT_HELPER = 6,
NFT_CT_L3PROTOCOL = 7,
NFT_CT_SRC = 8,
NFT_CT_DST = 9,
NFT_CT_PROTOCOL = 10,
NFT_CT_PROTO_SRC = 11,
NFT_CT_PROTO_DST = 12,
NFT_CT_LABELS = 13,
NFT_CT_PKTS = 14,
NFT_CT_BYTES = 15,
NFT_CT_AVGPKT = 16,
NFT_CT_ZONE = 17,
NFT_CT_EVENTMASK = 18,
NFT_CT_SRC_IP = 19,
NFT_CT_DST_IP = 20,
NFT_CT_SRC_IP6 = 21,
NFT_CT_DST_IP6 = 22,
NFT_CT_ID = 23,
__NFT_CT_MAX = 24,
};
struct nft_ct_expect_obj {
u16 l3num;
__be16 dport;
u8 l4proto;
u8 size;
u32 timeout;
};
struct nft_ct_helper_obj {
struct nf_conntrack_helper *helper4;
struct nf_conntrack_helper *helper6;
u8 l4proto;
};
struct nft_ct {
enum nft_ct_keys key: 8;
enum ip_conntrack_dir dir: 8;
u8 len;
union {
u8 dreg;
u8 sreg;
};
};
enum ipt_reject_with {
IPT_ICMP_NET_UNREACHABLE = 0,
IPT_ICMP_HOST_UNREACHABLE = 1,
IPT_ICMP_PROT_UNREACHABLE = 2,
IPT_ICMP_PORT_UNREACHABLE = 3,
IPT_ICMP_ECHOREPLY = 4,
IPT_ICMP_NET_PROHIBITED = 5,
IPT_ICMP_HOST_PROHIBITED = 6,
IPT_TCP_RESET = 7,
IPT_ICMP_ADMIN_PROHIBITED = 8,
};
struct ipt_reject_info {
enum ipt_reject_with with;
};
enum switchdev_attr_id {
SWITCHDEV_ATTR_ID_UNDEFINED = 0,
SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1,
SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2,
SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3,
SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4,
SWITCHDEV_ATTR_ID_PORT_MROUTER = 5,
SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6,
SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7,
SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8,
SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9,
SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10,
SWITCHDEV_ATTR_ID_BRIDGE_MST = 11,
SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12,
SWITCHDEV_ATTR_ID_VLAN_MSTI = 13,
};
struct switchdev_mst_state {
u16 msti;
u8 state;
};
struct switchdev_brport_flags {
unsigned long val;
unsigned long mask;
};
struct switchdev_vlan_msti {
u16 vid;
u16 msti;
};
struct switchdev_attr {
struct net_device *orig_dev;
enum switchdev_attr_id id;
u32 flags;
void *complete_priv;
void (*complete)(struct net_device *, int, void *);
union {
u8 stp_state;
struct switchdev_mst_state mst_state;
struct switchdev_brport_flags brport_flags;
bool mrouter;
clock_t ageing_time;
bool vlan_filtering;
u16 vlan_protocol;
bool mst;
bool mc_disabled;
u8 mrp_port_role;
struct switchdev_vlan_msti vlan_msti;
} u;
};
struct br_config_bpdu {
unsigned int topology_change: 1;
unsigned int topology_change_ack: 1;
bridge_id root;
int root_path_cost;
bridge_id bridge_id;
port_id port_id;
int message_age;
int max_age;
int hello_time;
int forward_delay;
};
struct mcs_group___2 {
u8 shift;
u16 duration[12];
};
struct x86_cpu_desc {
u8 x86_family;
u8 x86_vendor;
u8 x86_model;
u8 x86_stepping;
u32 x86_microcode_rev;
};
struct perf_pmu_format_hybrid_attr {
struct device_attribute attr;
u64 pmu_type;
};
enum {
LBR_FORMAT_32 = 0,
LBR_FORMAT_LIP = 1,
LBR_FORMAT_EIP = 2,
LBR_FORMAT_EIP_FLAGS = 3,
LBR_FORMAT_EIP_FLAGS2 = 4,
LBR_FORMAT_INFO = 5,
LBR_FORMAT_TIME = 6,
LBR_FORMAT_INFO2 = 7,
LBR_FORMAT_MAX_KNOWN = 7,
};
enum pmc_type {
KVM_PMC_GP = 0,
KVM_PMC_FIXED = 1,
};
enum kvm_apic_logical_mode {
KVM_APIC_MODE_SW_DISABLED = 0,
KVM_APIC_MODE_XAPIC_CLUSTER = 1,
KVM_APIC_MODE_XAPIC_FLAT = 2,
KVM_APIC_MODE_X2APIC = 3,
KVM_APIC_MODE_MAP_DISABLED = 4,
};
enum kvm_irqchip_mode {
KVM_IRQCHIP_NONE = 0,
KVM_IRQCHIP_KERNEL = 1,
KVM_IRQCHIP_SPLIT = 2,
};
enum kvm_stat_kind {
KVM_STAT_VM = 0,
KVM_STAT_VCPU = 1,
};
struct kvm_vcpu;
struct kvm_pmc {
enum pmc_type type;
u8 idx;
bool is_paused;
bool intr;
u64 counter;
u64 emulated_counter;
u64 eventsel;
struct perf_event *perf_event;
struct kvm_vcpu *vcpu;
u64 current_config;
};
struct kvm_pmu {
u8 version;
unsigned int nr_arch_gp_counters;
unsigned int nr_arch_fixed_counters;
unsigned int available_event_types;
u64 fixed_ctr_ctrl;
u64 fixed_ctr_ctrl_mask;
u64 global_ctrl;
u64 global_status;
u64 counter_bitmask[2];
u64 global_ctrl_mask;
u64 global_status_mask;
u64 reserved_bits;
u64 raw_event_mask;
struct kvm_pmc gp_counters[8];
struct kvm_pmc fixed_counters[3];
union {
unsigned long reprogram_pmi[1];
atomic64_t __reprogram_pmi;
};
unsigned long all_valid_pmc_idx[1];
unsigned long pmc_in_use[1];
u64 ds_area;
u64 pebs_enable;
u64 pebs_enable_mask;
u64 pebs_data_cfg;
u64 pebs_data_cfg_mask;
u64 host_cross_mapped_mask;
bool need_cleanup;
u8 event_count;
};
typedef u64 gpa_t;
struct kvm_mmio_fragment {
gpa_t gpa;
void *data;
unsigned int len;
};
struct kvm_lapic;
struct kvm_page_fault;
struct x86_exception;
struct kvm_mmu_page;
typedef u64 hpa_t;
struct kvm_mmu_root_info {
gpa_t pgd;
hpa_t hpa;
};
union kvm_mmu_page_role {
u32 word;
struct {
unsigned int level: 4;
unsigned int has_4_byte_gpte: 1;
unsigned int quadrant: 2;
unsigned int direct: 1;
unsigned int access: 3;
unsigned int invalid: 1;
unsigned int efer_nx: 1;
unsigned int cr0_wp: 1;
unsigned int smep_andnot_wp: 1;
unsigned int smap_andnot_wp: 1;
unsigned int ad_disabled: 1;
unsigned int guest_mode: 1;
unsigned int passthrough: 1;
char: 5;
unsigned int smm: 8;
};
};
union kvm_mmu_extended_role {
u32 word;
struct {
unsigned int valid: 1;
unsigned int execonly: 1;
unsigned int cr4_pse: 1;
unsigned int cr4_pke: 1;
unsigned int cr4_smap: 1;
unsigned int cr4_smep: 1;
unsigned int cr4_la57: 1;
unsigned int efer_lma: 1;
};
};
union kvm_cpu_role {
u64 as_u64;
struct {
union kvm_mmu_page_role base;
union kvm_mmu_extended_role ext;
};
};
struct rsvd_bits_validate {
u64 rsvd_bits_mask[10];
u64 bad_mt_xwr;
};
struct kvm_mmu {
unsigned long (*get_guest_pgd)(struct kvm_vcpu *);
u64 (*get_pdptr)(struct kvm_vcpu *, int);
int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *);
void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *);
gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *);
int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int);
struct kvm_mmu_root_info root;
union kvm_cpu_role cpu_role;
union kvm_mmu_page_role root_role;
u32 pkru_mask;
struct kvm_mmu_root_info prev_roots[3];
u8 permissions[16];
u64 *pae_root;
u64 *pml4_root;
u64 *pml5_root;
struct rsvd_bits_validate shadow_zero_check;
struct rsvd_bits_validate guest_rsvd_check;
u64 pdptrs[4];
};
struct kvm_mmu_memory_cache {
gfp_t gfp_zero;
gfp_t gfp_custom;
struct kmem_cache *kmem_cache;
int capacity;
int nobjs;
void **objects;
};
struct kvm_pio_request {
unsigned long linear_rip;
unsigned long count;
int in;
int port;
int size;
};
struct kvm_queued_exception {
bool pending;
bool injected;
bool has_error_code;
u8 vector;
u32 error_code;
unsigned long payload;
bool has_payload;
};
struct kvm_queued_interrupt {
bool injected;
bool soft;
u8 nr;
};
struct kvm_hypervisor_cpuid {
u32 base;
u32 limit;
};
struct x86_emulate_ctxt;
struct pvclock_vcpu_time_info {
u32 version;
u32 pad0;
u64 tsc_timestamp;
u64 system_time;
u32 tsc_to_system_mul;
s8 tsc_shift;
u8 flags;
u8 pad[2];
};
typedef u64 hfn_t;
typedef hfn_t kvm_pfn_t;
struct kvm_memory_slot;
struct kvm;
struct gfn_to_pfn_cache {
u64 generation;
gpa_t gpa;
unsigned long uhva;
struct kvm_memory_slot *memslot;
struct kvm *kvm;
struct list_head list;
rwlock_t lock;
struct mutex refresh_lock;
void *khva;
kvm_pfn_t pfn;
bool active;
bool valid;
};
struct gfn_to_hva_cache {
u64 generation;
gpa_t gpa;
unsigned long hva;
unsigned long len;
struct kvm_memory_slot *memslot;
};
struct kvm_mtrr_range {
u64 base;
u64 mask;
struct list_head node;
};
struct kvm_mtrr {
struct kvm_mtrr_range var_ranges[8];
mtrr_type fixed_ranges[88];
u64 deftype;
struct list_head head;
};
typedef u64 gfn_t;
struct kvm_cpuid_entry2;
struct kvm_vcpu_arch {
unsigned long regs[17];
u32 regs_avail;
u32 regs_dirty;
unsigned long cr0;
unsigned long cr0_guest_owned_bits;
unsigned long cr2;
unsigned long cr3;
unsigned long cr4;
unsigned long cr4_guest_owned_bits;
unsigned long cr4_guest_rsvd_bits;
unsigned long cr8;
u32 host_pkru;
u32 pkru;
u32 hflags;
u64 efer;
u64 apic_base;
struct kvm_lapic *apic;
bool load_eoi_exitmap_pending;
unsigned long ioapic_handled_vectors[4];
unsigned long apic_attention;
int32_t apic_arb_prio;
int mp_state;
u64 ia32_misc_enable_msr;
u64 smbase;
u64 smi_count;
bool at_instruction_boundary;
bool tpr_access_reporting;
bool xfd_no_write_intercept;
u64 ia32_xss;
u64 microcode_version;
u64 arch_capabilities;
u64 perf_capabilities;
struct kvm_mmu *mmu;
struct kvm_mmu root_mmu;
struct kvm_mmu guest_mmu;
struct kvm_mmu nested_mmu;
struct kvm_mmu *walk_mmu;
struct kvm_mmu_memory_cache mmu_pte_list_desc_cache;
struct kvm_mmu_memory_cache mmu_shadow_page_cache;
struct kvm_mmu_memory_cache mmu_shadowed_info_cache;
struct kvm_mmu_memory_cache mmu_page_header_cache;
struct fpu_guest guest_fpu;
u64 xcr0;
u64 guest_supported_xcr0;
struct kvm_pio_request pio;
void *pio_data;
void *sev_pio_data;
unsigned int sev_pio_count;
u8 event_exit_inst_len;
bool exception_from_userspace;
struct kvm_queued_exception exception;
struct kvm_queued_exception exception_vmexit;
struct kvm_queued_interrupt interrupt;
int halt_request;
int cpuid_nent;
struct kvm_cpuid_entry2 *cpuid_entries;
struct kvm_hypervisor_cpuid kvm_cpuid;
struct {
unsigned long enabled[1];
} governed_features;
u64 reserved_gpa_bits;
int maxphyaddr;
struct x86_emulate_ctxt *emulate_ctxt;
bool emulate_regs_need_sync_to_vcpu;
bool emulate_regs_need_sync_from_vcpu;
int (*complete_userspace_io)(struct kvm_vcpu *);
gpa_t time;
struct pvclock_vcpu_time_info hv_clock;
unsigned int hw_tsc_khz;
struct gfn_to_pfn_cache pv_time;
bool pvclock_set_guest_stopped_request;
struct {
u8 preempted;
u64 msr_val;
u64 last_steal;
struct gfn_to_hva_cache cache;
} st;
u64 l1_tsc_offset;
u64 tsc_offset;
u64 last_guest_tsc;
u64 last_host_tsc;
u64 tsc_offset_adjustment;
u64 this_tsc_nsec;
u64 this_tsc_write;
u64 this_tsc_generation;
bool tsc_catchup;
bool tsc_always_catchup;
s8 virtual_tsc_shift;
u32 virtual_tsc_mult;
u32 virtual_tsc_khz;
s64 ia32_tsc_adjust_msr;
u64 msr_ia32_power_ctl;
u64 l1_tsc_scaling_ratio;
u64 tsc_scaling_ratio;
atomic_t nmi_queued;
unsigned int nmi_pending;
bool nmi_injected;
bool smi_pending;
u8 handling_intr_from_guest;
struct kvm_mtrr mtrr_state;
u64 pat;
unsigned int switch_db_regs;
unsigned long db[4];
unsigned long dr6;
unsigned long dr7;
unsigned long eff_db[4];
unsigned long guest_debug_dr7;
u64 msr_platform_info;
u64 msr_misc_features_enables;
u64 mcg_cap;
u64 mcg_status;
u64 mcg_ctl;
u64 mcg_ext_ctl;
u64 *mce_banks;
u64 *mci_ctl2_banks;
u64 mmio_gva;
unsigned int mmio_access;
gfn_t mmio_gfn;
u64 mmio_gen;
struct kvm_pmu pmu;
unsigned long singlestep_rip;
cpumask_var_t wbinvd_dirty_mask;
unsigned long last_retry_eip;
unsigned long last_retry_addr;
struct {
bool halted;
gfn_t gfns[64];
struct gfn_to_hva_cache data;
u64 msr_en_val;
u64 msr_int_val;
u16 vec;
u32 id;
bool send_user_only;
u32 host_apf_flags;
bool delivery_as_pf_vmexit;
bool pageready_pending;
} apf;
struct {
u64 length;
u64 status;
} osvw;
struct {
u64 msr_val;
struct gfn_to_hva_cache data;
} pv_eoi;
u64 msr_kvm_poll_control;
unsigned long exit_qualification;
struct {
bool pv_unhalted;
} pv;
int pending_ioapic_eoi;
int pending_external_vector;
bool preempted_in_kernel;
bool l1tf_flush_l1d;
int last_vmentry_cpu;
u64 msr_hwcr;
struct {
u32 features;
bool enforce;
} pv_cpuid;
bool guest_state_protected;
bool pdptrs_from_userspace;
};
struct kvm_vcpu_stat_generic {
u64 halt_successful_poll;
u64 halt_attempted_poll;
u64 halt_poll_invalid;
u64 halt_wakeup;
u64 halt_poll_success_ns;
u64 halt_poll_fail_ns;
u64 halt_wait_ns;
u64 halt_poll_success_hist[32];
u64 halt_poll_fail_hist[32];
u64 halt_wait_hist[32];
u64 blocking;
};
struct kvm_vcpu_stat {
struct kvm_vcpu_stat_generic generic;
u64 pf_taken;
u64 pf_fixed;
u64 pf_emulate;
u64 pf_spurious;
u64 pf_fast;
u64 pf_mmio_spte_created;
u64 pf_guest;
u64 tlb_flush;
u64 invlpg;
u64 exits;
u64 io_exits;
u64 mmio_exits;
u64 signal_exits;
u64 irq_window_exits;
u64 nmi_window_exits;
u64 l1d_flush;
u64 halt_exits;
u64 request_irq_exits;
u64 irq_exits;
u64 host_state_reload;
u64 fpu_reload;
u64 insn_emulation;
u64 insn_emulation_fail;
u64 hypercalls;
u64 irq_injections;
u64 nmi_injections;
u64 req_event;
u64 nested_run;
u64 directed_yield_attempted;
u64 directed_yield_successful;
u64 preemption_reported;
u64 preemption_other;
u64 guest_mode;
u64 notify_window_exits;
};
struct kvm_dirty_gfn;
struct kvm_dirty_ring {
u32 dirty_index;
u32 reset_index;
u32 size;
u32 soft_limit;
struct kvm_dirty_gfn *dirty_gfns;
int index;
};
struct kvm_run;
struct kvm_vcpu {
struct kvm *kvm;
int cpu;
int vcpu_id;
int vcpu_idx;
int ____srcu_idx;
int srcu_depth;
int mode;
u64 requests;
unsigned long guest_debug;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid __attribute__((btf_type_tag("rcu"))) *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
struct kvm_memory_slot *last_used_slot;
u64 last_used_slot_gen;
};
struct kvm_memslots {
u64 generation;
atomic_long_t last_used_slot;
struct rb_root_cached hva_tree;
struct rb_root gfn_tree;
struct hlist_head id_hash[128];
int node_idx;
};
struct kvm_vm_stat_generic {
u64 remote_tlb_flush;
u64 remote_tlb_flush_requests;
};
struct kvm_vm_stat {
struct kvm_vm_stat_generic generic;
u64 mmu_shadow_zapped;
u64 mmu_pte_write;
u64 mmu_pde_zapped;
u64 mmu_flooded;
u64 mmu_recycled;
u64 mmu_cache_miss;
u64 mmu_unsync;
union {
struct {
atomic64_t pages_4k;
atomic64_t pages_2m;
atomic64_t pages_1g;
};
atomic64_t pages[3];
};
u64 nx_lpage_splits;
u64 max_mmu_page_hash_collisions;
u64 max_mmu_rmap_size;
};
struct iommu_domain;
struct kvm_pic;
struct kvm_ioapic;
struct kvm_pit;
struct kvm_xen_hvm_config {
__u32 flags;
__u32 msr;
__u64 blob_addr_32;
__u64 blob_addr_64;
__u8 blob_size_32;
__u8 blob_size_64;
__u8 pad2[30];
};
struct kvm_apic_map;
struct kvm_x86_msr_filter;
struct kvm_x86_pmu_event_filter;
struct kvm_arch {
unsigned long vm_type;
unsigned long n_used_mmu_pages;
unsigned long n_requested_mmu_pages;
unsigned long n_max_mmu_pages;
unsigned int indirect_shadow_pages;
u8 mmu_valid_gen;
struct hlist_head mmu_page_hash[4096];
struct list_head active_mmu_pages;
struct list_head zapped_obsolete_pages;
struct list_head possible_nx_huge_pages;
spinlock_t mmu_unsync_pages_lock;
struct iommu_domain *iommu_domain;
bool iommu_noncoherent;
atomic_t noncoherent_dma_count;
atomic_t assigned_device_count;
struct kvm_pic *vpic;
struct kvm_ioapic *vioapic;
struct kvm_pit *vpit;
atomic_t vapics_in_nmi_mode;
struct mutex apic_map_lock;
struct kvm_apic_map __attribute__((btf_type_tag("rcu"))) *apic_map;
atomic_t apic_map_dirty;
bool apic_access_memslot_enabled;
bool apic_access_memslot_inhibited;
struct rw_semaphore apicv_update_lock;
unsigned long apicv_inhibit_reasons;
gpa_t wall_clock;
bool mwait_in_guest;
bool hlt_in_guest;
bool pause_in_guest;
bool cstate_in_guest;
unsigned long irq_sources_bitmap;
s64 kvmclock_offset;
raw_spinlock_t tsc_write_lock;
u64 last_tsc_nsec;
u64 last_tsc_write;
u32 last_tsc_khz;
u64 last_tsc_offset;
u64 cur_tsc_nsec;
u64 cur_tsc_write;
u64 cur_tsc_offset;
u64 cur_tsc_generation;
int nr_vcpus_matched_tsc;
u32 default_tsc_khz;
bool user_set_tsc;
seqcount_raw_spinlock_t pvclock_sc;
bool use_master_clock;
u64 master_kernel_ns;
u64 master_cycle_now;
struct delayed_work kvmclock_update_work;
struct delayed_work kvmclock_sync_work;
struct kvm_xen_hvm_config xen_hvm_config;
struct hlist_head mask_notifier_list;
bool backwards_tsc_observed;
bool boot_vcpu_runs_old_kvmclock;
u32 bsp_vcpu_id;
u64 disabled_quirks;
enum kvm_irqchip_mode irqchip_mode;
u8 nr_reserved_ioapic_pins;
bool disabled_lapic_found;
bool x2apic_format;
bool x2apic_broadcast_quirk_disabled;
bool guest_can_read_msr_platform_info;
bool exception_payload_enabled;
bool triple_fault_event;
bool bus_lock_detection_enabled;
bool enable_pmu;
u32 notify_window;
u32 notify_vmexit_flags;
bool exit_on_emulation_error;
u32 user_space_msr_mask;
struct kvm_x86_msr_filter __attribute__((btf_type_tag("rcu"))) *msr_filter;
u32 hypercall_exit_enabled;
bool sgx_provisioning_allowed;
struct kvm_x86_pmu_event_filter __attribute__((btf_type_tag("rcu"))) *pmu_event_filter;
struct task_struct *nx_huge_page_recovery_thread;
atomic64_t tdp_mmu_pages;
struct list_head tdp_mmu_roots;
spinlock_t tdp_mmu_pages_lock;
bool shadow_root_allocated;
u32 max_vcpu_ids;
bool disable_nx_huge_pages;
struct kvm_mmu_memory_cache split_shadow_page_cache;
struct kvm_mmu_memory_cache split_page_header_cache;
struct kvm_mmu_memory_cache split_desc_cache;
};
struct kvm_io_bus;
struct kvm_stat_data;
struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
unsigned long nr_memslot_pages;
struct kvm_memslots __memslots[2];
struct kvm_memslots __attribute__((btf_type_tag("rcu"))) *memslots[1];
struct xarray vcpu_array;
atomic_t nr_memslots_dirty_logging;
spinlock_t mn_invalidate_lock;
unsigned long mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
spinlock_t gpc_lock;
struct list_head gpc_list;
atomic_t online_vcpus;
int max_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus __attribute__((btf_type_tag("rcu"))) *buses[4];
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct mutex irq_lock;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
bool override_halt_poll_ns;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool dirty_ring_with_bitmap;
bool vm_bugged;
bool vm_dead;
char stats_id[48];
};
struct kvm_io_device;
struct kvm_io_range {
gpa_t addr;
int len;
struct kvm_io_device *dev;
};
struct kvm_io_bus {
int dev_count;
int ioeventfd_count;
struct kvm_io_range range[0];
};
struct kvm_apic_map {
struct callback_head rcu;
enum kvm_apic_logical_mode logical_mode;
u32 max_apic_id;
union {
struct kvm_lapic *xapic_flat_map[8];
struct kvm_lapic *xapic_cluster_map[64];
};
struct kvm_lapic *phys_map[0];
};
struct msr_bitmap_range {
u32 flags;
u32 nmsrs;
u32 base;
unsigned long *bitmap;
};
struct kvm_x86_msr_filter {
u8 count;
bool default_allow: 1;
struct msr_bitmap_range ranges[16];
};
struct kvm_x86_pmu_event_filter {
__u32 action;
__u32 nevents;
__u32 fixed_counter_bitmap;
__u32 flags;
__u32 nr_includes;
__u32 nr_excludes;
__u64 *includes;
__u64 *excludes;
__u64 events[0];
};
struct _kvm_stats_desc;
struct kvm_stat_data {
struct kvm *kvm;
const struct _kvm_stats_desc *desc;
enum kvm_stat_kind kind;
};
struct kvm_stats_desc {
__u32 flags;
__s16 exponent;
__u16 size;
__u32 offset;
__u32 bucket_size;
char name[0];
};
struct _kvm_stats_desc {
struct kvm_stats_desc desc;
char name[48];
};
struct kvm_debug_exit_arch {
__u32 exception;
__u32 pad;
__u64 pc;
__u64 dr6;
__u64 dr7;
};
struct kvm_hyperv_exit {
__u32 type;
__u32 pad1;
union {
struct {
__u32 msr;
__u32 pad2;
__u64 control;
__u64 evt_page;
__u64 msg_page;
} synic;
struct {
__u64 input;
__u64 result;
__u64 params[2];
} hcall;
struct {
__u32 msr;
__u32 pad2;
__u64 control;
__u64 status;
__u64 send_page;
__u64 recv_page;
__u64 pending_page;
} syndbg;
} u;
};
struct kvm_xen_exit {
__u32 type;
union {
struct {
__u32 longmode;
__u32 cpl;
__u64 input;
__u64 result;
__u64 params[6];
} hcall;
} u;
};
struct kvm_regs {
__u64 rax;
__u64 rbx;
__u64 rcx;
__u64 rdx;
__u64 rsi;
__u64 rdi;
__u64 rsp;
__u64 rbp;
__u64 r8;
__u64 r9;
__u64 r10;
__u64 r11;
__u64 r12;
__u64 r13;
__u64 r14;
__u64 r15;
__u64 rip;
__u64 rflags;
};
struct kvm_segment {
__u64 base;
__u32 limit;
__u16 selector;
__u8 type;
__u8 present;
__u8 dpl;
__u8 db;
__u8 s;
__u8 l;
__u8 g;
__u8 avl;
__u8 unusable;
__u8 padding;
};
struct kvm_dtable {
__u64 base;
__u16 limit;
__u16 padding[3];
};
struct kvm_sregs {
struct kvm_segment cs;
struct kvm_segment ds;
struct kvm_segment es;
struct kvm_segment fs;
struct kvm_segment gs;
struct kvm_segment ss;
struct kvm_segment tr;
struct kvm_segment ldt;
struct kvm_dtable gdt;
struct kvm_dtable idt;
__u64 cr0;
__u64 cr2;
__u64 cr3;
__u64 cr4;
__u64 cr8;
__u64 efer;
__u64 apic_base;
__u64 interrupt_bitmap[4];
};
struct kvm_vcpu_events {
struct {
__u8 injected;
__u8 nr;
__u8 has_error_code;
__u8 pending;
__u32 error_code;
} exception;
struct {
__u8 injected;
__u8 nr;
__u8 soft;
__u8 shadow;
} interrupt;
struct {
__u8 injected;
__u8 pending;
__u8 masked;
__u8 pad;
} nmi;
__u32 sipi_vector;
__u32 flags;
struct {
__u8 smm;
__u8 pending;
__u8 smm_inside_nmi;
__u8 latched_init;
} smi;
struct {
__u8 pending;
} triple_fault;
__u8 reserved[26];
__u8 exception_has_payload;
__u64 exception_payload;
};
struct kvm_sync_regs {
struct kvm_regs regs;
struct kvm_sregs sregs;
struct kvm_vcpu_events events;
};
struct kvm_run {
__u8 request_interrupt_window;
__u8 immediate_exit;
__u8 padding1[6];
__u32 exit_reason;
__u8 ready_for_interrupt_injection;
__u8 if_flag;
__u16 flags;
__u64 cr8;
__u64 apic_base;
union {
struct {
__u64 hardware_exit_reason;
} hw;
struct {
__u64 hardware_entry_failure_reason;
__u32 cpu;
} fail_entry;
struct {
__u32 exception;
__u32 error_code;
} ex;
struct {
__u8 direction;
__u8 size;
__u16 port;
__u32 count;
__u64 data_offset;
} io;
struct {
struct kvm_debug_exit_arch arch;
} debug;
struct {
__u64 phys_addr;
__u8 data[8];
__u32 len;
__u8 is_write;
} mmio;
struct {
__u64 phys_addr;
__u8 data[8];
__u32 len;
__u8 is_write;
} iocsr_io;
struct {
__u64 nr;
__u64 args[6];
__u64 ret;
union {
__u64 flags;
};
} hypercall;
struct {
__u64 rip;
__u32 is_write;
__u32 pad;
} tpr_access;
struct {
__u8 icptcode;
__u16 ipa;
__u32 ipb;
} s390_sieic;
__u64 s390_reset_flags;
struct {
__u64 trans_exc_code;
__u32 pgm_code;
} s390_ucontrol;
struct {
__u32 dcrn;
__u32 data;
__u8 is_write;
} dcr;
struct {
__u32 suberror;
__u32 ndata;
__u64 data[16];
} internal;
struct {
__u32 suberror;
__u32 ndata;
__u64 flags;
union {
struct {
__u8 insn_size;
__u8 insn_bytes[15];
};
};
} emulation_failure;
struct {
__u64 gprs[32];
} osi;
struct {
__u64 nr;
__u64 ret;
__u64 args[9];
} papr_hcall;
struct {
__u16 subchannel_id;
__u16 subchannel_nr;
__u32 io_int_parm;
__u32 io_int_word;
__u32 ipb;
__u8 dequeued;
} s390_tsch;
struct {
__u32 epr;
} epr;
struct {
__u32 type;
__u32 ndata;
union {
__u64 data[16];
};
} system_event;
struct {
__u64 addr;
__u8 ar;
__u8 reserved;
__u8 fc;
__u8 sel1;
__u16 sel2;
} s390_stsi;
struct {
__u8 vector;
} eoi;
struct kvm_hyperv_exit hyperv;
struct {
__u64 esr_iss;
__u64 fault_ipa;
} arm_nisv;
struct {
__u8 error;
__u8 pad[7];
__u32 reason;
__u32 index;
__u64 data;
} msr;
struct kvm_xen_exit xen;
struct {
unsigned long extension_id;
unsigned long function_id;
unsigned long args[6];
unsigned long ret[2];
} riscv_sbi;
struct {
unsigned long csr_num;
unsigned long new_value;
unsigned long write_mask;
unsigned long ret_value;
} riscv_csr;
struct {
__u32 flags;
} notify;
struct {
__u64 flags;
__u64 gpa;
__u64 size;
} memory_fault;
char padding[256];
};
__u64 kvm_valid_regs;
__u64 kvm_dirty_regs;
union {
struct kvm_sync_regs regs;
char padding[2048];
} s;
};
struct kvm_cpuid_entry2 {
__u32 function;
__u32 index;
__u32 flags;
__u32 eax;
__u32 ebx;
__u32 ecx;
__u32 edx;
__u32 padding[3];
};
struct interval_tree_node {
struct rb_node rb;
unsigned long start;
unsigned long last;
unsigned long __subtree_last;
};
struct kvm_rmap_head;
struct kvm_lpage_info;
struct kvm_arch_memory_slot {
struct kvm_rmap_head *rmap[3];
struct kvm_lpage_info *lpage_info[2];
unsigned short *gfn_write_track;
};
struct kvm_memory_slot {
struct hlist_node id_node[2];
struct interval_tree_node hva_node[2];
struct rb_node gfn_node[2];
gfn_t base_gfn;
unsigned long npages;
unsigned long *dirty_bitmap;
struct kvm_arch_memory_slot arch;
unsigned long userspace_addr;
u32 flags;
short id;
u16 as_id;
};
struct kvm_rmap_head {
unsigned long val;
};
struct kvm_lpage_info {
int disallow_lpage;
};
struct kvm_dirty_gfn {
__u32 flags;
__u32 slot;
__u64 offset;
};
union cpuid10_eax {
struct {
unsigned int version_id: 8;
unsigned int num_counters: 8;
unsigned int bit_width: 8;
unsigned int mask_length: 8;
} split;
unsigned int full;
};
union cpuid10_ebx {
struct {
unsigned int no_unhalted_core_cycles: 1;
unsigned int no_instructions_retired: 1;
unsigned int no_unhalted_reference_cycles: 1;
unsigned int no_llc_reference: 1;
unsigned int no_llc_misses: 1;
unsigned int no_branch_instruction_retired: 1;
unsigned int no_branch_misses_retired: 1;
} split;
unsigned int full;
};
union cpuid10_edx {
struct {
unsigned int num_counters_fixed: 5;
unsigned int bit_width_fixed: 8;
unsigned int reserved1: 2;
unsigned int anythread_deprecated: 1;
unsigned int reserved2: 16;
} split;
unsigned int full;
};
typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int);
struct amd_nb_bus_dev_range {
u8 bus;
u8 dev_base;
u8 dev_limit;
};
struct amd_northbridge;
struct amd_northbridge_info {
u16 num;
u64 flags;
struct amd_northbridge *nb;
};
struct amd_l3_cache {
unsigned int indices;
u8 subcaches[4];
};
struct threshold_bank;
struct amd_northbridge {
struct pci_dev *root;
struct pci_dev *misc;
struct pci_dev *link;
struct amd_l3_cache l3_cache;
struct threshold_bank *bank4;
};
struct threshold_block;
struct threshold_bank {
struct kobject *kobj;
struct threshold_block *blocks;
refcount_t cpus;
unsigned int shared;
};
struct threshold_block {
unsigned int block;
unsigned int bank;
unsigned int cpu;
u32 address;
u16 interrupt_enable;
bool interrupt_capable;
u16 threshold_limit;
struct kobject kobj;
struct list_head miscj;
};
struct taint_flag {
char c_true;
char c_false;
bool module;
};
enum error_detector {
ERROR_DETECTOR_KFENCE = 0,
ERROR_DETECTOR_KASAN = 1,
ERROR_DETECTOR_WARN = 2,
};
enum ftrace_dump_mode {
DUMP_NONE = 0,
DUMP_ALL = 1,
DUMP_ORIG = 2,
DUMP_PARAM = 3,
};
struct warn_args {
const char *fmt;
va_list args;
};
struct rt_waiter_node {
struct rb_node entry;
int prio;
u64 deadline;
};
struct rt_mutex_waiter {
struct rt_waiter_node tree;
struct rt_waiter_node pi_tree;
struct task_struct *task;
struct rt_mutex_base *lock;
unsigned int wake_state;
struct ww_acquire_ctx *ww_ctx;
};
enum futex_access {
FUTEX_READ = 0,
FUTEX_WRITE = 1,
};
enum {
Q_REQUEUE_PI_NONE = 0,
Q_REQUEUE_PI_IGNORE = 1,
Q_REQUEUE_PI_IN_PROGRESS = 2,
Q_REQUEUE_PI_WAIT = 3,
Q_REQUEUE_PI_DONE = 4,
Q_REQUEUE_PI_LOCKED = 5,
};
struct futex_hash_bucket {
atomic_t waiters;
spinlock_t lock;
struct plist_head chain;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct pids_cgroup {
struct cgroup_subsys_state css;
atomic64_t counter;
atomic64_t limit;
int64_t watermark;
struct cgroup_file events_file;
atomic64_t events_limit;
};
typedef void (*btf_trace_benchmark_event)(void *, const char *, u64);
struct trace_event_raw_benchmark_event {
struct trace_entry ent;
char str[128];
u64 delta;
char __data[0];
};
struct trace_event_data_offsets_benchmark_event {};
struct node_hstate {
struct kobject *hugepages_kobj;
struct kobject *hstate_kobjs[2];
};
enum vma_resv_mode {
VMA_NEEDS_RESV = 0,
VMA_COMMIT_RESV = 1,
VMA_END_RESV = 2,
VMA_ADD_RESV = 3,
VMA_DEL_RESV = 4,
};
enum {
FOLL_TOUCH = 65536,
FOLL_TRIED = 131072,
FOLL_REMOTE = 262144,
FOLL_PIN = 524288,
FOLL_FAST_ONLY = 1048576,
FOLL_UNLOCKABLE = 2097152,
};
struct file_region {
struct list_head link;
long from;
long to;
struct page_counter *reservation_counter;
struct cgroup_subsys_state *css;
};
struct huge_bootmem_page {
struct list_head list;
struct hstate *hstate;
};
struct hugetlb_cgroup_per_node;
struct hugetlb_cgroup {
struct cgroup_subsys_state css;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct page_counter hugepage[2];
struct page_counter rsvd_hugepage[2];
atomic_long_t events[2];
atomic_long_t events_local[2];
struct cgroup_file events_file[2];
struct cgroup_file events_local_file[2];
struct hugetlb_cgroup_per_node *nodeinfo[0];
long: 64;
long: 64;
long: 64;
long: 64;
};
struct hugetlb_cgroup_per_node {
unsigned long usage[2];
};
typedef unsigned long pte_marker;
enum proc_param {
Opt_gid___3 = 0,
Opt_hidepid = 1,
Opt_subset = 2,
};
struct proc_fs_context {
struct pid_namespace *pid_ns;
unsigned int mask;
enum proc_hidepid hidepid;
int gid;
enum proc_pidonly pidonly;
};
struct fat_cache {
struct list_head cache_list;
int nr_contig;
int fcluster;
int dcluster;
};
struct fat_cache_id {
unsigned int id;
int nr_contig;
int fcluster;
int dcluster;
};
struct xxhash64_tfm_ctx {
u64 seed;
};
struct xxhash64_desc_ctx {
struct xxh64_state xxhstate;
};
struct badblocks_context {
sector_t start;
sector_t len;
int ack;
};
struct io_madvise {
struct file *file;
u64 addr;
u32 len;
u32 advice;
};
struct io_fadvise {
struct file *file;
u64 offset;
u32 len;
u32 advice;
};
enum assoc_array_walk_status {
assoc_array_walk_tree_empty = 0,
assoc_array_walk_found_terminal_node = 1,
assoc_array_walk_found_wrong_shortcut = 2,
};
struct assoc_array_shortcut {
struct assoc_array_ptr *back_pointer;
int parent_slot;
int skip_to_level;
struct assoc_array_ptr *next_node;
unsigned long index_key[0];
};
struct assoc_array_node {
struct assoc_array_ptr *back_pointer;
u8 parent_slot;
struct assoc_array_ptr *slots[16];
unsigned long nr_leaves_on_branch;
};
struct assoc_array_ops;
struct assoc_array_edit {
struct callback_head rcu;
struct assoc_array *array;
const struct assoc_array_ops *ops;
const struct assoc_array_ops *ops_for_excised_subtree;
struct assoc_array_ptr *leaf;
struct assoc_array_ptr **leaf_p;
struct assoc_array_ptr *dead_leaf;
struct assoc_array_ptr *new_meta[3];
struct assoc_array_ptr *excised_meta[1];
struct assoc_array_ptr *excised_subtree;
struct assoc_array_ptr **set_backpointers[16];
struct assoc_array_ptr *set_backpointers_to;
struct assoc_array_node *adjust_count_on;
long adjust_count_by;
struct {
struct assoc_array_ptr **ptr;
struct assoc_array_ptr *to;
} set[2];
struct {
u8 *p;
u8 to;
} set_parent_slot[1];
u8 segment_cache[17];
};
struct assoc_array_ops {
unsigned long (*get_key_chunk)(const void *, int);
unsigned long (*get_object_key_chunk)(const void *, int);
bool (*compare_object)(const void *, const void *);
int (*diff_objects)(const void *, const void *);
void (*free_object)(void *);
};
struct assoc_array_walk_result {
struct {
struct assoc_array_node *node;
int level;
int slot;
} terminal_node;
struct {
struct assoc_array_shortcut *shortcut;
int level;
int sc_level;
unsigned long sc_segments;
unsigned long dissimilarity;
} wrong_shortcut;
};
struct assoc_array_delete_collapse_context {
struct assoc_array_node *node;
const void *skip_leaf;
int slot;
};
struct pcie_link_state {
struct pci_dev *pdev;
struct pci_dev *downstream;
struct pcie_link_state *root;
struct pcie_link_state *parent;
struct list_head sibling;
u32 aspm_support: 7;
u32 aspm_enabled: 7;
u32 aspm_capable: 7;
u32 aspm_default: 7;
int: 4;
u32 aspm_disable: 7;
u32 clkpm_capable: 1;
u32 clkpm_enabled: 1;
u32 clkpm_default: 1;
u32 clkpm_disable: 1;
};
struct event_counter {
u32 count;
u32 flags;
};
struct acpi_data_attr;
struct acpi_data_obj {
char *name;
int (*fn)(void *, struct acpi_data_attr *);
};
struct acpi_data_attr {
struct bin_attribute attr;
u64 addr;
};
struct acpi_table_attr {
struct bin_attribute attr;
char name[4];
int instance;
char filename[8];
struct list_head node;
};
typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *);
struct acpi_table_bert {
struct acpi_table_header header;
u32 region_length;
u64 address;
};
struct acpi_table_ccel {
struct acpi_table_header header;
u8 CCtype;
u8 Ccsub_type;
u16 reserved;
u64 log_area_minimum_length;
u64 log_area_start_address;
};
struct ldsem_waiter {
struct list_head list;
struct task_struct *task;
};
struct drm_dmi_panel_orientation_data {
int width;
int height;
const char * const *bios_dates;
int orientation;
};
struct aggregate_device;
struct component_ops;
struct component {
struct list_head node;
struct aggregate_device *adev;
bool bound;
const struct component_ops *ops;
int subcomponent;
struct device *dev;
};
struct component_master_ops;
struct component_match;
struct aggregate_device {
struct list_head node;
bool bound;
const struct component_master_ops *ops;
struct device *parent;
struct component_match *match;
};
struct component_master_ops {
int (*bind)(struct device *);
void (*unbind)(struct device *);
};
struct component_match_array;
struct component_match {
size_t alloc;
size_t num;
struct component_match_array *compare;
};
struct component_match_array {
void *data;
int (*compare)(struct device *, void *);
int (*compare_typed)(struct device *, int, void *);
void (*release)(struct device *, void *);
struct component *component;
bool duplicate;
};
struct component_ops {
int (*bind)(struct device *, struct device *, void *);
void (*unbind)(struct device *, struct device *, void *);
};
typedef void (*btf_trace_nvme_setup_cmd)(void *, struct request *, struct nvme_command *);
typedef void (*btf_trace_nvme_complete_rq)(void *, struct request *);
typedef void (*btf_trace_nvme_async_event)(void *, struct nvme_ctrl *, u32);
typedef void (*btf_trace_nvme_sq)(void *, struct request *, __le16, int);
struct nvme_core_quirk_entry {
u16 vid;
const char *mn;
const char *fr;
unsigned long quirks;
};
enum nvme_disposition {
COMPLETE = 0,
RETRY = 1,
FAILOVER = 2,
AUTHENTICATE = 3,
};
enum {
NVME_SC_SUCCESS = 0,
NVME_SC_INVALID_OPCODE = 1,
NVME_SC_INVALID_FIELD = 2,
NVME_SC_CMDID_CONFLICT = 3,
NVME_SC_DATA_XFER_ERROR = 4,
NVME_SC_POWER_LOSS = 5,
NVME_SC_INTERNAL = 6,
NVME_SC_ABORT_REQ = 7,
NVME_SC_ABORT_QUEUE = 8,
NVME_SC_FUSED_FAIL = 9,
NVME_SC_FUSED_MISSING = 10,
NVME_SC_INVALID_NS = 11,
NVME_SC_CMD_SEQ_ERROR = 12,
NVME_SC_SGL_INVALID_LAST = 13,
NVME_SC_SGL_INVALID_COUNT = 14,
NVME_SC_SGL_INVALID_DATA = 15,
NVME_SC_SGL_INVALID_METADATA = 16,
NVME_SC_SGL_INVALID_TYPE = 17,
NVME_SC_CMB_INVALID_USE = 18,
NVME_SC_PRP_INVALID_OFFSET = 19,
NVME_SC_ATOMIC_WU_EXCEEDED = 20,
NVME_SC_OP_DENIED = 21,
NVME_SC_SGL_INVALID_OFFSET = 22,
NVME_SC_RESERVED = 23,
NVME_SC_HOST_ID_INCONSIST = 24,
NVME_SC_KA_TIMEOUT_EXPIRED = 25,
NVME_SC_KA_TIMEOUT_INVALID = 26,
NVME_SC_ABORTED_PREEMPT_ABORT = 27,
NVME_SC_SANITIZE_FAILED = 28,
NVME_SC_SANITIZE_IN_PROGRESS = 29,
NVME_SC_SGL_INVALID_GRANULARITY = 30,
NVME_SC_CMD_NOT_SUP_CMB_QUEUE = 31,
NVME_SC_NS_WRITE_PROTECTED = 32,
NVME_SC_CMD_INTERRUPTED = 33,
NVME_SC_TRANSIENT_TR_ERR = 34,
NVME_SC_ADMIN_COMMAND_MEDIA_NOT_READY = 36,
NVME_SC_INVALID_IO_CMD_SET = 44,
NVME_SC_LBA_RANGE = 128,
NVME_SC_CAP_EXCEEDED = 129,
NVME_SC_NS_NOT_READY = 130,
NVME_SC_RESERVATION_CONFLICT = 131,
NVME_SC_FORMAT_IN_PROGRESS = 132,
NVME_SC_CQ_INVALID = 256,
NVME_SC_QID_INVALID = 257,
NVME_SC_QUEUE_SIZE = 258,
NVME_SC_ABORT_LIMIT = 259,
NVME_SC_ABORT_MISSING = 260,
NVME_SC_ASYNC_LIMIT = 261,
NVME_SC_FIRMWARE_SLOT = 262,
NVME_SC_FIRMWARE_IMAGE = 263,
NVME_SC_INVALID_VECTOR = 264,
NVME_SC_INVALID_LOG_PAGE = 265,
NVME_SC_INVALID_FORMAT = 266,
NVME_SC_FW_NEEDS_CONV_RESET = 267,
NVME_SC_INVALID_QUEUE = 268,
NVME_SC_FEATURE_NOT_SAVEABLE = 269,
NVME_SC_FEATURE_NOT_CHANGEABLE = 270,
NVME_SC_FEATURE_NOT_PER_NS = 271,
NVME_SC_FW_NEEDS_SUBSYS_RESET = 272,
NVME_SC_FW_NEEDS_RESET = 273,
NVME_SC_FW_NEEDS_MAX_TIME = 274,
NVME_SC_FW_ACTIVATE_PROHIBITED = 275,
NVME_SC_OVERLAPPING_RANGE = 276,
NVME_SC_NS_INSUFFICIENT_CAP = 277,
NVME_SC_NS_ID_UNAVAILABLE = 278,
NVME_SC_NS_ALREADY_ATTACHED = 280,
NVME_SC_NS_IS_PRIVATE = 281,
NVME_SC_NS_NOT_ATTACHED = 282,
NVME_SC_THIN_PROV_NOT_SUPP = 283,
NVME_SC_CTRL_LIST_INVALID = 284,
NVME_SC_SELT_TEST_IN_PROGRESS = 285,
NVME_SC_BP_WRITE_PROHIBITED = 286,
NVME_SC_CTRL_ID_INVALID = 287,
NVME_SC_SEC_CTRL_STATE_INVALID = 288,
NVME_SC_CTRL_RES_NUM_INVALID = 289,
NVME_SC_RES_ID_INVALID = 290,
NVME_SC_PMR_SAN_PROHIBITED = 291,
NVME_SC_ANA_GROUP_ID_INVALID = 292,
NVME_SC_ANA_ATTACH_FAILED = 293,
NVME_SC_BAD_ATTRIBUTES = 384,
NVME_SC_INVALID_PI = 385,
NVME_SC_READ_ONLY = 386,
NVME_SC_ONCS_NOT_SUPPORTED = 387,
NVME_SC_CONNECT_FORMAT = 384,
NVME_SC_CONNECT_CTRL_BUSY = 385,
NVME_SC_CONNECT_INVALID_PARAM = 386,
NVME_SC_CONNECT_RESTART_DISC = 387,
NVME_SC_CONNECT_INVALID_HOST = 388,
NVME_SC_DISCOVERY_RESTART = 400,
NVME_SC_AUTH_REQUIRED = 401,
NVME_SC_ZONE_BOUNDARY_ERROR = 440,
NVME_SC_ZONE_FULL = 441,
NVME_SC_ZONE_READ_ONLY = 442,
NVME_SC_ZONE_OFFLINE = 443,
NVME_SC_ZONE_INVALID_WRITE = 444,
NVME_SC_ZONE_TOO_MANY_ACTIVE = 445,
NVME_SC_ZONE_TOO_MANY_OPEN = 446,
NVME_SC_ZONE_INVALID_TRANSITION = 447,
NVME_SC_WRITE_FAULT = 640,
NVME_SC_READ_ERROR = 641,
NVME_SC_GUARD_CHECK = 642,
NVME_SC_APPTAG_CHECK = 643,
NVME_SC_REFTAG_CHECK = 644,
NVME_SC_COMPARE_FAILED = 645,
NVME_SC_ACCESS_DENIED = 646,
NVME_SC_UNWRITTEN_BLOCK = 647,
NVME_SC_INTERNAL_PATH_ERROR = 768,
NVME_SC_ANA_PERSISTENT_LOSS = 769,
NVME_SC_ANA_INACCESSIBLE = 770,
NVME_SC_ANA_TRANSITION = 771,
NVME_SC_CTRL_PATH_ERROR = 864,
NVME_SC_HOST_PATH_ERROR = 880,
NVME_SC_HOST_ABORTED_CMD = 881,
NVME_SC_CRD = 6144,
NVME_SC_MORE = 8192,
NVME_SC_DNR = 16384,
};
enum {
NVME_REQ_CANCELLED = 1,
NVME_REQ_USERCMD = 2,
NVME_MPATH_IO_STATS = 4,
};
enum {
NVME_CMD_FUSE_FIRST = 1,
NVME_CMD_FUSE_SECOND = 2,
NVME_CMD_SGL_METABUF = 64,
NVME_CMD_SGL_METASEG = 128,
NVME_CMD_SGL_ALL = 192,
};
enum nvmf_capsule_command {
nvme_fabrics_type_property_set = 0,
nvme_fabrics_type_connect = 1,
nvme_fabrics_type_property_get = 4,
nvme_fabrics_type_auth_send = 5,
nvme_fabrics_type_auth_receive = 6,
};
enum nvme_zone_mgmt_action {
NVME_ZONE_CLOSE = 1,
NVME_ZONE_FINISH = 2,
NVME_ZONE_OPEN = 3,
NVME_ZONE_RESET = 4,
NVME_ZONE_OFFLINE = 5,
NVME_ZONE_SET_DESC_EXT = 16,
};
enum nvme_opcode {
nvme_cmd_flush = 0,
nvme_cmd_write = 1,
nvme_cmd_read = 2,
nvme_cmd_write_uncor = 4,
nvme_cmd_compare = 5,
nvme_cmd_write_zeroes = 8,
nvme_cmd_dsm = 9,
nvme_cmd_verify = 12,
nvme_cmd_resv_register = 13,
nvme_cmd_resv_report = 14,
nvme_cmd_resv_acquire = 17,
nvme_cmd_resv_release = 21,
nvme_cmd_zone_mgmt_send = 121,
nvme_cmd_zone_mgmt_recv = 122,
nvme_cmd_zone_append = 125,
nvme_cmd_vendor_start = 128,
};
enum {
NVME_SUBMIT_AT_HEAD = 1,
NVME_SUBMIT_NOWAIT = 2,
NVME_SUBMIT_RESERVED = 4,
NVME_SUBMIT_RETRY = 8,
};
enum {
NVME_CMD_EFFECTS_CSUPP = 1,
NVME_CMD_EFFECTS_LBCC = 2,
NVME_CMD_EFFECTS_NCC = 4,
NVME_CMD_EFFECTS_NIC = 8,
NVME_CMD_EFFECTS_CCC = 16,
NVME_CMD_EFFECTS_CSER_MASK = 49152,
NVME_CMD_EFFECTS_CSE_MASK = 458752,
NVME_CMD_EFFECTS_UUID_SEL = 524288,
NVME_CMD_EFFECTS_SCOPE_MASK = 4293918720,
};
enum nvme_admin_opcode {
nvme_admin_delete_sq = 0,
nvme_admin_create_sq = 1,
nvme_admin_get_log_page = 2,
nvme_admin_delete_cq = 4,
nvme_admin_create_cq = 5,
nvme_admin_identify = 6,
nvme_admin_abort_cmd = 8,
nvme_admin_set_features = 9,
nvme_admin_get_features = 10,
nvme_admin_async_event = 12,
nvme_admin_ns_mgmt = 13,
nvme_admin_activate_fw = 16,
nvme_admin_download_fw = 17,
nvme_admin_dev_self_test = 20,
nvme_admin_ns_attach = 21,
nvme_admin_keep_alive = 24,
nvme_admin_directive_send = 25,
nvme_admin_directive_recv = 26,
nvme_admin_virtual_mgmt = 28,
nvme_admin_nvme_mi_send = 29,
nvme_admin_nvme_mi_recv = 30,
nvme_admin_dbbuf = 124,
nvme_admin_format_nvm = 128,
nvme_admin_security_send = 129,
nvme_admin_security_recv = 130,
nvme_admin_sanitize_nvm = 132,
nvme_admin_get_lba_status = 134,
nvme_admin_vendor_start = 192,
};
enum {
NVME_QUEUE_PHYS_CONTIG = 1,
NVME_CQ_IRQ_ENABLED = 2,
NVME_SQ_PRIO_URGENT = 0,
NVME_SQ_PRIO_HIGH = 2,
NVME_SQ_PRIO_MEDIUM = 4,
NVME_SQ_PRIO_LOW = 6,
NVME_FEAT_ARBITRATION = 1,
NVME_FEAT_POWER_MGMT = 2,
NVME_FEAT_LBA_RANGE = 3,
NVME_FEAT_TEMP_THRESH = 4,
NVME_FEAT_ERR_RECOVERY = 5,
NVME_FEAT_VOLATILE_WC = 6,
NVME_FEAT_NUM_QUEUES = 7,
NVME_FEAT_IRQ_COALESCE = 8,
NVME_FEAT_IRQ_CONFIG = 9,
NVME_FEAT_WRITE_ATOMIC = 10,
NVME_FEAT_ASYNC_EVENT = 11,
NVME_FEAT_AUTO_PST = 12,
NVME_FEAT_HOST_MEM_BUF = 13,
NVME_FEAT_TIMESTAMP = 14,
NVME_FEAT_KATO = 15,
NVME_FEAT_HCTM = 16,
NVME_FEAT_NOPSC = 17,
NVME_FEAT_RRL = 18,
NVME_FEAT_PLM_CONFIG = 19,
NVME_FEAT_PLM_WINDOW = 20,
NVME_FEAT_HOST_BEHAVIOR = 22,
NVME_FEAT_SANITIZE = 23,
NVME_FEAT_SW_PROGRESS = 128,
NVME_FEAT_HOST_ID = 129,
NVME_FEAT_RESV_MASK = 130,
NVME_FEAT_RESV_PERSIST = 131,
NVME_FEAT_WRITE_PROTECT = 132,
NVME_FEAT_VENDOR_START = 192,
NVME_FEAT_VENDOR_END = 255,
NVME_LOG_ERROR = 1,
NVME_LOG_SMART = 2,
NVME_LOG_FW_SLOT = 3,
NVME_LOG_CHANGED_NS = 4,
NVME_LOG_CMD_EFFECTS = 5,
NVME_LOG_DEVICE_SELF_TEST = 6,
NVME_LOG_TELEMETRY_HOST = 7,
NVME_LOG_TELEMETRY_CTRL = 8,
NVME_LOG_ENDURANCE_GROUP = 9,
NVME_LOG_ANA = 12,
NVME_LOG_DISC = 112,
NVME_LOG_RESERVATION = 128,
NVME_FWACT_REPL = 0,
NVME_FWACT_REPL_ACTV = 8,
NVME_FWACT_ACTV = 16,
};
enum {
NVME_ID_CNS_NS = 0,
NVME_ID_CNS_CTRL = 1,
NVME_ID_CNS_NS_ACTIVE_LIST = 2,
NVME_ID_CNS_NS_DESC_LIST = 3,
NVME_ID_CNS_CS_NS = 5,
NVME_ID_CNS_CS_CTRL = 6,
NVME_ID_CNS_NS_CS_INDEP = 8,
NVME_ID_CNS_NS_PRESENT_LIST = 16,
NVME_ID_CNS_NS_PRESENT = 17,
NVME_ID_CNS_CTRL_NS_LIST = 18,
NVME_ID_CNS_CTRL_LIST = 19,
NVME_ID_CNS_SCNDRY_CTRL_LIST = 21,
NVME_ID_CNS_NS_GRANULARITY = 22,
NVME_ID_CNS_UUID_LIST = 23,
};
enum {
NVME_CC_ENABLE = 1,
NVME_CC_EN_SHIFT = 0,
NVME_CC_CSS_SHIFT = 4,
NVME_CC_MPS_SHIFT = 7,
NVME_CC_AMS_SHIFT = 11,
NVME_CC_SHN_SHIFT = 14,
NVME_CC_IOSQES_SHIFT = 16,
NVME_CC_IOCQES_SHIFT = 20,
NVME_CC_CSS_NVM = 0,
NVME_CC_CSS_CSI = 96,
NVME_CC_CSS_MASK = 112,
NVME_CC_AMS_RR = 0,
NVME_CC_AMS_WRRU = 2048,
NVME_CC_AMS_VS = 14336,
NVME_CC_SHN_NONE = 0,
NVME_CC_SHN_NORMAL = 16384,
NVME_CC_SHN_ABRUPT = 32768,
NVME_CC_SHN_MASK = 49152,
NVME_CC_IOSQES = 393216,
NVME_CC_IOCQES = 4194304,
NVME_CC_CRIME = 16777216,
};
enum {
NVME_REG_CAP = 0,
NVME_REG_VS = 8,
NVME_REG_INTMS = 12,
NVME_REG_INTMC = 16,
NVME_REG_CC = 20,
NVME_REG_CSTS = 28,
NVME_REG_NSSR = 32,
NVME_REG_AQA = 36,
NVME_REG_ASQ = 40,
NVME_REG_ACQ = 48,
NVME_REG_CMBLOC = 56,
NVME_REG_CMBSZ = 60,
NVME_REG_BPINFO = 64,
NVME_REG_BPRSEL = 68,
NVME_REG_BPMBL = 72,
NVME_REG_CMBMSC = 80,
NVME_REG_CRTO = 104,
NVME_REG_PMRCAP = 3584,
NVME_REG_PMRCTL = 3588,
NVME_REG_PMRSTS = 3592,
NVME_REG_PMREBS = 3596,
NVME_REG_PMRSWTP = 3600,
NVME_REG_DBS = 4096,
};
enum {
NVME_CSTS_RDY = 1,
NVME_CSTS_CFS = 2,
NVME_CSTS_NSSRO = 16,
NVME_CSTS_PP = 32,
NVME_CSTS_SHST_NORMAL = 0,
NVME_CSTS_SHST_OCCUR = 4,
NVME_CSTS_SHST_CMPLT = 8,
NVME_CSTS_SHST_MASK = 12,
};
enum nvme_quirks {
NVME_QUIRK_STRIPE_SIZE = 1,
NVME_QUIRK_IDENTIFY_CNS = 2,
NVME_QUIRK_DEALLOCATE_ZEROES = 4,
NVME_QUIRK_DELAY_BEFORE_CHK_RDY = 8,
NVME_QUIRK_NO_APST = 16,
NVME_QUIRK_NO_DEEPEST_PS = 32,
NVME_QUIRK_MEDIUM_PRIO_SQ = 128,
NVME_QUIRK_IGNORE_DEV_SUBNQN = 256,
NVME_QUIRK_DISABLE_WRITE_ZEROES = 512,
NVME_QUIRK_SIMPLE_SUSPEND = 1024,
NVME_QUIRK_SINGLE_VECTOR = 2048,
NVME_QUIRK_128_BYTES_SQES = 4096,
NVME_QUIRK_SHARED_TAGS = 8192,
NVME_QUIRK_NO_TEMP_THRESH_CHANGE = 16384,
NVME_QUIRK_NO_NS_DESC_LIST = 32768,
NVME_QUIRK_DMA_ADDRESS_BITS_48 = 65536,
NVME_QUIRK_SKIP_CID_GEN = 131072,
NVME_QUIRK_BOGUS_NID = 262144,
NVME_QUIRK_NO_SECONDARY_TEMP_THRESH = 524288,
NVME_QUIRK_FORCE_NO_SIMPLE_SUSPEND = 1048576,
};
enum {
NVME_CAP_CSS_NVM = 1,
NVME_CAP_CSS_CSI = 64,
};
enum {
NVME_CAP_CRMS_CRWMS = 576460752303423488ULL,
NVME_CAP_CRMS_CRIMS = 1152921504606846976ULL,
};
enum {
NVME_AER_ERROR = 0,
NVME_AER_SMART = 1,
NVME_AER_NOTICE = 2,
NVME_AER_CSS = 6,
NVME_AER_VS = 7,
};
enum {
NVME_AER_ERROR_PERSIST_INT_ERR = 3,
};
enum nvmf_fabrics_opcode {
nvme_fabrics_command = 127,
};
enum nvme_ns_features {
NVME_NS_EXT_LBAS = 1,
NVME_NS_METADATA_SUPPORTED = 2,
NVME_NS_DEAC = 3,
};
enum {
NVME_RW_LR = 32768,
NVME_RW_FUA = 16384,
NVME_RW_APPEND_PIREMAP = 512,
NVME_RW_DSM_FREQ_UNSPEC = 0,
NVME_RW_DSM_FREQ_TYPICAL = 1,
NVME_RW_DSM_FREQ_RARE = 2,
NVME_RW_DSM_FREQ_READS = 3,
NVME_RW_DSM_FREQ_WRITES = 4,
NVME_RW_DSM_FREQ_RW = 5,
NVME_RW_DSM_FREQ_ONCE = 6,
NVME_RW_DSM_FREQ_PREFETCH = 7,
NVME_RW_DSM_FREQ_TEMP = 8,
NVME_RW_DSM_LATENCY_NONE = 0,
NVME_RW_DSM_LATENCY_IDLE = 16,
NVME_RW_DSM_LATENCY_NORM = 32,
NVME_RW_DSM_LATENCY_LOW = 48,
NVME_RW_DSM_SEQ_REQ = 64,
NVME_RW_DSM_COMPRESSED = 128,
NVME_RW_PRINFO_PRCHK_REF = 1024,
NVME_RW_PRINFO_PRCHK_APP = 2048,
NVME_RW_PRINFO_PRCHK_GUARD = 4096,
NVME_RW_PRINFO_PRACT = 8192,
NVME_RW_DTYPE_STREAMS = 16,
NVME_WZ_DEAC = 512,
};
enum {
NVME_NS_FEAT_THIN = 1,
NVME_NS_FEAT_ATOMICS = 2,
NVME_NS_FEAT_IO_OPT = 16,
NVME_NS_ATTR_RO = 1,
NVME_NS_FLBAS_LBA_MASK = 15,
NVME_NS_FLBAS_LBA_UMASK = 96,
NVME_NS_FLBAS_LBA_SHIFT = 1,
NVME_NS_FLBAS_META_EXT = 16,
NVME_NS_NMIC_SHARED = 1,
NVME_LBAF_RP_BEST = 0,
NVME_LBAF_RP_BETTER = 1,
NVME_LBAF_RP_GOOD = 2,
NVME_LBAF_RP_DEGRADED = 3,
NVME_NS_DPC_PI_LAST = 16,
NVME_NS_DPC_PI_FIRST = 8,
NVME_NS_DPC_PI_TYPE3 = 4,
NVME_NS_DPC_PI_TYPE2 = 2,
NVME_NS_DPC_PI_TYPE1 = 1,
NVME_NS_DPS_PI_FIRST = 8,
NVME_NS_DPS_PI_MASK = 7,
NVME_NS_DPS_PI_TYPE1 = 1,
NVME_NS_DPS_PI_TYPE2 = 2,
NVME_NS_DPS_PI_TYPE3 = 3,
};
enum {
NVME_NVM_NS_16B_GUARD = 0,
NVME_NVM_NS_32B_GUARD = 1,
NVME_NVM_NS_64B_GUARD = 2,
};
enum {
NVME_DSMGMT_IDR = 1,
NVME_DSMGMT_IDW = 2,
NVME_DSMGMT_AD = 4,
};
enum {
NVME_CTRL_CMIC_MULTI_PORT = 1,
NVME_CTRL_CMIC_MULTI_CTRL = 2,
NVME_CTRL_CMIC_ANA = 8,
NVME_CTRL_ONCS_COMPARE = 1,
NVME_CTRL_ONCS_WRITE_UNCORRECTABLE = 2,
NVME_CTRL_ONCS_DSM = 4,
NVME_CTRL_ONCS_WRITE_ZEROES = 8,
NVME_CTRL_ONCS_RESERVATIONS = 32,
NVME_CTRL_ONCS_TIMESTAMP = 64,
NVME_CTRL_VWC_PRESENT = 1,
NVME_CTRL_OACS_SEC_SUPP = 1,
NVME_CTRL_OACS_NS_MNGT_SUPP = 8,
NVME_CTRL_OACS_DIRECTIVES = 32,
NVME_CTRL_OACS_DBBUF_SUPP = 256,
NVME_CTRL_LPA_CMD_EFFECTS_LOG = 2,
NVME_CTRL_CTRATT_128_ID = 1,
NVME_CTRL_CTRATT_NON_OP_PSP = 2,
NVME_CTRL_CTRATT_NVM_SETS = 4,
NVME_CTRL_CTRATT_READ_RECV_LVLS = 8,
NVME_CTRL_CTRATT_ENDURANCE_GROUPS = 16,
NVME_CTRL_CTRATT_PREDICTABLE_LAT = 32,
NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY = 128,
NVME_CTRL_CTRATT_UUID_LIST = 512,
};
enum {
NVME_CSI_NVM = 0,
NVME_CSI_ZNS = 2,
};
enum {
NVME_PS_FLAGS_MAX_POWER_SCALE = 1,
NVME_PS_FLAGS_NON_OP_STATE = 2,
};
enum {
NVME_ENABLE_ACRE = 1,
NVME_ENABLE_LBAFEE = 1,
};
enum nvme_ctrl_attr {
NVME_CTRL_ATTR_HID_128_BIT = 1,
NVME_CTRL_ATTR_TBKAS = 64,
NVME_CTRL_ATTR_ELBAS = 32768,
};
enum {
NVME_AER_NOTICE_NS_CHANGED = 0,
NVME_AER_NOTICE_FW_ACT_STARTING = 1,
NVME_AER_NOTICE_ANA = 3,
NVME_AER_NOTICE_DISC_CHANGED = 240,
};
enum {
NVME_AEN_CFG_NS_ATTR = 256,
NVME_AEN_CFG_FW_ACT = 512,
NVME_AEN_CFG_ANA_CHANGE = 2048,
NVME_AEN_CFG_DISC_CHANGE = -2147483648,
};
enum {
NVME_NIDT_EUI64 = 1,
NVME_NIDT_NGUID = 2,
NVME_NIDT_UUID = 3,
NVME_NIDT_CSI = 4,
};
enum {
NVME_NSTAT_NRDY = 1,
};
enum {
NVME_ID_NS_NVM_STS_MASK = 127,
NVME_ID_NS_NVM_GUARD_SHIFT = 7,
NVME_ID_NS_NVM_GUARD_MASK = 3,
};
struct trace_event_raw_nvme_setup_cmd {
struct trace_entry ent;
char disk[32];
int ctrl_id;
int qid;
u8 opcode;
u8 flags;
u8 fctype;
u16 cid;
u32 nsid;
bool metadata;
u8 cdw10[24];
char __data[0];
};
struct trace_event_raw_nvme_complete_rq {
struct trace_entry ent;
char disk[32];
int ctrl_id;
int qid;
int cid;
u64 result;
u8 retries;
u8 flags;
u16 status;
char __data[0];
};
struct trace_event_raw_nvme_async_event {
struct trace_entry ent;
int ctrl_id;
u32 result;
char __data[0];
};
struct trace_event_raw_nvme_sq {
struct trace_entry ent;
int ctrl_id;
char disk[32];
int qid;
u16 sq_head;
u16 sq_tail;
char __data[0];
};
union nvme_result {
__le16 u16;
__le32 u32;
__le64 u64;
};
struct nvme_request {
struct nvme_command *cmd;
union nvme_result result;
u8 genctr;
u8 retries;
u8 flags;
u16 status;
struct nvme_ctrl *ctrl;
};
struct nvme_id_ctrl {
__le16 vid;
__le16 ssvid;
char sn[20];
char mn[40];
char fr[8];
__u8 rab;
__u8 ieee[3];
__u8 cmic;
__u8 mdts;
__le16 cntlid;
__le32 ver;
__le32 rtd3r;
__le32 rtd3e;
__le32 oaes;
__le32 ctratt;
__u8 rsvd100[11];
__u8 cntrltype;
__u8 fguid[16];
__le16 crdt1;
__le16 crdt2;
__le16 crdt3;
__u8 rsvd134[122];
__le16 oacs;
__u8 acl;
__u8 aerl;
__u8 frmw;
__u8 lpa;
__u8 elpe;
__u8 npss;
__u8 avscc;
__u8 apsta;
__le16 wctemp;
__le16 cctemp;
__le16 mtfa;
__le32 hmpre;
__le32 hmmin;
__u8 tnvmcap[16];
__u8 unvmcap[16];
__le32 rpmbs;
__le16 edstt;
__u8 dsto;
__u8 fwug;
__le16 kas;
__le16 hctma;
__le16 mntmt;
__le16 mxtmt;
__le32 sanicap;
__le32 hmminds;
__le16 hmmaxd;
__u8 rsvd338[4];
__u8 anatt;
__u8 anacap;
__le32 anagrpmax;
__le32 nanagrpid;
__u8 rsvd352[160];
__u8 sqes;
__u8 cqes;
__le16 maxcmd;
__le32 nn;
__le16 oncs;
__le16 fuses;
__u8 fna;
__u8 vwc;
__le16 awun;
__le16 awupf;
__u8 nvscc;
__u8 nwpc;
__le16 acwu;
__u8 rsvd534[2];
__le32 sgls;
__le32 mnan;
__u8 rsvd544[224];
char subnqn[256];
__u8 rsvd1024[768];
__le32 ioccsz;
__le32 iorcsz;
__le16 icdoff;
__u8 ctrattr;
__u8 msdbd;
__u8 rsvd1804[2];
__u8 dctype;
__u8 rsvd1807[241];
struct nvme_id_power_state psd[32];
__u8 vs[1024];
};
struct nvme_feat_host_behavior {
__u8 acre;
__u8 etdas;
__u8 lbafee;
__u8 resv1[509];
};
struct nvme_id_ctrl_nvm {
__u8 vsl;
__u8 wzsl;
__u8 wusl;
__u8 dmrl;
__le32 dmrsl;
__le64 dmsl;
__u8 rsvd16[4080];
};
struct nvme_fw_slot_info_log {
__u8 afi;
__u8 rsvd1[7];
__le64 frs[7];
__u8 rsvd64[448];
};
struct nvme_ns_info {
struct nvme_ns_ids ids;
u32 nsid;
__le32 anagrpid;
bool is_shared;
bool is_readonly;
bool is_ready;
bool is_removed;
};
struct nvme_ns_id_desc {
__u8 nidt;
__u8 nidl;
__le16 reserved;
};
struct nvme_id_ns_cs_indep {
__u8 nsfeat;
__u8 nmic;
__u8 rescap;
__u8 fpi;
__le32 anagrpid;
__u8 nsattr;
__u8 rsvd9;
__le16 nvmsetid;
__le16 endgid;
__u8 nstat;
__u8 rsvd15[4081];
};
struct nvme_id_ns_nvm {
__le64 lbstm;
__u8 pic;
__u8 rsvd9[3];
__le32 elbaf[64];
__u8 rsvd268[3828];
};
struct blk_integrity_profile;
struct blk_integrity {
const struct blk_integrity_profile *profile;
unsigned char flags;
unsigned char tuple_size;
unsigned char pi_offset;
unsigned char interval_exp;
unsigned char tag_size;
};
struct blk_integrity_iter;
typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *);
typedef void integrity_prepare_fn(struct request *);
typedef void integrity_complete_fn(struct request *, unsigned int);
struct blk_integrity_profile {
integrity_processing_fn *generate_fn;
integrity_processing_fn *verify_fn;
integrity_prepare_fn *prepare_fn;
integrity_complete_fn *complete_fn;
const char *name;
};
struct blk_integrity_iter {
void *prot_buf;
void *data_buf;
sector_t seed;
unsigned int data_size;
unsigned short interval;
unsigned char tuple_size;
unsigned char pi_offset;
const char *disk_name;
};
struct trace_event_data_offsets_nvme_setup_cmd {};
struct trace_event_data_offsets_nvme_complete_rq {};
struct trace_event_data_offsets_nvme_async_event {};
struct trace_event_data_offsets_nvme_sq {};
struct nvme_dsm_range {
__le32 cattr;
__le32 nlb;
__le64 slba;
};
typedef __u32 nvme_submit_flags_t;
struct nvme_feat_auto_pst {
__le64 entries[32];
};
enum iwl_phy_ops_subcmd_ids {
CMD_DTS_MEASUREMENT_TRIGGER_WIDE = 0,
CTDP_CONFIG_CMD = 3,
TEMP_REPORTING_THRESHOLDS_CMD = 4,
PER_CHAIN_LIMIT_OFFSET_CMD = 5,
PER_PLATFORM_ANT_GAIN_CMD = 7,
CT_KILL_NOTIFICATION = 254,
DTS_MEASUREMENT_NOTIF_WIDE = 255,
};
enum iwl_mvm_ctdp_cmd_operation {
CTDP_CMD_OPERATION_START = 1,
CTDP_CMD_OPERATION_STOP = 2,
CTDP_CMD_OPERATION_REPORT = 4,
};
enum iwl_mvm_init_status {
IWL_MVM_INIT_STATUS_THERMAL_INIT_COMPLETE = 1,
IWL_MVM_INIT_STATUS_LEDS_INIT_COMPLETE = 2,
};
struct ct_kill_notif {
__le16 temperature;
u8 dts;
u8 scheme;
};
struct iwl_dts_measurement_notif_v1 {
__le32 temp;
__le32 voltage;
};
struct iwl_dts_measurement_cmd {
__le32 flags;
};
struct iwl_ext_dts_measurement_cmd {
__le32 control_mode;
__le32 temperature;
__le32 sensor;
__le32 avg_factor;
__le32 bit_mode;
__le32 step_duration;
};
struct iwl_dts_measurement_resp {
__le32 temp;
};
struct iwl_mvm_ctdp_cmd {
__le32 operation;
__le32 budget;
__le32 window_size;
};
struct iwl_dts_measurement_notif_v2 {
__le32 temp;
__le32 voltage;
__le32 threshold_idx;
};
struct temp_report_ths_cmd {
__le32 num_temps;
__le16 thresholds[8];
};
struct iwl_trip_walk_data {
__le16 *thresholds;
int count;
};
struct ehci_tt {
u16 bandwidth[8];
struct list_head tt_list;
struct list_head ps_list;
struct usb_tt *usb_tt;
int tt_port;
};
struct ehci_iso_packet {
u64 bufp;
__le32 transaction;
u8 cross;
u32 buf1;
};
struct ehci_iso_sched {
struct list_head td_list;
unsigned int span;
unsigned int first_packet;
struct ehci_iso_packet packet[0];
};
struct debug_buffer {
ssize_t (*fill_func)(struct debug_buffer *);
struct usb_bus *bus;
struct mutex mutex;
size_t count;
char *output_buf;
size_t alloc_size;
};
struct userspace_policy {
unsigned int is_managed;
unsigned int setspeed;
struct mutex mutex;
};
struct simplefb_platform_data {
u32 width;
u32 height;
u32 stride;
const char *format;
};
struct llc_addr {
unsigned char lsap;
unsigned char mac[6];
};
struct llc_sap {
unsigned char state;
unsigned char p_bit;
unsigned char f_bit;
refcount_t refcnt;
int (*rcv_func)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
struct llc_addr laddr;
struct list_head node;
spinlock_t sk_lock;
int sk_count;
struct hlist_nulls_head sk_laddr_hash[64];
struct hlist_head sk_dev_hash[64];
struct callback_head rcu;
};
struct tcp_sack_block_wire {
__be32 start_seq;
__be32 end_seq;
};
enum ioam6_event_attr {
IOAM6_EVENT_ATTR_UNSPEC = 0,
IOAM6_EVENT_ATTR_TRACE_NAMESPACE = 1,
IOAM6_EVENT_ATTR_TRACE_NODELEN = 2,
IOAM6_EVENT_ATTR_TRACE_TYPE = 3,
IOAM6_EVENT_ATTR_TRACE_DATA = 4,
__IOAM6_EVENT_ATTR_MAX = 5,
};
enum {
IOAM6_ATTR_UNSPEC = 0,
IOAM6_ATTR_NS_ID = 1,
IOAM6_ATTR_NS_DATA = 2,
IOAM6_ATTR_NS_DATA_WIDE = 3,
IOAM6_ATTR_SC_ID = 4,
IOAM6_ATTR_SC_DATA = 5,
IOAM6_ATTR_SC_NONE = 6,
IOAM6_ATTR_PAD = 7,
__IOAM6_ATTR_MAX = 8,
};
enum {
IOAM6_CMD_UNSPEC = 0,
IOAM6_CMD_ADD_NAMESPACE = 1,
IOAM6_CMD_DEL_NAMESPACE = 2,
IOAM6_CMD_DUMP_NAMESPACES = 3,
IOAM6_CMD_ADD_SCHEMA = 4,
IOAM6_CMD_DEL_SCHEMA = 5,
IOAM6_CMD_DUMP_SCHEMAS = 6,
IOAM6_CMD_NS_SET_SCHEMA = 7,
__IOAM6_CMD_MAX = 8,
};
struct rate_control_alg {
struct list_head list;
const struct rate_control_ops *ops;
};
struct bts_ctx {
struct perf_output_handle handle;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct debug_store ds_back;
int state;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum {
BTS_STATE_STOPPED = 0,
BTS_STATE_INACTIVE = 1,
BTS_STATE_ACTIVE = 2,
};
struct bts_phys {
struct page *page;
unsigned long size;
unsigned long offset;
unsigned long displacement;
};
struct bts_buffer {
size_t real_size;
unsigned int nr_pages;
unsigned int nr_bufs;
unsigned int cur_buf;
bool snapshot;
local_t data_size;
local_t head;
unsigned long end;
void **data_pages;
struct bts_phys buf[0];
};
typedef __s64 Elf64_Sxword;
struct elf64_rela {
Elf64_Addr r_offset;
Elf64_Xword r_info;
Elf64_Sxword r_addend;
};
typedef struct elf64_rela Elf64_Rela;
struct tick_sched {
unsigned long flags;
unsigned int stalled_jiffies;
unsigned long last_tick_jiffies;
struct hrtimer sched_timer;
ktime_t last_tick;
ktime_t next_tick;
unsigned long idle_jiffies;
ktime_t idle_waketime;
unsigned int got_idle_tick;
seqcount_t idle_sleeptime_seq;
ktime_t idle_entrytime;
unsigned long last_jiffies;
u64 timer_expires_base;
u64 timer_expires;
u64 next_timer;
ktime_t idle_expires;
unsigned long idle_calls;
unsigned long idle_sleeps;
ktime_t idle_exittime;
ktime_t idle_sleeptime;
ktime_t iowait_sleeptime;
atomic_t tick_dep_mask;
unsigned long check_clocks;
};
struct timer_list_iter {
int cpu;
bool second_pass;
u64 now;
};
enum bpf_cmd {
BPF_MAP_CREATE = 0,
BPF_MAP_LOOKUP_ELEM = 1,
BPF_MAP_UPDATE_ELEM = 2,
BPF_MAP_DELETE_ELEM = 3,
BPF_MAP_GET_NEXT_KEY = 4,
BPF_PROG_LOAD = 5,
BPF_OBJ_PIN = 6,
BPF_OBJ_GET = 7,
BPF_PROG_ATTACH = 8,
BPF_PROG_DETACH = 9,
BPF_PROG_TEST_RUN = 10,
BPF_PROG_RUN = 10,
BPF_PROG_GET_NEXT_ID = 11,
BPF_MAP_GET_NEXT_ID = 12,
BPF_PROG_GET_FD_BY_ID = 13,
BPF_MAP_GET_FD_BY_ID = 14,
BPF_OBJ_GET_INFO_BY_FD = 15,
BPF_PROG_QUERY = 16,
BPF_RAW_TRACEPOINT_OPEN = 17,
BPF_BTF_LOAD = 18,
BPF_BTF_GET_FD_BY_ID = 19,
BPF_TASK_FD_QUERY = 20,
BPF_MAP_LOOKUP_AND_DELETE_ELEM = 21,
BPF_MAP_FREEZE = 22,
BPF_BTF_GET_NEXT_ID = 23,
BPF_MAP_LOOKUP_BATCH = 24,
BPF_MAP_LOOKUP_AND_DELETE_BATCH = 25,
BPF_MAP_UPDATE_BATCH = 26,
BPF_MAP_DELETE_BATCH = 27,
BPF_LINK_CREATE = 28,
BPF_LINK_UPDATE = 29,
BPF_LINK_GET_FD_BY_ID = 30,
BPF_LINK_GET_NEXT_ID = 31,
BPF_ENABLE_STATS = 32,
BPF_ITER_CREATE = 33,
BPF_LINK_DETACH = 34,
BPF_PROG_BIND_MAP = 35,
BPF_TOKEN_CREATE = 36,
__MAX_BPF_CMD = 37,
};
enum perf_bpf_event_type {
PERF_BPF_EVENT_UNKNOWN = 0,
PERF_BPF_EVENT_PROG_LOAD = 1,
PERF_BPF_EVENT_PROG_UNLOAD = 2,
PERF_BPF_EVENT_MAX = 3,
};
enum bpf_audit {
BPF_AUDIT_LOAD = 0,
BPF_AUDIT_UNLOAD = 1,
BPF_AUDIT_MAX = 2,
};
enum bpf_task_fd_type {
BPF_FD_TYPE_RAW_TRACEPOINT = 0,
BPF_FD_TYPE_TRACEPOINT = 1,
BPF_FD_TYPE_KPROBE = 2,
BPF_FD_TYPE_KRETPROBE = 3,
BPF_FD_TYPE_UPROBE = 4,
BPF_FD_TYPE_URETPROBE = 5,
};
enum bpf_perf_event_type {
BPF_PERF_EVENT_UNSPEC = 0,
BPF_PERF_EVENT_UPROBE = 1,
BPF_PERF_EVENT_URETPROBE = 2,
BPF_PERF_EVENT_KPROBE = 3,
BPF_PERF_EVENT_KRETPROBE = 4,
BPF_PERF_EVENT_TRACEPOINT = 5,
BPF_PERF_EVENT_EVENT = 6,
};
enum bpf_stats_type {
BPF_STATS_RUN_TIME = 0,
};
typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32);
typedef u64 (*btf_bpf_sys_close)(u32);
typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *);
struct bpf_tracing_link {
struct bpf_tramp_link link;
enum bpf_attach_type attach_type;
struct bpf_trampoline *trampoline;
struct bpf_prog *tgt_prog;
};
struct bpf_perf_link {
struct bpf_link link;
struct file *perf_file;
};
struct bpf_spin_lock {
__u32 val;
};
struct bpf_prog_kstats {
u64 nsecs;
u64 cnt;
u64 misses;
};
struct bpf_attach_target_info {
struct btf_func_model fmodel;
long tgt_addr;
struct module *tgt_mod;
const char *tgt_name;
const struct btf_type *tgt_type;
};
enum rmap_level {
RMAP_LEVEL_PTE = 0,
RMAP_LEVEL_PMD = 1,
};
enum transparent_hugepage_flag {
TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0,
TRANSPARENT_HUGEPAGE_FLAG = 1,
TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2,
TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3,
TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4,
TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5,
TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6,
TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7,
TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8,
};
typedef int rmap_t;
typedef int fpb_t;
typedef int (*pte_fn_t)(pte_t *, unsigned long, void *);
struct copy_subpage_arg {
struct page *dst;
struct page *src;
struct vm_area_struct *vma;
};
enum {
MBE_REFERENCED_B = 0,
MBE_REUSABLE_B = 1,
};
struct mb_cache_entry {
struct list_head e_list;
struct hlist_bl_node e_hash_list;
atomic_t e_refcnt;
u32 e_key;
unsigned long e_flags;
u64 e_value;
};
struct mb_cache {
struct hlist_bl_head *c_hash;
int c_bucket_bits;
unsigned long c_max_entries;
spinlock_t c_list_lock;
struct list_head c_list;
unsigned long c_entry_count;
struct shrinker *c_shrink;
struct work_struct c_shrink_work;
};
struct shortname_info {
unsigned char lower: 1;
unsigned char upper: 1;
unsigned char valid: 1;
};
enum btrfs_ref_type {
BTRFS_REF_NOT_SET = 0,
BTRFS_REF_DATA = 1,
BTRFS_REF_METADATA = 2,
BTRFS_REF_LAST = 3,
} __attribute__((mode(byte)));
struct btrfs_qgroup_extent_record {
struct rb_node node;
u64 bytenr;
u64 num_bytes;
u32 data_rsv;
u64 data_rsv_refroot;
struct ulist *old_roots;
};
struct btrfs_data_ref {
u64 ref_root;
u64 ino;
u64 offset;
};
struct btrfs_tree_ref {
int level;
u64 ref_root;
};
struct btrfs_ref {
enum btrfs_ref_type type;
enum btrfs_delayed_ref_action action;
bool skip_qgroup;
u64 bytenr;
u64 len;
u64 owning_root;
u64 parent;
union {
struct btrfs_data_ref data_ref;
struct btrfs_tree_ref tree_ref;
};
};
struct acomp_req;
struct crypto_acomp {
int (*compress)(struct acomp_req *);
int (*decompress)(struct acomp_req *);
void (*dst_free)(struct scatterlist *);
unsigned int reqsize;
struct crypto_tfm base;
};
struct acomp_req {
struct crypto_async_request base;
struct scatterlist *src;
struct scatterlist *dst;
unsigned int slen;
unsigned int dlen;
u32 flags;
void *__ctx[0];
};
struct acomp_alg {
int (*compress)(struct acomp_req *);
int (*decompress)(struct acomp_req *);
void (*dst_free)(struct scatterlist *);
int (*init)(struct crypto_acomp *);
void (*exit)(struct crypto_acomp *);
unsigned int reqsize;
union {
struct {
struct crypto_alg base;
};
struct comp_alg_common calg;
};
};
struct crypto_istat_compress {
atomic64_t compress_cnt;
atomic64_t compress_tlen;
atomic64_t decompress_cnt;
atomic64_t decompress_tlen;
atomic64_t err_cnt;
};
struct io_xattr {
struct file *file;
struct xattr_ctx ctx;
struct filename *filename;
};
struct repcodes_s {
U32 rep[3];
};
typedef struct repcodes_s repcodes_t;
typedef struct {
U32 litLength;
U32 matchLength;
} ZSTD_sequenceLength;
struct ZSTD_CDict_s {
const void *dictContent;
size_t dictContentSize;
ZSTD_dictContentType_e dictContentType;
U32 *entropyWorkspace;
ZSTD_cwksp workspace;
ZSTD_matchState_t matchState;
ZSTD_compressedBlockState_t cBlockState;
ZSTD_customMem customMem;
U32 dictID;
int compressionLevel;
ZSTD_paramSwitch_e useRowMatchFinder;
};
struct raid6_avx512_constants {
u64 x1d[8];
};
struct msr {
union {
struct {
u32 l;
u32 h;
};
u64 q;
};
};
struct msr_info {
u32 msr_no;
struct msr reg;
struct msr __attribute__((btf_type_tag("percpu"))) *msrs;
int err;
};
struct msr_info_completion {
struct msr_info msr;
struct completion done;
};
struct msr_regs_info {
u32 *regs;
int err;
};
enum enable_type {
undefined = -1,
user_disabled = 0,
auto_disabled = 1,
user_enabled = 2,
auto_enabled = 3,
};
enum release_type {
leaf_only = 0,
whole_subtree = 1,
};
struct pci_dev_resource {
struct list_head list;
struct resource *res;
struct pci_dev *dev;
resource_size_t start;
resource_size_t end;
resource_size_t add_size;
resource_size_t min_align;
unsigned long flags;
};
struct acpi_interface_info {
char *name;
struct acpi_interface_info *next;
u8 flags;
u8 value;
};
typedef u32 (*acpi_interface_handler)(acpi_string, u32);
enum pr_status {
PR_STS_SUCCESS = 0,
PR_STS_IOERR = 2,
PR_STS_RESERVATION_CONFLICT = 24,
PR_STS_RETRY_PATH_FAILURE = 917504,
PR_STS_PATH_FAST_FAILED = 983040,
PR_STS_PATH_FAILED = 65536,
};
enum nvme_pr_type {
NVME_PR_WRITE_EXCLUSIVE = 1,
NVME_PR_EXCLUSIVE_ACCESS = 2,
NVME_PR_WRITE_EXCLUSIVE_REG_ONLY = 3,
NVME_PR_EXCLUSIVE_ACCESS_REG_ONLY = 4,
NVME_PR_WRITE_EXCLUSIVE_ALL_REGS = 5,
NVME_PR_EXCLUSIVE_ACCESS_ALL_REGS = 6,
};
enum nvme_eds {
NVME_EXTENDED_DATA_STRUCT = 1,
};
struct nvme_registered_ctrl {
__le16 cntlid;
__u8 rcsts;
__u8 rsvd3[5];
__le64 hostid;
__le64 rkey;
};
struct nvme_reservation_status {
__le32 gen;
__u8 rtype;
__u8 regctl[2];
__u8 resv5[2];
__u8 ptpls;
__u8 resv10[14];
struct nvme_registered_ctrl regctl_ds[0];
};
struct nvme_registered_ctrl_ext {
__le16 cntlid;
__u8 rcsts;
__u8 rsvd3[5];
__le64 rkey;
__u8 hostid[16];
__u8 rsvd32[32];
};
struct nvme_reservation_status_ext {
__le32 gen;
__u8 rtype;
__u8 regctl[2];
__u8 resv5[2];
__u8 ptpls;
__u8 resv10[14];
__u8 rsvd24[40];
struct nvme_registered_ctrl_ext regctl_eds[0];
};
enum {
TX_STATUS_SUCCESS___2 = 1,
TX_STATUS_DIRECT_DONE___2 = 2,
TX_STATUS_POSTPONE_DELAY___2 = 64,
TX_STATUS_POSTPONE_FEW_BYTES___2 = 65,
TX_STATUS_POSTPONE_BT_PRIO___2 = 66,
TX_STATUS_POSTPONE_QUIET_PERIOD___2 = 67,
TX_STATUS_POSTPONE_CALC_TTAK___2 = 68,
TX_STATUS_FAIL_INTERNAL_CROSSED_RETRY___2 = 129,
TX_STATUS_FAIL_SHORT_LIMIT___2 = 130,
TX_STATUS_FAIL_LONG_LIMIT___2 = 131,
TX_STATUS_FAIL_FIFO_UNDERRUN = 132,
TX_STATUS_FAIL_DRAIN_FLOW___2 = 133,
TX_STATUS_FAIL_RFKILL_FLUSH___2 = 134,
TX_STATUS_FAIL_LIFE_EXPIRE___2 = 135,
TX_STATUS_FAIL_DEST_PS___2 = 136,
TX_STATUS_FAIL_HOST_ABORTED___2 = 137,
TX_STATUS_FAIL_BT_RETRY___2 = 138,
TX_STATUS_FAIL_STA_INVALID___2 = 139,
TX_STATUS_FAIL_FRAG_DROPPED___2 = 140,
TX_STATUS_FAIL_TID_DISABLE___2 = 141,
TX_STATUS_FAIL_FIFO_FLUSHED___2 = 142,
TX_STATUS_FAIL_INSUFFICIENT_CF_POLL = 143,
TX_STATUS_FAIL_PASSIVE_NO_RX = 144,
TX_STATUS_FAIL_NO_BEACON_ON_RADAR = 145,
};
enum {
AGG_TX_STATE_TRANSMITTED = 0,
AGG_TX_STATE_UNDERRUN_MSK = 1,
AGG_TX_STATE_BT_PRIO_MSK = 2,
AGG_TX_STATE_FEW_BYTES_MSK = 4,
AGG_TX_STATE_ABORT_MSK = 8,
AGG_TX_STATE_LAST_SENT_TTL_MSK = 16,
AGG_TX_STATE_LAST_SENT_TRY_CNT_MSK = 32,
AGG_TX_STATE_LAST_SENT_BT_KILL_MSK = 64,
AGG_TX_STATE_SCD_QUERY_MSK = 128,
AGG_TX_STATE_TEST_BAD_CRC32_MSK = 256,
AGG_TX_STATE_RESPONSE_MSK = 511,
AGG_TX_STATE_DUMP_TX_MSK = 512,
AGG_TX_STATE_DELAY_TX_MSK = 1024,
};
enum {
TX_STATUS_MSK___2 = 255,
TX_STATUS_DELAY_MSK = 64,
TX_STATUS_ABORT_MSK = 128,
TX_PACKET_MODE_MSK = 65280,
TX_FIFO_NUMBER_MSK = 458752,
TX_RESERVED = 7864320,
TX_POWER_PA_DETECT_MSK = 2139095040,
TX_ABORT_REQUIRED_MSK = 2147483648,
};
struct iwl_compressed_ba_resp {
__le32 sta_addr_lo32;
__le16 sta_addr_hi16;
__le16 reserved;
u8 sta_id;
u8 tid;
__le16 seq_ctl;
__le64 bitmap;
__le16 scd_flow;
__le16 scd_ssn;
u8 txed;
u8 txed_2_done;
__le16 reserved1;
} __attribute__((packed));
struct rtw_hw_reg_desc {
u32 addr;
u32 mask;
const char *desc;
};
enum rtw_fw_rf_type {
FW_RF_1T2R = 0,
FW_RF_2T4R = 1,
FW_RF_2T2R = 2,
FW_RF_2T3R = 3,
FW_RF_1T1R = 4,
FW_RF_2T2R_GREEN = 5,
FW_RF_3T3R = 6,
FW_RF_3T4R = 7,
FW_RF_4T4R = 8,
FW_RF_MAX_TYPE = 15,
};
enum rtw_beacon_filter_offload_mode {
BCN_FILTER_OFFLOAD_MODE_0 = 0,
BCN_FILTER_OFFLOAD_MODE_1 = 1,
BCN_FILTER_OFFLOAD_MODE_2 = 2,
BCN_FILTER_OFFLOAD_MODE_3 = 3,
BCN_FILTER_OFFLOAD_MODE_DEFAULT = 0,
};
enum rtw_packet_type {
RTW_PACKET_PROBE_REQ = 0,
RTW_PACKET_UNDEFINE = 2147483647,
};
enum rtw_scan_report_code {
RTW_SCAN_REPORT_SUCCESS = 0,
RTW_SCAN_REPORT_ERR_PHYDM = 1,
RTW_SCAN_REPORT_ERR_ID = 2,
RTW_SCAN_REPORT_ERR_TX = 3,
RTW_SCAN_REPORT_CANCELED = 16,
RTW_SCAN_REPORT_CANCELED_EXT = 17,
RTW_SCAN_REPORT_FW_DISABLED = 240,
};
enum rtw_scan_notify_id {
RTW_SCAN_NOTIFY_ID_PRESWITCH = 0,
RTW_SCAN_NOTIFY_ID_POSTSWITCH = 1,
RTW_SCAN_NOTIFY_ID_PROBE_PRETX = 2,
RTW_SCAN_NOTIFY_ID_PROBE_ISSUETX = 3,
RTW_SCAN_NOTIFY_ID_NULL0_PRETX = 4,
RTW_SCAN_NOTIFY_ID_NULL0_ISSUETX = 5,
RTW_SCAN_NOTIFY_ID_NULL0_POSTTX = 6,
RTW_SCAN_NOTIFY_ID_NULL1_PRETX = 7,
RTW_SCAN_NOTIFY_ID_NULL1_ISSUETX = 8,
RTW_SCAN_NOTIFY_ID_NULL1_POSTTX = 9,
RTW_SCAN_NOTIFY_ID_DWELLEXT = 10,
};
enum rtw_c2h_cmd_id_ext {
C2H_SCAN_STATUS_RPT = 3,
C2H_CCX_RPT = 15,
C2H_CHAN_SWITCH = 34,
};
enum rtw_channel_type {
RTW_CHANNEL_PASSIVE = 0,
RTW_CHANNEL_ACTIVE = 1,
RTW_CHANNEL_RADAR = 2,
};
enum rtw_scan_extra_id {
RTW_SCAN_EXTRA_ID_DFS = 0,
};
enum rtw_scan_extra_info {
RTW_SCAN_EXTRA_ACTION_SCAN = 0,
};
struct rtw_c2h_adaptivity {
u8 density;
u8 igi;
u8 l2h_th_init;
u8 l2h;
u8 h2l;
u8 option;
};
struct rtw_h2c_cmd {
__le32 msg;
__le32 msg_ext;
};
struct rtw_fw_iter_ra_data {
struct rtw_dev *rtwdev;
u8 *payload;
};
struct rtw_beacon_filter_iter_data {
struct rtw_dev *rtwdev;
u8 *payload;
};
struct rtw_h2c_register {
u32 w0;
u32 w1;
};
struct rtw_chan_list {
u32 buf_size;
u32 ch_num;
u32 size;
u16 addr;
};
struct rtw_chan_info {
int pri_ch_idx;
int action_id;
int bw;
u8 extra_info;
u8 channel;
u16 timeout;
};
struct rtw_ch_switch_option {
u8 periodic_option;
u32 tsf_high;
u32 tsf_low;
u8 dest_ch_en;
u8 absolute_time_en;
u8 dest_ch;
u8 normal_period;
u8 normal_period_sel;
u8 normal_cycle;
u8 slow_period;
u8 slow_period_sel;
u8 nlo_en;
bool switch_en;
bool back_op_en;
};
struct rtw_lps_pg_dpk_hdr {
u16 dpk_path_ok;
u8 dpk_txagc[2];
u16 dpk_gs[2];
u32 coef[40];
u8 dpk_ch;
} __attribute__((packed));
struct rtw_lps_pg_info_hdr {
u8 macid;
u8 mbssid;
u8 pattern_count;
u8 mu_tab_group_id;
u8 sec_cam_count;
u8 tx_bu_page_count;
u16 rsvd;
u8 sec_cam[8];
};
struct rtw_nlo_info_hdr {
u8 nlo_count;
u8 hidden_ap_count;
u8 rsvd1[2];
u8 pattern_check[4];
u8 rsvd2[8];
u8 ssid_len[16];
u8 chiper[16];
u8 rsvd3[16];
u8 location[8];
};
struct rtw_fw_wow_keep_alive_para {
bool adopt;
u8 pkt_type;
u8 period;
};
struct rtw_fw_wow_disconnect_para {
bool adopt;
u8 period;
u8 retry_count;
};
typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *);
typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long);
typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type);
struct trace_event_raw_thermal_temperature {
struct trace_entry ent;
u32 __data_loc_thermal_zone;
int id;
int temp_prev;
int temp;
char __data[0];
};
struct trace_event_raw_cdev_update {
struct trace_entry ent;
u32 __data_loc_type;
unsigned long target;
char __data[0];
};
struct trace_event_raw_thermal_zone_trip {
struct trace_entry ent;
u32 __data_loc_thermal_zone;
int id;
int trip;
enum thermal_trip_type trip_type;
char __data[0];
};
struct trace_event_data_offsets_thermal_temperature {
u32 thermal_zone;
const void *thermal_zone_ptr_;
};
struct trace_event_data_offsets_cdev_update {
u32 type;
const void *type_ptr_;
};
struct trace_event_data_offsets_thermal_zone_trip {
u32 thermal_zone;
const void *thermal_zone_ptr_;
};
enum {
ETHTOOL_A_CHANNELS_UNSPEC = 0,
ETHTOOL_A_CHANNELS_HEADER = 1,
ETHTOOL_A_CHANNELS_RX_MAX = 2,
ETHTOOL_A_CHANNELS_TX_MAX = 3,
ETHTOOL_A_CHANNELS_OTHER_MAX = 4,
ETHTOOL_A_CHANNELS_COMBINED_MAX = 5,
ETHTOOL_A_CHANNELS_RX_COUNT = 6,
ETHTOOL_A_CHANNELS_TX_COUNT = 7,
ETHTOOL_A_CHANNELS_OTHER_COUNT = 8,
ETHTOOL_A_CHANNELS_COMBINED_COUNT = 9,
__ETHTOOL_A_CHANNELS_CNT = 10,
ETHTOOL_A_CHANNELS_MAX = 9,
};
struct channels_reply_data {
struct ethnl_reply_data base;
struct ethtool_channels channels;
};
enum nft_exthdr_attributes {
NFTA_EXTHDR_UNSPEC = 0,
NFTA_EXTHDR_DREG = 1,
NFTA_EXTHDR_TYPE = 2,
NFTA_EXTHDR_OFFSET = 3,
NFTA_EXTHDR_LEN = 4,
NFTA_EXTHDR_FLAGS = 5,
NFTA_EXTHDR_OP = 6,
NFTA_EXTHDR_SREG = 7,
__NFTA_EXTHDR_MAX = 8,
};
enum nft_exthdr_op {
NFT_EXTHDR_OP_IPV6 = 0,
NFT_EXTHDR_OP_TCPOPT = 1,
NFT_EXTHDR_OP_IPV4 = 2,
NFT_EXTHDR_OP_SCTP = 3,
NFT_EXTHDR_OP_DCCP = 4,
__NFT_EXTHDR_OP_MAX = 5,
};
enum nft_exthdr_flags {
NFT_EXTHDR_F_PRESENT = 1,
};
enum {
DCCPO_PADDING = 0,
DCCPO_MANDATORY = 1,
DCCPO_MIN_RESERVED = 3,
DCCPO_MAX_RESERVED = 31,
DCCPO_CHANGE_L = 32,
DCCPO_CONFIRM_L = 33,
DCCPO_CHANGE_R = 34,
DCCPO_CONFIRM_R = 35,
DCCPO_NDP_COUNT = 37,
DCCPO_ACK_VECTOR_0 = 38,
DCCPO_ACK_VECTOR_1 = 39,
DCCPO_TIMESTAMP = 41,
DCCPO_TIMESTAMP_ECHO = 42,
DCCPO_ELAPSED_TIME = 43,
DCCPO_MAX = 45,
DCCPO_MIN_RX_CCID_SPECIFIC = 128,
DCCPO_MAX_RX_CCID_SPECIFIC = 191,
DCCPO_MIN_TX_CCID_SPECIFIC = 192,
DCCPO_MAX_TX_CCID_SPECIFIC = 255,
};
enum dccp_pkt_type {
DCCP_PKT_REQUEST = 0,
DCCP_PKT_RESPONSE = 1,
DCCP_PKT_DATA = 2,
DCCP_PKT_ACK = 3,
DCCP_PKT_DATAACK = 4,
DCCP_PKT_CLOSEREQ = 5,
DCCP_PKT_CLOSE = 6,
DCCP_PKT_RESET = 7,
DCCP_PKT_SYNC = 8,
DCCP_PKT_SYNCACK = 9,
DCCP_PKT_INVALID = 10,
};
struct dccp_hdr {
__be16 dccph_sport;
__be16 dccph_dport;
__u8 dccph_doff;
__u8 dccph_cscov: 4;
__u8 dccph_ccval: 4;
__sum16 dccph_checksum;
__u8 dccph_x: 1;
__u8 dccph_type: 4;
__u8 dccph_reserved: 3;
__u8 dccph_seq2;
__be16 dccph_seq;
};
struct nft_exthdr {
u8 type;
u8 offset;
u8 len;
u8 op;
u8 dreg;
u8 sreg;
u8 flags;
};
struct sctp_chunkhdr {
__u8 type;
__u8 flags;
__be16 length;
};
enum {
NDA_UNSPEC = 0,
NDA_DST = 1,
NDA_LLADDR = 2,
NDA_CACHEINFO = 3,
NDA_PROBES = 4,
NDA_VLAN = 5,
NDA_PORT = 6,
NDA_VNI = 7,
NDA_IFINDEX = 8,
NDA_MASTER = 9,
NDA_LINK_NETNSID = 10,
NDA_SRC_VNI = 11,
NDA_PROTOCOL = 12,
NDA_NH_ID = 13,
NDA_FDB_EXT_ATTRS = 14,
NDA_FLAGS_EXT = 15,
NDA_NDM_STATE_MASK = 16,
NDA_NDM_FLAGS_MASK = 17,
__NDA_MAX = 18,
};
enum {
NFEA_UNSPEC = 0,
NFEA_ACTIVITY_NOTIFY = 1,
NFEA_DONT_REFRESH = 2,
__NFEA_MAX = 3,
};
enum {
FDB_NOTIFY_BIT = 1,
FDB_NOTIFY_INACTIVE_BIT = 2,
};
struct __fdb_entry {
__u8 mac_addr[6];
__u8 port_no;
__u8 is_local;
__u32 ageing_timer_value;
__u8 port_hi;
__u8 pad0;
__u16 unused;
};
struct nda_cacheinfo {
__u32 ndm_confirmed;
__u32 ndm_used;
__u32 ndm_updated;
__u32 ndm_refcnt;
};
struct scx_bstr_buf {
u64 data[12];
char line[1024];
};
struct scx_dump_data {
s32 cpu;
bool first;
s32 cursor;
struct seq_buf *s;
const char *prefix;
struct scx_bstr_buf buf;
};
typedef void (*btf_trace_sched_ext_dump)(void *, const char *);
struct rt_bandwidth {
raw_spinlock_t rt_runtime_lock;
ktime_t rt_period;
u64 rt_runtime;
struct hrtimer rt_period_timer;
unsigned int rt_period_active;
};
struct scx_cpu_acquire_args;
struct scx_cpu_release_args;
struct scx_init_task_args;
struct scx_exit_task_args;
struct scx_dump_ctx;
struct scx_cgroup_init_args;
struct scx_exit_info;
struct sched_ext_ops {
s32 (*select_cpu)(struct task_struct *, s32, u64);
void (*enqueue)(struct task_struct *, u64);
void (*dequeue)(struct task_struct *, u64);
void (*dispatch)(s32, struct task_struct *);
void (*tick)(struct task_struct *);
void (*runnable)(struct task_struct *, u64);
void (*running)(struct task_struct *);
void (*stopping)(struct task_struct *, bool);
void (*quiescent)(struct task_struct *, u64);
bool (*yield)(struct task_struct *, struct task_struct *);
bool (*core_sched_before)(struct task_struct *, struct task_struct *);
void (*set_weight)(struct task_struct *, u32);
void (*set_cpumask)(struct task_struct *, const struct cpumask *);
void (*update_idle)(s32, bool);
void (*cpu_acquire)(s32, struct scx_cpu_acquire_args *);
void (*cpu_release)(s32, struct scx_cpu_release_args *);
s32 (*init_task)(struct task_struct *, struct scx_init_task_args *);
void (*exit_task)(struct task_struct *, struct scx_exit_task_args *);
void (*enable)(struct task_struct *);
void (*disable)(struct task_struct *);
void (*dump)(struct scx_dump_ctx *);
void (*dump_cpu)(struct scx_dump_ctx *, s32, bool);
void (*dump_task)(struct scx_dump_ctx *, struct task_struct *);
s32 (*cgroup_init)(struct cgroup *, struct scx_cgroup_init_args *);
void (*cgroup_exit)(struct cgroup *);
s32 (*cgroup_prep_move)(struct task_struct *, struct cgroup *, struct cgroup *);
void (*cgroup_move)(struct task_struct *, struct cgroup *, struct cgroup *);
void (*cgroup_cancel_move)(struct task_struct *, struct cgroup *, struct cgroup *);
void (*cgroup_set_weight)(struct cgroup *, u32);
void (*cpu_online)(s32);
void (*cpu_offline)(s32);
s32 (*init)();
void (*exit)(struct scx_exit_info *);
u32 dispatch_max_batch;
u64 flags;
u32 timeout_ms;
u32 exit_dump_len;
u64 hotplug_seq;
char name[128];
};
struct scx_cpu_acquire_args {};
enum scx_cpu_preempt_reason {
SCX_CPU_PREEMPT_RT = 0,
SCX_CPU_PREEMPT_DL = 1,
SCX_CPU_PREEMPT_STOP = 2,
SCX_CPU_PREEMPT_UNKNOWN = 3,
};
struct scx_cpu_release_args {
enum scx_cpu_preempt_reason reason;
struct task_struct *task;
};
struct scx_init_task_args {
bool fork;
struct cgroup *cgroup;
};
struct scx_exit_task_args {
bool cancelled;
};
enum scx_exit_kind {
SCX_EXIT_NONE = 0,
SCX_EXIT_DONE = 1,
SCX_EXIT_UNREG = 64,
SCX_EXIT_UNREG_BPF = 65,
SCX_EXIT_UNREG_KERN = 66,
SCX_EXIT_SYSRQ = 67,
SCX_EXIT_ERROR = 1024,
SCX_EXIT_ERROR_BPF = 1025,
SCX_EXIT_ERROR_STALL = 1026,
};
struct scx_dump_ctx {
enum scx_exit_kind kind;
s64 exit_code;
const char *reason;
u64 at_ns;
u64 at_jiffies;
};
struct scx_cgroup_init_args {
u32 weight;
};
struct scx_exit_info {
enum scx_exit_kind kind;
s64 exit_code;
const char *reason;
unsigned long *bt;
u32 bt_len;
char *msg;
char *dump;
};
struct scx_dsp_ctx {
struct rq *rq;
struct rq_flags *rf;
u32 buf_cursor;
u32 nr_tasks;
};
struct scx_dsp_buf_ent {
struct task_struct *task;
unsigned long qseq;
u64 dsq_id;
u64 enq_flags;
};
enum dl_bw_request {
dl_bw_req_check_overflow = 0,
dl_bw_req_alloc = 1,
dl_bw_req_free = 2,
};
enum scx_kf_mask {
SCX_KF_UNLOCKED = 0,
SCX_KF_SLEEPABLE = 1,
SCX_KF_CPU_RELEASE = 2,
SCX_KF_DISPATCH = 4,
SCX_KF_ENQUEUE = 8,
SCX_KF_SELECT_CPU = 16,
SCX_KF_REST = 32,
__SCX_KF_RQ_LOCKED = 62,
__SCX_KF_TERMINAL = 56,
};
enum scx_dsq_id_flags {
SCX_DSQ_FLAG_BUILTIN = 9223372036854775808ULL,
SCX_DSQ_FLAG_LOCAL_ON = 4611686018427387904ULL,
SCX_DSQ_INVALID = 9223372036854775808ULL,
SCX_DSQ_GLOBAL = 9223372036854775809ULL,
SCX_DSQ_LOCAL = 9223372036854775810ULL,
SCX_DSQ_LOCAL_ON = 13835058055282163712ULL,
SCX_DSQ_LOCAL_CPU_MASK = 4294967295ULL,
};
enum scx_public_consts {
SCX_OPS_NAME_LEN = 128ULL,
SCX_SLICE_DFL = 20000000ULL,
SCX_SLICE_INF = 18446744073709551615ULL,
};
enum scx_task_state {
SCX_TASK_NONE = 0,
SCX_TASK_INIT = 1,
SCX_TASK_READY = 2,
SCX_TASK_ENABLED = 3,
SCX_TASK_NR_STATES = 4,
};
enum scx_rq_flags {
SCX_RQ_BALANCING = 1,
SCX_RQ_CAN_STOP_TICK = 2,
};
enum scx_tg_flags {
SCX_TG_ONLINE = 1,
SCX_TG_INITED = 2,
};
enum scx_ops_enable_state {
SCX_OPS_PREPPING = 0,
SCX_OPS_ENABLING = 1,
SCX_OPS_ENABLED = 2,
SCX_OPS_DISABLING = 3,
SCX_OPS_DISABLED = 4,
};
enum scx_enq_flags {
SCX_ENQ_WAKEUP = 1ULL,
SCX_ENQ_HEAD = 16ULL,
SCX_ENQ_PREEMPT = 4294967296ULL,
SCX_ENQ_REENQ = 1099511627776ULL,
SCX_ENQ_LAST = 2199023255552ULL,
__SCX_ENQ_INTERNAL_MASK = 18374686479671623680ULL,
SCX_ENQ_CLEAR_OPSS = 72057594037927936ULL,
SCX_ENQ_DSQ_PRIQ = 144115188075855872ULL,
};
enum scx_deq_flags {
SCX_DEQ_SLEEP = 1ULL,
SCX_DEQ_CORE_SCHED_EXEC = 4294967296ULL,
};
enum scx_kick_flags {
SCX_KICK_IDLE = 1,
SCX_KICK_PREEMPT = 2,
SCX_KICK_WAIT = 4,
};
enum scx_ops_state {
SCX_OPSS_NONE = 0,
SCX_OPSS_QUEUEING = 1,
SCX_OPSS_QUEUED = 2,
SCX_OPSS_DISPATCHING = 3,
SCX_OPSS_QSEQ_SHIFT = 2,
};
enum scx_ent_flags {
SCX_TASK_QUEUED = 1,
SCX_TASK_BAL_KEEP = 2,
SCX_TASK_RESET_RUNNABLE_AT = 4,
SCX_TASK_DEQD_FOR_SLEEP = 8,
SCX_TASK_STATE_SHIFT = 8,
SCX_TASK_STATE_BITS = 2,
SCX_TASK_STATE_MASK = 768,
SCX_TASK_CURSOR = -2147483648,
};
enum scx_dsq_iter_flags {
SCX_DSQ_ITER_REV = 1,
__SCX_DSQ_ITER_ALL_FLAGS = 1,
};
enum scx_ent_dsq_flags {
SCX_TASK_DSQ_ON_PRIQ = 1,
SCX_TASK_DSQ_CURSOR = -2147483648,
};
enum scx_consts {
SCX_DSP_DFL_MAX_BATCH = 32,
SCX_DSP_MAX_LOOPS = 32,
SCX_WATCHDOG_MAX_TIMEOUT = 30000,
SCX_EXIT_BT_LEN = 64,
SCX_EXIT_MSG_LEN = 1024,
SCX_EXIT_DUMP_DFL_LEN = 32768,
SCX_CPUPERF_ONE = 1024,
};
enum s2idle_states {
S2IDLE_STATE_NONE = 0,
S2IDLE_STATE_ENTER = 1,
S2IDLE_STATE_WAKE = 2,
};
enum scx_exit_code {
SCX_ECODE_RSN_HOTPLUG = 4294967296ULL,
SCX_ECODE_ACT_RESTART = 281474976710656ULL,
};
enum scx_opi {
SCX_OPI_BEGIN = 0,
SCX_OPI_NORMAL_BEGIN = 0,
SCX_OPI_NORMAL_END = 29,
SCX_OPI_CPU_HOTPLUG_BEGIN = 29,
SCX_OPI_CPU_HOTPLUG_END = 31,
SCX_OPI_END = 31,
};
enum cpu_cftype_id {
CPU_CFTYPE_WEIGHT = 0,
CPU_CFTYPE_WEIGHT_NICE = 1,
CPU_CFTYPE_IDLE = 2,
CPU_CFTYPE_CNT = 3,
};
enum scx_ops_flags {
SCX_OPS_KEEP_BUILTIN_IDLE = 1,
SCX_OPS_ENQ_LAST = 2,
SCX_OPS_ENQ_EXITING = 4,
SCX_OPS_SWITCH_PARTIAL = 8,
SCX_OPS_CGROUP_KNOB_WEIGHT = 65536,
SCX_OPS_ALL_FLAGS = 65551,
};
enum scx_wake_flags {
SCX_WAKE_FORK = 4,
SCX_WAKE_TTWU = 8,
SCX_WAKE_SYNC = 16,
};
enum scx_pick_idle_cpu_flags {
SCX_PICK_IDLE_CORE = 1,
};
enum dispatch_to_local_dsq_ret {
DTL_DISPATCHED = 0,
DTL_LOST = 1,
DTL_NOT_LOCAL = 2,
DTL_INVALID = 3,
};
struct idle_timer {
struct hrtimer timer;
int done;
};
struct trace_event_raw_sched_ext_dump {
struct trace_entry ent;
u32 __data_loc_line;
char __data[0];
};
struct bpf_struct_ops_sched_ext_ops {
struct bpf_struct_ops_common_value common;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct sched_ext_ops data;
long: 64;
long: 64;
long: 64;
};
typedef struct rt_rq *rt_rq_iter_t;
struct trace_event_data_offsets_sched_ext_dump {
u32 line;
const void *line_ptr_;
};
struct bpf_bprintf_data {
u32 *bin_args;
char *buf;
bool get_bin_args;
bool get_buf;
};
struct scx_task_iter {
struct sched_ext_entity cursor;
struct task_struct *locked;
struct rq *rq;
struct rq_flags rf;
};
struct sched_enq_and_set_ctx {
struct task_struct *p;
int queue_flags;
bool queued;
bool running;
};
struct bpf_iter_scx_dsq_kern {
struct bpf_iter_scx_dsq_kern *self;
struct scx_dsq_node cursor;
struct scx_dispatch_q *dsq;
u64 dsq_seq;
u64 flags;
};
struct bpf_iter_scx_dsq {
u64 __opaque[12];
};
enum {
Opt_uid___3 = 0,
Opt_gid___4 = 1,
Opt_mode___2 = 2,
Opt_ptmxmode = 3,
Opt_newinstance = 4,
Opt_max = 5,
Opt_err___3 = 6,
};
struct pts_mount_opts {
int setuid;
int setgid;
kuid_t uid;
kgid_t gid;
umode_t mode;
umode_t ptmxmode;
int reserve;
int max;
};
struct pts_fs_info {
struct ida allocated_ptys;
struct pts_mount_opts mount_opts;
struct super_block *sb;
struct dentry *ptmx_dentry;
};
struct isofs_fid {
u32 block;
u16 offset;
u16 parent_offset;
u32 generation;
u32 parent_block;
u32 parent_generation;
};
struct root_name_map {
u64 id;
char name[16];
};
struct btrfs_extent_owner_ref {
__le64 root_id;
};
struct biovec_slab {
int nr_vecs;
char *name;
struct kmem_cache *slab;
};
struct bio_slab {
struct kmem_cache *slab;
unsigned int slab_ref;
unsigned int slab_size;
char name[8];
};
struct acpi_device_info {
u32 info_size;
u32 name;
acpi_object_type type;
u8 param_count;
u16 valid;
u8 flags;
u8 highest_dstates[4];
u8 lowest_dstates[5];
u64 address;
struct acpi_pnp_device_id hardware_id;
struct acpi_pnp_device_id unique_id;
struct acpi_pnp_device_id class_code;
struct acpi_pnp_device_id_list compatible_id_list;
};
typedef u32 acpi_name;
struct clk_composite {
struct clk_hw hw;
struct clk_ops ops;
struct clk_hw *mux_hw;
struct clk_hw *rate_hw;
struct clk_hw *gate_hw;
const struct clk_ops *mux_ops;
const struct clk_ops *rate_ops;
const struct clk_ops *gate_ops;
};
struct dma_fence_array_cb {
struct dma_fence_cb cb;
struct dma_fence_array *array;
};
struct swmii_regs {
u16 bmsr;
u16 lpa;
u16 lpagb;
u16 estat;
};
enum {
SWMII_SPEED_10 = 0,
SWMII_SPEED_100 = 1,
SWMII_SPEED_1000 = 2,
SWMII_DUPLEX_HALF = 0,
SWMII_DUPLEX_FULL = 1,
};
struct fixed_phy_status {
int link;
int speed;
int duplex;
int pause;
int asym_pause;
};
struct fixed_mdio_bus {
struct mii_bus *mii_bus;
struct list_head phys;
};
struct fixed_phy {
int addr;
struct phy_device *phydev;
struct fixed_phy_status status;
bool no_carrier;
int (*link_update)(struct net_device *, struct fixed_phy_status *);
struct list_head node;
struct gpio_desc *link_gpiod;
};
struct iwl_device_cmd {
union {
struct {
struct iwl_cmd_header hdr;
u8 payload[320];
};
struct {
struct iwl_cmd_header_wide hdr_wide;
u8 payload_wide[316];
};
};
};
struct ieee80211_tpt_blink {
int throughput;
int blink_time;
};
enum {
IF_COMB_AP = 0,
NUM_IF_COMB = 1,
};
enum rt2x00_delayed_flags {
DELAYED_UPDATE_BEACON = 0,
};
enum ps2_disposition {
PS2_PROCESS = 0,
PS2_IGNORE = 1,
PS2_ERROR = 2,
};
struct ps2dev;
typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int);
typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8);
struct ps2dev {
struct serio *serio;
struct mutex cmd_mutex;
wait_queue_head_t wait;
unsigned long flags;
u8 cmdbuf[8];
u8 cmdcnt;
u8 nak;
ps2_pre_receive_handler_t pre_receive_handler;
ps2_receive_handler_t receive_handler;
};
struct input_dev_poller {
void (*poll)(struct input_dev *);
unsigned int poll_interval;
unsigned int poll_interval_max;
unsigned int poll_interval_min;
struct input_dev *input;
struct delayed_work work;
};
struct menu_device {
int needs_update;
int tick_wakeup;
u64 next_timer_ns;
unsigned int bucket;
unsigned int correction_factor[12];
unsigned int intervals[8];
int interval_ptr;
};
struct fw_cfg_vmcoreinfo {
__le16 host_format;
__le16 guest_format;
__le32 size;
__le64 paddr;
};
struct fw_cfg_sysfs_entry;
struct fw_cfg_sysfs_attribute {
struct attribute attr;
ssize_t (*show)(struct fw_cfg_sysfs_entry *, char *);
};
struct fw_cfg_sysfs_entry {
struct kobject kobj;
u32 size;
u16 select;
char name[56];
struct list_head list;
};
struct fw_cfg_file {
__be32 size;
__be16 select;
__u16 reserved;
char name[56];
};
struct fw_cfg_dma_access {
__be32 control;
__be32 length;
__be64 address;
};
enum {
ETHTOOL_A_EEE_UNSPEC = 0,
ETHTOOL_A_EEE_HEADER = 1,
ETHTOOL_A_EEE_MODES_OURS = 2,
ETHTOOL_A_EEE_MODES_PEER = 3,
ETHTOOL_A_EEE_ACTIVE = 4,
ETHTOOL_A_EEE_ENABLED = 5,
ETHTOOL_A_EEE_TX_LPI_ENABLED = 6,
ETHTOOL_A_EEE_TX_LPI_TIMER = 7,
__ETHTOOL_A_EEE_CNT = 8,
ETHTOOL_A_EEE_MAX = 7,
};
struct eee_reply_data {
struct ethnl_reply_data base;
struct ethtool_keee eee;
};
struct xt_ecn_info {
__u8 operation;
__u8 invert;
__u8 ip_ect;
union {
struct {
__u8 ect;
} tcp;
} proto;
};
enum {
ICMP6_MIB_NUM = 0,
ICMP6_MIB_INMSGS = 1,
ICMP6_MIB_INERRORS = 2,
ICMP6_MIB_OUTMSGS = 3,
ICMP6_MIB_OUTERRORS = 4,
ICMP6_MIB_CSUMERRORS = 5,
ICMP6_MIB_RATELIMITHOST = 6,
__ICMP6_MIB_MAX = 7,
};
struct frag_hdr {
__u8 nexthdr;
__u8 reserved;
__be16 frag_off;
__be32 identification;
};
struct hop_jumbo_hdr {
u8 nexthdr;
u8 hdrlen;
u8 tlv_type;
u8 tlv_len;
__be32 jumbo_payload_len;
};
struct saved_msr;
struct saved_msrs {
unsigned int num;
struct saved_msr *array;
};
struct saved_context {
struct pt_regs regs;
u16 ds;
u16 es;
u16 fs;
u16 gs;
unsigned long kernelmode_gs_base;
unsigned long usermode_gs_base;
unsigned long fs_base;
unsigned long cr0;
unsigned long cr2;
unsigned long cr3;
unsigned long cr4;
u64 misc_enable;
struct saved_msrs saved_msrs;
unsigned long efer;
u16 gdt_pad;
struct desc_ptr gdt_desc;
u16 idt_pad;
struct desc_ptr idt;
u16 ldt;
u16 tss;
unsigned long tr;
unsigned long safety;
unsigned long return_address;
bool misc_enable_saved;
} __attribute__((packed));
struct saved_msr {
bool valid;
struct msr_info info;
};
enum {
DESC_TSS = 9,
DESC_LDT = 2,
DESCTYPE_S = 16,
};
typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *);
typedef struct ldttss_desc tss_desc;
struct msr_enumeration {
u32 msr_no;
u32 feature;
};
typedef struct {
u64 signature;
u32 revision;
u32 headersize;
u32 crc32;
u32 reserved;
} efi_table_hdr_t;
union efi_simple_text_input_protocol;
typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t;
union efi_simple_text_output_protocol;
typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t;
typedef struct {
efi_table_hdr_t hdr;
u32 get_time;
u32 set_time;
u32 get_wakeup_time;
u32 set_wakeup_time;
u32 set_virtual_address_map;
u32 convert_pointer;
u32 get_variable;
u32 get_next_variable;
u32 set_variable;
u32 get_next_high_mono_count;
u32 reset_system;
u32 update_capsule;
u32 query_capsule_caps;
u32 query_variable_info;
} efi_runtime_services_32_t;
typedef union {
struct {
efi_table_hdr_t hdr;
efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *);
efi_status_t (*set_time)(efi_time_t *);
efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *);
efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *);
efi_status_t (*set_virtual_address_map)(unsigned long, unsigned long, u32, efi_memory_desc_t *);
void *convert_pointer;
efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *);
efi_status_t (*get_next_variable)(unsigned long *, efi_char16_t *, efi_guid_t *);
efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *);
efi_status_t (*get_next_high_mono_count)(u32 *);
void (*reset_system)(int, efi_status_t, unsigned long, efi_char16_t *);
efi_status_t (*update_capsule)(efi_capsule_header_t **, unsigned long, unsigned long);
efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, unsigned long, u64 *, int *);
efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *);
};
efi_runtime_services_32_t mixed_mode;
} efi_runtime_services_t;
union efi_boot_services;
typedef union efi_boot_services efi_boot_services_t;
typedef struct {
efi_table_hdr_t hdr;
u32 fw_vendor;
u32 fw_revision;
u32 con_in_handle;
u32 con_in;
u32 con_out_handle;
u32 con_out;
u32 stderr_handle;
u32 stderr;
u32 runtime;
u32 boottime;
u32 nr_tables;
u32 tables;
} efi_system_table_32_t;
typedef union {
struct {
efi_table_hdr_t hdr;
unsigned long fw_vendor;
u32 fw_revision;
unsigned long con_in_handle;
efi_simple_text_input_protocol_t *con_in;
unsigned long con_out_handle;
efi_simple_text_output_protocol_t *con_out;
unsigned long stderr_handle;
unsigned long stderr;
efi_runtime_services_t *runtime;
efi_boot_services_t *boottime;
unsigned long nr_tables;
unsigned long tables;
};
efi_system_table_32_t mixed_mode;
} efi_system_table_t;
enum wb_state {
WB_registered = 0,
WB_writeback_running = 1,
WB_has_dirty_io = 2,
WB_start_all = 3,
};
enum wb_stat_item {
WB_RECLAIMABLE = 0,
WB_WRITEBACK = 1,
WB_DIRTIED = 2,
WB_WRITTEN = 3,
NR_WB_STAT_ITEMS = 4,
};
struct btrfs_raid_attr {
u8 sub_stripes;
u8 dev_stripes;
u8 devs_max;
u8 devs_min;
u8 tolerated_failures;
u8 devs_increment;
u8 ncopies;
u8 nparity;
u8 mindev_error;
const char raid_name[8];
u64 bg_flag;
};
enum btrfs_map_op {
BTRFS_MAP_READ = 0,
BTRFS_MAP_WRITE = 1,
BTRFS_MAP_GET_READ_MIRRORS = 2,
};
enum {
IO_TREE_FS_PINNED_EXTENTS = 0,
IO_TREE_FS_EXCLUDED_EXTENTS = 1,
IO_TREE_BTREE_INODE_IO = 2,
IO_TREE_INODE_IO = 3,
IO_TREE_RELOC_BLOCKS = 4,
IO_TREE_TRANS_DIRTY_PAGES = 5,
IO_TREE_ROOT_DIRTY_LOG_PAGES = 6,
IO_TREE_INODE_FILE_EXTENT = 7,
IO_TREE_LOG_CSUM_RANGE = 8,
IO_TREE_SELFTEST = 9,
IO_TREE_DEVICE_ALLOC_STATE = 10,
};
struct btrfs_disk_balance_args {
__le64 profiles;
union {
__le64 usage;
struct {
__le32 usage_min;
__le32 usage_max;
};
};
__le64 devid;
__le64 pstart;
__le64 pend;
__le64 vstart;
__le64 vend;
__le64 target;
__le64 flags;
union {
__le64 limit;
struct {
__le32 limit_min;
__le32 limit_max;
};
};
__le32 stripes_min;
__le32 stripes_max;
__le64 unused[6];
};
struct btrfs_balance_item {
__le64 flags;
struct btrfs_disk_balance_args data;
struct btrfs_disk_balance_args meta;
struct btrfs_disk_balance_args sys;
__le64 unused[4];
};
struct btrfs_swapfile_pin {
struct rb_node node;
void *ptr;
struct inode *inode;
bool is_block_group;
int bg_extent_count;
};
struct btrfs_dev_stats_item {
__le64 values[5];
};
struct alloc_chunk_ctl {
u64 start;
u64 type;
int num_stripes;
int sub_stripes;
int dev_stripes;
int devs_max;
int devs_min;
int devs_increment;
int ncopies;
int nparity;
u64 max_stripe_size;
u64 max_chunk_size;
u64 dev_extent_min;
u64 stripe_size;
u64 chunk_size;
int ndevs;
};
struct btrfs_device_info {
struct btrfs_device *dev;
u64 dev_offset;
u64 max_avail;
u64 total_avail;
};
struct btrfs_io_geometry {
u32 stripe_index;
u32 stripe_nr;
int mirror_num;
int num_stripes;
u64 stripe_offset;
u64 raid56_full_stripe_start;
int max_errors;
enum btrfs_map_op op;
};
struct btrfs_discard_stripe {
struct btrfs_device *dev;
u64 physical;
u64 length;
};
enum {
REQ_FSEQ_PREFLUSH = 1,
REQ_FSEQ_DATA = 2,
REQ_FSEQ_POSTFLUSH = 4,
REQ_FSEQ_DONE = 8,
REQ_FSEQ_ACTIONS = 7,
FLUSH_PENDING_TIMEOUT = 5000,
};
enum {
IO_WQ_BIT_EXIT = 0,
};
enum {
IO_WORKER_F_UP = 1,
IO_WORKER_F_RUNNING = 2,
IO_WORKER_F_FREE = 4,
IO_WORKER_F_BOUND = 8,
};
enum {
IO_WQ_WORK_CANCEL = 1,
IO_WQ_WORK_HASHED = 2,
IO_WQ_WORK_UNBOUND = 4,
IO_WQ_WORK_CONCURRENT = 16,
IO_WQ_HASH_SHIFT = 24,
};
enum {
IO_ACCT_STALLED_BIT = 0,
};
enum io_wq_cancel {
IO_WQ_CANCEL_OK = 0,
IO_WQ_CANCEL_RUNNING = 1,
IO_WQ_CANCEL_NOTFOUND = 2,
};
enum {
IO_WQ_ACCT_BOUND = 0,
IO_WQ_ACCT_UNBOUND = 1,
IO_WQ_ACCT_NR = 2,
};
typedef struct io_wq_work *free_work_fn(struct io_wq_work *);
typedef void io_wq_work_fn(struct io_wq_work *);
struct io_wq_acct {
unsigned int nr_workers;
unsigned int max_workers;
int index;
atomic_t nr_running;
raw_spinlock_t lock;
struct io_wq_work_list work_list;
unsigned long flags;
};
struct io_wq {
unsigned long state;
free_work_fn *free_work;
io_wq_work_fn *do_work;
struct io_wq_hash *hash;
atomic_t worker_refs;
struct completion worker_done;
struct hlist_node cpuhp_node;
struct task_struct *task;
struct io_wq_acct acct[2];
raw_spinlock_t lock;
struct hlist_nulls_head free_list;
struct list_head all_list;
struct wait_queue_entry wait;
struct io_wq_work *hash_tail[64];
cpumask_var_t cpu_mask;
};
struct io_worker {
refcount_t ref;
unsigned int flags;
struct hlist_nulls_node nulls_node;
struct list_head all_list;
struct task_struct *task;
struct io_wq *wq;
struct io_wq_work *cur_work;
struct io_wq_work *next_work;
raw_spinlock_t lock;
struct completion ref_done;
unsigned long create_state;
struct callback_head create_work;
int create_index;
union {
struct callback_head rcu;
struct work_struct work;
};
};
typedef bool work_cancel_fn(struct io_wq_work *, void *);
struct io_cb_cancel_data {
work_cancel_fn *fn;
void *data;
int nr_running;
int nr_pending;
bool cancel_all;
};
struct online_data {
unsigned int cpu;
bool online;
};
struct io_wq_data {
struct io_wq_hash *hash;
struct task_struct *task;
io_wq_work_fn *do_work;
free_work_fn *free_work;
};
struct aperture_range {
struct device *dev;
resource_size_t base;
resource_size_t size;
struct list_head lh;
void (*detach)(struct device *);
};
struct pnp_fixup {
char id[7];
void (*quirk_function)(struct pnp_dev *);
};
struct pericom8250 {
void *virt;
unsigned int nr;
int line[0];
};
enum scsi_pr_type {
SCSI_PR_WRITE_EXCLUSIVE = 1,
SCSI_PR_EXCLUSIVE_ACCESS = 3,
SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5,
SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6,
SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7,
SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8,
};
enum {
SD_DEF_XFER_BLOCKS = 65535,
SD_MAX_XFER_BLOCKS = 4294967295,
SD_MAX_WS10_BLOCKS = 65535,
SD_MAX_WS16_BLOCKS = 8388607,
};
enum {
SD_LBP_FULL = 0,
SD_LBP_UNMAP = 1,
SD_LBP_WS16 = 2,
SD_LBP_WS10 = 3,
SD_LBP_ZERO = 4,
SD_LBP_DISABLE = 5,
};
enum t10_dif_type {
T10_PI_TYPE0_PROTECTION = 0,
T10_PI_TYPE1_PROTECTION = 1,
T10_PI_TYPE2_PROTECTION = 2,
T10_PI_TYPE3_PROTECTION = 3,
};
enum {
SD_ZERO_WRITE = 0,
SD_ZERO_WS = 1,
SD_ZERO_WS16_UNMAP = 2,
SD_ZERO_WS10_UNMAP = 3,
};
enum bip_flags {
BIP_BLOCK_INTEGRITY = 1,
BIP_MAPPED_INTEGRITY = 2,
BIP_CTRL_NOCHECK = 4,
BIP_DISK_NOCHECK = 8,
BIP_IP_CHECKSUM = 16,
BIP_INTEGRITY_USER = 32,
BIP_COPY_USER = 64,
};
enum scsi_prot_flags {
SCSI_PROT_TRANSFER_PI = 1,
SCSI_PROT_GUARD_CHECK = 2,
SCSI_PROT_REF_CHECK = 4,
SCSI_PROT_REF_INCREMENT = 8,
SCSI_PROT_IP_CHECKSUM = 16,
};
enum {
SD_EXT_CDB_SIZE = 32,
SD_MEMPOOL_SIZE = 2,
};
struct scsi_mode_data {
__u32 length;
__u16 block_descriptor_length;
__u8 medium_type;
__u8 device_specific;
__u8 header_length;
__u8 longlba: 1;
};
struct scsi_io_group_descriptor {
u8 ic_enable: 1;
u8 cs_enble: 1;
u8 st_enble: 1;
u8 reserved1: 3;
u8 io_advice_hints_mode: 2;
u8 reserved2[3];
u8 lbm_descriptor_type: 4;
u8 rlbsr: 2;
u8 reserved3: 1;
u8 acdlu: 1;
u8 params[2];
u8 reserved4;
u8 reserved5[8];
};
struct scsi_stream_status {
u8 reserved1: 7;
u8 perm: 1;
u8 reserved2;
__be16 stream_identifier;
u8 rel_lifetime: 6;
u8 reserved3: 2;
u8 reserved4[3];
};
struct scsi_stream_status_header {
__be32 len;
u16 reserved;
__be16 number_of_open_streams;
struct {
struct {} __empty_stream_status;
struct scsi_stream_status stream_status[0];
};
};
enum e1000_mng_mode {
e1000_mng_mode_none = 0,
e1000_mng_mode_asf = 1,
e1000_mng_mode_pt = 2,
e1000_mng_mode_ipmi = 3,
e1000_mng_mode_host_if_only = 4,
};
struct e1000_host_mng_command_header {
u8 command_id;
u8 checksum;
u16 reserved1;
u16 reserved2;
u16 command_length;
};
enum iwl_nvm_section_type {
NVM_SECTION_TYPE_SW = 1,
NVM_SECTION_TYPE_REGULATORY = 3,
NVM_SECTION_TYPE_CALIBRATION = 4,
NVM_SECTION_TYPE_PRODUCTION = 5,
NVM_SECTION_TYPE_REGULATORY_SDP = 8,
NVM_SECTION_TYPE_MAC_OVERRIDE = 11,
NVM_SECTION_TYPE_PHY_SKU = 12,
NVM_MAX_NUM_SECTIONS = 13,
};
enum {
READ_NVM_CHUNK_SUCCEED = 0,
READ_NVM_CHUNK_NOT_VALID_ADDRESS = 1,
};
struct iwl_nvm_access_cmd {
u8 op_code;
u8 target;
__le16 type;
__le16 offset;
__le16 length;
u8 data[0];
};
struct iwl_nvm_access_resp {
__le16 offset;
__le16 length;
__le16 type;
__le16 status;
u8 data[0];
};
struct iwl_mcc_update_resp_v8 {
__le32 status;
__le16 mcc;
u8 padding[2];
__le32 cap;
__le16 time;
__le16 geo_info;
u8 source_id;
u8 reserved[3];
__le32 n_channels;
__le32 channels[0];
};
struct iwl_mcc_update_cmd {
__le16 mcc;
u8 source_id;
u8 reserved;
__le32 key;
u8 reserved2[20];
};
struct iwl_mcc_update_resp_v3 {
__le32 status;
__le16 mcc;
u8 cap;
u8 source_id;
__le16 time;
__le16 geo_info;
__le32 n_channels;
__le32 channels[0];
};
struct iwl_mcc_update_resp_v4 {
__le32 status;
__le16 mcc;
__le16 cap;
__le16 time;
__le16 geo_info;
u8 source_id;
u8 reserved[3];
__le32 n_channels;
__le32 channels[0];
};
struct iwl_mcc_chub_notif {
__le16 mcc;
u8 source_id;
u8 reserved1;
};
typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *);
struct dm_arg {
unsigned int min;
unsigned int max;
char *error;
};
struct crypt_config;
struct dm_crypt_request;
struct crypt_iv_operations {
int (*ctr)(struct crypt_config *, struct dm_target *, const char *);
void (*dtr)(struct crypt_config *);
int (*init)(struct crypt_config *);
int (*wipe)(struct crypt_config *);
int (*generator)(struct crypt_config *, u8 *, struct dm_crypt_request *);
int (*post)(struct crypt_config *, u8 *, struct dm_crypt_request *);
};
struct iv_benbi_private {
int shift;
};
struct iv_lmk_private {
struct crypto_shash *hash_tfm;
u8 *seed;
};
struct iv_tcw_private {
struct crypto_shash *crc32_tfm;
u8 *iv_seed;
u8 *whitening;
};
struct iv_elephant_private {
struct crypto_skcipher *tfm;
};
struct crypt_config {
struct dm_dev *dev;
sector_t start;
struct percpu_counter n_allocated_pages;
struct workqueue_struct *io_queue;
struct workqueue_struct *crypt_queue;
spinlock_t write_thread_lock;
struct task_struct *write_thread;
struct rb_root write_tree;
char *cipher_string;
char *cipher_auth;
char *key_string;
const struct crypt_iv_operations *iv_gen_ops;
union {
struct iv_benbi_private benbi;
struct iv_lmk_private lmk;
struct iv_tcw_private tcw;
struct iv_elephant_private elephant;
} iv_gen_private;
u64 iv_offset;
unsigned int iv_size;
unsigned short sector_size;
unsigned char sector_shift;
union {
struct crypto_skcipher **tfms;
struct crypto_aead **tfms_aead;
} cipher_tfm;
unsigned int tfms_count;
unsigned long cipher_flags;
unsigned int dmreq_start;
unsigned int per_bio_data_size;
unsigned long flags;
unsigned int key_size;
unsigned int key_parts;
unsigned int key_extra_size;
unsigned int key_mac_size;
unsigned int integrity_tag_size;
unsigned int integrity_iv_size;
unsigned int on_disk_tag_size;
unsigned int tag_pool_max_sectors;
mempool_t tag_pool;
mempool_t req_pool;
mempool_t page_pool;
struct bio_set bs;
struct mutex bio_alloc_lock;
u8 *authenc_key;
u8 key[0];
};
struct convert_context;
struct dm_crypt_request {
struct convert_context *ctx;
struct scatterlist sg_in[4];
struct scatterlist sg_out[4];
u64 iv_sector;
};
struct convert_context {
struct completion restart;
struct bio *bio_in;
struct bvec_iter iter_in;
struct bio *bio_out;
struct bvec_iter iter_out;
atomic_t cc_pending;
u64 cc_sector;
union {
struct skcipher_request *req;
struct aead_request *req_aead;
} r;
bool aead_recheck;
bool aead_failed;
};
enum flags {
DM_CRYPT_SUSPENDED = 0,
DM_CRYPT_KEY_VALID = 1,
DM_CRYPT_SAME_CPU = 2,
DM_CRYPT_NO_OFFLOAD = 3,
DM_CRYPT_NO_READ_WORKQUEUE = 4,
DM_CRYPT_NO_WRITE_WORKQUEUE = 5,
DM_CRYPT_WRITE_INLINE = 6,
};
enum cipher_flags {
CRYPT_MODE_INTEGRITY_AEAD = 0,
CRYPT_IV_LARGE_SECTORS = 1,
CRYPT_ENCRYPT_PREPROCESS = 2,
};
enum {
CRYPTO_AUTHENC_KEYA_UNSPEC = 0,
CRYPTO_AUTHENC_KEYA_PARAM = 1,
};
struct skcipher_alg {
int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int);
int (*encrypt)(struct skcipher_request *);
int (*decrypt)(struct skcipher_request *);
int (*export)(struct skcipher_request *, void *);
int (*import)(struct skcipher_request *, const void *);
int (*init)(struct crypto_skcipher *);
void (*exit)(struct crypto_skcipher *);
unsigned int walksize;
union {
struct {
unsigned int min_keysize;
unsigned int max_keysize;
unsigned int ivsize;
unsigned int chunksize;
unsigned int statesize;
struct crypto_alg base;
};
struct skcipher_alg_common co;
};
};
struct dm_crypt_io {
struct crypt_config *cc;
struct bio *base_bio;
u8 *integrity_metadata;
bool integrity_metadata_from_pool: 1;
struct work_struct work;
struct convert_context ctx;
atomic_t io_pending;
blk_status_t error;
sector_t sector;
struct bvec_iter saved_bi_iter;
struct rb_node rb_node;
};
struct crypto_authenc_key_param {
__be32 enckeylen;
};
struct bio_integrity_payload {
struct bio *bip_bio;
struct bvec_iter bip_iter;
unsigned short bip_vcnt;
unsigned short bip_max_vcnt;
unsigned short bip_flags;
int: 0;
struct bvec_iter bio_iter;
struct work_struct bip_work;
struct bio_vec *bip_vec;
struct bio_vec bip_inline_vecs[0];
};
struct md5_state {
u32 hash[4];
u32 block[16];
u64 byte_count;
};
struct nf_log_buf {
unsigned int count;
char buf[1020];
};
struct xt_log_info {
unsigned char level;
unsigned char logflags;
char prefix[30];
};
struct pci_root_res {
struct list_head list;
struct resource res;
};
struct pci_root_info {
struct list_head list;
char name[12];
struct list_head resources;
struct resource busn;
int node;
int link;
};
struct amd_hostbridge {
u32 bus;
u32 slot;
u32 device;
};
enum {
LBR_NONE = 0,
LBR_VALID = 1,
};
enum {
ARCH_LBR_BR_TYPE_JCC = 0,
ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1,
ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2,
ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3,
ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4,
ARCH_LBR_BR_TYPE_NEAR_RET = 5,
ARCH_LBR_BR_TYPE_KNOWN_MAX = 5,
ARCH_LBR_BR_TYPE_MAP_MAX = 16,
};
struct x86_perf_task_context_opt {
int lbr_callstack_users;
int lbr_stack_state;
int log_id;
};
struct lbr_entry {
u64 from;
u64 to;
u64 info;
};
struct x86_perf_task_context_arch_lbr {
struct x86_perf_task_context_opt opt;
struct lbr_entry entries[0];
};
struct x86_perf_task_context {
u64 lbr_sel;
int tos;
int valid_lbrs;
struct x86_perf_task_context_opt opt;
struct lbr_entry lbr[32];
};
union cpuid28_eax {
struct {
unsigned int lbr_depth_mask: 8;
unsigned int reserved: 22;
unsigned int lbr_deep_c_reset: 1;
unsigned int lbr_lip: 1;
} split;
unsigned int full;
};
union cpuid28_ecx {
struct {
unsigned int lbr_mispred: 1;
unsigned int lbr_timed_lbr: 1;
unsigned int lbr_br_type: 1;
unsigned int reserved: 13;
unsigned int lbr_counters: 4;
} split;
unsigned int full;
};
union cpuid28_ebx {
struct {
unsigned int lbr_cpl: 1;
unsigned int lbr_filter: 1;
unsigned int lbr_call_stack: 1;
} split;
unsigned int full;
};
struct arch_lbr_state {
u64 lbr_ctl;
u64 lbr_depth;
u64 ler_from;
u64 ler_to;
u64 ler_info;
struct lbr_entry entries[0];
};
struct x86_perf_task_context_arch_lbr_xsave {
struct x86_perf_task_context_opt opt;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
union {
struct xregs_state xsave;
struct {
struct fxregs_state i387;
struct xstate_header header;
struct arch_lbr_state lbr;
long: 64;
long: 64;
long: 64;
};
};
};
struct x86_pmu_lbr {
unsigned int nr;
unsigned int from;
unsigned int to;
unsigned int info;
};
struct rt_wake_q_head {
struct wake_q_head head;
struct task_struct *rtlock_task;
};
struct trace_export {
struct trace_export __attribute__((btf_type_tag("rcu"))) *next;
void (*write)(struct trace_export *, const void *, unsigned int);
int flags;
};
struct ftrace_stack {
unsigned long calls[1024];
};
struct ftrace_stacks {
struct ftrace_stack stacks[4];
};
struct trace_buffer_struct {
int nesting;
char buffer[4096];
};
enum trace_iter_flags {
TRACE_FILE_LAT_FMT = 1,
TRACE_FILE_ANNOTATE = 2,
TRACE_FILE_TIME_IN_NS = 4,
};
struct err_info {
const char **errs;
u8 type;
u16 pos;
u64 ts;
};
struct tracing_log_err {
struct list_head list;
struct err_info info;
char loc[128];
char *cmd;
};
struct buffer_ref {
struct trace_buffer *buffer;
void *page;
int cpu;
refcount_t refcount;
};
struct userstack_entry {
struct trace_entry ent;
unsigned int tgid;
unsigned long caller[8];
};
struct func_repeats_entry {
struct trace_entry ent;
unsigned long ip;
unsigned long parent_ip;
u16 count;
u16 top_delta_ts;
u32 bottom_delta_ts;
};
typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *);
struct partial_page;
struct splice_pipe_desc {
struct page **pages;
struct partial_page *partial;
int nr_pages;
unsigned int nr_pages_max;
const struct pipe_buf_operations *ops;
void (*spd_release)(struct splice_pipe_desc *, unsigned int);
};
struct partial_page {
unsigned int offset;
unsigned int len;
unsigned long private;
};
struct pipe_wait {
struct trace_iterator *iter;
int wait_index;
};
struct print_entry {
struct trace_entry ent;
unsigned long ip;
char buf[0];
};
struct bputs_entry {
struct trace_entry ent;
unsigned long ip;
const char *str;
};
typedef bool (*cond_update_fn_t)(struct trace_array *, void *);
struct ftrace_entry {
struct trace_entry ent;
unsigned long ip;
unsigned long parent_ip;
};
struct stack_entry {
struct trace_entry ent;
int size;
unsigned long caller[0];
};
struct bprint_entry {
struct trace_entry ent;
unsigned long ip;
const char *fmt;
u32 buf[0];
};
struct trace_min_max_param {
struct mutex *lock;
u64 *val;
u64 *min;
u64 *max;
};
struct raw_data_entry {
struct trace_entry ent;
unsigned int id;
char buf[0];
};
struct ftrace_buffer_info {
struct trace_iterator iter;
void *spare;
unsigned int spare_cpu;
unsigned int spare_size;
unsigned int read;
};
struct char_device_struct {
struct char_device_struct *next;
unsigned int major;
unsigned int baseminor;
int minorct;
char name[64];
struct cdev *cdev;
};
enum ramfs_param {
Opt_mode___3 = 0,
};
struct ramfs_mount_opts {
umode_t mode;
};
struct ramfs_fs_info {
struct ramfs_mount_opts mount_opts;
};
enum btrfs_delayed_item_type {
BTRFS_DELAYED_INSERTION_ITEM = 0,
BTRFS_DELAYED_DELETION_ITEM = 1,
};
enum btrfs_ilock_type {
__BTRFS_ILOCK_SHARED_BIT = 0,
BTRFS_ILOCK_SHARED = 1,
__BTRFS_ILOCK_SHARED_SEQ = 0,
__BTRFS_ILOCK_TRY_BIT = 1,
BTRFS_ILOCK_TRY = 2,
__BTRFS_ILOCK_TRY_SEQ = 1,
__BTRFS_ILOCK_MMAP_BIT = 2,
BTRFS_ILOCK_MMAP = 4,
__BTRFS_ILOCK_MMAP_SEQ = 2,
};
struct btrfs_delayed_item {
struct rb_node rb_node;
u64 index;
struct list_head tree_list;
struct list_head readdir_list;
struct list_head log_list;
u64 bytes_reserved;
struct btrfs_delayed_node *delayed_node;
refcount_t refs;
enum btrfs_delayed_item_type type: 8;
bool logged;
u16 data_len;
char data[0];
};
struct btrfs_async_delayed_work {
struct btrfs_delayed_root *delayed_root;
int nr;
struct btrfs_work work;
};
struct crypto_istat_hash {
atomic64_t hash_cnt;
atomic64_t hash_tlen;
atomic64_t err_cnt;
};
struct io_uring_cmd {
struct file *file;
const struct io_uring_sqe *sqe;
void (*task_work_cb)(struct io_uring_cmd *, unsigned int);
u32 cmd_op;
u32 flags;
u8 pdu[32];
};
typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32);
typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long);
typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int);
typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int);
typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *);
typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *);
typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int);
typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *);
typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64);
typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *);
typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int);
typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int);
typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int);
typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *);
typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int);
typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64);
typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int);
struct creds;
enum {
IO_APOLL_OK = 0,
IO_APOLL_ABORTED = 1,
IO_APOLL_READY = 2,
};
enum {
IORING_CQE_BUFFER_SHIFT = 16,
};
enum {
IOU_F_TWQ_LAZY_WAKE = 1,
};
enum {
REQ_F_FIXED_FILE_BIT = 0,
REQ_F_IO_DRAIN_BIT = 1,
REQ_F_LINK_BIT = 2,
REQ_F_HARDLINK_BIT = 3,
REQ_F_FORCE_ASYNC_BIT = 4,
REQ_F_BUFFER_SELECT_BIT = 5,
REQ_F_CQE_SKIP_BIT = 6,
REQ_F_FAIL_BIT = 8,
REQ_F_INFLIGHT_BIT = 9,
REQ_F_CUR_POS_BIT = 10,
REQ_F_NOWAIT_BIT = 11,
REQ_F_LINK_TIMEOUT_BIT = 12,
REQ_F_NEED_CLEANUP_BIT = 13,
REQ_F_POLLED_BIT = 14,
REQ_F_BUFFER_SELECTED_BIT = 15,
REQ_F_BUFFER_RING_BIT = 16,
REQ_F_REISSUE_BIT = 17,
REQ_F_CREDS_BIT = 18,
REQ_F_REFCOUNT_BIT = 19,
REQ_F_ARM_LTIMEOUT_BIT = 20,
REQ_F_ASYNC_DATA_BIT = 21,
REQ_F_SKIP_LINK_CQES_BIT = 22,
REQ_F_SINGLE_POLL_BIT = 23,
REQ_F_DOUBLE_POLL_BIT = 24,
REQ_F_APOLL_MULTISHOT_BIT = 25,
REQ_F_CLEAR_POLLIN_BIT = 26,
REQ_F_HASH_LOCKED_BIT = 27,
REQ_F_SUPPORT_NOWAIT_BIT = 28,
REQ_F_ISREG_BIT = 29,
REQ_F_POLL_NO_LAZY_BIT = 30,
REQ_F_CANCEL_SEQ_BIT = 31,
REQ_F_CAN_POLL_BIT = 32,
REQ_F_BL_EMPTY_BIT = 33,
REQ_F_BL_NO_RECYCLE_BIT = 34,
__REQ_F_LAST_BIT = 35,
};
enum {
IOSQE_FIXED_FILE_BIT = 0,
IOSQE_IO_DRAIN_BIT = 1,
IOSQE_IO_LINK_BIT = 2,
IOSQE_IO_HARDLINK_BIT = 3,
IOSQE_ASYNC_BIT = 4,
IOSQE_BUFFER_SELECT_BIT = 5,
IOSQE_CQE_SKIP_SUCCESS_BIT = 6,
};
struct trace_event_raw_io_uring_create {
struct trace_entry ent;
int fd;
void *ctx;
u32 sq_entries;
u32 cq_entries;
u32 flags;
char __data[0];
};
struct trace_event_raw_io_uring_register {
struct trace_entry ent;
void *ctx;
unsigned int opcode;
unsigned int nr_files;
unsigned int nr_bufs;
long ret;
char __data[0];
};
struct trace_event_raw_io_uring_file_get {
struct trace_entry ent;
void *ctx;
void *req;
u64 user_data;
int fd;
char __data[0];
};
struct trace_event_raw_io_uring_queue_async_work {
struct trace_entry ent;
void *ctx;
void *req;
u64 user_data;
u8 opcode;
unsigned long long flags;
struct io_wq_work *work;
int rw;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_defer {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long data;
u8 opcode;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_link {
struct trace_entry ent;
void *ctx;
void *req;
void *target_req;
char __data[0];
};
struct trace_event_raw_io_uring_cqring_wait {
struct trace_entry ent;
void *ctx;
int min_events;
char __data[0];
};
struct trace_event_raw_io_uring_fail_link {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long user_data;
u8 opcode;
void *link;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_complete {
struct trace_entry ent;
void *ctx;
void *req;
u64 user_data;
int res;
unsigned int cflags;
u64 extra1;
u64 extra2;
char __data[0];
};
struct trace_event_raw_io_uring_submit_req {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long user_data;
u8 opcode;
unsigned long long flags;
bool sq_thread;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_poll_arm {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long user_data;
u8 opcode;
int mask;
int events;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_task_add {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long user_data;
u8 opcode;
int mask;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_req_failed {
struct trace_entry ent;
void *ctx;
void *req;
unsigned long long user_data;
u8 opcode;
u8 flags;
u8 ioprio;
u64 off;
u64 addr;
u32 len;
u32 op_flags;
u16 buf_index;
u16 personality;
u32 file_index;
u64 pad1;
u64 addr3;
int error;
u32 __data_loc_op_str;
char __data[0];
};
struct trace_event_raw_io_uring_cqe_overflow {
struct trace_entry ent;
void *ctx;
unsigned long long user_data;
s32 res;
u32 cflags;
void *ocqe;
char __data[0];
};
struct trace_event_raw_io_uring_task_work_run {
struct trace_entry ent;
void *tctx;
unsigned int count;
char __data[0];
};
struct trace_event_raw_io_uring_short_write {
struct trace_entry ent;
void *ctx;
u64 fpos;
u64 wanted;
u64 got;
char __data[0];
};
struct trace_event_raw_io_uring_local_work_run {
struct trace_entry ent;
void *ctx;
int count;
unsigned int loops;
char __data[0];
};
struct io_defer_entry {
struct list_head list;
struct io_kiocb *req;
u32 seq;
};
struct io_overflow_cqe {
struct list_head list;
struct io_uring_cqe cqe;
};
struct io_tctx_exit {
struct callback_head task_work;
struct completion completion;
struct io_ring_ctx *ctx;
};
struct io_sqring_offsets {
__u32 head;
__u32 tail;
__u32 ring_mask;
__u32 ring_entries;
__u32 flags;
__u32 dropped;
__u32 array;
__u32 resv1;
__u64 user_addr;
};
struct io_cqring_offsets {
__u32 head;
__u32 tail;
__u32 ring_mask;
__u32 ring_entries;
__u32 overflow;
__u32 cqes;
__u32 flags;
__u32 resv1;
__u64 user_addr;
};
struct io_uring_params {
__u32 sq_entries;
__u32 cq_entries;
__u32 flags;
__u32 sq_thread_cpu;
__u32 sq_thread_idle;
__u32 features;
__u32 wq_fd;
__u32 resv[3];
struct io_sqring_offsets sq_off;
struct io_cqring_offsets cq_off;
};
struct trace_event_data_offsets_io_uring_queue_async_work {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_defer {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_fail_link {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_submit_req {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_poll_arm {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_task_add {
u32 op_str;
const void *op_str_ptr_;
};
struct trace_event_data_offsets_io_uring_req_failed {
u32 op_str;
const void *op_str_ptr_;
};
struct io_uring_getevents_arg {
__u64 sigmask;
__u32 sigmask_sz;
__u32 pad;
__u64 ts;
};
struct trace_event_data_offsets_io_uring_create {};
struct trace_event_data_offsets_io_uring_register {};
struct trace_event_data_offsets_io_uring_file_get {};
struct trace_event_data_offsets_io_uring_link {};
struct trace_event_data_offsets_io_uring_cqring_wait {};
struct trace_event_data_offsets_io_uring_complete {};
struct trace_event_data_offsets_io_uring_cqe_overflow {};
struct trace_event_data_offsets_io_uring_task_work_run {};
struct trace_event_data_offsets_io_uring_short_write {};
struct trace_event_data_offsets_io_uring_local_work_run {};
struct io_task_cancel {
struct task_struct *task;
bool all;
};
struct vt_event {
unsigned int event;
unsigned int oldev;
unsigned int newev;
unsigned int pad[4];
};
struct vt_event_wait {
struct list_head list;
struct vt_event event;
int done;
};
struct unimapdesc {
unsigned short entry_ct;
struct unipair __attribute__((btf_type_tag("user"))) *entries;
};
struct vt_stat {
unsigned short v_active;
unsigned short v_signal;
unsigned short v_state;
};
struct vt_sizes {
unsigned short v_rows;
unsigned short v_cols;
unsigned short v_scrollsize;
};
struct vt_setactivate {
unsigned int console;
struct vt_mode mode;
};
struct vt_consize {
unsigned short v_rows;
unsigned short v_cols;
unsigned short v_vlin;
unsigned short v_clin;
unsigned short v_vcol;
unsigned short v_ccol;
};
struct ich8_hsflctl {
u16 flcgo: 1;
u16 flcycle: 2;
u16 reserved: 5;
u16 fldbcount: 2;
u16 flockdn: 6;
};
union ich8_hws_flash_ctrl {
struct ich8_hsflctl hsf_ctrl;
u16 regval;
};
struct ich8_hsfsts {
u16 flcdone: 1;
u16 flcerr: 1;
u16 dael: 1;
u16 berasesz: 2;
u16 flcinprog: 1;
u16 reserved1: 2;
u16 reserved2: 6;
u16 fldesvalid: 1;
u16 flockdn: 1;
};
union ich8_hws_flash_status {
struct ich8_hsfsts hsf_status;
u16 regval;
};
struct ich8_pr {
u32 base: 13;
u32 reserved1: 2;
u32 rpe: 1;
u32 limit: 13;
u32 reserved2: 2;
u32 wpe: 1;
};
union ich8_flash_protected_range {
struct ich8_pr range;
u32 regval;
};
enum rs_column_mode {
RS_INVALID = 0,
RS_LEGACY = 1,
RS_SISO = 2,
RS_MIMO2 = 3,
};
struct rs_tx_column;
typedef bool (*allow_column_func_t)(struct iwl_mvm *, struct ieee80211_sta *, struct rs_rate *, const struct rs_tx_column *);
struct rs_tx_column {
enum rs_column_mode mode;
u8 ant;
bool sgi;
enum rs_column next_columns[7];
allow_column_func_t checks[3];
};
struct iwl_rs_rate_info {
u8 plcp;
u8 plcp_ht_siso;
u8 plcp_ht_mimo2;
u8 plcp_vht_siso;
u8 plcp_vht_mimo2;
u8 prev_rs;
u8 next_rs;
};
enum {
RS_STATE_SEARCH_CYCLE_STARTED = 0,
RS_STATE_SEARCH_CYCLE_ENDED = 1,
RS_STATE_STAY_IN_COLUMN = 2,
};
enum rs_action {
RS_ACTION_STAY = 0,
RS_ACTION_DOWNSCALE = -1,
RS_ACTION_UPSCALE = 1,
};
enum tpc_action {
TPC_ACTION_STAY = 0,
TPC_ACTION_DECREASE = 1,
TPC_ACTION_INCREASE = 2,
TPC_ACTION_NO_RESTIRCTION = 3,
};
enum iwl_power_scheme {
IWL_POWER_SCHEME_CAM = 1,
IWL_POWER_SCHEME_BPS = 2,
IWL_POWER_SCHEME_LP = 3,
};
struct iwl_rate_mcs_info {
char mbps[12];
char mcs[12];
};
struct rs_bfer_active_iter_data {
struct ieee80211_sta *exclude_sta;
struct iwl_mvm_sta *bfer_mvmsta;
};
enum amd_chipset_gen {
NOT_AMD_CHIPSET = 0,
AMD_CHIPSET_SB600 = 1,
AMD_CHIPSET_SB700 = 2,
AMD_CHIPSET_SB800 = 3,
AMD_CHIPSET_HUDSON2 = 4,
AMD_CHIPSET_BOLTON = 5,
AMD_CHIPSET_YANGTZE = 6,
AMD_CHIPSET_TAISHAN = 7,
AMD_CHIPSET_UNKNOWN = 8,
};
struct amd_chipset_type {
enum amd_chipset_gen gen;
u8 rev;
};
struct amd_chipset_info {
struct pci_dev *nb_dev;
struct pci_dev *smbus_dev;
int nb_type;
struct amd_chipset_type sb_type;
int isoc_reqs;
int probe_count;
bool need_pll_quirk;
};
enum rc5_state {
STATE_INACTIVE___2 = 0,
STATE_BIT_START = 1,
STATE_BIT_END = 2,
STATE_CHECK_RC5X = 3,
STATE_FINISHED___2 = 4,
};
enum hwtstamp_flags {
HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1,
HWTSTAMP_FLAG_LAST = 1,
HWTSTAMP_FLAG_MASK = 1,
};
struct compat_ifmap {
compat_ulong_t mem_start;
compat_ulong_t mem_end;
unsigned short base_addr;
unsigned char irq;
unsigned char dma;
unsigned char port;
};
struct ifconf {
int ifc_len;
union {
char __attribute__((btf_type_tag("user"))) *ifcu_buf;
struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req;
} ifc_ifcu;
};
enum {
ETHTOOL_A_PAUSE_UNSPEC = 0,
ETHTOOL_A_PAUSE_HEADER = 1,
ETHTOOL_A_PAUSE_AUTONEG = 2,
ETHTOOL_A_PAUSE_RX = 3,
ETHTOOL_A_PAUSE_TX = 4,
ETHTOOL_A_PAUSE_STATS = 5,
ETHTOOL_A_PAUSE_STATS_SRC = 6,
__ETHTOOL_A_PAUSE_CNT = 7,
ETHTOOL_A_PAUSE_MAX = 6,
};
enum {
ETHTOOL_A_PAUSE_STAT_UNSPEC = 0,
ETHTOOL_A_PAUSE_STAT_PAD = 1,
ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 2,
ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 3,
__ETHTOOL_A_PAUSE_STAT_CNT = 4,
ETHTOOL_A_PAUSE_STAT_MAX = 3,
};
struct pause_req_info {
struct ethnl_req_info base;
enum ethtool_mac_stats_src src;
};
struct pause_reply_data {
struct ethnl_reply_data base;
struct ethtool_pauseparam pauseparam;
struct ethtool_pause_stats pausestat;
};
enum nft_registers {
NFT_REG_VERDICT = 0,
NFT_REG_1 = 1,
NFT_REG_2 = 2,
NFT_REG_3 = 3,
NFT_REG_4 = 4,
__NFT_REG_MAX = 5,
NFT_REG32_00 = 8,
NFT_REG32_01 = 9,
NFT_REG32_02 = 10,
NFT_REG32_03 = 11,
NFT_REG32_04 = 12,
NFT_REG32_05 = 13,
NFT_REG32_06 = 14,
NFT_REG32_07 = 15,
NFT_REG32_08 = 16,
NFT_REG32_09 = 17,
NFT_REG32_10 = 18,
NFT_REG32_11 = 19,
NFT_REG32_12 = 20,
NFT_REG32_13 = 21,
NFT_REG32_14 = 22,
NFT_REG32_15 = 23,
};
struct __bridge_info {
__u64 designated_root;
__u64 bridge_id;
__u32 root_path_cost;
__u32 max_age;
__u32 hello_time;
__u32 forward_delay;
__u32 bridge_max_age;
__u32 bridge_hello_time;
__u32 bridge_forward_delay;
__u8 topology_change;
__u8 topology_change_detected;
__u8 root_port;
__u8 stp_enabled;
__u32 ageing_time;
__u32 gc_interval;
__u32 hello_timer_value;
__u32 tcn_timer_value;
__u32 topology_change_timer_value;
__u32 gc_timer_value;
};
struct __port_info {
__u64 designated_root;
__u64 designated_bridge;
__u16 port_id;
__u16 designated_port;
__u32 path_cost;
__u32 designated_cost;
__u8 state;
__u8 top_change_ack;
__u8 config_pending;
__u8 unused0;
__u32 message_age_timer_value;
__u32 forward_delay_timer_value;
__u32 hold_timer_value;
};
struct acpi_pci_root_info;
struct acpi_pci_root_ops {
struct pci_ops *pci_ops;
int (*init_info)(struct acpi_pci_root_info *);
void (*release_info)(struct acpi_pci_root_info *);
int (*prepare_resources)(struct acpi_pci_root_info *);
};
struct acpi_pci_root;
struct acpi_pci_root_info {
struct acpi_pci_root *root;
struct acpi_device *bridge;
struct acpi_pci_root_ops *ops;
struct list_head resources;
char name[16];
};
struct acpi_pci_root {
struct acpi_device *device;
struct pci_bus *bus;
u16 segment;
int bridge_type;
struct resource secondary;
u32 osc_support_set;
u32 osc_control_set;
u32 osc_ext_support_set;
u32 osc_ext_control_set;
phys_addr_t mcfg_addr;
};
struct pci_root_info___2 {
struct acpi_pci_root_info common;
struct pci_sysdata sd;
bool mcfg_added;
u8 start_bus;
u8 end_bus;
};
struct p4_event_bind {
unsigned int opcode;
unsigned int escr_msr[2];
unsigned int escr_emask;
unsigned int shared;
signed char cntr[6];
};
struct p4_pebs_bind {
unsigned int metric_pebs;
unsigned int metric_vert;
};
struct p4_event_alias {
u64 original;
u64 alternative;
};
enum P4_PEBS_METRIC {
P4_PEBS_METRIC__none = 0,
P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1,
P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2,
P4_PEBS_METRIC__dtlb_load_miss_retired = 3,
P4_PEBS_METRIC__dtlb_store_miss_retired = 4,
P4_PEBS_METRIC__dtlb_all_miss_retired = 5,
P4_PEBS_METRIC__tagged_mispred_branch = 6,
P4_PEBS_METRIC__mob_load_replay_retired = 7,
P4_PEBS_METRIC__split_load_retired = 8,
P4_PEBS_METRIC__split_store_retired = 9,
P4_PEBS_METRIC__max = 10,
};
enum P4_EVENTS {
P4_EVENT_TC_DELIVER_MODE = 0,
P4_EVENT_BPU_FETCH_REQUEST = 1,
P4_EVENT_ITLB_REFERENCE = 2,
P4_EVENT_MEMORY_CANCEL = 3,
P4_EVENT_MEMORY_COMPLETE = 4,
P4_EVENT_LOAD_PORT_REPLAY = 5,
P4_EVENT_STORE_PORT_REPLAY = 6,
P4_EVENT_MOB_LOAD_REPLAY = 7,
P4_EVENT_PAGE_WALK_TYPE = 8,
P4_EVENT_BSQ_CACHE_REFERENCE = 9,
P4_EVENT_IOQ_ALLOCATION = 10,
P4_EVENT_IOQ_ACTIVE_ENTRIES = 11,
P4_EVENT_FSB_DATA_ACTIVITY = 12,
P4_EVENT_BSQ_ALLOCATION = 13,
P4_EVENT_BSQ_ACTIVE_ENTRIES = 14,
P4_EVENT_SSE_INPUT_ASSIST = 15,
P4_EVENT_PACKED_SP_UOP = 16,
P4_EVENT_PACKED_DP_UOP = 17,
P4_EVENT_SCALAR_SP_UOP = 18,
P4_EVENT_SCALAR_DP_UOP = 19,
P4_EVENT_64BIT_MMX_UOP = 20,
P4_EVENT_128BIT_MMX_UOP = 21,
P4_EVENT_X87_FP_UOP = 22,
P4_EVENT_TC_MISC = 23,
P4_EVENT_GLOBAL_POWER_EVENTS = 24,
P4_EVENT_TC_MS_XFER = 25,
P4_EVENT_UOP_QUEUE_WRITES = 26,
P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27,
P4_EVENT_RETIRED_BRANCH_TYPE = 28,
P4_EVENT_RESOURCE_STALL = 29,
P4_EVENT_WC_BUFFER = 30,
P4_EVENT_B2B_CYCLES = 31,
P4_EVENT_BNR = 32,
P4_EVENT_SNOOP = 33,
P4_EVENT_RESPONSE = 34,
P4_EVENT_FRONT_END_EVENT = 35,
P4_EVENT_EXECUTION_EVENT = 36,
P4_EVENT_REPLAY_EVENT = 37,
P4_EVENT_INSTR_RETIRED = 38,
P4_EVENT_UOPS_RETIRED = 39,
P4_EVENT_UOP_TYPE = 40,
P4_EVENT_BRANCH_RETIRED = 41,
P4_EVENT_MISPRED_BRANCH_RETIRED = 42,
P4_EVENT_X87_ASSIST = 43,
P4_EVENT_MACHINE_CLEAR = 44,
P4_EVENT_INSTR_COMPLETED = 45,
};
struct sys_off_handler {
struct notifier_block nb;
int (*sys_off_cb)(struct sys_off_data *);
void *cb_data;
enum sys_off_mode mode;
bool blocking;
void *list;
struct device *dev;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
typedef __kernel_long_t __kernel_suseconds_t;
typedef __kernel_suseconds_t suseconds_t;
struct __kernel_itimerspec {
struct __kernel_timespec it_interval;
struct __kernel_timespec it_value;
};
struct old_itimerspec32 {
struct old_timespec32 it_interval;
struct old_timespec32 it_value;
};
enum hist_field_fn {
HIST_FIELD_FN_NOP = 0,
HIST_FIELD_FN_VAR_REF = 1,
HIST_FIELD_FN_COUNTER = 2,
HIST_FIELD_FN_CONST = 3,
HIST_FIELD_FN_LOG2 = 4,
HIST_FIELD_FN_BUCKET = 5,
HIST_FIELD_FN_TIMESTAMP = 6,
HIST_FIELD_FN_CPU = 7,
HIST_FIELD_FN_STRING = 8,
HIST_FIELD_FN_DYNSTRING = 9,
HIST_FIELD_FN_RELDYNSTRING = 10,
HIST_FIELD_FN_PSTRING = 11,
HIST_FIELD_FN_S64 = 12,
HIST_FIELD_FN_U64 = 13,
HIST_FIELD_FN_S32 = 14,
HIST_FIELD_FN_U32 = 15,
HIST_FIELD_FN_S16 = 16,
HIST_FIELD_FN_U16 = 17,
HIST_FIELD_FN_S8 = 18,
HIST_FIELD_FN_U8 = 19,
HIST_FIELD_FN_UMINUS = 20,
HIST_FIELD_FN_MINUS = 21,
HIST_FIELD_FN_PLUS = 22,
HIST_FIELD_FN_DIV = 23,
HIST_FIELD_FN_MULT = 24,
HIST_FIELD_FN_DIV_POWER2 = 25,
HIST_FIELD_FN_DIV_NOT_POWER2 = 26,
HIST_FIELD_FN_DIV_MULT_SHIFT = 27,
HIST_FIELD_FN_EXECNAME = 28,
HIST_FIELD_FN_STACK = 29,
};
enum field_op_id {
FIELD_OP_NONE = 0,
FIELD_OP_PLUS = 1,
FIELD_OP_MINUS = 2,
FIELD_OP_UNARY_MINUS = 3,
FIELD_OP_DIV = 4,
FIELD_OP_MULT = 5,
};
enum handler_id {
HANDLER_ONMATCH = 1,
HANDLER_ONMAX = 2,
HANDLER_ONCHANGE = 3,
};
enum action_id {
ACTION_SAVE = 1,
ACTION_TRACE = 2,
ACTION_SNAPSHOT = 3,
};
enum hist_field_flags {
HIST_FIELD_FL_HITCOUNT = 1,
HIST_FIELD_FL_KEY = 2,
HIST_FIELD_FL_STRING = 4,
HIST_FIELD_FL_HEX = 8,
HIST_FIELD_FL_SYM = 16,
HIST_FIELD_FL_SYM_OFFSET = 32,
HIST_FIELD_FL_EXECNAME = 64,
HIST_FIELD_FL_SYSCALL = 128,
HIST_FIELD_FL_STACKTRACE = 256,
HIST_FIELD_FL_LOG2 = 512,
HIST_FIELD_FL_TIMESTAMP = 1024,
HIST_FIELD_FL_TIMESTAMP_USECS = 2048,
HIST_FIELD_FL_VAR = 4096,
HIST_FIELD_FL_EXPR = 8192,
HIST_FIELD_FL_VAR_REF = 16384,
HIST_FIELD_FL_CPU = 32768,
HIST_FIELD_FL_ALIAS = 65536,
HIST_FIELD_FL_BUCKET = 131072,
HIST_FIELD_FL_CONST = 262144,
HIST_FIELD_FL_PERCENT = 524288,
HIST_FIELD_FL_GRAPH = 1048576,
};
enum {
HIST_ERR_NONE = 0,
HIST_ERR_DUPLICATE_VAR = 1,
HIST_ERR_VAR_NOT_UNIQUE = 2,
HIST_ERR_TOO_MANY_VARS = 3,
HIST_ERR_MALFORMED_ASSIGNMENT = 4,
HIST_ERR_NAMED_MISMATCH = 5,
HIST_ERR_TRIGGER_EEXIST = 6,
HIST_ERR_TRIGGER_ENOENT_CLEAR = 7,
HIST_ERR_SET_CLOCK_FAIL = 8,
HIST_ERR_BAD_FIELD_MODIFIER = 9,
HIST_ERR_TOO_MANY_SUBEXPR = 10,
HIST_ERR_TIMESTAMP_MISMATCH = 11,
HIST_ERR_TOO_MANY_FIELD_VARS = 12,
HIST_ERR_EVENT_FILE_NOT_FOUND = 13,
HIST_ERR_HIST_NOT_FOUND = 14,
HIST_ERR_HIST_CREATE_FAIL = 15,
HIST_ERR_SYNTH_VAR_NOT_FOUND = 16,
HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17,
HIST_ERR_SYNTH_TYPE_MISMATCH = 18,
HIST_ERR_SYNTH_COUNT_MISMATCH = 19,
HIST_ERR_FIELD_VAR_PARSE_FAIL = 20,
HIST_ERR_VAR_CREATE_FIND_FAIL = 21,
HIST_ERR_ONX_NOT_VAR = 22,
HIST_ERR_ONX_VAR_NOT_FOUND = 23,
HIST_ERR_ONX_VAR_CREATE_FAIL = 24,
HIST_ERR_FIELD_VAR_CREATE_FAIL = 25,
HIST_ERR_TOO_MANY_PARAMS = 26,
HIST_ERR_PARAM_NOT_FOUND = 27,
HIST_ERR_INVALID_PARAM = 28,
HIST_ERR_ACTION_NOT_FOUND = 29,
HIST_ERR_NO_SAVE_PARAMS = 30,
HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31,
HIST_ERR_ACTION_MISMATCH = 32,
HIST_ERR_NO_CLOSING_PAREN = 33,
HIST_ERR_SUBSYS_NOT_FOUND = 34,
HIST_ERR_INVALID_SUBSYS_EVENT = 35,
HIST_ERR_INVALID_REF_KEY = 36,
HIST_ERR_VAR_NOT_FOUND = 37,
HIST_ERR_FIELD_NOT_FOUND = 38,
HIST_ERR_EMPTY_ASSIGNMENT = 39,
HIST_ERR_INVALID_SORT_MODIFIER = 40,
HIST_ERR_EMPTY_SORT_FIELD = 41,
HIST_ERR_TOO_MANY_SORT_FIELDS = 42,
HIST_ERR_INVALID_SORT_FIELD = 43,
HIST_ERR_INVALID_STR_OPERAND = 44,
HIST_ERR_EXPECT_NUMBER = 45,
HIST_ERR_UNARY_MINUS_SUBEXPR = 46,
HIST_ERR_DIVISION_BY_ZERO = 47,
HIST_ERR_NEED_NOHC_VAL = 48,
};
struct hist_trigger_data;
struct hist_var_data {
struct list_head list;
struct hist_trigger_data *hist_data;
};
struct hist_field;
struct hist_trigger_attrs;
struct action_data;
struct field_var;
struct field_var_hist;
struct hist_trigger_data {
struct hist_field *fields[22];
unsigned int n_vals;
unsigned int n_keys;
unsigned int n_fields;
unsigned int n_vars;
unsigned int n_var_str;
unsigned int key_size;
struct tracing_map_sort_key sort_keys[2];
unsigned int n_sort_keys;
struct trace_event_file *event_file;
struct hist_trigger_attrs *attrs;
struct tracing_map *map;
bool enable_timestamps;
bool remove;
struct hist_field *var_refs[16];
unsigned int n_var_refs;
struct action_data *actions[8];
unsigned int n_actions;
struct field_var *field_vars[64];
unsigned int n_field_vars;
unsigned int n_field_var_str;
struct field_var_hist *field_var_hists[64];
unsigned int n_field_var_hists;
struct field_var *save_vars[64];
unsigned int n_save_vars;
unsigned int n_save_var_str;
};
struct hist_var {
char *name;
struct hist_trigger_data *hist_data;
unsigned int idx;
};
struct hist_field {
struct ftrace_event_field *field;
unsigned long flags;
unsigned long buckets;
const char *type;
struct hist_field *operands[2];
struct hist_trigger_data *hist_data;
enum hist_field_fn fn_num;
unsigned int ref;
unsigned int size;
unsigned int offset;
unsigned int is_signed;
struct hist_var var;
enum field_op_id operator;
char *system;
char *event_name;
char *name;
unsigned int var_ref_idx;
bool read_once;
unsigned int var_str_idx;
u64 constant;
u64 div_multiplier;
};
struct var_defs {
unsigned int n_vars;
char *name[16];
char *expr[16];
};
struct hist_trigger_attrs {
char *keys_str;
char *vals_str;
char *sort_key_str;
char *name;
char *clock;
bool pause;
bool cont;
bool clear;
bool ts_in_usecs;
bool no_hitcount;
unsigned int map_bits;
char *assignment_str[16];
unsigned int n_assignments;
char *action_str[8];
unsigned int n_actions;
struct var_defs var_defs;
};
typedef bool (*check_track_val_fn_t)(u64, u64);
typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *);
struct synth_event;
struct action_data {
enum handler_id handler;
enum action_id action;
char *action_name;
action_fn_t fn;
unsigned int n_params;
char *params[64];
unsigned int var_ref_idx[64];
struct synth_event *synth_event;
bool use_trace_keyword;
char *synth_event_name;
union {
struct {
char *event;
char *event_system;
} match_data;
struct {
char *var_str;
struct hist_field *var_ref;
struct hist_field *track_var;
check_track_val_fn_t check_val;
action_fn_t save_data;
} track_data;
};
};
struct dyn_event_operations;
struct dyn_event {
struct list_head list;
struct dyn_event_operations *ops;
};
struct synth_field;
struct synth_event {
struct dyn_event devent;
int ref;
char *name;
struct synth_field **fields;
unsigned int n_fields;
struct synth_field **dynamic_fields;
unsigned int n_dynamic_fields;
unsigned int n_u64;
struct trace_event_class class;
struct trace_event_call call;
struct tracepoint *tp;
struct module *mod;
};
struct dyn_event_operations {
struct list_head list;
int (*create)(const char *);
int (*show)(struct seq_file *, struct dyn_event *);
bool (*is_busy)(struct dyn_event *);
int (*free)(struct dyn_event *);
bool (*match)(const char *, const char *, int, const char **, struct dyn_event *);
};
struct synth_field {
char *type;
char *name;
size_t size;
unsigned int offset;
unsigned int field_pos;
bool is_signed;
bool is_string;
bool is_dynamic;
bool is_stack;
};
struct field_var {
struct hist_field *var;
struct hist_field *val;
};
struct field_var_hist {
struct hist_trigger_data *hist_data;
char *cmd;
};
struct hist_val_stat {
u64 max;
u64 total;
};
struct hist_elt_data {
char *comm;
u64 *var_ref_vals;
char **field_var_str;
int n_field_var_str;
};
typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *);
struct track_data {
u64 track_val;
bool updated;
unsigned int key_len;
void *key;
struct tracing_map_elt elt;
struct action_data *action_data;
struct hist_trigger_data *hist_data;
};
struct kmem_cache_order_objects {
unsigned int x;
};
struct kmem_cache_cpu;
struct kmem_cache_node;
struct kmem_cache {
struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab;
slab_flags_t flags;
unsigned long min_partial;
unsigned int size;
unsigned int object_size;
struct reciprocal_value reciprocal_size;
unsigned int offset;
unsigned int cpu_partial;
unsigned int cpu_partial_slabs;
struct kmem_cache_order_objects oo;
struct kmem_cache_order_objects min;
gfp_t allocflags;
int refcount;
void (*ctor)(void *);
unsigned int inuse;
unsigned int align;
unsigned int red_left_pad;
const char *name;
struct list_head list;
struct kobject kobj;
unsigned int remote_node_defrag_ratio;
struct kmem_cache_node *node[1024];
};
typedef unsigned __int128 __u128;
typedef __u128 u128;
typedef u128 freelist_full_t;
typedef union {
struct {
void *freelist;
unsigned long counter;
};
freelist_full_t full;
} freelist_aba_t;
struct slab;
struct kmem_cache_cpu {
union {
struct {
void **freelist;
unsigned long tid;
};
freelist_aba_t freelist_tid;
};
struct slab *slab;
struct slab *partial;
local_lock_t lock;
};
typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int);
typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int);
typedef void (*btf_trace_kfree)(void *, unsigned long, const void *);
typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *);
typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int);
typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *);
typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int);
typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int);
typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int);
typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int);
typedef void (*btf_trace_mm_alloc_contig_migrate_range_info)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int);
typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int);
struct kmalloc_info_struct {
const char *name[4];
unsigned int size;
};
enum slab_state {
DOWN = 0,
PARTIAL = 1,
UP = 2,
FULL = 3,
};
struct slab {
unsigned long __page_flags;
struct kmem_cache *slab_cache;
union {
struct {
union {
struct list_head slab_list;
struct {
struct slab *next;
int slabs;
};
};
union {
struct {
void *freelist;
union {
unsigned long counters;
struct {
unsigned int inuse: 16;
unsigned int objects: 15;
unsigned int frozen: 1;
};
};
};
freelist_aba_t freelist_counter;
};
};
struct callback_head callback_head;
};
unsigned int __unused;
atomic_t __page_refcount;
unsigned long memcg_data;
};
struct trace_event_raw_kmem_cache_alloc {
struct trace_entry ent;
unsigned long call_site;
const void *ptr;
size_t bytes_req;
size_t bytes_alloc;
unsigned long gfp_flags;
int node;
bool accounted;
char __data[0];
};
struct trace_event_raw_kmalloc {
struct trace_entry ent;
unsigned long call_site;
const void *ptr;
size_t bytes_req;
size_t bytes_alloc;
unsigned long gfp_flags;
int node;
char __data[0];
};
struct trace_event_raw_kfree {
struct trace_entry ent;
unsigned long call_site;
const void *ptr;
char __data[0];
};
struct trace_event_raw_kmem_cache_free {
struct trace_entry ent;
unsigned long call_site;
const void *ptr;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_mm_page_free {
struct trace_entry ent;
unsigned long pfn;
unsigned int order;
char __data[0];
};
struct trace_event_raw_mm_page_free_batched {
struct trace_entry ent;
unsigned long pfn;
char __data[0];
};
struct trace_event_raw_mm_page_alloc {
struct trace_entry ent;
unsigned long pfn;
unsigned int order;
unsigned long gfp_flags;
int migratetype;
char __data[0];
};
struct trace_event_raw_mm_page {
struct trace_entry ent;
unsigned long pfn;
unsigned int order;
int migratetype;
int percpu_refill;
char __data[0];
};
struct trace_event_raw_mm_page_pcpu_drain {
struct trace_entry ent;
unsigned long pfn;
unsigned int order;
int migratetype;
char __data[0];
};
struct trace_event_raw_mm_page_alloc_extfrag {
struct trace_entry ent;
unsigned long pfn;
int alloc_order;
int fallback_order;
int alloc_migratetype;
int fallback_migratetype;
int change_ownership;
char __data[0];
};
struct trace_event_raw_mm_alloc_contig_migrate_range_info {
struct trace_entry ent;
unsigned long start;
unsigned long end;
unsigned long nr_migrated;
unsigned long nr_reclaimed;
unsigned long nr_mapped;
int migratetype;
char __data[0];
};
struct trace_event_raw_rss_stat {
struct trace_entry ent;
unsigned int mm_id;
unsigned int curr;
int member;
long size;
char __data[0];
};
struct trace_event_data_offsets_kmem_cache_free {
u32 name;
const void *name_ptr_;
};
struct kmem_obj_info {
void *kp_ptr;
struct slab *kp_slab;
void *kp_objp;
unsigned long kp_data_offset;
struct kmem_cache *kp_slab_cache;
void *kp_ret;
void *kp_stack[16];
void *kp_free_stack[16];
};
struct trace_event_data_offsets_kmem_cache_alloc {};
struct trace_event_data_offsets_kmalloc {};
struct trace_event_data_offsets_kfree {};
struct trace_event_data_offsets_mm_page_free {};
struct trace_event_data_offsets_mm_page_free_batched {};
struct trace_event_data_offsets_mm_page_alloc {};
struct trace_event_data_offsets_mm_page {};
struct trace_event_data_offsets_mm_page_pcpu_drain {};
struct trace_event_data_offsets_mm_page_alloc_extfrag {};
struct trace_event_data_offsets_mm_alloc_contig_migrate_range_info {};
struct trace_event_data_offsets_rss_stat {};
typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int);
typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int);
typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64);
typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64);
typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64);
typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64);
typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64);
typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *);
typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *);
typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, u64, unsigned int, struct iomap *);
typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long);
typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t);
typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t);
struct trace_event_raw_iomap_readpage_class {
struct trace_entry ent;
dev_t dev;
u64 ino;
int nr_pages;
char __data[0];
};
struct trace_event_raw_iomap_range_class {
struct trace_entry ent;
dev_t dev;
u64 ino;
loff_t size;
loff_t offset;
u64 length;
char __data[0];
};
struct trace_event_raw_iomap_class {
struct trace_entry ent;
dev_t dev;
u64 ino;
u64 addr;
loff_t offset;
u64 length;
u16 type;
u16 flags;
dev_t bdev;
char __data[0];
};
struct trace_event_raw_iomap_writepage_map {
struct trace_entry ent;
dev_t dev;
u64 ino;
u64 pos;
u64 dirty_len;
u64 addr;
loff_t offset;
u64 length;
u16 type;
u16 flags;
dev_t bdev;
char __data[0];
};
struct trace_event_raw_iomap_iter {
struct trace_entry ent;
dev_t dev;
u64 ino;
loff_t pos;
u64 length;
s64 processed;
unsigned int flags;
const void *ops;
unsigned long caller;
char __data[0];
};
struct trace_event_raw_iomap_dio_rw_begin {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t isize;
loff_t pos;
size_t count;
size_t done_before;
int ki_flags;
unsigned int dio_flags;
bool aio;
char __data[0];
};
struct trace_event_raw_iomap_dio_complete {
struct trace_entry ent;
dev_t dev;
ino_t ino;
loff_t isize;
loff_t pos;
int ki_flags;
bool aio;
int error;
ssize_t ret;
char __data[0];
};
struct trace_event_data_offsets_iomap_readpage_class {};
struct trace_event_data_offsets_iomap_range_class {};
struct trace_event_data_offsets_iomap_class {};
struct trace_event_data_offsets_iomap_writepage_map {};
struct trace_event_data_offsets_iomap_iter {};
struct trace_event_data_offsets_iomap_dio_rw_begin {};
struct trace_event_data_offsets_iomap_dio_complete {};
struct ext4_orphan_block_tail {
__le32 ob_magic;
__le32 ob_checksum;
};
struct btrfs_map_token {
struct extent_buffer *eb;
char *kaddr;
unsigned long offset;
};
struct async_submit_bio {
struct btrfs_bio *bbio;
struct btrfs_io_context *bioc;
struct btrfs_io_stripe smap;
int mirror_num;
struct btrfs_work work;
};
struct btrfs_failed_bio {
struct btrfs_bio *bbio;
int num_copies;
atomic_t repair_count;
};
enum asn1_class {
ASN1_UNIV = 0,
ASN1_APPL = 1,
ASN1_CONT = 2,
ASN1_PRIV = 3,
};
enum asn1_tag {
ASN1_EOC = 0,
ASN1_BOOL = 1,
ASN1_INT = 2,
ASN1_BTS = 3,
ASN1_OTS = 4,
ASN1_NULL = 5,
ASN1_OID = 6,
ASN1_ODE = 7,
ASN1_EXT = 8,
ASN1_REAL = 9,
ASN1_ENUM = 10,
ASN1_EPDV = 11,
ASN1_UTF8STR = 12,
ASN1_RELOID = 13,
ASN1_SEQ = 16,
ASN1_SET = 17,
ASN1_NUMSTR = 18,
ASN1_PRNSTR = 19,
ASN1_TEXSTR = 20,
ASN1_VIDSTR = 21,
ASN1_IA5STR = 22,
ASN1_UNITIM = 23,
ASN1_GENTIM = 24,
ASN1_GRASTR = 25,
ASN1_VISSTR = 26,
ASN1_GENSTR = 27,
ASN1_UNISTR = 28,
ASN1_CHRSTR = 29,
ASN1_BMPSTR = 30,
ASN1_LONG_TAG = 31,
};
struct pkcs7_signed_info {
struct pkcs7_signed_info *next;
struct x509_certificate *signer;
unsigned int index;
bool unsupported_crypto;
bool blacklisted;
const void *msgdigest;
unsigned int msgdigest_len;
unsigned int authattrs_len;
const void *authattrs;
unsigned long aa_set;
time64_t signing_time;
struct public_key_signature *sig;
};
struct x509_certificate {
struct x509_certificate *next;
struct x509_certificate *signer;
struct public_key *pub;
struct public_key_signature *sig;
char *issuer;
char *subject;
struct asymmetric_key_id *id;
struct asymmetric_key_id *skid;
time64_t valid_from;
time64_t valid_to;
const void *tbs;
unsigned int tbs_size;
unsigned int raw_sig_size;
const void *raw_sig;
const void *raw_serial;
unsigned int raw_serial_size;
unsigned int raw_issuer_size;
const void *raw_issuer;
const void *raw_subject;
unsigned int raw_subject_size;
unsigned int raw_skid_size;
const void *raw_skid;
unsigned int index;
bool seen;
bool verified;
bool self_signed;
bool unsupported_sig;
bool blacklisted;
};
struct pkcs7_parse_context {
struct pkcs7_message *msg;
struct pkcs7_signed_info *sinfo;
struct pkcs7_signed_info **ppsinfo;
struct x509_certificate *certs;
struct x509_certificate **ppcerts;
unsigned long data;
enum OID last_oid;
unsigned int x509_index;
unsigned int sinfo_index;
const void *raw_serial;
unsigned int raw_serial_size;
unsigned int raw_issuer_size;
const void *raw_issuer;
const void *raw_skid;
unsigned int raw_skid_size;
bool expect_skid;
};
enum hash_algo {
HASH_ALGO_MD4 = 0,
HASH_ALGO_MD5 = 1,
HASH_ALGO_SHA1 = 2,
HASH_ALGO_RIPE_MD_160 = 3,
HASH_ALGO_SHA256 = 4,
HASH_ALGO_SHA384 = 5,
HASH_ALGO_SHA512 = 6,
HASH_ALGO_SHA224 = 7,
HASH_ALGO_RIPE_MD_128 = 8,
HASH_ALGO_RIPE_MD_256 = 9,
HASH_ALGO_RIPE_MD_320 = 10,
HASH_ALGO_WP_256 = 11,
HASH_ALGO_WP_384 = 12,
HASH_ALGO_WP_512 = 13,
HASH_ALGO_TGR_128 = 14,
HASH_ALGO_TGR_160 = 15,
HASH_ALGO_TGR_192 = 16,
HASH_ALGO_SM3_256 = 17,
HASH_ALGO_STREEBOG_256 = 18,
HASH_ALGO_STREEBOG_512 = 19,
HASH_ALGO_SHA3_256 = 20,
HASH_ALGO_SHA3_384 = 21,
HASH_ALGO_SHA3_512 = 22,
HASH_ALGO__LAST = 23,
};
enum {
BLK_MQ_UNIQUE_TAG_BITS = 16,
BLK_MQ_UNIQUE_TAG_MASK = 65535,
};
struct bt_iter_data {
struct blk_mq_hw_ctx *hctx;
struct request_queue *q;
busy_tag_iter_fn *fn;
void *data;
bool reserved;
};
struct bt_tags_iter_data {
struct blk_mq_tags *tags;
busy_tag_iter_fn *fn;
void *data;
unsigned int flags;
};
enum {
IO_SQ_THREAD_SHOULD_STOP = 0,
IO_SQ_THREAD_SHOULD_PARK = 1,
};
struct acpi_init_walk_info {
u32 table_index;
u32 object_count;
u32 method_count;
u32 serial_method_count;
u32 non_serial_method_count;
u32 serialized_method_count;
u32 device_count;
u32 op_region_count;
u32 field_count;
u32 buffer_count;
u32 package_count;
u32 op_region_init;
u32 field_init;
u32 buffer_init;
u32 package_init;
acpi_owner_id owner_id;
};
struct acpi_device_walk_info {
struct acpi_table_desc *table_desc;
struct acpi_evaluate_info *evaluate_info;
u32 device_count;
u32 num_STA;
u32 num_INI;
};
struct acpipnp_parse_option_s {
struct pnp_dev *dev;
unsigned int option_flags;
};
enum {
Lo_unbound = 0,
Lo_bound = 1,
Lo_rundown = 2,
Lo_deleting = 3,
};
enum {
LO_FLAGS_READ_ONLY = 1,
LO_FLAGS_AUTOCLEAR = 4,
LO_FLAGS_PARTSCAN = 8,
LO_FLAGS_DIRECT_IO = 16,
};
struct loop_device {
int lo_number;
loff_t lo_offset;
loff_t lo_sizelimit;
int lo_flags;
char lo_file_name[64];
struct file *lo_backing_file;
struct block_device *lo_device;
gfp_t old_gfp_mask;
spinlock_t lo_lock;
int lo_state;
spinlock_t lo_work_lock;
struct workqueue_struct *workqueue;
struct work_struct rootcg_work;
struct list_head rootcg_cmd_list;
struct list_head idle_worker_list;
struct rb_root worker_tree;
struct timer_list timer;
bool use_dio;
bool sysfs_inited;
struct request_queue *lo_queue;
struct blk_mq_tag_set tag_set;
struct gendisk *lo_disk;
struct mutex lo_mutex;
bool idr_visible;
};
struct loop_worker {
struct rb_node rb_node;
struct work_struct work;
struct list_head cmd_list;
struct list_head idle_list;
struct loop_device *lo;
struct cgroup_subsys_state *blkcg_css;
unsigned long last_ran_at;
};
struct loop_cmd {
struct list_head list_entry;
bool use_aio;
atomic_t ref;
long ret;
struct kiocb iocb;
struct bio_vec *bvec;
struct cgroup_subsys_state *blkcg_css;
struct cgroup_subsys_state *memcg_css;
};
typedef __kernel_rwf_t rwf_t;
typedef unsigned long __kernel_old_dev_t;
struct loop_info {
int lo_number;
__kernel_old_dev_t lo_device;
unsigned long lo_inode;
__kernel_old_dev_t lo_rdevice;
int lo_offset;
int lo_encrypt_type;
int lo_encrypt_key_size;
int lo_flags;
char lo_name[64];
unsigned char lo_encrypt_key[32];
unsigned long lo_init[2];
char reserved[4];
};
struct loop_info64 {
__u64 lo_device;
__u64 lo_inode;
__u64 lo_rdevice;
__u64 lo_offset;
__u64 lo_sizelimit;
__u32 lo_number;
__u32 lo_encrypt_type;
__u32 lo_encrypt_key_size;
__u32 lo_flags;
__u8 lo_file_name[64];
__u8 lo_crypt_name[64];
__u8 lo_encrypt_key[32];
__u64 lo_init[2];
};
struct loop_config {
__u32 fd;
__u32 block_size;
struct loop_info64 info;
__u64 __reserved[8];
};
enum iwl_tdls_channel_switch_type {
TDLS_SEND_CHAN_SW_REQ = 0,
TDLS_SEND_CHAN_SW_RESP_AND_MOVE_CH = 1,
TDLS_MOVE_CH = 2,
};
struct iwl_tdls_sta_info {
u8 sta_id;
u8 tx_to_peer_tid;
__le16 tx_to_peer_ssn;
__le32 is_initiator;
};
struct iwl_tdls_config_cmd {
__le32 id_and_color;
u8 tdls_peer_count;
u8 tx_to_ap_tid;
__le16 tx_to_ap_ssn;
struct iwl_tdls_sta_info sta_info[4];
__le32 pti_req_data_offset;
struct iwl_tx_cmd___2 pti_req_tx_cmd;
u8 pti_req_template[0];
};
struct iwl_tdls_config_sta_info_res {
__le16 sta_id;
__le16 tx_to_peer_last_seq;
};
struct iwl_tdls_config_res {
__le32 tx_to_ap_last_seq;
struct iwl_tdls_config_sta_info_res sta_info[4];
};
struct iwl_tdls_channel_switch_notif {
__le32 status;
__le32 offchannel_duration;
__le32 sta_id;
};
struct iwl_tdls_channel_switch_timing {
__le32 frame_timestamp;
__le32 max_offchan_duration;
__le32 switch_time;
__le32 switch_timeout;
};
struct iwl_tdls_channel_switch_frame {
__le32 switch_time_offset;
struct iwl_tx_cmd___2 tx_cmd;
u8 data[200];
};
struct iwl_tdls_channel_switch_cmd_tail {
struct iwl_tdls_channel_switch_timing timing;
struct iwl_tdls_channel_switch_frame frame;
};
struct iwl_tdls_channel_switch_cmd {
u8 switch_type;
__le32 peer_sta_id;
struct iwl_fw_channel_info ci;
struct iwl_tdls_channel_switch_cmd_tail tail;
} __attribute__((packed));
enum rtl_version {
RTL_VER_UNKNOWN = 0,
RTL_VER_01 = 1,
RTL_VER_02 = 2,
RTL_VER_03 = 3,
RTL_VER_04 = 4,
RTL_VER_05 = 5,
RTL_VER_06 = 6,
RTL_VER_07 = 7,
RTL_VER_08 = 8,
RTL_VER_09 = 9,
RTL_TEST_01 = 10,
RTL_VER_10 = 11,
RTL_VER_11 = 12,
RTL_VER_12 = 13,
RTL_VER_13 = 14,
RTL_VER_14 = 15,
RTL_VER_15 = 16,
RTL_VER_MAX = 17,
};
enum rtl8152_flags {
RTL8152_INACCESSIBLE = 0,
RTL8152_SET_RX_MODE = 1,
WORK_ENABLE = 2,
RTL8152_LINK_CHG = 3,
SELECTIVE_SUSPEND = 4,
PHY_RESET = 5,
SCHEDULE_TASKLET = 6,
GREEN_ETHERNET = 7,
RX_EPROTO = 8,
IN_PRE_RESET = 9,
PROBED_WITH_NO_ERRORS = 10,
PROBE_SHOULD_RETRY = 11,
};
enum rtl_register_content___2 {
_2500bps = 1024,
_1250bps = 512,
_500bps = 256,
_tx_flow = 64,
_rx_flow = 32,
_1000bps = 16,
_100bps___2 = 8,
_10bps___2 = 4,
LINK_STATUS = 2,
FULL_DUP = 1,
};
enum rtl_fw_type {
RTL_FW_END = 0,
RTL_FW_PLA = 1,
RTL_FW_USB = 2,
RTL_FW_PHY_START = 3,
RTL_FW_PHY_STOP = 4,
RTL_FW_PHY_NC = 5,
RTL_FW_PHY_FIXUP = 6,
RTL_FW_PHY_UNION_NC = 7,
RTL_FW_PHY_UNION_NC1 = 8,
RTL_FW_PHY_UNION_NC2 = 9,
RTL_FW_PHY_UNION_UC2 = 10,
RTL_FW_PHY_UNION_UC = 11,
RTL_FW_PHY_UNION_MISC = 12,
RTL_FW_PHY_SPEED_UP = 13,
RTL_FW_PHY_VER = 14,
};
enum rtl8152_fw_fixup_cmd {
FW_FIXUP_AND = 0,
FW_FIXUP_OR = 1,
FW_FIXUP_NOT = 2,
FW_FIXUP_XOR = 3,
};
enum spd_duplex {
NWAY_10M_HALF = 0,
NWAY_10M_FULL = 1,
NWAY_100M_HALF = 2,
NWAY_100M_FULL = 3,
NWAY_1000M_FULL = 4,
FORCE_10M_HALF = 5,
FORCE_10M_FULL = 6,
FORCE_100M_HALF = 7,
FORCE_100M_FULL = 8,
FORCE_1000M_FULL = 9,
NWAY_2500M_FULL = 10,
};
enum rtl8152_fw_flags {
FW_FLAGS_USB = 0,
FW_FLAGS_PLA = 1,
FW_FLAGS_START = 2,
FW_FLAGS_STOP = 3,
FW_FLAGS_NC = 4,
FW_FLAGS_NC1 = 5,
FW_FLAGS_NC2 = 6,
FW_FLAGS_UC2 = 7,
FW_FLAGS_UC = 8,
FW_FLAGS_SPEED_UP = 9,
FW_FLAGS_VER = 10,
};
enum tx_csum_stat {
TX_CSUM_SUCCESS = 0,
TX_CSUM_TSO = 1,
TX_CSUM_NONE = 2,
};
struct r8152;
struct rx_agg {
struct list_head list;
struct list_head info_list;
struct urb *urb;
struct r8152 *context;
struct page *page;
void *buffer;
};
struct tx_agg {
struct list_head list;
struct urb *urb;
struct r8152 *context;
void *buffer;
void *head;
u32 skb_num;
u32 skb_len;
};
struct rtl_ops {
void (*init)(struct r8152 *);
int (*enable)(struct r8152 *);
void (*disable)(struct r8152 *);
void (*up)(struct r8152 *);
void (*down)(struct r8152 *);
void (*unload)(struct r8152 *);
int (*eee_get)(struct r8152 *, struct ethtool_keee *);
int (*eee_set)(struct r8152 *, struct ethtool_keee *);
bool (*in_nway)(struct r8152 *);
void (*hw_phy_cfg)(struct r8152 *);
void (*autosuspend_en)(struct r8152 *, bool);
void (*change_mtu)(struct r8152 *);
};
struct ups_info {
u32 r_tune: 1;
u32 _10m_ckdiv: 1;
u32 _250m_ckdiv: 1;
u32 aldps: 1;
u32 lite_mode: 2;
u32 speed_duplex: 4;
u32 eee: 1;
u32 eee_lite: 1;
u32 eee_ckdiv: 1;
u32 eee_plloff_100: 1;
u32 eee_plloff_giga: 1;
u32 eee_cmod_lv: 1;
u32 green: 1;
u32 flow_control: 1;
u32 ctap_short_off: 1;
};
struct rtl_fw___2 {
const char *fw_name;
const struct firmware *fw;
char version[32];
int (*pre_fw)(struct r8152 *);
int (*post_fw)(struct r8152 *);
bool retry;
};
struct r8152 {
unsigned long flags;
struct usb_device *udev;
struct napi_struct napi;
struct usb_interface *intf;
struct net_device *netdev;
struct urb *intr_urb;
struct tx_agg tx_info[4];
struct list_head rx_info;
struct list_head rx_used;
struct list_head rx_done;
struct list_head tx_free;
struct sk_buff_head tx_queue;
struct sk_buff_head rx_queue;
spinlock_t rx_lock;
spinlock_t tx_lock;
struct delayed_work schedule;
struct delayed_work hw_phy_work;
struct mii_if_info mii;
struct mutex control;
struct notifier_block pm_notifier;
struct tasklet_struct tx_tl;
struct rtl_ops rtl_ops;
struct ups_info ups_info;
struct rtl_fw___2 rtl_fw;
atomic_t rx_count;
bool eee_en;
int intr_interval;
u32 saved_wolopts;
u32 msg_enable;
u32 tx_qlen;
u32 coalesce;
u32 advertising;
u32 rx_buf_sz;
u32 rx_copybreak;
u32 rx_pending;
u32 fc_pause_on;
u32 fc_pause_off;
unsigned int pipe_in;
unsigned int pipe_out;
unsigned int pipe_intr;
unsigned int pipe_ctrl_in;
unsigned int pipe_ctrl_out;
u32 support_2500full: 1;
u32 lenovo_macpassthru: 1;
u32 dell_tb_rx_agg_bug: 1;
u16 ocp_base;
u16 speed;
u16 eee_adv;
u8 *intr_buff;
u8 version;
u8 duplex;
u8 autoneg;
unsigned int reg_access_reset_count;
};
struct fw_block {
__le32 type;
__le32 length;
};
struct fw_header {
u8 checksum[32];
char version[32];
struct fw_block blocks[0];
};
struct fw_mac {
struct fw_block blk_hdr;
__le16 fw_offset;
__le16 fw_reg;
__le16 bp_ba_addr;
__le16 bp_ba_value;
__le16 bp_en_addr;
__le16 bp_en_value;
__le16 bp_start;
__le16 bp_num;
__le16 bp[16];
__le32 reserved;
__le16 fw_ver_reg;
u8 fw_ver_data;
char info[0];
} __attribute__((packed));
struct fw_phy_patch_key {
struct fw_block blk_hdr;
__le16 key_reg;
__le16 key_data;
__le32 reserved;
};
struct fw_phy_nc {
struct fw_block blk_hdr;
__le16 fw_offset;
__le16 fw_reg;
__le16 ba_reg;
__le16 ba_data;
__le16 patch_en_addr;
__le16 patch_en_value;
__le16 mode_reg;
__le16 mode_pre;
__le16 mode_post;
__le16 reserved;
__le16 bp_start;
__le16 bp_num;
__le16 bp[4];
char info[0];
};
struct fw_phy_set {
__le16 addr;
__le16 data;
};
struct fw_phy_ver {
struct fw_block blk_hdr;
struct fw_phy_set ver;
__le32 reserved;
};
struct fw_phy_union {
struct fw_block blk_hdr;
__le16 fw_offset;
__le16 fw_reg;
struct fw_phy_set pre_set[2];
struct fw_phy_set bp[8];
struct fw_phy_set bp_en;
u8 pre_num;
u8 bp_num;
char info[0];
} __attribute__((packed));
struct fw_phy_fixup {
struct fw_block blk_hdr;
struct fw_phy_set setting;
__le16 bit_cmd;
__le16 reserved;
};
struct fw_phy_speed_up {
struct fw_block blk_hdr;
__le16 fw_offset;
__le16 version;
__le16 fw_reg;
__le16 reserved;
char info[0];
};
struct tx_desc {
__le32 opts1;
__le32 opts2;
};
struct rx_desc {
__le32 opts1;
__le32 opts2;
__le32 opts3;
__le32 opts4;
__le32 opts5;
__le32 opts6;
};
struct tally_counter {
__le64 tx_packets;
__le64 rx_packets;
__le64 tx_errors;
__le32 rx_errors;
__le16 rx_missed;
__le16 align_errors;
__le32 tx_one_collision;
__le32 tx_multi_collision;
__le64 rx_unicast;
__le64 rx_broadcast;
__le32 rx_multicast;
__le16 tx_aborted;
__le16 tx_underrun;
};
enum {
NVMEM_ADD = 1,
NVMEM_REMOVE = 2,
NVMEM_CELL_ADD = 3,
NVMEM_CELL_REMOVE = 4,
NVMEM_LAYOUT_ADD = 5,
NVMEM_LAYOUT_REMOVE = 6,
};
struct nvmem_cell_entry {
const char *name;
int offset;
size_t raw_len;
int bytes;
int bit_offset;
int nbits;
nvmem_cell_post_process_t read_post_process;
void *priv;
struct device_node *np;
struct nvmem_device *nvmem;
struct list_head node;
};
struct nvmem_device {
struct module *owner;
struct device dev;
struct list_head node;
int stride;
int word_size;
int id;
struct kref refcnt;
size_t size;
bool read_only;
bool root_only;
int flags;
enum nvmem_type type;
struct bin_attribute eeprom;
struct device *base_dev;
struct list_head cells;
void (*fixup_dt_cell_info)(struct nvmem_device *, struct nvmem_cell_info *);
const struct nvmem_keepout *keepout;
unsigned int nkeepout;
nvmem_reg_read_t reg_read;
nvmem_reg_write_t reg_write;
struct gpio_desc *wp_gpio;
struct nvmem_layout *layout;
void *priv;
bool sysfs_cells_populated;
};
struct nvmem_cell_table {
const char *nvmem_name;
const struct nvmem_cell_info *cells;
size_t ncells;
struct list_head node;
};
struct nvmem_cell_lookup {
const char *nvmem_name;
const char *cell_name;
const char *dev_id;
const char *con_id;
struct list_head node;
};
struct nvmem_cell {
struct nvmem_cell_entry *entry;
const char *id;
int index;
};
typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64);
typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64);
typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64);
typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64);
typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64);
struct bpf_stab {
struct bpf_map map;
struct sock **sks;
struct sk_psock_progs progs;
spinlock_t lock;
};
struct bpf_shtab_bucket;
struct bpf_shtab {
struct bpf_map map;
struct bpf_shtab_bucket *buckets;
u32 buckets_num;
u32 elem_size;
struct sk_psock_progs progs;
atomic_t count;
};
struct bpf_shtab_bucket {
struct hlist_head head;
spinlock_t lock;
};
struct sk_psock_link {
struct list_head list;
struct bpf_map *map;
void *link_raw;
};
struct bpf_shtab_elem {
struct callback_head rcu;
u32 hash;
struct sock *sk;
struct hlist_node node;
u8 key[0];
};
struct sockmap_link {
struct bpf_link link;
struct bpf_map *map;
enum bpf_attach_type attach_type;
};
struct sock_map_seq_info {
struct bpf_map *map;
struct sock *sk;
u32 index;
};
struct bpf_iter__sockmap {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_map *map;
};
union {
void *key;
};
union {
struct sock *sk;
};
};
struct sock_hash_seq_info {
struct bpf_map *map;
struct bpf_shtab *htab;
u32 bucket_id;
};
struct nf_queue_handler {
int (*outfn)(struct nf_queue_entry *, unsigned int);
void (*nf_hook_drop)(struct net *);
};
enum nfqnl_attr_type {
NFQA_UNSPEC = 0,
NFQA_PACKET_HDR = 1,
NFQA_VERDICT_HDR = 2,
NFQA_MARK = 3,
NFQA_TIMESTAMP = 4,
NFQA_IFINDEX_INDEV = 5,
NFQA_IFINDEX_OUTDEV = 6,
NFQA_IFINDEX_PHYSINDEV = 7,
NFQA_IFINDEX_PHYSOUTDEV = 8,
NFQA_HWADDR = 9,
NFQA_PAYLOAD = 10,
NFQA_CT = 11,
NFQA_CT_INFO = 12,
NFQA_CAP_LEN = 13,
NFQA_SKB_INFO = 14,
NFQA_EXP = 15,
NFQA_UID = 16,
NFQA_GID = 17,
NFQA_SECCTX = 18,
NFQA_VLAN = 19,
NFQA_L2HDR = 20,
NFQA_PRIORITY = 21,
NFQA_CGROUP_CLASSID = 22,
__NFQA_MAX = 23,
};
enum nfqnl_vlan_attr {
NFQA_VLAN_UNSPEC = 0,
NFQA_VLAN_PROTO = 1,
NFQA_VLAN_TCI = 2,
__NFQA_VLAN_MAX = 3,
};
enum nfqnl_attr_config {
NFQA_CFG_UNSPEC = 0,
NFQA_CFG_CMD = 1,
NFQA_CFG_PARAMS = 2,
NFQA_CFG_QUEUE_MAXLEN = 3,
NFQA_CFG_MASK = 4,
NFQA_CFG_FLAGS = 5,
__NFQA_CFG_MAX = 6,
};
enum nfqnl_msg_config_cmds {
NFQNL_CFG_CMD_NONE = 0,
NFQNL_CFG_CMD_BIND = 1,
NFQNL_CFG_CMD_UNBIND = 2,
NFQNL_CFG_CMD_PF_BIND = 3,
NFQNL_CFG_CMD_PF_UNBIND = 4,
};
enum nfqnl_config_mode {
NFQNL_COPY_NONE = 0,
NFQNL_COPY_META = 1,
NFQNL_COPY_PACKET = 2,
};
enum nfqnl_msg_types {
NFQNL_MSG_PACKET = 0,
NFQNL_MSG_VERDICT = 1,
NFQNL_MSG_CONFIG = 2,
NFQNL_MSG_VERDICT_BATCH = 3,
NFQNL_MSG_MAX = 4,
};
struct nfqnl_instance {
struct hlist_node hlist;
struct callback_head rcu;
u32 peer_portid;
unsigned int queue_maxlen;
unsigned int copy_range;
unsigned int queue_dropped;
unsigned int queue_user_dropped;
u_int16_t queue_num;
u_int8_t copy_mode;
u_int32_t flags;
spinlock_t lock;
unsigned int queue_total;
unsigned int id_sequence;
struct list_head queue_list;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct nfnl_queue_net {
spinlock_t instances_lock;
struct hlist_head instance_table[16];
};
typedef int (*nfqnl_cmpfn)(struct nf_queue_entry *, unsigned long);
struct ip_rt_info {
__be32 daddr;
__be32 saddr;
u_int8_t tos;
u_int32_t mark;
};
struct nfqnl_msg_verdict_hdr {
__be32 verdict;
__be32 id;
};
struct iter_state {
struct seq_net_private p;
unsigned int bucket;
};
struct nfqnl_msg_packet_hdr {
__be32 packet_id;
__be16 hw_protocol;
__u8 hook;
} __attribute__((packed));
struct nfqnl_msg_packet_hw {
__be16 hw_addrlen;
__u16 _pad;
__u8 hw_addr[8];
};
struct nfqnl_msg_packet_timestamp {
__be64 sec;
__be64 usec;
};
struct nfqnl_msg_config_cmd {
__u8 command;
__u8 _pad;
__be16 pf;
};
struct nfqnl_msg_config_params {
__be32 copy_range;
__u8 copy_mode;
} __attribute__((packed));
struct netlink_notify {
struct net *net;
u32 portid;
int protocol;
};
struct icmp_err {
int errno;
unsigned int fatal: 1;
};
struct icmp_control {
enum skb_drop_reason (*handler)(struct sk_buff *);
short error;
};
enum {
ICMP_MIB_NUM = 0,
ICMP_MIB_INMSGS = 1,
ICMP_MIB_INERRORS = 2,
ICMP_MIB_INDESTUNREACHS = 3,
ICMP_MIB_INTIMEEXCDS = 4,
ICMP_MIB_INPARMPROBS = 5,
ICMP_MIB_INSRCQUENCHS = 6,
ICMP_MIB_INREDIRECTS = 7,
ICMP_MIB_INECHOS = 8,
ICMP_MIB_INECHOREPS = 9,
ICMP_MIB_INTIMESTAMPS = 10,
ICMP_MIB_INTIMESTAMPREPS = 11,
ICMP_MIB_INADDRMASKS = 12,
ICMP_MIB_INADDRMASKREPS = 13,
ICMP_MIB_OUTMSGS = 14,
ICMP_MIB_OUTERRORS = 15,
ICMP_MIB_OUTDESTUNREACHS = 16,
ICMP_MIB_OUTTIMEEXCDS = 17,
ICMP_MIB_OUTPARMPROBS = 18,
ICMP_MIB_OUTSRCQUENCHS = 19,
ICMP_MIB_OUTREDIRECTS = 20,
ICMP_MIB_OUTECHOS = 21,
ICMP_MIB_OUTECHOREPS = 22,
ICMP_MIB_OUTTIMESTAMPS = 23,
ICMP_MIB_OUTTIMESTAMPREPS = 24,
ICMP_MIB_OUTADDRMASKS = 25,
ICMP_MIB_OUTADDRMASKREPS = 26,
ICMP_MIB_CSUMERRORS = 27,
ICMP_MIB_RATELIMITGLOBAL = 28,
ICMP_MIB_RATELIMITHOST = 29,
__ICMP_MIB_MAX = 30,
};
enum {
XFRM_LOOKUP_ICMP = 1,
XFRM_LOOKUP_QUEUE = 2,
XFRM_LOOKUP_KEEP_DST_REF = 4,
};
struct icmp_extobj_hdr {
__be16 length;
__u8 class_num;
__u8 class_type;
};
struct icmp_ext_hdr {
__u8 reserved1: 4;
__u8 version: 4;
__u8 reserved2;
__sum16 checksum;
};
struct icmp_bxm {
struct sk_buff *skb;
int offset;
int data_len;
struct {
struct icmphdr icmph;
__be32 times[3];
} data;
int head_len;
struct ip_options_data replyopts;
};
struct icmp_ext_echo_ctype3_hdr {
__be16 afi;
__u8 addrlen;
__u8 reserved;
};
struct icmp_ext_echo_iio {
struct icmp_extobj_hdr extobj_hdr;
union {
char name[16];
__be32 ifindex;
struct {
struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
union {
__be32 ipv4_addr;
struct in6_addr ipv6_addr;
} ip_addr;
} addr;
} ident;
};
struct fib6_config;
struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
enum ieee80211_bss_corrupt_data_flags {
IEEE80211_BSS_CORRUPT_BEACON = 1,
IEEE80211_BSS_CORRUPT_PROBE_RESP = 2,
};
enum ieee80211_bss_valid_data_flags {
IEEE80211_BSS_VALID_WMM = 2,
IEEE80211_BSS_VALID_RATES = 4,
IEEE80211_BSS_VALID_ERP = 8,
};
enum {
IEEE80211_PROBE_FLAG_DIRECTED = 1,
IEEE80211_PROBE_FLAG_MIN_CONTENT = 2,
IEEE80211_PROBE_FLAG_RANDOM_SN = 4,
};
struct cfg80211_inform_bss {
struct ieee80211_channel *chan;
s32 signal;
u64 boottime_ns;
u64 parent_tsf;
u8 parent_bssid[6];
u8 chains;
s8 chain_signal[4];
u8 restrict_use: 1;
u8 use_for: 7;
u8 cannot_use_reasons;
void *drv_data;
};
struct ieee80211_bss {
u32 device_ts_beacon;
u32 device_ts_presp;
bool wmm_used;
bool uapsd_supported;
u8 supp_rates[32];
size_t supp_rates_len;
struct ieee80211_rate *beacon_rate;
u32 vht_cap_info;
bool has_erp_value;
u8 erp_value;
u8 corrupt_data;
u8 valid_data;
};
struct inform_bss_update_data {
struct ieee80211_rx_status *rx_status;
bool beacon;
};
typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *);
typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *);
typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *);
struct call_function_data {
call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd;
cpumask_var_t cpumask;
cpumask_var_t cpumask_ipi;
};
struct trace_event_raw_csd_queue_cpu {
struct trace_entry ent;
unsigned int cpu;
void *callsite;
void *func;
void *csd;
char __data[0];
};
struct trace_event_raw_csd_function {
struct trace_entry ent;
void *func;
void *csd;
char __data[0];
};
struct smp_call_on_cpu_struct {
struct work_struct work;
struct completion done;
int (*func)(void *);
void *data;
int ret;
int cpu;
};
struct trace_event_data_offsets_csd_queue_cpu {};
struct trace_event_data_offsets_csd_function {};
struct bpf_mount_opts {
kuid_t uid;
kgid_t gid;
umode_t mode;
u64 delegate_cmds;
u64 delegate_maps;
u64 delegate_progs;
u64 delegate_attachs;
};
struct swap_cgroup_ctrl {
struct page **map;
unsigned long length;
spinlock_t lock;
};
struct swap_cgroup {
unsigned short id;
};
struct stashed_operations {
void (*put_data)(void *);
int (*init_inode)(struct inode *, void *);
};
typedef struct {
void *lock;
} class_rcu_t;
struct rsa_mpi_key {
MPI n;
MPI e;
MPI d;
MPI p;
MPI q;
MPI dp;
MPI dq;
MPI qinv;
};
struct authenc_instance_ctx {
struct crypto_ahash_spawn auth;
struct crypto_skcipher_spawn enc;
unsigned int reqoff;
};
struct crypto_authenc_ctx {
struct crypto_ahash *auth;
struct crypto_skcipher *enc;
struct crypto_sync_skcipher *null;
};
struct authenc_request_ctx {
struct scatterlist src[2];
struct scatterlist dst[2];
char tail[0];
};
enum {
IOU_POLL_DONE = 0,
IOU_POLL_NO_ACTION = 1,
IOU_POLL_REMOVE_POLL_USE_RES = 2,
IOU_POLL_REISSUE = 3,
IOU_POLL_REQUEUE = 4,
};
struct io_poll_update {
struct file *file;
u64 old_user_data;
u64 new_user_data;
__poll_t events;
bool update_events;
bool update_user_data;
};
struct io_poll_table {
struct poll_table_struct pt;
struct io_kiocb *req;
int nr_entries;
int error;
bool owning;
__poll_t result_mask;
};
struct pci_osc_bit_struct {
u32 bit;
char *desc;
};
enum acpi_bridge_type {
ACPI_BRIDGE_TYPE_PCIE = 1,
ACPI_BRIDGE_TYPE_CXL = 2,
};
struct vc_selection {
struct mutex lock;
struct vc_data *cons;
char *buffer;
unsigned int buf_len;
volatile int start;
int end;
};
struct internal_container {
struct klist_node node;
struct attribute_container *cont;
struct device classdev;
};
struct scsi_host_busy_iter_data {
bool (*fn)(struct scsi_cmnd *, void *);
void *priv;
};
enum {
e1000_igp_cable_length_10 = 10,
e1000_igp_cable_length_20 = 20,
e1000_igp_cable_length_30 = 30,
e1000_igp_cable_length_40 = 40,
e1000_igp_cable_length_50 = 50,
e1000_igp_cable_length_60 = 60,
e1000_igp_cable_length_70 = 70,
e1000_igp_cable_length_80 = 80,
e1000_igp_cable_length_90 = 90,
e1000_igp_cable_length_100 = 100,
e1000_igp_cable_length_110 = 110,
e1000_igp_cable_length_115 = 115,
e1000_igp_cable_length_120 = 120,
e1000_igp_cable_length_130 = 130,
e1000_igp_cable_length_140 = 140,
e1000_igp_cable_length_150 = 150,
e1000_igp_cable_length_160 = 160,
e1000_igp_cable_length_170 = 170,
e1000_igp_cable_length_180 = 180,
};
enum iwl_tlc_update_flags {
IWL_TLC_NOTIF_FLAG_RATE = 1,
IWL_TLC_NOTIF_FLAG_AMSDU = 2,
};
enum iwl_tlc_mng_cfg_cw {
IWL_TLC_MNG_CH_WIDTH_20MHZ = 0,
IWL_TLC_MNG_CH_WIDTH_40MHZ = 1,
IWL_TLC_MNG_CH_WIDTH_80MHZ = 2,
IWL_TLC_MNG_CH_WIDTH_160MHZ = 3,
IWL_TLC_MNG_CH_WIDTH_320MHZ = 4,
};
enum iwl_tlc_mng_cfg_flags {
IWL_TLC_MNG_CFG_FLAGS_STBC_MSK = 1,
IWL_TLC_MNG_CFG_FLAGS_LDPC_MSK = 2,
IWL_TLC_MNG_CFG_FLAGS_HE_STBC_160MHZ_MSK = 4,
IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK = 8,
IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK = 16,
IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK = 64,
};
enum iwl_tlc_mng_cfg_chains {
IWL_TLC_MNG_CHAIN_A_MSK = 1,
IWL_TLC_MNG_CHAIN_B_MSK = 2,
};
enum iwl_tlc_mng_cfg_mode {
IWL_TLC_MNG_MODE_CCK = 0,
IWL_TLC_MNG_MODE_OFDM_NON_HT = 0,
IWL_TLC_MNG_MODE_NON_HT = 0,
IWL_TLC_MNG_MODE_HT = 1,
IWL_TLC_MNG_MODE_VHT = 2,
IWL_TLC_MNG_MODE_HE = 3,
IWL_TLC_MNG_MODE_EHT = 4,
};
enum IWL_TLC_MNG_NSS {
IWL_TLC_NSS_1 = 0,
IWL_TLC_NSS_2 = 1,
IWL_TLC_NSS_MAX = 2,
};
enum IWL_TLC_MCS_PER_BW {
IWL_TLC_MCS_PER_BW_80 = 0,
IWL_TLC_MCS_PER_BW_160 = 1,
IWL_TLC_MCS_PER_BW_320 = 2,
IWL_TLC_MCS_PER_BW_NUM_V3 = 2,
IWL_TLC_MCS_PER_BW_NUM_V4 = 3,
};
enum ieee80211_he_mcs_support {
IEEE80211_HE_MCS_SUPPORT_0_7 = 0,
IEEE80211_HE_MCS_SUPPORT_0_9 = 1,
IEEE80211_HE_MCS_SUPPORT_0_11 = 2,
IEEE80211_HE_MCS_NOT_SUPPORTED = 3,
};
enum iwl_tlc_mng_ht_rates {
IWL_TLC_MNG_HT_RATE_MCS0 = 0,
IWL_TLC_MNG_HT_RATE_MCS1 = 1,
IWL_TLC_MNG_HT_RATE_MCS2 = 2,
IWL_TLC_MNG_HT_RATE_MCS3 = 3,
IWL_TLC_MNG_HT_RATE_MCS4 = 4,
IWL_TLC_MNG_HT_RATE_MCS5 = 5,
IWL_TLC_MNG_HT_RATE_MCS6 = 6,
IWL_TLC_MNG_HT_RATE_MCS7 = 7,
IWL_TLC_MNG_HT_RATE_MCS8 = 8,
IWL_TLC_MNG_HT_RATE_MCS9 = 9,
IWL_TLC_MNG_HT_RATE_MCS10 = 10,
IWL_TLC_MNG_HT_RATE_MCS11 = 11,
IWL_TLC_MNG_HT_RATE_MAX = 11,
};
struct iwl_tlc_config_cmd_v4 {
u8 sta_id;
u8 reserved1[3];
u8 max_ch_width;
u8 mode;
u8 chains;
u8 sgi_ch_width_supp;
__le16 flags;
__le16 non_ht_rates;
__le16 ht_rates[6];
__le16 max_mpdu_len;
__le16 max_tx_op;
};
struct iwl_tlc_update_notif {
u8 sta_id;
u8 reserved[3];
__le32 flags;
__le32 rate;
__le32 amsdu_size;
__le32 amsdu_enabled;
};
struct iwl_tlc_config_cmd_v3 {
u8 sta_id;
u8 reserved1[3];
u8 max_ch_width;
u8 mode;
u8 chains;
u8 amsdu;
__le16 flags;
__le16 non_ht_rates;
__le16 ht_rates[4];
__le16 max_mpdu_len;
u8 sgi_ch_width_supp;
u8 reserved2;
__le32 max_tx_op;
};
enum blk_crypto_mode_num {
BLK_ENCRYPTION_MODE_INVALID = 0,
BLK_ENCRYPTION_MODE_AES_256_XTS = 1,
BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2,
BLK_ENCRYPTION_MODE_ADIANTUM = 3,
BLK_ENCRYPTION_MODE_SM4_XTS = 4,
BLK_ENCRYPTION_MODE_MAX = 5,
};
enum suspend_mode {
PRESUSPEND = 0,
PRESUSPEND_UNDO = 1,
POSTSUSPEND = 2,
};
struct dm_dev_internal {
struct list_head list;
refcount_t count;
struct dm_dev *dm_dev;
};
struct blk_crypto_profile;
struct blk_crypto_key;
struct blk_crypto_ll_ops {
int (*keyslot_program)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
int (*keyslot_evict)(struct blk_crypto_profile *, const struct blk_crypto_key *, unsigned int);
};
struct blk_crypto_keyslot;
struct blk_crypto_profile {
struct blk_crypto_ll_ops ll_ops;
unsigned int max_dun_bytes_supported;
unsigned int modes_supported[5];
struct device *dev;
unsigned int num_slots;
struct rw_semaphore lock;
struct lock_class_key lockdep_key;
wait_queue_head_t idle_slots_wait_queue;
struct list_head idle_slots;
spinlock_t idle_slots_lock;
struct hlist_head *slot_hashtable;
unsigned int log_slot_ht_size;
struct blk_crypto_keyslot *slots;
};
struct blk_crypto_config {
enum blk_crypto_mode_num crypto_mode;
unsigned int data_unit_size;
unsigned int dun_bytes;
};
struct blk_crypto_key {
struct blk_crypto_config crypto_cfg;
unsigned int data_unit_size_bits;
unsigned int size;
u8 raw[64];
};
struct xdp_frame_bulk {
int count;
void *xa;
void *q[16];
};
struct xdp_attachment_info {
struct bpf_prog *prog;
u32 flags;
};
enum udp_conntrack {
UDP_CT_UNREPLIED = 0,
UDP_CT_REPLIED = 1,
UDP_CT_MAX = 2,
};
struct ipv6_params {
__s32 disable_ipv6;
__s32 autoconf;
};
struct fib6_config {
u32 fc_table;
u32 fc_metric;
int fc_dst_len;
int fc_src_len;
int fc_ifindex;
u32 fc_flags;
u32 fc_protocol;
u16 fc_type;
u16 fc_delete_all_nh: 1;
u16 fc_ignore_dev_down: 1;
u16 __unused: 14;
u32 fc_nh_id;
struct in6_addr fc_dst;
struct in6_addr fc_src;
struct in6_addr fc_prefsrc;
struct in6_addr fc_gateway;
unsigned long fc_expires;
struct nlattr *fc_mx;
int fc_mx_len;
int fc_mp_len;
struct nlattr *fc_mp;
struct nl_info fc_nlinfo;
struct nlattr *fc_encap;
u16 fc_encap_type;
bool fc_is_fdb;
};
enum flowlabel_reflect {
FLOWLABEL_REFLECT_ESTABLISHED = 1,
FLOWLABEL_REFLECT_TCP_RESET = 2,
FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4,
};
struct in6_rtmsg {
struct in6_addr rtmsg_dst;
struct in6_addr rtmsg_src;
struct in6_addr rtmsg_gateway;
__u32 rtmsg_type;
__u16 rtmsg_dst_len;
__u16 rtmsg_src_len;
__u32 rtmsg_metric;
unsigned long rtmsg_info;
__u32 rtmsg_flags;
int rtmsg_ifindex;
};
enum {
st_wordstart = 0,
st_wordcmp = 1,
st_wordskip = 2,
};
enum {
st_wordstart___2 = 0,
st_wordcmp___2 = 1,
st_wordskip___2 = 2,
st_bufcpy = 3,
};
struct pt_filter {
unsigned long msr_a;
unsigned long msr_b;
unsigned long config;
};
struct pt_filters {
struct pt_filter filter[4];
unsigned int nr_filters;
};
struct pt {
struct perf_output_handle handle;
struct pt_filters filters;
int handle_nmi;
int vmx_on;
u64 output_base;
u64 output_mask;
};
struct pt_pmu {
struct pmu pmu;
u32 caps[8];
bool vmx;
bool branch_en_always_on;
unsigned long max_nonturbo_ratio;
unsigned int tsc_art_num;
unsigned int tsc_art_den;
};
struct pt_cap_desc {
const char *name;
u32 leaf;
u8 reg;
u32 mask;
};
struct pt_address_range {
unsigned long msr_a;
unsigned long msr_b;
unsigned int reg_off;
};
enum pt_capabilities {
PT_CAP_max_subleaf = 0,
PT_CAP_cr3_filtering = 1,
PT_CAP_psb_cyc = 2,
PT_CAP_ip_filtering = 3,
PT_CAP_mtc = 4,
PT_CAP_ptwrite = 5,
PT_CAP_power_event_trace = 6,
PT_CAP_event_trace = 7,
PT_CAP_tnt_disable = 8,
PT_CAP_topa_output = 9,
PT_CAP_topa_multiple_entries = 10,
PT_CAP_single_range_output = 11,
PT_CAP_output_subsys = 12,
PT_CAP_payloads_lip = 13,
PT_CAP_num_address_ranges = 14,
PT_CAP_mtc_periods = 15,
PT_CAP_cycle_thresholds = 16,
PT_CAP_psb_periods = 17,
};
enum perf_addr_filter_action_t {
PERF_ADDR_FILTER_ACTION_STOP = 0,
PERF_ADDR_FILTER_ACTION_START = 1,
PERF_ADDR_FILTER_ACTION_FILTER = 2,
};
struct topa {
struct list_head list;
u64 offset;
size_t size;
int last;
unsigned int z_count;
};
struct topa_entry {
u64 end: 1;
u64 rsvd0: 1;
u64 intr: 1;
u64 rsvd1: 1;
u64 stop: 1;
u64 rsvd2: 1;
u64 size: 4;
u64 rsvd3: 2;
u64 base: 36;
u64 rsvd4: 16;
};
struct topa_page {
struct topa_entry table[507];
struct topa topa;
};
struct dev_ext_attribute {
struct device_attribute attr;
void *var;
};
struct perf_addr_filter {
struct list_head entry;
struct path path;
unsigned long offset;
unsigned long size;
enum perf_addr_filter_action_t action;
};
struct pt_buffer {
struct list_head tables;
struct topa *first;
struct topa *last;
struct topa *cur;
unsigned int cur_idx;
size_t output_off;
unsigned long nr_pages;
local_t data_size;
local64_t head;
bool snapshot;
bool single;
long stop_pos;
long intr_pos;
struct topa_entry *stop_te;
struct topa_entry *intr_te;
void **data_pages;
};
typedef struct {
efi_guid_t guid;
u64 table;
} efi_config_table_64_t;
struct real_mode_header {
u32 text_start;
u32 ro_end;
u32 trampoline_start;
u32 trampoline_header;
u32 trampoline_start64;
u32 trampoline_pgd;
u32 wakeup_start;
u32 wakeup_header;
u32 machine_real_restart_asm;
u32 machine_real_restart_seg;
};
struct efi_mem_range {
struct range range;
u64 attribute;
};
struct e820_entry {
u64 addr;
u64 size;
enum e820_type type;
} __attribute__((packed));
struct e820_table {
__u32 nr_entries;
struct e820_entry entries[3200];
};
struct efi_setup_data {
u64 fw_vendor;
u64 __unused;
u64 tables;
u64 smbios;
u64 reserved[8];
};
enum {
HP_THREAD_NONE = 0,
HP_THREAD_ACTIVE = 1,
HP_THREAD_PARKED = 2,
};
struct smpboot_thread_data {
unsigned int cpu;
unsigned int status;
struct smp_hotplug_thread *ht;
};
struct lock_chain {
unsigned int irq_context: 2;
unsigned int depth: 6;
unsigned int base: 24;
struct hlist_node entry;
u64 chain_key;
};
struct lock_list;
struct circular_queue {
struct lock_list *element[4096];
unsigned int front;
unsigned int rear;
};
struct lock_list {
struct list_head entry;
struct lock_class *class;
struct lock_class *links_to;
const struct lock_trace *trace;
u16 distance;
u8 dep;
u8 only_xr;
struct lock_list *parent;
};
struct pending_free {
struct list_head zapped;
unsigned long lock_chains_being_freed[1024];
};
struct delayed_free {
struct callback_head callback_head;
int index;
int scheduled;
struct pending_free pf[2];
};
enum lock_usage_bit {
LOCK_USED_IN_HARDIRQ = 0,
LOCK_USED_IN_HARDIRQ_READ = 1,
LOCK_ENABLED_HARDIRQ = 2,
LOCK_ENABLED_HARDIRQ_READ = 3,
LOCK_USED_IN_SOFTIRQ = 4,
LOCK_USED_IN_SOFTIRQ_READ = 5,
LOCK_ENABLED_SOFTIRQ = 6,
LOCK_ENABLED_SOFTIRQ_READ = 7,
LOCK_USED = 8,
LOCK_USED_READ = 9,
LOCK_USAGE_STATES = 10,
};
enum bfs_result {
BFS_EINVALIDNODE = -2,
BFS_EQUEUEFULL = -1,
BFS_RMATCH = 0,
BFS_RNOMATCH = 1,
};
enum {
LOCKF_USED_IN_HARDIRQ = 1,
LOCKF_USED_IN_HARDIRQ_READ = 2,
LOCKF_ENABLED_HARDIRQ = 4,
LOCKF_ENABLED_HARDIRQ_READ = 8,
LOCKF_USED_IN_SOFTIRQ = 16,
LOCKF_USED_IN_SOFTIRQ_READ = 32,
LOCKF_ENABLED_SOFTIRQ = 64,
LOCKF_ENABLED_SOFTIRQ_READ = 128,
LOCKF_USED = 256,
LOCKF_USED_READ = 512,
};
typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long);
struct trace_event_raw_error_report_template {
struct trace_entry ent;
enum error_detector error_detector;
unsigned long id;
char __data[0];
};
struct trace_event_data_offsets_error_report_template {};
struct madvise_walk_private {
struct mmu_gather *tlb;
bool pageout;
};
struct timerfd_ctx {
union {
struct hrtimer tmr;
struct alarm alarm;
} t;
ktime_t tintv;
ktime_t moffs;
wait_queue_head_t wqh;
u64 ticks;
int clockid;
unsigned short expired;
unsigned short settime_flags;
struct callback_head rcu;
struct list_head clist;
spinlock_t cancel_lock;
bool might_cancel;
};
struct jbd2_revoke_table_s {
int hash_size;
int hash_shift;
struct list_head *hash_table;
};
struct jbd2_revoke_record_s {
struct list_head hash;
tid_t sequence;
unsigned long long blocknr;
};
struct sha3_state {
u64 st[25];
unsigned int rsiz;
unsigned int rsizw;
unsigned int partial;
u8 buf[144];
};
enum blake2b_lengths {
BLAKE2B_BLOCK_SIZE = 128,
BLAKE2B_HASH_SIZE = 64,
BLAKE2B_KEY_SIZE = 64,
BLAKE2B_160_HASH_SIZE = 20,
BLAKE2B_256_HASH_SIZE = 32,
BLAKE2B_384_HASH_SIZE = 48,
BLAKE2B_512_HASH_SIZE = 64,
};
enum blake2b_iv {
BLAKE2B_IV0 = 7640891576956012808ULL,
BLAKE2B_IV1 = 13503953896175478587ULL,
BLAKE2B_IV2 = 4354685564936845355ULL,
BLAKE2B_IV3 = 11912009170470909681ULL,
BLAKE2B_IV4 = 5840696475078001361ULL,
BLAKE2B_IV5 = 11170449401992604703ULL,
BLAKE2B_IV6 = 2270897969802886507ULL,
BLAKE2B_IV7 = 6620516959819538809ULL,
};
struct blake2b_state {
u64 h[8];
u64 t[2];
u64 f[2];
u8 buf[128];
unsigned int buflen;
unsigned int outlen;
};
typedef void (*blake2b_compress_t)(struct blake2b_state *, const u8 *, size_t, u32);
struct blake2b_tfm_ctx {
u8 key[64];
unsigned int keylen;
};
struct percentile_stats {
u64 total;
u64 missed;
};
struct blk_rq_stat {
u64 mean;
u64 min;
u64 max;
u32 nr_samples;
u64 batch;
};
struct latency_stat {
union {
struct percentile_stats ps;
struct blk_rq_stat rqs;
};
};
struct iolatency_grp;
struct child_latency_info {
spinlock_t lock;
u64 last_scale_event;
u64 scale_lat;
u64 nr_samples;
struct iolatency_grp *scale_grp;
atomic_t scale_cookie;
};
struct blk_iolatency;
struct iolatency_grp {
struct blkg_policy_data pd;
struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats;
struct latency_stat cur_stat;
struct blk_iolatency *blkiolat;
unsigned int max_depth;
struct rq_wait rq_wait;
atomic64_t window_start;
atomic_t scale_cookie;
u64 min_lat_nsec;
u64 cur_win_nsec;
u64 lat_avg;
u64 nr_samples;
bool ssd;
struct child_latency_info child_lat;
};
struct blk_iolatency {
struct rq_qos rqos;
struct timer_list timer;
bool enabled;
atomic_t enable_cnt;
struct work_struct enable_work;
};
enum acpi_ec_event_state {
EC_EVENT_READY = 0,
EC_EVENT_IN_PROGRESS = 1,
EC_EVENT_COMPLETE = 2,
};
struct transaction;
struct acpi_ec {
acpi_handle handle;
acpi_handle address_space_handler_holder;
int gpe;
int irq;
unsigned long command_addr;
unsigned long data_addr;
bool global_lock;
unsigned long flags;
unsigned long reference_count;
struct mutex mutex;
wait_queue_head_t wait;
struct list_head list;
struct transaction *curr;
spinlock_t lock;
struct work_struct work;
unsigned long timestamp;
enum acpi_ec_event_state event_state;
unsigned int events_to_process;
unsigned int events_in_progress;
unsigned int queries_in_progress;
bool busy_polling;
unsigned int polling_guard;
};
struct transaction {
const u8 *wdata;
u8 *rdata;
unsigned short irq_count;
u8 command;
u8 wi;
u8 ri;
u8 wlen;
u8 rlen;
u8 flags;
};
enum ec_command {
ACPI_EC_COMMAND_READ = 128,
ACPI_EC_COMMAND_WRITE = 129,
ACPI_EC_BURST_ENABLE = 130,
ACPI_EC_BURST_DISABLE = 131,
ACPI_EC_COMMAND_QUERY = 132,
};
enum {
EC_FLAGS_QUERY_ENABLED = 0,
EC_FLAGS_EVENT_HANDLER_INSTALLED = 1,
EC_FLAGS_EC_HANDLER_INSTALLED = 2,
EC_FLAGS_EC_REG_CALLED = 3,
EC_FLAGS_QUERY_METHODS_INSTALLED = 4,
EC_FLAGS_STARTED = 5,
EC_FLAGS_STOPPED = 6,
EC_FLAGS_EVENTS_MASKED = 7,
};
enum acpi_bus_device_type {
ACPI_BUS_TYPE_DEVICE = 0,
ACPI_BUS_TYPE_POWER = 1,
ACPI_BUS_TYPE_PROCESSOR = 2,
ACPI_BUS_TYPE_THERMAL = 3,
ACPI_BUS_TYPE_POWER_BUTTON = 4,
ACPI_BUS_TYPE_SLEEP_BUTTON = 5,
ACPI_BUS_TYPE_ECDT_EC = 6,
ACPI_BUS_DEVICE_TYPE_COUNT = 7,
};
typedef int (*acpi_ec_query_func)(void *);
struct acpi_ec_query_handler {
struct list_head node;
acpi_ec_query_func func;
acpi_handle handle;
void *data;
u8 query_bit;
struct kref kref;
};
struct acpi_ec_query {
struct transaction transaction;
struct work_struct work;
struct acpi_ec_query_handler *handler;
struct acpi_ec *ec;
};
struct acpi_table_ecdt {
struct acpi_table_header header;
struct acpi_generic_address control;
struct acpi_generic_address data;
u32 uid;
u8 gpe;
u8 id[0];
} __attribute__((packed));
struct ata_eh_cmd_timeout_ent {
const u8 *commands;
const unsigned int *timeouts;
};
enum {
ATA_EH_SPDN_NCQ_OFF = 1,
ATA_EH_SPDN_SPEED_DOWN = 2,
ATA_EH_SPDN_FALLBACK_TO_PIO = 4,
ATA_EH_SPDN_KEEP_ERRORS = 8,
ATA_EFLAG_IS_IO = 1,
ATA_EFLAG_DUBIOUS_XFER = 2,
ATA_EFLAG_OLD_ER = -2147483648,
ATA_ECAT_NONE = 0,
ATA_ECAT_ATA_BUS = 1,
ATA_ECAT_TOUT_HSM = 2,
ATA_ECAT_UNK_DEV = 3,
ATA_ECAT_DUBIOUS_NONE = 4,
ATA_ECAT_DUBIOUS_ATA_BUS = 5,
ATA_ECAT_DUBIOUS_TOUT_HSM = 6,
ATA_ECAT_DUBIOUS_UNK_DEV = 7,
ATA_ECAT_NR = 8,
ATA_EH_CMD_DFL_TIMEOUT = 5000,
ATA_EH_RESET_COOL_DOWN = 5000,
ATA_EH_PRERESET_TIMEOUT = 10000,
ATA_EH_FASTDRAIN_INTERVAL = 3000,
ATA_EH_UA_TRIES = 5,
ATA_EH_PROBE_TRIAL_INTERVAL = 60000,
ATA_EH_PROBE_TRIALS = 2,
};
enum ata_link_iter_mode {
ATA_LITER_EDGE = 0,
ATA_LITER_HOST_FIRST = 1,
ATA_LITER_PMP_FIRST = 2,
};
enum {
ATA_READID_POSTRESET = 1,
ATA_DNXFER_PIO = 0,
ATA_DNXFER_DMA = 1,
ATA_DNXFER_40C = 2,
ATA_DNXFER_FORCE_PIO = 3,
ATA_DNXFER_FORCE_PIO0 = 4,
ATA_DNXFER_QUIET = -2147483648,
};
enum ata_lpm_hints {
ATA_LPM_EMPTY = 1,
ATA_LPM_HIPM = 2,
ATA_LPM_WAKE_ONLY = 4,
};
struct speed_down_verdict_arg {
u64 since;
int xfer_ok;
int nr_errors[8];
};
struct error_table_start {
u32 valid;
u32 error_id;
};
enum wiphy_wowlan_support_flags {
WIPHY_WOWLAN_ANY = 1,
WIPHY_WOWLAN_MAGIC_PKT = 2,
WIPHY_WOWLAN_DISCONNECT = 4,
WIPHY_WOWLAN_SUPPORTS_GTK_REKEY = 8,
WIPHY_WOWLAN_GTK_REKEY_FAILURE = 16,
WIPHY_WOWLAN_EAP_IDENTITY_REQ = 32,
WIPHY_WOWLAN_4WAY_HANDSHAKE = 64,
WIPHY_WOWLAN_RFKILL_RELEASE = 128,
WIPHY_WOWLAN_NET_DETECT = 256,
};
enum {
NONE___2 = 0,
ADD = 1,
REMOVE = 2,
HT_RATE_INIT = 3,
ADD_RATE_INIT = 4,
};
enum iwl_ibss_manager {
IWL_NOT_IBSS_MANAGER = 0,
IWL_IBSS_MANAGER = 1,
};
struct iwlagn_wowlan_status {
__le64 replay_ctr;
__le32 rekey_status;
__le32 wakeup_reason;
u8 pattern_number;
u8 reserved1;
__le16 qos_seq_ctr[8];
__le16 non_qos_seq_ctr;
__le16 reserved2;
union iwlagn_all_tsc_rsc tsc_rsc;
__le16 reserved3;
} __attribute__((packed));
struct iwl_resume_data {
struct iwl_priv *priv;
struct iwlagn_wowlan_status *cmd;
bool valid;
};
struct rtw_sar_arg {
u8 sar_band;
u8 path;
u8 rs;
};
struct ir_raw_timings_pd {
unsigned int header_pulse;
unsigned int header_space;
unsigned int bit_pulse;
unsigned int bit_space[2];
unsigned int trailer_pulse;
unsigned int trailer_space;
unsigned int msb_first: 1;
};
enum sharp_state {
STATE_INACTIVE___3 = 0,
STATE_BIT_PULSE = 1,
STATE_BIT_SPACE = 2,
STATE_TRAILER_PULSE = 3,
STATE_ECHO_SPACE = 4,
STATE_TRAILER_SPACE = 5,
};
enum __sk_action {
__SK_DROP = 0,
__SK_PASS = 1,
__SK_REDIRECT = 2,
__SK_NONE = 3,
};
enum sk_psock_state_bits {
SK_PSOCK_TX_ENABLED = 0,
SK_PSOCK_RX_STRP_ENABLED = 1,
};
struct xt_tcp {
__u16 spts[2];
__u16 dpts[2];
__u8 option;
__u8 flg_mask;
__u8 flg_cmp;
__u8 invflags;
};
struct xt_udp {
__u16 spts[2];
__u16 dpts[2];
__u8 invflags;
};
struct ipt_icmp {
__u8 type;
__u8 code[2];
__u8 invflags;
};
struct ip6t_icmp {
__u8 type;
__u8 code[2];
__u8 invflags;
};
struct uncached_list {
spinlock_t lock;
struct list_head head;
struct list_head quarantine;
};
typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *);
enum rt6_nud_state {
RT6_NUD_FAIL_HARD = -3,
RT6_NUD_FAIL_PROBE = -2,
RT6_NUD_FAIL_DO_RR = -1,
RT6_NUD_SUCCEED = 1,
};
enum {
__ND_OPT_PREFIX_INFO_END = 0,
ND_OPT_SOURCE_LL_ADDR = 1,
ND_OPT_TARGET_LL_ADDR = 2,
ND_OPT_PREFIX_INFO = 3,
ND_OPT_REDIRECT_HDR = 4,
ND_OPT_MTU = 5,
ND_OPT_NONCE = 14,
__ND_OPT_ARRAY_MAX = 15,
ND_OPT_ROUTE_INFO = 24,
ND_OPT_RDNSS = 25,
ND_OPT_DNSSL = 31,
ND_OPT_6CO = 34,
ND_OPT_CAPTIVE_PORTAL = 37,
ND_OPT_PREF64 = 38,
__ND_OPT_MAX = 39,
};
enum rtattr_type_t {
RTA_UNSPEC = 0,
RTA_DST = 1,
RTA_SRC = 2,
RTA_IIF = 3,
RTA_OIF = 4,
RTA_GATEWAY = 5,
RTA_PRIORITY = 6,
RTA_PREFSRC = 7,
RTA_METRICS = 8,
RTA_MULTIPATH = 9,
RTA_PROTOINFO = 10,
RTA_FLOW = 11,
RTA_CACHEINFO = 12,
RTA_SESSION = 13,
RTA_MP_ALGO = 14,
RTA_TABLE = 15,
RTA_MARK = 16,
RTA_MFC_STATS = 17,
RTA_VIA = 18,
RTA_NEWDST = 19,
RTA_PREF = 20,
RTA_ENCAP_TYPE = 21,
RTA_ENCAP = 22,
RTA_EXPIRES = 23,
RTA_PAD = 24,
RTA_UID = 25,
RTA_TTL_PROPAGATE = 26,
RTA_IP_PROTO = 27,
RTA_SPORT = 28,
RTA_DPORT = 29,
RTA_NH_ID = 30,
__RTA_MAX = 31,
};
struct rd_msg {
struct icmp6hdr icmph;
struct in6_addr target;
struct in6_addr dest;
__u8 opt[0];
};
struct trace_event_raw_fib6_table_lookup {
struct trace_entry ent;
u32 tb_id;
int err;
int oif;
int iif;
__u8 tos;
__u8 scope;
__u8 flags;
__u8 src[16];
__u8 dst[16];
u16 sport;
u16 dport;
u8 proto;
u8 rt_type;
char name[16];
__u8 gw[16];
char __data[0];
};
struct rt6_exception {
struct hlist_node hlist;
struct rt6_info *rt6i;
unsigned long stamp;
struct callback_head rcu;
};
struct ip6rd_flowi {
struct flowi6 fl6;
struct in6_addr gateway;
};
struct arg_dev_net_ip {
struct net *net;
struct in6_addr *addr;
};
struct rt6_mtu_change_arg {
struct net_device *dev;
unsigned int mtu;
struct fib6_info *f6i;
};
struct rt6_nh {
struct fib6_info *fib6_info;
struct fib6_config r_cfg;
struct list_head next;
};
struct fib6_nh_dm_arg {
struct net *net;
const struct in6_addr *saddr;
int oif;
int flags;
struct fib6_nh *nh;
};
struct fib6_nh_match_arg {
const struct net_device *dev;
const struct in6_addr *gw;
struct fib6_nh *match;
};
struct fib6_nh_del_cached_rt_arg {
struct fib6_config *cfg;
struct fib6_info *f6i;
};
struct arg_netdev_event {
const struct net_device *dev;
union {
unsigned char nh_flags;
unsigned long event;
};
};
struct trace_event_data_offsets_fib6_table_lookup {};
struct fib6_nh_age_excptn_arg {
struct fib6_gc_args *gc_args;
unsigned long now;
};
struct netevent_redirect {
struct dst_entry *old;
struct dst_entry *new;
struct neighbour *neigh;
const void *daddr;
};
struct fib6_nh_exception_dump_walker {
struct rt6_rtnl_dump_arg *dump;
struct fib6_info *rt;
unsigned int flags;
unsigned int skip;
unsigned int count;
};
struct fib6_nh_frl_arg {
u32 flags;
int oif;
int strict;
int *mpri;
bool *do_rr;
struct fib6_nh *nh;
};
struct fib6_nh_rd_arg {
struct fib6_result *res;
struct flowi6 *fl6;
const struct in6_addr *gw;
struct rt6_info **ret;
};
struct fib6_nh_excptn_arg {
struct rt6_info *rt;
int plen;
};
struct intel_uncore_pmu;
struct intel_uncore_ops;
struct uncore_event_desc;
struct freerunning_counters;
struct intel_uncore_topology;
struct intel_uncore_type {
const char *name;
int num_counters;
int num_boxes;
int perf_ctr_bits;
int fixed_ctr_bits;
int num_freerunning_types;
int type_id;
unsigned int perf_ctr;
unsigned int event_ctl;
unsigned int event_mask;
unsigned int event_mask_ext;
unsigned int fixed_ctr;
unsigned int fixed_ctl;
unsigned int box_ctl;
u64 *box_ctls;
union {
unsigned int msr_offset;
unsigned int mmio_offset;
};
unsigned int mmio_map_size;
unsigned int num_shared_regs: 8;
unsigned int single_fixed: 1;
unsigned int pair_ctr_ctl: 1;
union {
u64 *msr_offsets;
u64 *pci_offsets;
u64 *mmio_offsets;
};
unsigned int *box_ids;
struct event_constraint unconstrainted;
struct event_constraint *constraints;
struct intel_uncore_pmu *pmus;
struct intel_uncore_ops *ops;
struct uncore_event_desc *event_descs;
struct freerunning_counters *freerunning;
const struct attribute_group *attr_groups[4];
const struct attribute_group **attr_update;
struct pmu *pmu;
struct intel_uncore_topology **topology;
int (*get_topology)(struct intel_uncore_type *);
void (*set_mapping)(struct intel_uncore_type *);
void (*cleanup_mapping)(struct intel_uncore_type *);
};
struct intel_uncore_box;
struct intel_uncore_pmu {
struct pmu pmu;
char name[32];
int pmu_idx;
int func_id;
bool registered;
atomic_t activeboxes;
struct intel_uncore_type *type;
struct intel_uncore_box **boxes;
};
struct intel_uncore_extra_reg {
raw_spinlock_t lock;
u64 config;
u64 config1;
u64 config2;
atomic_t ref;
};
struct intel_uncore_box {
int dieid;
int n_active;
int n_events;
int cpu;
unsigned long flags;
atomic_t refcnt;
struct perf_event *events[10];
struct perf_event *event_list[10];
struct event_constraint *event_constraint[10];
unsigned long active_mask[1];
u64 tags[10];
struct pci_dev *pci_dev;
struct intel_uncore_pmu *pmu;
u64 hrtimer_duration;
struct hrtimer hrtimer;
struct list_head list;
struct list_head active_list;
void *io_addr;
struct intel_uncore_extra_reg shared_regs[0];
};
struct intel_uncore_ops {
void (*init_box)(struct intel_uncore_box *);
void (*exit_box)(struct intel_uncore_box *);
void (*disable_box)(struct intel_uncore_box *);
void (*enable_box)(struct intel_uncore_box *);
void (*disable_event)(struct intel_uncore_box *, struct perf_event *);
void (*enable_event)(struct intel_uncore_box *, struct perf_event *);
u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *);
int (*hw_config)(struct intel_uncore_box *, struct perf_event *);
struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *);
void (*put_constraint)(struct intel_uncore_box *, struct perf_event *);
};
struct uncore_event_desc {
struct device_attribute attr;
const char *config;
};
struct freerunning_counters {
unsigned int counter_base;
unsigned int counter_offset;
unsigned int box_offset;
unsigned int num_counters;
unsigned int bits;
unsigned int *box_offsets;
};
struct uncore_iio_topology;
struct uncore_upi_topology;
struct intel_uncore_topology {
int pmu_idx;
union {
void *untyped;
struct uncore_iio_topology *iio;
struct uncore_upi_topology *upi;
};
};
struct uncore_iio_topology {
int pci_bus_no;
int segment;
};
struct uncore_upi_topology {
int die_to;
int pmu_idx_to;
int enabled;
};
struct pci_extra_dev {
struct pci_dev *dev[4];
};
struct intel_uncore_init_fun {
void (*cpu_init)();
int (*pci_init)();
void (*mmio_init)();
bool use_discovery;
int *uncore_units_ignore;
};
struct pci2phy_map {
struct list_head list;
int segment;
int pbus_to_dieid[256];
};
struct async_entry {
struct list_head domain_list;
struct list_head global_list;
struct work_struct work;
async_cookie_t cookie;
async_func_t func;
void *data;
struct async_domain *domain;
};
struct pool_workqueue;
struct worker_pool;
struct worker {
union {
struct list_head entry;
struct hlist_node hentry;
};
struct work_struct *current_work;
work_func_t current_func;
struct pool_workqueue *current_pwq;
u64 current_at;
unsigned int current_color;
int sleeping;
work_func_t last_func;
struct list_head scheduled;
struct task_struct *task;
struct worker_pool *pool;
struct list_head node;
unsigned long last_active;
unsigned int flags;
int id;
char desc[24];
struct workqueue_struct *rescue_wq;
};
struct umd_info {
const char *driver_name;
struct file *pipe_to_umh;
struct file *pipe_from_umh;
struct path wd;
struct pid *tgid;
};
struct tmigr_group;
typedef void (*btf_trace_tmigr_group_set)(void *, struct tmigr_group *);
struct tmigr_event {
struct timerqueue_node nextevt;
unsigned int cpu;
bool ignore;
};
struct tmigr_group {
raw_spinlock_t lock;
struct tmigr_group *parent;
struct tmigr_event groupevt;
u64 next_expiry;
struct timerqueue_head events;
atomic_t migr_state;
unsigned int level;
int numa_node;
unsigned int num_children;
u8 childmask;
struct list_head list;
};
typedef void (*btf_trace_tmigr_connect_child_parent)(void *, struct tmigr_group *);
struct tmigr_cpu;
typedef void (*btf_trace_tmigr_connect_cpu_parent)(void *, struct tmigr_cpu *);
struct tmigr_cpu {
raw_spinlock_t lock;
bool online;
bool idle;
bool remote;
struct tmigr_group *tmgroup;
u8 childmask;
u64 wakeup;
struct tmigr_event cpuevt;
};
union tmigr_state;
typedef void (*btf_trace_tmigr_group_set_cpu_inactive)(void *, struct tmigr_group *, union tmigr_state, u32);
union tmigr_state {
u32 state;
struct {
u8 active;
u8 migrator;
u16 seq;
};
};
typedef void (*btf_trace_tmigr_group_set_cpu_active)(void *, struct tmigr_group *, union tmigr_state, u32);
typedef void (*btf_trace_tmigr_cpu_new_timer)(void *, struct tmigr_cpu *);
typedef void (*btf_trace_tmigr_cpu_active)(void *, struct tmigr_cpu *);
typedef void (*btf_trace_tmigr_cpu_online)(void *, struct tmigr_cpu *);
typedef void (*btf_trace_tmigr_cpu_offline)(void *, struct tmigr_cpu *);
typedef void (*btf_trace_tmigr_handle_remote_cpu)(void *, struct tmigr_cpu *);
typedef void (*btf_trace_tmigr_cpu_idle)(void *, struct tmigr_cpu *, u64);
typedef void (*btf_trace_tmigr_cpu_new_timer_idle)(void *, struct tmigr_cpu *, u64);
typedef void (*btf_trace_tmigr_update_events)(void *, struct tmigr_group *, struct tmigr_group *, union tmigr_state, union tmigr_state, u64);
typedef void (*btf_trace_tmigr_handle_remote)(void *, struct tmigr_group *);
struct trace_event_raw_tmigr_group_set {
struct trace_entry ent;
void *group;
unsigned int lvl;
unsigned int numa_node;
char __data[0];
};
struct trace_event_raw_tmigr_connect_child_parent {
struct trace_entry ent;
void *child;
void *parent;
unsigned int lvl;
unsigned int numa_node;
unsigned int num_children;
u32 childmask;
char __data[0];
};
struct trace_event_raw_tmigr_connect_cpu_parent {
struct trace_entry ent;
void *parent;
unsigned int cpu;
unsigned int lvl;
unsigned int numa_node;
unsigned int num_children;
u32 childmask;
char __data[0];
};
struct trace_event_raw_tmigr_group_and_cpu {
struct trace_entry ent;
void *group;
void *parent;
unsigned int lvl;
unsigned int numa_node;
u32 childmask;
u8 active;
u8 migrator;
char __data[0];
};
struct trace_event_raw_tmigr_cpugroup {
struct trace_entry ent;
u64 wakeup;
void *parent;
unsigned int cpu;
char __data[0];
};
struct trace_event_raw_tmigr_idle {
struct trace_entry ent;
u64 nextevt;
u64 wakeup;
void *parent;
unsigned int cpu;
char __data[0];
};
struct trace_event_raw_tmigr_update_events {
struct trace_entry ent;
void *child;
void *group;
u64 nextevt;
u64 group_next_expiry;
u64 child_evt_expiry;
unsigned int group_lvl;
unsigned int child_evtcpu;
u8 child_active;
u8 group_active;
char __data[0];
};
struct trace_event_raw_tmigr_handle_remote {
struct trace_entry ent;
void *group;
unsigned int lvl;
char __data[0];
};
typedef bool (*up_f)(struct tmigr_group *, struct tmigr_group *, void *);
struct tmigr_remote_data {
unsigned long basej;
u64 now;
u64 firstexp;
u8 childmask;
bool check;
bool tmc_active;
};
struct timer_events {
u64 local;
u64 global;
};
struct tmigr_walk {
u64 nextexp;
u64 firstexp;
struct tmigr_event *evt;
u8 childmask;
bool remote;
};
struct trace_event_data_offsets_tmigr_group_set {};
struct trace_event_data_offsets_tmigr_connect_child_parent {};
struct trace_event_data_offsets_tmigr_connect_cpu_parent {};
struct trace_event_data_offsets_tmigr_group_and_cpu {};
struct trace_event_data_offsets_tmigr_cpugroup {};
struct trace_event_data_offsets_tmigr_idle {};
struct trace_event_data_offsets_tmigr_update_events {};
struct trace_event_data_offsets_tmigr_handle_remote {};
struct pcpu_freelist_node;
struct pcpu_freelist_head {
struct pcpu_freelist_node *first;
raw_spinlock_t lock;
};
struct pcpu_freelist_node {
struct pcpu_freelist_node *next;
};
struct pcpu_freelist {
struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist;
struct pcpu_freelist_head extralist;
};
struct lpm_trie_node;
struct lpm_trie {
struct bpf_map map;
struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *root;
size_t n_entries;
size_t max_prefixlen;
size_t data_size;
spinlock_t lock;
};
struct lpm_trie_node {
struct callback_head rcu;
struct lpm_trie_node __attribute__((btf_type_tag("rcu"))) *child[2];
u32 prefixlen;
u32 flags;
u8 data[0];
};
struct bpf_lpm_trie_key_hdr {
__u32 prefixlen;
};
struct bpf_lpm_trie_key_u8 {
union {
struct bpf_lpm_trie_key_hdr hdr;
__u32 prefixlen;
};
__u8 data[0];
};
typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int);
typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int);
typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int);
typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int);
typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int);
typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, unsigned long, bool, unsigned long, struct file *, int, int);
struct collapse_control {
bool is_khugepaged;
u32 node_load[1024];
nodemask_t alloc_nmask;
};
struct khugepaged_mm_slot;
struct khugepaged_scan {
struct list_head mm_head;
struct khugepaged_mm_slot *mm_slot;
unsigned long address;
};
struct mm_slot {
struct hlist_node hash;
struct list_head mm_node;
struct mm_struct *mm;
};
struct khugepaged_mm_slot {
struct mm_slot slot;
};
enum scan_result {
SCAN_FAIL = 0,
SCAN_SUCCEED = 1,
SCAN_PMD_NULL = 2,
SCAN_PMD_NONE = 3,
SCAN_PMD_MAPPED = 4,
SCAN_EXCEED_NONE_PTE = 5,
SCAN_EXCEED_SWAP_PTE = 6,
SCAN_EXCEED_SHARED_PTE = 7,
SCAN_PTE_NON_PRESENT = 8,
SCAN_PTE_UFFD_WP = 9,
SCAN_PTE_MAPPED_HUGEPAGE = 10,
SCAN_PAGE_RO = 11,
SCAN_LACK_REFERENCED_PAGE = 12,
SCAN_PAGE_NULL = 13,
SCAN_SCAN_ABORT = 14,
SCAN_PAGE_COUNT = 15,
SCAN_PAGE_LRU = 16,
SCAN_PAGE_LOCK = 17,
SCAN_PAGE_ANON = 18,
SCAN_PAGE_COMPOUND = 19,
SCAN_ANY_PROCESS = 20,
SCAN_VMA_NULL = 21,
SCAN_VMA_CHECK = 22,
SCAN_ADDRESS_RANGE = 23,
SCAN_DEL_PAGE_LRU = 24,
SCAN_ALLOC_HUGE_PAGE_FAIL = 25,
SCAN_CGROUP_CHARGE_FAIL = 26,
SCAN_TRUNCATED = 27,
SCAN_PAGE_HAS_PRIVATE = 28,
SCAN_STORE_FAILED = 29,
SCAN_COPY_MC = 30,
SCAN_PAGE_FILLED = 31,
};
enum sgp_type {
SGP_READ = 0,
SGP_NOALLOC = 1,
SGP_CACHE = 2,
SGP_WRITE = 3,
SGP_FALLOC = 4,
};
struct trace_event_raw_mm_khugepaged_scan_pmd {
struct trace_entry ent;
struct mm_struct *mm;
unsigned long pfn;
bool writable;
int referenced;
int none_or_zero;
int status;
int unmapped;
char __data[0];
};
struct trace_event_raw_mm_collapse_huge_page {
struct trace_entry ent;
struct mm_struct *mm;
int isolated;
int status;
char __data[0];
};
struct trace_event_raw_mm_collapse_huge_page_isolate {
struct trace_entry ent;
unsigned long pfn;
int none_or_zero;
int referenced;
bool writable;
int status;
char __data[0];
};
struct trace_event_raw_mm_collapse_huge_page_swapin {
struct trace_entry ent;
struct mm_struct *mm;
int swapped_in;
int referenced;
int ret;
char __data[0];
};
struct trace_event_raw_mm_khugepaged_scan_file {
struct trace_entry ent;
struct mm_struct *mm;
unsigned long pfn;
u32 __data_loc_filename;
int present;
int swap;
int result;
char __data[0];
};
struct trace_event_raw_mm_khugepaged_collapse_file {
struct trace_entry ent;
struct mm_struct *mm;
unsigned long hpfn;
unsigned long index;
unsigned long addr;
bool is_shmem;
u32 __data_loc_filename;
int nr;
int result;
char __data[0];
};
struct trace_event_data_offsets_mm_khugepaged_scan_file {
u32 filename;
const void *filename_ptr_;
};
struct trace_event_data_offsets_mm_khugepaged_collapse_file {
u32 filename;
const void *filename_ptr_;
};
struct trace_event_data_offsets_mm_khugepaged_scan_pmd {};
struct trace_event_data_offsets_mm_collapse_huge_page {};
struct trace_event_data_offsets_mm_collapse_huge_page_isolate {};
struct trace_event_data_offsets_mm_collapse_huge_page_swapin {};
typedef __kernel_mode_t mode_t;
struct orlov_stats {
__u64 free_clusters;
__u32 free_inodes;
__u32 used_dirs;
};
struct backing_file_ctx {
const struct cred *cred;
struct file *user_file;
void (*accessed)(struct file *);
void (*end_write)(struct file *);
};
struct fuse_backing_map {
int32_t fd;
uint32_t flags;
uint64_t padding;
};
enum btrfs_subpage_type {
BTRFS_SUBPAGE_METADATA = 0,
BTRFS_SUBPAGE_DATA = 1,
};
enum {
__PAGE_UNLOCK_BIT = 0,
PAGE_UNLOCK = 1,
__PAGE_UNLOCK_SEQ = 0,
__PAGE_START_WRITEBACK_BIT = 1,
PAGE_START_WRITEBACK = 2,
__PAGE_START_WRITEBACK_SEQ = 1,
__PAGE_END_WRITEBACK_BIT = 2,
PAGE_END_WRITEBACK = 4,
__PAGE_END_WRITEBACK_SEQ = 2,
__PAGE_SET_ORDERED_BIT = 3,
PAGE_SET_ORDERED = 8,
__PAGE_SET_ORDERED_SEQ = 3,
};
struct btrfs_bio_ctrl {
struct btrfs_bio *bbio;
enum btrfs_compression_type compress_type;
u32 len_to_oe_boundary;
blk_opf_t opf;
btrfs_bio_end_io_t end_io_func;
struct writeback_control *wbc;
};
struct btrfs_eb_write_context {
struct writeback_control *wbc;
struct extent_buffer *eb;
struct btrfs_block_group *zoned_bg;
};
struct btrfs_subpage {
spinlock_t lock;
atomic_t readers;
union {
atomic_t eb_refs;
atomic_t writers;
};
unsigned long bitmaps[0];
};
struct btrfs_fiemap_entry;
struct fiemap_cache {
struct btrfs_fiemap_entry *entries;
int entries_size;
int entries_pos;
u64 next_search_offset;
unsigned int extents_mapped;
u64 offset;
u64 phys;
u64 len;
u32 flags;
bool cached;
};
struct btrfs_fiemap_entry {
u64 offset;
u64 phys;
u64 len;
u32 flags;
};
struct processed_extent {
struct btrfs_inode *inode;
u64 start;
u64 end;
bool uptodate;
};
enum submit_disposition {
ASYNC_TX_SUBMITTED = 0,
ASYNC_TX_CHANNEL_SWITCH = 1,
ASYNC_TX_DIRECT_SUBMIT = 2,
};
struct blk_ia_range_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct blk_independent_access_range *, char *);
};
struct font_data {
unsigned int extra[4];
const unsigned char data[0];
};
typedef u16 ucs2_char_t;
struct node_groups {
unsigned int id;
union {
unsigned int ngroups;
unsigned int ncpus;
};
};
typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int);
typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int);
typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int);
struct trace_event_raw_msr_trace_class {
struct trace_entry ent;
unsigned int msr;
u64 val;
int failed;
char __data[0];
};
struct trace_event_data_offsets_msr_trace_class {};
struct clk_multiplier {
struct clk_hw hw;
void *reg;
u8 shift;
u8 width;
u8 flags;
spinlock_t *lock;
};
enum {
TTY_LOCK_NORMAL = 0,
TTY_LOCK_SLAVE = 1,
};
struct dma_buf_list {
struct list_head head;
struct mutex lock;
};
struct dma_buf;
struct dma_buf_attach_ops;
struct dma_buf_attachment {
struct dma_buf *dmabuf;
struct device *dev;
struct list_head node;
struct sg_table *sgt;
enum dma_data_direction dir;
bool peer2peer;
const struct dma_buf_attach_ops *importer_ops;
void *importer_priv;
void *priv;
};
struct iosys_map {
union {
void *vaddr_iomem;
void *vaddr;
};
bool is_iomem;
};
struct dma_buf_poll_cb_t {
struct dma_fence_cb cb;
wait_queue_head_t *poll;
__poll_t active;
};
struct dma_buf_ops;
struct dma_buf {
size_t size;
struct file *file;
struct list_head attachments;
const struct dma_buf_ops *ops;
unsigned int vmapping_counter;
struct iosys_map vmap_ptr;
const char *exp_name;
const char *name;
spinlock_t name_lock;
struct module *owner;
struct list_head list_node;
void *priv;
struct dma_resv *resv;
wait_queue_head_t poll;
struct dma_buf_poll_cb_t cb_in;
struct dma_buf_poll_cb_t cb_out;
};
struct dma_buf_ops {
bool cache_sgt_mapping;
int (*attach)(struct dma_buf *, struct dma_buf_attachment *);
void (*detach)(struct dma_buf *, struct dma_buf_attachment *);
int (*pin)(struct dma_buf_attachment *);
void (*unpin)(struct dma_buf_attachment *);
struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction);
void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction);
void (*release)(struct dma_buf *);
int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction);
int (*mmap)(struct dma_buf *, struct vm_area_struct *);
int (*vmap)(struct dma_buf *, struct iosys_map *);
void (*vunmap)(struct dma_buf *, struct iosys_map *);
};
struct dma_buf_attach_ops {
bool allow_peer2peer;
void (*move_notify)(struct dma_buf_attachment *);
};
struct dma_buf_import_sync_file {
__u32 flags;
__s32 fd;
};
struct dma_buf_export_sync_file {
__u32 flags;
__s32 fd;
};
struct dma_buf_export_info {
const char *exp_name;
struct module *owner;
const struct dma_buf_ops *ops;
size_t size;
int flags;
struct dma_resv *resv;
void *priv;
};
struct dma_buf_sync {
__u64 flags;
};
enum iwl_proto_offloads {
IWL_D3_PROTO_OFFLOAD_ARP = 1,
IWL_D3_PROTO_OFFLOAD_NS = 2,
IWL_D3_PROTO_IPV4_VALID = 4,
IWL_D3_PROTO_IPV6_VALID = 8,
IWL_D3_PROTO_OFFLOAD_BTM = 16,
};
struct iwl_proto_offload_cmd_common {
__le32 enabled;
__be32 remote_ipv4_addr;
__be32 host_ipv4_addr;
u8 arp_mac_addr[6];
__le16 reserved;
};
struct iwl_proto_offload_cmd_v1 {
struct iwl_proto_offload_cmd_common common;
u8 remote_ipv6_addr[16];
u8 solicited_node_ipv6_addr[16];
u8 target_ipv6_addr[32];
u8 ndp_mac_addr[6];
__le16 reserved2;
};
struct iwl_proto_offload_cmd_v2 {
struct iwl_proto_offload_cmd_common common;
u8 remote_ipv6_addr[16];
u8 solicited_node_ipv6_addr[16];
u8 target_ipv6_addr[96];
u8 ndp_mac_addr[6];
u8 num_valid_ipv6_addrs;
u8 reserved2[3];
} __attribute__((packed));
struct iwl_targ_addr {
struct in6_addr addr;
__le32 config_num;
};
struct iwl_ns_config {
struct in6_addr source_ipv6_addr;
struct in6_addr dest_ipv6_addr;
u8 target_mac_addr[6];
__le16 reserved;
};
struct iwl_proto_offload_cmd_v3_small {
struct iwl_proto_offload_cmd_common common;
__le32 num_valid_ipv6_addrs;
struct iwl_targ_addr targ_addrs[4];
struct iwl_ns_config ns_config[2];
};
struct iwl_proto_offload_cmd_v4 {
__le32 sta_id;
struct iwl_proto_offload_cmd_common common;
__le32 num_valid_ipv6_addrs;
struct iwl_targ_addr targ_addrs[12];
struct iwl_ns_config ns_config[4];
};
struct iwl_wowlan_config_cmd {
__le32 wakeup_filter;
__le16 non_qos_seq;
__le16 qos_seq[8];
u8 wowlan_ba_teardown_tids;
u8 is_11n_connection;
u8 offloading_tid;
u8 flags;
u8 sta_id;
u8 reserved;
};
struct dm_kcopyd_throttle;
struct dm_kcopyd_client {
struct page_list *pages;
unsigned int nr_reserved_pages;
unsigned int nr_free_pages;
unsigned int sub_job_size;
struct dm_io_client *io_client;
wait_queue_head_t destroyq;
mempool_t job_pool;
struct workqueue_struct *kcopyd_wq;
struct work_struct kcopyd_work;
struct dm_kcopyd_throttle *throttle;
atomic_t nr_jobs;
spinlock_t job_lock;
struct list_head callback_jobs;
struct list_head complete_jobs;
struct list_head io_jobs;
struct list_head pages_jobs;
};
struct dm_kcopyd_throttle {
unsigned int throttle;
unsigned int num_io_jobs;
unsigned int io_period;
unsigned int total_period;
unsigned int last_jiffies;
};
typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *);
struct kcopyd_job {
struct dm_kcopyd_client *kc;
struct list_head list;
unsigned int flags;
int read_err;
unsigned long write_err;
enum req_op op;
struct dm_io_region source;
unsigned int num_dests;
struct dm_io_region dests[8];
struct page_list *pages;
dm_kcopyd_notify_fn fn;
void *context;
struct mutex lock;
atomic_t sub_jobs;
sector_t progress;
sector_t write_offset;
struct kcopyd_job *master_job;
};
struct sock_diag_handler {
struct module *owner;
__u8 family;
int (*dump)(struct sk_buff *, struct nlmsghdr *);
int (*get_info)(struct sk_buff *, struct sock *);
int (*destroy)(struct sk_buff *, struct nlmsghdr *);
};
struct sock_diag_inet_compat {
struct module *owner;
int (*fn)(struct sk_buff *, struct nlmsghdr *);
};
enum sknetlink_groups {
SKNLGRP_NONE = 0,
SKNLGRP_INET_TCP_DESTROY = 1,
SKNLGRP_INET_UDP_DESTROY = 2,
SKNLGRP_INET6_TCP_DESTROY = 3,
SKNLGRP_INET6_UDP_DESTROY = 4,
__SKNLGRP_MAX = 5,
};
struct broadcast_sk {
struct sock *sk;
struct work_struct work;
};
struct sock_diag_req {
__u8 sdiag_family;
__u8 sdiag_protocol;
};
enum {
ETHTOOL_A_CABLE_TEST_UNSPEC = 0,
ETHTOOL_A_CABLE_TEST_HEADER = 1,
__ETHTOOL_A_CABLE_TEST_CNT = 2,
ETHTOOL_A_CABLE_TEST_MAX = 1,
};
enum {
ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0,
ETHTOOL_A_CABLE_TEST_NTF_HEADER = 1,
ETHTOOL_A_CABLE_TEST_NTF_STATUS = 2,
ETHTOOL_A_CABLE_TEST_NTF_NEST = 3,
__ETHTOOL_A_CABLE_TEST_NTF_CNT = 4,
ETHTOOL_A_CABLE_TEST_NTF_MAX = 3,
};
enum {
ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0,
ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1,
ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2,
};
enum {
ETHTOOL_A_CABLE_NEST_UNSPEC = 0,
ETHTOOL_A_CABLE_NEST_RESULT = 1,
ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 2,
__ETHTOOL_A_CABLE_NEST_CNT = 3,
ETHTOOL_A_CABLE_NEST_MAX = 2,
};
enum {
ETHTOOL_A_CABLE_RESULT_UNSPEC = 0,
ETHTOOL_A_CABLE_RESULT_PAIR = 1,
ETHTOOL_A_CABLE_RESULT_CODE = 2,
__ETHTOOL_A_CABLE_RESULT_CNT = 3,
ETHTOOL_A_CABLE_RESULT_MAX = 2,
};
enum {
ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0,
ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 1,
ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 2,
__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT = 3,
ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 2,
};
enum {
ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0,
ETHTOOL_A_CABLE_TEST_TDR_HEADER = 1,
ETHTOOL_A_CABLE_TEST_TDR_CFG = 2,
__ETHTOOL_A_CABLE_TEST_TDR_CNT = 3,
ETHTOOL_A_CABLE_TEST_TDR_MAX = 2,
};
enum {
ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0,
ETHTOOL_A_CABLE_TDR_NEST_STEP = 1,
ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 2,
ETHTOOL_A_CABLE_TDR_NEST_PULSE = 3,
__ETHTOOL_A_CABLE_TDR_NEST_CNT = 4,
ETHTOOL_A_CABLE_TDR_NEST_MAX = 3,
};
enum {
ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0,
ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 1,
ETHTOOL_A_CABLE_AMPLITUDE_mV = 2,
__ETHTOOL_A_CABLE_AMPLITUDE_CNT = 3,
ETHTOOL_A_CABLE_AMPLITUDE_MAX = 2,
};
enum {
ETHTOOL_A_CABLE_PULSE_UNSPEC = 0,
ETHTOOL_A_CABLE_PULSE_mV = 1,
__ETHTOOL_A_CABLE_PULSE_CNT = 2,
ETHTOOL_A_CABLE_PULSE_MAX = 1,
};
enum {
ETHTOOL_A_CABLE_STEP_UNSPEC = 0,
ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 1,
ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 2,
ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 3,
__ETHTOOL_A_CABLE_STEP_CNT = 4,
ETHTOOL_A_CABLE_STEP_MAX = 3,
};
enum {
ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0,
ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 1,
ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 2,
ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 3,
ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 4,
__ETHTOOL_A_CABLE_TEST_TDR_CFG_CNT = 5,
ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 4,
};
enum {
ETHTOOL_A_CABLE_PAIR_A = 0,
ETHTOOL_A_CABLE_PAIR_B = 1,
ETHTOOL_A_CABLE_PAIR_C = 2,
ETHTOOL_A_CABLE_PAIR_D = 3,
};
enum nft_range_ops {
NFT_RANGE_EQ = 0,
NFT_RANGE_NEQ = 1,
};
enum nft_range_attributes {
NFTA_RANGE_UNSPEC = 0,
NFTA_RANGE_SREG = 1,
NFTA_RANGE_OP = 2,
NFTA_RANGE_FROM_DATA = 3,
NFTA_RANGE_TO_DATA = 4,
__NFTA_RANGE_MAX = 5,
};
struct nft_range_expr {
struct nft_data data_from;
struct nft_data data_to;
u8 sreg;
u8 len;
enum nft_range_ops op: 8;
};
struct fib_prop {
int error;
u8 scope;
};
struct rtvia {
__kernel_sa_family_t rtvia_family;
__u8 rtvia_addr[0];
};
struct fib_nh_notifier_info {
struct fib_notifier_info info;
struct fib_nh *fib_nh;
};
enum {
EXTRA_REG_NHMEX_M_FILTER = 0,
EXTRA_REG_NHMEX_M_DSP = 1,
EXTRA_REG_NHMEX_M_ISS = 2,
EXTRA_REG_NHMEX_M_MAP = 3,
EXTRA_REG_NHMEX_M_MSC_THR = 4,
EXTRA_REG_NHMEX_M_PGT = 5,
EXTRA_REG_NHMEX_M_PLD = 6,
EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7,
};
enum {
FTRACE_OPS_FL_ENABLED = 1,
FTRACE_OPS_FL_DYNAMIC = 2,
FTRACE_OPS_FL_SAVE_REGS = 4,
FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8,
FTRACE_OPS_FL_RECURSION = 16,
FTRACE_OPS_FL_STUB = 32,
FTRACE_OPS_FL_INITIALIZED = 64,
FTRACE_OPS_FL_DELETED = 128,
FTRACE_OPS_FL_ADDING = 256,
FTRACE_OPS_FL_REMOVING = 512,
FTRACE_OPS_FL_MODIFYING = 1024,
FTRACE_OPS_FL_ALLOC_TRAMP = 2048,
FTRACE_OPS_FL_IPMODIFY = 4096,
FTRACE_OPS_FL_PID = 8192,
FTRACE_OPS_FL_RCU = 16384,
FTRACE_OPS_FL_TRACE_ARRAY = 32768,
FTRACE_OPS_FL_PERMANENT = 65536,
FTRACE_OPS_FL_DIRECT = 131072,
};
struct inactive_task_frame {
unsigned long r15;
unsigned long r14;
unsigned long r13;
unsigned long r12;
unsigned long bx;
unsigned long bp;
unsigned long ret_addr;
};
struct ce_unbind {
struct clock_event_device *ce;
int res;
};
enum {
BPF_F_SKIP_FIELD_MASK = 255,
BPF_F_USER_STACK = 256,
BPF_F_FAST_STACK_CMP = 512,
BPF_F_REUSE_STACKID = 1024,
BPF_F_USER_BUILD_ID = 2048,
};
enum bpf_stack_build_id_status {
BPF_STACK_BUILD_ID_EMPTY = 0,
BPF_STACK_BUILD_ID_VALID = 1,
BPF_STACK_BUILD_ID_IP = 2,
};
typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64);
typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64);
typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64);
typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64);
typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64);
struct stack_map_bucket;
struct bpf_stack_map {
struct bpf_map map;
void *elems;
struct pcpu_freelist freelist;
u32 n_buckets;
struct stack_map_bucket *buckets[0];
};
struct stack_map_bucket {
struct pcpu_freelist_node fnode;
u32 hash;
u32 nr;
u64 data[0];
};
struct bpf_stack_build_id {
__s32 status;
unsigned char build_id[20];
union {
__u64 offset;
__u64 ip;
};
};
struct mmap_unlock_irq_work {
struct irq_work irq_work;
struct mm_struct *mm;
};
enum hugetlb_memory_event {
HUGETLB_MAX = 0,
HUGETLB_NR_MEMORY_EVENTS = 1,
};
enum {
RES_USAGE = 0,
RES_RSVD_USAGE = 1,
RES_LIMIT = 2,
RES_RSVD_LIMIT = 3,
RES_MAX_USAGE = 4,
RES_RSVD_MAX_USAGE = 5,
RES_FAILCNT = 6,
RES_RSVD_FAILCNT = 7,
};
struct proc_fs_opts {
int flag;
const char *str;
};
struct proc_mounts {
struct mnt_namespace *ns;
struct path root;
int (*show)(struct seq_file *, struct vfsmount *);
};
struct ext4_xattr_ibody_header {
__le32 h_magic;
};
struct ext4_xattr_entry {
__u8 e_name_len;
__u8 e_name_index;
__le16 e_value_offs;
__le32 e_value_inum;
__le32 e_value_size;
__le32 e_hash;
char e_name[0];
};
struct ext4_xattr_header {
__le32 h_magic;
__le32 h_refcount;
__le32 h_blocks;
__le32 h_hash;
__le32 h_checksum;
__u32 h_reserved[3];
};
struct ext4_xattr_inode_array {
unsigned int count;
struct inode *inodes[0];
};
struct ext4_xattr_info {
const char *name;
const void *value;
size_t value_len;
int name_index;
int in_inode;
};
struct ext4_xattr_search {
struct ext4_xattr_entry *first;
void *base;
void *end;
struct ext4_xattr_entry *here;
int not_found;
};
struct ext4_xattr_ibody_find {
struct ext4_xattr_search s;
struct ext4_iloc iloc;
};
struct ext4_xattr_block_find {
struct ext4_xattr_search s;
struct buffer_head *bh;
};
typedef void (*btf_trace_btrfs_transaction_commit)(void *, const struct btrfs_fs_info *);
typedef void (*btf_trace_btrfs_inode_new)(void *, const struct inode *);
typedef void (*btf_trace_btrfs_inode_request)(void *, const struct inode *);
typedef void (*btf_trace_btrfs_inode_evict)(void *, const struct inode *);
typedef void (*btf_trace_btrfs_get_extent)(void *, const struct btrfs_root *, const struct btrfs_inode *, const struct extent_map *);
typedef void (*btf_trace_btrfs_handle_em_exist)(void *, const struct btrfs_fs_info *, const struct extent_map *, const struct extent_map *, u64, u64);
typedef void (*btf_trace_btrfs_get_extent_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64);
typedef void (*btf_trace_btrfs_truncate_show_fi_regular)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, u64);
typedef void (*btf_trace_btrfs_get_extent_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64);
typedef void (*btf_trace_btrfs_truncate_show_fi_inline)(void *, const struct btrfs_inode *, const struct extent_buffer *, const struct btrfs_file_extent_item *, int, u64);
typedef void (*btf_trace_btrfs_ordered_extent_add)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_remove)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_start)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_put)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_lookup)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_lookup_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_lookup_first_range)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_lookup_for_logging)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_lookup_first)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_split)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_dec_test_pending)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_ordered_extent_mark_finished)(void *, const struct btrfs_inode *, const struct btrfs_ordered_extent *);
typedef void (*btf_trace_btrfs_finish_ordered_extent)(void *, const struct btrfs_inode *, u64, u64, bool);
typedef void (*btf_trace___extent_writepage)(void *, const struct page *, const struct inode *, const struct writeback_control *);
typedef void (*btf_trace_btrfs_writepage_end_io_hook)(void *, const struct btrfs_inode *, u64, u64, int);
typedef void (*btf_trace_btrfs_sync_file)(void *, const struct file *, int);
typedef void (*btf_trace_btrfs_sync_fs)(void *, const struct btrfs_fs_info *, int);
typedef void (*btf_trace_btrfs_add_block_group)(void *, const struct btrfs_fs_info *, const struct btrfs_block_group *, int);
typedef void (*btf_trace_add_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int);
typedef void (*btf_trace_run_delayed_tree_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_tree_ref *, int);
typedef void (*btf_trace_add_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int);
typedef void (*btf_trace_run_delayed_data_ref)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_node *, const struct btrfs_delayed_data_ref *, int);
typedef void (*btf_trace_add_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int);
typedef void (*btf_trace_run_delayed_ref_head)(void *, const struct btrfs_fs_info *, const struct btrfs_delayed_ref_head *, int);
typedef void (*btf_trace_btrfs_chunk_alloc)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64);
typedef void (*btf_trace_btrfs_chunk_free)(void *, const struct btrfs_fs_info *, const struct btrfs_chunk_map *, u64, u64);
typedef void (*btf_trace_btrfs_cow_block)(void *, const struct btrfs_root *, const struct extent_buffer *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_space_reservation)(void *, const struct btrfs_fs_info *, const char *, u64, u64, int);
typedef void (*btf_trace_btrfs_trigger_flush)(void *, const struct btrfs_fs_info *, u64, u64, int, const char *);
typedef void (*btf_trace_btrfs_flush_space)(void *, const struct btrfs_fs_info *, u64, u64, int, int, bool);
typedef void (*btf_trace_btrfs_reserved_extent_alloc)(void *, const struct btrfs_fs_info *, u64, u64);
typedef void (*btf_trace_btrfs_reserved_extent_free)(void *, const struct btrfs_fs_info *, u64, u64);
struct find_free_extent_ctl;
typedef void (*btf_trace_find_free_extent)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *);
enum btrfs_extent_allocation_policy {
BTRFS_EXTENT_ALLOC_CLUSTERED = 0,
BTRFS_EXTENT_ALLOC_ZONED = 1,
};
struct find_free_extent_ctl {
u64 ram_bytes;
u64 num_bytes;
u64 min_alloc_size;
u64 empty_size;
u64 flags;
int delalloc;
u64 search_start;
u64 empty_cluster;
struct btrfs_free_cluster *last_ptr;
bool use_cluster;
bool have_caching_bg;
bool orig_have_caching_bg;
bool for_treelog;
bool for_data_reloc;
int index;
int loop;
bool retry_uncached;
int cached;
u64 max_extent_size;
u64 total_free_space;
u64 found_offset;
u64 hint_byte;
enum btrfs_extent_allocation_policy policy;
bool hinted;
enum btrfs_block_group_size_class size_class;
};
typedef void (*btf_trace_find_free_extent_search_loop)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *);
typedef void (*btf_trace_find_free_extent_have_block_group)(void *, const struct btrfs_root *, const struct find_free_extent_ctl *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_reserve_extent)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *);
typedef void (*btf_trace_btrfs_reserve_extent_cluster)(void *, const struct btrfs_block_group *, const struct find_free_extent_ctl *);
typedef void (*btf_trace_btrfs_find_cluster)(void *, const struct btrfs_block_group *, u64, u64, u64, u64);
typedef void (*btf_trace_btrfs_failed_cluster_setup)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_setup_cluster)(void *, const struct btrfs_block_group *, const struct btrfs_free_cluster *, u64, int);
typedef void (*btf_trace_alloc_extent_state)(void *, const struct extent_state *, gfp_t, unsigned long);
typedef void (*btf_trace_free_extent_state)(void *, const struct extent_state *, unsigned long);
typedef void (*btf_trace_btrfs_work_queued)(void *, const struct btrfs_work *);
typedef void (*btf_trace_btrfs_work_sched)(void *, const struct btrfs_work *);
typedef void (*btf_trace_btrfs_all_work_done)(void *, const struct btrfs_fs_info *, const void *);
typedef void (*btf_trace_btrfs_ordered_sched)(void *, const struct btrfs_work *);
typedef void (*btf_trace_btrfs_workqueue_alloc)(void *, const struct btrfs_workqueue *, const char *);
typedef void (*btf_trace_btrfs_workqueue_destroy)(void *, const struct btrfs_workqueue *);
typedef void (*btf_trace_btrfs_qgroup_reserve_data)(void *, const struct inode *, u64, u64, u64, int);
typedef void (*btf_trace_btrfs_qgroup_release_data)(void *, const struct inode *, u64, u64, u64, int);
typedef void (*btf_trace_btrfs_qgroup_account_extents)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *);
typedef void (*btf_trace_btrfs_qgroup_trace_extent)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup_extent_record *);
typedef void (*btf_trace_qgroup_num_dirty_extents)(void *, const struct btrfs_fs_info *, u64, u64);
typedef void (*btf_trace_btrfs_qgroup_account_extent)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64, u64);
typedef void (*btf_trace_qgroup_update_counters)(void *, const struct btrfs_fs_info *, const struct btrfs_qgroup *, u64, u64);
typedef void (*btf_trace_qgroup_update_reserve)(void *, struct btrfs_fs_info *, struct btrfs_qgroup *, s64, int);
typedef void (*btf_trace_qgroup_meta_reserve)(void *, struct btrfs_root *, s64, int);
typedef void (*btf_trace_qgroup_meta_convert)(void *, struct btrfs_root *, s64);
typedef void (*btf_trace_qgroup_meta_free_all_pertrans)(void *, struct btrfs_root *);
typedef void (*btf_trace_btrfs_prelim_ref_merge)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64);
typedef void (*btf_trace_btrfs_prelim_ref_insert)(void *, const struct btrfs_fs_info *, const struct prelim_ref *, const struct prelim_ref *, u64);
typedef void (*btf_trace_btrfs_inode_mod_outstanding_extents)(void *, const struct btrfs_root *, u64, int, unsigned int);
typedef void (*btf_trace_btrfs_remove_block_group)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_add_unused_block_group)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_add_reclaim_block_group)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_reclaim_block_group)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_skip_unused_block_group)(void *, const struct btrfs_block_group *);
typedef void (*btf_trace_btrfs_set_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int);
typedef void (*btf_trace_btrfs_clear_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int);
typedef void (*btf_trace_btrfs_convert_extent_bit)(void *, const struct extent_io_tree *, u64, u64, unsigned int, unsigned int);
typedef void (*btf_trace_btrfs_done_preemptive_reclaim)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *);
typedef void (*btf_trace_btrfs_fail_all_tickets)(void *, struct btrfs_fs_info *, const struct btrfs_space_info *);
typedef void (*btf_trace_btrfs_reserve_ticket)(void *, const struct btrfs_fs_info *, u64, u64, u64, int, int);
typedef void (*btf_trace_btrfs_tree_read_lock)(void *, const struct extent_buffer *, u64);
typedef void (*btf_trace_btrfs_tree_lock)(void *, const struct extent_buffer *, u64);
typedef void (*btf_trace_btrfs_tree_unlock)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_tree_read_unlock)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_tree_read_unlock_blocking)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_set_lock_blocking_read)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_set_lock_blocking_write)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_try_tree_read_lock)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_try_tree_write_lock)(void *, const struct extent_buffer *);
typedef void (*btf_trace_btrfs_tree_read_lock_atomic)(void *, const struct extent_buffer *);
typedef void (*btf_trace_update_bytes_may_use)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64);
typedef void (*btf_trace_update_bytes_pinned)(void *, const struct btrfs_fs_info *, const struct btrfs_space_info *, u64, s64);
typedef void (*btf_trace_raid56_read)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *);
typedef void (*btf_trace_raid56_write)(void *, const struct btrfs_raid_bio *, const struct bio *, const struct raid56_bio_trace_info *);
typedef void (*btf_trace_btrfs_insert_one_raid_extent)(void *, const struct btrfs_fs_info *, u64, u64, int);
typedef void (*btf_trace_btrfs_raid_extent_delete)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64);
typedef void (*btf_trace_btrfs_get_raid_extent_offset)(void *, const struct btrfs_fs_info *, u64, u64, u64, u64);
struct init_sequence {
int (*init_func)();
void (*exit_func)();
};
enum {
Opt_acl___2 = 0,
Opt_clear_cache = 1,
Opt_commit_interval = 2,
Opt_compress = 3,
Opt_compress_force = 4,
Opt_compress_force_type = 5,
Opt_compress_type = 6,
Opt_degraded = 7,
Opt_device = 8,
Opt_fatal_errors = 9,
Opt_flushoncommit = 10,
Opt_max_inline = 11,
Opt_barrier___2 = 12,
Opt_datacow = 13,
Opt_datasum = 14,
Opt_defrag = 15,
Opt_discard___3 = 16,
Opt_discard_mode = 17,
Opt_ratio = 18,
Opt_rescan_uuid_tree = 19,
Opt_skip_balance = 20,
Opt_space_cache = 21,
Opt_space_cache_version = 22,
Opt_ssd = 23,
Opt_ssd_spread = 24,
Opt_subvol = 25,
Opt_subvol_empty = 26,
Opt_subvolid = 27,
Opt_thread_pool = 28,
Opt_treelog = 29,
Opt_user_subvol_rm_allowed = 30,
Opt_rescue = 31,
Opt_usebackuproot = 32,
Opt_nologreplay = 33,
Opt_ignorebadroots = 34,
Opt_ignoredatacsums = 35,
Opt_rescue_all = 36,
Opt_enospc_debug = 37,
Opt_err___4 = 38,
};
enum {
Opt_discard_sync = 0,
Opt_discard_async = 1,
};
enum {
Opt_space_cache_v1 = 0,
Opt_space_cache_v2 = 1,
};
enum {
Opt_fatal_errors_panic = 0,
Opt_fatal_errors_bug = 1,
};
enum {
Opt_rescue_usebackuproot = 0,
Opt_rescue_nologreplay = 1,
Opt_rescue_ignorebadroots = 2,
Opt_rescue_ignoredatacsums = 3,
Opt_rescue_parameter_all = 4,
};
struct trace_event_raw_btrfs_transaction_commit {
struct trace_entry ent;
u8 fsid[16];
u64 generation;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs__inode {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
u64 blocks;
u64 disk_i_size;
u64 generation;
u64 last_trans;
u64 logged_trans;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_get_extent {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 ino;
u64 start;
u64 len;
u64 orig_start;
u64 block_start;
u64 block_len;
u32 flags;
int refs;
char __data[0];
};
struct trace_event_raw_btrfs_handle_em_exist {
struct trace_entry ent;
u8 fsid[16];
u64 e_start;
u64 e_len;
u64 map_start;
u64 map_len;
u64 start;
u64 len;
char __data[0];
};
struct trace_event_raw_btrfs__file_extent_item_regular {
struct trace_entry ent;
u8 fsid[16];
u64 root_obj;
u64 ino;
loff_t isize;
u64 disk_isize;
u64 num_bytes;
u64 ram_bytes;
u64 disk_bytenr;
u64 disk_num_bytes;
u64 extent_offset;
u8 extent_type;
u8 compression;
u64 extent_start;
u64 extent_end;
char __data[0];
};
struct trace_event_raw_btrfs__file_extent_item_inline {
struct trace_entry ent;
u8 fsid[16];
u64 root_obj;
u64 ino;
loff_t isize;
u64 disk_isize;
u8 extent_type;
u8 compression;
u64 extent_start;
u64 extent_end;
char __data[0];
};
struct trace_event_raw_btrfs__ordered_extent {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
u64 file_offset;
u64 start;
u64 len;
u64 disk_len;
u64 bytes_left;
unsigned long flags;
int compress_type;
int refs;
u64 root_objectid;
u64 truncated_len;
char __data[0];
};
struct trace_event_raw_btrfs_finish_ordered_extent {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
u64 start;
u64 len;
bool uptodate;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs__writepage {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
unsigned long index;
long nr_to_write;
long pages_skipped;
loff_t range_start;
loff_t range_end;
char for_kupdate;
char for_reclaim;
char range_cyclic;
unsigned long writeback_index;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_writepage_end_io_hook {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
u64 start;
u64 end;
int uptodate;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_sync_file {
struct trace_entry ent;
u8 fsid[16];
u64 ino;
u64 parent;
int datasync;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_sync_fs {
struct trace_entry ent;
u8 fsid[16];
int wait;
char __data[0];
};
struct trace_event_raw_btrfs_add_block_group {
struct trace_entry ent;
u8 fsid[16];
u64 offset;
u64 size;
u64 flags;
u64 bytes_used;
u64 bytes_super;
int create;
char __data[0];
};
struct trace_event_raw_btrfs_delayed_tree_ref {
struct trace_entry ent;
u8 fsid[16];
u64 bytenr;
u64 num_bytes;
int action;
u64 parent;
u64 ref_root;
int level;
int type;
u64 seq;
char __data[0];
};
struct trace_event_raw_btrfs_delayed_data_ref {
struct trace_entry ent;
u8 fsid[16];
u64 bytenr;
u64 num_bytes;
int action;
u64 parent;
u64 ref_root;
u64 owner;
u64 offset;
int type;
u64 seq;
char __data[0];
};
struct trace_event_raw_btrfs_delayed_ref_head {
struct trace_entry ent;
u8 fsid[16];
u64 bytenr;
u64 num_bytes;
int action;
int is_data;
char __data[0];
};
struct trace_event_raw_btrfs__chunk {
struct trace_entry ent;
u8 fsid[16];
int num_stripes;
u64 type;
int sub_stripes;
u64 offset;
u64 size;
u64 root_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_cow_block {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 buf_start;
int refs;
u64 cow_start;
int buf_level;
int cow_level;
char __data[0];
};
struct trace_event_raw_btrfs_space_reservation {
struct trace_entry ent;
u8 fsid[16];
u32 __data_loc_type;
u64 val;
u64 bytes;
int reserve;
char __data[0];
};
struct trace_event_raw_btrfs_trigger_flush {
struct trace_entry ent;
u8 fsid[16];
u64 flags;
u64 bytes;
int flush;
u32 __data_loc_reason;
char __data[0];
};
struct trace_event_raw_btrfs_flush_space {
struct trace_entry ent;
u8 fsid[16];
u64 flags;
u64 num_bytes;
int state;
int ret;
bool for_preempt;
char __data[0];
};
struct trace_event_raw_btrfs__reserved_extent {
struct trace_entry ent;
u8 fsid[16];
u64 start;
u64 len;
char __data[0];
};
struct trace_event_raw_find_free_extent {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 num_bytes;
u64 empty_size;
u64 flags;
char __data[0];
};
struct trace_event_raw_find_free_extent_search_loop {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 num_bytes;
u64 empty_size;
u64 flags;
u64 loop;
char __data[0];
};
struct trace_event_raw_find_free_extent_have_block_group {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 num_bytes;
u64 empty_size;
u64 flags;
u64 loop;
bool hinted;
u64 bg_start;
u64 bg_flags;
char __data[0];
};
struct trace_event_raw_btrfs__reserve_extent {
struct trace_entry ent;
u8 fsid[16];
u64 bg_objectid;
u64 flags;
int bg_size_class;
u64 start;
u64 len;
u64 loop;
bool hinted;
int size_class;
char __data[0];
};
struct trace_event_raw_btrfs_find_cluster {
struct trace_entry ent;
u8 fsid[16];
u64 bg_objectid;
u64 flags;
u64 start;
u64 bytes;
u64 empty_size;
u64 min_bytes;
char __data[0];
};
struct trace_event_raw_btrfs_failed_cluster_setup {
struct trace_entry ent;
u8 fsid[16];
u64 bg_objectid;
char __data[0];
};
struct trace_event_raw_btrfs_setup_cluster {
struct trace_entry ent;
u8 fsid[16];
u64 bg_objectid;
u64 flags;
u64 start;
u64 max_size;
u64 size;
int bitmap;
char __data[0];
};
struct trace_event_raw_alloc_extent_state {
struct trace_entry ent;
const struct extent_state *state;
unsigned long mask;
const void *ip;
char __data[0];
};
struct trace_event_raw_free_extent_state {
struct trace_entry ent;
const struct extent_state *state;
const void *ip;
char __data[0];
};
struct trace_event_raw_btrfs__work {
struct trace_entry ent;
u8 fsid[16];
const void *work;
const void *wq;
const void *func;
const void *ordered_func;
const void *normal_work;
char __data[0];
};
struct trace_event_raw_btrfs__work__done {
struct trace_entry ent;
u8 fsid[16];
const void *wtag;
char __data[0];
};
struct trace_event_raw_btrfs_workqueue {
struct trace_entry ent;
u8 fsid[16];
const void *wq;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_btrfs_workqueue_done {
struct trace_entry ent;
u8 fsid[16];
const void *wq;
char __data[0];
};
struct trace_event_raw_btrfs__qgroup_rsv_data {
struct trace_entry ent;
u8 fsid[16];
u64 rootid;
u64 ino;
u64 start;
u64 len;
u64 reserved;
int op;
char __data[0];
};
struct trace_event_raw_btrfs_qgroup_extent {
struct trace_entry ent;
u8 fsid[16];
u64 bytenr;
u64 num_bytes;
char __data[0];
};
struct trace_event_raw_qgroup_num_dirty_extents {
struct trace_entry ent;
u8 fsid[16];
u64 transid;
u64 num_dirty_extents;
char __data[0];
};
struct trace_event_raw_btrfs_qgroup_account_extent {
struct trace_entry ent;
u8 fsid[16];
u64 transid;
u64 bytenr;
u64 num_bytes;
u64 nr_old_roots;
u64 nr_new_roots;
char __data[0];
};
struct trace_event_raw_qgroup_update_counters {
struct trace_entry ent;
u8 fsid[16];
u64 qgid;
u64 old_rfer;
u64 old_excl;
u64 cur_old_count;
u64 cur_new_count;
char __data[0];
};
struct trace_event_raw_qgroup_update_reserve {
struct trace_entry ent;
u8 fsid[16];
u64 qgid;
u64 cur_reserved;
s64 diff;
int type;
char __data[0];
};
struct trace_event_raw_qgroup_meta_reserve {
struct trace_entry ent;
u8 fsid[16];
u64 refroot;
s64 diff;
int type;
char __data[0];
};
struct trace_event_raw_qgroup_meta_convert {
struct trace_entry ent;
u8 fsid[16];
u64 refroot;
s64 diff;
char __data[0];
};
struct trace_event_raw_qgroup_meta_free_all_pertrans {
struct trace_entry ent;
u8 fsid[16];
u64 refroot;
s64 diff;
int type;
char __data[0];
};
struct trace_event_raw_btrfs__prelim_ref {
struct trace_entry ent;
u8 fsid[16];
u64 root_id;
u64 objectid;
u8 type;
u64 offset;
int level;
int old_count;
u64 parent;
u64 bytenr;
int mod_count;
u64 tree_size;
char __data[0];
};
struct trace_event_raw_btrfs_inode_mod_outstanding_extents {
struct trace_entry ent;
u8 fsid[16];
u64 root_objectid;
u64 ino;
int mod;
unsigned int outstanding;
char __data[0];
};
struct trace_event_raw_btrfs__block_group {
struct trace_entry ent;
u8 fsid[16];
u64 bytenr;
u64 len;
u64 used;
u64 flags;
char __data[0];
};
struct trace_event_raw_btrfs_set_extent_bit {
struct trace_entry ent;
u8 fsid[16];
unsigned int owner;
u64 ino;
u64 rootid;
u64 start;
u64 len;
unsigned int set_bits;
char __data[0];
};
struct trace_event_raw_btrfs_clear_extent_bit {
struct trace_entry ent;
u8 fsid[16];
unsigned int owner;
u64 ino;
u64 rootid;
u64 start;
u64 len;
unsigned int clear_bits;
char __data[0];
};
struct trace_event_raw_btrfs_convert_extent_bit {
struct trace_entry ent;
u8 fsid[16];
unsigned int owner;
u64 ino;
u64 rootid;
u64 start;
u64 len;
unsigned int set_bits;
unsigned int clear_bits;
char __data[0];
};
struct trace_event_raw_btrfs_dump_space_info {
struct trace_entry ent;
u8 fsid[16];
u64 flags;
u64 total_bytes;
u64 bytes_used;
u64 bytes_pinned;
u64 bytes_reserved;
u64 bytes_may_use;
u64 bytes_readonly;
u64 reclaim_size;
int clamp;
u64 global_reserved;
u64 trans_reserved;
u64 delayed_refs_reserved;
u64 delayed_reserved;
u64 free_chunk_space;
u64 delalloc_bytes;
u64 ordered_bytes;
char __data[0];
};
struct trace_event_raw_btrfs_reserve_ticket {
struct trace_entry ent;
u8 fsid[16];
u64 flags;
u64 bytes;
u64 start_ns;
int flush;
int error;
char __data[0];
};
struct trace_event_raw_btrfs_sleep_tree_lock {
struct trace_entry ent;
u8 fsid[16];
u64 block;
u64 generation;
u64 start_ns;
u64 end_ns;
u64 diff_ns;
u64 owner;
int is_log_tree;
char __data[0];
};
struct trace_event_raw_btrfs_locking_events {
struct trace_entry ent;
u8 fsid[16];
u64 block;
u64 generation;
u64 owner;
int is_log_tree;
char __data[0];
};
struct trace_event_raw_btrfs__space_info_update {
struct trace_entry ent;
u8 fsid[16];
u64 type;
u64 old;
s64 diff;
char __data[0];
};
struct trace_event_raw_btrfs_raid56_bio {
struct trace_entry ent;
u8 fsid[16];
u64 full_stripe;
u64 physical;
u64 devid;
u32 offset;
u32 len;
u8 opf;
u8 total_stripes;
u8 real_stripes;
u8 nr_data;
u8 stripe_nr;
char __data[0];
};
struct trace_event_raw_btrfs_insert_one_raid_extent {
struct trace_entry ent;
u8 fsid[16];
u64 logical;
u64 length;
int num_stripes;
char __data[0];
};
struct trace_event_raw_btrfs_raid_extent_delete {
struct trace_entry ent;
u8 fsid[16];
u64 start;
u64 end;
u64 found_start;
u64 found_end;
char __data[0];
};
struct trace_event_raw_btrfs_get_raid_extent_offset {
struct trace_entry ent;
u8 fsid[16];
u64 logical;
u64 length;
u64 physical;
u64 devid;
char __data[0];
};
struct trace_event_data_offsets_btrfs_space_reservation {
u32 type;
const void *type_ptr_;
};
struct trace_event_data_offsets_btrfs_trigger_flush {
u32 reason;
const void *reason_ptr_;
};
struct trace_event_data_offsets_btrfs_workqueue {
u32 name;
const void *name_ptr_;
};
struct btrfs_fs_context {
char *subvol_name;
u64 subvol_objectid;
u64 max_inline;
u32 commit_interval;
u32 metadata_ratio;
u32 thread_pool_size;
unsigned long mount_opt;
unsigned long compress_type: 4;
unsigned int compress_level;
refcount_t refs;
};
struct trace_event_data_offsets_btrfs_transaction_commit {};
struct trace_event_data_offsets_btrfs__inode {};
struct trace_event_data_offsets_btrfs_get_extent {};
struct trace_event_data_offsets_btrfs_handle_em_exist {};
struct trace_event_data_offsets_btrfs__file_extent_item_regular {};
struct trace_event_data_offsets_btrfs__file_extent_item_inline {};
struct trace_event_data_offsets_btrfs__ordered_extent {};
struct trace_event_data_offsets_btrfs_finish_ordered_extent {};
struct trace_event_data_offsets_btrfs__writepage {};
struct trace_event_data_offsets_btrfs_writepage_end_io_hook {};
struct trace_event_data_offsets_btrfs_sync_file {};
struct trace_event_data_offsets_btrfs_sync_fs {};
struct trace_event_data_offsets_btrfs_add_block_group {};
struct trace_event_data_offsets_btrfs_delayed_tree_ref {};
struct trace_event_data_offsets_btrfs_delayed_data_ref {};
struct trace_event_data_offsets_btrfs_delayed_ref_head {};
struct trace_event_data_offsets_btrfs__chunk {};
struct trace_event_data_offsets_btrfs_cow_block {};
struct trace_event_data_offsets_btrfs_flush_space {};
struct trace_event_data_offsets_btrfs__reserved_extent {};
struct trace_event_data_offsets_find_free_extent {};
struct trace_event_data_offsets_find_free_extent_search_loop {};
struct trace_event_data_offsets_find_free_extent_have_block_group {};
struct trace_event_data_offsets_btrfs__reserve_extent {};
struct trace_event_data_offsets_btrfs_find_cluster {};
struct trace_event_data_offsets_btrfs_failed_cluster_setup {};
struct trace_event_data_offsets_btrfs_setup_cluster {};
struct trace_event_data_offsets_alloc_extent_state {};
struct trace_event_data_offsets_free_extent_state {};
struct trace_event_data_offsets_btrfs__work {};
struct trace_event_data_offsets_btrfs__work__done {};
struct trace_event_data_offsets_btrfs_workqueue_done {};
struct trace_event_data_offsets_btrfs__qgroup_rsv_data {};
struct trace_event_data_offsets_btrfs_qgroup_extent {};
struct trace_event_data_offsets_qgroup_num_dirty_extents {};
struct trace_event_data_offsets_btrfs_qgroup_account_extent {};
struct trace_event_data_offsets_qgroup_update_counters {};
struct trace_event_data_offsets_qgroup_update_reserve {};
struct trace_event_data_offsets_qgroup_meta_reserve {};
struct trace_event_data_offsets_qgroup_meta_convert {};
struct trace_event_data_offsets_qgroup_meta_free_all_pertrans {};
struct trace_event_data_offsets_btrfs__prelim_ref {};
struct trace_event_data_offsets_btrfs_inode_mod_outstanding_extents {};
struct trace_event_data_offsets_btrfs__block_group {};
struct trace_event_data_offsets_btrfs_set_extent_bit {};
struct trace_event_data_offsets_btrfs_clear_extent_bit {};
struct trace_event_data_offsets_btrfs_convert_extent_bit {};
struct trace_event_data_offsets_btrfs_dump_space_info {};
struct trace_event_data_offsets_btrfs_reserve_ticket {};
struct trace_event_data_offsets_btrfs_sleep_tree_lock {};
struct trace_event_data_offsets_btrfs_locking_events {};
struct trace_event_data_offsets_btrfs__space_info_update {};
struct trace_event_data_offsets_btrfs_raid56_bio {};
struct trace_event_data_offsets_btrfs_insert_one_raid_extent {};
struct trace_event_data_offsets_btrfs_raid_extent_delete {};
struct trace_event_data_offsets_btrfs_get_raid_extent_offset {};
struct device_attach_data {
struct device *dev;
bool check_async;
bool want_async;
bool have_async;
};
enum {
K2_FLAG_SATA_8_PORTS = 16777216,
K2_FLAG_NO_ATAPI_DMA = 33554432,
K2_FLAG_BAR_POS_3 = 67108864,
K2_SATA_TF_CMD_OFFSET = 0,
K2_SATA_TF_DATA_OFFSET = 0,
K2_SATA_TF_ERROR_OFFSET = 4,
K2_SATA_TF_NSECT_OFFSET = 8,
K2_SATA_TF_LBAL_OFFSET = 12,
K2_SATA_TF_LBAM_OFFSET = 16,
K2_SATA_TF_LBAH_OFFSET = 20,
K2_SATA_TF_DEVICE_OFFSET = 24,
K2_SATA_TF_CMDSTAT_OFFSET = 28,
K2_SATA_TF_CTL_OFFSET = 32,
K2_SATA_DMA_CMD_OFFSET = 48,
K2_SATA_SCR_STATUS_OFFSET = 64,
K2_SATA_SCR_ERROR_OFFSET = 68,
K2_SATA_SCR_CONTROL_OFFSET = 72,
K2_SATA_SICR1_OFFSET = 128,
K2_SATA_SICR2_OFFSET = 132,
K2_SATA_SIM_OFFSET = 136,
K2_SATA_PORT_OFFSET = 256,
chip_svw4 = 0,
chip_svw8 = 1,
chip_svw42 = 2,
chip_svw43 = 3,
};
enum bt_coex_prio_table_events {
BT_COEX_PRIO_TBL_EVT_INIT_CALIB1 = 0,
BT_COEX_PRIO_TBL_EVT_INIT_CALIB2 = 1,
BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW1 = 2,
BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_LOW2 = 3,
BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH1 = 4,
BT_COEX_PRIO_TBL_EVT_PERIODIC_CALIB_HIGH2 = 5,
BT_COEX_PRIO_TBL_EVT_DTIM = 6,
BT_COEX_PRIO_TBL_EVT_SCAN52 = 7,
BT_COEX_PRIO_TBL_EVT_SCAN24 = 8,
BT_COEX_PRIO_TBL_EVT_RESERVED0 = 9,
BT_COEX_PRIO_TBL_EVT_RESERVED1 = 10,
BT_COEX_PRIO_TBL_EVT_RESERVED2 = 11,
BT_COEX_PRIO_TBL_EVT_RESERVED3 = 12,
BT_COEX_PRIO_TBL_EVT_RESERVED4 = 13,
BT_COEX_PRIO_TBL_EVT_RESERVED5 = 14,
BT_COEX_PRIO_TBL_EVT_RESERVED6 = 15,
BT_COEX_PRIO_TBL_EVT_MAX = 16,
};
enum iwl_ucode_calib_cfg {
IWL_CALIB_CFG_RX_BB_IDX = 1,
IWL_CALIB_CFG_DC_IDX = 2,
IWL_CALIB_CFG_LO_IDX = 4,
IWL_CALIB_CFG_TX_IQ_IDX = 8,
IWL_CALIB_CFG_RX_IQ_IDX = 16,
IWL_CALIB_CFG_NOISE_IDX = 32,
IWL_CALIB_CFG_CRYSTAL_IDX = 64,
IWL_CALIB_CFG_TEMPERATURE_IDX = 128,
IWL_CALIB_CFG_PAPD_IDX = 256,
IWL_CALIB_CFG_SENSITIVITY_IDX = 512,
IWL_CALIB_CFG_TX_PWR_IDX = 1024,
};
enum {
IWL_PHY_CALIBRATE_DC_CMD = 8,
IWL_PHY_CALIBRATE_LO_CMD = 9,
IWL_PHY_CALIBRATE_TX_IQ_CMD = 11,
IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD = 15,
IWL_PHY_CALIBRATE_BASE_BAND_CMD = 16,
IWL_PHY_CALIBRATE_TX_IQ_PERD_CMD = 17,
IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD = 18,
};
struct iwl_bt_coex_prot_env_cmd {
u8 action;
u8 type;
u8 reserved[2];
};
struct iwl_calib_cfg_elmnt_s {
__le32 is_enable;
__le32 start;
__le32 send_res;
__le32 apply_res;
__le32 reserved;
};
struct iwl_calib_cfg_status_s {
struct iwl_calib_cfg_elmnt_s once;
struct iwl_calib_cfg_elmnt_s perd;
__le32 flags;
};
struct iwl_calib_cfg_cmd {
struct iwl_calib_cfg_status_s ucd_calib_cfg;
struct iwl_calib_cfg_status_s drv_calib_cfg;
__le32 reserved1;
};
struct iwl_calib_temperature_offset_v2_cmd {
struct iwl_calib_hdr hdr;
__le16 radio_sensor_offset_high;
__le16 radio_sensor_offset_low;
__le16 burntVoltageRef;
__le16 reserved;
};
struct iwl_calib_temperature_offset_cmd {
struct iwl_calib_hdr hdr;
__le16 radio_sensor_offset;
__le16 reserved;
};
struct iwl_wimax_coex_event_entry {
u8 request_prio;
u8 win_medium_prio;
u8 reserved;
u8 flags;
};
struct iwl_wimax_coex_cmd {
u8 flags;
u8 reserved[3];
struct iwl_wimax_coex_event_entry sta_prio[16];
};
struct iwl_calib_xtal_freq_cmd {
struct iwl_calib_hdr hdr;
u8 cap_pin1;
u8 cap_pin2;
u8 pad[2];
};
struct iwl_bt_coex_prio_table_cmd {
u8 prio_tbl[16];
};
struct iwl_alive_data {
bool valid;
u8 subtype;
};
struct iwl_alive_resp {
u8 ucode_minor;
u8 ucode_major;
__le16 reserved1;
u8 sw_rev[8];
u8 ver_type;
u8 ver_subtype;
__le16 reserved2;
__le32 log_event_table_ptr;
__le32 error_event_table_ptr;
__le32 timestamp;
__le32 is_valid;
};
enum rtw_rfe_fem {
RTW_RFE_IFEM = 0,
RTW_RFE_EFEM = 1,
RTW_RFE_IFEM2G_EFEM5G = 2,
RTW_RFE_NUM = 3,
};
struct cca_ccut;
struct rtw8822b_rfe_info {
const struct cca_ccut *cca_ccut_2g;
const struct cca_ccut *cca_ccut_5g;
enum rtw_rfe_fem fem;
bool ifem_ext;
void (*rtw_set_channel_rfe)(struct rtw_dev *, u8);
};
struct cca_ccut {
u32 reg82c[4];
u32 reg830[4];
u32 reg838[4];
};
enum {
CCUT_IDX_1R_2G = 0,
CCUT_IDX_2R_2G = 1,
CCUT_IDX_1R_5G = 2,
CCUT_IDX_2R_5G = 3,
CCUT_IDX_NR = 4,
};
enum rtw_chip_ver {
RTW_CHIP_VER_CUT_A = 0,
RTW_CHIP_VER_CUT_B = 1,
RTW_CHIP_VER_CUT_C = 2,
RTW_CHIP_VER_CUT_D = 3,
RTW_CHIP_VER_CUT_E = 4,
RTW_CHIP_VER_CUT_F = 5,
RTW_CHIP_VER_CUT_G = 6,
};
struct rtw8822be_efuse {
u8 mac_addr[6];
u8 vender_id[2];
u8 device_id[2];
u8 sub_vender_id[2];
u8 sub_device_id[2];
u8 pmc[2];
u8 exp_device_cap[2];
u8 msi_cap;
u8 ltr_cap;
u8 exp_link_control[2];
u8 link_cap[4];
u8 link_control[2];
u8 serial_number[8];
u8 res0: 2;
u8 ltr_en: 1;
u8 res1: 2;
u8 obff: 2;
char: 1;
u8 res2: 3;
u8 obff_cap: 2;
short: 3;
u8 res3: 4;
u8 res4[3];
u8 class_code[3];
u8 pci_pm_L1_2_supp: 1;
u8 pci_pm_L1_1_supp: 1;
u8 aspm_pm_L1_2_supp: 1;
u8 aspm_pm_L1_1_supp: 1;
u8 L1_pm_substates_supp: 1;
u8 res5: 3;
u8 port_common_mode_restore_time;
u8 port_t_power_on_scale: 2;
u8 res6: 1;
u8 port_t_power_on_value: 5;
u8 res7;
};
struct rtw8822bu_efuse {
u8 res4[4];
u8 usb_optional_function;
u8 res5[30];
u8 res6[2];
u8 serial[11];
u8 vid;
u8 res7;
u8 pid;
u8 res8[4];
u8 mac_addr[6];
u8 res9[2];
u8 vendor_name[7];
u8 res10[2];
u8 device_name[20];
u8 res11[207];
u8 package_type;
u8 res12[4];
};
struct rtw8822bs_efuse {
u8 res4[74];
u8 mac_addr[6];
};
struct rtw8822b_efuse {
__le16 rtl_id;
u8 res0[14];
struct rtw_txpwr_idx txpwr_idx_table[4];
u8 channel_plan;
u8 xtal_k;
u8 thermal_meter;
u8 iqk_lck;
u8 pa_type;
u8 lna_type_2g[2];
u8 lna_type_5g[2];
u8 rf_board_option;
u8 rf_feature_option;
u8 rf_bt_setting;
u8 eeprom_version;
u8 eeprom_customer_id;
u8 tx_bb_swing_setting_2g;
u8 tx_bb_swing_setting_5g;
u8 tx_pwr_calibrate_rate;
u8 rf_antenna_option;
u8 rfe_option;
u8 country_code[2];
u8 res[3];
union {
struct rtw8822be_efuse e;
struct rtw8822bu_efuse u;
struct rtw8822bs_efuse s;
};
};
enum check_states {
check_state_idle = 0,
check_state_run = 1,
check_state_run_q = 2,
check_state_run_pq = 3,
check_state_check_result = 4,
check_state_compute_run = 5,
check_state_compute_result = 6,
};
enum reconstruct_states {
reconstruct_state_idle = 0,
reconstruct_state_prexor_drain_run = 1,
reconstruct_state_drain_run = 2,
reconstruct_state_run = 3,
reconstruct_state_prexor_drain_result = 4,
reconstruct_state_drain_result = 5,
reconstruct_state_result = 6,
};
enum r5dev_flags {
R5_UPTODATE = 0,
R5_LOCKED = 1,
R5_DOUBLE_LOCKED = 2,
R5_OVERWRITE = 3,
R5_Insync = 4,
R5_Wantread = 5,
R5_Wantwrite = 6,
R5_Overlap = 7,
R5_ReadNoMerge = 8,
R5_ReadError = 9,
R5_ReWrite = 10,
R5_Expanded = 11,
R5_Wantcompute = 12,
R5_Wantfill = 13,
R5_Wantdrain = 14,
R5_WantFUA = 15,
R5_SyncIO = 16,
R5_WriteError = 17,
R5_MadeGood = 18,
R5_ReadRepl = 19,
R5_MadeGoodRepl = 20,
R5_NeedReplace = 21,
R5_WantReplace = 22,
R5_Discard = 23,
R5_SkipCopy = 24,
R5_InJournal = 25,
R5_OrigPageUPTDODATE = 26,
};
enum {
STRIPE_ACTIVE = 0,
STRIPE_HANDLE = 1,
STRIPE_SYNC_REQUESTED = 2,
STRIPE_SYNCING = 3,
STRIPE_INSYNC = 4,
STRIPE_REPLACED = 5,
STRIPE_PREREAD_ACTIVE = 6,
STRIPE_DELAYED = 7,
STRIPE_DEGRADED = 8,
STRIPE_BIT_DELAY = 9,
STRIPE_EXPANDING = 10,
STRIPE_EXPAND_SOURCE = 11,
STRIPE_EXPAND_READY = 12,
STRIPE_IO_STARTED = 13,
STRIPE_FULL_WRITE = 14,
STRIPE_BIOFILL_RUN = 15,
STRIPE_COMPUTE_RUN = 16,
STRIPE_ON_UNPLUG_LIST = 17,
STRIPE_DISCARD = 18,
STRIPE_ON_RELEASE_LIST = 19,
STRIPE_BATCH_READY = 20,
STRIPE_BATCH_ERR = 21,
STRIPE_BITMAP_PENDING = 22,
STRIPE_LOG_TRAPPED = 23,
STRIPE_R5C_CACHING = 24,
STRIPE_R5C_PARTIAL_STRIPE = 25,
STRIPE_R5C_FULL_STRIPE = 26,
STRIPE_R5C_PREFLUSH = 27,
};
struct stripe_operations {
int target;
int target2;
enum sum_check_flags zero_sum_result;
};
struct r5dev {
struct bio req;
struct bio rreq;
struct bio_vec vec;
struct bio_vec rvec;
struct page *page;
struct page *orig_page;
unsigned int offset;
struct bio *toread;
struct bio *read;
struct bio *towrite;
struct bio *written;
sector_t sector;
unsigned long flags;
u32 log_checksum;
unsigned short write_hint;
};
struct r5conf;
struct r5worker_group;
struct r5l_io_unit;
struct ppl_io_unit;
struct stripe_head {
struct hlist_node hash;
struct list_head lru;
struct llist_node release_list;
struct r5conf *raid_conf;
short generation;
sector_t sector;
short pd_idx;
short qd_idx;
short ddf_layout;
short hash_lock_index;
unsigned long state;
atomic_t count;
int bm_seq;
int disks;
int overwrite_disks;
enum check_states check_state;
enum reconstruct_states reconstruct_state;
spinlock_t stripe_lock;
int cpu;
struct r5worker_group *group;
struct stripe_head *batch_head;
spinlock_t batch_lock;
struct list_head batch_list;
union {
struct r5l_io_unit *log_io;
struct ppl_io_unit *ppl_io;
};
struct list_head log_list;
sector_t log_start;
struct list_head r5c;
struct page *ppl_page;
struct stripe_operations ops;
struct r5dev dev[0];
};
struct raid5_percpu;
struct disk_info;
struct r5l_log;
struct r5pending_data;
struct r5conf {
struct hlist_head *stripe_hashtbl;
spinlock_t hash_locks[8];
struct mddev *mddev;
int chunk_sectors;
int level;
int algorithm;
int rmw_level;
int max_degraded;
int raid_disks;
int max_nr_stripes;
int min_nr_stripes;
sector_t reshape_progress;
sector_t reshape_safe;
int previous_raid_disks;
int prev_chunk_sectors;
int prev_algo;
short generation;
seqcount_spinlock_t gen_lock;
unsigned long reshape_checkpoint;
long long min_offset_diff;
struct list_head handle_list;
struct list_head loprio_list;
struct list_head hold_list;
struct list_head delayed_list;
struct list_head bitmap_list;
struct bio *retry_read_aligned;
unsigned int retry_read_offset;
struct bio *retry_read_aligned_list;
atomic_t preread_active_stripes;
atomic_t active_aligned_reads;
atomic_t pending_full_writes;
int bypass_count;
int bypass_threshold;
int skip_copy;
struct list_head *last_hold;
atomic_t reshape_stripes;
int active_name;
char cache_name[64];
struct kmem_cache *slab_cache;
struct mutex cache_size_mutex;
int seq_flush;
int seq_write;
int quiesce;
int fullsync;
int recovery_disabled;
struct raid5_percpu __attribute__((btf_type_tag("percpu"))) *percpu;
int scribble_disks;
int scribble_sectors;
struct hlist_node node;
atomic_t active_stripes;
struct list_head inactive_list[8];
atomic_t r5c_cached_full_stripes;
struct list_head r5c_full_stripe_list;
atomic_t r5c_cached_partial_stripes;
struct list_head r5c_partial_stripe_list;
atomic_t r5c_flushing_full_stripes;
atomic_t r5c_flushing_partial_stripes;
atomic_t empty_inactive_list_nr;
struct llist_head released_stripes;
wait_queue_head_t wait_for_quiescent;
wait_queue_head_t wait_for_stripe;
wait_queue_head_t wait_for_overlap;
unsigned long cache_state;
struct shrinker *shrinker;
int pool_size;
spinlock_t device_lock;
struct disk_info *disks;
struct bio_set bio_split;
struct md_thread __attribute__((btf_type_tag("rcu"))) *thread;
struct list_head temp_inactive_list[8];
struct r5worker_group *worker_groups;
int group_cnt;
int worker_cnt_per_group;
struct r5l_log *log;
void *log_private;
spinlock_t pending_bios_lock;
bool batch_bio_dispatch;
struct r5pending_data *pending_data;
struct list_head free_list;
struct list_head pending_list;
int pending_data_cnt;
struct r5pending_data *next_pending_data;
};
struct raid5_percpu {
struct page *spare_page;
void *scribble;
int scribble_obj_size;
local_lock_t lock;
};
struct disk_info {
struct md_rdev *rdev;
struct md_rdev *replacement;
struct page *extra_page;
};
struct r5worker;
struct r5worker_group {
struct list_head handle_list;
struct list_head loprio_list;
struct r5conf *conf;
struct r5worker *workers;
int stripes_cnt;
};
struct r5worker {
struct work_struct work;
struct r5worker_group *group;
struct list_head temp_inactive_list[8];
bool working;
};
struct r5pending_data {
struct list_head sibling;
sector_t sector;
struct bio_list bios;
};
struct ppl_log;
struct ppl_io_unit {
struct ppl_log *log;
struct page *header_page;
unsigned int entries_count;
unsigned int pp_size;
u64 seq;
struct list_head log_sibling;
struct list_head stripe_list;
atomic_t pending_stripes;
atomic_t pending_flushes;
bool submitted;
struct bio bio;
struct bio_vec biovec[32];
};
struct ppl_conf;
struct ppl_log {
struct ppl_conf *ppl_conf;
struct md_rdev *rdev;
struct mutex io_mutex;
struct ppl_io_unit *current_io;
spinlock_t io_list_lock;
struct list_head io_list;
sector_t next_io_sector;
unsigned int entry_space;
bool use_multippl;
bool wb_cache_on;
unsigned long disk_flush_bitmap;
};
struct ppl_conf {
struct mddev *mddev;
struct ppl_log *child_logs;
int count;
int block_size;
u32 signature;
atomic64_t seq;
struct kmem_cache *io_kc;
mempool_t io_pool;
struct bio_set bs;
struct bio_set flush_bs;
int recovered_entries;
int mismatch_count;
struct list_head no_mem_stripes;
spinlock_t no_mem_stripes_lock;
unsigned short write_hint;
};
typedef union {
unsigned long addr;
struct page *page;
dma_addr_t dma;
} addr_conv_t;
struct ppl_header_entry {
__le64 data_sector;
__le32 pp_size;
__le32 data_size;
__le32 parity_disk;
__le32 checksum;
};
struct ppl_header {
__u8 reserved[512];
__le32 signature;
__le32 padding;
__le64 generation;
__le32 entries_count;
__le32 checksum;
struct ppl_header_entry entries[148];
};
enum nft_set_attributes {
NFTA_SET_UNSPEC = 0,
NFTA_SET_TABLE = 1,
NFTA_SET_NAME = 2,
NFTA_SET_FLAGS = 3,
NFTA_SET_KEY_TYPE = 4,
NFTA_SET_KEY_LEN = 5,
NFTA_SET_DATA_TYPE = 6,
NFTA_SET_DATA_LEN = 7,
NFTA_SET_POLICY = 8,
NFTA_SET_DESC = 9,
NFTA_SET_ID = 10,
NFTA_SET_TIMEOUT = 11,
NFTA_SET_GC_INTERVAL = 12,
NFTA_SET_USERDATA = 13,
NFTA_SET_PAD = 14,
NFTA_SET_OBJ_TYPE = 15,
NFTA_SET_HANDLE = 16,
NFTA_SET_EXPR = 17,
NFTA_SET_EXPRESSIONS = 18,
__NFTA_SET_MAX = 19,
};
struct nft_bitmap_elem {
struct nft_elem_priv priv;
struct list_head head;
struct nft_set_ext ext;
};
struct nft_bitmap {
struct list_head list;
u16 bitmap_size;
u8 bitmap[0];
};
struct xt_table_info;
struct xt_table {
struct list_head list;
unsigned int valid_hooks;
struct xt_table_info *private;
struct nf_hook_ops *ops;
struct module *me;
u_int8_t af;
int priority;
const char name[32];
};
struct xt_table_info {
unsigned int size;
unsigned int number;
unsigned int initial_entries;
unsigned int hook_entry[5];
unsigned int underflow[5];
unsigned int stacksize;
void ***jumpstack;
unsigned char entries[0];
};
struct iptable_nat_pernet {
struct nf_hook_ops *nf_nat_ops;
};
struct ipt_replace {
char name[32];
unsigned int valid_hooks;
unsigned int num_entries;
unsigned int size;
unsigned int hook_entry[5];
unsigned int underflow[5];
unsigned int num_counters;
struct xt_counters __attribute__((btf_type_tag("user"))) *counters;
struct ipt_entry entries[0];
};
struct imc_uncore_pci_dev {
__u32 pci_id;
struct pci_driver *driver;
};
enum {
IRQ_STARTUP_NORMAL = 0,
IRQ_STARTUP_MANAGED = 1,
IRQ_STARTUP_ABORT = 2,
};
typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long);
typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long);
struct trace_event_raw_sys_enter {
struct trace_entry ent;
long id;
unsigned long args[6];
char __data[0];
};
struct trace_event_raw_sys_exit {
struct trace_entry ent;
long id;
long ret;
char __data[0];
};
struct trace_event_data_offsets_sys_enter {};
struct trace_event_data_offsets_sys_exit {};
struct bpf_verifier_stack_elem {
struct bpf_verifier_state st;
int insn_idx;
int prev_insn_idx;
struct bpf_verifier_stack_elem *next;
u32 log_pos;
};
struct bpf_kfunc_desc {
struct btf_func_model func_model;
u32 func_id;
s32 imm;
u16 offset;
unsigned long addr;
};
struct bpf_kfunc_desc_tab {
struct bpf_kfunc_desc descs[256];
u32 nr_descs;
};
struct bpf_kfunc_btf {
struct btf *btf;
struct module *module;
u16 offset;
};
struct bpf_kfunc_btf_tab {
struct bpf_kfunc_btf descs[256];
u32 nr_descs;
};
struct bpf_reg_types {
const enum bpf_reg_type types[10];
u32 *btf_id;
};
enum {
INSN_F_FRAMENO_MASK = 7,
INSN_F_SPI_MASK = 63,
INSN_F_SPI_SHIFT = 3,
INSN_F_STACK_ACCESS = 512,
};
enum special_kfunc_type {
KF_bpf_obj_new_impl = 0,
KF_bpf_obj_drop_impl = 1,
KF_bpf_refcount_acquire_impl = 2,
KF_bpf_list_push_front_impl = 3,
KF_bpf_list_push_back_impl = 4,
KF_bpf_list_pop_front = 5,
KF_bpf_list_pop_back = 6,
KF_bpf_cast_to_kern_ctx = 7,
KF_bpf_rdonly_cast = 8,
KF_bpf_rcu_read_lock = 9,
KF_bpf_rcu_read_unlock = 10,
KF_bpf_rbtree_remove = 11,
KF_bpf_rbtree_add_impl = 12,
KF_bpf_rbtree_first = 13,
KF_bpf_dynptr_from_skb = 14,
KF_bpf_dynptr_from_xdp = 15,
KF_bpf_dynptr_slice = 16,
KF_bpf_dynptr_slice_rdwr = 17,
KF_bpf_dynptr_clone = 18,
KF_bpf_percpu_obj_new_impl = 19,
KF_bpf_percpu_obj_drop_impl = 20,
KF_bpf_throw = 21,
KF_bpf_wq_set_callback_impl = 22,
KF_bpf_preempt_disable = 23,
KF_bpf_preempt_enable = 24,
KF_bpf_iter_css_task_new = 25,
};
enum {
DISCOVERED = 16,
EXPLORED = 32,
FALLTHROUGH = 1,
BRANCH = 2,
};
enum {
DONE_EXPLORING = 0,
KEEP_EXPLORING = 1,
};
enum bpf_cond_pseudo_jmp {
BPF_MAY_GOTO = 0,
};
enum reg_arg_type {
SRC_OP = 0,
DST_OP = 1,
DST_OP_NO_MARK = 2,
};
enum exact_level {
NOT_EXACT = 0,
EXACT = 1,
RANGE_WITHIN = 2,
};
enum {
REASON_BOUNDS = -1,
REASON_TYPE = -2,
REASON_PATHS = -3,
REASON_LIMIT = -4,
REASON_STACK = -5,
};
enum bpf_access_src {
ACCESS_DIRECT = 1,
ACCESS_HELPER = 2,
};
enum kfunc_ptr_arg_type {
KF_ARG_PTR_TO_CTX = 0,
KF_ARG_PTR_TO_ALLOC_BTF_ID = 1,
KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2,
KF_ARG_PTR_TO_DYNPTR = 3,
KF_ARG_PTR_TO_ITER = 4,
KF_ARG_PTR_TO_LIST_HEAD = 5,
KF_ARG_PTR_TO_LIST_NODE = 6,
KF_ARG_PTR_TO_BTF_ID = 7,
KF_ARG_PTR_TO_MEM = 8,
KF_ARG_PTR_TO_MEM_SIZE = 9,
KF_ARG_PTR_TO_CALLBACK = 10,
KF_ARG_PTR_TO_RB_ROOT = 11,
KF_ARG_PTR_TO_RB_NODE = 12,
KF_ARG_PTR_TO_NULL = 13,
KF_ARG_PTR_TO_CONST_STR = 14,
KF_ARG_PTR_TO_MAP = 15,
KF_ARG_PTR_TO_WORKQUEUE = 16,
};
enum {
KF_ARG_DYNPTR_ID = 0,
KF_ARG_LIST_HEAD_ID = 1,
KF_ARG_LIST_NODE_ID = 2,
KF_ARG_RB_ROOT_ID = 3,
KF_ARG_RB_NODE_ID = 4,
KF_ARG_WORKQUEUE_ID = 5,
};
enum {
BTF_TRACING_TYPE_TASK = 0,
BTF_TRACING_TYPE_FILE = 1,
BTF_TRACING_TYPE_VMA = 2,
MAX_BTF_TRACING_TYPE = 3,
};
enum {
AT_PKT_END = -1,
BEYOND_PKT_END = -2,
};
struct bpf_iter_meta__safe_trusted {
struct seq_file *seq;
};
struct bpf_iter__task__safe_trusted {
struct bpf_iter_meta *meta;
struct task_struct *task;
};
struct linux_binprm__safe_trusted {
struct file *file;
};
struct file__safe_trusted {
struct inode *f_inode;
};
struct dentry__safe_trusted {
struct inode *d_inode;
};
struct socket__safe_trusted {
struct sock *sk;
};
struct task_struct__safe_rcu {
const cpumask_t *cpus_ptr;
struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups;
struct task_struct __attribute__((btf_type_tag("rcu"))) *real_parent;
struct task_struct *group_leader;
};
struct cgroup__safe_rcu {
struct kernfs_node *kn;
};
struct css_set__safe_rcu {
struct cgroup *dfl_cgrp;
};
struct mm_struct__safe_rcu_or_null {
struct file __attribute__((btf_type_tag("rcu"))) *exe_file;
};
struct sk_buff__safe_rcu_or_null {
struct sock *sk;
};
struct request_sock__safe_rcu_or_null {
struct sock *sk;
};
struct bpf_iter;
typedef void (*bpf_insn_print_t)(void *, const char *, ...);
typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *);
typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64);
struct bpf_insn_cbs {
bpf_insn_print_t cb_print;
bpf_insn_revmap_call_t cb_call;
bpf_insn_print_imm_t cb_imm;
void *private_data;
};
typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *);
struct bpf_kfunc_call_arg_meta {
struct btf *btf;
u32 func_id;
u32 kfunc_flags;
const struct btf_type *func_proto;
const char *func_name;
u32 ref_obj_id;
u8 release_regno;
bool r0_rdonly;
u32 ret_btf_id;
u64 r0_size;
u32 subprogno;
struct {
u64 value;
bool found;
} arg_constant;
struct btf *arg_btf;
u32 arg_btf_id;
bool arg_owning_ref;
struct {
struct btf_field *field;
} arg_list_head;
struct {
struct btf_field *field;
} arg_rbtree_root;
struct {
enum bpf_dynptr_type type;
u32 id;
u32 ref_obj_id;
} initialized_dynptr;
struct {
u8 spi;
u8 frameno;
} iter;
struct {
struct bpf_map *ptr;
int uid;
} map;
u64 mem_size;
};
struct bpf_call_arg_meta {
struct bpf_map *map_ptr;
bool raw_mode;
bool pkt_access;
u8 release_regno;
int regno;
int access_size;
int mem_size;
u64 msize_max_value;
int ref_obj_id;
int dynptr_id;
int map_uid;
int func_id;
struct btf *btf;
u32 btf_id;
struct btf *ret_btf;
u32 ret_btf_id;
u32 subprogno;
struct btf_field *kptr_field;
};
struct bpf_sanitize_info {
struct bpf_insn_aux_data aux;
bool mask_to_left;
};
typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int);
struct pending_reservation {
struct rb_node rb_node;
ext4_lblk_t lclu;
};
struct rsvd_count {
int ndelonly;
bool first_do_lblk_found;
ext4_lblk_t first_do_lblk;
ext4_lblk_t last_do_lblk;
struct extent_status *left_es;
bool partial;
ext4_lblk_t lclu;
};
enum {
__QGROUP_RESERVE_BIT = 0,
QGROUP_RESERVE = 1,
__QGROUP_RESERVE_SEQ = 0,
__QGROUP_RELEASE_BIT = 1,
QGROUP_RELEASE = 2,
__QGROUP_RELEASE_SEQ = 1,
__QGROUP_FREE_BIT = 2,
QGROUP_FREE = 4,
__QGROUP_FREE_SEQ = 2,
};
struct btrfs_qgroup_status_item {
__le64 version;
__le64 generation;
__le64 flags;
__le64 rescan;
__le64 enable_gen;
};
struct btrfs_qgroup_info_item {
__le64 generation;
__le64 rfer;
__le64 rfer_cmpr;
__le64 excl;
__le64 excl_cmpr;
};
struct btrfs_qgroup_limit_item {
__le64 flags;
__le64 max_rfer;
__le64 max_excl;
__le64 rsv_rfer;
__le64 rsv_excl;
};
struct btrfs_qgroup_list {
struct list_head next_group;
struct list_head next_member;
struct btrfs_qgroup *group;
struct btrfs_qgroup *member;
};
struct btrfs_qgroup_swapped_block {
struct rb_node node;
int level;
bool trace_leaf;
u64 subvol_bytenr;
u64 subvol_generation;
u64 reloc_bytenr;
u64 reloc_generation;
u64 last_snapshot;
struct btrfs_key first_key;
};
struct btrfs_squota_delta {
u64 root;
u64 num_bytes;
u64 generation;
bool is_inc;
bool is_data;
};
struct asymmetric_key_ids {
void *id[3];
};
struct x509_parse_context {
struct x509_certificate *cert;
unsigned long data;
const void *key;
size_t key_size;
const void *params;
size_t params_size;
enum OID key_algo;
enum OID last_oid;
enum OID sig_algo;
u8 o_size;
u8 cn_size;
u8 email_size;
u16 o_offset;
u16 cn_offset;
u16 email_offset;
unsigned int raw_akid_size;
const void *raw_akid;
const void *akid_raw_issuer;
unsigned int akid_raw_issuer_size;
};
struct epoll_event {
__poll_t events;
__u64 data;
} __attribute__((packed));
struct io_epoll {
struct file *file;
int epfd;
int op;
int fd;
struct epoll_event event;
};
struct msi_domain_template {
char name[48];
struct irq_chip chip;
struct msi_domain_ops ops;
struct msi_domain_info info;
};
enum msi_domain_ids {
MSI_DEFAULT_DOMAIN = 0,
MSI_SECONDARY_DOMAIN = 1,
MSI_MAX_DEVICE_IRQDOMAINS = 2,
};
enum support_mode {
ALLOW_LEGACY = 0,
DENY_LEGACY = 1,
};
struct acpi_probe_entry;
typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *);
struct acpi_probe_entry {
__u8 id[5];
__u8 type;
acpi_probe_entry_validate_subtbl subtable_valid;
union {
acpi_tbl_table_handler probe_table;
acpi_tbl_entry_handler probe_subtbl;
};
kernel_ulong_t driver_data;
};
struct acpi_dep_data {
struct list_head node;
acpi_handle supplier;
acpi_handle consumer;
bool honor_dep;
bool met;
bool free_when_met;
};
struct acpi_scan_clear_dep_work {
struct work_struct work;
struct acpi_device *adev;
};
struct iommu_ops {};
struct acpi_table_stao {
struct acpi_table_header header;
u8 ignore_uart;
} __attribute__((packed));
enum {
VP_MSIX_CONFIG_VECTOR = 0,
VP_MSIX_VQ_VECTOR = 1,
};
struct virtio_device;
struct virtqueue {
struct list_head list;
void (*callback)(struct virtqueue *);
const char *name;
struct virtio_device *vdev;
unsigned int index;
unsigned int num_free;
unsigned int num_max;
bool reset;
void *priv;
};
struct vringh_config_ops;
struct virtio_config_ops;
struct virtio_device {
int index;
bool failed;
bool config_enabled;
bool config_change_pending;
spinlock_t config_lock;
spinlock_t vqs_list_lock;
struct device dev;
struct virtio_device_id id;
const struct virtio_config_ops *config;
const struct vringh_config_ops *vringh_config;
struct list_head vqs;
u64 features;
void *priv;
};
typedef void vq_callback_t(struct virtqueue *);
struct virtio_shm_region;
struct virtio_config_ops {
void (*get)(struct virtio_device *, unsigned int, void *, unsigned int);
void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int);
u32 (*generation)(struct virtio_device *);
u8 (*get_status)(struct virtio_device *);
void (*set_status)(struct virtio_device *, u8);
void (*reset)(struct virtio_device *);
int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *);
void (*del_vqs)(struct virtio_device *);
void (*synchronize_cbs)(struct virtio_device *);
u64 (*get_features)(struct virtio_device *);
int (*finalize_features)(struct virtio_device *);
const char * (*bus_name)(struct virtio_device *);
int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *);
const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int);
bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8);
int (*disable_vq_and_reset)(struct virtqueue *);
int (*enable_vq_after_reset)(struct virtqueue *);
int (*create_avq)(struct virtio_device *);
void (*destroy_avq)(struct virtio_device *);
};
struct virtio_shm_region {
u64 addr;
u64 len;
};
struct virtio_pci_common_cfg;
struct virtio_pci_modern_device {
struct pci_dev *pci_dev;
struct virtio_pci_common_cfg *common;
void *device;
void *notify_base;
resource_size_t notify_pa;
u8 *isr;
size_t notify_len;
size_t device_len;
size_t common_len;
int notify_map_cap;
u32 notify_offset_multiplier;
int modern_bars;
struct virtio_device_id id;
int (*device_id_check)(struct pci_dev *);
u64 dma_mask;
};
struct virtio_pci_vq_info {
struct virtqueue *vq;
struct list_head node;
unsigned int msix_vector;
};
struct virtio_pci_admin_vq {
struct virtio_pci_vq_info info;
struct mutex cmd_lock;
u64 supported_cmds;
char name[10];
u16 vq_index;
};
struct virtio_pci_device {
struct virtio_device vdev;
struct pci_dev *pci_dev;
union {
struct virtio_pci_legacy_device ldev;
struct virtio_pci_modern_device mdev;
};
bool is_legacy;
u8 *isr;
spinlock_t lock;
struct list_head virtqueues;
struct virtio_pci_vq_info **vqs;
struct virtio_pci_admin_vq admin_vq;
int msix_enabled;
int intx_enabled;
cpumask_var_t *msix_affinity_masks;
char (*msix_names)[256];
unsigned int msix_vectors;
unsigned int msix_used_vectors;
bool per_vq_vectors;
struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16);
void (*del_vq)(struct virtio_pci_vq_info *);
u16 (*config_vector)(struct virtio_pci_device *, u16);
bool (*is_avq)(struct virtio_device *, unsigned int);
};
struct virtio_pci_common_cfg {
__le32 device_feature_select;
__le32 device_feature;
__le32 guest_feature_select;
__le32 guest_feature;
__le16 msix_config;
__le16 num_queues;
__u8 device_status;
__u8 config_generation;
__le16 queue_select;
__le16 queue_size;
__le16 queue_msix_vector;
__le16 queue_enable;
__le16 queue_notify_off;
__le32 queue_desc_lo;
__le32 queue_desc_hi;
__le32 queue_avail_lo;
__le32 queue_avail_hi;
__le32 queue_used_lo;
__le32 queue_used_hi;
};
struct cpu {
int node_id;
int hotpluggable;
struct device dev;
};
struct cpu_attr {
struct device_attribute attr;
const struct cpumask * const map;
};
enum {
NVME_IOCTL_VEC = 1,
NVME_IOCTL_PARTITION = 2,
};
struct nvme_uring_cmd_pdu {
struct request *req;
struct bio *bio;
u64 result;
int status;
};
struct nvme_user_io {
__u8 opcode;
__u8 flags;
__u16 control;
__u16 nblocks;
__u16 rsvd;
__u64 metadata;
__u64 addr;
__u64 slba;
__u32 dsmgmt;
__u32 reftag;
__u16 apptag;
__u16 appmask;
};
struct nvme_uring_cmd {
__u8 opcode;
__u8 flags;
__u16 rsvd1;
__u32 nsid;
__u32 cdw2;
__u32 cdw3;
__u64 metadata;
__u64 addr;
__u32 metadata_len;
__u32 data_len;
__u32 cdw10;
__u32 cdw11;
__u32 cdw12;
__u32 cdw13;
__u32 cdw14;
__u32 cdw15;
__u32 timeout_ms;
__u32 rsvd2;
};
struct nvme_uring_data {
__u64 metadata;
__u64 addr;
__u32 data_len;
__u32 metadata_len;
__u32 timeout_ms;
};
struct nvme_passthru_cmd {
__u8 opcode;
__u8 flags;
__u16 rsvd1;
__u32 nsid;
__u32 cdw2;
__u32 cdw3;
__u64 metadata;
__u64 addr;
__u32 metadata_len;
__u32 data_len;
__u32 cdw10;
__u32 cdw11;
__u32 cdw12;
__u32 cdw13;
__u32 cdw14;
__u32 cdw15;
__u32 timeout_ms;
__u32 result;
};
struct nvme_passthru_cmd64 {
__u8 opcode;
__u8 flags;
__u16 rsvd1;
__u32 nsid;
__u32 cdw2;
__u32 cdw3;
__u64 metadata;
__u64 addr;
__u32 metadata_len;
union {
__u32 data_len;
__u32 vec_cnt;
};
__u32 cdw10;
__u32 cdw11;
__u32 cdw12;
__u32 cdw13;
__u32 cdw14;
__u32 cdw15;
__u32 timeout_ms;
__u32 rsvd2;
__u64 result;
};
typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *);
struct phy_reg {
u16 reg;
u16 val;
};
enum iwl_device_power_flags {
DEVICE_POWER_FLAGS_POWER_SAVE_ENA_MSK = 1,
DEVICE_POWER_FLAGS_ALLOW_MEM_RETENTION_MSK = 2,
DEVICE_POWER_FLAGS_NO_SLEEP_TILL_D3_MSK = 128,
DEVICE_POWER_FLAGS_32K_CLK_VALID_MSK = 4096,
};
enum iwl_power_flags {
POWER_FLAGS_POWER_SAVE_ENA_MSK = 1,
POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK = 2,
POWER_FLAGS_SKIP_OVER_DTIM_MSK = 4,
POWER_FLAGS_SNOOZE_ENA_MSK = 32,
POWER_FLAGS_BT_SCO_ENA = 256,
POWER_FLAGS_ADVANCE_PM_ENA_MSK = 512,
POWER_FLAGS_LPRX_ENA_MSK = 2048,
POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK = 4096,
};
enum iwl_uapsd_disable {
IWL_DISABLE_UAPSD_BSS = 1,
IWL_DISABLE_UAPSD_P2P_CLIENT = 2,
};
struct iwl_beacon_filter_cmd {
__le32 bf_energy_delta;
__le32 bf_roaming_energy_delta;
__le32 bf_roaming_state;
__le32 bf_temp_threshold;
__le32 bf_temp_fast_filter;
__le32 bf_temp_slow_filter;
__le32 bf_enable_beacon_filter;
__le32 bf_debug_flag;
__le32 bf_escape_timer;
__le32 ba_escape_timer;
__le32 ba_enable_beacon_abort;
__le32 bf_threshold_absolute_low[2];
__le32 bf_threshold_absolute_high[2];
};
struct iwl_power_vifs {
struct iwl_mvm *mvm;
struct ieee80211_vif *bss_vif;
struct ieee80211_vif *p2p_vif;
struct ieee80211_vif *ap_vif;
struct ieee80211_vif *monitor_vif;
bool p2p_active;
bool bss_active;
bool ap_active;
bool monitor_active;
};
struct iwl_mac_power_cmd {
__le32 id_and_color;
__le16 flags;
__le16 keep_alive_seconds;
__le32 rx_data_timeout;
__le32 tx_data_timeout;
__le32 rx_data_timeout_uapsd;
__le32 tx_data_timeout_uapsd;
u8 lprx_rssi_threshold;
u8 skip_dtim_periods;
__le16 snooze_interval;
__le16 snooze_window;
u8 snooze_step;
u8 qndp_tid;
u8 uapsd_ac_flags;
u8 uapsd_max_sp;
u8 heavy_tx_thld_packets;
u8 heavy_rx_thld_packets;
u8 heavy_tx_thld_percentage;
u8 heavy_rx_thld_percentage;
u8 limited_ps_threshold;
u8 reserved;
};
struct iwl_device_power_cmd {
__le16 flags;
__le16 reserved;
};
struct iwl_uapsd_misbehaving_ap_notif {
__le32 sta_id;
u8 mac_id;
u8 reserved[3];
};
typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *);
typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int);
typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int);
typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int);
struct trace_event_raw_smbus_write {
struct trace_entry ent;
int adapter_nr;
__u16 addr;
__u16 flags;
__u8 command;
__u8 len;
__u32 protocol;
__u8 buf[34];
char __data[0];
};
struct trace_event_raw_smbus_read {
struct trace_entry ent;
int adapter_nr;
__u16 flags;
__u16 addr;
__u8 command;
__u32 protocol;
__u8 buf[34];
char __data[0];
};
struct trace_event_raw_smbus_reply {
struct trace_entry ent;
int adapter_nr;
__u16 addr;
__u16 flags;
__u8 command;
__u8 len;
__u32 protocol;
__u8 buf[34];
char __data[0];
};
struct trace_event_raw_smbus_result {
struct trace_entry ent;
int adapter_nr;
__u16 addr;
__u16 flags;
__u8 read_write;
__u8 command;
__s16 res;
__u32 protocol;
char __data[0];
};
struct trace_event_data_offsets_smbus_write {};
struct trace_event_data_offsets_smbus_read {};
struct trace_event_data_offsets_smbus_reply {};
struct trace_event_data_offsets_smbus_result {};
typedef void (*btf_trace_amd_pstate_perf)(void *, unsigned long, unsigned long, unsigned long, u64, u64, u64, u64, unsigned int, bool, bool);
struct trace_event_raw_amd_pstate_perf {
struct trace_entry ent;
unsigned long min_perf;
unsigned long target_perf;
unsigned long capacity;
unsigned long long freq;
unsigned long long mperf;
unsigned long long aperf;
unsigned long long tsc;
unsigned int cpu_id;
bool changed;
bool fast_switch;
char __data[0];
};
struct trace_event_data_offsets_amd_pstate_perf {};
enum {
ETHTOOL_A_PRIVFLAGS_UNSPEC = 0,
ETHTOOL_A_PRIVFLAGS_HEADER = 1,
ETHTOOL_A_PRIVFLAGS_FLAGS = 2,
__ETHTOOL_A_PRIVFLAGS_CNT = 3,
ETHTOOL_A_PRIVFLAGS_MAX = 2,
};
struct privflags_reply_data {
struct ethnl_reply_data base;
const char (*priv_flag_names)[32];
unsigned int n_priv_flags;
u32 priv_flags;
};
enum nft_cmp_ops {
NFT_CMP_EQ = 0,
NFT_CMP_NEQ = 1,
NFT_CMP_LT = 2,
NFT_CMP_LTE = 3,
NFT_CMP_GT = 4,
NFT_CMP_GTE = 5,
};
enum nft_cmp_attributes {
NFTA_CMP_UNSPEC = 0,
NFTA_CMP_SREG = 1,
NFTA_CMP_OP = 2,
NFTA_CMP_DATA = 3,
__NFTA_CMP_MAX = 4,
};
union nft_cmp_offload_data {
u16 val16;
u32 val32;
u64 val64;
};
struct nft_cmp_expr {
struct nft_data data;
u8 sreg;
u8 len;
enum nft_cmp_ops op: 8;
};
struct fib_result_nl {
__be32 fl_addr;
u32 fl_mark;
unsigned char fl_tos;
unsigned char fl_scope;
unsigned char tb_id_in;
unsigned char tb_id;
unsigned char prefixlen;
unsigned char nh_sel;
unsigned char type;
unsigned char scope;
int err;
};
enum {
BRIDGE_QUERIER_UNSPEC = 0,
BRIDGE_QUERIER_IP_ADDRESS = 1,
BRIDGE_QUERIER_IP_PORT = 2,
BRIDGE_QUERIER_IP_OTHER_TIMER = 3,
BRIDGE_QUERIER_PAD = 4,
BRIDGE_QUERIER_IPV6_ADDRESS = 5,
BRIDGE_QUERIER_IPV6_PORT = 6,
BRIDGE_QUERIER_IPV6_OTHER_TIMER = 7,
__BRIDGE_QUERIER_MAX = 8,
};
enum {
BR_VLFLAG_PER_PORT_STATS = 1,
BR_VLFLAG_ADDED_BY_SWITCHDEV = 2,
BR_VLFLAG_MCAST_ENABLED = 4,
BR_VLFLAG_GLOBAL_MCAST_ENABLED = 8,
BR_VLFLAG_NEIGH_SUPPRESS_ENABLED = 16,
};
enum {
PIM_TYPE_HELLO = 0,
PIM_TYPE_REGISTER = 1,
PIM_TYPE_REGISTER_STOP = 2,
PIM_TYPE_JOIN_PRUNE = 3,
PIM_TYPE_BOOTSTRAP = 4,
PIM_TYPE_ASSERT = 5,
PIM_TYPE_GRAFT = 6,
PIM_TYPE_GRAFT_ACK = 7,
PIM_TYPE_CANDIDATE_RP_ADV = 8,
};
struct net_bridge_group_src {
struct hlist_node node;
struct br_ip addr;
struct net_bridge_port_group *pg;
u8 flags;
u8 src_query_rexmit_cnt;
struct timer_list timer;
struct net_bridge *br;
struct net_bridge_mcast_gc mcast_gc;
struct callback_head rcu;
};
struct igmpv3_query {
__u8 type;
__u8 code;
__sum16 csum;
__be32 group;
__u8 qrv: 3;
__u8 suppress: 1;
__u8 resv: 4;
__u8 qqic;
__be16 nsrcs;
__be32 srcs[0];
};
struct mld_msg {
struct icmp6hdr mld_hdr;
struct in6_addr mld_mca;
};
struct mld2_query {
struct icmp6hdr mld2q_hdr;
struct in6_addr mld2q_mca;
__u8 mld2q_qrv: 3;
__u8 mld2q_suppress: 1;
__u8 mld2q_resv2: 4;
__u8 mld2q_qqic;
__be16 mld2q_nsrcs;
struct in6_addr mld2q_srcs[0];
};
struct igmpv3_grec {
__u8 grec_type;
__u8 grec_auxwords;
__be16 grec_nsrcs;
__be32 grec_mca;
__be32 grec_src[0];
};
struct igmpv3_report {
__u8 type;
__u8 resv1;
__sum16 csum;
__be16 resv2;
__be16 ngrec;
struct igmpv3_grec grec[0];
};
struct mld2_grec {
__u8 grec_type;
__u8 grec_auxwords;
__be16 grec_nsrcs;
struct in6_addr grec_mca;
struct in6_addr grec_src[0];
};
struct mld2_report {
struct icmp6hdr mld2r_hdr;
struct mld2_grec mld2r_grec[0];
};
struct pimhdr {
__u8 type;
__u8 reserved;
__be16 csum;
};
struct br_ip_list {
struct list_head list;
struct br_ip addr;
};
enum {
FTRACE_UPDATE_IGNORE = 0,
FTRACE_UPDATE_MAKE_CALL = 1,
FTRACE_UPDATE_MODIFY_CALL = 2,
FTRACE_UPDATE_MAKE_NOP = 3,
};
enum {
FTRACE_FL_ENABLED = 2147483648,
FTRACE_FL_REGS = 1073741824,
FTRACE_FL_REGS_EN = 536870912,
FTRACE_FL_TRAMP = 268435456,
FTRACE_FL_TRAMP_EN = 134217728,
FTRACE_FL_IPMODIFY = 67108864,
FTRACE_FL_DISABLED = 33554432,
FTRACE_FL_DIRECT = 16777216,
FTRACE_FL_DIRECT_EN = 8388608,
FTRACE_FL_CALL_OPS = 4194304,
FTRACE_FL_CALL_OPS_EN = 2097152,
FTRACE_FL_TOUCHED = 1048576,
FTRACE_FL_MODIFIED = 524288,
};
enum {
TRACE_CTX_NMI = 0,
TRACE_CTX_IRQ = 1,
TRACE_CTX_SOFTIRQ = 2,
TRACE_CTX_NORMAL = 3,
TRACE_CTX_TRANSITION = 4,
};
struct dyn_arch_ftrace {};
struct dyn_ftrace {
unsigned long ip;
unsigned long flags;
struct dyn_arch_ftrace arch;
};
union ftrace_op_code_union {
char code[7];
struct {
char op[3];
int offset;
} __attribute__((packed));
};
struct ptrace_sud_config {
__u64 mode;
__u64 selector;
__u64 offset;
__u64 len;
};
enum cgroup_filetype {
CGROUP_FILE_PROCS = 0,
CGROUP_FILE_TASKS = 1,
};
enum cgroup1_param {
Opt_all = 0,
Opt_clone_children = 1,
Opt_cpuset_v2_mode = 2,
Opt_name = 3,
Opt_none = 4,
Opt_noprefix = 5,
Opt_release_agent = 6,
Opt_xattr = 7,
Opt_favordynmods___2 = 8,
Opt_nofavordynmods = 9,
};
struct cgroup_pidlist {
struct {
enum cgroup_filetype type;
struct pid_namespace *ns;
} key;
pid_t *list;
int length;
struct list_head links;
struct cgroup *owner;
struct delayed_work destroy_dwork;
};
struct bpf_async_cb {
struct bpf_map *map;
struct bpf_prog *prog;
void __attribute__((btf_type_tag("rcu"))) *callback_fn;
void *value;
struct callback_head rcu;
u64 flags;
};
struct bpf_hrtimer {
struct bpf_async_cb cb;
struct hrtimer timer;
};
struct bpf_bprintf_buffers {
char bin_args[512];
char buf[1024];
};
enum bpf_async_type {
BPF_ASYNC_TYPE_TIMER = 0,
BPF_ASYNC_TYPE_WQ = 1,
};
enum {
BPF_F_TIMER_ABS = 1,
BPF_F_TIMER_CPU_PIN = 2,
};
typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *);
typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64);
typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *);
typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64);
typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *);
typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *);
typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32);
typedef u64 (*btf_bpf_get_smp_processor_id)();
typedef u64 (*btf_bpf_get_numa_node_id)();
typedef u64 (*btf_bpf_ktime_get_ns)();
typedef u64 (*btf_bpf_ktime_get_boot_ns)();
typedef u64 (*btf_bpf_ktime_get_coarse_ns)();
typedef u64 (*btf_bpf_ktime_get_tai_ns)();
typedef u64 (*btf_bpf_get_current_pid_tgid)();
typedef u64 (*btf_bpf_get_current_uid_gid)();
typedef u64 (*btf_bpf_get_current_comm)(char *, u32);
typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *);
typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *);
typedef u64 (*btf_bpf_jiffies64)();
typedef u64 (*btf_bpf_get_current_cgroup_id)();
typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int);
typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *);
typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *);
typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *);
struct bpf_pidns_info;
typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32);
struct bpf_pidns_info {
__u32 pid;
__u32 tgid;
};
typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64);
typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64);
typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32);
typedef u64 (*btf_bpf_this_cpu_ptr)(const void *);
typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32);
struct bpf_async_kern;
typedef u64 (*btf_bpf_timer_init)(struct bpf_async_kern *, struct bpf_map *, u64);
struct bpf_work;
struct bpf_async_kern {
union {
struct bpf_async_cb *cb;
struct bpf_hrtimer *timer;
struct bpf_work *work;
};
struct bpf_spin_lock lock;
};
struct bpf_work {
struct bpf_async_cb cb;
struct work_struct work;
struct work_struct delete_work;
};
typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_async_kern *, void *, struct bpf_prog_aux *);
typedef u64 (*btf_bpf_timer_start)(struct bpf_async_kern *, u64, u64);
typedef u64 (*btf_bpf_timer_cancel)(struct bpf_async_kern *);
struct bpf_wq {
__u64 __opaque[2];
};
typedef u64 (*btf_bpf_kptr_xchg)(void *, void *);
typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *);
typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64);
typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64);
typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32);
struct bpf_refcount {
__u32 __opaque[1];
};
struct bpf_rb_node_kern {
struct rb_node rb_node;
void *owner;
};
struct bpf_rb_node {
__u64 __opaque[4];
};
struct bpf_dynptr {
__u64 __opaque[2];
};
struct bpf_list_node_kern {
struct list_head list_head;
void *owner;
};
struct bpf_list_node {
__u64 __opaque[3];
};
struct bpf_timer {
__u64 __opaque[2];
};
struct bpf_list_head {
__u64 __opaque[2];
};
struct bpf_rb_root {
__u64 __opaque[2];
};
struct bpf_throw_ctx {
struct bpf_prog_aux *aux;
u64 sp;
u64 bp;
int cnt;
};
struct tree_descr {
const char *name;
const struct file_operations *ops;
int mode;
};
enum {
Opt_uid___4 = 0,
Opt_gid___5 = 1,
Opt_mode___4 = 2,
Opt_err___5 = 3,
};
struct debugfs_cancellation {
struct list_head list;
void (*cancel)(struct dentry *, void *);
void *cancel_data;
};
struct debugfs_fsdata {
const struct file_operations *real_fops;
union {
debugfs_automount_t automount;
struct {
refcount_t active_users;
struct completion active_users_drained;
struct mutex cancellations_mtx;
struct list_head cancellations;
};
};
};
struct debugfs_mount_opts {
kuid_t uid;
kgid_t gid;
umode_t mode;
unsigned int opts;
};
struct debugfs_fs_info {
struct debugfs_mount_opts mount_opts;
};
struct msg_msgseg {
struct msg_msgseg *next;
};
typedef unsigned char u8___2;
struct rand_data {
void *hash_state;
__u64 prev_time;
__u64 last_delta;
__s64 last_delta2;
unsigned int flags;
unsigned int osr;
unsigned char *mem;
unsigned int memlocation;
unsigned int memblocks;
unsigned int memblocksize;
unsigned int memaccessloops;
unsigned int rct_count;
unsigned int apt_cutoff;
unsigned int apt_cutoff_permanent;
unsigned int apt_observations;
unsigned int apt_count;
unsigned int apt_base;
unsigned int health_failure;
unsigned int apt_base_set: 1;
};
struct xor_block_template {
struct xor_block_template *next;
const char *name;
int speed;
void (*do_2)(unsigned long, unsigned long * restrict, const unsigned long * restrict);
void (*do_3)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict);
void (*do_4)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict);
void (*do_5)(unsigned long, unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict, const unsigned long * restrict);
};
struct asymmetric_key_parser {
struct list_head link;
struct module *owner;
const char *name;
int (*parse)(struct key_preparsed_payload *);
};
struct karatsuba_ctx {
struct karatsuba_ctx *next;
mpi_ptr_t tspace;
mpi_size_t tspace_size;
mpi_ptr_t tp;
mpi_size_t tp_size;
};
typedef struct {
S16 norm[53];
U32 wksp[285];
} ZSTD_BuildCTableWksp;
typedef enum {
ZSTD_defaultDisallowed = 0,
ZSTD_defaultAllowed = 1,
} ZSTD_defaultPolicy_e;
typedef enum {
ZSTD_lo_isRegularOffset = 0,
ZSTD_lo_isLongOffset = 1,
} ZSTD_longOffset_e;
typedef struct {
U32 fastMode;
U32 tableLog;
} ZSTD_seqSymbol_header;
typedef struct {
size_t litLength;
size_t matchLength;
size_t offset;
} seq_t;
typedef struct {
size_t state;
const ZSTD_seqSymbol *table;
} ZSTD_fseState;
typedef struct {
BIT_DStream_t DStream;
ZSTD_fseState stateLL;
ZSTD_fseState stateOffb;
ZSTD_fseState stateML;
size_t prevOffset[3];
} seqState_t;
struct vgastate {
void *vgabase;
unsigned long membase;
__u32 memsize;
__u32 flags;
__u32 depth;
__u32 num_attr;
__u32 num_crtc;
__u32 num_gfx;
__u32 num_seq;
void *vidstate;
};
struct acpi_prmt_module_info {
u16 revision;
u16 length;
u8 module_guid[16];
u16 major_rev;
u16 minor_rev;
u16 handler_info_count;
u32 handler_info_offset;
u64 mmio_list_pointer;
} __attribute__((packed));
struct acpi_prmt_handler_info {
u16 revision;
u16 length;
u8 handler_guid[16];
u64 handler_address;
u64 static_data_buffer_address;
u64 acpi_param_buffer_address;
} __attribute__((packed));
struct prm_buffer {
u8 prm_status;
u64 efi_status;
u8 prm_cmd;
guid_t handler_guid;
} __attribute__((packed));
struct prm_handler_info {
guid_t guid;
efi_status_t (*handler_addr)(u64, void *);
u64 static_data_buffer_addr;
u64 acpi_param_buffer_addr;
struct list_head handler_list;
};
struct prm_mmio_info;
struct prm_module_info {
guid_t guid;
u16 major_rev;
u16 minor_rev;
u16 handler_count;
struct prm_mmio_info *mmio_info;
bool updatable;
struct list_head module_list;
struct prm_handler_info handlers[0];
};
struct prm_mmio_addr_range {
u64 phys_addr;
u64 virt_addr;
u32 length;
} __attribute__((packed));
struct prm_mmio_info {
u64 mmio_count;
struct prm_mmio_addr_range addr_ranges[0];
};
struct prm_context_buffer {
char signature[4];
u16 revision;
u16 reserved;
guid_t identifier;
u64 static_data_buffer;
struct prm_mmio_info *mmio_ranges;
};
typedef u64 acpi_integer;
struct acpi_pcc_info {
u8 subspace_id;
u16 length;
u8 *internal_buffer;
};
struct pcc_data {
struct pcc_mbox_chan *pcc_chan;
void *pcc_comm_addr;
struct completion done;
struct mbox_client cl;
struct acpi_pcc_info ctx;
};
struct acpi_address_range {
struct acpi_address_range *next;
struct acpi_namespace_node *region_node;
acpi_physical_address start_address;
acpi_physical_address end_address;
};
struct ata_timing {
unsigned short mode;
unsigned short setup;
unsigned short act8b;
unsigned short rec8b;
unsigned short cyc8b;
unsigned short active;
unsigned short recover;
unsigned short dmack_hold;
unsigned short cycle;
unsigned short udma;
};
enum iwl_phy_db_section_type {
IWL_PHY_DB_CFG = 1,
IWL_PHY_DB_CALIB_NCH = 2,
IWL_PHY_DB_UNUSED = 3,
IWL_PHY_DB_CALIB_CHG_PAPD = 4,
IWL_PHY_DB_CALIB_CHG_TXP = 5,
IWL_PHY_DB_MAX = 6,
};
struct iwl_calib_res_notif_phy_db {
__le16 type;
__le16 length;
u8 data[0];
};
struct iwl_phy_db_entry {
u16 size;
u8 *data;
};
struct iwl_phy_db {
struct iwl_phy_db_entry cfg;
struct iwl_phy_db_entry calib_nch;
int n_group_papd;
struct iwl_phy_db_entry *calib_ch_group_papd;
int n_group_txp;
struct iwl_phy_db_entry *calib_ch_group_txp;
struct iwl_trans *trans;
};
struct iwl_phy_db_cmd {
__le16 type;
__le16 length;
u8 data[0];
};
enum iwl_bt_coex_mode {
BT_COEX_DISABLE = 0,
BT_COEX_NW = 1,
BT_COEX_BT = 2,
BT_COEX_WIFI = 3,
};
enum iwl_bt_coex_enabled_modules {
BT_COEX_MPLUT_ENABLED = 1,
BT_COEX_MPLUT_BOOST_ENABLED = 2,
BT_COEX_SYNC2SCO_ENABLED = 4,
BT_COEX_CORUN_ENABLED = 8,
BT_COEX_HIGH_BAND_RET = 16,
};
enum iwl_bt_activity_grading {
BT_OFF = 0,
BT_ON_NO_CONNECTION = 1,
BT_LOW_TRAFFIC = 2,
BT_HIGH_TRAFFIC = 3,
BT_VERY_HIGH_TRAFFIC = 4,
BT_MAX_AG = 5,
};
enum iwl_bt_coex_lut_type {
BT_COEX_TIGHT_LUT = 0,
BT_COEX_LOOSE_LUT = 1,
BT_COEX_TX_DIS_LUT = 2,
BT_COEX_MAX_LUT = 3,
BT_COEX_INVALID_LUT = 255,
};
struct iwl_bt_iterator_data {
struct iwl_bt_coex_profile_notif *notif;
struct iwl_mvm *mvm;
struct ieee80211_chanctx_conf *primary;
struct ieee80211_chanctx_conf *secondary;
bool primary_ll;
u8 primary_load;
u8 secondary_load;
};
struct iwl_bt_coex_cmd {
__le32 mode;
__le32 enabled_modules;
};
struct iwl_bt_coex_reduced_txp_update_cmd {
__le32 reduced_txp;
};
struct ignore_entry {
u16 vid;
u16 pid;
u16 bcdmin;
u16 bcdmax;
};
struct power_supply_attr {
const char *prop_name;
char attr_name[31];
struct device_attribute dev_attr;
const char * const *text_values;
int text_values_len;
};
enum power_supply_charge_behaviour {
POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0,
POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1,
POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2,
};
struct usage_priority {
__u32 usage;
bool global;
unsigned int slot_overwrite;
};
typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int);
typedef void (*btf_trace_netlink_extack)(void *, const char *);
struct listeners;
struct netlink_table {
struct rhashtable hash;
struct hlist_head mc_list;
struct listeners __attribute__((btf_type_tag("rcu"))) *listeners;
unsigned int flags;
unsigned int groups;
struct mutex *cb_mutex;
struct module *module;
int (*bind)(struct net *, int);
void (*unbind)(struct net *, int);
void (*release)(struct sock *, unsigned long *);
int registered;
};
struct listeners {
struct callback_head rcu;
unsigned long masks[0];
};
enum netlink_skb_flags {
NETLINK_SKB_DST = 8,
};
enum {
NETLINK_F_KERNEL_SOCKET = 0,
NETLINK_F_RECV_PKTINFO = 1,
NETLINK_F_BROADCAST_SEND_ERROR = 2,
NETLINK_F_RECV_NO_ENOBUFS = 3,
NETLINK_F_LISTEN_ALL_NSID = 4,
NETLINK_F_CAP_ACK = 5,
NETLINK_F_EXT_ACK = 6,
NETLINK_F_STRICT_CHK = 7,
};
enum {
NETLINK_UNCONNECTED = 0,
NETLINK_CONNECTED = 1,
};
enum nlmsgerr_attrs {
NLMSGERR_ATTR_UNUSED = 0,
NLMSGERR_ATTR_MSG = 1,
NLMSGERR_ATTR_OFFS = 2,
NLMSGERR_ATTR_COOKIE = 3,
NLMSGERR_ATTR_POLICY = 4,
NLMSGERR_ATTR_MISS_TYPE = 5,
NLMSGERR_ATTR_MISS_NEST = 6,
__NLMSGERR_ATTR_MAX = 7,
NLMSGERR_ATTR_MAX = 6,
};
struct trace_event_raw_netlink_extack {
struct trace_entry ent;
u32 __data_loc_msg;
char __data[0];
};
struct netlink_tap {
struct net_device *dev;
struct module *module;
struct list_head list;
};
struct netlink_sock {
struct sock sk;
unsigned long flags;
u32 portid;
u32 dst_portid;
u32 dst_group;
u32 subscriptions;
u32 ngroups;
unsigned long *groups;
unsigned long state;
size_t max_recvmsg_len;
wait_queue_head_t wait;
bool bound;
bool cb_running;
int dump_done_errno;
struct netlink_callback cb;
struct mutex nl_cb_mutex;
struct mutex *dump_cb_mutex;
void (*netlink_rcv)(struct sk_buff *);
int (*netlink_bind)(struct net *, int);
void (*netlink_unbind)(struct net *, int);
void (*netlink_release)(struct sock *, unsigned long *);
struct module *module;
struct rhash_head node;
struct callback_head rcu;
struct work_struct work;
};
struct sockaddr_nl {
__kernel_sa_family_t nl_family;
unsigned short nl_pad;
__u32 nl_pid;
__u32 nl_groups;
};
struct trace_event_data_offsets_netlink_extack {
u32 msg;
const void *msg_ptr_;
};
struct netlink_tap_net {
struct list_head netlink_tap_all;
struct mutex netlink_tap_lock;
};
struct netlink_broadcast_data {
struct sock *exclude_sk;
struct net *net;
u32 portid;
u32 group;
int failure;
int delivery_failure;
int congested;
int delivered;
gfp_t allocation;
struct sk_buff *skb;
struct sk_buff *skb2;
int (*tx_filter)(struct sock *, struct sk_buff *, void *);
void *tx_data;
};
struct netlink_set_err_data {
struct sock *exclude_sk;
u32 portid;
u32 group;
int code;
};
struct netlink_compare_arg {
possible_net_t pnet;
u32 portid;
};
struct nl_pktinfo {
__u32 group;
};
struct nl_seq_iter {
struct seq_net_private p;
struct rhashtable_iter hti;
int link;
};
struct bpf_iter__netlink {
union {
struct bpf_iter_meta *meta;
};
union {
struct netlink_sock *sk;
};
};
struct nlmsgerr {
int error;
struct nlmsghdr msg;
};
enum nft_set_elem_flags {
NFT_SET_ELEM_INTERVAL_END = 1,
NFT_SET_ELEM_CATCHALL = 2,
};
struct nft_rbtree_elem {
struct nft_elem_priv priv;
struct rb_node node;
struct nft_set_ext ext;
};
struct seqcount_rwlock {
seqcount_t seqcount;
rwlock_t *lock;
};
typedef struct seqcount_rwlock seqcount_rwlock_t;
struct nft_rbtree {
struct rb_root root;
rwlock_t lock;
seqcount_rwlock_t count;
unsigned long last_gc;
};
struct xt_entry_target {
union {
struct {
__u16 target_size;
char name[29];
__u8 revision;
} user;
struct {
__u16 target_size;
struct xt_target *target;
} kernel;
__u16 target_size;
} u;
unsigned char data[0];
};
struct xt_error_target {
struct xt_entry_target target;
char errorname[30];
};
struct ipt_error {
struct ipt_entry entry;
struct xt_error_target target;
};
struct xt_entry_match {
union {
struct {
__u16 match_size;
char name[29];
__u8 revision;
} user;
struct {
__u16 match_size;
struct xt_match *match;
} kernel;
__u16 match_size;
} u;
unsigned char data[0];
};
struct xt_standard_target {
struct xt_entry_target target;
int verdict;
};
struct ipt_standard {
struct ipt_entry entry;
struct xt_standard_target target;
};
struct xt_percpu_counter_alloc_state {
unsigned int off;
const char __attribute__((btf_type_tag("percpu"))) *mem;
};
struct xt_counters_info {
char name[32];
unsigned int num_counters;
struct xt_counters counters[0];
};
struct ipt_getinfo {
char name[32];
unsigned int valid_hooks;
unsigned int hook_entry[5];
unsigned int underflow[5];
unsigned int num_entries;
unsigned int size;
};
struct ipt_get_entries {
char name[32];
unsigned int size;
struct ipt_entry entrytable[0];
};
struct xt_get_revision {
char name[29];
__u8 revision;
};
enum tpacket_versions {
TPACKET_V1 = 0,
TPACKET_V2 = 1,
TPACKET_V3 = 2,
};
enum packet_sock_flags {
PACKET_SOCK_ORIGDEV = 0,
PACKET_SOCK_AUXDATA = 1,
PACKET_SOCK_TX_HAS_OFF = 2,
PACKET_SOCK_TP_LOSS = 3,
PACKET_SOCK_RUNNING = 4,
PACKET_SOCK_PRESSURE = 5,
PACKET_SOCK_QDISC_BYPASS = 6,
};
struct tpacket_stats {
unsigned int tp_packets;
unsigned int tp_drops;
};
struct tpacket_stats_v3 {
unsigned int tp_packets;
unsigned int tp_drops;
unsigned int tp_freeze_q_cnt;
};
union tpacket_stats_u {
struct tpacket_stats stats1;
struct tpacket_stats_v3 stats3;
};
struct pgv;
struct tpacket_kbdq_core {
struct pgv *pkbdq;
unsigned int feature_req_word;
unsigned int hdrlen;
unsigned char reset_pending_on_curr_blk;
unsigned char delete_blk_timer;
unsigned short kactive_blk_num;
unsigned short blk_sizeof_priv;
unsigned short last_kactive_blk_num;
char *pkblk_start;
char *pkblk_end;
int kblk_size;
unsigned int max_frame_len;
unsigned int knum_blocks;
uint64_t knxt_seq_num;
char *prev;
char *nxt_offset;
struct sk_buff *skb;
rwlock_t blk_fill_in_prog_lock;
unsigned short retire_blk_tov;
unsigned short version;
unsigned long tov_in_jiffies;
struct timer_list retire_blk_timer;
};
struct packet_ring_buffer {
struct pgv *pg_vec;
unsigned int head;
unsigned int frames_per_block;
unsigned int frame_size;
unsigned int frame_max;
unsigned int pg_vec_order;
unsigned int pg_vec_pages;
unsigned int pg_vec_len;
unsigned int __attribute__((btf_type_tag("percpu"))) *pending_refcnt;
union {
unsigned long *rx_owner_map;
struct tpacket_kbdq_core prb_bdqc;
};
};
struct packet_fanout;
struct packet_rollover;
struct packet_mclist;
struct packet_sock {
struct sock sk;
struct packet_fanout *fanout;
union tpacket_stats_u stats;
struct packet_ring_buffer rx_ring;
struct packet_ring_buffer tx_ring;
int copy_thresh;
spinlock_t bind_lock;
struct mutex pg_vec_lock;
unsigned long flags;
int ifindex;
u8 vnet_hdr_sz;
__be16 num;
struct packet_rollover *rollover;
struct packet_mclist *mclist;
atomic_long_t mapped;
enum tpacket_versions tp_version;
unsigned int tp_hdrlen;
unsigned int tp_reserve;
unsigned int tp_tstamp;
struct completion skb_completion;
struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev;
long: 64;
long: 64;
struct packet_type prot_hook;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
atomic_t tp_drops;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct packet_fanout {
possible_net_t net;
unsigned int num_members;
u32 max_num_members;
u16 id;
u8 type;
u8 flags;
union {
atomic_t rr_cur;
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *bpf_prog;
};
struct list_head list;
spinlock_t lock;
refcount_t sk_ref;
long: 64;
struct packet_type prot_hook;
struct sock __attribute__((btf_type_tag("rcu"))) *arr[0];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct pgv {
char *buffer;
};
struct packet_rollover {
int sock;
atomic_long_t num;
atomic_long_t num_huge;
atomic_long_t num_failed;
long: 64;
long: 64;
long: 64;
long: 64;
u32 history[16];
};
struct packet_mclist {
struct packet_mclist *next;
int ifindex;
int count;
unsigned short type;
unsigned short alen;
unsigned char addr[32];
};
struct tpacket_bd_ts {
unsigned int ts_sec;
union {
unsigned int ts_usec;
unsigned int ts_nsec;
};
};
struct tpacket_hdr_v1 {
__u32 block_status;
__u32 num_pkts;
__u32 offset_to_first_pkt;
__u32 blk_len;
__u64 seq_num;
struct tpacket_bd_ts ts_first_pkt;
struct tpacket_bd_ts ts_last_pkt;
};
union tpacket_bd_header_u {
struct tpacket_hdr_v1 bh1;
};
struct tpacket_block_desc {
__u32 version;
__u32 offset_to_priv;
union tpacket_bd_header_u hdr;
};
struct tpacket_hdr_variant1 {
__u32 tp_rxhash;
__u32 tp_vlan_tci;
__u16 tp_vlan_tpid;
__u16 tp_padding;
};
struct tpacket3_hdr {
__u32 tp_next_offset;
__u32 tp_sec;
__u32 tp_nsec;
__u32 tp_snaplen;
__u32 tp_len;
__u32 tp_status;
__u16 tp_mac;
__u16 tp_net;
union {
struct tpacket_hdr_variant1 hv1;
};
__u8 tp_padding[8];
};
struct sockaddr_ll {
unsigned short sll_family;
__be16 sll_protocol;
int sll_ifindex;
unsigned short sll_hatype;
unsigned char sll_pkttype;
unsigned char sll_halen;
unsigned char sll_addr[8];
};
struct sockaddr_pkt {
unsigned short spkt_family;
unsigned char spkt_device[14];
__be16 spkt_protocol;
};
struct packet_skb_cb {
union {
struct sockaddr_pkt pkt;
union {
unsigned int origlen;
struct sockaddr_ll ll;
};
} sa;
};
typedef __u16 __virtio16;
struct virtio_net_hdr {
__u8 flags;
__u8 gso_type;
__virtio16 hdr_len;
__virtio16 gso_size;
__virtio16 csum_start;
__virtio16 csum_offset;
};
struct sock_skb_cb {
u32 dropcount;
};
struct tpacket_hdr;
struct tpacket2_hdr;
union tpacket_uhdr {
struct tpacket_hdr *h1;
struct tpacket2_hdr *h2;
struct tpacket3_hdr *h3;
void *raw;
};
struct tpacket_hdr {
unsigned long tp_status;
unsigned int tp_len;
unsigned int tp_snaplen;
unsigned short tp_mac;
unsigned short tp_net;
unsigned int tp_sec;
unsigned int tp_usec;
};
struct tpacket2_hdr {
__u32 tp_status;
__u32 tp_len;
__u32 tp_snaplen;
__u16 tp_mac;
__u16 tp_net;
__u32 tp_sec;
__u32 tp_nsec;
__u16 tp_vlan_tci;
__u16 tp_vlan_tpid;
__u8 tp_padding[4];
};
struct virtio_net_hdr_mrg_rxbuf {
struct virtio_net_hdr hdr;
__virtio16 num_buffers;
};
struct tpacket_req {
unsigned int tp_block_size;
unsigned int tp_block_nr;
unsigned int tp_frame_size;
unsigned int tp_frame_nr;
};
struct tpacket_req3 {
unsigned int tp_block_size;
unsigned int tp_block_nr;
unsigned int tp_frame_size;
unsigned int tp_frame_nr;
unsigned int tp_retire_blk_tov;
unsigned int tp_sizeof_priv;
unsigned int tp_feature_req_word;
};
union tpacket_req_u {
struct tpacket_req req;
struct tpacket_req3 req3;
};
struct flow_keys_basic {
struct flow_dissector_key_control control;
struct flow_dissector_key_basic basic;
};
struct packet_mreq_max {
int mr_ifindex;
unsigned short mr_type;
unsigned short mr_alen;
unsigned char mr_address[32];
};
struct fanout_args {
__u16 id;
__u16 type_flags;
__u32 max_num_members;
};
struct tpacket_rollover_stats {
__u64 tp_all;
__u64 tp_huge;
__u64 tp_failed;
};
struct tpacket_auxdata {
__u32 tp_status;
__u32 tp_len;
__u32 tp_snaplen;
__u16 tp_mac;
__u16 tp_net;
__u16 tp_vlan_tci;
__u16 tp_vlan_tpid;
};
struct pci_raw_ops {
int (*read)(unsigned int, unsigned int, unsigned int, int, int, u32 *);
int (*write)(unsigned int, unsigned int, unsigned int, int, int, u32);
};
struct pci_mmcfg_region {
struct list_head list;
struct resource res;
u64 address;
char *virt;
u16 segment;
u8 start_bus;
u8 end_bus;
char name[30];
};
enum uncore_access_type {
UNCORE_ACCESS_MSR = 0,
UNCORE_ACCESS_MMIO = 1,
UNCORE_ACCESS_PCI = 2,
UNCORE_ACCESS_MAX = 3,
};
struct intel_uncore_discovery_type {
struct rb_node node;
enum uncore_access_type access_type;
u64 box_ctrl;
u64 *box_ctrl_die;
u16 type;
u8 num_counters;
u8 counter_width;
u8 ctl_offset;
u8 ctr_offset;
u16 num_boxes;
unsigned int *ids;
u64 *box_offset;
};
struct uncore_global_discovery {
union {
u64 table1;
struct {
u64 type: 8;
u64 stride: 8;
u64 max_units: 10;
u64 __reserved_1: 36;
u64 access_type: 2;
};
};
u64 ctl;
union {
u64 table3;
struct {
u64 status_offset: 8;
u64 num_status: 16;
u64 __reserved_2: 40;
};
};
};
struct uncore_unit_discovery {
union {
u64 table1;
struct {
u64 num_regs: 8;
u64 ctl_offset: 8;
u64 bit_width: 8;
u64 ctr_offset: 8;
u64 status_offset: 8;
u64 __reserved_1: 22;
u64 access_type: 2;
};
};
u64 ctl;
union {
u64 table3;
struct {
u64 box_type: 16;
u64 box_id: 16;
u64 __reserved_2: 32;
};
};
};
enum uclamp_id {
UCLAMP_MIN = 0,
UCLAMP_MAX = 1,
UCLAMP_CNT = 2,
};
enum cpu_idle_type {
CPU_IDLE = 0,
CPU_NOT_IDLE = 1,
CPU_NEWLY_IDLE = 2,
CPU_MAX_IDLE_TYPES = 3,
};
enum fbq_type {
regular = 0,
remote = 1,
all = 2,
};
enum migration_type {
migrate_load = 0,
migrate_util = 1,
migrate_task = 2,
migrate_misfit = 3,
};
enum group_type {
group_has_spare = 0,
group_fully_busy = 1,
group_misfit_task = 2,
group_smt_balance = 3,
group_asym_packing = 4,
group_imbalanced = 5,
group_overloaded = 6,
};
struct lb_env {
struct sched_domain *sd;
struct rq *src_rq;
int src_cpu;
int dst_cpu;
struct rq *dst_rq;
struct cpumask *dst_grpmask;
int new_dst_cpu;
enum cpu_idle_type idle;
long imbalance;
struct cpumask *cpus;
unsigned int flags;
unsigned int loop;
unsigned int loop_break;
unsigned int loop_max;
enum fbq_type fbq_type;
enum migration_type migration_type;
struct list_head tasks;
};
struct sg_lb_stats {
unsigned long avg_load;
unsigned long group_load;
unsigned long group_capacity;
unsigned long group_util;
unsigned long group_runnable;
unsigned int sum_nr_running;
unsigned int sum_h_nr_running;
unsigned int idle_cpus;
unsigned int group_weight;
enum group_type group_type;
unsigned int group_asym_packing;
unsigned int group_smt_balance;
unsigned long group_misfit_task_load;
};
struct sd_lb_stats {
struct sched_group *busiest;
struct sched_group *local;
unsigned long total_load;
unsigned long total_capacity;
unsigned long avg_load;
unsigned int prefer_sibling;
struct sg_lb_stats busiest_stat;
struct sg_lb_stats local_stat;
};
struct bpf_arena {
struct bpf_map map;
u64 user_vm_start;
u64 user_vm_end;
struct vm_struct *kern_vm;
struct maple_tree mt;
struct list_head vma_list;
struct mutex lock;
};
struct vma_list {
struct vm_area_struct *vma;
struct list_head head;
};
enum oom_constraint {
CONSTRAINT_NONE = 0,
CONSTRAINT_CPUSET = 1,
CONSTRAINT_MEMORY_POLICY = 2,
CONSTRAINT_MEMCG = 3,
};
typedef int fpi_t;
struct oom_control {
struct zonelist *zonelist;
nodemask_t *nodemask;
struct mem_cgroup *memcg;
const gfp_t gfp_mask;
const int order;
unsigned long totalpages;
struct task_struct *chosen;
long chosen_points;
enum oom_constraint constraint;
};
struct page_frag_cache {
void *va;
__u16 offset;
__u16 size;
unsigned int pagecnt_bias;
bool pfmemalloc;
};
struct move_extent {
__u32 reserved;
__u32 donor_fd;
__u64 orig_start;
__u64 donor_start;
__u64 len;
__u64 moved_len;
};
struct ext4_new_group_input {
__u32 group;
__u64 block_bitmap;
__u64 inode_bitmap;
__u64 inode_table;
__u32 blocks_count;
__u16 reserved_blocks;
__u16 unused;
};
struct ext4_new_group_data {
__u32 group;
__u64 block_bitmap;
__u64 inode_bitmap;
__u64 inode_table;
__u32 blocks_count;
__u16 reserved_blocks;
__u16 mdata_blocks;
__u32 free_clusters_count;
};
struct fsmap_head {
__u32 fmh_iflags;
__u32 fmh_oflags;
__u32 fmh_count;
__u32 fmh_entries;
__u64 fmh_reserved[6];
struct fsmap fmh_keys[2];
struct fsmap fmh_recs[0];
};
struct getfsmap_info {
struct super_block *gi_sb;
struct fsmap_head __attribute__((btf_type_tag("user"))) *gi_data;
unsigned int gi_idx;
__u32 gi_last_flags;
};
struct fsuuid {
__u32 fsu_len;
__u32 fsu_flags;
__u8 fsu_uuid[0];
};
typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *);
struct btrfs_fid {
u64 objectid;
u64 root_objectid;
u32 gen;
u64 parent_objectid;
u32 parent_gen;
u64 parent_root_objectid;
} __attribute__((packed));
struct shmid_kernel {
struct kern_ipc_perm shm_perm;
struct file *shm_file;
unsigned long shm_nattch;
unsigned long shm_segsz;
time64_t shm_atim;
time64_t shm_dtim;
time64_t shm_ctim;
struct pid *shm_cprid;
struct pid *shm_lprid;
struct ucounts *mlock_ucounts;
struct task_struct *shm_creator;
struct list_head shm_clist;
struct ipc_namespace *ns;
long: 64;
long: 64;
long: 64;
};
struct shm_file_data {
int id;
struct ipc_namespace *ns;
struct file *file;
const struct vm_operations_struct *vm_ops;
};
typedef int __kernel_ipc_pid_t;
struct shmid_ds {
struct ipc_perm shm_perm;
int shm_segsz;
__kernel_old_time_t shm_atime;
__kernel_old_time_t shm_dtime;
__kernel_old_time_t shm_ctime;
__kernel_ipc_pid_t shm_cpid;
__kernel_ipc_pid_t shm_lpid;
unsigned short shm_nattch;
unsigned short shm_unused;
void *shm_unused2;
void *shm_unused3;
};
struct shmid64_ds {
struct ipc64_perm shm_perm;
__kernel_size_t shm_segsz;
long shm_atime;
long shm_dtime;
long shm_ctime;
__kernel_pid_t shm_cpid;
__kernel_pid_t shm_lpid;
unsigned long shm_nattch;
unsigned long __unused4;
unsigned long __unused5;
};
struct shminfo64 {
unsigned long shmmax;
unsigned long shmmin;
unsigned long shmmni;
unsigned long shmseg;
unsigned long shmall;
unsigned long __unused1;
unsigned long __unused2;
unsigned long __unused3;
unsigned long __unused4;
};
struct shm_info {
int used_ids;
__kernel_ulong_t shm_tot;
__kernel_ulong_t shm_rss;
__kernel_ulong_t shm_swp;
__kernel_ulong_t swap_attempts;
__kernel_ulong_t swap_successes;
};
struct shminfo {
int shmmax;
int shmmin;
int shmmni;
int shmseg;
int shmall;
};
struct io_cancel {
struct file *file;
u64 addr;
u32 flags;
s32 fd;
u8 opcode;
};
struct io_uring_sync_cancel_reg {
__u64 addr;
__s32 fd;
__u32 flags;
struct __kernel_timespec timeout;
__u8 opcode;
__u8 pad[7];
__u64 pad2[3];
};
typedef enum {
ZSTD_c_compressionLevel = 100,
ZSTD_c_windowLog = 101,
ZSTD_c_hashLog = 102,
ZSTD_c_chainLog = 103,
ZSTD_c_searchLog = 104,
ZSTD_c_minMatch = 105,
ZSTD_c_targetLength = 106,
ZSTD_c_strategy = 107,
ZSTD_c_enableLongDistanceMatching = 160,
ZSTD_c_ldmHashLog = 161,
ZSTD_c_ldmMinMatch = 162,
ZSTD_c_ldmBucketSizeLog = 163,
ZSTD_c_ldmHashRateLog = 164,
ZSTD_c_contentSizeFlag = 200,
ZSTD_c_checksumFlag = 201,
ZSTD_c_dictIDFlag = 202,
ZSTD_c_nbWorkers = 400,
ZSTD_c_jobSize = 401,
ZSTD_c_overlapLog = 402,
ZSTD_c_experimentalParam1 = 500,
ZSTD_c_experimentalParam2 = 10,
ZSTD_c_experimentalParam3 = 1000,
ZSTD_c_experimentalParam4 = 1001,
ZSTD_c_experimentalParam5 = 1002,
ZSTD_c_experimentalParam6 = 1003,
ZSTD_c_experimentalParam7 = 1004,
ZSTD_c_experimentalParam8 = 1005,
ZSTD_c_experimentalParam9 = 1006,
ZSTD_c_experimentalParam10 = 1007,
ZSTD_c_experimentalParam11 = 1008,
ZSTD_c_experimentalParam12 = 1009,
ZSTD_c_experimentalParam13 = 1010,
ZSTD_c_experimentalParam14 = 1011,
ZSTD_c_experimentalParam15 = 1012,
} ZSTD_cParameter;
typedef ZSTD_CCtx zstd_cctx;
enum depot_counter_id {
DEPOT_COUNTER_REFD_ALLOCS = 0,
DEPOT_COUNTER_REFD_FREES = 1,
DEPOT_COUNTER_REFD_INUSE = 2,
DEPOT_COUNTER_FREELIST_SIZE = 3,
DEPOT_COUNTER_PERSIST_COUNT = 4,
DEPOT_COUNTER_PERSIST_BYTES = 5,
DEPOT_COUNTER_COUNT = 6,
};
typedef u32 depot_flags_t;
typedef u32 depot_stack_handle_t;
union handle_parts {
depot_stack_handle_t handle;
struct {
u32 pool_index: 17;
u32 offset: 10;
u32 extra: 5;
};
};
struct stack_record {
struct list_head hash_list;
u32 hash;
u32 size;
union handle_parts handle;
refcount_t count;
union {
unsigned long entries[64];
struct {
struct list_head free_list;
unsigned long rcu_state;
};
};
};
struct fbcon_display;
struct fbcon_ops {
void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int);
void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int);
void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int);
void (*clear_margins)(struct vc_data *, struct fb_info *, int, int);
void (*cursor)(struct vc_data *, struct fb_info *, bool, int, int);
int (*update_start)(struct fb_info *);
int (*rotate_font)(struct fb_info *, struct vc_data *);
struct fb_var_screeninfo var;
struct delayed_work cursor_work;
struct fb_cursor cursor_state;
struct fbcon_display *p;
struct fb_info *info;
int currcon;
int cur_blink_jiffies;
int cursor_flash;
int cursor_reset;
int blank_state;
int graphics;
int save_graphics;
bool initialized;
int rotate;
int cur_rotate;
char *cursor_data;
u8 *fontbuffer;
u8 *fontdata;
u8 *cursor_src;
u32 cursor_size;
u32 fd_size;
};
typedef unsigned char u_char;
struct fbcon_display {
const u_char *fontdata;
int userfont;
u_short inverse;
short yscroll;
int vrows;
int cursor_shape;
int con_rotate;
u32 xres_virtual;
u32 yres_virtual;
u32 height;
u32 width;
u32 bits_per_pixel;
u32 grayscale;
u32 nonstd;
u32 accel_flags;
u32 rotate;
struct fb_bitfield red;
struct fb_bitfield green;
struct fb_bitfield blue;
struct fb_bitfield transp;
const struct fb_videomode *mode;
};
struct acpi_namestring_info {
const char *external_name;
const char *next_external_char;
char *internal_name;
u32 length;
u32 num_segments;
u32 num_carats;
u8 fully_qualified;
};
enum {
LDISC_SEM_NORMAL = 0,
LDISC_SEM_OTHER = 1,
};
enum iwl_statistics_cmd_flags {
IWL_STATISTICS_FLG_CLEAR = 1,
IWL_STATISTICS_FLG_DISABLE_NOTIF = 2,
};
enum iwl_mvm_low_latency_cause {
LOW_LATENCY_TRAFFIC = 1,
LOW_LATENCY_DEBUGFS = 2,
LOW_LATENCY_VCMD = 4,
LOW_LATENCY_VIF_TYPE = 8,
LOW_LATENCY_DEBUGFS_FORCE_ENABLE = 16,
LOW_LATENCY_DEBUGFS_FORCE = 32,
};
enum iwl_statistics_cfg_flags {
IWL_STATS_CFG_FLG_DISABLE_NTFY_MSK = 1,
IWL_STATS_CFG_FLG_ON_DEMAND_NTFY_MSK = 2,
IWL_STATS_CFG_FLG_RESET_MSK = 4,
};
enum iwl_statistics_notify_type_id {
IWL_STATS_NTFY_TYPE_ID_OPER = 1,
IWL_STATS_NTFY_TYPE_ID_OPER_PART1 = 2,
IWL_STATS_NTFY_TYPE_ID_OPER_PART2 = 4,
IWL_STATS_NTFY_TYPE_ID_OPER_PART3 = 8,
IWL_STATS_NTFY_TYPE_ID_OPER_PART4 = 16,
};
struct iwl_system_statistics_cmd {
__le32 cfg_mask;
__le32 config_time_sec;
__le32 type_id_mask;
};
struct iwl_cmd_response {
__le32 status;
};
struct iwl_error_resp___2 {
__le32 error_type;
u8 cmd_id;
u8 reserved1;
__le16 bad_cmd_seq_num;
__le32 error_service;
__le64 timestamp;
} __attribute__((packed));
struct iwl_statistics_cmd {
__le32 flags;
};
struct iwl_mvm_diversity_iter_data {
struct iwl_mvm_phy_ctxt *ctxt;
bool result;
};
struct iwl_mac_low_latency_cmd {
__le32 mac_id;
u8 low_latency_rx;
u8 low_latency_tx;
__le16 reserved;
};
struct iwl_mvm_low_latency_iter {
bool result;
bool result_per_band[6];
};
struct iwl_bss_iter_data {
struct ieee80211_vif *vif;
bool error;
};
struct iwl_bss_find_iter_data {
struct ieee80211_vif *vif;
u32 macid;
};
struct iwl_sta_iter_data {
bool assoc;
};
struct iwl_fw_dbg_trigger_txq_timer {
__le32 command_queue;
__le32 bss;
__le32 softap;
__le32 p2p_go;
__le32 p2p_client;
__le32 p2p_device;
__le32 ibss;
__le32 tdls;
__le32 reserved[4];
};
struct iwl_fw_dbg_trigger_mlme {
u8 stop_auth_denied;
u8 stop_auth_timeout;
u8 stop_rx_deauth;
u8 stop_tx_deauth;
u8 stop_assoc_denied;
u8 stop_assoc_timeout;
u8 stop_connection_loss;
u8 reserved;
u8 start_auth_denied;
u8 start_auth_timeout;
u8 start_rx_deauth;
u8 start_tx_deauth;
u8 start_assoc_denied;
u8 start_assoc_timeout;
u8 start_connection_loss;
u8 reserved2;
};
struct iwl_fw_dbg_trigger_ba {
__le16 rx_ba_start;
__le16 rx_ba_stop;
__le16 tx_ba_start;
__le16 tx_ba_stop;
__le16 rx_bar;
__le16 tx_bar;
__le16 frame_timeout;
};
enum usb_dr_mode {
USB_DR_MODE_UNKNOWN = 0,
USB_DR_MODE_HOST = 1,
USB_DR_MODE_PERIPHERAL = 2,
USB_DR_MODE_OTG = 3,
};
struct serport {
struct tty_struct *tty;
wait_queue_head_t wait;
struct serio *serio;
struct serio_device_id id;
spinlock_t lock;
unsigned long flags;
};
struct rx_queue_attribute {
struct attribute attr;
ssize_t (*show)(struct netdev_rx_queue *, char *);
ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t);
};
struct netdev_queue_attribute {
struct attribute attr;
ssize_t (*show)(struct netdev_queue *, char *);
ssize_t (*store)(struct netdev_queue *, const char *, size_t);
};
enum tcp_fastopen_client_fail {
TFO_STATUS_UNSPEC = 0,
TFO_COOKIE_UNAVAILABLE = 1,
TFO_DATA_NOT_ACKED = 2,
TFO_SYN_RETRANSMITTED = 3,
};
struct xfrm_tunnel {
int (*handler)(struct sk_buff *);
int (*cb_handler)(struct sk_buff *, int);
int (*err_handler)(struct sk_buff *, u32);
struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next;
int priority;
};
enum {
IFLA_IPTUN_UNSPEC = 0,
IFLA_IPTUN_LINK = 1,
IFLA_IPTUN_LOCAL = 2,
IFLA_IPTUN_REMOTE = 3,
IFLA_IPTUN_TTL = 4,
IFLA_IPTUN_TOS = 5,
IFLA_IPTUN_ENCAP_LIMIT = 6,
IFLA_IPTUN_FLOWINFO = 7,
IFLA_IPTUN_FLAGS = 8,
IFLA_IPTUN_PROTO = 9,
IFLA_IPTUN_PMTUDISC = 10,
IFLA_IPTUN_6RD_PREFIX = 11,
IFLA_IPTUN_6RD_RELAY_PREFIX = 12,
IFLA_IPTUN_6RD_PREFIXLEN = 13,
IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14,
IFLA_IPTUN_ENCAP_TYPE = 15,
IFLA_IPTUN_ENCAP_FLAGS = 16,
IFLA_IPTUN_ENCAP_SPORT = 17,
IFLA_IPTUN_ENCAP_DPORT = 18,
IFLA_IPTUN_COLLECT_METADATA = 19,
IFLA_IPTUN_FWMARK = 20,
__IFLA_IPTUN_MAX = 21,
};
struct ip_tunnel_prl {
__be32 addr;
__u16 flags;
__u16 __reserved;
__u32 datalen;
__u32 __reserved2;
};
struct sit_net {
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16];
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16];
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16];
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1];
struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4];
struct net_device *fb_tunnel_dev;
};
enum perf_msr_id {
PERF_MSR_TSC = 0,
PERF_MSR_APERF = 1,
PERF_MSR_MPERF = 2,
PERF_MSR_PPERF = 3,
PERF_MSR_SMI = 4,
PERF_MSR_PTSC = 5,
PERF_MSR_IRPERF = 6,
PERF_MSR_THERM = 7,
PERF_MSR_EVENT_MAX = 8,
};
struct pcpu_hot {
union {
struct {
struct task_struct *current_task;
int preempt_count;
int cpu_number;
unsigned long top_of_stack;
void *hardirq_stack_ptr;
u16 softirq_pending;
bool hardirq_stack_inuse;
};
u8 pad[64];
};
};
struct fixed_percpu_data {
char gs_base[40];
unsigned long stack_canary;
};
struct cpuid_dependent_feature {
u32 feature;
u32 level;
};
struct ppin_info {
int feature;
int msr_ppin_ctl;
int msr_ppin;
};
typedef int (*task_call_f)(struct task_struct *, void *);
struct trace_bprintk_fmt {
struct list_head list;
const char *fmt;
};
struct bpf_cgroup_storage_map {
struct bpf_map map;
spinlock_t lock;
struct rb_root root;
struct list_head list;
};
struct static_call_tramp_key {
s32 tramp;
s32 key;
};
struct dirty_throttle_control {
struct wb_domain *dom;
struct dirty_throttle_control *gdtc;
struct bdi_writeback *wb;
struct fprop_local_percpu *wb_completions;
unsigned long avail;
unsigned long dirty;
unsigned long thresh;
unsigned long bg_thresh;
unsigned long wb_dirty;
unsigned long wb_thresh;
unsigned long wb_bg_thresh;
unsigned long pos_ratio;
};
struct wb_lock_cookie {
bool locked;
unsigned long flags;
};
struct kernel_stat {
unsigned long irqs_sum;
unsigned int softirqs[10];
};
struct ext4_attr {
struct attribute attr;
short attr_id;
short attr_ptr;
unsigned short attr_size;
union {
int offset;
void *explicit_ptr;
} u;
};
enum {
attr_noop = 0,
attr_delayed_allocation_blocks = 1,
attr_session_write_kbytes = 2,
attr_lifetime_write_kbytes = 3,
attr_reserved_clusters = 4,
attr_sra_exceeded_retry_limit = 5,
attr_inode_readahead = 6,
attr_trigger_test_error = 7,
attr_first_error_time = 8,
attr_last_error_time = 9,
attr_feature = 10,
attr_pointer_ui = 11,
attr_pointer_ul = 12,
attr_pointer_u64 = 13,
attr_pointer_u8 = 14,
attr_pointer_string = 15,
attr_pointer_atomic = 16,
attr_journal_task = 17,
};
enum {
ptr_explicit = 0,
ptr_ext4_sb_info_offset = 1,
ptr_ext4_super_block_offset = 2,
};
struct inode_defrag {
struct rb_node rb_node;
u64 ino;
u64 transid;
u64 root;
u32 extent_thresh;
};
struct defrag_target_range {
struct list_head list;
u64 start;
u64 len;
};
struct io_open {
struct file *file;
int dfd;
u32 file_slot;
struct filename *filename;
struct open_how how;
unsigned long nofile;
};
struct io_close {
struct file *file;
int fd;
u32 file_slot;
};
struct io_fixed_install {
struct file *file;
unsigned int o_flags;
};
struct nvs_region {
__u64 phys_start;
__u64 size;
struct list_head node;
};
struct nvs_page {
unsigned long phys_start;
unsigned int size;
void *kaddr;
void *data;
bool unmap;
struct list_head node;
};
struct acpi_data_node;
struct acpi_data_node_attr {
struct attribute attr;
ssize_t (*show)(struct acpi_data_node *, char *);
ssize_t (*store)(struct acpi_data_node *, const char *, size_t);
};
struct acpi_data_node {
const char *name;
acpi_handle handle;
struct fwnode_handle fwnode;
struct fwnode_handle *parent;
struct acpi_device_data data;
struct list_head sibling;
struct kobject kobj;
struct completion kobj_done;
};
struct acpi_reg_walk_info {
u32 function;
u32 reg_run_count;
acpi_adr_space_type space_id;
};
struct acpi_connection_info {
u8 *connection;
u16 length;
u8 access_length;
};
struct acpi_ffh_info {
u64 offset;
u64 length;
};
typedef void (*btf_trace_clk_enable)(void *, struct clk_core *);
struct clk_parent_map;
struct clk_core {
const char *name;
const struct clk_ops *ops;
struct clk_hw *hw;
struct module *owner;
struct device *dev;
struct device_node *of_node;
struct clk_core *parent;
struct clk_parent_map *parents;
u8 num_parents;
u8 new_parent_index;
unsigned long rate;
unsigned long req_rate;
unsigned long new_rate;
struct clk_core *new_parent;
struct clk_core *new_child;
unsigned long flags;
bool orphan;
bool rpm_enabled;
unsigned int enable_count;
unsigned int prepare_count;
unsigned int protect_count;
unsigned long min_rate;
unsigned long max_rate;
unsigned long accuracy;
int phase;
struct clk_duty duty;
struct hlist_head children;
struct hlist_node child_node;
struct hlist_head clks;
unsigned int notifier_count;
struct dentry *dentry;
struct hlist_node debug_node;
struct kref ref;
};
struct clk {
struct clk_core *core;
struct device *dev;
const char *dev_id;
const char *con_id;
unsigned long min_rate;
unsigned long max_rate;
unsigned int exclusive_count;
struct hlist_node clks_node;
};
struct clk_parent_map {
const struct clk_hw *hw;
struct clk_core *core;
const char *fw_name;
const char *name;
int index;
};
typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *);
typedef void (*btf_trace_clk_disable)(void *, struct clk_core *);
typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *);
typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *);
typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *);
typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *);
typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *);
typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long);
typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long);
typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long);
typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long);
typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long);
typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *);
typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *);
typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int);
typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int);
typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *);
typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *);
typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *);
typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *);
struct clk_notifier {
struct clk *clk;
struct srcu_notifier_head notifier_head;
struct list_head node;
};
struct trace_event_raw_clk {
struct trace_entry ent;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_clk_rate {
struct trace_entry ent;
u32 __data_loc_name;
unsigned long rate;
char __data[0];
};
struct trace_event_raw_clk_rate_range {
struct trace_entry ent;
u32 __data_loc_name;
unsigned long min;
unsigned long max;
char __data[0];
};
struct trace_event_raw_clk_parent {
struct trace_entry ent;
u32 __data_loc_name;
u32 __data_loc_pname;
char __data[0];
};
struct trace_event_raw_clk_phase {
struct trace_entry ent;
u32 __data_loc_name;
int phase;
char __data[0];
};
struct trace_event_raw_clk_duty_cycle {
struct trace_entry ent;
u32 __data_loc_name;
unsigned int num;
unsigned int den;
char __data[0];
};
struct trace_event_raw_clk_rate_request {
struct trace_entry ent;
u32 __data_loc_name;
u32 __data_loc_pname;
unsigned long min;
unsigned long max;
unsigned long prate;
char __data[0];
};
struct trace_event_data_offsets_clk {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clk_rate {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clk_rate_range {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clk_parent {
u32 name;
const void *name_ptr_;
u32 pname;
const void *pname_ptr_;
};
struct trace_event_data_offsets_clk_phase {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clk_duty_cycle {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clk_rate_request {
u32 name;
const void *name_ptr_;
u32 pname;
const void *pname_ptr_;
};
struct clk_notifier_data {
struct clk *clk;
unsigned long old_rate;
unsigned long new_rate;
};
struct clk_notifier_devres {
struct clk *clk;
struct notifier_block *nb;
};
struct e1000_option___2 {
enum {
enable_option___2 = 0,
range_option___2 = 1,
list_option___2 = 2,
} type;
const char *name;
const char *err;
int def;
union {
struct {
int min;
int max;
} r;
struct {
int nr;
struct e1000_opt_list *p;
} l;
} arg;
};
struct iwl_mvm_iface_iterator_data {
struct ieee80211_vif *ignore_vif;
int idx;
struct iwl_mvm_phy_ctxt *phyctxt;
u16 ids[3];
u16 colors[3];
};
struct iwl_binding_cmd {
__le32 id_and_color;
__le32 action;
__le32 macs[3];
__le32 phy;
__le32 lmac_id;
};
struct compat_msghdr {
compat_uptr_t msg_name;
compat_int_t msg_namelen;
compat_uptr_t msg_iov;
compat_size_t msg_iovlen;
compat_uptr_t msg_control;
compat_size_t msg_controllen;
compat_uint_t msg_flags;
};
struct compat_mmsghdr {
struct compat_msghdr msg_hdr;
compat_uint_t msg_len;
};
struct user_msghdr {
void __attribute__((btf_type_tag("user"))) *msg_name;
int msg_namelen;
struct iovec __attribute__((btf_type_tag("user"))) *msg_iov;
__kernel_size_t msg_iovlen;
void __attribute__((btf_type_tag("user"))) *msg_control;
__kernel_size_t msg_controllen;
unsigned int msg_flags;
};
typedef u32 compat_caddr_t;
struct compat_if_settings {
unsigned int type;
unsigned int size;
compat_uptr_t ifs_ifsu;
};
struct compat_ifreq {
union {
char ifrn_name[16];
} ifr_ifrn;
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
struct sockaddr ifru_broadaddr;
struct sockaddr ifru_netmask;
struct sockaddr ifru_hwaddr;
short ifru_flags;
compat_int_t ifru_ivalue;
compat_int_t ifru_mtu;
struct compat_ifmap ifru_map;
char ifru_slave[16];
char ifru_newname[16];
compat_caddr_t ifru_data;
struct compat_if_settings ifru_settings;
} ifr_ifru;
};
struct mmsghdr {
struct user_msghdr msg_hdr;
unsigned int msg_len;
};
struct __kernel_old_timespec {
__kernel_old_time_t tv_sec;
long tv_nsec;
};
struct __kernel_sock_timeval {
__s64 tv_sec;
__s64 tv_usec;
};
struct scm_ts_pktinfo {
__u32 if_index;
__u32 pkt_length;
__u32 reserved[2];
};
struct scm_timestamping_internal {
struct timespec64 ts[3];
};
struct used_address {
struct __kernel_sockaddr_storage name;
unsigned int name_len;
};
enum nfnl_cthelper_type {
NFCTH_UNSPEC = 0,
NFCTH_NAME = 1,
NFCTH_TUPLE = 2,
NFCTH_QUEUE_NUM = 3,
NFCTH_POLICY = 4,
NFCTH_PRIV_DATA_LEN = 5,
NFCTH_STATUS = 6,
__NFCTH_MAX = 7,
};
enum nfnl_cthelper_tuple_type {
NFCTH_TUPLE_UNSPEC = 0,
NFCTH_TUPLE_L3PROTONUM = 1,
NFCTH_TUPLE_L4PROTONUM = 2,
__NFCTH_TUPLE_MAX = 3,
};
enum nfnl_cthelper_policy_type {
NFCTH_POLICY_SET_UNSPEC = 0,
NFCTH_POLICY_SET_NUM = 1,
NFCTH_POLICY_SET = 2,
NFCTH_POLICY_SET1 = 2,
NFCTH_POLICY_SET2 = 3,
NFCTH_POLICY_SET3 = 4,
NFCTH_POLICY_SET4 = 5,
__NFCTH_POLICY_SET_MAX = 6,
};
enum nfnl_cthelper_pol_type {
NFCTH_POLICY_UNSPEC = 0,
NFCTH_POLICY_NAME = 1,
NFCTH_POLICY_EXPECT_MAX = 2,
NFCTH_POLICY_EXPECT_TIMEOUT = 3,
__NFCTH_POLICY_MAX = 4,
};
enum nfnl_cthelper_msg_types {
NFNL_MSG_CTHELPER_NEW = 0,
NFNL_MSG_CTHELPER_GET = 1,
NFNL_MSG_CTHELPER_DEL = 2,
NFNL_MSG_CTHELPER_MAX = 3,
};
struct nfnl_cthelper {
struct list_head list;
struct nf_conntrack_helper helper;
};
enum ip6_defrag_users {
IP6_DEFRAG_LOCAL_DELIVER = 0,
IP6_DEFRAG_CONNTRACK_IN = 1,
__IP6_DEFRAG_CONNTRACK_IN = 65536,
IP6_DEFRAG_CONNTRACK_OUT = 65537,
__IP6_DEFRAG_CONNTRACK_OUT = 131072,
IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073,
__IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608,
};
struct frag_queue {
struct inet_frag_queue q;
int iif;
__u16 nhoffset;
u8 ecn;
};
struct ieee80211_wmm_ac_param {
u8 aci_aifsn;
u8 cw;
__le16 txop_limit;
};
struct ieee80211_wmm_param_ie {
u8 element_id;
u8 len;
u8 oui[3];
u8 oui_type;
u8 oui_subtype;
u8 version;
u8 qos_info;
u8 reserved;
struct ieee80211_wmm_ac_param ac[4];
};
enum {
PERF_TXN_ELISION = 1ULL,
PERF_TXN_TRANSACTION = 2ULL,
PERF_TXN_SYNC = 4ULL,
PERF_TXN_ASYNC = 8ULL,
PERF_TXN_RETRY = 16ULL,
PERF_TXN_CONFLICT = 32ULL,
PERF_TXN_CAPACITY_WRITE = 64ULL,
PERF_TXN_CAPACITY_READ = 128ULL,
PERF_TXN_MAX = 256ULL,
PERF_TXN_ABORT_MASK = 18446744069414584320ULL,
PERF_TXN_ABORT_SHIFT = 32ULL,
};
struct bts_record {
u64 from;
u64 to;
u64 flags;
};
struct pebs_record_core {
u64 flags;
u64 ip;
u64 ax;
u64 bx;
u64 cx;
u64 dx;
u64 si;
u64 di;
u64 bp;
u64 sp;
u64 r8;
u64 r9;
u64 r10;
u64 r11;
u64 r12;
u64 r13;
u64 r14;
u64 r15;
};
struct pebs_record_nhm {
u64 flags;
u64 ip;
u64 ax;
u64 bx;
u64 cx;
u64 dx;
u64 si;
u64 di;
u64 bp;
u64 sp;
u64 r8;
u64 r9;
u64 r10;
u64 r11;
u64 r12;
u64 r13;
u64 r14;
u64 r15;
u64 status;
u64 dla;
u64 dse;
u64 lat;
};
struct pebs_basic {
u64 format_size;
u64 ip;
u64 applicable_counters;
u64 tsc;
};
struct perf_event_header {
__u32 type;
__u16 misc;
__u16 size;
};
union intel_x86_pebs_dse {
u64 val;
struct {
unsigned int ld_dse: 4;
unsigned int ld_stlb_miss: 1;
unsigned int ld_locked: 1;
unsigned int ld_data_blk: 1;
unsigned int ld_addr_blk: 1;
unsigned int ld_reserved: 24;
};
struct {
unsigned int st_l1d_hit: 1;
unsigned int st_reserved1: 3;
unsigned int st_stlb_miss: 1;
unsigned int st_locked: 1;
unsigned int st_reserved2: 26;
};
struct {
unsigned int st_lat_dse: 4;
unsigned int st_lat_stlb_miss: 1;
unsigned int st_lat_locked: 1;
unsigned int ld_reserved3: 26;
};
struct {
unsigned int mtl_dse: 5;
unsigned int mtl_locked: 1;
unsigned int mtl_stlb_miss: 1;
unsigned int mtl_fwd_blk: 1;
unsigned int ld_reserved4: 24;
};
};
struct pebs_gprs {
u64 flags;
u64 ip;
u64 ax;
u64 cx;
u64 dx;
u64 bx;
u64 sp;
u64 bp;
u64 si;
u64 di;
u64 r8;
u64 r9;
u64 r10;
u64 r11;
u64 r12;
u64 r13;
u64 r14;
u64 r15;
};
struct pebs_record_skl {
u64 flags;
u64 ip;
u64 ax;
u64 bx;
u64 cx;
u64 dx;
u64 si;
u64 di;
u64 bp;
u64 sp;
u64 r8;
u64 r9;
u64 r10;
u64 r11;
u64 r12;
u64 r13;
u64 r14;
u64 r15;
u64 status;
u64 dla;
u64 dse;
u64 lat;
u64 real_ip;
u64 tsx_tuning;
u64 tsc;
};
struct pebs_meminfo {
u64 address;
u64 aux;
u64 latency;
u64 tsx_tuning;
};
struct pebs_xmm {
u64 xmm[32];
};
enum {
MAX_IORES_LEVEL = 5,
};
struct resource_constraint {
resource_size_t min;
resource_size_t max;
resource_size_t align;
resource_size_t (*alignf)(void *, const struct resource *, resource_size_t, resource_size_t);
void *alignf_data;
};
struct region_devres {
struct resource *parent;
resource_size_t start;
resource_size_t n;
};
struct rcu_cblist {
struct callback_head *head;
struct callback_head **tail;
long len;
};
struct module_use {
struct list_head source_list;
struct list_head target_list;
struct module *source;
struct module *target;
};
struct module_sect_attr {
struct bin_attribute battr;
unsigned long address;
};
struct module_sect_attrs {
struct attribute_group grp;
unsigned int nsections;
struct module_sect_attr attrs[0];
};
struct module_notes_attrs {
struct kobject *dir;
unsigned int notes;
struct bin_attribute attrs[0];
};
struct action_cache {
unsigned long allow_native[8];
};
struct notification;
struct seccomp_filter {
refcount_t refs;
refcount_t users;
bool log;
bool wait_killable_recv;
struct action_cache cache;
struct seccomp_filter *prev;
struct bpf_prog *prog;
struct notification *notif;
struct mutex notify_lock;
wait_queue_head_t wqh;
};
struct notification {
atomic_t requests;
u32 flags;
u64 next_id;
struct list_head notifications;
};
struct seccomp_log_name {
u32 log;
const char *name;
};
enum notify_state {
SECCOMP_NOTIFY_INIT = 0,
SECCOMP_NOTIFY_SENT = 1,
SECCOMP_NOTIFY_REPLIED = 2,
};
struct seccomp_kaddfd {
struct file *file;
int fd;
unsigned int flags;
__u32 ioctl_flags;
union {
bool setfd;
int ret;
};
struct completion completion;
struct list_head list;
};
struct seccomp_knotif {
struct task_struct *task;
u64 id;
const struct seccomp_data *data;
enum notify_state state;
int error;
long val;
u32 flags;
struct completion ready;
struct list_head list;
struct list_head addfd;
};
struct seccomp_notif_sizes {
__u16 seccomp_notif;
__u16 seccomp_notif_resp;
__u16 seccomp_data;
};
struct seccomp_notif {
__u64 id;
__u32 pid;
__u32 flags;
struct seccomp_data data;
};
struct seccomp_notif_resp {
__u64 id;
__s64 val;
__s32 error;
__u32 flags;
};
struct seccomp_notif_addfd {
__u64 id;
__u32 flags;
__u32 srcfd;
__u32 newfd;
__u32 newfd_flags;
};
enum jump_label_type {
JUMP_LABEL_NOP = 0,
JUMP_LABEL_JMP = 1,
};
struct static_key_deferred {
struct static_key key;
unsigned long timeout;
struct delayed_work work;
};
struct static_key_mod {
struct static_key_mod *next;
struct jump_entry *entries;
struct module *mod;
};
typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *);
enum bio_post_read_step {
STEP_INITIAL = 0,
STEP_DECRYPT = 1,
STEP_VERITY = 2,
STEP_MAX = 3,
};
struct bio_post_read_ctx {
struct bio *bio;
struct work_struct work;
unsigned int cur_step;
unsigned int enabled_steps;
};
struct crypto_rfc4543_instance_ctx {
struct crypto_aead_spawn aead;
};
struct gcm_instance_ctx {
struct crypto_skcipher_spawn ctr;
struct crypto_ahash_spawn ghash;
};
struct crypto_gcm_ghash_ctx {
unsigned int cryptlen;
struct scatterlist *src;
int (*complete)(struct aead_request *, u32);
};
struct crypto_gcm_req_priv_ctx {
u8 iv[16];
u8 auth_tag[16];
u8 iauth_tag[16];
struct scatterlist src[3];
struct scatterlist dst[3];
struct scatterlist sg;
struct crypto_gcm_ghash_ctx ghash_ctx;
union {
struct ahash_request ahreq;
struct skcipher_request skreq;
} u;
};
struct crypto_gcm_ctx {
struct crypto_skcipher *ctr;
struct crypto_ahash *ghash;
};
struct crypto_rfc4543_ctx {
struct crypto_aead *child;
struct crypto_sync_skcipher *null;
u8 nonce[4];
};
struct crypto_rfc4106_ctx {
struct crypto_aead *child;
u8 nonce[4];
};
struct crypto_rfc4106_req_ctx {
struct scatterlist src[3];
struct scatterlist dst[3];
struct aead_request subreq;
};
struct crypto_rfc4543_req_ctx {
struct aead_request subreq;
};
struct queue_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct request_queue *, char *);
ssize_t (*store)(struct request_queue *, const char *, size_t);
};
struct pci_dev_reset_methods {
u16 vendor;
u16 device;
int (*reset)(struct pci_dev *, bool);
};
struct pci_dev_acs_enabled {
u16 vendor;
u16 device;
int (*acs_enabled)(struct pci_dev *, u16);
};
struct pci_dev_acs_ops {
u16 vendor;
u16 device;
int (*enable_acs)(struct pci_dev *);
int (*disable_acs_redir)(struct pci_dev *);
};
enum pci_irq_reroute_variant {
INTEL_IRQ_REROUTE_VARIANT = 1,
MAX_IRQ_REROUTE_VARIANTS = 3,
};
enum {
SWITCHTEC_GAS_MRPC_OFFSET = 0,
SWITCHTEC_GAS_TOP_CFG_OFFSET = 4096,
SWITCHTEC_GAS_SW_EVENT_OFFSET = 6144,
SWITCHTEC_GAS_SYS_INFO_OFFSET = 8192,
SWITCHTEC_GAS_FLASH_INFO_OFFSET = 8704,
SWITCHTEC_GAS_PART_CFG_OFFSET = 16384,
SWITCHTEC_GAS_NTB_OFFSET = 65536,
SWITCHTEC_GAS_PFF_CSR_OFFSET = 1261568,
};
enum {
SWITCHTEC_NTB_REG_INFO_OFFSET = 0,
SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384,
SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600,
};
struct pci_fixup {
u16 vendor;
u16 device;
u32 class;
unsigned int class_shift;
int hook_offset;
};
struct nt_partition_info {
u32 xlink_enabled;
u32 target_part_low;
u32 target_part_high;
u32 reserved;
};
struct ntb_info_regs {
u8 partition_count;
u8 partition_id;
u16 reserved1;
u64 ep_map;
u16 requester_id;
u16 reserved2;
u32 reserved3[4];
struct nt_partition_info ntp_info[48];
} __attribute__((packed));
struct ntb_ctrl_regs {
u32 partition_status;
u32 partition_op;
u32 partition_ctrl;
u32 bar_setup;
u32 bar_error;
u16 lut_table_entries;
u16 lut_table_offset;
u32 lut_error;
u16 req_id_table_size;
u16 req_id_table_offset;
u32 req_id_error;
u32 reserved1[7];
struct {
u32 ctl;
u32 win_size;
u64 xlate_addr;
} bar_entry[6];
struct {
u32 win_size;
u32 reserved[3];
} bar_ext_entry[6];
u32 reserved2[192];
u32 req_id_table[512];
u32 reserved3[256];
u64 lut_entry[512];
};
struct acpi_bus_type {
struct list_head list;
const char *name;
bool (*match)(struct device *);
struct acpi_device * (*find_companion)(struct device *);
void (*setup)(struct device *);
};
struct find_child_walk_data {
struct acpi_device *adev;
u64 address;
int score;
bool check_sta;
bool check_children;
};
enum {
MATCH_MTR = 0,
MATCH_MEQ = 1,
MATCH_MLE = 2,
MATCH_MLT = 3,
MATCH_MGE = 4,
MATCH_MGT = 5,
};
struct subsys_interface {
const char *name;
const struct bus_type *subsys;
struct list_head node;
int (*add_dev)(struct device *, struct subsys_interface *);
void (*remove_dev)(struct device *, struct subsys_interface *);
};
struct subsys_dev_iter {
struct klist_iter ki;
const struct device_type *type;
};
struct request_sense;
struct cdrom_generic_command {
unsigned char cmd[12];
unsigned char __attribute__((btf_type_tag("user"))) *buffer;
unsigned int buflen;
int stat;
struct request_sense __attribute__((btf_type_tag("user"))) *sense;
unsigned char data_direction;
int quiet;
int timeout;
union {
void __attribute__((btf_type_tag("user"))) *reserved[1];
void __attribute__((btf_type_tag("user"))) *unused;
};
};
struct request_sense {
__u8 error_code: 7;
__u8 valid: 1;
__u8 segment_number;
__u8 sense_key: 4;
__u8 reserved2: 1;
__u8 ili: 1;
__u8 reserved1: 2;
__u8 information[4];
__u8 add_sense_len;
__u8 command_info[4];
__u8 asc;
__u8 ascq;
__u8 fruc;
__u8 sks[3];
__u8 asb[46];
};
struct scsi_ioctl_command {
unsigned int inlen;
unsigned int outlen;
unsigned char data[0];
};
struct scsi_idlun {
__u32 dev_id;
__u32 host_unique_id;
};
enum latency_range {
lowest_latency = 0,
low_latency = 1,
bulk_latency = 2,
latency_invalid = 255,
};
enum pci_ers_result {
PCI_ERS_RESULT_NONE = 1,
PCI_ERS_RESULT_CAN_RECOVER = 2,
PCI_ERS_RESULT_NEED_RESET = 3,
PCI_ERS_RESULT_DISCONNECT = 4,
PCI_ERS_RESULT_RECOVERED = 5,
PCI_ERS_RESULT_NO_AER_DRIVER = 6,
};
struct e1000_context_desc {
union {
__le32 ip_config;
struct {
u8 ipcss;
u8 ipcso;
__le16 ipcse;
} ip_fields;
} lower_setup;
union {
__le32 tcp_config;
struct {
u8 tucss;
u8 tucso;
__le16 tucse;
} tcp_fields;
} upper_setup;
__le32 cmd_and_length;
union {
__le32 data;
struct {
u8 status;
u8 hdr_len;
__le16 mss;
} fields;
} tcp_seg_setup;
};
struct my_u {
__le64 a;
__le64 b;
};
struct iwl_mvm_mod_params {
bool init_dbg;
int power_scheme;
};
struct iwl_mei_ops {
void (*me_conn_status)(void *, const struct iwl_mei_conn_info *);
void (*rfkill)(void *, bool, bool);
void (*roaming_forbidden)(void *, bool);
void (*sap_connected)(void *);
void (*nic_stolen)(void *);
};
enum iwl_rx_handler_context {
RX_HANDLER_SYNC = 0,
RX_HANDLER_ASYNC_LOCKED = 1,
RX_HANDLER_ASYNC_UNLOCKED = 2,
RX_HANDLER_ASYNC_LOCKED_WIPHY = 3,
};
struct iwl_rx_handlers {
u16 cmd_id;
u16 min_size;
enum iwl_rx_handler_context context;
void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *);
};
enum iwl_datapath_monitor_notif_type {
IWL_DP_MON_NOTIF_TYPE_EXT_CCA = 0,
};
enum iwl_thermal_dual_chain_req_events {
THERMAL_DUAL_CHAIN_REQ_ENABLE = 0,
THERMAL_DUAL_CHAIN_REQ_DISABLE = 1,
};
struct iwl_async_handler_entry {
struct list_head list;
struct iwl_rx_cmd_buffer rxb;
enum iwl_rx_handler_context context;
void (*fn)(struct iwl_mvm *, struct iwl_rx_cmd_buffer *);
};
struct iwl_mvm_reprobe {
struct device *dev;
struct work_struct work;
};
struct cmd {
u8 cmd_id;
u8 group_id;
};
struct iwl_fw_dbg_trigger_cmd {
struct cmd cmds[16];
};
struct iwl_mvm_frob_txf_data {
u8 *buf;
size_t buflen;
};
struct iwl_datapath_monitor_notif {
__le32 type;
u8 mac_id;
u8 reserved[3];
};
struct iwl_thermal_dual_chain_request {
__le32 event;
};
enum rtw_tx_queue_type {
RTW_TX_QUEUE_BK = 0,
RTW_TX_QUEUE_BE = 1,
RTW_TX_QUEUE_VI = 2,
RTW_TX_QUEUE_VO = 3,
RTW_TX_QUEUE_BCN = 4,
RTW_TX_QUEUE_MGMT = 5,
RTW_TX_QUEUE_HI0 = 6,
RTW_TX_QUEUE_H2C = 7,
RTK_MAX_TX_QUEUE_NUM = 8,
};
enum rtw_tx_desc_queue_select {
TX_DESC_QSEL_TID0 = 0,
TX_DESC_QSEL_TID1 = 1,
TX_DESC_QSEL_TID2 = 2,
TX_DESC_QSEL_TID3 = 3,
TX_DESC_QSEL_TID4 = 4,
TX_DESC_QSEL_TID5 = 5,
TX_DESC_QSEL_TID6 = 6,
TX_DESC_QSEL_TID7 = 7,
TX_DESC_QSEL_TID8 = 8,
TX_DESC_QSEL_TID9 = 9,
TX_DESC_QSEL_TID10 = 10,
TX_DESC_QSEL_TID11 = 11,
TX_DESC_QSEL_TID12 = 12,
TX_DESC_QSEL_TID13 = 13,
TX_DESC_QSEL_TID14 = 14,
TX_DESC_QSEL_TID15 = 15,
TX_DESC_QSEL_BEACON = 16,
TX_DESC_QSEL_HIGH = 17,
TX_DESC_QSEL_MGMT = 18,
TX_DESC_QSEL_H2C = 19,
};
enum rtw_rx_queue_type {
RTW_RX_QUEUE_MPDU = 0,
RTW_RX_QUEUE_C2H = 1,
RTK_MAX_RX_QUEUE_NUM = 2,
};
enum rtw_pci_flags {
RTW_PCI_FLAG_NAPI_RUNNING = 0,
NUM_OF_RTW_PCI_FLAGS = 1,
};
enum rtw_ip_sel {
RTW_IP_SEL_PHY = 0,
RTW_IP_SEL_MAC = 1,
RTW_IP_SEL_DBI = 2,
RTW_IP_SEL_UNDEF = 65535,
};
struct rtw_pci_ring {
u8 *head;
dma_addr_t dma;
u8 desc_size;
u32 len;
u32 wp;
u32 rp;
};
struct rtw_pci_tx_ring {
struct rtw_pci_ring r;
struct sk_buff_head queue;
bool queue_stopped;
};
struct rtw_pci_rx_ring {
struct rtw_pci_ring r;
struct sk_buff *buf[512];
};
struct rtw_pci {
struct pci_dev *pdev;
spinlock_t hwirq_lock;
spinlock_t irq_lock;
u32 irq_mask[4];
bool irq_enabled;
bool running;
struct net_device netdev;
struct napi_struct napi;
u16 rx_tag;
unsigned long tx_queued[1];
struct rtw_pci_tx_ring tx_rings[8];
struct rtw_pci_rx_ring rx_rings[2];
u16 link_ctrl;
atomic_t link_usage;
bool rx_no_aspm;
unsigned long flags[1];
void *mmap;
};
struct rtw_pci_tx_buffer_desc {
__le16 buf_size;
__le16 psb_len;
__le32 dma;
};
struct rtw_pci_tx_data {
dma_addr_t dma;
u8 sn;
};
struct rtw_pci_rx_buffer_desc {
__le16 buf_size;
__le16 total_pkt_size;
__le32 dma;
};
struct pstate_data {
int current_pstate;
int min_pstate;
int max_pstate;
int max_pstate_physical;
int perf_ctl_scaling;
int scaling;
int turbo_pstate;
unsigned int min_freq;
unsigned int max_freq;
unsigned int turbo_freq;
};
struct vid_data {
int min;
int max;
int turbo;
int32_t ratio;
};
struct sample {
int32_t core_avg_perf;
int32_t busy_scaled;
u64 aperf;
u64 mperf;
u64 tsc;
u64 time;
};
struct cpudata {
int cpu;
unsigned int policy;
struct update_util_data update_util;
bool update_util_set;
struct pstate_data pstate;
struct vid_data vid;
u64 last_update;
u64 last_sample_time;
u64 aperf_mperf_shift;
u64 prev_aperf;
u64 prev_mperf;
u64 prev_tsc;
struct sample sample;
int32_t min_perf_ratio;
int32_t max_perf_ratio;
struct acpi_processor_performance acpi_perf_data;
bool valid_pss_table;
unsigned int iowait_boost;
s16 epp_powersave;
s16 epp_policy;
s16 epp_default;
s16 epp_cached;
u64 hwp_req_cached;
u64 hwp_cap_cached;
u64 last_io_update;
unsigned int sched_flags;
u32 hwp_boost_min;
bool suspended;
struct delayed_work hwp_notify_work;
};
struct pstate_funcs {
int (*get_max)(int);
int (*get_max_physical)(int);
int (*get_min)(int);
int (*get_turbo)(int);
int (*get_scaling)();
int (*get_cpu_scaling)(int);
int (*get_aperf_mperf_shift)();
u64 (*get_val)(struct cpudata *, int);
void (*get_vid)(struct cpudata *);
};
struct global_params {
bool no_turbo;
bool turbo_disabled;
bool turbo_disabled_mf;
int max_perf_pct;
int min_perf_pct;
};
struct cpufreq_driver {
char name[16];
u16 flags;
void *driver_data;
int (*init)(struct cpufreq_policy *);
int (*verify)(struct cpufreq_policy_data *);
int (*setpolicy)(struct cpufreq_policy *);
int (*target)(struct cpufreq_policy *, unsigned int, unsigned int);
int (*target_index)(struct cpufreq_policy *, unsigned int);
unsigned int (*fast_switch)(struct cpufreq_policy *, unsigned int);
void (*adjust_perf)(unsigned int, unsigned long, unsigned long, unsigned long);
unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int);
int (*target_intermediate)(struct cpufreq_policy *, unsigned int);
unsigned int (*get)(unsigned int);
void (*update_limits)(unsigned int);
int (*bios_limit)(int, unsigned int *);
int (*online)(struct cpufreq_policy *);
int (*offline)(struct cpufreq_policy *);
int (*exit)(struct cpufreq_policy *);
int (*suspend)(struct cpufreq_policy *);
int (*resume)(struct cpufreq_policy *);
void (*ready)(struct cpufreq_policy *);
struct freq_attr **attr;
bool boost_enabled;
int (*set_boost)(struct cpufreq_policy *, int);
void (*register_em)(struct cpufreq_policy *);
};
enum energy_perf_value_index___2 {
EPP_INDEX_DEFAULT = 0,
EPP_INDEX_PERFORMANCE = 1,
EPP_INDEX_BALANCE_PERFORMANCE = 2,
EPP_INDEX_BALANCE_POWERSAVE = 3,
EPP_INDEX_POWERSAVE = 4,
};
enum acpi_preferred_pm_profiles {
PM_UNSPECIFIED = 0,
PM_DESKTOP = 1,
PM_MOBILE = 2,
PM_WORKSTATION = 3,
PM_ENTERPRISE_SERVER = 4,
PM_SOHO_SERVER = 5,
PM_APPLIANCE_PC = 6,
PM_PERFORMANCE_SERVER = 7,
PM_TABLET = 8,
NR_PM_PROFILES = 9,
};
enum {
PSS = 0,
PPC = 1,
};
enum {
CTRL_CMD_UNSPEC = 0,
CTRL_CMD_NEWFAMILY = 1,
CTRL_CMD_DELFAMILY = 2,
CTRL_CMD_GETFAMILY = 3,
CTRL_CMD_NEWOPS = 4,
CTRL_CMD_DELOPS = 5,
CTRL_CMD_GETOPS = 6,
CTRL_CMD_NEWMCAST_GRP = 7,
CTRL_CMD_DELMCAST_GRP = 8,
CTRL_CMD_GETMCAST_GRP = 9,
CTRL_CMD_GETPOLICY = 10,
__CTRL_CMD_MAX = 11,
};
enum genl_validate_flags {
GENL_DONT_VALIDATE_STRICT = 1,
GENL_DONT_VALIDATE_DUMP = 2,
GENL_DONT_VALIDATE_DUMP_STRICT = 4,
};
enum {
CTRL_ATTR_UNSPEC = 0,
CTRL_ATTR_FAMILY_ID = 1,
CTRL_ATTR_FAMILY_NAME = 2,
CTRL_ATTR_VERSION = 3,
CTRL_ATTR_HDRSIZE = 4,
CTRL_ATTR_MAXATTR = 5,
CTRL_ATTR_OPS = 6,
CTRL_ATTR_MCAST_GROUPS = 7,
CTRL_ATTR_POLICY = 8,
CTRL_ATTR_OP_POLICY = 9,
CTRL_ATTR_OP = 10,
__CTRL_ATTR_MAX = 11,
};
enum {
CTRL_ATTR_OP_UNSPEC = 0,
CTRL_ATTR_OP_ID = 1,
CTRL_ATTR_OP_FLAGS = 2,
__CTRL_ATTR_OP_MAX = 3,
};
enum {
CTRL_ATTR_MCAST_GRP_UNSPEC = 0,
CTRL_ATTR_MCAST_GRP_NAME = 1,
CTRL_ATTR_MCAST_GRP_ID = 2,
__CTRL_ATTR_MCAST_GRP_MAX = 3,
};
enum {
CTRL_ATTR_POLICY_UNSPEC = 0,
CTRL_ATTR_POLICY_DO = 1,
CTRL_ATTR_POLICY_DUMP = 2,
__CTRL_ATTR_POLICY_DUMP_MAX = 3,
CTRL_ATTR_POLICY_DUMP_MAX = 2,
};
struct genl_op_iter {
const struct genl_family *family;
struct genl_split_ops doit;
struct genl_split_ops dumpit;
int cmd_idx;
int entry_idx;
u32 cmd;
u8 flags;
};
struct netlink_policy_dump_state;
struct ctrl_dump_policy_ctx {
struct netlink_policy_dump_state *state;
const struct genl_family *rt;
struct genl_op_iter *op_iter;
u32 op;
u16 fam_id;
u8 dump_map: 1;
u8 single_op: 1;
};
struct genl_start_context {
const struct genl_family *family;
struct nlmsghdr *nlh;
struct netlink_ext_ack *extack;
const struct genl_split_ops *ops;
int hdrlen;
};
enum nft_counter_attributes {
NFTA_COUNTER_UNSPEC = 0,
NFTA_COUNTER_BYTES = 1,
NFTA_COUNTER_PACKETS = 2,
NFTA_COUNTER_PAD = 3,
__NFTA_COUNTER_MAX = 4,
};
struct nft_counter {
s64 bytes;
s64 packets;
};
struct nft_counter_percpu_priv {
struct nft_counter __attribute__((btf_type_tag("percpu"))) *counter;
};
struct ip6_tnl_encap_ops {
size_t (*encap_hlen)(struct ip_tunnel_encap *);
int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi6 *);
int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32);
};
struct lwtunnel_encap_ops {
int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *);
void (*destroy_state)(struct lwtunnel_state *);
int (*output)(struct net *, struct sock *, struct sk_buff *);
int (*input)(struct sk_buff *);
int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *);
int (*get_encap_size)(struct lwtunnel_state *);
int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *);
int (*xmit)(struct sk_buff *);
struct module *owner;
};
enum lwtunnel_ip_t {
LWTUNNEL_IP_UNSPEC = 0,
LWTUNNEL_IP_ID = 1,
LWTUNNEL_IP_DST = 2,
LWTUNNEL_IP_SRC = 3,
LWTUNNEL_IP_TTL = 4,
LWTUNNEL_IP_TOS = 5,
LWTUNNEL_IP_FLAGS = 6,
LWTUNNEL_IP_PAD = 7,
LWTUNNEL_IP_OPTS = 8,
__LWTUNNEL_IP_MAX = 9,
};
enum {
LWTUNNEL_IP_OPTS_UNSPEC = 0,
LWTUNNEL_IP_OPTS_GENEVE = 1,
LWTUNNEL_IP_OPTS_VXLAN = 2,
LWTUNNEL_IP_OPTS_ERSPAN = 3,
__LWTUNNEL_IP_OPTS_MAX = 4,
};
enum {
LWTUNNEL_IP_OPT_GENEVE_UNSPEC = 0,
LWTUNNEL_IP_OPT_GENEVE_CLASS = 1,
LWTUNNEL_IP_OPT_GENEVE_TYPE = 2,
LWTUNNEL_IP_OPT_GENEVE_DATA = 3,
__LWTUNNEL_IP_OPT_GENEVE_MAX = 4,
};
enum {
LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0,
LWTUNNEL_IP_OPT_VXLAN_GBP = 1,
__LWTUNNEL_IP_OPT_VXLAN_MAX = 2,
};
enum {
LWTUNNEL_IP_OPT_ERSPAN_UNSPEC = 0,
LWTUNNEL_IP_OPT_ERSPAN_VER = 1,
LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2,
LWTUNNEL_IP_OPT_ERSPAN_DIR = 3,
LWTUNNEL_IP_OPT_ERSPAN_HWID = 4,
__LWTUNNEL_IP_OPT_ERSPAN_MAX = 5,
};
enum lwtunnel_ip6_t {
LWTUNNEL_IP6_UNSPEC = 0,
LWTUNNEL_IP6_ID = 1,
LWTUNNEL_IP6_DST = 2,
LWTUNNEL_IP6_SRC = 3,
LWTUNNEL_IP6_HOPLIMIT = 4,
LWTUNNEL_IP6_TC = 5,
LWTUNNEL_IP6_FLAGS = 6,
LWTUNNEL_IP6_PAD = 7,
LWTUNNEL_IP6_OPTS = 8,
__LWTUNNEL_IP6_MAX = 9,
};
enum {
SEG6_ATTR_UNSPEC = 0,
SEG6_ATTR_DST = 1,
SEG6_ATTR_DSTLEN = 2,
SEG6_ATTR_HMACKEYID = 3,
SEG6_ATTR_SECRET = 4,
SEG6_ATTR_SECRETLEN = 5,
SEG6_ATTR_ALGID = 6,
SEG6_ATTR_HMACINFO = 7,
__SEG6_ATTR_MAX = 8,
};
enum {
SEG6_CMD_UNSPEC = 0,
SEG6_CMD_SETHMAC = 1,
SEG6_CMD_DUMPHMAC = 2,
SEG6_CMD_SET_TUNSRC = 3,
SEG6_CMD_GET_TUNSRC = 4,
__SEG6_CMD_MAX = 5,
};
struct sr6_tlv {
__u8 type;
__u8 len;
__u8 data[0];
};
struct x86_init_resources {
void (*probe_roms)();
void (*reserve_resources)();
char * (*memory_setup)();
};
struct x86_init_mpparse {
void (*setup_ioapic_ids)();
void (*find_mptable)();
void (*early_parse_smp_cfg)();
void (*parse_smp_cfg)();
};
struct x86_init_irqs {
void (*pre_vector_init)();
void (*intr_init)();
void (*intr_mode_select)();
void (*intr_mode_init)();
struct irq_domain * (*create_pci_msi_domain)();
};
struct x86_init_oem {
void (*arch_setup)();
void (*banner)();
};
struct x86_init_paging {
void (*pagetable_init)();
};
struct x86_init_timers {
void (*setup_percpu_clockev)();
void (*timer_init)();
void (*wallclock_init)();
};
struct x86_init_iommu {
int (*iommu_init)();
};
struct x86_init_pci {
int (*arch_init)();
int (*init)();
void (*init_irq)();
void (*fixup_irqs)();
};
struct x86_hyper_init {
void (*init_platform)();
void (*guest_late_init)();
bool (*x2apic_available)();
bool (*msi_ext_dest_id)();
void (*init_mem_mapping)();
void (*init_after_bootmem)();
};
struct x86_init_acpi {
void (*set_root_pointer)(u64);
u64 (*get_root_pointer)();
void (*reduced_hw_early_init)();
};
struct x86_init_ops {
struct x86_init_resources resources;
struct x86_init_mpparse mpparse;
struct x86_init_irqs irqs;
struct x86_init_oem oem;
struct x86_init_paging paging;
struct x86_init_timers timers;
struct x86_init_iommu iommu;
struct x86_init_pci pci;
struct x86_hyper_init hyper;
struct x86_init_acpi acpi;
};
struct x86_cpuinit_ops {
void (*setup_percpu_clockev)();
void (*early_percpu_clock_init)();
void (*fixup_cpu_id)(struct cpuinfo_x86 *, int);
bool parallel_bringup;
};
struct x86_legacy_devices {
int pnpbios;
};
struct x86_legacy_features {
enum x86_legacy_i8042_state i8042;
int rtc;
int warm_reset;
int no_vga;
int reserve_bios_regions;
struct x86_legacy_devices devices;
};
struct ghcb;
struct x86_hyper_runtime {
void (*pin_vcpu)(int);
void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *);
bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *);
bool (*is_private_mmio)(u64);
};
struct x86_guest {
bool (*enc_status_change_prepare)(unsigned long, int, bool);
bool (*enc_status_change_finish)(unsigned long, int, bool);
bool (*enc_tlb_flush_required)(bool);
bool (*enc_cache_flush_required)();
};
struct x86_platform_ops {
unsigned long (*calibrate_cpu)();
unsigned long (*calibrate_tsc)();
void (*get_wallclock)(struct timespec64 *);
int (*set_wallclock)(const struct timespec64 *);
void (*iommu_shutdown)();
bool (*is_untracked_pat_range)(u64, u64);
void (*nmi_init)();
unsigned char (*get_nmi_reason)();
void (*save_sched_clock_state)();
void (*restore_sched_clock_state)();
void (*apic_post_init)();
struct x86_legacy_features legacy;
void (*set_legacy_features)();
void (*realmode_reserve)();
void (*realmode_init)();
struct x86_hyper_runtime hyper;
struct x86_guest guest;
};
struct x86_apic_ops {
unsigned int (*io_apic_read)(unsigned int, unsigned int);
void (*restore)();
};
struct bpf_iter__bpf_link {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_link *link;
};
};
struct bpf_iter_seq_link_info {
u32 link_id;
};
enum pgt_entry {
NORMAL_PMD = 0,
HPAGE_PMD = 1,
NORMAL_PUD = 2,
HPAGE_PUD = 3,
};
typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *);
typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *);
typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int);
typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int);
typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int);
typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int);
typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *);
typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *);
typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int);
typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *);
typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *);
struct wb_writeback_work;
typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *);
struct wb_writeback_work {
long nr_pages;
struct super_block *sb;
enum writeback_sync_modes sync_mode;
unsigned int tagged_writepages: 1;
unsigned int for_kupdate: 1;
unsigned int range_cyclic: 1;
unsigned int for_background: 1;
unsigned int for_sync: 1;
unsigned int auto_free: 1;
enum wb_reason reason;
struct list_head list;
struct wb_completion *done;
};
typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *);
typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *);
typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *);
typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *);
typedef void (*btf_trace_writeback_pages_written)(void *, long);
typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *);
typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *);
typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *);
typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int);
typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long);
typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long);
typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long);
typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *);
typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long);
typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long);
typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *);
typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *);
typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *);
typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *);
typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *);
struct trace_event_raw_writeback_folio_template {
struct trace_entry ent;
char name[32];
ino_t ino;
unsigned long index;
char __data[0];
};
struct trace_event_raw_writeback_dirty_inode_template {
struct trace_entry ent;
char name[32];
ino_t ino;
unsigned long state;
unsigned long flags;
char __data[0];
};
struct trace_event_raw_inode_foreign_history {
struct trace_entry ent;
char name[32];
ino_t ino;
ino_t cgroup_ino;
unsigned int history;
char __data[0];
};
struct trace_event_raw_inode_switch_wbs {
struct trace_entry ent;
char name[32];
ino_t ino;
ino_t old_cgroup_ino;
ino_t new_cgroup_ino;
char __data[0];
};
struct trace_event_raw_track_foreign_dirty {
struct trace_entry ent;
char name[32];
u64 bdi_id;
ino_t ino;
unsigned int memcg_id;
ino_t cgroup_ino;
ino_t page_cgroup_ino;
char __data[0];
};
struct trace_event_raw_flush_foreign {
struct trace_entry ent;
char name[32];
ino_t cgroup_ino;
unsigned int frn_bdi_id;
unsigned int frn_memcg_id;
char __data[0];
};
struct trace_event_raw_writeback_write_inode_template {
struct trace_entry ent;
char name[32];
ino_t ino;
int sync_mode;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_work_class {
struct trace_entry ent;
char name[32];
long nr_pages;
dev_t sb_dev;
int sync_mode;
int for_kupdate;
int range_cyclic;
int for_background;
int reason;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_pages_written {
struct trace_entry ent;
long pages;
char __data[0];
};
struct trace_event_raw_writeback_class {
struct trace_entry ent;
char name[32];
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_bdi_register {
struct trace_entry ent;
char name[32];
char __data[0];
};
struct trace_event_raw_wbc_class {
struct trace_entry ent;
char name[32];
long nr_to_write;
long pages_skipped;
int sync_mode;
int for_kupdate;
int for_background;
int for_reclaim;
int range_cyclic;
long range_start;
long range_end;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_queue_io {
struct trace_entry ent;
char name[32];
unsigned long older;
long age;
int moved;
int reason;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_global_dirty_state {
struct trace_entry ent;
unsigned long nr_dirty;
unsigned long nr_writeback;
unsigned long background_thresh;
unsigned long dirty_thresh;
unsigned long dirty_limit;
unsigned long nr_dirtied;
unsigned long nr_written;
char __data[0];
};
struct trace_event_raw_bdi_dirty_ratelimit {
struct trace_entry ent;
char bdi[32];
unsigned long write_bw;
unsigned long avg_write_bw;
unsigned long dirty_rate;
unsigned long dirty_ratelimit;
unsigned long task_ratelimit;
unsigned long balanced_dirty_ratelimit;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_balance_dirty_pages {
struct trace_entry ent;
char bdi[32];
unsigned long limit;
unsigned long setpoint;
unsigned long dirty;
unsigned long bdi_setpoint;
unsigned long bdi_dirty;
unsigned long dirty_ratelimit;
unsigned long task_ratelimit;
unsigned int dirtied;
unsigned int dirtied_pause;
unsigned long paused;
long pause;
unsigned long period;
long think;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_sb_inodes_requeue {
struct trace_entry ent;
char name[32];
ino_t ino;
unsigned long state;
unsigned long dirtied_when;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_single_inode_template {
struct trace_entry ent;
char name[32];
ino_t ino;
unsigned long state;
unsigned long dirtied_when;
unsigned long writeback_index;
long nr_to_write;
unsigned long wrote;
ino_t cgroup_ino;
char __data[0];
};
struct trace_event_raw_writeback_inode_template {
struct trace_entry ent;
dev_t dev;
ino_t ino;
unsigned long state;
__u16 mode;
unsigned long dirtied_when;
char __data[0];
};
struct inode_switch_wbs_context {
struct rcu_work work;
struct bdi_writeback *new_wb;
struct inode *inodes[0];
};
struct trace_event_data_offsets_writeback_folio_template {};
struct trace_event_data_offsets_writeback_dirty_inode_template {};
struct trace_event_data_offsets_inode_foreign_history {};
struct trace_event_data_offsets_inode_switch_wbs {};
struct trace_event_data_offsets_track_foreign_dirty {};
struct trace_event_data_offsets_flush_foreign {};
struct trace_event_data_offsets_writeback_write_inode_template {};
struct trace_event_data_offsets_writeback_work_class {};
struct trace_event_data_offsets_writeback_pages_written {};
struct trace_event_data_offsets_writeback_class {};
struct trace_event_data_offsets_writeback_bdi_register {};
struct trace_event_data_offsets_wbc_class {};
struct trace_event_data_offsets_writeback_queue_io {};
struct trace_event_data_offsets_global_dirty_state {};
struct trace_event_data_offsets_bdi_dirty_ratelimit {};
struct trace_event_data_offsets_balance_dirty_pages {};
struct trace_event_data_offsets_writeback_sb_inodes_requeue {};
struct trace_event_data_offsets_writeback_single_inode_template {};
struct trace_event_data_offsets_writeback_inode_template {};
struct btrfs_csum_item {
__u8 csum;
};
struct crypto_comp {
struct crypto_tfm base;
};
struct blk_mq_hw_ctx_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct blk_mq_hw_ctx *, char *);
};
struct pci_bus_resource {
struct list_head list;
struct resource *res;
unsigned int flags;
};
struct vesafb_par {
u32 pseudo_palette[256];
resource_size_t base;
resource_size_t size;
int wc_cookie;
struct resource *region;
};
struct acpi_exception_info {
char *name;
};
struct clk_mux {
struct clk_hw hw;
void *reg;
const u32 *table;
u32 mask;
u8 shift;
u8 flags;
spinlock_t *lock;
};
struct ata_acpi_hotplug_context {
struct acpi_hotplug_context hp;
union {
struct ata_port *ap;
struct ata_device *dev;
} data;
};
struct ata_acpi_gtf {
u8 tf[7];
};
enum rtl_fw_opcode {
PHY_READ = 0,
PHY_DATA_OR = 1,
PHY_DATA_AND = 2,
PHY_BJMPN = 3,
PHY_MDIO_CHG = 4,
PHY_CLEAR_READCOUNT = 7,
PHY_WRITE = 8,
PHY_READCOUNT_EQ_SKIP = 9,
PHY_COMP_EQ_SKIPN = 10,
PHY_COMP_NEQ_SKIPN = 11,
PHY_WRITE_PREVIOUS = 12,
PHY_SKIPN = 13,
PHY_DELAY_MS = 14,
};
struct fw_info {
u32 magic;
char version[32];
__le32 fw_start;
__le32 fw_len;
u8 chksum;
} __attribute__((packed));
struct iwl_umac_error_event_table {
u32 valid;
u32 error_id;
u32 blink1;
u32 blink2;
u32 ilink1;
u32 ilink2;
u32 data1;
u32 data2;
u32 data3;
u32 umac_major;
u32 umac_minor;
u32 frame_pointer;
u32 stack_pointer;
u32 cmd_header;
u32 nic_isr_pref;
};
struct iwl_error_event_table {
u32 valid;
u32 error_id;
u32 trm_hw_status0;
u32 trm_hw_status1;
u32 blink2;
u32 ilink1;
u32 ilink2;
u32 data1;
u32 data2;
u32 data3;
u32 bcon_time;
u32 tsf_low;
u32 tsf_hi;
u32 gp1;
u32 gp2;
u32 fw_rev_type;
u32 major;
u32 minor;
u32 hw_ver;
u32 brd_ver;
u32 log_pc;
u32 frame_ptr;
u32 stack_ptr;
u32 hcmd;
u32 isr0;
u32 isr1;
u32 isr2;
u32 isr3;
u32 isr4;
u32 last_cmd_id;
u32 wait_event;
u32 l2p_control;
u32 l2p_duration;
u32 l2p_mhvalid;
u32 l2p_addr_match;
u32 lmpm_pmg_sel;
u32 u_timestamp;
u32 flow_handler;
};
struct iwl_tcm_error_event_table {
u32 valid;
u32 error_id;
u32 blink2;
u32 ilink1;
u32 ilink2;
u32 data1;
u32 data2;
u32 data3;
u32 logpc;
u32 frame_pointer;
u32 stack_pointer;
u32 msgid;
u32 isr;
u32 hw_status[5];
u32 sw_status[1];
u32 reserved[4];
};
struct iwl_rcm_error_event_table {
u32 valid;
u32 error_id;
u32 blink2;
u32 ilink1;
u32 ilink2;
u32 data1;
u32 data2;
u32 data3;
u32 logpc;
u32 frame_pointer;
u32 stack_pointer;
u32 msgid;
u32 isr;
u32 frame_hw_status;
u32 mbx_lmac_to_rcm_req;
u32 mbx_rcm_to_lmac_req;
u32 mh_ctl;
u32 mh_addr1_lo;
u32 mh_info;
u32 mh_err;
u32 reserved[3];
};
enum iwl_time_sync_protocol_type {
IWL_TIME_SYNC_PROTOCOL_TM = 1,
IWL_TIME_SYNC_PROTOCOL_FTM = 2,
};
struct iwl_time_msmt_ptp_ctx {
union {
struct {
u8 element_id;
u8 length;
__le16 reserved;
u8 data[128];
} ftm;
struct {
u8 element_id;
u8 length;
u8 data[128];
} tm;
};
};
struct iwl_time_msmt_notify {
u8 peer_addr[6];
u8 reserved[2];
__le32 dialog_token;
__le32 followup_dialog_token;
__le32 t1_hi;
__le32 t1_lo;
__le32 t1_max_err;
__le32 t4_hi;
__le32 t4_lo;
__le32 t4_max_err;
__le32 t2_hi;
__le32 t2_lo;
__le32 t2_max_err;
__le32 t3_hi;
__le32 t3_lo;
__le32 t3_max_err;
struct iwl_time_msmt_ptp_ctx ptp;
};
struct iwl_time_msmt_cfm_notify {
u8 peer_addr[6];
u8 reserved[2];
__le32 dialog_token;
__le32 t1_hi;
__le32 t1_lo;
__le32 t1_max_err;
__le32 t4_hi;
__le32 t4_lo;
__le32 t4_max_err;
};
struct iwl_time_sync_cfg_cmd {
__le32 protocols;
u8 peer_addr[6];
u8 reserved[2];
};
enum snoop_when {
SUBMIT = 0,
COMPLETE___2 = 1,
};
struct usb_dev_state {
struct list_head list;
struct usb_device *dev;
struct file *file;
spinlock_t lock;
struct list_head async_pending;
struct list_head async_completed;
struct list_head memory_list;
wait_queue_head_t wait;
wait_queue_head_t wait_for_resume;
unsigned int discsignr;
struct pid *disc_pid;
const struct cred *cred;
sigval_t disccontext;
unsigned long ifclaimed;
u32 disabled_bulk_eps;
unsigned long interface_allowed_mask;
int not_yet_resumed;
bool suspend_allowed;
bool privileges_dropped;
};
struct usb_memory;
struct async {
struct list_head asynclist;
struct usb_dev_state *ps;
struct pid *pid;
const struct cred *cred;
unsigned int signr;
unsigned int ifnum;
void __attribute__((btf_type_tag("user"))) *userbuffer;
void __attribute__((btf_type_tag("user"))) *userurb;
sigval_t userurb_sigval;
struct urb *urb;
struct usb_memory *usbm;
unsigned int mem_usage;
int status;
u8 bulk_addr;
u8 bulk_status;
};
struct usb_memory {
struct list_head memlist;
int vma_use_count;
int urb_use_count;
u32 size;
void *mem;
dma_addr_t dma_handle;
unsigned long vm_start;
struct usb_dev_state *ps;
};
struct usbdevfs_iso_packet_desc {
unsigned int length;
unsigned int actual_length;
unsigned int status;
};
struct usbdevfs_urb {
unsigned char type;
unsigned char endpoint;
int status;
unsigned int flags;
void __attribute__((btf_type_tag("user"))) *buffer;
int buffer_length;
int actual_length;
int start_frame;
union {
int number_of_packets;
unsigned int stream_id;
};
int error_count;
unsigned int signr;
void __attribute__((btf_type_tag("user"))) *usercontext;
struct usbdevfs_iso_packet_desc iso_frame_desc[0];
};
struct usbdevfs_ioctl {
int ifno;
int ioctl_code;
void __attribute__((btf_type_tag("user"))) *data;
};
struct usbdevfs_getdriver {
unsigned int interface;
char driver[256];
};
struct usbdevfs_bulktransfer {
unsigned int ep;
unsigned int len;
unsigned int timeout;
void __attribute__((btf_type_tag("user"))) *data;
};
struct usbdevfs_disconnect_claim {
unsigned int interface;
unsigned int flags;
char driver[256];
};
struct usbdevfs_ctrltransfer {
__u8 bRequestType;
__u8 bRequest;
__u16 wValue;
__u16 wIndex;
__u16 wLength;
__u32 timeout;
void __attribute__((btf_type_tag("user"))) *data;
};
struct usbdevfs_connectinfo {
unsigned int devnum;
unsigned char slow;
};
struct usbdevfs_setinterface {
unsigned int interface;
unsigned int altsetting;
};
struct usbdevfs_disconnectsignal {
unsigned int signr;
void __attribute__((btf_type_tag("user"))) *context;
};
struct usbdevfs_conninfo_ex {
__u32 size;
__u32 busnum;
__u32 devnum;
__u32 speed;
__u8 num_ports;
__u8 ports[7];
};
struct usbdevfs_streams {
unsigned int num_streams;
unsigned int num_eps;
unsigned char eps[0];
};
struct io_err_c {
struct dm_dev *dev;
sector_t start;
};
struct scm_timestamping64 {
struct __kernel_timespec ts[3];
};
struct scm_timestamping {
struct __kernel_old_timespec ts[3];
};
enum {
ETHTOOL_A_RSS_UNSPEC = 0,
ETHTOOL_A_RSS_HEADER = 1,
ETHTOOL_A_RSS_CONTEXT = 2,
ETHTOOL_A_RSS_HFUNC = 3,
ETHTOOL_A_RSS_INDIR = 4,
ETHTOOL_A_RSS_HKEY = 5,
ETHTOOL_A_RSS_INPUT_XFRM = 6,
__ETHTOOL_A_RSS_CNT = 7,
ETHTOOL_A_RSS_MAX = 6,
};
struct rss_req_info {
struct ethnl_req_info base;
u32 rss_context;
};
struct rss_reply_data {
struct ethnl_reply_data base;
u32 indir_size;
u32 hkey_size;
u32 hfunc;
u32 input_xfrm;
u32 *indir_table;
u8 *hkey;
};
enum nft_meta_attributes {
NFTA_META_UNSPEC = 0,
NFTA_META_DREG = 1,
NFTA_META_KEY = 2,
NFTA_META_SREG = 3,
__NFTA_META_MAX = 4,
};
struct brnf_frag_data {
char mac[22];
u8 encap_size;
u8 size;
u16 vlan_tci;
__be16 vlan_proto;
};
enum nf_br_hook_priorities {
NF_BR_PRI_FIRST = -2147483648,
NF_BR_PRI_NAT_DST_BRIDGED = -300,
NF_BR_PRI_FILTER_BRIDGED = -200,
NF_BR_PRI_BRNF = 0,
NF_BR_PRI_NAT_DST_OTHER = 100,
NF_BR_PRI_FILTER_OTHER = 200,
NF_BR_PRI_NAT_SRC = 300,
NF_BR_PRI_LAST = 2147483647,
};
struct brnf_net {
bool enabled;
struct ctl_table_header *ctl_hdr;
int call_iptables;
int call_ip6tables;
int call_arptables;
int filter_vlan_tagged;
int filter_pppoe_tagged;
int pass_vlan_indev;
};
typedef int (*objpool_init_obj_cb)(void *, void *);
union apic_ir {
unsigned long map[4];
u32 regs[8];
};
enum proc_cn_event {
PROC_EVENT_NONE = 0,
PROC_EVENT_FORK = 1,
PROC_EVENT_EXEC = 2,
PROC_EVENT_UID = 4,
PROC_EVENT_GID = 64,
PROC_EVENT_SID = 128,
PROC_EVENT_PTRACE = 256,
PROC_EVENT_COMM = 512,
PROC_EVENT_NONZERO_EXIT = 536870912,
PROC_EVENT_COREDUMP = 1073741824,
PROC_EVENT_EXIT = 2147483648,
};
struct syscall_trace_enter {
struct trace_entry ent;
int nr;
unsigned long args[0];
};
struct syscall_trace_exit {
struct trace_entry ent;
int nr;
long ret;
};
struct syscall_tp_t {
struct trace_entry ent;
int syscall_nr;
unsigned long args[6];
};
struct syscall_tp_t___2 {
struct trace_entry ent;
int syscall_nr;
unsigned long ret;
};
struct perf_cpu_context {
struct perf_event_context ctx;
struct perf_event_context *task_ctx;
int online;
struct perf_cgroup *cgrp;
int heap_size;
struct perf_event **heap;
struct perf_event *heap_default[2];
};
struct swevent_hlist;
struct swevent_htable {
struct swevent_hlist *swevent_hlist;
struct mutex hlist_mutex;
int hlist_refcount;
int recursion[4];
};
struct swevent_hlist {
struct hlist_head heads[256];
struct callback_head callback_head;
};
struct min_heap_callbacks {
int elem_size;
bool (*less)(const void *, const void *);
void (*swp)(void *, void *);
};
struct pmu_event_list {
raw_spinlock_t lock;
struct list_head list;
};
enum event_type_t {
EVENT_FLEXIBLE = 1,
EVENT_PINNED = 2,
EVENT_TIME = 4,
EVENT_CPU = 8,
EVENT_CGROUP = 16,
EVENT_ALL = 3,
};
enum perf_event_type {
PERF_RECORD_MMAP = 1,
PERF_RECORD_LOST = 2,
PERF_RECORD_COMM = 3,
PERF_RECORD_EXIT = 4,
PERF_RECORD_THROTTLE = 5,
PERF_RECORD_UNTHROTTLE = 6,
PERF_RECORD_FORK = 7,
PERF_RECORD_READ = 8,
PERF_RECORD_SAMPLE = 9,
PERF_RECORD_MMAP2 = 10,
PERF_RECORD_AUX = 11,
PERF_RECORD_ITRACE_START = 12,
PERF_RECORD_LOST_SAMPLES = 13,
PERF_RECORD_SWITCH = 14,
PERF_RECORD_SWITCH_CPU_WIDE = 15,
PERF_RECORD_NAMESPACES = 16,
PERF_RECORD_KSYMBOL = 17,
PERF_RECORD_BPF_EVENT = 18,
PERF_RECORD_CGROUP = 19,
PERF_RECORD_TEXT_POKE = 20,
PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
PERF_RECORD_MAX = 22,
};
enum {
NET_NS_INDEX = 0,
UTS_NS_INDEX = 1,
IPC_NS_INDEX = 2,
PID_NS_INDEX = 3,
USER_NS_INDEX = 4,
MNT_NS_INDEX = 5,
CGROUP_NS_INDEX = 6,
NR_NAMESPACES = 7,
};
enum perf_event_read_format {
PERF_FORMAT_TOTAL_TIME_ENABLED = 1,
PERF_FORMAT_TOTAL_TIME_RUNNING = 2,
PERF_FORMAT_ID = 4,
PERF_FORMAT_GROUP = 8,
PERF_FORMAT_LOST = 16,
PERF_FORMAT_MAX = 32,
};
enum perf_probe_config {
PERF_PROBE_CONFIG_IS_RETPROBE = 1,
PERF_UPROBE_REF_CTR_OFFSET_BITS = 32,
PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32,
};
enum perf_event_ioc_flags {
PERF_IOC_FLAG_GROUP = 1,
};
enum {
IF_STATE_ACTION = 0,
IF_STATE_SOURCE = 1,
IF_STATE_END = 2,
};
enum {
IF_ACT_NONE = -1,
IF_ACT_FILTER = 0,
IF_ACT_START = 1,
IF_ACT_STOP = 2,
IF_SRC_FILE = 3,
IF_SRC_KERNEL = 4,
IF_SRC_FILEADDR = 5,
IF_SRC_KERNELADDR = 6,
};
typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *);
struct perf_switch_event {
struct task_struct *task;
struct task_struct *next_prev;
struct {
struct perf_event_header header;
u32 next_prev_pid;
u32 next_prev_tid;
} event_id;
};
typedef void perf_iterate_f(struct perf_event *, void *);
struct stop_event_data {
struct perf_event *event;
unsigned int restart;
};
typedef int (*remote_function_f)(void *);
struct remote_function_call {
struct task_struct *p;
remote_function_f func;
void *info;
int ret;
};
struct perf_task_event {
struct task_struct *task;
struct perf_event_context *task_ctx;
struct {
struct perf_event_header header;
u32 pid;
u32 ppid;
u32 tid;
u32 ptid;
u64 time;
} event_id;
};
struct perf_ns_link_info {
__u64 dev;
__u64 ino;
};
struct perf_comm_event {
struct task_struct *task;
char *comm;
int comm_size;
struct {
struct perf_event_header header;
u32 pid;
u32 tid;
} event_id;
};
struct perf_mmap_event {
struct vm_area_struct *vma;
const char *file_name;
int file_size;
int maj;
int min;
u64 ino;
u64 ino_generation;
u32 prot;
u32 flags;
u8 build_id[20];
u32 build_id_size;
struct {
struct perf_event_header header;
u32 pid;
u32 tid;
u64 start;
u64 len;
u64 pgoff;
} event_id;
};
struct perf_aux_event {
struct perf_event_header header;
u64 offset;
u64 size;
u64 flags;
};
struct perf_ksymbol_event {
const char *name;
int name_len;
struct {
struct perf_event_header header;
u64 addr;
u32 len;
u16 ksym_type;
u16 flags;
} event_id;
};
struct perf_aux_event___2 {
struct perf_event_header header;
u64 hw_id;
};
struct __group_key {
int cpu;
struct pmu *pmu;
struct cgroup *cgroup;
};
struct perf_cgroup_event {
char *path;
int path_size;
struct {
struct perf_event_header header;
u64 id;
char path[0];
} event_id;
};
struct min_heap {
void *data;
int nr;
int size;
};
struct perf_aux_event___3 {
struct perf_event_header header;
u32 pid;
u32 tid;
};
struct perf_read_event {
struct perf_event_header header;
u32 pid;
u32 tid;
};
struct perf_namespaces_event {
struct task_struct *task;
struct {
struct perf_event_header header;
u32 pid;
u32 tid;
u64 nr_namespaces;
struct perf_ns_link_info link_info[7];
} event_id;
};
struct perf_bpf_event {
struct bpf_prog *prog;
struct {
struct perf_event_header header;
u16 type;
u16 flags;
u32 id;
u8 tag[8];
} event_id;
};
struct perf_text_poke_event {
const void *old_bytes;
const void *new_bytes;
size_t pad;
u16 old_len;
u16 new_len;
struct {
struct perf_event_header header;
u64 addr;
} event_id;
};
struct event_function_struct {
struct perf_event *event;
event_f func;
void *data;
};
struct perf_read_data {
struct perf_event *event;
bool group;
int ret;
};
struct remote_output {
struct perf_buffer *rb;
int err;
};
struct fname {
__u32 hash;
__u32 minor_hash;
struct rb_node rb_hash;
struct fname *next;
__u32 inode;
__u8 name_len;
__u8 file_type;
char name[0];
};
struct ext4_dir_entry_2 {
__le32 inode;
__le16 rec_len;
__u8 name_len;
__u8 file_type;
char name[255];
};
struct ext4_dir_entry_hash {
__le32 hash;
__le32 minor_hash;
};
enum btrfs_flush_state {
FLUSH_DELAYED_ITEMS_NR = 1,
FLUSH_DELAYED_ITEMS = 2,
FLUSH_DELAYED_REFS_NR = 3,
FLUSH_DELAYED_REFS = 4,
FLUSH_DELALLOC = 5,
FLUSH_DELALLOC_WAIT = 6,
FLUSH_DELALLOC_FULL = 7,
ALLOC_CHUNK = 8,
ALLOC_CHUNK_FORCE = 9,
RUN_DELAYED_IPUTS = 10,
COMMIT_TRANS = 11,
};
struct reserve_ticket {
u64 bytes;
int error;
bool steal;
struct list_head list;
wait_queue_head_t wait;
};
struct drbg_state;
struct drbg_state_ops {
int (*update)(struct drbg_state *, struct list_head *, int);
int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *);
int (*crypto_init)(struct drbg_state *);
int (*crypto_fini)(struct drbg_state *);
};
enum drbg_seed_state {
DRBG_SEED_STATE_UNSEEDED = 0,
DRBG_SEED_STATE_PARTIAL = 1,
DRBG_SEED_STATE_FULL = 2,
};
struct drbg_string {
const unsigned char *buf;
size_t len;
struct list_head list;
};
struct drbg_core;
struct drbg_state {
struct mutex drbg_mutex;
unsigned char *V;
unsigned char *Vbuf;
unsigned char *C;
unsigned char *Cbuf;
size_t reseed_ctr;
size_t reseed_threshold;
unsigned char *scratchpad;
unsigned char *scratchpadbuf;
void *priv_data;
struct crypto_skcipher *ctr_handle;
struct skcipher_request *ctr_req;
__u8 *outscratchpadbuf;
__u8 *outscratchpad;
struct crypto_wait ctr_wait;
struct scatterlist sg_in;
struct scatterlist sg_out;
enum drbg_seed_state seeded;
unsigned long last_seed_time;
bool pr;
bool fips_primed;
unsigned char *prev;
struct crypto_rng *jent;
const struct drbg_state_ops *d_ops;
const struct drbg_core *core;
struct drbg_string test_data;
};
typedef uint32_t drbg_flag_t;
struct drbg_core {
drbg_flag_t flags;
__u8 statelen;
__u8 blocklen_bytes;
char cra_name[128];
char backend_cra_name[128];
};
enum drbg_prefixes {
DRBG_PREFIX0 = 0,
DRBG_PREFIX1 = 1,
DRBG_PREFIX2 = 2,
DRBG_PREFIX3 = 3,
};
struct sdesc {
struct shash_desc shash;
char ctx[0];
};
enum {
IOPRIO_WHO_PROCESS = 1,
IOPRIO_WHO_PGRP = 2,
IOPRIO_WHO_USER = 3,
};
struct once_work {
struct work_struct work;
struct static_key_true *key;
struct module *module;
};
struct sha256_state {
u32 state[8];
u64 count;
u8 buf[64];
};
typedef void sha256_block_fn(struct sha256_state *, const u8 *, int);
enum msi_desc_filter {
MSI_DESC_ALL = 0,
MSI_DESC_NOTASSOCIATED = 1,
MSI_DESC_ASSOCIATED = 2,
};
struct apd_private_data;
struct apd_device_desc {
unsigned int fixed_clk_rate;
struct property_entry *properties;
int (*setup)(struct apd_private_data *);
};
struct apd_private_data {
struct clk *clk;
struct acpi_device *adev;
const struct apd_device_desc *dev_desc;
};
struct acpi_get_devices_info {
acpi_walk_callback user_function;
void *context;
const char *hid;
};
struct tty_file_private {
struct tty_struct *tty;
struct file *file;
struct list_head list;
};
typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int);
enum mdio_mutex_lock_class {
MDIO_MUTEX_NORMAL = 0,
MDIO_MUTEX_MUX = 1,
MDIO_MUTEX_NESTED = 2,
};
struct trace_event_raw_mdio_access {
struct trace_entry ent;
char busid[61];
char read;
u8 addr;
u16 val;
unsigned int regnum;
char __data[0];
};
struct trace_event_data_offsets_mdio_access {};
struct mdio_bus_stat_attr {
int addr;
unsigned int field_offset;
};
struct iwl_power_vec_entry {
struct iwl_powertable_cmd cmd;
u8 no_dtim;
} __attribute__((packed));
enum iwl_power_level {
IWL_POWER_INDEX_1 = 0,
IWL_POWER_INDEX_2 = 1,
IWL_POWER_INDEX_3 = 2,
IWL_POWER_INDEX_4 = 3,
IWL_POWER_INDEX_5 = 4,
IWL_POWER_NUM = 5,
};
struct rtw_phy_pg_cfg_pair {
u32 band;
u32 rf_path;
u32 tx_num;
u32 addr;
u32 bitmask;
u32 data;
};
struct rtw_txpwr_lmt_cfg_pair {
u8 regd;
u8 band;
u8 bw;
u8 rs;
u8 ch;
s8 txpwr_lmt;
};
struct datalink_proto {
unsigned char type[8];
struct llc_sap *sap;
unsigned short header_length;
int (*rcvfunc)(struct sk_buff *, struct net_device *, struct packet_type *, struct net_device *);
int (*request)(struct datalink_proto *, struct sk_buff *, const unsigned char *);
struct list_head node;
};
enum {
ETHTOOL_A_MODULE_UNSPEC = 0,
ETHTOOL_A_MODULE_HEADER = 1,
ETHTOOL_A_MODULE_POWER_MODE_POLICY = 2,
ETHTOOL_A_MODULE_POWER_MODE = 3,
__ETHTOOL_A_MODULE_CNT = 4,
ETHTOOL_A_MODULE_MAX = 3,
};
struct module_reply_data {
struct ethnl_reply_data base;
struct ethtool_module_power_mode_params power;
};
enum sk_pacing {
SK_PACING_NONE = 0,
SK_PACING_NEEDED = 1,
SK_PACING_FQ = 2,
};
struct bictcp {
u32 cnt;
u32 last_max_cwnd;
u32 last_cwnd;
u32 last_time;
u32 bic_origin_point;
u32 bic_K;
u32 delay_min;
u32 epoch_start;
u32 ack_cnt;
u32 tcp_cwnd;
u16 unused;
u8 sample_cnt;
u8 found;
u32 round_start;
u32 end_seq;
u32 last_ack;
u32 curr_rtt;
};
union net_bridge_eht_addr {
__be32 ip4;
struct in6_addr ip6;
};
struct net_bridge_group_eht_set {
struct rb_node rb_node;
union net_bridge_eht_addr src_addr;
struct rb_root entry_tree;
struct timer_list timer;
struct net_bridge_port_group *pg;
struct net_bridge *br;
struct net_bridge_mcast_gc mcast_gc;
};
struct net_bridge_group_eht_host;
struct net_bridge_group_eht_set_entry {
struct rb_node rb_node;
struct hlist_node host_list;
union net_bridge_eht_addr h_addr;
struct timer_list timer;
struct net_bridge *br;
struct net_bridge_group_eht_set *eht_set;
struct net_bridge_group_eht_host *h_parent;
struct net_bridge_mcast_gc mcast_gc;
};
struct net_bridge_group_eht_host {
struct rb_node rb_node;
union net_bridge_eht_addr h_addr;
struct hlist_head set_entries;
unsigned int num_entries;
unsigned char filter_mode;
struct net_bridge_port_group *pg;
};
struct printf_spec {
unsigned int type: 8;
int field_width: 24;
unsigned int flags: 8;
unsigned int base: 8;
int precision: 16;
};
struct page_flags_fields {
int width;
int shift;
int mask;
const struct printf_spec *spec;
const char *name;
};
enum format_type {
FORMAT_TYPE_NONE = 0,
FORMAT_TYPE_WIDTH = 1,
FORMAT_TYPE_PRECISION = 2,
FORMAT_TYPE_CHAR = 3,
FORMAT_TYPE_STR = 4,
FORMAT_TYPE_PTR = 5,
FORMAT_TYPE_PERCENT_CHAR = 6,
FORMAT_TYPE_INVALID = 7,
FORMAT_TYPE_LONG_LONG = 8,
FORMAT_TYPE_ULONG = 9,
FORMAT_TYPE_LONG = 10,
FORMAT_TYPE_UBYTE = 11,
FORMAT_TYPE_BYTE = 12,
FORMAT_TYPE_USHORT = 13,
FORMAT_TYPE_SHORT = 14,
FORMAT_TYPE_UINT = 15,
FORMAT_TYPE_INT = 16,
FORMAT_TYPE_SIZE_T = 17,
FORMAT_TYPE_PTRDIFF = 18,
};
struct apm_bios_info {
__u16 version;
__u16 cseg;
__u32 offset;
__u16 cseg_16;
__u16 dseg;
__u16 flags;
__u16 cseg_len;
__u16 cseg_16_len;
__u16 dseg_len;
};
struct ist_info {
__u32 signature;
__u32 command;
__u32 event;
__u32 perf_level;
};
struct sys_desc_table {
__u16 length;
__u8 table[14];
};
struct olpc_ofw_header {
__u32 ofw_magic;
__u32 ofw_version;
__u32 cif_handler;
__u32 irq_desc_table;
};
struct edid_info {
unsigned char dummy[128];
};
struct efi_info {
__u32 efi_loader_signature;
__u32 efi_systab;
__u32 efi_memdesc_size;
__u32 efi_memdesc_version;
__u32 efi_memmap;
__u32 efi_memmap_size;
__u32 efi_systab_hi;
__u32 efi_memmap_hi;
};
struct setup_header {
__u8 setup_sects;
__u16 root_flags;
__u32 syssize;
__u16 ram_size;
__u16 vid_mode;
__u16 root_dev;
__u16 boot_flag;
__u16 jump;
__u32 header;
__u16 version;
__u32 realmode_swtch;
__u16 start_sys_seg;
__u16 kernel_version;
__u8 type_of_loader;
__u8 loadflags;
__u16 setup_move_size;
__u32 code32_start;
__u32 ramdisk_image;
__u32 ramdisk_size;
__u32 bootsect_kludge;
__u16 heap_end_ptr;
__u8 ext_loader_ver;
__u8 ext_loader_type;
__u32 cmd_line_ptr;
__u32 initrd_addr_max;
__u32 kernel_alignment;
__u8 relocatable_kernel;
__u8 min_alignment;
__u16 xloadflags;
__u32 cmdline_size;
__u32 hardware_subarch;
__u64 hardware_subarch_data;
__u32 payload_offset;
__u32 payload_length;
__u64 setup_data;
__u64 pref_address;
__u32 init_size;
__u32 handover_offset;
__u32 kernel_info_offset;
} __attribute__((packed));
struct boot_e820_entry {
__u64 addr;
__u64 size;
__u32 type;
} __attribute__((packed));
struct edd_device_params {
__u16 length;
__u16 info_flags;
__u32 num_default_cylinders;
__u32 num_default_heads;
__u32 sectors_per_track;
__u64 number_of_sectors;
__u16 bytes_per_sector;
__u32 dpte_ptr;
__u16 key;
__u8 device_path_info_length;
__u8 reserved2;
__u16 reserved3;
__u8 host_bus_type[4];
__u8 interface_type[8];
union {
struct {
__u16 base_address;
__u16 reserved1;
__u32 reserved2;
} isa;
struct {
__u8 bus;
__u8 slot;
__u8 function;
__u8 channel;
__u32 reserved;
} pci;
struct {
__u64 reserved;
} ibnd;
struct {
__u64 reserved;
} xprs;
struct {
__u64 reserved;
} htpt;
struct {
__u64 reserved;
} unknown;
} interface_path;
union {
struct {
__u8 device;
__u8 reserved1;
__u16 reserved2;
__u32 reserved3;
__u64 reserved4;
} ata;
struct {
__u8 device;
__u8 lun;
__u8 reserved1;
__u8 reserved2;
__u32 reserved3;
__u64 reserved4;
} atapi;
struct {
__u16 id;
__u64 lun;
__u16 reserved1;
__u32 reserved2;
} __attribute__((packed)) scsi;
struct {
__u64 serial_number;
__u64 reserved;
} usb;
struct {
__u64 eui;
__u64 reserved;
} i1394;
struct {
__u64 wwid;
__u64 lun;
} fibre;
struct {
__u64 identity_tag;
__u64 reserved;
} i2o;
struct {
__u32 array_number;
__u32 reserved1;
__u64 reserved2;
} raid;
struct {
__u8 device;
__u8 reserved1;
__u16 reserved2;
__u32 reserved3;
__u64 reserved4;
} sata;
struct {
__u64 reserved1;
__u64 reserved2;
} unknown;
} device_path;
__u8 reserved4;
__u8 checksum;
} __attribute__((packed));
struct edd_info {
__u8 device;
__u8 version;
__u16 interface_support;
__u16 legacy_max_cylinder;
__u8 legacy_max_head;
__u8 legacy_sectors_per_track;
struct edd_device_params params;
};
struct boot_params {
struct screen_info screen_info;
struct apm_bios_info apm_bios_info;
__u8 _pad2[4];
__u64 tboot_addr;
struct ist_info ist_info;
__u64 acpi_rsdp_addr;
__u8 _pad3[8];
__u8 hd0_info[16];
__u8 hd1_info[16];
struct sys_desc_table sys_desc_table;
struct olpc_ofw_header olpc_ofw_header;
__u32 ext_ramdisk_image;
__u32 ext_ramdisk_size;
__u32 ext_cmd_line_ptr;
__u8 _pad4[112];
__u32 cc_blob_address;
struct edid_info edid_info;
struct efi_info efi_info;
__u32 alt_mem_k;
__u32 scratch;
__u8 e820_entries;
__u8 eddbuf_entries;
__u8 edd_mbr_sig_buf_entries;
__u8 kbd_status;
__u8 secure_boot;
__u8 _pad5[2];
__u8 sentinel;
__u8 _pad6[1];
struct setup_header hdr;
__u8 _pad7[36];
__u32 edd_mbr_sig_buffer[16];
struct boot_e820_entry e820_table[128];
__u8 _pad8[48];
struct edd_info eddbuf[6];
__u8 _pad9[276];
};
struct idt_bits {
u16 ist: 3;
u16 zero: 5;
u16 type: 5;
u16 dpl: 2;
u16 p: 1;
};
struct gate_struct {
u16 offset_low;
u16 segment;
struct idt_bits bits;
u16 offset_middle;
u32 offset_high;
u32 reserved;
};
typedef struct gate_struct gate_desc;
enum x86_hardware_subarch {
X86_SUBARCH_PC = 0,
X86_SUBARCH_LGUEST = 1,
X86_SUBARCH_XEN = 2,
X86_SUBARCH_INTEL_MID = 3,
X86_SUBARCH_CE4100 = 4,
X86_NR_SUBARCHS = 5,
};
enum {
GATE_INTERRUPT = 14,
GATE_TRAP = 15,
GATE_CALL = 12,
GATE_TASK = 5,
};
typedef unsigned long p4dval_t;
struct boot_params_to_save {
unsigned int start;
unsigned int len;
};
struct idt_data {
unsigned int vector;
unsigned int segment;
struct idt_bits bits;
const void *addr;
};
struct va_alignment {
int flags;
unsigned long mask;
unsigned long bits;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
enum {
PAGE_WAS_MAPPED = 1,
PAGE_WAS_MLOCKED = 2,
PAGE_OLD_STATES = 3,
};
struct rmap_walk_control {
void *arg;
bool try_lock;
bool contended;
bool (*rmap_one)(struct folio *, struct vm_area_struct *, unsigned long, void *);
int (*done)(struct folio *);
struct anon_vma * (*anon_lock)(struct folio *, struct rmap_walk_control *);
bool (*invalid_vma)(struct vm_area_struct *, void *);
};
struct migrate_pages_stats {
int nr_succeeded;
int nr_failed_pages;
int nr_thp_succeeded;
int nr_thp_failed;
int nr_thp_split;
int nr_split;
};
enum {
BLOCK_BITMAP = 0,
INODE_BITMAP = 1,
INODE_TABLE = 2,
GROUP_TABLE_COUNT = 3,
};
struct ext4_rcu_ptr {
struct callback_head rcu;
void *ptr;
};
struct ext4_new_flex_group_data {
struct ext4_new_group_data *groups;
__u16 *bg_flags;
ext4_group_t resize_bg;
ext4_group_t count;
};
enum btrfs_loop_type {
LOOP_CACHING_NOWAIT = 0,
LOOP_CACHING_WAIT = 1,
LOOP_UNSET_SIZE_CLASS = 2,
LOOP_ALLOC_CHUNK = 3,
LOOP_WRONG_SIZE_CLASS = 4,
LOOP_NO_EMPTY_SIZE = 5,
};
struct walk_control {
u64 refs[8];
u64 flags[8];
struct btrfs_key update_progress;
struct btrfs_key drop_progress;
int drop_level;
int stage;
int level;
int shared_level;
int update_ref;
int keep_locks;
int reada_slot;
int reada_count;
int restarted;
};
struct crypto_istat_rng {
atomic64_t generate_cnt;
atomic64_t generate_tlen;
atomic64_t seed_cnt;
atomic64_t err_cnt;
};
struct io_rw {
struct kiocb kiocb;
u64 addr;
u32 len;
rwf_t flags;
};
struct io_rw_state {
struct iov_iter iter;
struct iov_iter_state iter_state;
struct iovec fast_iov[8];
};
struct io_async_rw {
struct io_rw_state s;
const struct iovec *free_iovec;
size_t bytes_done;
struct wait_page_queue wpq;
};
struct lpi_constraints {
acpi_handle handle;
int min_dstate;
};
struct amd_lps0_hid_device_data {
const bool check_off_by_one;
};
struct acpi_s2idle_dev_ops {
struct list_head list_node;
void (*prepare)();
void (*check)();
void (*restore)();
};
struct lpi_device_constraint_amd {
char *name;
int enabled;
int function_states;
int min_dstate;
};
struct lpi_device_info {
char *name;
int enabled;
union acpi_object *package;
};
struct lpi_device_constraint {
int uid;
int min_dstate;
int function_states;
};
struct acpi_predefined_names {
const char *name;
u8 type;
char *val;
};
struct timer_rand_state {
unsigned long last_time;
long last_delta;
long last_delta2;
};
enum {
CRNG_EMPTY = 0,
CRNG_EARLY = 1,
CRNG_READY = 2,
};
struct batch_u8 {
u8 entropy[96];
local_lock_t lock;
unsigned long generation;
unsigned int position;
};
struct batch_u16 {
u16 entropy[48];
local_lock_t lock;
unsigned long generation;
unsigned int position;
};
struct batch_u32 {
u32 entropy[24];
local_lock_t lock;
unsigned long generation;
unsigned int position;
};
struct batch_u64 {
u64 entropy[12];
local_lock_t lock;
unsigned long generation;
unsigned int position;
};
struct crng {
u8 key[32];
unsigned long generation;
local_lock_t lock;
};
struct fast_pool {
unsigned long pool[4];
unsigned long last;
unsigned int count;
struct timer_list mix;
};
enum {
NUM_TRIAL_SAMPLES = 8192,
MAX_SAMPLES_PER_BIT = 66,
};
enum {
MIX_INFLIGHT = 2147483648,
};
enum chacha_constants {
CHACHA_CONSTANT_EXPA = 1634760805,
CHACHA_CONSTANT_ND_3 = 857760878,
CHACHA_CONSTANT_2_BY = 2036477234,
CHACHA_CONSTANT_TE_K = 1797285236,
};
enum {
POOL_BITS = 256,
POOL_READY_BITS = 256,
POOL_EARLY_BITS = 128,
};
enum {
CRNG_RESEED_START_INTERVAL = 1000,
CRNG_RESEED_INTERVAL = 60000,
};
struct entropy_timer_state {
unsigned long entropy;
struct timer_list timer;
atomic_t samples;
unsigned int samples_per_bit;
};
enum dm_uevent_type {
DM_UEVENT_PATH_FAILED = 0,
DM_UEVENT_PATH_REINSTATED = 1,
};
struct dm_uevent {
struct mapped_device *md;
enum kobject_action action;
struct kobj_uevent_env ku_env;
struct list_head elist;
char name[128];
char uuid[129];
};
struct net_hotdata {
struct packet_offload ip_packet_offload;
struct net_offload tcpv4_offload;
struct net_protocol tcp_protocol;
struct net_offload udpv4_offload;
struct net_protocol udp_protocol;
struct packet_offload ipv6_packet_offload;
struct net_offload tcpv6_offload;
struct inet6_protocol tcpv6_protocol;
struct inet6_protocol udpv6_protocol;
struct net_offload udpv6_offload;
struct list_head offload_base;
struct list_head ptype_all;
struct kmem_cache *skbuff_cache;
struct kmem_cache *skbuff_fclone_cache;
struct kmem_cache *skb_small_head_cache;
struct rps_sock_flow_table __attribute__((btf_type_tag("rcu"))) *rps_sock_flow_table;
u32 rps_cpu_mask;
int gro_normal_batch;
int netdev_budget;
int netdev_budget_usecs;
int tstamp_prequeue;
int max_backlog;
int dev_tx_weight;
int dev_rx_weight;
};
enum nft_nat_types {
NFT_NAT_SNAT = 0,
NFT_NAT_DNAT = 1,
};
enum nft_nat_attributes {
NFTA_NAT_UNSPEC = 0,
NFTA_NAT_TYPE = 1,
NFTA_NAT_FAMILY = 2,
NFTA_NAT_REG_ADDR_MIN = 3,
NFTA_NAT_REG_ADDR_MAX = 4,
NFTA_NAT_REG_PROTO_MIN = 5,
NFTA_NAT_REG_PROTO_MAX = 6,
NFTA_NAT_FLAGS = 7,
__NFTA_NAT_MAX = 8,
};
struct nft_nat {
u8 sreg_addr_min;
u8 sreg_addr_max;
u8 sreg_proto_min;
u8 sreg_proto_max;
enum nf_nat_manip_type type: 8;
u8 family;
u16 flags;
};
struct stp_proto {
unsigned char group_address[6];
void (*rcv)(const struct stp_proto *, struct sk_buff *, struct net_device *);
void *data;
};
enum switchdev_notifier_type {
SWITCHDEV_FDB_ADD_TO_BRIDGE = 1,
SWITCHDEV_FDB_DEL_TO_BRIDGE = 2,
SWITCHDEV_FDB_ADD_TO_DEVICE = 3,
SWITCHDEV_FDB_DEL_TO_DEVICE = 4,
SWITCHDEV_FDB_OFFLOADED = 5,
SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6,
SWITCHDEV_PORT_OBJ_ADD = 7,
SWITCHDEV_PORT_OBJ_DEL = 8,
SWITCHDEV_PORT_ATTR_SET = 9,
SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10,
SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11,
SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12,
SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13,
SWITCHDEV_VXLAN_FDB_OFFLOADED = 14,
SWITCHDEV_BRPORT_OFFLOADED = 15,
SWITCHDEV_BRPORT_UNOFFLOADED = 16,
SWITCHDEV_BRPORT_REPLAY = 17,
};
enum assoc_status {
ASSOC_SUCCESS = 0,
ASSOC_REJECTED = 1,
ASSOC_TIMEOUT = 2,
ASSOC_ABANDON = 3,
};
enum cfg80211_assoc_req_flags {
ASSOC_REQ_DISABLE_HT = 1,
ASSOC_REQ_DISABLE_VHT = 2,
ASSOC_REQ_USE_RRM = 4,
CONNECT_REQ_EXTERNAL_AUTH_SUPPORT = 8,
ASSOC_REQ_DISABLE_HE = 16,
ASSOC_REQ_DISABLE_EHT = 32,
CONNECT_REQ_MLO_SUPPORT = 64,
ASSOC_REQ_SPP_AMSDU = 128,
};
enum ieee80211_mle_subelems {
IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0,
IEEE80211_MLE_SUBELEM_FRAGMENT = 254,
};
enum ieee80211_timeout_interval_type {
WLAN_TIMEOUT_REASSOC_DEADLINE = 1,
WLAN_TIMEOUT_KEY_LIFETIME = 2,
WLAN_TIMEOUT_ASSOC_COMEBACK = 3,
};
enum ieee80211_elems_parse_error {
IEEE80211_PARSE_ERR_INVALID_END = 1,
IEEE80211_PARSE_ERR_DUP_ELEM = 2,
IEEE80211_PARSE_ERR_BAD_ELEM_SIZE = 4,
IEEE80211_PARSE_ERR_UNEXPECTED_ELEM = 8,
IEEE80211_PARSE_ERR_DUP_NEST_ML_BASIC = 16,
};
enum ieee80211_vht_opmode_bits {
IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK = 3,
IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ = 0,
IEEE80211_OPMODE_NOTIF_CHANWIDTH_40MHZ = 1,
IEEE80211_OPMODE_NOTIF_CHANWIDTH_80MHZ = 2,
IEEE80211_OPMODE_NOTIF_CHANWIDTH_160MHZ = 3,
IEEE80211_OPMODE_NOTIF_BW_160_80P80 = 4,
IEEE80211_OPMODE_NOTIF_RX_NSS_MASK = 112,
IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT = 4,
IEEE80211_OPMODE_NOTIF_RX_NSS_TYPE_BF = 128,
};
enum ieee80211_idle_options {
WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1,
};
struct cfg80211_rx_assoc_resp_data {
const u8 *buf;
size_t len;
const u8 *req_ies;
size_t req_ies_len;
int uapsd_queues;
const u8 *ap_mld_addr;
struct {
u8 addr[6];
struct cfg80211_bss *bss;
u16 status;
} links[15];
};
struct ieee80211_mle_basic_common_info {
u8 len;
u8 mld_mac_addr[6];
u8 variable[0];
};
struct cfg80211_assoc_failure {
const u8 *ap_mld_addr;
struct cfg80211_bss *bss[15];
bool timeout;
};
struct ieee80211_country_ie_triplet {
union {
struct {
u8 first_channel;
u8 num_channels;
s8 max_power;
} chans;
struct {
u8 reg_extension_id;
u8 reg_class;
u8 coverage_class;
} ext;
};
};
struct _fpx_sw_bytes {
__u32 magic1;
__u32 extended_size;
__u64 xfeatures;
__u32 xstate_size;
__u32 padding[7];
};
struct user_i387_ia32_struct {
u32 cwd;
u32 swd;
u32 twd;
u32 fip;
u32 fcs;
u32 foo;
u32 fos;
u32 st_space[20];
};
struct _cache_table {
unsigned char descriptor;
char cache_type;
short size;
};
enum _cache_type {
CTYPE_NULL = 0,
CTYPE_DATA = 1,
CTYPE_INST = 2,
CTYPE_UNIFIED = 3,
};
union _cpuid4_leaf_eax {
struct {
enum _cache_type type: 5;
unsigned int level: 3;
unsigned int is_self_initializing: 1;
unsigned int is_fully_associative: 1;
unsigned int reserved: 4;
unsigned int num_threads_sharing: 12;
unsigned int num_cores_on_die: 6;
} split;
u32 full;
};
union _cpuid4_leaf_ebx {
struct {
unsigned int coherency_line_size: 12;
unsigned int physical_line_partition: 10;
unsigned int ways_of_associativity: 10;
} split;
u32 full;
};
union _cpuid4_leaf_ecx {
struct {
unsigned int number_of_sets: 32;
} split;
u32 full;
};
union l1_cache {
struct {
unsigned int line_size: 8;
unsigned int lines_per_tag: 8;
unsigned int assoc: 8;
unsigned int size_in_kb: 8;
};
unsigned int val;
};
union l2_cache {
struct {
unsigned int line_size: 8;
unsigned int lines_per_tag: 4;
unsigned int assoc: 4;
unsigned int size_in_kb: 16;
};
unsigned int val;
};
union l3_cache {
struct {
unsigned int line_size: 8;
unsigned int lines_per_tag: 4;
unsigned int assoc: 4;
unsigned int res: 2;
unsigned int size_encoded: 14;
};
unsigned int val;
};
struct _cpuid4_info_regs {
union _cpuid4_leaf_eax eax;
union _cpuid4_leaf_ebx ebx;
union _cpuid4_leaf_ecx ecx;
unsigned int id;
unsigned long size;
struct amd_northbridge *nb;
};
struct snapshot_handle {
unsigned int cur;
void *buffer;
int sync_read;
};
struct snapshot_data {
struct snapshot_handle handle;
int swap;
int mode;
bool frozen;
bool ready;
bool platform_support;
bool free_bitmaps;
dev_t dev;
};
struct resume_swap_area {
__kernel_loff_t offset;
__u32 dev;
} __attribute__((packed));
typedef void (*btf_trace_bpf_trace_printk)(void *, const char *);
struct bpf_nested_pt_regs {
struct pt_regs regs[3];
};
struct bpf_trace_sample_data {
struct perf_sample_data sds[3];
};
struct send_signal_irq_work {
struct irq_work irq_work;
struct task_struct *task;
u32 sig;
enum pid_type type;
};
struct bpf_raw_tp_regs {
struct pt_regs regs[3];
};
enum {
BPF_F_UPROBE_MULTI_RETURN = 1,
};
enum {
BPF_F_GET_BRANCH_RECORDS_SIZE = 1,
};
typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long);
typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *);
typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *);
typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *);
typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *);
typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *);
typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32);
typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64);
typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32);
typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32);
typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32);
struct btf_ptr;
typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64);
struct btf_ptr {
void *ptr;
__u32 type_id;
__u32 flags;
};
typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64);
struct bpf_perf_event_value;
typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32);
struct bpf_perf_event_value {
__u64 counter;
__u64 enabled;
__u64 running;
};
typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64);
typedef u64 (*btf_bpf_get_current_task)();
typedef u64 (*btf_bpf_get_current_task_btf)();
typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *);
typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32);
typedef u64 (*btf_bpf_send_signal)(u32);
typedef u64 (*btf_bpf_send_signal_thread)(u32);
typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32);
typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64);
typedef u64 (*btf_bpf_get_func_ip_tracing)(void *);
typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *);
typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *);
typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *);
typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *);
typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *);
typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *);
typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *);
typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *);
typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64);
typedef u64 (*btf_get_func_arg)(void *, u32, u64 *);
typedef u64 (*btf_get_func_ret)(void *, u64 *);
typedef u64 (*btf_get_func_arg_cnt)(void *);
typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64);
typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64);
typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64);
typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32);
typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64);
typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64);
typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64);
typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64);
struct trace_event_raw_bpf_trace_printk {
struct trace_entry ent;
u32 __data_loc_bpf_string;
char __data[0];
};
struct bpf_trace_run_ctx {
struct bpf_run_ctx run_ctx;
u64 bpf_cookie;
bool is_uprobe;
};
struct trace_uprobe;
struct uprobe_dispatch_data {
struct trace_uprobe *tu;
unsigned long bp_addr;
};
struct bpf_uprobe;
struct bpf_uprobe_multi_run_ctx {
struct bpf_run_ctx run_ctx;
unsigned long entry_ip;
struct bpf_uprobe *uprobe;
};
struct bpf_uprobe_multi_link;
struct bpf_uprobe {
struct bpf_uprobe_multi_link *link;
loff_t offset;
unsigned long ref_ctr_offset;
u64 cookie;
struct uprobe_consumer consumer;
};
struct bpf_uprobe_multi_link {
struct path path;
struct bpf_link link;
u32 cnt;
u32 flags;
struct bpf_uprobe *uprobes;
struct task_struct *task;
};
struct bpf_trace_module {
struct module *module;
struct list_head list;
};
struct trace_event_data_offsets_bpf_trace_printk {
u32 bpf_string;
const void *bpf_string_ptr_;
};
typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *);
struct bpf_key {
struct key *key;
bool has_ref;
};
struct perf_event_query_bpf {
__u32 ids_len;
__u32 prog_cnt;
__u32 ids[0];
};
struct zswap_tree {
struct rb_root rbroot;
spinlock_t lock;
};
enum zswap_init_type {
ZSWAP_UNINIT = 0,
ZSWAP_INIT_SUCCEED = 1,
ZSWAP_INIT_FAILED = 2,
};
enum {
PERCPU_REF_INIT_ATOMIC = 1,
PERCPU_REF_INIT_DEAD = 2,
PERCPU_REF_ALLOW_REINIT = 4,
};
struct crypto_acomp_ctx;
struct zswap_pool {
struct zpool *zpools[32];
struct crypto_acomp_ctx __attribute__((btf_type_tag("percpu"))) *acomp_ctx;
struct percpu_ref ref;
struct list_head list;
struct work_struct release_work;
struct hlist_node node;
char tfm_name[128];
};
struct crypto_acomp_ctx {
struct crypto_acomp *acomp;
struct acomp_req *req;
struct crypto_wait wait;
u8 *buffer;
struct mutex mutex;
bool is_sleepable;
};
struct zswap_entry {
struct rb_node rbnode;
swp_entry_t swpentry;
unsigned int length;
struct zswap_pool *pool;
union {
unsigned long handle;
unsigned long value;
};
struct obj_cgroup *objcg;
struct list_head lru;
};
enum fsnotify_iter_type {
FSNOTIFY_ITER_TYPE_INODE = 0,
FSNOTIFY_ITER_TYPE_VFSMOUNT = 1,
FSNOTIFY_ITER_TYPE_SB = 2,
FSNOTIFY_ITER_TYPE_PARENT = 3,
FSNOTIFY_ITER_TYPE_INODE2 = 4,
FSNOTIFY_ITER_TYPE_COUNT = 5,
};
typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int);
typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *);
typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *);
typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int);
typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int);
typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int);
typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int);
typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *);
typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *);
typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long);
typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t);
typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long);
typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long);
typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long);
typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t);
struct trace_event_raw_jbd2_checkpoint {
struct trace_entry ent;
dev_t dev;
int result;
char __data[0];
};
struct trace_event_raw_jbd2_commit {
struct trace_entry ent;
dev_t dev;
char sync_commit;
tid_t transaction;
char __data[0];
};
struct trace_event_raw_jbd2_end_commit {
struct trace_entry ent;
dev_t dev;
char sync_commit;
tid_t transaction;
tid_t head;
char __data[0];
};
struct trace_event_raw_jbd2_submit_inode_data {
struct trace_entry ent;
dev_t dev;
ino_t ino;
char __data[0];
};
struct trace_event_raw_jbd2_handle_start_class {
struct trace_entry ent;
dev_t dev;
tid_t tid;
unsigned int type;
unsigned int line_no;
int requested_blocks;
char __data[0];
};
struct trace_event_raw_jbd2_handle_extend {
struct trace_entry ent;
dev_t dev;
tid_t tid;
unsigned int type;
unsigned int line_no;
int buffer_credits;
int requested_blocks;
char __data[0];
};
struct trace_event_raw_jbd2_handle_stats {
struct trace_entry ent;
dev_t dev;
tid_t tid;
unsigned int type;
unsigned int line_no;
int interval;
int sync;
int requested_blocks;
int dirtied_blocks;
char __data[0];
};
struct trace_event_raw_jbd2_run_stats {
struct trace_entry ent;
dev_t dev;
tid_t tid;
unsigned long wait;
unsigned long request_delay;
unsigned long running;
unsigned long locked;
unsigned long flushing;
unsigned long logging;
__u32 handle_count;
__u32 blocks;
__u32 blocks_logged;
char __data[0];
};
struct trace_event_raw_jbd2_checkpoint_stats {
struct trace_entry ent;
dev_t dev;
tid_t tid;
unsigned long chp_time;
__u32 forced_to_close;
__u32 written;
__u32 dropped;
char __data[0];
};
struct trace_event_raw_jbd2_update_log_tail {
struct trace_entry ent;
dev_t dev;
tid_t tail_sequence;
tid_t first_tid;
unsigned long block_nr;
unsigned long freed;
char __data[0];
};
struct trace_event_raw_jbd2_write_superblock {
struct trace_entry ent;
dev_t dev;
blk_opf_t write_flags;
char __data[0];
};
struct trace_event_raw_jbd2_lock_buffer_stall {
struct trace_entry ent;
dev_t dev;
unsigned long stall_ms;
char __data[0];
};
struct trace_event_raw_jbd2_journal_shrink {
struct trace_entry ent;
dev_t dev;
unsigned long nr_to_scan;
unsigned long count;
char __data[0];
};
struct trace_event_raw_jbd2_shrink_scan_exit {
struct trace_entry ent;
dev_t dev;
unsigned long nr_to_scan;
unsigned long nr_shrunk;
unsigned long count;
char __data[0];
};
struct trace_event_raw_jbd2_shrink_checkpoint_list {
struct trace_entry ent;
dev_t dev;
tid_t first_tid;
tid_t tid;
tid_t last_tid;
unsigned long nr_freed;
tid_t next_tid;
char __data[0];
};
struct trace_event_data_offsets_jbd2_checkpoint {};
struct trace_event_data_offsets_jbd2_commit {};
struct trace_event_data_offsets_jbd2_end_commit {};
struct trace_event_data_offsets_jbd2_submit_inode_data {};
struct trace_event_data_offsets_jbd2_handle_start_class {};
struct trace_event_data_offsets_jbd2_handle_extend {};
struct trace_event_data_offsets_jbd2_handle_stats {};
struct trace_event_data_offsets_jbd2_run_stats {};
struct trace_event_data_offsets_jbd2_checkpoint_stats {};
struct trace_event_data_offsets_jbd2_update_log_tail {};
struct trace_event_data_offsets_jbd2_write_superblock {};
struct trace_event_data_offsets_jbd2_lock_buffer_stall {};
struct trace_event_data_offsets_jbd2_journal_shrink {};
struct trace_event_data_offsets_jbd2_shrink_scan_exit {};
struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {};
struct jbd2_stats_proc_session {
journal_t *journal;
struct transaction_stats_s *stats;
int start;
int max;
};
enum {
Opt_err___6 = 0,
Opt_enc = 1,
Opt_hash = 2,
};
struct vfs_cap_data {
__le32 magic_etc;
struct {
__le32 permitted;
__le32 inheritable;
} data[2];
};
struct vfs_ns_cap_data {
__le32 magic_etc;
struct {
__le32 permitted;
__le32 inheritable;
} data[2];
__le32 rootid;
};
struct cpu_vfs_cap_data {
__u32 magic_etc;
kuid_t rootid;
kernel_cap_t permitted;
kernel_cap_t inheritable;
};
struct bfq_sched_data;
struct bfq_queue;
struct bfq_entity {
struct rb_node rb_node;
bool on_st_or_in_serv;
u64 start;
u64 finish;
struct rb_root *tree;
u64 min_start;
int service;
int budget;
int allocated;
int dev_weight;
int weight;
int new_weight;
int orig_weight;
struct bfq_entity *parent;
struct bfq_sched_data *my_sched_data;
struct bfq_sched_data *sched_data;
int prio_changed;
bool in_groups_with_pending_reqs;
struct bfq_queue *last_bfqq_created;
};
struct bfq_ttime {
u64 last_end_request;
u64 ttime_total;
unsigned long ttime_samples;
u64 ttime_mean;
};
struct bfq_data;
struct bfq_weight_counter;
struct bfq_io_cq;
struct bfq_queue {
int ref;
int stable_ref;
struct bfq_data *bfqd;
unsigned short ioprio;
unsigned short ioprio_class;
unsigned short new_ioprio;
unsigned short new_ioprio_class;
u64 last_serv_time_ns;
unsigned int inject_limit;
unsigned long decrease_time_jif;
struct bfq_queue *new_bfqq;
struct rb_node pos_node;
struct rb_root *pos_root;
struct rb_root sort_list;
struct request *next_rq;
int queued[2];
int meta_pending;
struct list_head fifo;
struct bfq_entity entity;
struct bfq_weight_counter *weight_counter;
int max_budget;
unsigned long budget_timeout;
int dispatched;
unsigned long flags;
struct list_head bfqq_list;
struct bfq_ttime ttime;
u64 io_start_time;
u64 tot_idle_time;
u32 seek_history;
struct hlist_node burst_list_node;
sector_t last_request_pos;
unsigned int requests_within_timer;
pid_t pid;
struct bfq_io_cq *bic;
unsigned long wr_cur_max_time;
unsigned long soft_rt_next_start;
unsigned long last_wr_start_finish;
unsigned int wr_coeff;
unsigned long last_idle_bklogged;
unsigned long service_from_backlogged;
unsigned long service_from_wr;
unsigned long wr_start_at_switch_to_srt;
unsigned long split_time;
unsigned long first_IO_time;
unsigned long creation_time;
struct bfq_queue *waker_bfqq;
struct bfq_queue *tentative_waker_bfqq;
unsigned int num_waker_detections;
u64 waker_detection_started;
struct hlist_node woken_list_node;
struct hlist_head woken_list;
unsigned int actuator_idx;
};
struct bfq_group;
struct bfq_data {
struct request_queue *queue;
struct list_head dispatch;
struct bfq_group *root_group;
struct rb_root_cached queue_weights_tree;
unsigned int num_groups_with_pending_reqs;
unsigned int busy_queues[3];
int wr_busy_queues;
int queued;
int tot_rq_in_driver;
int rq_in_driver[8];
bool nonrot_with_queueing;
int max_rq_in_driver;
int hw_tag_samples;
int hw_tag;
int budgets_assigned;
struct hrtimer idle_slice_timer;
struct bfq_queue *in_service_queue;
sector_t last_position;
sector_t in_serv_last_pos;
u64 last_completion;
struct bfq_queue *last_completed_rq_bfqq;
struct bfq_queue *last_bfqq_created;
u64 last_empty_occupied_ns;
bool wait_dispatch;
struct request *waited_rq;
bool rqs_injected;
u64 first_dispatch;
u64 last_dispatch;
ktime_t last_budget_start;
ktime_t last_idling_start;
unsigned long last_idling_start_jiffies;
int peak_rate_samples;
u32 sequential_samples;
u64 tot_sectors_dispatched;
u32 last_rq_max_size;
u64 delta_from_first;
u32 peak_rate;
int bfq_max_budget;
struct list_head active_list[8];
struct list_head idle_list;
u64 bfq_fifo_expire[2];
unsigned int bfq_back_penalty;
unsigned int bfq_back_max;
u32 bfq_slice_idle;
int bfq_user_max_budget;
unsigned int bfq_timeout;
bool strict_guarantees;
unsigned long last_ins_in_burst;
unsigned long bfq_burst_interval;
int burst_size;
struct bfq_entity *burst_parent_entity;
unsigned long bfq_large_burst_thresh;
bool large_burst;
struct hlist_head burst_list;
bool low_latency;
unsigned int bfq_wr_coeff;
unsigned int bfq_wr_rt_max_time;
unsigned int bfq_wr_min_idle_time;
unsigned long bfq_wr_min_inter_arr_async;
unsigned int bfq_wr_max_softrt_rate;
u64 rate_dur_prod;
struct bfq_queue oom_bfqq;
spinlock_t lock;
struct bfq_io_cq *bio_bic;
struct bfq_queue *bio_bfqq;
unsigned int word_depths[4];
unsigned int full_depth_shift;
unsigned int num_actuators;
sector_t sector[8];
sector_t nr_sectors[8];
struct blk_independent_access_range ia_ranges[8];
unsigned int actuator_load_threshold;
};
struct bfq_service_tree {
struct rb_root active;
struct rb_root idle;
struct bfq_entity *first_idle;
struct bfq_entity *last_idle;
u64 vtime;
unsigned long wsum;
};
struct bfq_sched_data {
struct bfq_entity *in_service_entity;
struct bfq_entity *next_in_service;
struct bfq_service_tree service_tree[3];
unsigned long bfq_class_idle_last_service;
};
struct bfqg_stats {
struct blkg_rwstat bytes;
struct blkg_rwstat ios;
};
struct bfq_group {
struct blkg_policy_data pd;
char blkg_path[128];
refcount_t ref;
struct bfq_entity entity;
struct bfq_sched_data sched_data;
struct bfq_data *bfqd;
struct bfq_queue *async_bfqq[128];
struct bfq_queue *async_idle_bfqq[8];
struct bfq_entity *my_entity;
int active_entities;
int num_queues_with_pending_reqs;
struct rb_root rq_pos_tree;
struct bfqg_stats stats;
};
struct bfq_iocq_bfqq_data {
bool saved_has_short_ttime;
bool saved_IO_bound;
u64 saved_io_start_time;
u64 saved_tot_idle_time;
bool saved_in_large_burst;
bool was_in_burst_list;
unsigned int saved_weight;
unsigned long saved_wr_coeff;
unsigned long saved_last_wr_start_finish;
unsigned long saved_service_from_wr;
unsigned long saved_wr_start_at_switch_to_srt;
unsigned int saved_wr_cur_max_time;
struct bfq_ttime saved_ttime;
u64 saved_last_serv_time_ns;
unsigned int saved_inject_limit;
unsigned long saved_decrease_time_jif;
struct bfq_queue *stable_merge_bfqq;
bool stably_merged;
};
struct bfq_io_cq {
struct io_cq icq;
struct bfq_queue *bfqq[16];
int ioprio;
uint64_t blkcg_serial_nr;
struct bfq_iocq_bfqq_data bfqq_data[8];
unsigned int requests;
};
struct bfq_weight_counter {
unsigned int weight;
unsigned int num_active;
struct rb_node weights_node;
};
struct prt_quirk {
const struct dmi_system_id *system;
unsigned int segment;
unsigned int bus;
unsigned int device;
unsigned char pin;
const char *source;
const char *actual_source;
};
struct acpi_pci_routing_table {
u32 length;
u32 pin;
u64 address;
u32 source_index;
union {
char pad[4];
struct {
struct {} __Empty_source;
char source[0];
};
};
};
struct acpi_prt_entry {
struct acpi_pci_id id;
u8 pin;
acpi_handle link;
u32 index;
};
enum acpi_srat_type {
ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4,
ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5,
ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6,
ACPI_SRAT_TYPE_RESERVED = 7,
};
enum acpi_cedt_type {
ACPI_CEDT_TYPE_CHBS = 0,
ACPI_CEDT_TYPE_CFMWS = 1,
ACPI_CEDT_TYPE_CXIMS = 2,
ACPI_CEDT_TYPE_RDPAS = 3,
ACPI_CEDT_TYPE_RESERVED = 4,
};
struct acpi_table_srat {
struct acpi_table_header header;
u32 table_revision;
u64 reserved;
};
struct acpi_srat_cpu_affinity {
struct acpi_subtable_header header;
u8 proximity_domain_lo;
u8 apic_id;
u32 flags;
u8 local_sapic_eid;
u8 proximity_domain_hi[3];
u32 clock_domain;
};
struct acpi_srat_mem_affinity {
struct acpi_subtable_header header;
u32 proximity_domain;
u16 reserved;
u64 base_address;
u64 length;
u32 reserved1;
u32 flags;
u64 reserved2;
} __attribute__((packed));
struct acpi_srat_x2apic_cpu_affinity {
struct acpi_subtable_header header;
u16 reserved;
u32 proximity_domain;
u32 apic_id;
u32 flags;
u32 clock_domain;
u32 reserved2;
};
struct acpi_srat_gicc_affinity {
struct acpi_subtable_header header;
u32 proximity_domain;
u32 acpi_processor_uid;
u32 flags;
u32 clock_domain;
} __attribute__((packed));
struct acpi_srat_generic_affinity {
struct acpi_subtable_header header;
u8 reserved;
u8 device_handle_type;
u32 proximity_domain;
u8 device_handle[16];
u32 flags;
u32 reserved1;
};
struct acpi_table_slit {
struct acpi_table_header header;
u64 locality_count;
u8 entry[0];
} __attribute__((packed));
struct acpi_cedt_cfmws {
struct acpi_cedt_header header;
u32 reserved1;
u64 base_hpa;
u64 window_size;
u8 interleave_ways;
u8 interleave_arithmetic;
u16 reserved2;
u32 granularity;
u16 restrictions;
u16 qtg_id;
u32 interleave_targets[0];
} __attribute__((packed));
struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_line;
cc_t c_cc[19];
};
struct termios2 {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_line;
cc_t c_cc[19];
speed_t c_ispeed;
speed_t c_ospeed;
};
struct termio {
unsigned short c_iflag;
unsigned short c_oflag;
unsigned short c_cflag;
unsigned short c_lflag;
unsigned char c_line;
unsigned char c_cc[8];
};
struct rtl821x_priv {
u16 phycr1;
u16 phycr2;
bool has_phycr2;
struct clk *clk;
};
struct iwl_fw_paging_cmd {
__le32 flags;
__le32 block_size;
__le32 block_num;
__le32 device_phy_addr[33];
};
struct iwl_synced_time_cmd {
__le32 operation;
};
struct iwl_synced_time_rsp {
__le32 operation;
__le32 platform_timestamp_hi;
__le32 platform_timestamp_lo;
__le32 gp2_timestamp_hi;
__le32 gp2_timestamp_lo;
};
enum i8042_controller_reset_mode {
I8042_RESET_NEVER = 0,
I8042_RESET_ALWAYS = 1,
I8042_RESET_ON_S2RAM = 2,
};
struct i8042_port {
struct serio *serio;
int irq;
bool exists;
bool driver_bound;
signed char mux;
};
enum ethtool_podl_pse_admin_state {
ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED = 2,
ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED = 3,
};
enum ethtool_podl_pse_pw_d_status {
ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1,
ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED = 2,
ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING = 3,
ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING = 4,
ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP = 5,
ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE = 6,
ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR = 7,
};
enum {
ETHTOOL_A_PSE_UNSPEC = 0,
ETHTOOL_A_PSE_HEADER = 1,
ETHTOOL_A_PODL_PSE_ADMIN_STATE = 2,
ETHTOOL_A_PODL_PSE_ADMIN_CONTROL = 3,
ETHTOOL_A_PODL_PSE_PW_D_STATUS = 4,
__ETHTOOL_A_PSE_CNT = 5,
ETHTOOL_A_PSE_MAX = 4,
};
struct pse_control_status {
enum ethtool_podl_pse_admin_state podl_admin_state;
enum ethtool_podl_pse_pw_d_status podl_pw_status;
};
struct pse_reply_data {
struct ethnl_reply_data base;
struct pse_control_status status;
};
struct pse_control_config {
enum ethtool_podl_pse_admin_state admin_cotrol;
};
enum netns_bpf_attach_type {
NETNS_BPF_INVALID = -1,
NETNS_BPF_FLOW_DISSECTOR = 0,
NETNS_BPF_SK_LOOKUP = 1,
MAX_NETNS_BPF_ATTACH_TYPE = 2,
};
typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16);
enum {
UDP_BPF_IPV4 = 0,
UDP_BPF_IPV6 = 1,
UDP_BPF_NUM_PROTS = 2,
};
enum {
MDBA_UNSPEC = 0,
MDBA_MDB = 1,
MDBA_ROUTER = 2,
__MDBA_MAX = 3,
};
enum {
MDBA_ROUTER_UNSPEC = 0,
MDBA_ROUTER_PORT = 1,
__MDBA_ROUTER_MAX = 2,
};
enum {
MDBA_ROUTER_PATTR_UNSPEC = 0,
MDBA_ROUTER_PATTR_TIMER = 1,
MDBA_ROUTER_PATTR_TYPE = 2,
MDBA_ROUTER_PATTR_INET_TIMER = 3,
MDBA_ROUTER_PATTR_INET6_TIMER = 4,
MDBA_ROUTER_PATTR_VID = 5,
__MDBA_ROUTER_PATTR_MAX = 6,
};
enum {
MDBA_MDB_UNSPEC = 0,
MDBA_MDB_ENTRY = 1,
__MDBA_MDB_MAX = 2,
};
enum {
MDBA_MDB_ENTRY_UNSPEC = 0,
MDBA_MDB_ENTRY_INFO = 1,
__MDBA_MDB_ENTRY_MAX = 2,
};
enum {
MDBA_MDB_EATTR_UNSPEC = 0,
MDBA_MDB_EATTR_TIMER = 1,
MDBA_MDB_EATTR_SRC_LIST = 2,
MDBA_MDB_EATTR_GROUP_MODE = 3,
MDBA_MDB_EATTR_SOURCE = 4,
MDBA_MDB_EATTR_RTPROT = 5,
MDBA_MDB_EATTR_DST = 6,
MDBA_MDB_EATTR_DST_PORT = 7,
MDBA_MDB_EATTR_VNI = 8,
MDBA_MDB_EATTR_IFINDEX = 9,
MDBA_MDB_EATTR_SRC_VNI = 10,
__MDBA_MDB_EATTR_MAX = 11,
};
enum {
MDBA_MDB_SRCLIST_UNSPEC = 0,
MDBA_MDB_SRCLIST_ENTRY = 1,
__MDBA_MDB_SRCLIST_MAX = 2,
};
enum {
MDBA_MDB_SRCATTR_UNSPEC = 0,
MDBA_MDB_SRCATTR_ADDRESS = 1,
MDBA_MDB_SRCATTR_TIMER = 2,
__MDBA_MDB_SRCATTR_MAX = 3,
};
enum {
MDBA_SET_ENTRY_UNSPEC = 0,
MDBA_SET_ENTRY = 1,
MDBA_SET_ENTRY_ATTRS = 2,
__MDBA_SET_ENTRY_MAX = 3,
};
enum {
MDBE_ATTR_UNSPEC = 0,
MDBE_ATTR_SOURCE = 1,
MDBE_ATTR_SRC_LIST = 2,
MDBE_ATTR_GROUP_MODE = 3,
MDBE_ATTR_RTPROT = 4,
MDBE_ATTR_DST = 5,
MDBE_ATTR_DST_PORT = 6,
MDBE_ATTR_VNI = 7,
MDBE_ATTR_IFINDEX = 8,
MDBE_ATTR_SRC_VNI = 9,
MDBE_ATTR_STATE_MASK = 10,
__MDBE_ATTR_MAX = 11,
};
enum {
MDBE_SRCATTR_UNSPEC = 0,
MDBE_SRCATTR_ADDRESS = 1,
__MDBE_SRCATTR_MAX = 2,
};
enum {
MDBA_GET_ENTRY_UNSPEC = 0,
MDBA_GET_ENTRY = 1,
MDBA_GET_ENTRY_ATTRS = 2,
__MDBA_GET_ENTRY_MAX = 3,
};
struct br_port_msg {
__u8 family;
__u32 ifindex;
};
struct br_mdb_entry;
struct br_mdb_src_entry;
struct br_mdb_config {
struct net_bridge *br;
struct net_bridge_port *p;
struct br_mdb_entry *entry;
struct br_ip group;
bool src_entry;
u8 filter_mode;
u16 nlflags;
struct br_mdb_src_entry *src_entries;
int num_src_entries;
u8 rt_protocol;
};
struct br_mdb_entry {
__u32 ifindex;
__u8 state;
__u8 flags;
__u16 vid;
struct {
union {
__be32 ip4;
struct in6_addr ip6;
unsigned char mac_addr[6];
} u;
__be16 proto;
} addr;
};
struct br_mdb_src_entry {
struct br_ip addr;
};
struct br_mdb_flush_desc {
u32 port_ifindex;
u16 vid;
u8 rt_protocol;
u8 state;
u8 state_mask;
};
struct radix_tree_preload {
local_lock_t lock;
unsigned int nr;
struct xa_node *nodes;
};
struct pt_regs_offset {
const char *name;
int offset;
};
enum x86_regset_32 {
REGSET32_GENERAL = 0,
REGSET32_FP = 1,
REGSET32_XFP = 2,
REGSET32_XSTATE = 3,
REGSET32_TLS = 4,
REGSET32_IOPERM = 5,
};
enum x86_regset_64 {
REGSET64_GENERAL = 0,
REGSET64_FP = 1,
REGSET64_IOPERM = 2,
REGSET64_XSTATE = 3,
REGSET64_SSP = 4,
};
struct param_attribute {
struct module_attribute mattr;
const struct kernel_param *param;
};
struct module_param_attrs {
unsigned int num;
struct attribute_group grp;
struct param_attribute attrs[0];
};
enum {
KERNEL_PARAM_OPS_FL_NOARG = 1,
};
enum {
KERNEL_PARAM_FL_UNSAFE = 1,
KERNEL_PARAM_FL_HWPARAM = 2,
};
struct kmalloced_param {
struct list_head list;
char val[0];
};
enum {
TRACE_FUNC_NO_OPTS = 0,
TRACE_FUNC_OPT_STACK = 1,
TRACE_FUNC_OPT_NO_REPEATS = 2,
TRACE_FUNC_OPT_HIGHEST_BIT = 4,
};
enum legacy_fs_param {
LEGACY_FS_UNSET_PARAMS = 0,
LEGACY_FS_MONOLITHIC_PARAMS = 1,
LEGACY_FS_INDIVIDUAL_PARAMS = 2,
};
struct legacy_fs_context {
char *legacy_data;
size_t data_size;
enum legacy_fs_param param_type;
};
struct ext4_dir_entry_tail {
__le32 det_reserved_zero1;
__le16 det_rec_len;
__u8 det_reserved_zero2;
__u8 det_reserved_ft;
__le32 det_checksum;
};
struct dx_entry;
struct dx_frame {
struct buffer_head *bh;
struct dx_entry *entries;
struct dx_entry *at;
};
struct dx_entry {
__le32 hash;
__le32 block;
};
struct fake_dirent {
__le32 inode;
__le16 rec_len;
u8 name_len;
u8 file_type;
};
struct dx_root_info {
__le32 reserved_zero;
u8 hash_version;
u8 info_length;
u8 indirect_levels;
u8 unused_flags;
};
struct dx_root {
struct fake_dirent dot;
char dot_name[4];
struct fake_dirent dotdot;
char dotdot_name[4];
struct dx_root_info info;
struct dx_entry entries[0];
};
struct dx_node {
struct fake_dirent fake;
struct dx_entry entries[0];
};
struct dx_countlimit {
__le16 limit;
__le16 count;
};
struct ext4_dir_entry {
__le32 inode;
__le16 rec_len;
__le16 name_len;
char name[255];
};
struct dx_tail {
u32 dt_reserved;
__le32 dt_checksum;
};
struct dx_map_entry {
u32 hash;
u16 offs;
u16 size;
};
struct ext4_filename {
const struct qstr *usr_fname;
struct fscrypt_str disk_name;
struct dx_hash_info hinfo;
};
struct ext4_renament {
struct inode *dir;
struct dentry *dentry;
struct inode *inode;
bool is_dir;
int dir_nlink_delta;
struct buffer_head *bh;
struct ext4_dir_entry_2 *de;
int inlined;
struct buffer_head *dir_bh;
struct ext4_dir_entry_2 *parent_de;
int dir_inlined;
};
typedef enum {
EITHER = 0,
INDEX = 1,
DIRENT = 2,
DIRENT_HTREE = 3,
} dirblock_type_t;
struct async_cow;
struct async_chunk {
struct btrfs_inode *inode;
struct page *locked_page;
u64 start;
u64 end;
blk_opf_t write_flags;
struct list_head extents;
struct cgroup_subsys_state *blkcg_css;
struct btrfs_work work;
struct async_cow *async_cow;
};
struct async_cow {
atomic_t num_chunks;
struct async_chunk chunks[0];
};
struct async_extent {
u64 start;
u64 ram_size;
u64 compressed_size;
struct page **pages;
unsigned long nr_pages;
int compress_type;
struct list_head list;
};
struct btrfs_writepage_fixup {
struct page *page;
struct btrfs_inode *inode;
struct btrfs_work work;
};
struct btrfs_dio_private {
u64 file_offset;
u32 bytes;
struct btrfs_bio bbio;
};
struct btrfs_delalloc_work {
struct inode *inode;
struct completion completion;
struct list_head list;
struct btrfs_work work;
};
struct data_reloc_warn {
struct btrfs_path path;
struct btrfs_fs_info *fs_info;
u64 extent_item_size;
u64 logical;
int mirror_num;
};
struct btrfs_drop_extents_args {
struct btrfs_path *path;
u64 start;
u64 end;
bool drop_cache;
bool replace_extent;
u32 extent_item_size;
u64 drop_end;
u64 bytes_found;
bool extent_inserted;
};
struct btrfs_iget_args {
u64 ino;
struct btrfs_root *root;
};
struct btrfs_replace_extent_info {
u64 disk_offset;
u64 disk_len;
u64 data_offset;
u64 data_len;
u64 file_offset;
char *extent_buf;
bool is_new_extent;
bool update_times;
int qgroup_reserved;
int insertions;
};
struct btrfs_swap_info {
u64 start;
u64 block_start;
u64 block_len;
u64 lowest_ppage;
u64 highest_ppage;
unsigned long nr_pages;
int nr_extents;
};
struct btrfs_dio_data {
ssize_t submitted;
struct extent_changeset *data_reserved;
struct btrfs_ordered_extent *ordered;
bool data_space_reserved;
bool nocow_done;
};
struct btrfs_rename_ctx {
u64 index;
};
struct dir_entry {
u64 ino;
u64 offset;
unsigned int type;
int name_len;
};
struct can_nocow_file_extent_args {
u64 start;
u64 end;
bool writeback_path;
bool strict;
bool free_path;
u64 disk_bytenr;
u64 disk_num_bytes;
u64 extent_offset;
u64 num_bytes;
};
struct btrfs_encoded_read_private {
wait_queue_head_t wait;
atomic_t pending;
blk_status_t status;
};
struct btrfs_file_private {
void *filldir_buf;
u64 last_index;
struct extent_state *llseek_cached_state;
};
struct disk_events {
struct list_head node;
struct gendisk *disk;
spinlock_t lock;
struct mutex block_mutex;
int block;
unsigned int pending;
unsigned int clearing;
long poll_msecs;
struct delayed_work dwork;
};
struct raid6_sse_constants {
u64 x1d[2];
};
struct clk_div_table;
struct clk_divider {
struct clk_hw hw;
void *reg;
u8 shift;
u8 width;
u8 flags;
const struct clk_div_table *table;
spinlock_t *lock;
};
struct clk_div_table {
unsigned int val;
unsigned int div;
};
struct dw8250_port_data {
int line;
struct uart_8250_dma dma;
u8 dlf_size;
bool hw_rs485_support;
};
struct dw8250_platform_data;
struct dw8250_data {
struct dw8250_port_data data;
const struct dw8250_platform_data *pdata;
int msr_mask_on;
int msr_mask_off;
struct clk *clk;
struct clk *pclk;
struct notifier_block clk_notifier;
struct work_struct clk_work;
struct reset_control *rst;
unsigned int skip_autocfg: 1;
unsigned int uart_16550_compatible: 1;
};
struct dw8250_platform_data {
u8 usr_reg;
u32 cpr_val;
unsigned int quirks;
};
enum scsi_ml_status {
SCSIML_STAT_OK = 0,
SCSIML_STAT_RESV_CONFLICT = 1,
SCSIML_STAT_NOSPC = 2,
SCSIML_STAT_MED_ERROR = 3,
SCSIML_STAT_TGT_FAILURE = 4,
SCSIML_STAT_DL_TIMEOUT = 5,
};
enum scsi_prot_operations {
SCSI_PROT_NORMAL = 0,
SCSI_PROT_READ_INSERT = 1,
SCSI_PROT_WRITE_STRIP = 2,
SCSI_PROT_READ_STRIP = 3,
SCSI_PROT_WRITE_INSERT = 4,
SCSI_PROT_READ_PASS = 5,
SCSI_PROT_WRITE_PASS = 6,
};
enum scsi_device_event {
SDEV_EVT_MEDIA_CHANGE = 1,
SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2,
SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3,
SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4,
SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5,
SDEV_EVT_LUN_CHANGE_REPORTED = 6,
SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7,
SDEV_EVT_POWER_ON_RESET_OCCURRED = 8,
SDEV_EVT_FIRST = 1,
SDEV_EVT_LAST = 8,
SDEV_EVT_MAXBITS = 9,
};
enum iwl_mvm_pasn_flags {
IWL_MVM_PASN_FLAG_HAS_HLTK = 1,
};
enum nl80211_peer_measurement_status {
NL80211_PMSR_STATUS_SUCCESS = 0,
NL80211_PMSR_STATUS_REFUSED = 1,
NL80211_PMSR_STATUS_TIMEOUT = 2,
NL80211_PMSR_STATUS_FAILURE = 3,
};
enum nl80211_peer_measurement_type {
NL80211_PMSR_TYPE_INVALID = 0,
NL80211_PMSR_TYPE_FTM = 1,
NUM_NL80211_PMSR_TYPES = 2,
NL80211_PMSR_TYPE_MAX = 1,
};
enum nl80211_peer_measurement_ftm_failure_reasons {
NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0,
NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 1,
NL80211_PMSR_FTM_FAILURE_REJECTED = 2,
NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 3,
NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 4,
NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 5,
NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 6,
NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 7,
};
enum iwl_tof_entry_status {
IWL_TOF_ENTRY_SUCCESS = 0,
IWL_TOF_ENTRY_GENERAL_FAILURE = 1,
IWL_TOF_ENTRY_NO_RESPONSE = 2,
IWL_TOF_ENTRY_REQUEST_REJECTED = 3,
IWL_TOF_ENTRY_NOT_SCHEDULED = 4,
IWL_TOF_ENTRY_TIMING_MEASURE_TIMEOUT = 5,
IWL_TOF_ENTRY_TARGET_DIFF_CH_CANNOT_CHANGE = 6,
IWL_TOF_ENTRY_RANGE_NOT_SUPPORTED = 7,
IWL_TOF_ENTRY_REQUEST_ABORT_UNKNOWN_REASON = 8,
IWL_TOF_ENTRY_LOCATION_INVALID_T1_T4_TIME_STAMP = 9,
IWL_TOF_ENTRY_11MC_PROTOCOL_FAILURE = 10,
IWL_TOF_ENTRY_REQUEST_CANNOT_SCHED = 11,
IWL_TOF_ENTRY_RESPONDER_CANNOT_COLABORATE = 12,
IWL_TOF_ENTRY_BAD_REQUEST_ARGS = 13,
IWL_TOF_ENTRY_WIFI_NOT_ENABLED = 14,
IWL_TOF_ENTRY_RESPONDER_OVERRIDE_PARAMS = 15,
};
enum iwl_tof_initiator_flags {
IWL_TOF_INITIATOR_FLAGS_FAST_ALGO_DISABLED = 1,
IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_A = 2,
IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_B = 4,
IWL_TOF_INITIATOR_FLAGS_RX_CHAIN_SEL_C = 8,
IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_A = 16,
IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_B = 32,
IWL_TOF_INITIATOR_FLAGS_TX_CHAIN_SEL_C = 64,
IWL_TOF_INITIATOR_FLAGS_MACADDR_RANDOM = 128,
IWL_TOF_INITIATOR_FLAGS_SPECIFIC_CALIB = 32768,
IWL_TOF_INITIATOR_FLAGS_COMMON_CALIB = 65536,
IWL_TOF_INITIATOR_FLAGS_NON_ASAP_SUPPORT = 1048576,
};
enum iwl_initiator_ap_flags {
IWL_INITIATOR_AP_FLAGS_ASAP = 2,
IWL_INITIATOR_AP_FLAGS_LCI_REQUEST = 4,
IWL_INITIATOR_AP_FLAGS_CIVIC_REQUEST = 8,
IWL_INITIATOR_AP_FLAGS_DYN_ACK = 16,
IWL_INITIATOR_AP_FLAGS_ALGO_LR = 32,
IWL_INITIATOR_AP_FLAGS_ALGO_FFT = 64,
IWL_INITIATOR_AP_FLAGS_MCSI_REPORT = 256,
IWL_INITIATOR_AP_FLAGS_NON_TB = 512,
IWL_INITIATOR_AP_FLAGS_TB = 1024,
IWL_INITIATOR_AP_FLAGS_SECURED = 2048,
IWL_INITIATOR_AP_FLAGS_LMR_FEEDBACK = 4096,
IWL_INITIATOR_AP_FLAGS_USE_CALIB = 8192,
IWL_INITIATOR_AP_FLAGS_PMF = 16384,
IWL_INITIATOR_AP_FLAGS_TERMINATE_ON_LMR_FEEDBACK = 32768,
};
enum iwl_tof_range_request_status {
IWL_TOF_RANGE_REQUEST_STATUS_SUCCESS = 0,
IWL_TOF_RANGE_REQUEST_STATUS_BUSY = 1,
};
enum iwl_tof_location_query {
IWL_TOF_LOC_LCI = 1,
IWL_TOF_LOC_CIVIC = 2,
};
enum iwl_tof_algo_type {
IWL_TOF_ALGO_TYPE_MAX_LIKE = 0,
IWL_TOF_ALGO_TYPE_LINEAR_REG = 1,
IWL_TOF_ALGO_TYPE_FFT = 2,
IWL_TOF_ALGO_TYPE_INVALID = 3,
};
struct iwl_mvm_ftm_pasn_entry {
struct list_head list;
u8 addr[6];
u8 hltk[32];
u8 tk[32];
u8 cipher;
u8 tx_pn[6];
u8 rx_pn[6];
u32 flags;
};
struct iwl_mvm_smooth_entry {
struct list_head list;
u8 addr[6];
s64 rtt_avg;
u64 host_time;
};
struct iwl_mvm_loc_entry {
struct list_head list;
u8 addr[6];
u8 lci_len;
u8 civic_len;
u8 buf[0];
};
struct cfg80211_pmsr_ftm_result {
const u8 *lci;
const u8 *civicloc;
unsigned int lci_len;
unsigned int civicloc_len;
enum nl80211_peer_measurement_ftm_failure_reasons failure_reason;
u32 num_ftmr_attempts;
u32 num_ftmr_successes;
s16 burst_index;
u8 busy_retry_time;
u8 num_bursts_exp;
u8 burst_duration;
u8 ftms_per_burst;
s32 rssi_avg;
s32 rssi_spread;
struct rate_info tx_rate;
struct rate_info rx_rate;
s64 rtt_avg;
s64 rtt_variance;
s64 rtt_spread;
s64 dist_avg;
s64 dist_variance;
s64 dist_spread;
u16 num_ftmr_attempts_valid: 1;
u16 num_ftmr_successes_valid: 1;
u16 rssi_avg_valid: 1;
u16 rssi_spread_valid: 1;
u16 tx_rate_valid: 1;
u16 rx_rate_valid: 1;
u16 rtt_avg_valid: 1;
u16 rtt_variance_valid: 1;
u16 rtt_spread_valid: 1;
u16 dist_avg_valid: 1;
u16 dist_variance_valid: 1;
u16 dist_spread_valid: 1;
};
struct cfg80211_pmsr_result {
u64 host_time;
u64 ap_tsf;
enum nl80211_peer_measurement_status status;
u8 addr[6];
u8 final: 1;
u8 ap_tsf_valid: 1;
enum nl80211_peer_measurement_type type;
union {
struct cfg80211_pmsr_ftm_result ftm;
};
};
struct iwl_tof_range_req_ap_entry_v2 {
u8 channel_num;
u8 bandwidth;
u8 tsf_delta_direction;
u8 ctrl_ch_position;
u8 bssid[6];
u8 measure_type;
u8 num_of_bursts;
__le16 burst_period;
u8 samples_per_burst;
u8 retries_per_sample;
__le32 tsf_delta;
u8 location_req;
u8 asap_mode;
u8 enable_dyn_ack;
s8 rssi;
u8 algo_type;
u8 notify_mcsi;
__le16 reserved;
};
struct iwl_tof_range_req_cmd_v5 {
__le32 initiator_flags;
u8 request_id;
u8 initiator;
u8 one_sided_los_disable;
u8 req_timeout;
u8 report_policy;
u8 reserved0;
u8 num_of_ap;
u8 macaddr_random;
u8 range_req_bssid[6];
u8 macaddr_template[6];
u8 macaddr_mask[6];
u8 ftm_rx_chains;
u8 ftm_tx_chains;
__le16 common_calib;
__le16 specific_calib;
struct iwl_tof_range_req_ap_entry_v2 ap[5];
};
struct iwl_tof_range_req_ap_entry_v6 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 format_bw;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
u8 sta_id;
u8 cipher;
u8 hltk[32];
u8 tk[32];
__le16 calib[5];
__le16 beacon_interval;
};
struct iwl_tof_range_req_cmd_v9 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
struct iwl_tof_range_req_ap_entry_v6 ap[5];
};
struct iwl_tof_range_req_ap_entry_v3 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 bandwidth;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
__le16 reserved;
__le32 tsf_delta;
};
struct iwl_tof_range_req_cmd_v7 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
__le16 common_calib;
__le16 specific_calib;
struct iwl_tof_range_req_ap_entry_v3 ap[5];
};
struct iwl_tof_range_req_ap_entry_v4 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 format_bw;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
__le16 reserved;
u8 hltk[32];
u8 tk[32];
};
struct iwl_tof_range_req_cmd_v8 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
__le16 common_calib;
__le16 specific_calib;
struct iwl_tof_range_req_ap_entry_v4 ap[5];
};
struct iwl_tof_range_req_ap_entry_v7 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 format_bw;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
u8 sta_id;
u8 cipher;
u8 hltk[32];
u8 tk[32];
__le16 calib[5];
__le16 beacon_interval;
u8 rx_pn[6];
u8 tx_pn[6];
};
struct iwl_tof_range_req_cmd_v11 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
struct iwl_tof_range_req_ap_entry_v7 ap[5];
};
struct iwl_tof_range_req_ap_entry_v8 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 format_bw;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
u8 sta_id;
u8 cipher;
u8 hltk[32];
u8 tk[32];
__le16 calib[5];
__le16 beacon_interval;
u8 rx_pn[6];
u8 tx_pn[6];
u8 r2i_ndp_params;
u8 i2r_ndp_params;
u8 r2i_max_total_ltf;
u8 i2r_max_total_ltf;
};
struct iwl_tof_range_req_cmd_v12 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
struct iwl_tof_range_req_ap_entry_v8 ap[5];
};
struct iwl_tof_range_req_ap_entry_v9 {
__le32 initiator_ap_flags;
u8 channel_num;
u8 format_bw;
u8 ctrl_ch_position;
u8 ftmr_max_retries;
u8 bssid[6];
__le16 burst_period;
u8 samples_per_burst;
u8 num_of_bursts;
u8 sta_id;
u8 cipher;
u8 hltk[32];
u8 tk[32];
__le16 calib[5];
u16 beacon_interval;
u8 rx_pn[6];
u8 tx_pn[6];
u8 r2i_ndp_params;
u8 i2r_ndp_params;
u8 r2i_max_total_ltf;
u8 i2r_max_total_ltf;
u8 bss_color;
u8 band;
__le16 min_time_between_msr;
};
struct iwl_tof_range_req_cmd_v13 {
__le32 initiator_flags;
u8 request_id;
u8 num_of_ap;
u8 range_req_bssid[6];
u8 macaddr_mask[6];
u8 macaddr_template[6];
__le32 req_timeout_ms;
__le32 tsf_mac_id;
struct iwl_tof_range_req_ap_entry_v9 ap[5];
};
struct iwl_tof_range_rsp_ap_entry_ntfy_v6 {
u8 bssid[6];
u8 measure_status;
u8 measure_bw;
__le32 rtt;
__le32 rtt_variance;
__le32 rtt_spread;
s8 rssi;
u8 rssi_spread;
u8 last_burst;
u8 refusal_period;
__le32 timestamp;
__le32 start_tsf;
__le32 rx_rate_n_flags;
__le32 tx_rate_n_flags;
__le32 t2t3_initiator;
__le32 t1t4_responder;
__le16 common_calib;
__le16 specific_calib;
__le32 papd_calib_output;
u8 rttConfidence;
u8 reserved[3];
u8 rx_pn[6];
u8 tx_pn[6];
};
struct iwl_tof_range_abort_cmd {
u8 request_id;
u8 reserved[3];
};
struct iwl_tof_range_rsp_ap_entry_ntfy_v3 {
u8 bssid[6];
u8 measure_status;
u8 measure_bw;
__le32 rtt;
__le32 rtt_variance;
__le32 rtt_spread;
s8 rssi;
u8 rssi_spread;
u8 reserved;
u8 refusal_period;
__le32 range;
__le32 range_variance;
__le32 timestamp;
__le32 t2t3_initiator;
__le32 t1t4_responder;
__le16 common_calib;
__le16 specific_calib;
__le32 papd_calib_output;
};
struct iwl_tof_range_rsp_ntfy_v5 {
u8 request_id;
u8 request_status;
u8 last_in_batch;
u8 num_of_aps;
struct iwl_tof_range_rsp_ap_entry_ntfy_v3 ap[5];
};
struct iwl_tof_range_rsp_ap_entry_ntfy_v4 {
u8 bssid[6];
u8 measure_status;
u8 measure_bw;
__le32 rtt;
__le32 rtt_variance;
__le32 rtt_spread;
s8 rssi;
u8 rssi_spread;
u8 last_burst;
u8 refusal_period;
__le32 timestamp;
__le32 start_tsf;
__le32 rx_rate_n_flags;
__le32 tx_rate_n_flags;
__le32 t2t3_initiator;
__le32 t1t4_responder;
__le16 common_calib;
__le16 specific_calib;
__le32 papd_calib_output;
};
struct iwl_tof_range_rsp_ntfy_v6 {
u8 request_id;
u8 num_of_aps;
u8 last_report;
u8 reserved;
struct iwl_tof_range_rsp_ap_entry_ntfy_v4 ap[5];
};
struct iwl_tof_range_rsp_ap_entry_ntfy_v5 {
u8 bssid[6];
u8 measure_status;
u8 measure_bw;
__le32 rtt;
__le32 rtt_variance;
__le32 rtt_spread;
s8 rssi;
u8 rssi_spread;
u8 last_burst;
u8 refusal_period;
__le32 timestamp;
__le32 start_tsf;
__le32 rx_rate_n_flags;
__le32 tx_rate_n_flags;
__le32 t2t3_initiator;
__le32 t1t4_responder;
__le16 common_calib;
__le16 specific_calib;
__le32 papd_calib_output;
u8 rttConfidence;
u8 reserved[3];
};
struct iwl_tof_range_rsp_ntfy_v7 {
u8 request_id;
u8 num_of_aps;
u8 last_report;
u8 reserved;
struct iwl_tof_range_rsp_ap_entry_ntfy_v5 ap[5];
};
struct iwl_tof_range_rsp_ntfy_v8 {
u8 request_id;
u8 num_of_aps;
u8 last_report;
u8 reserved;
struct iwl_tof_range_rsp_ap_entry_ntfy_v6 ap[5];
};
enum {
ETHTOOL_A_FEC_UNSPEC = 0,
ETHTOOL_A_FEC_HEADER = 1,
ETHTOOL_A_FEC_MODES = 2,
ETHTOOL_A_FEC_AUTO = 3,
ETHTOOL_A_FEC_ACTIVE = 4,
ETHTOOL_A_FEC_STATS = 5,
__ETHTOOL_A_FEC_CNT = 6,
ETHTOOL_A_FEC_MAX = 5,
};
enum {
ETHTOOL_A_FEC_STAT_UNSPEC = 0,
ETHTOOL_A_FEC_STAT_PAD = 1,
ETHTOOL_A_FEC_STAT_CORRECTED = 2,
ETHTOOL_A_FEC_STAT_UNCORR = 3,
ETHTOOL_A_FEC_STAT_CORR_BITS = 4,
__ETHTOOL_A_FEC_STAT_CNT = 5,
ETHTOOL_A_FEC_STAT_MAX = 4,
};
struct fec_stat_grp {
u64 stats[9];
u8 cnt;
};
struct fec_reply_data {
struct ethnl_reply_data base;
unsigned long fec_link_modes[2];
u32 active_fec;
u8 fec_auto;
struct fec_stat_grp corr;
struct fec_stat_grp uncorr;
struct fec_stat_grp corr_bits;
};
struct ipfrag_skb_cb {
union {
struct inet_skb_parm h4;
struct inet6_skb_parm h6;
};
struct sk_buff *next_frag;
int frag_run_len;
int ip_defrag_offset;
};
enum show_regs_mode {
SHOW_REGS_SHORT = 0,
SHOW_REGS_USER = 1,
SHOW_REGS_ALL = 2,
};
enum which_selector {
FS = 0,
GS = 1,
};
struct msi_ctrl {
unsigned int domid;
unsigned int first;
unsigned int last;
unsigned int nirqs;
};
struct msi_map {
int index;
int virq;
};
struct bpf_queue_stack {
struct bpf_map map;
raw_spinlock_t lock;
u32 head;
u32 tail;
u32 size;
long: 0;
char elements[0];
};
enum {
BPF_MAX_TRAMP_LINKS = 38,
};
enum fuse_req_flag {
FR_ISREPLY = 0,
FR_FORCE = 1,
FR_BACKGROUND = 2,
FR_WAITING = 3,
FR_ABORTED = 4,
FR_INTERRUPTED = 5,
FR_LOCKED = 6,
FR_PENDING = 7,
FR_SENT = 8,
FR_FINISHED = 9,
FR_PRIVATE = 10,
FR_ASYNC = 11,
};
enum fuse_notify_code {
FUSE_NOTIFY_POLL = 1,
FUSE_NOTIFY_INVAL_INODE = 2,
FUSE_NOTIFY_INVAL_ENTRY = 3,
FUSE_NOTIFY_STORE = 4,
FUSE_NOTIFY_RETRIEVE = 5,
FUSE_NOTIFY_DELETE = 6,
FUSE_NOTIFY_RESEND = 7,
FUSE_NOTIFY_CODE_MAX = 8,
};
struct fuse_in_header {
uint32_t len;
uint32_t opcode;
uint64_t unique;
uint64_t nodeid;
uint32_t uid;
uint32_t gid;
uint32_t pid;
uint16_t total_extlen;
uint16_t padding;
};
struct fuse_out_header {
uint32_t len;
int32_t error;
uint64_t unique;
};
struct fuse_req {
struct list_head list;
struct list_head intr_entry;
struct fuse_args *args;
refcount_t count;
unsigned long flags;
struct {
struct fuse_in_header h;
} in;
struct {
struct fuse_out_header h;
} out;
wait_queue_head_t waitq;
struct fuse_mount *fm;
};
struct fuse_notify_retrieve_in {
uint64_t dummy1;
uint64_t offset;
uint32_t size;
uint32_t dummy2;
uint64_t dummy3;
uint64_t dummy4;
};
struct fuse_retrieve_args {
struct fuse_args_pages ap;
struct fuse_notify_retrieve_in inarg;
};
struct fuse_copy_state {
int write;
struct fuse_req *req;
struct iov_iter *iter;
struct pipe_buffer *pipebufs;
struct pipe_buffer *currbuf;
struct pipe_inode_info *pipe;
unsigned long nr_segs;
struct page *pg;
unsigned int len;
unsigned int offset;
unsigned int move_pages: 1;
};
struct fuse_batch_forget_in {
uint32_t count;
uint32_t dummy;
};
struct fuse_forget_in {
uint64_t nlookup;
};
struct fuse_notify_poll_wakeup_out {
uint64_t kh;
};
struct fuse_notify_retrieve_out {
uint64_t notify_unique;
uint64_t nodeid;
uint64_t offset;
uint32_t size;
uint32_t padding;
};
struct fuse_notify_inval_entry_out {
uint64_t parent;
uint32_t namelen;
uint32_t flags;
};
struct fuse_notify_store_out {
uint64_t nodeid;
uint64_t offset;
uint32_t size;
uint32_t padding;
};
struct fuse_notify_inval_inode_out {
uint64_t ino;
int64_t off;
int64_t len;
};
struct fuse_notify_delete_out {
uint64_t parent;
uint64_t child;
uint32_t namelen;
uint32_t padding;
};
struct fuse_interrupt_in {
uint64_t unique;
};
struct msg_queue {
struct kern_ipc_perm q_perm;
time64_t q_stime;
time64_t q_rtime;
time64_t q_ctime;
unsigned long q_cbytes;
unsigned long q_qnum;
unsigned long q_qbytes;
struct pid *q_lspid;
struct pid *q_lrpid;
struct list_head q_messages;
struct list_head q_receivers;
struct list_head q_senders;
long: 64;
long: 64;
};
struct msg;
struct msqid_ds {
struct ipc_perm msg_perm;
struct msg *msg_first;
struct msg *msg_last;
__kernel_old_time_t msg_stime;
__kernel_old_time_t msg_rtime;
__kernel_old_time_t msg_ctime;
unsigned long msg_lcbytes;
unsigned long msg_lqbytes;
unsigned short msg_cbytes;
unsigned short msg_qnum;
unsigned short msg_qbytes;
__kernel_ipc_pid_t msg_lspid;
__kernel_ipc_pid_t msg_lrpid;
};
struct msg_receiver {
struct list_head r_list;
struct task_struct *r_tsk;
int r_mode;
long r_msgtype;
long r_maxsize;
struct msg_msg *r_msg;
};
struct msg_sender {
struct list_head list;
struct task_struct *tsk;
size_t msgsz;
};
struct msgbuf {
__kernel_long_t mtype;
char mtext[1];
};
struct msqid64_ds {
struct ipc64_perm msg_perm;
long msg_stime;
long msg_rtime;
long msg_ctime;
unsigned long msg_cbytes;
unsigned long msg_qnum;
unsigned long msg_qbytes;
__kernel_pid_t msg_lspid;
__kernel_pid_t msg_lrpid;
unsigned long __unused4;
unsigned long __unused5;
};
struct msginfo {
int msgpool;
int msgmap;
int msgmax;
int msgmnb;
int msgmni;
int msgssz;
int msgtql;
unsigned short msgseg;
};
struct io_uring_rsrc_update {
__u32 offset;
__u32 resv;
__u64 data;
};
struct io_futex {
struct file *file;
union {
u32 __attribute__((btf_type_tag("user"))) *uaddr;
struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv;
};
unsigned long futex_val;
unsigned long futex_mask;
unsigned long futexv_owned;
u32 futex_flags;
unsigned int futex_nr;
bool futexv_unqueued;
};
struct io_futex_data {
union {
struct futex_q q;
struct io_cache_entry cache;
};
struct io_kiocb *req;
};
struct dmt_videomode {
u32 dmt_id;
u32 std_2byte_code;
u32 cvt_3byte_code;
const struct fb_videomode *mode;
};
enum {
AML_FIELD_ACCESS_ANY = 0,
AML_FIELD_ACCESS_BYTE = 1,
AML_FIELD_ACCESS_WORD = 2,
AML_FIELD_ACCESS_DWORD = 3,
AML_FIELD_ACCESS_QWORD = 4,
AML_FIELD_ACCESS_BUFFER = 5,
};
struct acpi_create_field_info {
struct acpi_namespace_node *region_node;
struct acpi_namespace_node *field_node;
struct acpi_namespace_node *register_node;
struct acpi_namespace_node *data_register_node;
struct acpi_namespace_node *connection_node;
u8 *resource_buffer;
u32 bank_value;
u32 field_bit_position;
u32 field_bit_length;
u16 resource_length;
u16 pin_number_index;
u8 field_flags;
u8 attribute;
u8 field_type;
u8 access_length;
};
struct acpi_fan_fps {
u64 control;
u64 trip_point;
u64 speed;
u64 noise_level;
u64 power;
char name[20];
struct device_attribute dev_attr;
};
struct acpi_fan_fst {
u64 revision;
u64 control;
u64 speed;
};
struct acpi_fan_fif {
u8 revision;
u8 fine_grain_ctrl;
u8 step_size;
u8 low_speed_notification;
};
struct acpi_fan {
bool acpi4;
struct acpi_fan_fif fif;
struct acpi_fan_fps *fps;
int fps_count;
struct thermal_cooling_device *cdev;
struct device_attribute fst_speed;
struct device_attribute fine_grain_control;
};
struct builtin_fw {
char *name;
void *data;
unsigned long size;
};
enum {
NVME_HOST_MEM_ENABLE = 1,
NVME_HOST_MEM_RETURN = 2,
};
enum {
NVME_CMBMSC_CRE = 1,
NVME_CMBMSC_CMSE = 2,
};
enum {
NVME_CMBSZ_SQS = 1,
NVME_CMBSZ_CQS = 2,
NVME_CMBSZ_LISTS = 4,
NVME_CMBSZ_RDS = 8,
NVME_CMBSZ_WDS = 16,
NVME_CMBSZ_SZ_SHIFT = 12,
NVME_CMBSZ_SZ_MASK = 1048575,
NVME_CMBSZ_SZU_SHIFT = 8,
NVME_CMBSZ_SZU_MASK = 15,
};
enum {
NVME_SGL_FMT_DATA_DESC = 0,
NVME_SGL_FMT_SEG_DESC = 2,
NVME_SGL_FMT_LAST_SEG_DESC = 3,
NVME_KEY_SGL_FMT_DATA_DESC = 4,
NVME_TRANSPORT_SGL_DATA_DESC = 5,
};
struct nvme_queue;
struct nvme_host_mem_buf_desc;
struct nvme_dev {
struct nvme_queue *queues;
struct blk_mq_tag_set tagset;
struct blk_mq_tag_set admin_tagset;
u32 *dbs;
struct device *dev;
struct dma_pool *prp_page_pool;
struct dma_pool *prp_small_pool;
unsigned int online_queues;
unsigned int max_qid;
unsigned int io_queues[3];
unsigned int num_vecs;
u32 q_depth;
int io_sqes;
u32 db_stride;
void *bar;
unsigned long bar_mapped_size;
struct mutex shutdown_lock;
bool subsystem;
u64 cmb_size;
bool cmb_use_sqes;
u32 cmbsz;
u32 cmbloc;
struct nvme_ctrl ctrl;
u32 last_ps;
bool hmb;
mempool_t *iod_mempool;
__le32 *dbbuf_dbs;
dma_addr_t dbbuf_dbs_dma_addr;
__le32 *dbbuf_eis;
dma_addr_t dbbuf_eis_dma_addr;
u64 host_mem_size;
u32 nr_host_mem_descs;
dma_addr_t host_mem_descs_dma;
struct nvme_host_mem_buf_desc *host_mem_descs;
void **host_mem_desc_bufs;
unsigned int nr_allocated_queues;
unsigned int nr_write_queues;
unsigned int nr_poll_queues;
};
struct nvme_completion;
struct nvme_queue {
struct nvme_dev *dev;
spinlock_t sq_lock;
void *sq_cmds;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t cq_poll_lock;
struct nvme_completion *cqes;
dma_addr_t sq_dma_addr;
dma_addr_t cq_dma_addr;
u32 *q_db;
u32 q_depth;
u16 cq_vector;
u16 sq_tail;
u16 last_sq_tail;
u16 cq_head;
u16 qid;
u8 cq_phase;
u8 sqes;
unsigned long flags;
__le32 *dbbuf_sq_db;
__le32 *dbbuf_cq_db;
__le32 *dbbuf_sq_ei;
__le32 *dbbuf_cq_ei;
struct completion delete_done;
long: 64;
long: 64;
};
struct nvme_completion {
union nvme_result result;
__le16 sq_head;
__le16 sq_id;
__u16 command_id;
__le16 status;
};
struct nvme_host_mem_buf_desc {
__le64 addr;
__le32 size;
__u32 rsvd;
};
union nvme_descriptor {
struct nvme_sgl_desc *sg_list;
__le64 *prp_list;
};
struct nvme_iod {
struct nvme_request req;
struct nvme_command cmd;
bool aborted;
s8 nr_allocations;
unsigned int dma_len;
dma_addr_t first_dma;
dma_addr_t meta_dma;
struct sg_table sgt;
union nvme_descriptor list[5];
};
struct iwl_tx_beacon_cmd {
struct iwl_tx_cmd tx;
__le16 tim_idx;
u8 tim_size;
u8 reserved1;
struct ieee80211_hdr frame[0];
};
struct iwl_bt_cmd {
u8 flags;
u8 lead_time;
u8 max_kill;
u8 reserved;
__le32 kill_ack_mask;
__le32 kill_cts_mask;
};
struct iwl_tx_ant_config_cmd {
__le32 valid;
};
struct iwl_ct_kill_config {
__le32 reserved;
__le32 critical_temperature_M;
__le32 critical_temperature_R;
};
struct iwl_ct_kill_throttling_config {
__le32 critical_temperature_exit;
__le32 reserved;
__le32 critical_temperature_enter;
};
struct iwl_error_event_table___2 {
u32 valid;
u32 error_id;
u32 pc;
u32 blink1;
u32 blink2;
u32 ilink1;
u32 ilink2;
u32 data1;
u32 data2;
u32 line;
u32 bcon_time;
u32 tsf_low;
u32 tsf_hi;
u32 gp1;
u32 gp2;
u32 gp3;
u32 ucode_ver;
u32 hw_ver;
u32 brd_ver;
u32 log_pc;
u32 frame_ptr;
u32 stack_ptr;
u32 hcmd;
u32 isr0;
u32 isr1;
u32 isr2;
u32 isr3;
u32 isr4;
u32 isr_pref;
u32 wait_event;
u32 l2p_control;
u32 l2p_duration;
u32 l2p_mhvalid;
u32 l2p_addr_match;
u32 lmpm_pmg_sel;
u32 u_timestamp;
u32 flow_handler;
};
struct iwl_statistics_cmd___2 {
__le32 configuration_flags;
};
enum csi_seg_len {
HAL_CSI_SEG_4K = 0,
HAL_CSI_SEG_8K = 1,
HAL_CSI_SEG_11K = 2,
};
struct mu_bfer_init_para {
u16 paid;
u16 csi_para;
u16 my_aid;
enum csi_seg_len csi_length_sel;
u8 bfer_address[6];
};
struct cfg_mumimo_para {
u8 sounding_sts[6];
u16 grouping_bitmap;
u8 mu_tx_en;
u32 given_gid_tab[2];
u32 given_user_pos[4];
};
struct dm_rq_target_io;
struct dm_rq_clone_bio_info {
struct bio *orig;
struct dm_rq_target_io *tio;
struct bio clone;
};
struct dm_rq_target_io {
struct mapped_device *md;
struct dm_target *ti;
struct request *orig;
struct request *clone;
struct kthread_work work;
blk_status_t error;
union map_info info;
struct dm_stats_aux stats_aux;
unsigned long duration_jiffies;
unsigned int n_sectors;
unsigned int completed;
};
enum netdev_lag_tx_type {
NETDEV_LAG_TX_TYPE_UNKNOWN = 0,
NETDEV_LAG_TX_TYPE_RANDOM = 1,
NETDEV_LAG_TX_TYPE_BROADCAST = 2,
NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3,
NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4,
NETDEV_LAG_TX_TYPE_HASH = 5,
};
enum netdev_lag_hash {
NETDEV_LAG_HASH_NONE = 0,
NETDEV_LAG_HASH_L2 = 1,
NETDEV_LAG_HASH_L34 = 2,
NETDEV_LAG_HASH_L23 = 3,
NETDEV_LAG_HASH_E23 = 4,
NETDEV_LAG_HASH_E34 = 5,
NETDEV_LAG_HASH_VLAN_SRCMAC = 6,
NETDEV_LAG_HASH_UNKNOWN = 7,
};
struct failover_ops {
int (*slave_pre_register)(struct net_device *, struct net_device *);
int (*slave_register)(struct net_device *, struct net_device *);
int (*slave_pre_unregister)(struct net_device *, struct net_device *);
int (*slave_unregister)(struct net_device *, struct net_device *);
int (*slave_link_change)(struct net_device *, struct net_device *);
int (*slave_name_change)(struct net_device *, struct net_device *);
rx_handler_result_t (*slave_handle_frame)(struct sk_buff **);
};
struct failover {
struct list_head list;
struct net_device __attribute__((btf_type_tag("rcu"))) *failover_dev;
netdevice_tracker dev_tracker;
struct failover_ops __attribute__((btf_type_tag("rcu"))) *ops;
};
struct netdev_lag_upper_info {
enum netdev_lag_tx_type tx_type;
enum netdev_lag_hash hash_type;
};
enum nf_ip_hook_priorities {
NF_IP_PRI_FIRST = -2147483648,
NF_IP_PRI_RAW_BEFORE_DEFRAG = -450,
NF_IP_PRI_CONNTRACK_DEFRAG = -400,
NF_IP_PRI_RAW = -300,
NF_IP_PRI_SELINUX_FIRST = -225,
NF_IP_PRI_CONNTRACK = -200,
NF_IP_PRI_MANGLE = -150,
NF_IP_PRI_NAT_DST = -100,
NF_IP_PRI_FILTER = 0,
NF_IP_PRI_SECURITY = 50,
NF_IP_PRI_NAT_SRC = 100,
NF_IP_PRI_SELINUX_LAST = 225,
NF_IP_PRI_CONNTRACK_HELPER = 300,
NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647,
NF_IP_PRI_LAST = 2147483647,
};
struct bpf_nf_link {
struct bpf_link link;
struct nf_hook_ops hook_ops;
struct net *net;
u32 dead;
const struct nf_defrag_hook *defrag_hook;
};
struct ping_table {
struct hlist_head hash[64];
spinlock_t lock;
};
struct pingv6_ops {
int (*ipv6_recv_error)(struct sock *, struct msghdr *, int, int *);
void (*ip6_datagram_recv_common_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
void (*ip6_datagram_recv_specific_ctl)(struct sock *, struct msghdr *, struct sk_buff *);
int (*icmpv6_err_convert)(u8, u8, int *);
void (*ipv6_icmp_error)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *);
int (*ipv6_chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int);
};
struct ping_iter_state {
struct seq_net_private p;
int bucket;
sa_family_t family;
};
struct pingfakehdr {
struct icmphdr icmph;
struct msghdr *msg;
sa_family_t family;
__wsum wcheck;
};
struct nft_ct_frag6_pernet {
struct ctl_table_header *nf_frag_frags_hdr;
struct fqdir *fqdir;
};
enum ieee80211_twt_setup_cmd {
TWT_SETUP_CMD_REQUEST = 0,
TWT_SETUP_CMD_SUGGEST = 1,
TWT_SETUP_CMD_DEMAND = 2,
TWT_SETUP_CMD_GROUPING = 3,
TWT_SETUP_CMD_ACCEPT = 4,
TWT_SETUP_CMD_ALTERNATE = 5,
TWT_SETUP_CMD_DICTATE = 6,
TWT_SETUP_CMD_REJECT = 7,
};
struct ieee80211_twt_params {
__le16 req_type;
__le64 twt;
u8 min_twt_dur;
__le16 mantissa;
u8 channel;
} __attribute__((packed));
struct kernel_vm86_regs {
struct pt_regs pt;
unsigned short es;
unsigned short __esh;
unsigned short ds;
unsigned short __dsh;
unsigned short fs;
unsigned short __fsh;
unsigned short gs;
unsigned short __gsh;
};
enum {
TEST_NONE = 0,
TEST_CORE = 1,
TEST_CPUS = 2,
TEST_PLATFORM = 3,
TEST_DEVICES = 4,
TEST_FREEZER = 5,
__TEST_AFTER_LAST = 6,
};
struct ftrace_page;
struct ftrace_rec_iter {
struct ftrace_page *pg;
int index;
};
struct ftrace_page {
struct ftrace_page *next;
struct dyn_ftrace *records;
int index;
int order;
};
enum ftrace_bug_type {
FTRACE_BUG_UNKNOWN = 0,
FTRACE_BUG_INIT = 1,
FTRACE_BUG_NOP = 2,
FTRACE_BUG_CALL = 3,
FTRACE_BUG_UPDATE = 4,
};
enum {
FTRACE_MODIFY_ENABLE_FL = 1,
FTRACE_MODIFY_MAY_SLEEP_FL = 2,
};
enum {
FTRACE_ITER_FILTER = 1,
FTRACE_ITER_NOTRACE = 2,
FTRACE_ITER_PRINTALL = 4,
FTRACE_ITER_DO_PROBES = 8,
FTRACE_ITER_PROBE = 16,
FTRACE_ITER_MOD = 32,
FTRACE_ITER_ENABLED = 64,
FTRACE_ITER_TOUCHED = 128,
FTRACE_ITER_ADDRS = 256,
};
enum graph_filter_type {
GRAPH_FILTER_NOTRACE = 0,
GRAPH_FILTER_FUNCTION = 1,
};
struct ftrace_func_mapper {
struct ftrace_hash hash;
};
struct ftrace_func_map {
struct ftrace_func_entry entry;
void *data;
};
struct ftrace_func_probe {
struct ftrace_probe_ops *probe_ops;
struct ftrace_ops ops;
struct trace_array *tr;
struct list_head list;
void *data;
int ref;
};
struct ftrace_mod_map {
struct callback_head rcu;
struct list_head list;
struct module *mod;
unsigned long start_addr;
unsigned long end_addr;
struct list_head funcs;
unsigned int num_funcs;
};
struct ftrace_mod_func {
struct list_head list;
char *name;
unsigned long ip;
unsigned int size;
};
struct ftrace_init_func {
struct list_head list;
unsigned long ip;
};
struct ftrace_mod_load {
struct list_head list;
char *func;
char *module;
int enable;
};
struct ftrace_iterator {
loff_t pos;
loff_t func_pos;
loff_t mod_pos;
struct ftrace_page *pg;
struct dyn_ftrace *func;
struct ftrace_func_probe *probe;
struct ftrace_func_entry *probe_entry;
struct trace_parser parser;
struct ftrace_hash *hash;
struct ftrace_ops *ops;
struct trace_array *tr;
struct list_head *mod_list;
int pidx;
int idx;
unsigned int flags;
};
struct ftrace_glob {
char *search;
unsigned int len;
int type;
};
struct ftrace_graph_data {
struct ftrace_hash *hash;
struct ftrace_func_entry *entry;
int idx;
enum graph_filter_type type;
struct ftrace_hash *new_hash;
const struct seq_operations *seq_ops;
struct trace_parser parser;
};
struct kallsyms_data {
unsigned long *addrs;
const char **syms;
size_t cnt;
size_t found;
};
typedef void (*btf_trace_hugepage_set_pmd)(void *, unsigned long, unsigned long);
typedef void (*btf_trace_hugepage_set_pud)(void *, unsigned long, unsigned long);
typedef void (*btf_trace_hugepage_update_pmd)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_hugepage_update_pud)(void *, unsigned long, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_set_migration_pmd)(void *, unsigned long, unsigned long);
typedef void (*btf_trace_remove_migration_pmd)(void *, unsigned long, unsigned long);
struct trace_event_raw_hugepage_set {
struct trace_entry ent;
unsigned long addr;
unsigned long pte;
char __data[0];
};
struct trace_event_raw_hugepage_update {
struct trace_entry ent;
unsigned long addr;
unsigned long pte;
unsigned long clr;
unsigned long set;
char __data[0];
};
struct trace_event_raw_migration_pmd {
struct trace_entry ent;
unsigned long addr;
unsigned long pmd;
char __data[0];
};
struct thpsize {
struct kobject kobj;
struct list_head node;
int order;
};
struct trace_event_data_offsets_hugepage_set {};
struct trace_event_data_offsets_hugepage_update {};
struct trace_event_data_offsets_migration_pmd {};
enum {
LOG_INODE_ALL = 0,
LOG_INODE_EXISTS = 1,
};
enum {
LOG_WALK_PIN_ONLY = 0,
LOG_WALK_REPLAY_INODES = 1,
LOG_WALK_REPLAY_DIR_INDEX = 2,
LOG_WALK_REPLAY_ALL = 3,
};
struct btrfs_log_ctx {
int log_ret;
int log_transid;
bool log_new_dentries;
bool logging_new_name;
bool logging_new_delayed_dentries;
bool logged_before;
struct inode *inode;
struct list_head list;
struct list_head ordered_extents;
struct list_head conflict_inodes;
int num_conflict_inodes;
bool logging_conflict_inodes;
struct extent_buffer *scratch_eb;
};
struct btrfs_ino_list {
u64 ino;
u64 parent;
struct list_head list;
};
struct btrfs_dir_list {
u64 ino;
struct list_head list;
};
struct btrfs_dir_log_item {
__le64 end;
};
struct walk_control___2 {
int free;
int pin;
int stage;
bool ignore_cur_inode;
struct btrfs_root *replay_dest;
struct btrfs_trans_handle *trans;
int (*process_func)(struct btrfs_root *, struct extent_buffer *, struct walk_control___2 *, u64, int);
};
enum msdos_sys_ind {
DOS_EXTENDED_PARTITION = 5,
LINUX_EXTENDED_PARTITION = 133,
WIN98_EXTENDED_PARTITION = 15,
LINUX_DATA_PARTITION = 131,
LINUX_LVM_PARTITION = 142,
LINUX_RAID_PARTITION = 253,
SOLARIS_X86_PARTITION = 130,
NEW_SOLARIS_X86_PARTITION = 191,
DM6_AUX1PARTITION = 81,
DM6_AUX3PARTITION = 83,
DM6_PARTITION = 84,
EZD_PARTITION = 85,
FREEBSD_PARTITION = 165,
OPENBSD_PARTITION = 166,
NETBSD_PARTITION = 169,
BSDI_PARTITION = 183,
MINIX_PARTITION = 129,
UNIXWARE_PARTITION = 99,
};
struct msdos_partition {
u8 boot_ind;
u8 head;
u8 sector;
u8 cyl;
u8 sys_ind;
u8 end_head;
u8 end_sector;
u8 end_cyl;
__le32 start_sect;
__le32 nr_sects;
};
struct fb_cvt_data {
u32 xres;
u32 yres;
u32 refresh;
u32 f_refresh;
u32 pixclock;
u32 hperiod;
u32 hblank;
u32 hfreq;
u32 htotal;
u32 vtotal;
u32 vsync;
u32 hsync;
u32 h_front_porch;
u32 h_back_porch;
u32 v_front_porch;
u32 v_back_porch;
u32 h_margin;
u32 v_margin;
u32 interlace;
u32 aspect_ratio;
u32 active_pixels;
u32 flags;
u32 status;
};
struct pnp_info_buffer {
char *buffer;
char *curr;
unsigned long size;
unsigned long len;
int stop;
int error;
};
typedef struct pnp_info_buffer pnp_info_buffer_t;
enum dpm_order {
DPM_ORDER_NONE = 0,
DPM_ORDER_DEV_AFTER_PARENT = 1,
DPM_ORDER_PARENT_BEFORE_DEV = 2,
DPM_ORDER_DEV_LAST = 3,
};
struct fwnode_link {
struct fwnode_handle *supplier;
struct list_head s_hook;
struct fwnode_handle *consumer;
struct list_head c_hook;
u8 flags;
};
struct class_dir {
struct kobject kobj;
const struct class *class;
};
struct root_device {
struct device dev;
struct module *owner;
};
union device_attr_group_devres {
const struct attribute_group *group;
const struct attribute_group **groups;
};
enum iwl_geo_per_chain_offset_operation {
IWL_PER_CHAIN_OFFSET_SET_TABLES = 0,
IWL_PER_CHAIN_OFFSET_GET_CURRENT_TABLE = 1,
};
enum iwl_error_recovery_flags {
ERROR_RECOVERY_UPDATE_DB = 1,
ERROR_RECOVERY_END_OF_RECOVERY = 2,
};
enum iwl_extended_cfg_flags {
IWL_INIT_DEBUG_CFG = 0,
IWL_INIT_NVM = 1,
IWL_INIT_PHY = 2,
};
enum iwl_regulatory_and_nvm_subcmd_ids {
NVM_ACCESS_COMPLETE = 0,
LARI_CONFIG_CHANGE = 1,
NVM_GET_INFO = 2,
TAS_CONFIG = 3,
SAR_OFFSET_MAPPING_TABLE_CMD = 4,
UATS_TABLE_CMD = 5,
PNVM_INIT_COMPLETE_NTFY = 254,
};
enum iwl_dsm_values_rfi {
DSM_VALUE_RFI_DLVR_DISABLE = 1,
DSM_VALUE_RFI_DDR_DISABLE = 2,
};
struct iwl_tx_ant_cfg_cmd {
__le32 valid;
};
union iwl_ppag_table_cmd {
struct {
__le32 flags;
s8 gain[10];
s8 reserved[2];
} v1;
struct {
__le32 flags;
s8 gain[22];
s8 reserved[2];
} v2;
};
struct iwl_rfi_lut_entry {
__le16 freq;
u8 channels[15];
u8 bands[15];
};
struct iwl_per_chain_offset {
__le16 max_tx_power;
u8 chain_a;
u8 chain_b;
};
struct iwl_lmac_alive {
__le32 ucode_major;
__le32 ucode_minor;
u8 ver_subtype;
u8 ver_type;
u8 mac;
u8 opt;
__le32 timestamp;
struct iwl_lmac_debug_addrs dbg_ptrs;
};
struct iwl_umac_alive {
__le32 umac_major;
__le32 umac_minor;
struct iwl_umac_debug_addrs dbg_ptrs;
};
struct iwl_mfu_assert_dump_notif {
__le32 assert_id;
__le32 curr_reset_num;
__le16 index_num;
__le16 parts_num;
__le32 data_size;
__le32 data[0];
};
struct iwl_nvm_access_complete_cmd {
__le32 reserved;
};
struct iwl_init_extended_cfg_cmd {
__le32 init_flags;
};
struct iwl_mvm_alive_data {
bool valid;
u32 scd_base_addr;
};
struct iwl_calib_ctrl {
__le32 flow_trigger;
__le32 event_trigger;
};
struct iwl_phy_cfg_cmd_v3 {
__le32 phy_cfg;
struct iwl_calib_ctrl calib_control;
struct iwl_phy_specific_cfg phy_specific_cfg;
};
struct iwl_dev_tx_power_cmd_v3 {
__le16 per_chain[10];
};
struct iwl_dev_tx_power_cmd_v4 {
__le16 per_chain[10];
u8 enable_ack_reduction;
u8 reserved[3];
};
struct iwl_dev_tx_power_cmd_v5 {
__le16 per_chain[10];
u8 enable_ack_reduction;
u8 per_chain_restriction_changed;
u8 reserved[2];
__le32 timer_period;
};
struct iwl_dev_tx_power_cmd_v6 {
__le16 per_chain[44];
u8 enable_ack_reduction;
u8 per_chain_restriction_changed;
u8 reserved[2];
__le32 timer_period;
};
struct iwl_dev_tx_power_cmd_v7 {
__le16 per_chain[44];
u8 enable_ack_reduction;
u8 per_chain_restriction_changed;
u8 reserved[2];
__le32 timer_period;
__le32 flags;
};
struct iwl_dev_tx_power_common {
__le32 set_mode;
__le32 mac_context_id;
__le16 pwr_restriction;
__le16 dev_24;
__le16 dev_52_low;
__le16 dev_52_high;
};
struct iwl_dev_tx_power_cmd {
struct iwl_dev_tx_power_common common;
union {
struct iwl_dev_tx_power_cmd_v3 v3;
struct iwl_dev_tx_power_cmd_v4 v4;
struct iwl_dev_tx_power_cmd_v5 v5;
struct iwl_dev_tx_power_cmd_v6 v6;
struct iwl_dev_tx_power_cmd_v7 v7;
};
};
struct iwl_geo_tx_power_profiles_cmd_v1 {
__le32 ops;
struct iwl_per_chain_offset table[6];
};
struct iwl_geo_tx_power_profiles_cmd_v2 {
__le32 ops;
struct iwl_per_chain_offset table[6];
__le32 table_revision;
};
struct iwl_geo_tx_power_profiles_cmd_v3 {
__le32 ops;
struct iwl_per_chain_offset table[9];
__le32 table_revision;
};
struct iwl_geo_tx_power_profiles_cmd_v4 {
__le32 ops;
struct iwl_per_chain_offset table[16];
__le32 table_revision;
};
struct iwl_geo_tx_power_profiles_cmd_v5 {
__le32 ops;
struct iwl_per_chain_offset table[24];
__le32 table_revision;
};
union iwl_geo_tx_power_profiles_cmd {
struct iwl_geo_tx_power_profiles_cmd_v1 v1;
struct iwl_geo_tx_power_profiles_cmd_v2 v2;
struct iwl_geo_tx_power_profiles_cmd_v3 v3;
struct iwl_geo_tx_power_profiles_cmd_v4 v4;
struct iwl_geo_tx_power_profiles_cmd_v5 v5;
};
struct iwl_geo_tx_power_profiles_resp {
__le32 profile_idx;
};
struct iwl_fw_error_recovery_cmd {
__le32 flags;
__le32 buf_size;
};
struct iwl_lari_config_change_cmd_v7 {
__le32 config_bitmap;
__le32 oem_uhb_allow_bitmap;
__le32 oem_11ax_allow_bitmap;
__le32 oem_unii4_allow_bitmap;
__le32 chan_state_active_bitmap;
__le32 force_disable_channels_bitmap;
__le32 edt_bitmap;
};
struct iwl_rss_config_cmd {
__le32 flags;
u8 hash_mask;
u8 reserved[3];
__le32 secret_key[10];
u8 indirection_table[128];
};
struct iwl_dqa_enable_cmd {
__le32 cmd_queue;
};
struct iwl_ltr_config_cmd {
__le32 flags;
__le32 static_long;
__le32 static_short;
__le32 ltr_cfg_values[4];
__le32 ltr_short_idle_timeout;
};
struct iwl_tas_config_cmd_v3 {
__le16 override_tas_iec;
__le16 enable_tas_iec;
};
struct iwl_tas_config_cmd_v4 {
u8 override_tas_iec;
u8 enable_tas_iec;
u8 usa_tas_uhb_allowed;
u8 reserved;
};
struct iwl_tas_config_cmd_common {
__le32 block_list_size;
__le32 block_list_array[16];
};
struct iwl_tas_config_cmd {
struct iwl_tas_config_cmd_common common;
union {
struct iwl_tas_config_cmd_v3 v3;
struct iwl_tas_config_cmd_v4 v4;
};
};
struct iwl_mfuart_load_notif {
__le32 installed_ver;
__le32 external_ver;
__le32 status;
__le32 duration;
__le32 image_size;
};
struct iwl_imr_alive_info {
__le64 base_addr;
__le32 size;
__le32 enabled;
};
struct iwl_alive_ntf_v6 {
__le16 status;
__le16 flags;
struct iwl_lmac_alive lmac_data[2];
struct iwl_umac_alive umac_data;
struct iwl_sku_id sku_id;
struct iwl_imr_alive_info imr;
};
struct iwl_alive_ntf_v5 {
__le16 status;
__le16 flags;
struct iwl_lmac_alive lmac_data[2];
struct iwl_umac_alive umac_data;
struct iwl_sku_id sku_id;
};
struct iwl_alive_ntf_v4 {
__le16 status;
__le16 flags;
struct iwl_lmac_alive lmac_data[2];
struct iwl_umac_alive umac_data;
};
struct iwl_alive_ntf_v3 {
__le16 status;
__le16 flags;
struct iwl_lmac_alive lmac_data;
struct iwl_umac_alive umac_data;
};
struct each_dev_arg {
void *data;
int (*fn)(struct usb_device *, void *);
};
struct find_interface_arg {
int minor;
struct device_driver *drv;
};
enum jvc_state {
STATE_INACTIVE___4 = 0,
STATE_HEADER_SPACE = 1,
STATE_BIT_PULSE___2 = 2,
STATE_BIT_SPACE___2 = 3,
STATE_TRAILER_PULSE___2 = 4,
STATE_TRAILER_SPACE___2 = 5,
STATE_CHECK_REPEAT = 6,
};
struct gnet_estimator {
signed char interval;
unsigned char ewma_log;
};
struct neigh_sysctl_table {
struct ctl_table_header *sysctl_header;
struct ctl_table neigh_vars[22];
};
enum {
NDTA_UNSPEC = 0,
NDTA_NAME = 1,
NDTA_THRESH1 = 2,
NDTA_THRESH2 = 3,
NDTA_THRESH3 = 4,
NDTA_CONFIG = 5,
NDTA_PARMS = 6,
NDTA_STATS = 7,
NDTA_GC_INTERVAL = 8,
NDTA_PAD = 9,
__NDTA_MAX = 10,
};
enum {
NDTPA_UNSPEC = 0,
NDTPA_IFINDEX = 1,
NDTPA_REFCNT = 2,
NDTPA_REACHABLE_TIME = 3,
NDTPA_BASE_REACHABLE_TIME = 4,
NDTPA_RETRANS_TIME = 5,
NDTPA_GC_STALETIME = 6,
NDTPA_DELAY_PROBE_TIME = 7,
NDTPA_QUEUE_LEN = 8,
NDTPA_APP_PROBES = 9,
NDTPA_UCAST_PROBES = 10,
NDTPA_MCAST_PROBES = 11,
NDTPA_ANYCAST_DELAY = 12,
NDTPA_PROXY_DELAY = 13,
NDTPA_PROXY_QLEN = 14,
NDTPA_LOCKTIME = 15,
NDTPA_QUEUE_LENBYTES = 16,
NDTPA_MCAST_REPROBES = 17,
NDTPA_PAD = 18,
NDTPA_INTERVAL_PROBE_TIME_MS = 19,
__NDTPA_MAX = 20,
};
struct neigh_dump_filter {
int master_idx;
int dev_idx;
};
struct ndtmsg {
__u8 ndtm_family;
__u8 ndtm_pad1;
__u16 ndtm_pad2;
};
struct ndt_config {
__u16 ndtc_key_len;
__u16 ndtc_entry_size;
__u32 ndtc_entries;
__u32 ndtc_last_flush;
__u32 ndtc_last_rand;
__u32 ndtc_hash_rnd;
__u32 ndtc_hash_mask;
__u32 ndtc_hash_chain_gc;
__u32 ndtc_proxy_qlen;
};
struct ndt_stats {
__u64 ndts_allocs;
__u64 ndts_destroys;
__u64 ndts_hash_grows;
__u64 ndts_res_failed;
__u64 ndts_lookups;
__u64 ndts_hits;
__u64 ndts_rcv_probes_mcast;
__u64 ndts_rcv_probes_ucast;
__u64 ndts_periodic_gc_runs;
__u64 ndts_forced_gc_runs;
__u64 ndts_table_fulls;
};
enum {
UDP_FLAGS_CORK = 0,
UDP_FLAGS_NO_CHECK6_TX = 1,
UDP_FLAGS_NO_CHECK6_RX = 2,
UDP_FLAGS_GRO_ENABLED = 3,
UDP_FLAGS_ACCEPT_FRAGLIST = 4,
UDP_FLAGS_ACCEPT_L4 = 5,
UDP_FLAGS_ENCAP_ENABLED = 6,
UDP_FLAGS_UDPLITE_SEND_CC = 7,
UDP_FLAGS_UDPLITE_RECV_CC = 8,
};
typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *);
typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16);
enum cfg80211_rnr_iter_ret {
RNR_ITER_CONTINUE = 0,
RNR_ITER_BREAK = 1,
RNR_ITER_ERROR = 2,
};
enum cfg80211_bss_frame_type {
CFG80211_BSS_FTYPE_UNKNOWN = 0,
CFG80211_BSS_FTYPE_BEACON = 1,
CFG80211_BSS_FTYPE_PRESP = 2,
CFG80211_BSS_FTYPE_S1G_BEACON = 3,
};
struct cfg80211_inform_single_bss_data {
struct cfg80211_inform_bss *drv_data;
enum cfg80211_bss_frame_type ftype;
struct ieee80211_channel *channel;
u8 bssid[6];
u64 tsf;
u16 capability;
u16 beacon_interval;
const u8 *ie;
size_t ielen;
enum {
BSS_SOURCE_DIRECT = 0,
BSS_SOURCE_MBSSID = 1,
BSS_SOURCE_STA_PROFILE = 2,
} bss_source;
struct cfg80211_bss *source_bss;
u8 max_bssid_indicator;
u8 bssid_index;
u8 use_for;
u64 cannot_use_reasons;
};
enum bss_compare_mode {
BSS_CMP_REGULAR = 0,
BSS_CMP_HIDE_ZLEN = 1,
BSS_CMP_HIDE_NUL = 2,
};
enum nl80211_bss_cannot_use_reasons {
NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1,
NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 2,
};
struct cfg80211_colocated_ap {
struct list_head list;
u8 bssid[6];
u8 ssid[32];
size_t ssid_len;
u32 short_ssid;
u32 center_freq;
u8 unsolicited_probe: 1;
u8 oct_recommended: 1;
u8 same_ssid: 1;
u8 multi_bss: 1;
u8 transmitted_bssid: 1;
u8 colocated_ess: 1;
u8 short_ssid_valid: 1;
s8 psd_20;
};
struct colocated_ap_data {
const struct element *ssid_elem;
struct list_head ap_list;
u32 s_ssid_tmp;
int n_coloc;
};
struct ieee80211_neighbor_ap_info {
u8 tbtt_info_hdr;
u8 tbtt_info_len;
u8 op_class;
u8 channel;
};
struct ieee80211_rnr_mld_params {
u8 mld_id;
__le16 params;
} __attribute__((packed));
struct ieee80211_tbtt_info_ge_11 {
u8 tbtt_offset;
u8 bssid[6];
__le32 short_ssid;
u8 bss_params;
s8 psd_20;
struct ieee80211_rnr_mld_params mld_params;
} __attribute__((packed));
struct ieee80211_tbtt_info_7_8_9 {
u8 tbtt_offset;
u8 bssid[6];
u8 bss_params;
s8 psd_20;
};
struct cfg80211_mle {
struct ieee80211_multi_link_elem *mle;
struct ieee80211_mle_per_sta_profile *sta_prof[15];
ssize_t sta_prof_len[15];
u8 data[0];
};
struct tbtt_info_iter_data {
const struct ieee80211_neighbor_ap_info *ap_info;
u8 param_ch_count;
u32 use_for;
u8 mld_id;
u8 link_id;
};
struct ieee80211_ext {
__le16 frame_control;
__le16 duration;
union {
struct {
u8 sa[6];
__le32 timestamp;
u8 change_seq;
u8 variable[0];
} __attribute__((packed)) s1g_beacon;
struct {
u8 sa[6];
__le32 timestamp;
u8 change_seq;
u8 next_tbtt[3];
u8 variable[0];
} __attribute__((packed)) s1g_short_beacon;
} u;
};
struct setup_indirect {
__u32 type;
__u32 reserved;
__u64 len;
__u64 addr;
};
struct setup_data {
__u64 next;
__u32 type;
__u32 len;
__u8 data[0];
};
struct linked_page;
struct chain_allocator {
struct linked_page *chain;
unsigned int used_space;
gfp_t gfp_mask;
int safe_needed;
};
struct linked_page {
struct linked_page *next;
char data[4088];
};
struct pbe {
void *address;
void *orig_address;
struct pbe *next;
};
struct mem_zone_bm_rtree;
struct rtree_node;
struct bm_position {
struct mem_zone_bm_rtree *zone;
struct rtree_node *node;
unsigned long node_pfn;
unsigned long cur_pfn;
int node_bit;
};
struct memory_bitmap {
struct list_head zones;
struct linked_page *p_list;
struct bm_position cur;
};
struct mem_zone_bm_rtree {
struct list_head list;
struct list_head nodes;
struct list_head leaves;
unsigned long start_pfn;
unsigned long end_pfn;
struct rtree_node *rtree;
int levels;
unsigned int blocks;
};
struct rtree_node {
struct list_head list;
unsigned long *data;
};
struct nosave_region {
struct list_head list;
unsigned long start_pfn;
unsigned long end_pfn;
};
struct swsusp_info {
struct new_utsname uts;
u32 version_code;
unsigned long num_physpages;
int cpus;
unsigned long image_pages;
unsigned long pages;
unsigned long size;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct mem_extent {
struct list_head hook;
unsigned long start;
unsigned long end;
};
struct bsd_acct_struct {
struct fs_pin pin;
atomic_long_t count;
struct callback_head rcu;
struct mutex lock;
int active;
unsigned long needcheck;
struct file *file;
struct pid_namespace *ns;
struct work_struct work;
struct completion done;
};
typedef __u16 comp_t;
struct acct {
char ac_flag;
char ac_version;
__u16 ac_uid16;
__u16 ac_gid16;
__u16 ac_tty;
__u32 ac_btime;
comp_t ac_utime;
comp_t ac_stime;
comp_t ac_etime;
comp_t ac_mem;
comp_t ac_io;
comp_t ac_rw;
comp_t ac_minflt;
comp_t ac_majflt;
comp_t ac_swaps;
__u16 ac_ahz;
__u32 ac_exitcode;
char ac_comm[17];
__u8 ac_etime_hi;
__u16 ac_etime_lo;
__u32 ac_uid;
__u32 ac_gid;
};
typedef struct acct acct_t;
typedef __u32 comp2_t;
enum dynevent_type {
DYNEVENT_TYPE_SYNTH = 1,
DYNEVENT_TYPE_KPROBE = 2,
DYNEVENT_TYPE_NONE = 3,
};
struct trace_kprobe {
struct dyn_event devent;
struct kretprobe rp;
unsigned long __attribute__((btf_type_tag("percpu"))) *nhit;
const char *symbol;
struct trace_probe tp;
};
struct kretprobe_trace_entry_head {
struct trace_entry ent;
unsigned long func;
unsigned long ret_ip;
};
struct kprobe_trace_entry_head {
struct trace_entry ent;
unsigned long ip;
};
struct dynevent_cmd;
typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *);
struct dynevent_cmd {
struct seq_buf seq;
const char *event_name;
unsigned int n_fields;
enum dynevent_type type;
dynevent_create_fn_t run_command;
void *private_data;
};
struct dynevent_arg {
const char *str;
char separator;
};
typedef int (*dynevent_check_arg_fn_t)(void *);
struct sym_count_ctx {
unsigned int count;
const char *name;
};
enum {
DIR_OFFSET_MIN = 2,
};
struct simple_transaction_argresp {
ssize_t size;
char data[0];
};
struct simple_attr {
int (*get)(void *, u64 *);
int (*set)(void *, u64);
char get_buf[24];
char set_buf[24];
void *data;
const char *fmt;
struct mutex mutex;
};
enum {
RANGE_BOUNDARY_WRITTEN_EXTENT = 0,
RANGE_BOUNDARY_PREALLOC_EXTENT = 1,
RANGE_BOUNDARY_HOLE = 2,
};
struct falloc_range {
struct list_head list;
u64 start;
u64 len;
};
enum {
SKCIPHER_WALK_PHYS = 1,
SKCIPHER_WALK_SLOW = 2,
SKCIPHER_WALK_COPY = 4,
SKCIPHER_WALK_DIFF = 8,
SKCIPHER_WALK_SLEEP = 16,
};
struct skcipher_walk_buffer {
struct list_head entry;
struct scatter_walk dst;
unsigned int len;
u8 *data;
u8 buffer[0];
};
struct skcipher_instance {
void (*free)(struct skcipher_instance *);
union {
struct {
char head[88];
struct crypto_instance base;
} s;
struct skcipher_alg alg;
};
};
struct skcipher_walk {
union {
struct {
struct page *page;
unsigned long offset;
} phys;
struct {
u8 *page;
void *addr;
} virt;
} src;
union {
struct {
struct page *page;
unsigned long offset;
} phys;
struct {
u8 *page;
void *addr;
} virt;
} dst;
struct scatter_walk in;
unsigned int nbytes;
struct scatter_walk out;
unsigned int total;
struct list_head buffers;
u8 *page;
u8 *buffer;
u8 *oiv;
void *iv;
unsigned int ivsize;
int flags;
unsigned int blocksize;
unsigned int stride;
unsigned int alignmask;
};
struct crypto_istat_cipher {
atomic64_t encrypt_cnt;
atomic64_t encrypt_tlen;
atomic64_t decrypt_cnt;
atomic64_t decrypt_tlen;
atomic64_t err_cnt;
};
struct skcipher_ctx_simple {
struct crypto_cipher *cipher;
};
struct blk_major_name {
struct blk_major_name *next;
int major;
char name[16];
void (*probe)(dev_t);
};
enum asn1_opcode {
ASN1_OP_MATCH = 0,
ASN1_OP_MATCH_OR_SKIP = 1,
ASN1_OP_MATCH_ACT = 2,
ASN1_OP_MATCH_ACT_OR_SKIP = 3,
ASN1_OP_MATCH_JUMP = 4,
ASN1_OP_MATCH_JUMP_OR_SKIP = 5,
ASN1_OP_MATCH_ANY = 8,
ASN1_OP_MATCH_ANY_OR_SKIP = 9,
ASN1_OP_MATCH_ANY_ACT = 10,
ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11,
ASN1_OP_COND_MATCH_OR_SKIP = 17,
ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19,
ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21,
ASN1_OP_COND_MATCH_ANY = 24,
ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25,
ASN1_OP_COND_MATCH_ANY_ACT = 26,
ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27,
ASN1_OP_COND_FAIL = 28,
ASN1_OP_COMPLETE = 29,
ASN1_OP_ACT = 30,
ASN1_OP_MAYBE_ACT = 31,
ASN1_OP_END_SEQ = 32,
ASN1_OP_END_SET = 33,
ASN1_OP_END_SEQ_OF = 34,
ASN1_OP_END_SET_OF = 35,
ASN1_OP_END_SEQ_ACT = 36,
ASN1_OP_END_SET_ACT = 37,
ASN1_OP_END_SEQ_OF_ACT = 38,
ASN1_OP_END_SET_OF_ACT = 39,
ASN1_OP_RETURN = 40,
ASN1_OP__NR = 41,
};
enum asn1_method {
ASN1_PRIM = 0,
ASN1_CONS = 1,
};
enum pce_status {
PCE_STATUS_NONE = 0,
PCE_STATUS_ACQUIRED = 1,
PCE_STATUS_PREPARED = 2,
PCE_STATUS_ENABLED = 3,
PCE_STATUS_ERROR = 4,
};
struct pm_clock_entry {
struct list_head node;
char *con_id;
struct clk *clk;
enum pce_status status;
bool enabled_when_prepared;
};
struct pm_clk_notifier_block {
struct notifier_block nb;
struct dev_pm_domain *pm_domain;
char *con_ids[0];
};
enum iwl_ppag_flags {
IWL_PPAG_ETSI_MASK = 1,
IWL_PPAG_CHINA_MASK = 2,
IWL_PPAG_ETSI_LPI_UHB_MASK = 4,
IWL_PPAG_ETSI_VLP_UHB_MASK = 8,
IWL_PPAG_ETSI_SP_UHB_MASK = 16,
IWL_PPAG_USA_LPI_UHB_MASK = 32,
IWL_PPAG_USA_VLP_UHB_MASK = 64,
IWL_PPAG_USA_SP_UHB_MASK = 128,
IWL_PPAG_CANADA_LPI_UHB_MASK = 256,
IWL_PPAG_CANADA_VLP_UHB_MASK = 512,
IWL_PPAG_CANADA_SP_UHB_MASK = 1024,
};
enum iwl_dsm_values_indonesia {
DSM_VALUE_INDONESIA_DISABLE = 0,
DSM_VALUE_INDONESIA_ENABLE = 1,
DSM_VALUE_INDONESIA_RESERVED = 2,
DSM_VALUE_INDONESIA_MAX = 3,
};
enum iwl_lari_config_masks {
LARI_CONFIG_DISABLE_11AC_UKRAINE_MSK = 1,
LARI_CONFIG_CHANGE_ETSI_TO_PASSIVE_MSK = 2,
LARI_CONFIG_CHANGE_ETSI_TO_DISABLED_MSK = 4,
LARI_CONFIG_ENABLE_5G2_IN_INDONESIA_MSK = 8,
LARI_CONFIG_ENABLE_CHINA_22_REG_SUPPORT_MSK = 128,
};
enum iwl_dsm_values_srd {
DSM_VALUE_SRD_ACTIVE = 0,
DSM_VALUE_SRD_PASSIVE = 1,
DSM_VALUE_SRD_DISABLE = 2,
DSM_VALUE_SRD_MAX = 3,
};
enum iwl_dsm_masks_reg {
DSM_MASK_CHINA_22_REG = 4,
};
enum rt2x00usb_vendor_request {
USB_DEVICE_MODE = 1,
USB_SINGLE_WRITE = 2,
USB_SINGLE_READ = 3,
USB_MULTI_WRITE = 6,
USB_MULTI_READ = 7,
USB_EEPROM_WRITE = 8,
USB_EEPROM_READ = 9,
USB_LED_CONTROL = 10,
USB_RX_CONTROL = 12,
};
enum rx_crypto {
RX_CRYPTO_SUCCESS = 0,
RX_CRYPTO_FAIL_ICV = 1,
RX_CRYPTO_FAIL_MIC = 2,
RX_CRYPTO_FAIL_KEY = 3,
};
enum rt2x00usb_mode_offset {
USB_MODE_RESET = 1,
USB_MODE_UNPLUG = 2,
USB_MODE_FUNCTION = 3,
USB_MODE_TEST = 4,
USB_MODE_SLEEP = 7,
USB_MODE_FIRMWARE = 8,
USB_MODE_WAKEUP = 9,
USB_MODE_AUTORUN = 17,
};
struct swoc_info {
__u8 rev;
__u8 reserved[8];
__u16 LinuxSKU;
__u16 LinuxVer;
__u8 reserved2[47];
} __attribute__((packed));
enum rc6_state {
STATE_INACTIVE___5 = 0,
STATE_PREFIX_SPACE = 1,
STATE_HEADER_BIT_START___2 = 2,
STATE_HEADER_BIT_END___2 = 3,
STATE_TOGGLE_START = 4,
STATE_TOGGLE_END = 5,
STATE_BODY_BIT_START___2 = 6,
STATE_BODY_BIT_END___2 = 7,
STATE_FINISHED___3 = 8,
};
enum rc6_mode {
RC6_MODE_0 = 0,
RC6_MODE_6A = 1,
RC6_MODE_UNKNOWN = 2,
};
struct net_device_devres {
struct net_device *ndev;
};
enum {
ETHTOOL_A_BITSET_UNSPEC = 0,
ETHTOOL_A_BITSET_NOMASK = 1,
ETHTOOL_A_BITSET_SIZE = 2,
ETHTOOL_A_BITSET_BITS = 3,
ETHTOOL_A_BITSET_VALUE = 4,
ETHTOOL_A_BITSET_MASK = 5,
__ETHTOOL_A_BITSET_CNT = 6,
ETHTOOL_A_BITSET_MAX = 5,
};
enum {
ETHTOOL_A_BITSET_BITS_UNSPEC = 0,
ETHTOOL_A_BITSET_BITS_BIT = 1,
__ETHTOOL_A_BITSET_BITS_CNT = 2,
ETHTOOL_A_BITSET_BITS_MAX = 1,
};
enum {
ETHTOOL_A_BITSET_BIT_UNSPEC = 0,
ETHTOOL_A_BITSET_BIT_INDEX = 1,
ETHTOOL_A_BITSET_BIT_NAME = 2,
ETHTOOL_A_BITSET_BIT_VALUE = 3,
__ETHTOOL_A_BITSET_BIT_CNT = 4,
ETHTOOL_A_BITSET_BIT_MAX = 3,
};
enum ieee80211_s1g_chanwidth {
IEEE80211_S1G_CHANWIDTH_1MHZ = 0,
IEEE80211_S1G_CHANWIDTH_2MHZ = 1,
IEEE80211_S1G_CHANWIDTH_4MHZ = 3,
IEEE80211_S1G_CHANWIDTH_8MHZ = 7,
IEEE80211_S1G_CHANWIDTH_16MHZ = 15,
};
struct ieee80211_noa_data {
u32 next_tsf;
bool has_next_tsf;
u8 absent;
u8 count[4];
struct {
u32 start;
u32 duration;
u32 interval;
} desc[4];
};
enum topo_types {
INVALID_TYPE = 0,
SMT_TYPE = 1,
CORE_TYPE = 2,
MAX_TYPE_0B = 3,
MODULE_TYPE = 3,
TILE_TYPE = 4,
DIE_TYPE = 5,
DIEGRP_TYPE = 6,
MAX_TYPE_1F = 7,
};
enum {
SAMPLES = 8,
MIN_CHANGE = 5,
};
enum vmx_l1d_flush_state {
VMENTER_L1D_FLUSH_AUTO = 0,
VMENTER_L1D_FLUSH_NEVER = 1,
VMENTER_L1D_FLUSH_COND = 2,
VMENTER_L1D_FLUSH_ALWAYS = 3,
VMENTER_L1D_FLUSH_EPT_DISABLED = 4,
VMENTER_L1D_FLUSH_NOT_REQUIRED = 5,
};
enum rfds_mitigations {
RFDS_MITIGATION_OFF = 0,
RFDS_MITIGATION_VERW = 1,
RFDS_MITIGATION_UCODE_NEEDED = 2,
};
enum srbds_mitigations {
SRBDS_MITIGATION_OFF = 0,
SRBDS_MITIGATION_UCODE_NEEDED = 1,
SRBDS_MITIGATION_FULL = 2,
SRBDS_MITIGATION_TSX_OFF = 3,
SRBDS_MITIGATION_HYPERVISOR = 4,
};
enum l1d_flush_mitigations {
L1D_FLUSH_OFF = 0,
L1D_FLUSH_ON = 1,
};
enum gds_mitigations {
GDS_MITIGATION_OFF = 0,
GDS_MITIGATION_UCODE_NEEDED = 1,
GDS_MITIGATION_FORCE = 2,
GDS_MITIGATION_FULL = 3,
GDS_MITIGATION_FULL_LOCKED = 4,
GDS_MITIGATION_HYPERVISOR = 5,
};
enum spectre_v1_mitigation {
SPECTRE_V1_MITIGATION_NONE = 0,
SPECTRE_V1_MITIGATION_AUTO = 1,
};
enum retbleed_mitigation_cmd {
RETBLEED_CMD_OFF = 0,
RETBLEED_CMD_AUTO = 1,
RETBLEED_CMD_UNRET = 2,
RETBLEED_CMD_IBPB = 3,
RETBLEED_CMD_STUFF = 4,
};
enum retbleed_mitigation {
RETBLEED_MITIGATION_NONE = 0,
RETBLEED_MITIGATION_UNRET = 1,
RETBLEED_MITIGATION_IBPB = 2,
RETBLEED_MITIGATION_IBRS = 3,
RETBLEED_MITIGATION_EIBRS = 4,
RETBLEED_MITIGATION_STUFF = 5,
};
enum spectre_v2_mitigation_cmd {
SPECTRE_V2_CMD_NONE = 0,
SPECTRE_V2_CMD_AUTO = 1,
SPECTRE_V2_CMD_FORCE = 2,
SPECTRE_V2_CMD_RETPOLINE = 3,
SPECTRE_V2_CMD_RETPOLINE_GENERIC = 4,
SPECTRE_V2_CMD_RETPOLINE_LFENCE = 5,
SPECTRE_V2_CMD_EIBRS = 6,
SPECTRE_V2_CMD_EIBRS_RETPOLINE = 7,
SPECTRE_V2_CMD_EIBRS_LFENCE = 8,
SPECTRE_V2_CMD_IBRS = 9,
};
enum spectre_v2_user_cmd {
SPECTRE_V2_USER_CMD_NONE = 0,
SPECTRE_V2_USER_CMD_AUTO = 1,
SPECTRE_V2_USER_CMD_FORCE = 2,
SPECTRE_V2_USER_CMD_PRCTL = 3,
SPECTRE_V2_USER_CMD_PRCTL_IBPB = 4,
SPECTRE_V2_USER_CMD_SECCOMP = 5,
SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6,
};
enum spectre_v2_user_mitigation {
SPECTRE_V2_USER_NONE = 0,
SPECTRE_V2_USER_STRICT = 1,
SPECTRE_V2_USER_STRICT_PREFERRED = 2,
SPECTRE_V2_USER_PRCTL = 3,
SPECTRE_V2_USER_SECCOMP = 4,
};
enum mds_mitigations {
MDS_MITIGATION_OFF = 0,
MDS_MITIGATION_FULL = 1,
MDS_MITIGATION_VMWERV = 2,
};
enum taa_mitigations {
TAA_MITIGATION_OFF = 0,
TAA_MITIGATION_UCODE_NEEDED = 1,
TAA_MITIGATION_VERW = 2,
TAA_MITIGATION_TSX_DISABLED = 3,
};
enum mmio_mitigations {
MMIO_MITIGATION_OFF = 0,
MMIO_MITIGATION_UCODE_NEEDED = 1,
MMIO_MITIGATION_VERW = 2,
};
enum ssb_mitigation_cmd {
SPEC_STORE_BYPASS_CMD_NONE = 0,
SPEC_STORE_BYPASS_CMD_AUTO = 1,
SPEC_STORE_BYPASS_CMD_ON = 2,
SPEC_STORE_BYPASS_CMD_PRCTL = 3,
SPEC_STORE_BYPASS_CMD_SECCOMP = 4,
};
enum ssb_mitigation {
SPEC_STORE_BYPASS_NONE = 0,
SPEC_STORE_BYPASS_DISABLE = 1,
SPEC_STORE_BYPASS_PRCTL = 2,
SPEC_STORE_BYPASS_SECCOMP = 3,
};
enum srso_mitigation_cmd {
SRSO_CMD_OFF = 0,
SRSO_CMD_MICROCODE = 1,
SRSO_CMD_SAFE_RET = 2,
SRSO_CMD_IBPB = 3,
SRSO_CMD_IBPB_ON_VMEXIT = 4,
};
enum srso_mitigation {
SRSO_MITIGATION_NONE = 0,
SRSO_MITIGATION_UCODE_NEEDED = 1,
SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED = 2,
SRSO_MITIGATION_MICROCODE = 3,
SRSO_MITIGATION_SAFE_RET = 4,
SRSO_MITIGATION_IBPB = 5,
SRSO_MITIGATION_IBPB_ON_VMEXIT = 6,
};
enum cpuhp_smt_control {
CPU_SMT_ENABLED = 0,
CPU_SMT_DISABLED = 1,
CPU_SMT_FORCE_DISABLED = 2,
CPU_SMT_NOT_SUPPORTED = 3,
CPU_SMT_NOT_IMPLEMENTED = 4,
};
enum x86_hypervisor_type {
X86_HYPER_NATIVE = 0,
X86_HYPER_VMWARE = 1,
X86_HYPER_MS_HYPERV = 2,
X86_HYPER_XEN_PV = 3,
X86_HYPER_XEN_HVM = 4,
X86_HYPER_KVM = 5,
X86_HYPER_JAILHOUSE = 6,
X86_HYPER_ACRN = 7,
};
typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *);
typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int);
typedef void (*btf_trace_softirq_entry)(void *, unsigned int);
typedef void (*btf_trace_softirq_exit)(void *, unsigned int);
typedef void (*btf_trace_softirq_raise)(void *, unsigned int);
typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *);
typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *);
struct tasklet_head {
struct tasklet_struct *head;
struct tasklet_struct **tail;
};
struct trace_event_raw_irq_handler_entry {
struct trace_entry ent;
int irq;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_irq_handler_exit {
struct trace_entry ent;
int irq;
int ret;
char __data[0];
};
struct trace_event_raw_softirq {
struct trace_entry ent;
unsigned int vec;
char __data[0];
};
struct trace_event_raw_tasklet {
struct trace_entry ent;
void *tasklet;
void *func;
char __data[0];
};
struct trace_event_data_offsets_irq_handler_entry {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_irq_handler_exit {};
struct trace_event_data_offsets_softirq {};
struct trace_event_data_offsets_tasklet {};
typedef void (*btf_trace_irq_disable)(void *, unsigned long, unsigned long);
typedef void (*btf_trace_irq_enable)(void *, unsigned long, unsigned long);
struct trace_event_raw_preemptirq_template {
struct trace_entry ent;
s32 caller_offs;
s32 parent_offs;
char __data[0];
};
struct trace_event_data_offsets_preemptirq_template {};
struct mminit_pfnnid_cache {
unsigned long last_start;
unsigned long last_end;
int last_nid;
};
enum {
Opt_direct = 0,
Opt_fd = 1,
Opt_gid___6 = 2,
Opt_ignore = 3,
Opt_indirect = 4,
Opt_maxproto = 5,
Opt_minproto = 6,
Opt_offset = 7,
Opt_pgrp = 8,
Opt_strictexpire = 9,
Opt_uid___5 = 10,
};
struct autofs_fs_context {
kuid_t uid;
kgid_t gid;
int pgrp;
bool pgrp_set;
};
struct btrfs_lru_cache_entry {
struct list_head lru_list;
u64 key;
u64 gen;
struct list_head list;
};
struct btrfs_lru_cache {
struct list_head lru_list;
struct maple_tree entries;
unsigned int size;
unsigned int max_size;
};
typedef struct {
rawSeqStore_t seqStore;
U32 startPosInBlock;
U32 endPosInBlock;
U32 offset;
} ZSTD_optLdm_t;
typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32);
struct acpi_processor_errata {
u8 smp;
struct {
u8 throttle: 1;
u8 fdma: 1;
u8 reserved: 6;
u32 bmisx;
} piix4;
};
struct scsi_event {
enum scsi_device_event evt_type;
struct list_head node;
};
struct reg {
u32 addr;
bool is64;
};
struct rtw_stas_entry {
struct list_head list;
struct ieee80211_sta *sta;
};
struct rtw_vifs_entry {
struct list_head list;
struct ieee80211_vif *vif;
};
struct rtw_iter_stas_data {
struct rtw_dev *rtwdev;
struct list_head list;
};
struct rtw_iter_vifs_data {
struct rtw_dev *rtwdev;
struct list_head list;
};
enum nec_state {
STATE_INACTIVE___6 = 0,
STATE_HEADER_SPACE___2 = 1,
STATE_BIT_PULSE___3 = 2,
STATE_BIT_SPACE___3 = 3,
STATE_TRAILER_PULSE___3 = 4,
STATE_TRAILER_SPACE___3 = 5,
};
struct hidraw_report {
__u8 *value;
int len;
};
struct hidraw_list {
struct hidraw_report buffer[64];
int head;
int tail;
struct fasync_struct *fasync;
struct hidraw *hidraw;
struct list_head node;
struct mutex read_mutex;
};
struct hidraw_devinfo {
__u32 bustype;
__s16 vendor;
__s16 product;
};
struct ethtool_forced_speed_map {
u32 speed;
unsigned long caps[2];
const u32 *cap_arr;
u32 arr_size;
};
enum nf_ct_tcp_action {
NFCT_TCP_IGNORE = 0,
NFCT_TCP_INVALID = 1,
NFCT_TCP_ACCEPT = 2,
};
enum tcp_bit_set {
TCP_SYN_SET = 0,
TCP_SYNACK_SET = 1,
TCP_FIN_SET = 2,
TCP_ACK_SET = 3,
TCP_RST_SET = 4,
TCP_NONE_SET = 5,
};
enum ctattr_protoinfo_tcp {
CTA_PROTOINFO_TCP_UNSPEC = 0,
CTA_PROTOINFO_TCP_STATE = 1,
CTA_PROTOINFO_TCP_WSCALE_ORIGINAL = 2,
CTA_PROTOINFO_TCP_WSCALE_REPLY = 3,
CTA_PROTOINFO_TCP_FLAGS_ORIGINAL = 4,
CTA_PROTOINFO_TCP_FLAGS_REPLY = 5,
__CTA_PROTOINFO_TCP_MAX = 6,
};
struct nf_ct_tcp_flags {
__u8 flags;
__u8 mask;
};
struct xt_af {
struct mutex mutex;
struct list_head match;
struct list_head target;
};
enum audit_nfcfgop {
AUDIT_XT_OP_REGISTER = 0,
AUDIT_XT_OP_REPLACE = 1,
AUDIT_XT_OP_UNREGISTER = 2,
AUDIT_NFT_OP_TABLE_REGISTER = 3,
AUDIT_NFT_OP_TABLE_UNREGISTER = 4,
AUDIT_NFT_OP_CHAIN_REGISTER = 5,
AUDIT_NFT_OP_CHAIN_UNREGISTER = 6,
AUDIT_NFT_OP_RULE_REGISTER = 7,
AUDIT_NFT_OP_RULE_UNREGISTER = 8,
AUDIT_NFT_OP_SET_REGISTER = 9,
AUDIT_NFT_OP_SET_UNREGISTER = 10,
AUDIT_NFT_OP_SETELEM_REGISTER = 11,
AUDIT_NFT_OP_SETELEM_UNREGISTER = 12,
AUDIT_NFT_OP_GEN_REGISTER = 13,
AUDIT_NFT_OP_OBJ_REGISTER = 14,
AUDIT_NFT_OP_OBJ_UNREGISTER = 15,
AUDIT_NFT_OP_OBJ_RESET = 16,
AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17,
AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18,
AUDIT_NFT_OP_SETELEM_RESET = 19,
AUDIT_NFT_OP_RULE_RESET = 20,
AUDIT_NFT_OP_INVALID = 21,
};
enum {
MTTG_TRAV_INIT = 0,
MTTG_TRAV_NFP_UNSPEC = 1,
MTTG_TRAV_NFP_SPEC = 2,
MTTG_TRAV_DONE = 3,
};
struct xt_template {
struct list_head list;
int (*table_init)(struct net *);
struct module *me;
char name[32];
};
struct nf_mttg_trav {
struct list_head *head;
struct list_head *curr;
uint8_t class;
};
struct xt_pernet {
struct list_head tables[11];
};
enum {
IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC = 0,
IFLA_BRIDGE_VLAN_TUNNEL_ID = 1,
IFLA_BRIDGE_VLAN_TUNNEL_VID = 2,
IFLA_BRIDGE_VLAN_TUNNEL_FLAGS = 3,
__IFLA_BRIDGE_VLAN_TUNNEL_MAX = 4,
};
struct freq_band_range {
u64 start;
u64 end;
};
struct wbrf_ranges_in_out {
u64 num_of_ranges;
struct freq_band_range band_list[11];
};
typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int));
typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *);
typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int);
struct cpuhp_cpu_state {
enum cpuhp_state state;
enum cpuhp_state target;
enum cpuhp_state fail;
struct task_struct *thread;
bool should_run;
bool rollback;
bool single;
bool bringup;
struct hlist_node *node;
struct hlist_node *last;
enum cpuhp_state cb_state;
int result;
atomic_t ap_sync_state;
struct completion done_up;
struct completion done_down;
};
struct cpuhp_step {
const char *name;
union {
int (*single)(unsigned int);
int (*multi)(unsigned int, struct hlist_node *);
} startup;
union {
int (*single)(unsigned int);
int (*multi)(unsigned int, struct hlist_node *);
} teardown;
struct hlist_head list;
bool cant_stop;
bool multi_instance;
};
enum cpu_mitigations {
CPU_MITIGATIONS_OFF = 0,
CPU_MITIGATIONS_AUTO = 1,
CPU_MITIGATIONS_AUTO_NOSMT = 2,
};
enum cpuhp_sync_state {
SYNC_STATE_DEAD = 0,
SYNC_STATE_KICKED = 1,
SYNC_STATE_SHOULD_DIE = 2,
SYNC_STATE_ALIVE = 3,
SYNC_STATE_SHOULD_ONLINE = 4,
SYNC_STATE_ONLINE = 5,
};
struct trace_event_raw_cpuhp_enter {
struct trace_entry ent;
unsigned int cpu;
int target;
int idx;
void *fun;
char __data[0];
};
struct trace_event_raw_cpuhp_multi_enter {
struct trace_entry ent;
unsigned int cpu;
int target;
int idx;
void *fun;
char __data[0];
};
struct trace_event_raw_cpuhp_exit {
struct trace_entry ent;
unsigned int cpu;
int state;
int idx;
int ret;
char __data[0];
};
struct cpu_down_work {
unsigned int cpu;
enum cpuhp_state target;
};
struct trace_event_data_offsets_cpuhp_enter {};
struct trace_event_data_offsets_cpuhp_multi_enter {};
struct trace_event_data_offsets_cpuhp_exit {};
enum wd_read_status {
WD_READ_SUCCESS = 0,
WD_READ_UNSTABLE = 1,
WD_READ_SKIP = 2,
};
enum {
BPF_F_SYSCTL_BASE_NAME = 1,
};
typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64);
typedef u64 (*btf_bpf_get_retval)();
typedef u64 (*btf_bpf_set_retval)(int);
typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64);
typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t);
typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t);
typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t);
typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *);
struct bpf_cgroup_link;
struct bpf_prog_list {
struct hlist_node node;
struct bpf_prog *prog;
struct bpf_cgroup_link *link;
struct bpf_cgroup_storage *storage[2];
};
struct bpf_cgroup_link {
struct bpf_link link;
struct cgroup *cgroup;
enum bpf_attach_type type;
};
struct bpf_sockopt_buf {
u8 data[32];
};
enum poll_time_type {
PT_TIMEVAL = 0,
PT_OLD_TIMEVAL = 1,
PT_TIMESPEC = 2,
PT_OLD_TIMESPEC = 3,
};
struct poll_table_entry {
struct file *filp;
__poll_t key;
wait_queue_entry_t wait;
wait_queue_head_t *wait_address;
};
struct poll_table_page;
struct poll_wqueues {
poll_table pt;
struct poll_table_page *table;
struct task_struct *polling_task;
int triggered;
int error;
int inline_index;
struct poll_table_entry inline_entries[9];
};
struct poll_table_page {
struct poll_table_page *next;
struct poll_table_entry *entry;
struct poll_table_entry entries[0];
};
typedef struct {
unsigned long fds_bits[16];
} __kernel_fd_set;
typedef __kernel_fd_set fd_set;
struct poll_list {
struct poll_list *next;
unsigned int len;
struct pollfd entries[0];
};
typedef struct {
unsigned long *in;
unsigned long *out;
unsigned long *ex;
unsigned long *res_in;
unsigned long *res_out;
unsigned long *res_ex;
} fd_set_bits;
struct sigset_argpack {
sigset_t __attribute__((btf_type_tag("user"))) *p;
size_t size;
};
struct old_timeval32 {
old_time32_t tv_sec;
s32 tv_usec;
};
struct fuse_getxattr_in {
uint32_t size;
uint32_t padding;
};
struct fuse_getxattr_out {
uint32_t size;
uint32_t padding;
};
struct fuse_setxattr_in {
uint32_t size;
uint32_t flags;
uint32_t setxattr_flags;
uint32_t padding;
};
struct crypto_istat_akcipher {
atomic64_t encrypt_cnt;
atomic64_t encrypt_tlen;
atomic64_t decrypt_cnt;
atomic64_t decrypt_tlen;
atomic64_t verify_cnt;
atomic64_t sign_cnt;
atomic64_t err_cnt;
};
struct throtl_service_queue {
struct throtl_service_queue *parent_sq;
struct list_head queued[2];
unsigned int nr_queued[2];
struct rb_root_cached pending_tree;
unsigned int nr_pending;
unsigned long first_pending_disptime;
struct timer_list pending_timer;
};
struct latency_bucket {
unsigned long total_latency;
int samples;
};
struct avg_latency_bucket {
unsigned long latency;
bool valid;
};
struct throtl_data {
struct throtl_service_queue service_queue;
struct request_queue *queue;
unsigned int nr_queued[2];
unsigned int throtl_slice;
struct work_struct dispatch_work;
unsigned int limit_index;
bool limit_valid[2];
unsigned long low_upgrade_time;
unsigned long low_downgrade_time;
unsigned int scale;
struct latency_bucket tmp_buckets[18];
struct avg_latency_bucket avg_buckets[18];
struct latency_bucket __attribute__((btf_type_tag("percpu"))) *latency_buckets[2];
unsigned long last_calculate_time;
unsigned long filtered_latency;
bool track_bio_latency;
};
enum tg_state_flags {
THROTL_TG_PENDING = 1,
THROTL_TG_WAS_EMPTY = 2,
THROTL_TG_CANCELING = 4,
};
enum {
LIMIT_LOW = 0,
LIMIT_MAX = 1,
LIMIT_CNT = 2,
};
struct throtl_grp;
struct throtl_qnode {
struct list_head node;
struct bio_list bios;
struct throtl_grp *tg;
};
struct throtl_grp {
struct blkg_policy_data pd;
struct rb_node rb_node;
struct throtl_data *td;
struct throtl_service_queue service_queue;
struct throtl_qnode qnode_on_self[2];
struct throtl_qnode qnode_on_parent[2];
unsigned long disptime;
unsigned int flags;
bool has_rules_bps[2];
bool has_rules_iops[2];
uint64_t bps[4];
uint64_t bps_conf[4];
unsigned int iops[4];
unsigned int iops_conf[4];
uint64_t bytes_disp[2];
unsigned int io_disp[2];
unsigned long last_low_overflow_time[2];
uint64_t last_bytes_disp[2];
unsigned int last_io_disp[2];
long long carryover_bytes[2];
int carryover_ios[2];
unsigned long last_check_time;
unsigned long latency_target;
unsigned long latency_target_conf;
unsigned long slice_start[2];
unsigned long slice_end[2];
unsigned long last_finish_time;
unsigned long checked_last_finish_time;
unsigned long avg_idletime;
unsigned long idletime_threshold;
unsigned long idletime_threshold_conf;
unsigned int bio_cnt;
unsigned int bad_bio_cnt;
unsigned long bio_cnt_reset_time;
struct blkg_rwstat stat_bytes;
struct blkg_rwstat stat_ios;
};
struct io_ftrunc {
struct file *file;
loff_t len;
};
struct acpi_ged_event {
struct list_head node;
struct device *dev;
unsigned int gsi;
unsigned int irq;
acpi_handle handle;
};
struct acpi_ged_device {
struct device *dev;
struct list_head event_list;
};
struct clk_fixed_factor {
struct clk_hw hw;
unsigned int mult;
unsigned int div;
unsigned long acc;
unsigned int flags;
};
typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *);
typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *);
struct trace_event_raw_dma_fence {
struct trace_entry ent;
u32 __data_loc_driver;
u32 __data_loc_timeline;
unsigned int context;
unsigned int seqno;
char __data[0];
};
struct default_wait_cb {
struct dma_fence_cb base;
struct task_struct *task;
};
struct trace_event_data_offsets_dma_fence {
u32 driver;
const void *driver_ptr_;
u32 timeline;
const void *timeline_ptr_;
};
struct iwl_rfi_freq_table_resp_cmd {
struct iwl_rfi_lut_entry table[4];
__le32 status;
};
struct iwl_rfi_config_cmd {
struct iwl_rfi_lut_entry table[24];
u8 oem;
u8 reserved[3];
};
struct iwl_rfi_deactivate_notif {
__le32 reason;
};
struct ir_raw_timings_pl {
unsigned int header_pulse;
unsigned int bit_space;
unsigned int bit_pulse[2];
unsigned int trailer_space;
unsigned int msb_first: 1;
};
enum sony_state {
STATE_INACTIVE___7 = 0,
STATE_HEADER_SPACE___3 = 1,
STATE_BIT_PULSE___4 = 2,
STATE_BIT_SPACE___4 = 3,
STATE_FINISHED___4 = 4,
};
enum {
UNDEFINED_CAPABLE = 0,
SYSTEM_INTEL_MSR_CAPABLE = 1,
SYSTEM_AMD_MSR_CAPABLE = 2,
SYSTEM_IO_CAPABLE = 3,
};
struct acpi_cpufreq_data {
unsigned int resume;
unsigned int cpu_feature;
unsigned int acpi_perf_cpu;
cpumask_var_t freqdomain_cpus;
void (*cpu_freq_write)(struct acpi_pct_register *, u32);
u32 (*cpu_freq_read)(struct acpi_pct_register *);
};
struct drv_cmd {
struct acpi_pct_register *reg;
u32 val;
union {
void (*write)(struct acpi_pct_register *, u32);
u32 (*read)(struct acpi_pct_register *);
} func;
};
enum {
NETDEV_A_DEV_IFINDEX = 1,
NETDEV_A_DEV_PAD = 2,
NETDEV_A_DEV_XDP_FEATURES = 3,
NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4,
NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5,
NETDEV_A_DEV_XSK_FEATURES = 6,
__NETDEV_A_DEV_MAX = 7,
NETDEV_A_DEV_MAX = 6,
};
enum {
NETDEV_A_NAPI_IFINDEX = 1,
NETDEV_A_NAPI_ID = 2,
NETDEV_A_NAPI_IRQ = 3,
NETDEV_A_NAPI_PID = 4,
__NETDEV_A_NAPI_MAX = 5,
NETDEV_A_NAPI_MAX = 4,
};
enum {
NETDEV_A_QUEUE_ID = 1,
NETDEV_A_QUEUE_IFINDEX = 2,
NETDEV_A_QUEUE_TYPE = 3,
NETDEV_A_QUEUE_NAPI_ID = 4,
__NETDEV_A_QUEUE_MAX = 5,
NETDEV_A_QUEUE_MAX = 4,
};
enum {
NETDEV_A_QSTATS_IFINDEX = 1,
NETDEV_A_QSTATS_QUEUE_TYPE = 2,
NETDEV_A_QSTATS_QUEUE_ID = 3,
NETDEV_A_QSTATS_SCOPE = 4,
NETDEV_A_QSTATS_RX_PACKETS = 8,
NETDEV_A_QSTATS_RX_BYTES = 9,
NETDEV_A_QSTATS_TX_PACKETS = 10,
NETDEV_A_QSTATS_TX_BYTES = 11,
NETDEV_A_QSTATS_RX_ALLOC_FAIL = 12,
__NETDEV_A_QSTATS_MAX = 13,
NETDEV_A_QSTATS_MAX = 12,
};
enum netdev_qstats_scope {
NETDEV_QSTATS_SCOPE_QUEUE = 1,
};
enum netdev_xdp_rx_metadata {
NETDEV_XDP_RX_METADATA_TIMESTAMP = 1,
NETDEV_XDP_RX_METADATA_HASH = 2,
NETDEV_XDP_RX_METADATA_VLAN_TAG = 4,
};
enum netdev_xsk_flags {
NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
};
enum {
NETDEV_CMD_DEV_GET = 1,
NETDEV_CMD_DEV_ADD_NTF = 2,
NETDEV_CMD_DEV_DEL_NTF = 3,
NETDEV_CMD_DEV_CHANGE_NTF = 4,
NETDEV_CMD_PAGE_POOL_GET = 5,
NETDEV_CMD_PAGE_POOL_ADD_NTF = 6,
NETDEV_CMD_PAGE_POOL_DEL_NTF = 7,
NETDEV_CMD_PAGE_POOL_CHANGE_NTF = 8,
NETDEV_CMD_PAGE_POOL_STATS_GET = 9,
NETDEV_CMD_QUEUE_GET = 10,
NETDEV_CMD_NAPI_GET = 11,
NETDEV_CMD_QSTATS_GET = 12,
__NETDEV_CMD_MAX = 13,
NETDEV_CMD_MAX = 12,
};
enum {
NETDEV_NLGRP_MGMT = 0,
NETDEV_NLGRP_PAGE_POOL = 1,
};
struct netdev_nl_dump_ctx {
unsigned long ifindex;
unsigned int rxq_idx;
unsigned int txq_idx;
unsigned int napi_id;
};
struct nf_hook_entries_rcu_head {
struct callback_head head;
void *allocation;
};
struct tcp_metrics_block;
struct tcpm_hash_bucket {
struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain;
};
struct tcp_fastopen_metrics {
u16 mss;
u16 syn_loss: 10;
u16 try_exp: 2;
unsigned long last_syn_loss;
struct tcp_fastopen_cookie cookie;
};
struct tcp_metrics_block {
struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next;
struct net *tcpm_net;
struct inetpeer_addr tcpm_saddr;
struct inetpeer_addr tcpm_daddr;
unsigned long tcpm_stamp;
u32 tcpm_lock;
u32 tcpm_vals[5];
struct tcp_fastopen_metrics tcpm_fastopen;
struct callback_head callback_head;
};
enum tcp_metric_index {
TCP_METRIC_RTT = 0,
TCP_METRIC_RTTVAR = 1,
TCP_METRIC_SSTHRESH = 2,
TCP_METRIC_CWND = 3,
TCP_METRIC_REORDERING = 4,
TCP_METRIC_RTT_US = 5,
TCP_METRIC_RTTVAR_US = 6,
__TCP_METRIC_MAX = 7,
};
enum {
TCP_METRICS_ATTR_UNSPEC = 0,
TCP_METRICS_ATTR_ADDR_IPV4 = 1,
TCP_METRICS_ATTR_ADDR_IPV6 = 2,
TCP_METRICS_ATTR_AGE = 3,
TCP_METRICS_ATTR_TW_TSVAL = 4,
TCP_METRICS_ATTR_TW_TS_STAMP = 5,
TCP_METRICS_ATTR_VALS = 6,
TCP_METRICS_ATTR_FOPEN_MSS = 7,
TCP_METRICS_ATTR_FOPEN_SYN_DROPS = 8,
TCP_METRICS_ATTR_FOPEN_SYN_DROP_TS = 9,
TCP_METRICS_ATTR_FOPEN_COOKIE = 10,
TCP_METRICS_ATTR_SADDR_IPV4 = 11,
TCP_METRICS_ATTR_SADDR_IPV6 = 12,
TCP_METRICS_ATTR_PAD = 13,
__TCP_METRICS_ATTR_MAX = 14,
};
enum {
TCP_METRICS_CMD_UNSPEC = 0,
TCP_METRICS_CMD_GET = 1,
TCP_METRICS_CMD_DEL = 2,
__TCP_METRICS_CMD_MAX = 3,
};
struct cfg80211_per_bw_puncturing_values {
u8 len;
const u16 *valid_values;
};
typedef void (*btf_trace_local_timer_entry)(void *, int);
typedef void (*btf_trace_local_timer_exit)(void *, int);
typedef void (*btf_trace_spurious_apic_entry)(void *, int);
typedef void (*btf_trace_spurious_apic_exit)(void *, int);
typedef void (*btf_trace_error_apic_entry)(void *, int);
typedef void (*btf_trace_error_apic_exit)(void *, int);
typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int);
typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int);
typedef void (*btf_trace_irq_work_entry)(void *, int);
typedef void (*btf_trace_irq_work_exit)(void *, int);
typedef void (*btf_trace_reschedule_entry)(void *, int);
typedef void (*btf_trace_reschedule_exit)(void *, int);
typedef void (*btf_trace_call_function_entry)(void *, int);
typedef void (*btf_trace_call_function_exit)(void *, int);
typedef void (*btf_trace_call_function_single_entry)(void *, int);
typedef void (*btf_trace_call_function_single_exit)(void *, int);
typedef void (*btf_trace_thermal_apic_entry)(void *, int);
typedef void (*btf_trace_thermal_apic_exit)(void *, int);
typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int);
typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int);
typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int);
typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int);
typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int);
typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool);
typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool);
typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool);
typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int);
typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool);
typedef struct {
unsigned int __nmi_count;
unsigned int apic_timer_irqs;
unsigned int irq_spurious_count;
unsigned int icr_read_retry_count;
unsigned int x86_platform_ipis;
unsigned int apic_perf_irqs;
unsigned int apic_irq_work_irqs;
unsigned int irq_resched_count;
unsigned int irq_call_count;
unsigned int irq_tlb_count;
unsigned int irq_thermal_count;
long: 64;
long: 64;
} irq_cpustat_t;
struct trace_event_raw_x86_irq_vector {
struct trace_entry ent;
int vector;
char __data[0];
};
struct trace_event_raw_vector_config {
struct trace_entry ent;
unsigned int irq;
unsigned int vector;
unsigned int cpu;
unsigned int apicdest;
char __data[0];
};
struct trace_event_raw_vector_mod {
struct trace_entry ent;
unsigned int irq;
unsigned int vector;
unsigned int cpu;
unsigned int prev_vector;
unsigned int prev_cpu;
char __data[0];
};
struct trace_event_raw_vector_reserve {
struct trace_entry ent;
unsigned int irq;
int ret;
char __data[0];
};
struct trace_event_raw_vector_alloc {
struct trace_entry ent;
unsigned int irq;
unsigned int vector;
bool reserved;
int ret;
char __data[0];
};
struct trace_event_raw_vector_alloc_managed {
struct trace_entry ent;
unsigned int irq;
unsigned int vector;
int ret;
char __data[0];
};
struct trace_event_raw_vector_activate {
struct trace_entry ent;
unsigned int irq;
bool is_managed;
bool can_reserve;
bool reserve;
char __data[0];
};
struct trace_event_raw_vector_teardown {
struct trace_entry ent;
unsigned int irq;
bool is_managed;
bool has_reserved;
char __data[0];
};
struct trace_event_raw_vector_setup {
struct trace_entry ent;
unsigned int irq;
bool is_legacy;
int ret;
char __data[0];
};
struct trace_event_raw_vector_free_moved {
struct trace_entry ent;
unsigned int irq;
unsigned int cpu;
unsigned int vector;
bool is_managed;
char __data[0];
};
struct trace_event_data_offsets_x86_irq_vector {};
struct trace_event_data_offsets_vector_config {};
struct trace_event_data_offsets_vector_mod {};
struct trace_event_data_offsets_vector_reserve {};
struct trace_event_data_offsets_vector_alloc {};
struct trace_event_data_offsets_vector_alloc_managed {};
struct trace_event_data_offsets_vector_activate {};
struct trace_event_data_offsets_vector_teardown {};
struct trace_event_data_offsets_vector_setup {};
struct trace_event_data_offsets_vector_free_moved {};
typedef struct sigevent sigevent_t;
typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long);
typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int);
typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int);
typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int);
typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int);
struct trace_event_raw_tlb_flush {
struct trace_entry ent;
int reason;
unsigned long pages;
char __data[0];
};
struct trace_event_raw_mm_migrate_pages {
struct trace_entry ent;
unsigned long succeeded;
unsigned long failed;
unsigned long thp_succeeded;
unsigned long thp_failed;
unsigned long thp_split;
unsigned long large_folio_split;
enum migrate_mode mode;
int reason;
char __data[0];
};
struct trace_event_raw_mm_migrate_pages_start {
struct trace_entry ent;
enum migrate_mode mode;
int reason;
char __data[0];
};
struct trace_event_raw_migration_pte {
struct trace_entry ent;
unsigned long addr;
unsigned long pte;
int order;
char __data[0];
};
struct trace_event_data_offsets_tlb_flush {};
struct trace_event_data_offsets_mm_migrate_pages {};
struct trace_event_data_offsets_mm_migrate_pages_start {};
struct trace_event_data_offsets_migration_pte {};
struct folio_referenced_arg {
int mapcount;
int referenced;
unsigned long vm_flags;
struct mem_cgroup *memcg;
};
struct autofs_packet_missing {
struct autofs_packet_hdr hdr;
autofs_wqt_t wait_queue_token;
int len;
char name[256];
};
struct autofs_packet_expire_multi {
struct autofs_packet_hdr hdr;
autofs_wqt_t wait_queue_token;
int len;
char name[256];
};
union autofs_packet_union {
struct autofs_packet_hdr hdr;
struct autofs_packet_missing missing;
struct autofs_packet_expire expire;
struct autofs_packet_expire_multi expire_multi;
};
struct autofs_v5_packet {
struct autofs_packet_hdr hdr;
autofs_wqt_t wait_queue_token;
__u32 dev;
__u64 ino;
__u32 uid;
__u32 gid;
__u32 pid;
__u32 tgid;
__u32 len;
char name[256];
};
typedef struct autofs_v5_packet autofs_packet_missing_indirect_t;
typedef struct autofs_v5_packet autofs_packet_expire_indirect_t;
typedef struct autofs_v5_packet autofs_packet_missing_direct_t;
typedef struct autofs_v5_packet autofs_packet_expire_direct_t;
union autofs_v5_packet_union {
struct autofs_packet_hdr hdr;
struct autofs_v5_packet v5_packet;
autofs_packet_missing_indirect_t missing_indirect;
autofs_packet_expire_indirect_t expire_indirect;
autofs_packet_missing_direct_t missing_direct;
autofs_packet_expire_direct_t expire_direct;
};
struct ahash_alg {
int (*init)(struct ahash_request *);
int (*update)(struct ahash_request *);
int (*final)(struct ahash_request *);
int (*finup)(struct ahash_request *);
int (*digest)(struct ahash_request *);
int (*export)(struct ahash_request *, void *);
int (*import)(struct ahash_request *, const void *);
int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int);
int (*init_tfm)(struct crypto_ahash *);
void (*exit_tfm)(struct crypto_ahash *);
int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *);
struct hash_alg_common halg;
};
struct ahash_instance {
void (*free)(struct ahash_instance *);
union {
struct {
char head[96];
struct crypto_instance base;
} s;
struct ahash_alg alg;
};
};
struct crypto_hash_walk {
char *data;
unsigned int offset;
unsigned int flags;
struct page *pg;
unsigned int entrylen;
unsigned int total;
struct scatterlist *sg;
};
struct _gpt_header {
__le64 signature;
__le32 revision;
__le32 header_size;
__le32 header_crc32;
__le32 reserved1;
__le64 my_lba;
__le64 alternate_lba;
__le64 first_usable_lba;
__le64 last_usable_lba;
efi_guid_t disk_guid;
__le64 partition_entry_lba;
__le32 num_partition_entries;
__le32 sizeof_partition_entry;
__le32 partition_entry_array_crc32;
} __attribute__((packed));
typedef struct _gpt_header gpt_header;
struct _gpt_entry_attributes {
u64 required_to_function: 1;
u64 reserved: 47;
u64 type_guid_specific: 16;
};
typedef struct _gpt_entry_attributes gpt_entry_attributes;
struct _gpt_entry {
efi_guid_t partition_type_guid;
efi_guid_t unique_partition_guid;
__le64 starting_lba;
__le64 ending_lba;
gpt_entry_attributes attributes;
__le16 partition_name[36];
};
typedef struct _gpt_entry gpt_entry;
struct _gpt_mbr_record {
u8 boot_indicator;
u8 start_head;
u8 start_sector;
u8 start_track;
u8 os_type;
u8 end_head;
u8 end_sector;
u8 end_track;
__le32 starting_lba;
__le32 size_in_lba;
};
typedef struct _gpt_mbr_record gpt_mbr_record;
struct _legacy_mbr {
u8 boot_code[440];
__le32 unique_mbr_signature;
__le16 unknown;
gpt_mbr_record partition_record[4];
__le16 signature;
} __attribute__((packed));
typedef struct _legacy_mbr legacy_mbr;
struct io_sync {
struct file *file;
loff_t len;
loff_t off;
int flags;
int mode;
};
struct acpi_pci_link_irq {
u32 active;
u8 triggering;
u8 polarity;
u8 resource_type;
u8 possible_count;
u32 possible[16];
u8 initialized: 1;
u8 reserved: 7;
};
struct acpi_pci_link {
struct list_head list;
struct acpi_device *device;
struct acpi_pci_link_irq irq;
int refcnt;
};
struct devm_clk_state {
struct clk *clk;
void (*exit)(struct clk *);
};
struct clk_bulk_devres {
struct clk_bulk_data *clks;
int num_clks;
};
struct sysrq_state {
struct input_handle handle;
struct work_struct reinject_work;
unsigned long key_down[12];
unsigned int alt;
unsigned int alt_use;
unsigned int shift;
unsigned int shift_use;
bool active;
bool need_reinject;
bool reinjecting;
bool reset_canceled;
bool reset_requested;
unsigned long reset_keybit[12];
int reset_seq_len;
int reset_seq_cnt;
int reset_seq_version;
struct timer_list keyreset_timer;
};
struct sg_io_v4;
typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int);
struct sg_io_v4 {
__s32 guard;
__u32 protocol;
__u32 subprotocol;
__u32 request_len;
__u64 request;
__u64 request_tag;
__u32 request_attr;
__u32 request_priority;
__u32 request_extra;
__u32 max_response_len;
__u64 response;
__u32 dout_iovec_count;
__u32 dout_xfer_len;
__u32 din_iovec_count;
__u32 din_xfer_len;
__u64 dout_xferp;
__u64 din_xferp;
__u32 timeout;
__u32 flags;
__u64 usr_ptr;
__u32 spare_in;
__u32 driver_status;
__u32 transport_status;
__u32 device_status;
__u32 retry_delay;
__u32 info;
__u32 duration;
__u32 response_len;
__s32 din_resid;
__s32 dout_resid;
__u64 generated_tag;
__u32 spare_out;
__u32 padding;
};
typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t);
struct e1000_reg_info {
u32 ofs;
char *name;
};
struct trace_event_raw_e1000e_trace_mac_register {
struct trace_entry ent;
uint32_t reg;
char __data[0];
};
union e1000_rx_desc_packet_split {
struct {
__le64 buffer_addr[4];
} read;
struct {
struct {
__le32 mrq;
union {
__le32 rss;
struct {
__le16 ip_id;
__le16 csum;
} csum_ip;
} hi_dword;
} lower;
struct {
__le32 status_error;
__le16 length0;
__le16 vlan;
} middle;
struct {
__le16 header_status;
__le16 length[3];
} upper;
__le64 reserved;
} wb;
};
struct my_u0 {
__le64 a;
__le64 b;
};
struct my_u1 {
__le64 a;
__le64 b;
__le64 c;
__le64 d;
};
struct trace_event_data_offsets_e1000e_trace_mac_register {};
struct rtw_vif_recalc_lps_iter_data {
struct rtw_dev *rtwdev;
struct ieee80211_vif *found_vif;
int count;
};
struct tctl_offset {
u8 model;
const char *id;
int offset;
};
struct k10temp_data {
struct pci_dev *pdev;
void (*read_htcreg)(struct pci_dev *, u32 *);
void (*read_tempreg)(struct pci_dev *, u32 *);
int temp_offset;
u32 temp_adjust_mask;
u32 show_temp;
bool is_zen;
u32 ccd_offset;
bool disp_negative;
};
struct hid_usage_entry {
unsigned int page;
unsigned int usage;
const char *description;
};
struct hid_debug_list {
struct {
union {
struct __kfifo kfifo;
char *type;
const char *const_type;
char (*rectype)[0];
char *ptr;
const char *ptr_const;
};
char buf[0];
} hid_debug_fifo;
struct fasync_struct *fasync;
struct hid_device *hdev;
struct list_head node;
struct mutex read_mutex;
};
enum {
NLA_UNSPEC = 0,
NLA_U8 = 1,
NLA_U16 = 2,
NLA_U32 = 3,
NLA_U64 = 4,
NLA_STRING = 5,
NLA_FLAG = 6,
NLA_MSECS = 7,
NLA_NESTED = 8,
NLA_NESTED_ARRAY = 9,
NLA_NUL_STRING = 10,
NLA_BINARY = 11,
NLA_S8 = 12,
NLA_S16 = 13,
NLA_S32 = 14,
NLA_S64 = 15,
NLA_BITFIELD32 = 16,
NLA_REJECT = 17,
NLA_BE16 = 18,
NLA_BE32 = 19,
NLA_SINT = 20,
NLA_UINT = 21,
__NLA_TYPE_MAX = 22,
};
enum netlink_attribute_type {
NL_ATTR_TYPE_INVALID = 0,
NL_ATTR_TYPE_FLAG = 1,
NL_ATTR_TYPE_U8 = 2,
NL_ATTR_TYPE_U16 = 3,
NL_ATTR_TYPE_U32 = 4,
NL_ATTR_TYPE_U64 = 5,
NL_ATTR_TYPE_S8 = 6,
NL_ATTR_TYPE_S16 = 7,
NL_ATTR_TYPE_S32 = 8,
NL_ATTR_TYPE_S64 = 9,
NL_ATTR_TYPE_BINARY = 10,
NL_ATTR_TYPE_STRING = 11,
NL_ATTR_TYPE_NUL_STRING = 12,
NL_ATTR_TYPE_NESTED = 13,
NL_ATTR_TYPE_NESTED_ARRAY = 14,
NL_ATTR_TYPE_BITFIELD32 = 15,
NL_ATTR_TYPE_SINT = 16,
NL_ATTR_TYPE_UINT = 17,
};
enum netlink_policy_type_attr {
NL_POLICY_TYPE_ATTR_UNSPEC = 0,
NL_POLICY_TYPE_ATTR_TYPE = 1,
NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2,
NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3,
NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4,
NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5,
NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6,
NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7,
NL_POLICY_TYPE_ATTR_POLICY_IDX = 8,
NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9,
NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10,
NL_POLICY_TYPE_ATTR_PAD = 11,
NL_POLICY_TYPE_ATTR_MASK = 12,
__NL_POLICY_TYPE_ATTR_MAX = 13,
NL_POLICY_TYPE_ATTR_MAX = 12,
};
enum nla_policy_validation {
NLA_VALIDATE_NONE = 0,
NLA_VALIDATE_RANGE = 1,
NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2,
NLA_VALIDATE_MIN = 3,
NLA_VALIDATE_MAX = 4,
NLA_VALIDATE_MASK = 5,
NLA_VALIDATE_RANGE_PTR = 6,
NLA_VALIDATE_FUNCTION = 7,
};
struct netlink_policy_dump_state {
unsigned int policy_idx;
unsigned int attr_idx;
unsigned int n_alloc;
struct {
const struct nla_policy *policy;
unsigned int maxtype;
} policies[0];
};
struct bpf_dummy_ops_state;
struct bpf_dummy_ops {
int (*test_1)(struct bpf_dummy_ops_state *);
int (*test_2)(struct bpf_dummy_ops_state *, int, unsigned short, char, unsigned long);
int (*test_sleepable)(struct bpf_dummy_ops_state *);
};
struct bpf_dummy_ops_state {
int val;
};
struct bpf_struct_ops_bpf_dummy_ops {
struct bpf_struct_ops_common_value common;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct bpf_dummy_ops data;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct bpf_dummy_ops_test_args {
u64 args[12];
struct bpf_dummy_ops_state state;
};
typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...);
struct nf_conntrack_nat_helper {
struct list_head list;
char mod_name[16];
struct module *module;
};
struct tcp_seq_afinfo {
sa_family_t family;
};
enum tcp_seq_states {
TCP_SEQ_STATE_LISTENING = 0,
TCP_SEQ_STATE_ESTABLISHED = 1,
};
struct tcp_ao_key;
struct tcp_md5sig_key;
struct tcp_key {
union {
struct {
struct tcp_ao_key *ao_key;
char *traffic_key;
u32 sne;
u8 rcv_next;
};
struct tcp_md5sig_key *md5_key;
};
enum {
TCP_KEY_NONE = 0,
TCP_KEY_MD5 = 1,
TCP_KEY_AO = 2,
} type;
};
union tcp_ao_addr {
struct in_addr a4;
struct in6_addr a6;
};
struct tcp_ao_key {
struct hlist_node node;
union tcp_ao_addr addr;
u8 key[80];
unsigned int tcp_sigpool_id;
unsigned int digest_size;
int l3index;
u8 prefixlen;
u8 family;
u8 keylen;
u8 keyflags;
u8 sndid;
u8 rcvid;
u8 maclen;
struct callback_head rcu;
atomic64_t pkt_good;
atomic64_t pkt_bad;
u8 traffic_keys[0];
};
struct tcp_md5sig_key {
struct hlist_node node;
u8 keylen;
u8 family;
u8 prefixlen;
u8 flags;
union tcp_ao_addr addr;
int l3index;
u8 key[80];
struct callback_head rcu;
};
struct tcp_ao_hdr {
u8 kind;
u8 length;
u8 keyid;
u8 rnext_keyid;
};
struct tcp_iter_state {
struct seq_net_private p;
enum tcp_seq_states state;
struct sock *syn_wait_sk;
int bucket;
int offset;
int sbucket;
int num;
loff_t last_pos;
};
struct bpf_iter__tcp {
union {
struct bpf_iter_meta *meta;
};
union {
struct sock_common *sk_common;
};
uid_t uid;
};
struct bpf_tcp_iter_state {
struct tcp_iter_state state;
unsigned int cur_sk;
unsigned int end_sk;
unsigned int max_sk;
struct sock **batch;
bool st_bucket_done;
};
typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16);
struct irq_stack {
char stack[16384];
};
enum vmx_feature_leafs {
MISC_FEATURES = 0,
PRIMARY_CTLS = 1,
SECONDARY_CTLS = 2,
TERTIARY_CTLS_LOW = 3,
TERTIARY_CTLS_HIGH = 4,
NR_VMX_FEATURE_WORDS = 5,
};
struct sku_microcode {
u8 model;
u8 stepping;
u32 microcode;
};
struct _tlb_table {
unsigned char descriptor;
char tlb_type;
unsigned int entries;
char info[128];
};
enum split_lock_detect_state {
sld_off = 0,
sld_warn = 1,
sld_fatal = 2,
sld_ratelimit = 3,
};
struct wq_flusher;
struct wq_device;
struct wq_node_nr_active;
struct workqueue_struct {
struct list_head pwqs;
struct list_head list;
struct mutex mutex;
int work_color;
int flush_color;
atomic_t nr_pwqs_to_flush;
struct wq_flusher *first_flusher;
struct list_head flusher_queue;
struct list_head flusher_overflow;
struct list_head maydays;
struct worker *rescuer;
int nr_drainers;
int max_active;
int min_active;
int saved_max_active;
int saved_min_active;
struct workqueue_attrs *unbound_attrs;
struct pool_workqueue __attribute__((btf_type_tag("rcu"))) *dfl_pwq;
struct wq_device *wq_dev;
char *lock_name;
struct lock_class_key key;
struct lockdep_map lockdep_map;
char name[32];
struct callback_head rcu;
long: 64;
long: 64;
long: 64;
long: 64;
unsigned int flags;
struct pool_workqueue __attribute__((btf_type_tag("percpu"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq;
struct wq_node_nr_active *node_nr_active[0];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct wq_flusher {
struct list_head list;
int flush_color;
struct completion done;
};
struct pool_workqueue {
struct worker_pool *pool;
struct workqueue_struct *wq;
int work_color;
int flush_color;
int refcnt;
int nr_in_flight[16];
bool plugged;
int nr_active;
struct list_head inactive_works;
struct list_head pending_node;
struct list_head pwqs_node;
struct list_head mayday_node;
u64 stats[8];
struct kthread_work release_work;
struct callback_head rcu;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct worker_pool {
raw_spinlock_t lock;
int cpu;
int node;
int id;
unsigned int flags;
unsigned long watchdog_ts;
bool cpu_stall;
int nr_running;
struct list_head worklist;
int nr_workers;
int nr_idle;
struct list_head idle_list;
struct timer_list idle_timer;
struct work_struct idle_cull_work;
struct timer_list mayday_timer;
struct hlist_head busy_hash[64];
struct worker *manager;
struct list_head workers;
struct list_head dying_workers;
struct completion *detach_completion;
struct ida worker_ida;
struct workqueue_attrs *attrs;
struct hlist_node hash_node;
int refcnt;
struct callback_head rcu;
};
struct wq_device {
struct workqueue_struct *wq;
struct device dev;
};
struct wq_node_nr_active {
int max;
atomic_t nr;
raw_spinlock_t lock;
struct list_head pending_pwqs;
};
typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *);
typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *);
typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *);
typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t);
struct wq_pod_type {
int nr_pods;
cpumask_var_t *pod_cpus;
int *pod_node;
int *cpu_pod;
};
enum worker_flags {
WORKER_DIE = 2,
WORKER_IDLE = 4,
WORKER_PREP = 8,
WORKER_CPU_INTENSIVE = 64,
WORKER_UNBOUND = 128,
WORKER_REBOUND = 256,
WORKER_NOT_RUNNING = 456,
};
enum pool_workqueue_stats {
PWQ_STAT_STARTED = 0,
PWQ_STAT_COMPLETED = 1,
PWQ_STAT_CPU_TIME = 2,
PWQ_STAT_CPU_INTENSIVE = 3,
PWQ_STAT_CM_WAKEUP = 4,
PWQ_STAT_REPATRIATED = 5,
PWQ_STAT_MAYDAY = 6,
PWQ_STAT_RESCUED = 7,
PWQ_NR_STATS = 8,
};
enum work_cancel_flags {
WORK_CANCEL_DELAYED = 1,
};
enum wq_internal_consts {
NR_STD_WORKER_POOLS = 2,
UNBOUND_POOL_HASH_ORDER = 6,
BUSY_WORKER_HASH_ORDER = 6,
MAX_IDLE_WORKERS_RATIO = 4,
IDLE_WORKER_TIMEOUT = 300000,
MAYDAY_INITIAL_TIMEOUT = 10,
MAYDAY_INTERVAL = 100,
CREATE_COOLDOWN = 1000,
RESCUER_NICE_LEVEL = -20,
HIGHPRI_NICE_LEVEL = -20,
WQ_NAME_LEN = 32,
};
enum worker_pool_flags {
POOL_BH = 1,
POOL_MANAGER_ACTIVE = 2,
POOL_DISASSOCIATED = 4,
POOL_BH_DRAINING = 8,
};
enum work_flags {
WORK_STRUCT_PENDING = 1,
WORK_STRUCT_INACTIVE = 2,
WORK_STRUCT_PWQ = 4,
WORK_STRUCT_LINKED = 8,
WORK_STRUCT_STATIC = 0,
};
struct trace_event_raw_workqueue_queue_work {
struct trace_entry ent;
void *work;
void *function;
u32 __data_loc_workqueue;
int req_cpu;
int cpu;
char __data[0];
};
struct trace_event_raw_workqueue_activate_work {
struct trace_entry ent;
void *work;
char __data[0];
};
struct trace_event_raw_workqueue_execute_start {
struct trace_entry ent;
void *work;
void *function;
char __data[0];
};
struct trace_event_raw_workqueue_execute_end {
struct trace_entry ent;
void *work;
void *function;
char __data[0];
};
struct wq_drain_dead_softirq_work {
struct work_struct work;
struct worker_pool *pool;
struct completion done;
};
struct wq_barrier {
struct work_struct work;
struct completion done;
struct task_struct *task;
};
struct cwt_wait {
wait_queue_entry_t wait;
struct work_struct *work;
};
struct work_for_cpu {
struct work_struct work;
long (*fn)(void *);
void *arg;
long ret;
};
struct apply_wqattrs_ctx {
struct workqueue_struct *wq;
struct workqueue_attrs *attrs;
struct list_head list;
struct pool_workqueue *dfl_pwq;
struct pool_workqueue *pwq_tbl[0];
};
struct trace_event_data_offsets_workqueue_queue_work {
u32 workqueue;
const void *workqueue_ptr_;
};
struct pr_cont_work_struct {
bool comma;
work_func_t func;
long ctr;
};
struct trace_event_data_offsets_workqueue_activate_work {};
struct trace_event_data_offsets_workqueue_execute_start {};
struct trace_event_data_offsets_workqueue_execute_end {};
struct bpf_bloom_filter {
struct bpf_map map;
u32 bitset_mask;
u32 hash_seed;
u32 nr_hash_funcs;
unsigned long bitset[0];
};
struct memcg_vmstats {
long state[51];
unsigned long events[22];
long state_local[51];
unsigned long events_local[22];
long state_pending[51];
unsigned long events_pending[22];
atomic64_t stats_updates;
};
struct mem_cgroup_tree_per_node;
struct mem_cgroup_tree {
struct mem_cgroup_tree_per_node *rb_tree_per_node[1024];
};
struct mem_cgroup_tree_per_node {
struct rb_root rb_root;
struct rb_node *rb_rightmost;
spinlock_t lock;
};
struct memory_stat {
const char *name;
unsigned int idx;
};
struct move_charge_struct {
spinlock_t lock;
struct mm_struct *mm;
struct mem_cgroup *from;
struct mem_cgroup *to;
unsigned long flags;
unsigned long precharge;
unsigned long moved_charge;
unsigned long moved_swap;
struct task_struct *moving_task;
wait_queue_head_t waitq;
};
struct memcg_stock_pcp {
local_lock_t stock_lock;
struct mem_cgroup *cached;
unsigned int nr_pages;
struct obj_cgroup *cached_objcg;
struct pglist_data *cached_pgdat;
unsigned int nr_bytes;
int nr_slab_reclaimable_b;
int nr_slab_unreclaimable_b;
struct work_struct work;
unsigned long flags;
};
struct numa_stat {
const char *name;
unsigned int lru_mask;
};
enum mem_cgroup_events_target {
MEM_CGROUP_TARGET_THRESH = 0,
MEM_CGROUP_TARGET_SOFTLIMIT = 1,
MEM_CGROUP_NTARGETS = 2,
};
enum mc_target_type {
MC_TARGET_NONE = 0,
MC_TARGET_PAGE = 1,
MC_TARGET_SWAP = 2,
MC_TARGET_DEVICE = 3,
};
enum res_type {
_MEM = 0,
_MEMSWAP = 1,
_KMEM = 2,
_TCP = 3,
};
enum {
RES_USAGE___2 = 0,
RES_LIMIT___2 = 1,
RES_MAX_USAGE___2 = 2,
RES_FAILCNT___2 = 3,
RES_SOFT_LIMIT = 4,
};
struct oom_wait_info {
struct mem_cgroup *memcg;
wait_queue_entry_t wait;
};
struct mem_cgroup_eventfd_list {
struct list_head list;
struct eventfd_ctx *eventfd;
};
struct mem_cgroup_event {
struct mem_cgroup *memcg;
struct eventfd_ctx *eventfd;
struct list_head list;
int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *);
void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *);
poll_table pt;
wait_queue_head_t *wqh;
wait_queue_entry_t wait;
struct work_struct remove;
};
struct uncharge_gather {
struct mem_cgroup *memcg;
unsigned long nr_memory;
unsigned long pgpgout;
unsigned long nr_kmem;
int nid;
};
union mc_target {
struct folio *folio;
swp_entry_t ent;
};
enum isofs_file_format {
isofs_file_normal = 0,
isofs_file_sparse = 1,
isofs_file_compressed = 2,
};
enum {
Opt_block = 0,
Opt_check_r___2 = 1,
Opt_check_s___2 = 2,
Opt_cruft = 3,
Opt_gid___7 = 4,
Opt_ignore___2 = 5,
Opt_iocharset = 6,
Opt_map_a = 7,
Opt_map_n = 8,
Opt_map_o = 9,
Opt_mode___5 = 10,
Opt_nojoliet = 11,
Opt_norock = 12,
Opt_sb___2 = 13,
Opt_session = 14,
Opt_uid___6 = 15,
Opt_unhide = 16,
Opt_utf8 = 17,
Opt_err___7 = 18,
Opt_nocompress = 19,
Opt_hide = 20,
Opt_showassoc = 21,
Opt_dmode = 22,
Opt_overriderockperm = 23,
};
struct isofs_iget5_callback_data {
unsigned long block;
unsigned long offset;
};
struct iso_volume_descriptor {
__u8 type[1];
char id[5];
__u8 version[1];
__u8 data[2041];
};
struct hs_volume_descriptor {
__u8 foo[8];
__u8 type[1];
char id[5];
__u8 version[1];
__u8 data[2033];
};
struct iso_primary_descriptor {
__u8 type[1];
char id[5];
__u8 version[1];
__u8 unused1[1];
char system_id[32];
char volume_id[32];
__u8 unused2[8];
__u8 volume_space_size[8];
__u8 unused3[32];
__u8 volume_set_size[4];
__u8 volume_sequence_number[4];
__u8 logical_block_size[4];
__u8 path_table_size[8];
__u8 type_l_path_table[4];
__u8 opt_type_l_path_table[4];
__u8 type_m_path_table[4];
__u8 opt_type_m_path_table[4];
__u8 root_directory_record[34];
char volume_set_id[128];
char publisher_id[128];
char preparer_id[128];
char application_id[128];
char copyright_file_id[37];
char abstract_file_id[37];
char bibliographic_file_id[37];
__u8 creation_date[17];
__u8 modification_date[17];
__u8 expiration_date[17];
__u8 effective_date[17];
__u8 file_structure_version[1];
__u8 unused4[1];
__u8 application_data[512];
__u8 unused5[653];
};
struct iso_supplementary_descriptor {
__u8 type[1];
char id[5];
__u8 version[1];
__u8 flags[1];
char system_id[32];
char volume_id[32];
__u8 unused2[8];
__u8 volume_space_size[8];
__u8 escape[32];
__u8 volume_set_size[4];
__u8 volume_sequence_number[4];
__u8 logical_block_size[4];
__u8 path_table_size[8];
__u8 type_l_path_table[4];
__u8 opt_type_l_path_table[4];
__u8 type_m_path_table[4];
__u8 opt_type_m_path_table[4];
__u8 root_directory_record[34];
char volume_set_id[128];
char publisher_id[128];
char preparer_id[128];
char application_id[128];
char copyright_file_id[37];
char abstract_file_id[37];
char bibliographic_file_id[37];
__u8 creation_date[17];
__u8 modification_date[17];
__u8 expiration_date[17];
__u8 effective_date[17];
__u8 file_structure_version[1];
__u8 unused4[1];
__u8 application_data[512];
__u8 unused5[653];
};
struct hs_primary_descriptor {
__u8 foo[8];
__u8 type[1];
__u8 id[5];
__u8 version[1];
__u8 unused1[1];
char system_id[32];
char volume_id[32];
__u8 unused2[8];
__u8 volume_space_size[8];
__u8 unused3[32];
__u8 volume_set_size[4];
__u8 volume_sequence_number[4];
__u8 logical_block_size[4];
__u8 path_table_size[8];
__u8 type_l_path_table[4];
__u8 unused4[28];
__u8 root_directory_record[34];
};
struct iso9660_options {
unsigned int rock: 1;
unsigned int joliet: 1;
unsigned int cruft: 1;
unsigned int hide: 1;
unsigned int showassoc: 1;
unsigned int nocompress: 1;
unsigned int overriderockperm: 1;
unsigned int uid_set: 1;
unsigned int gid_set: 1;
unsigned char map;
unsigned char check;
unsigned int blocksize;
umode_t fmode;
umode_t dmode;
kgid_t gid;
kuid_t uid;
char *iocharset;
s32 session;
s32 sbsector;
};
enum btrfs_send_cmd {
BTRFS_SEND_C_UNSPEC = 0,
BTRFS_SEND_C_SUBVOL = 1,
BTRFS_SEND_C_SNAPSHOT = 2,
BTRFS_SEND_C_MKFILE = 3,
BTRFS_SEND_C_MKDIR = 4,
BTRFS_SEND_C_MKNOD = 5,
BTRFS_SEND_C_MKFIFO = 6,
BTRFS_SEND_C_MKSOCK = 7,
BTRFS_SEND_C_SYMLINK = 8,
BTRFS_SEND_C_RENAME = 9,
BTRFS_SEND_C_LINK = 10,
BTRFS_SEND_C_UNLINK = 11,
BTRFS_SEND_C_RMDIR = 12,
BTRFS_SEND_C_SET_XATTR = 13,
BTRFS_SEND_C_REMOVE_XATTR = 14,
BTRFS_SEND_C_WRITE = 15,
BTRFS_SEND_C_CLONE = 16,
BTRFS_SEND_C_TRUNCATE = 17,
BTRFS_SEND_C_CHMOD = 18,
BTRFS_SEND_C_CHOWN = 19,
BTRFS_SEND_C_UTIMES = 20,
BTRFS_SEND_C_END = 21,
BTRFS_SEND_C_UPDATE_EXTENT = 22,
BTRFS_SEND_C_MAX_V1 = 22,
BTRFS_SEND_C_FALLOCATE = 23,
BTRFS_SEND_C_FILEATTR = 24,
BTRFS_SEND_C_ENCODED_WRITE = 25,
BTRFS_SEND_C_MAX_V2 = 25,
BTRFS_SEND_C_ENABLE_VERITY = 26,
BTRFS_SEND_C_MAX_V3 = 26,
BTRFS_SEND_C_MAX = 26,
};
enum {
BTRFS_SEND_A_UNSPEC = 0,
BTRFS_SEND_A_UUID = 1,
BTRFS_SEND_A_CTRANSID = 2,
BTRFS_SEND_A_INO = 3,
BTRFS_SEND_A_SIZE = 4,
BTRFS_SEND_A_MODE = 5,
BTRFS_SEND_A_UID = 6,
BTRFS_SEND_A_GID = 7,
BTRFS_SEND_A_RDEV = 8,
BTRFS_SEND_A_CTIME = 9,
BTRFS_SEND_A_MTIME = 10,
BTRFS_SEND_A_ATIME = 11,
BTRFS_SEND_A_OTIME = 12,
BTRFS_SEND_A_XATTR_NAME = 13,
BTRFS_SEND_A_XATTR_DATA = 14,
BTRFS_SEND_A_PATH = 15,
BTRFS_SEND_A_PATH_TO = 16,
BTRFS_SEND_A_PATH_LINK = 17,
BTRFS_SEND_A_FILE_OFFSET = 18,
BTRFS_SEND_A_DATA = 19,
BTRFS_SEND_A_CLONE_UUID = 20,
BTRFS_SEND_A_CLONE_CTRANSID = 21,
BTRFS_SEND_A_CLONE_PATH = 22,
BTRFS_SEND_A_CLONE_OFFSET = 23,
BTRFS_SEND_A_CLONE_LEN = 24,
BTRFS_SEND_A_MAX_V1 = 24,
BTRFS_SEND_A_FALLOCATE_MODE = 25,
BTRFS_SEND_A_FILEATTR = 26,
BTRFS_SEND_A_UNENCODED_FILE_LEN = 27,
BTRFS_SEND_A_UNENCODED_LEN = 28,
BTRFS_SEND_A_UNENCODED_OFFSET = 29,
BTRFS_SEND_A_COMPRESSION = 30,
BTRFS_SEND_A_ENCRYPTION = 31,
BTRFS_SEND_A_MAX_V2 = 31,
BTRFS_SEND_A_VERITY_ALGORITHM = 32,
BTRFS_SEND_A_VERITY_BLOCK_SIZE = 33,
BTRFS_SEND_A_VERITY_SALT_DATA = 34,
BTRFS_SEND_A_VERITY_SIG_DATA = 35,
BTRFS_SEND_A_MAX_V3 = 35,
__BTRFS_SEND_A_MAX = 35,
};
enum btrfs_compare_tree_result {
BTRFS_COMPARE_TREE_NEW = 0,
BTRFS_COMPARE_TREE_DELETED = 1,
BTRFS_COMPARE_TREE_CHANGED = 2,
BTRFS_COMPARE_TREE_SAME = 3,
};
enum inode_state {
inode_state_no_change = 0,
inode_state_will_create = 1,
inode_state_did_create = 2,
inode_state_will_delete = 3,
inode_state_did_delete = 4,
};
struct pending_dir_move {
struct rb_node node;
struct list_head list;
u64 parent_ino;
u64 ino;
u64 gen;
struct list_head update_refs;
};
struct waiting_dir_move {
struct rb_node node;
u64 ino;
u64 rmdir_ino;
u64 rmdir_gen;
bool orphanized;
};
struct orphan_dir_info {
struct rb_node node;
u64 ino;
u64 gen;
u64 last_dir_index_offset;
u64 dir_high_seq_ino;
};
struct btrfs_tlv_header {
__le16 tlv_type;
__le16 tlv_len;
};
struct name_cache_entry {
struct btrfs_lru_cache_entry entry;
u64 parent_ino;
u64 parent_gen;
int ret;
int need_later_update;
int name_len;
char name[0];
};
struct fs_path;
struct recorded_ref {
struct list_head list;
char *name;
struct fs_path *full_path;
u64 dir;
u64 dir_gen;
int name_len;
struct rb_node node;
struct rb_root *root;
};
struct fs_path {
union {
struct {
char *start;
char *end;
char *buf;
unsigned short buf_len: 15;
unsigned short reversed: 1;
char inline_buf[0];
};
char pad[256];
};
};
struct backref_cache_entry {
struct btrfs_lru_cache_entry entry;
u64 root_ids[17];
int num_roots;
};
struct btrfs_cmd_header {
__le32 len;
__le16 cmd;
__le32 crc;
} __attribute__((packed));
struct clone_root;
struct send_ctx {
struct file *send_filp;
loff_t send_off;
char *send_buf;
u32 send_size;
u32 send_max_size;
bool put_data;
struct page **send_buf_pages;
u64 flags;
u32 proto;
struct btrfs_root *send_root;
struct btrfs_root *parent_root;
struct clone_root *clone_roots;
int clone_roots_cnt;
struct btrfs_path *left_path;
struct btrfs_path *right_path;
struct btrfs_key *cmp_key;
u64 last_reloc_trans;
u64 cur_ino;
u64 cur_inode_gen;
u64 cur_inode_size;
u64 cur_inode_mode;
u64 cur_inode_rdev;
u64 cur_inode_last_extent;
u64 cur_inode_next_write_offset;
bool cur_inode_new;
bool cur_inode_new_gen;
bool cur_inode_deleted;
bool ignore_cur_inode;
bool cur_inode_needs_verity;
void *verity_descriptor;
u64 send_progress;
struct list_head new_refs;
struct list_head deleted_refs;
struct btrfs_lru_cache name_cache;
struct inode *cur_inode;
struct file_ra_state ra;
u64 page_cache_clear_start;
bool clean_page_cache;
struct rb_root pending_dir_moves;
struct rb_root waiting_dir_moves;
struct rb_root orphan_dirs;
struct rb_root rbtree_new_refs;
struct rb_root rbtree_deleted_refs;
struct btrfs_lru_cache backref_cache;
u64 backref_cache_last_reloc_trans;
struct btrfs_lru_cache dir_created_cache;
struct btrfs_lru_cache dir_utimes_cache;
};
struct clone_root {
struct btrfs_root *root;
u64 ino;
u64 offset;
u64 num_bytes;
bool found_ref;
};
struct btrfs_stream_header {
char magic[13];
__le32 version;
} __attribute__((packed));
struct btrfs_inode_info {
u64 size;
u64 gen;
u64 mode;
u64 uid;
u64 gid;
u64 rdev;
u64 fileattr;
u64 nlink;
};
typedef int (*iterate_dir_item_t)(int, struct btrfs_key *, const char *, int, const char *, int, void *);
struct backref_ctx {
struct send_ctx *sctx;
u64 found;
u64 cur_objectid;
u64 cur_offset;
u64 extent_len;
u64 bytenr;
u64 backref_owner;
u64 backref_offset;
};
typedef int (*iterate_inode_ref_t)(int, u64, int, struct fs_path *, void *);
struct find_xattr_ctx {
const char *name;
int name_len;
int found_idx;
char *found_data;
int found_data_len;
};
struct jitterentropy {
spinlock_t jent_lock;
struct rand_data *entropy_collector;
struct crypto_shash *tfm;
struct shash_desc *sdesc;
};
enum bfqq_state_flags {
BFQQF_just_created = 0,
BFQQF_busy = 1,
BFQQF_wait_request = 2,
BFQQF_non_blocking_wait_rq = 3,
BFQQF_fifo_expire = 4,
BFQQF_has_short_ttime = 5,
BFQQF_sync = 6,
BFQQF_IO_bound = 7,
BFQQF_in_large_burst = 8,
BFQQF_softrt_update = 9,
BFQQF_coop = 10,
BFQQF_split_coop = 11,
};
enum bfqq_expiration {
BFQQE_TOO_IDLE = 0,
BFQQE_BUDGET_TIMEOUT = 1,
BFQQE_BUDGET_EXHAUSTED = 2,
BFQQE_NO_MORE_REQUESTS = 3,
BFQQE_PREEMPTED = 4,
};
struct acpi_madt_io_sapic {
struct acpi_subtable_header header;
u8 id;
u8 reserved;
u32 global_irq_base;
u64 address;
};
struct acpi_madt_interrupt_source {
struct acpi_subtable_header header;
u16 inti_flags;
u8 type;
u8 id;
u8 eid;
u8 io_sapic_vector;
u32 global_irq;
u32 flags;
};
struct acpi_madt_generic_interrupt {
struct acpi_subtable_header header;
u16 reserved;
u32 cpu_interface_number;
u32 uid;
u32 flags;
u32 parking_version;
u32 performance_interrupt;
u64 parked_address;
u64 base_address;
u64 gicv_base_address;
u64 gich_base_address;
u32 vgic_interrupt;
u64 gicr_base_address;
u64 arm_mpidr;
u8 efficiency_class;
u8 reserved2[1];
u16 spe_interrupt;
u16 trbe_interrupt;
} __attribute__((packed));
struct acpi_madt_generic_distributor {
struct acpi_subtable_header header;
u16 reserved;
u32 gic_id;
u64 base_address;
u32 global_irq_base;
u8 version;
u8 reserved2[3];
};
struct acpi_madt_core_pic {
struct acpi_subtable_header header;
u8 version;
u32 processor_id;
u32 core_id;
u32 flags;
} __attribute__((packed));
struct acpi_madt_rintc {
struct acpi_subtable_header header;
u8 version;
u8 reserved;
u32 flags;
u64 hart_id;
u32 uid;
u32 ext_intc_id;
u64 imsic_addr;
u32 imsic_size;
} __attribute__((packed));
struct acpi_osi_config {
u8 default_disabling;
unsigned int linux_enable: 1;
unsigned int linux_dmi: 1;
unsigned int linux_cmdline: 1;
unsigned int darwin_enable: 1;
unsigned int darwin_dmi: 1;
unsigned int darwin_cmdline: 1;
};
struct acpi_osi_entry {
char string[64];
bool enable;
};
struct acpi_ioremap {
struct list_head list;
void *virt;
acpi_physical_address phys;
acpi_size size;
union {
unsigned long refcount;
struct rcu_work rwork;
} track;
};
struct acpi_os_dpc {
acpi_osd_exec_callback function;
void *context;
struct work_struct work;
};
struct acpi_hp_work {
struct work_struct work;
struct acpi_device *adev;
u32 src;
};
struct acpi_gpio_params {
unsigned int crs_entry_index;
unsigned int line_index;
bool active_low;
};
struct uart_match {
struct uart_port *port;
struct uart_driver *driver;
};
typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *);
typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int);
typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int);
typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int);
typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *);
typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int);
typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int);
typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long);
typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int);
typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int);
typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int);
typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int);
typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *);
typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *);
typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *);
typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char);
typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char);
typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char);
typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int);
typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *);
struct ata_force_param {
const char *name;
u8 cbl;
u8 spd_limit;
unsigned int xfer_mask;
unsigned int horkage_on;
unsigned int horkage_off;
u16 lflags_on;
u16 lflags_off;
};
struct ata_force_ent {
int port;
int device;
struct ata_force_param param;
};
struct ata_xfer_ent {
int shift;
int bits;
u8 base;
};
struct ata_blacklist_entry {
const char *model_num;
const char *model_rev;
unsigned long horkage;
};
enum ata_xfer_mask {
ATA_MASK_PIO = 127,
ATA_MASK_MWDMA = 3968,
ATA_MASK_UDMA = 1044480,
};
struct trace_event_raw_ata_qc_issue_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int tag;
unsigned char cmd;
unsigned char dev;
unsigned char lbal;
unsigned char lbam;
unsigned char lbah;
unsigned char nsect;
unsigned char feature;
unsigned char hob_lbal;
unsigned char hob_lbam;
unsigned char hob_lbah;
unsigned char hob_nsect;
unsigned char hob_feature;
unsigned char ctl;
unsigned char proto;
unsigned long flags;
char __data[0];
};
struct trace_event_raw_ata_qc_complete_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int tag;
unsigned char status;
unsigned char dev;
unsigned char lbal;
unsigned char lbam;
unsigned char lbah;
unsigned char nsect;
unsigned char error;
unsigned char hob_lbal;
unsigned char hob_lbam;
unsigned char hob_lbah;
unsigned char hob_nsect;
unsigned char hob_feature;
unsigned char ctl;
unsigned long flags;
char __data[0];
};
struct trace_event_raw_ata_tf_load {
struct trace_entry ent;
unsigned int ata_port;
unsigned char cmd;
unsigned char dev;
unsigned char lbal;
unsigned char lbam;
unsigned char lbah;
unsigned char nsect;
unsigned char feature;
unsigned char hob_lbal;
unsigned char hob_lbam;
unsigned char hob_lbah;
unsigned char hob_nsect;
unsigned char hob_feature;
unsigned char proto;
char __data[0];
};
struct trace_event_raw_ata_exec_command_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int tag;
unsigned char cmd;
unsigned char feature;
unsigned char hob_nsect;
unsigned char proto;
char __data[0];
};
struct trace_event_raw_ata_bmdma_status {
struct trace_entry ent;
unsigned int ata_port;
unsigned int tag;
unsigned char host_stat;
char __data[0];
};
struct trace_event_raw_ata_eh_link_autopsy {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int eh_action;
unsigned int eh_err_mask;
char __data[0];
};
struct trace_event_raw_ata_eh_link_autopsy_qc {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int tag;
unsigned int qc_flags;
unsigned int eh_err_mask;
char __data[0];
};
struct trace_event_raw_ata_eh_action_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int eh_action;
char __data[0];
};
struct trace_event_raw_ata_link_reset_begin_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int class[2];
unsigned long deadline;
char __data[0];
};
struct trace_event_raw_ata_link_reset_end_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int class[2];
int rc;
char __data[0];
};
struct trace_event_raw_ata_port_eh_begin_template {
struct trace_entry ent;
unsigned int ata_port;
char __data[0];
};
struct trace_event_raw_ata_sff_hsm_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int tag;
unsigned int qc_flags;
unsigned int protocol;
unsigned int hsm_state;
unsigned char dev_state;
char __data[0];
};
struct trace_event_raw_ata_transfer_data_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned int ata_dev;
unsigned int tag;
unsigned int flags;
unsigned int offset;
unsigned int bytes;
char __data[0];
};
struct trace_event_raw_ata_sff_template {
struct trace_entry ent;
unsigned int ata_port;
unsigned char hsm_state;
char __data[0];
};
struct trace_event_data_offsets_ata_qc_issue_template {};
struct trace_event_data_offsets_ata_qc_complete_template {};
struct trace_event_data_offsets_ata_tf_load {};
struct trace_event_data_offsets_ata_exec_command_template {};
struct trace_event_data_offsets_ata_bmdma_status {};
struct trace_event_data_offsets_ata_eh_link_autopsy {};
struct trace_event_data_offsets_ata_eh_link_autopsy_qc {};
struct trace_event_data_offsets_ata_eh_action_template {};
struct trace_event_data_offsets_ata_link_reset_begin_template {};
struct trace_event_data_offsets_ata_link_reset_end_template {};
struct trace_event_data_offsets_ata_port_eh_begin_template {};
struct trace_event_data_offsets_ata_sff_hsm_template {};
struct trace_event_data_offsets_ata_transfer_data_template {};
struct trace_event_data_offsets_ata_sff_template {};
enum iwl_sta_flags {
STA_FLG_REDUCED_TX_PWR_CTRL = 8,
STA_FLG_REDUCED_TX_PWR_DATA = 64,
STA_FLG_DISABLE_TX = 16,
STA_FLG_PS = 256,
STA_FLG_DRAIN_FLOW = 4096,
STA_FLG_PAN = 8192,
STA_FLG_CLASS_AUTH = 16384,
STA_FLG_CLASS_ASSOC = 32768,
STA_FLG_RTS_MIMO_PROT = 131072,
STA_FLG_MAX_AGG_SIZE_SHIFT = 19,
STA_FLG_MAX_AGG_SIZE_8K = 0,
STA_FLG_MAX_AGG_SIZE_16K = 524288,
STA_FLG_MAX_AGG_SIZE_32K = 1048576,
STA_FLG_MAX_AGG_SIZE_64K = 1572864,
STA_FLG_MAX_AGG_SIZE_128K = 2097152,
STA_FLG_MAX_AGG_SIZE_256K = 2621440,
STA_FLG_MAX_AGG_SIZE_512K = 3145728,
STA_FLG_MAX_AGG_SIZE_1024K = 3670016,
STA_FLG_MAX_AGG_SIZE_2M = 4194304,
STA_FLG_MAX_AGG_SIZE_4M = 4718592,
STA_FLG_MAX_AGG_SIZE_MSK = 7864320,
STA_FLG_AGG_MPDU_DENS_SHIFT = 23,
STA_FLG_AGG_MPDU_DENS_2US = 33554432,
STA_FLG_AGG_MPDU_DENS_4US = 41943040,
STA_FLG_AGG_MPDU_DENS_8US = 50331648,
STA_FLG_AGG_MPDU_DENS_16US = 58720256,
STA_FLG_AGG_MPDU_DENS_MSK = 58720256,
STA_FLG_FAT_EN_20MHZ = 0,
STA_FLG_FAT_EN_40MHZ = 67108864,
STA_FLG_FAT_EN_80MHZ = 134217728,
STA_FLG_FAT_EN_160MHZ = 201326592,
STA_FLG_FAT_EN_MSK = 201326592,
STA_FLG_MIMO_EN_SISO = 0,
STA_FLG_MIMO_EN_MIMO2 = 268435456,
STA_FLG_MIMO_EN_MIMO3 = 536870912,
STA_FLG_MIMO_EN_MSK = 805306368,
};
enum iwl_ac {
AC_BK = 0,
AC_BE = 1,
AC_VI = 2,
AC_VO = 3,
AC_NUM = 4,
};
enum iwl_sta_modify_flag {
STA_MODIFY_QUEUE_REMOVAL = 1,
STA_MODIFY_TID_DISABLE_TX = 2,
STA_MODIFY_UAPSD_ACS = 4,
STA_MODIFY_ADD_BA_TID = 8,
STA_MODIFY_REMOVE_BA_TID = 16,
STA_MODIFY_SLEEPING_STA_TX_COUNT = 32,
STA_MODIFY_PROT_TH = 64,
STA_MODIFY_QUEUES = 128,
};
enum iwl_mvm_add_sta_rsp_status {
ADD_STA_SUCCESS = 1,
ADD_STA_STATIONS_OVERLOAD = 2,
ADD_STA_IMMEDIATE_BA_FAILURE = 4,
ADD_STA_MODIFY_NON_EXISTING_STA = 8,
};
enum iwl_sta_mode {
STA_MODE_ADD = 0,
STA_MODE_MODIFY = 1,
};
enum iwl_sta_sleep_flag {
STA_SLEEP_STATE_AWAKE = 0,
STA_SLEEP_STATE_PS_POLL = 1,
STA_SLEEP_STATE_UAPSD = 2,
STA_SLEEP_STATE_MOREDATA = 4,
};
enum iwl_scd_cfg_actions {
SCD_CFG_DISABLE_QUEUE = 0,
SCD_CFG_ENABLE_QUEUE = 1,
SCD_CFG_UPDATE_QUEUE_TID = 2,
};
enum iwl_sta_key_flag {
STA_KEY_FLG_NO_ENC = 0,
STA_KEY_FLG_WEP = 1,
STA_KEY_FLG_CCM = 2,
STA_KEY_FLG_TKIP = 3,
STA_KEY_FLG_EXT = 4,
STA_KEY_FLG_GCMP = 5,
STA_KEY_FLG_CMAC = 6,
STA_KEY_FLG_ENC_UNKNOWN = 7,
STA_KEY_FLG_EN_MSK = 7,
STA_KEY_FLG_WEP_KEY_MAP = 8,
STA_KEY_FLG_AMSDU_SPP = 128,
STA_KEY_FLG_KEYID_POS = 8,
STA_KEY_FLG_KEYID_MSK = 768,
STA_KEY_NOT_VALID = 2048,
STA_KEY_FLG_WEP_13BYTES = 4096,
STA_KEY_FLG_KEY_32BYTES = 4096,
STA_KEY_MULTICAST = 16384,
STA_KEY_MFP = 32768,
};
struct iwl_mvm_add_sta_cmd {
u8 add_modify;
u8 awake_acs;
__le16 tid_disable_tx;
__le32 mac_id_n_color;
u8 addr[6];
__le16 reserved2;
u8 sta_id;
u8 modify_mask;
__le16 reserved3;
__le32 station_flags;
__le32 station_flags_msk;
u8 add_immediate_ba_tid;
u8 remove_immediate_ba_tid;
__le16 add_immediate_ba_ssn;
__le16 sleep_tx_count;
u8 sleep_state_flags;
u8 station_type;
__le16 assoc_id;
__le16 beamform_flags;
__le32 tfd_queue_msk;
__le16 rx_ba_window;
u8 sp_length;
u8 uapsd_acs;
};
struct iwl_scd_txq_cfg_cmd {
u8 token;
u8 sta_id;
u8 tid;
u8 scd_queue;
u8 action;
u8 aggregate;
u8 tx_fifo;
u8 window;
__le16 ssn;
__le16 reserved;
};
struct iwl_mvm_add_sta_key_common {
u8 sta_id;
u8 key_offset;
__le16 key_flags;
u8 key[32];
u8 rx_secur_seq_cnt[16];
};
struct iwl_mvm_add_sta_key_cmd_v1 {
struct iwl_mvm_add_sta_key_common common;
u8 tkip_rx_tsc_byte2;
u8 reserved;
__le16 tkip_rx_ttak[5];
};
struct iwl_mvm_add_sta_key_cmd {
struct iwl_mvm_add_sta_key_common common;
__le64 rx_mic_key;
__le64 tx_mic_key;
__le64 transmit_seq_cnt;
} __attribute__((packed));
struct iwl_mvm_rm_sta_cmd {
u8 sta_id;
u8 reserved[3];
};
struct iwl_mvm_mgmt_mcast_key_cmd {
__le32 ctrl_flags;
u8 igtk[32];
__le32 key_id;
__le32 sta_id;
__le64 receive_seq_cnt;
} __attribute__((packed));
struct iwl_mvm_mgmt_mcast_key_cmd_v1 {
__le32 ctrl_flags;
u8 igtk[16];
u8 k1[16];
u8 k2[16];
__le32 key_id;
__le32 sta_id;
__le64 receive_seq_cnt;
} __attribute__((packed));
struct iwl_mvm_eosp_notification {
__le32 remain_frame_count;
__le32 sta_id;
};
struct iwl_cancel_channel_switch_cmd {
__le32 id;
};
struct xhci_driver_data {
u64 quirks;
const char *firmware;
};
enum nf_ct_sysctl_index {
NF_SYSCTL_CT_MAX = 0,
NF_SYSCTL_CT_COUNT = 1,
NF_SYSCTL_CT_BUCKETS = 2,
NF_SYSCTL_CT_CHECKSUM = 3,
NF_SYSCTL_CT_LOG_INVALID = 4,
NF_SYSCTL_CT_EXPECT_MAX = 5,
NF_SYSCTL_CT_ACCT = 6,
NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 7,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 8,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 9,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 10,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 11,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 12,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 13,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 14,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 15,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 16,
NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 17,
NF_SYSCTL_CT_PROTO_TCP_LOOSE = 18,
NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 19,
NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 20,
NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 21,
NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 22,
NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 23,
NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 24,
NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 25,
__NF_SYSCTL_CT_LAST_SYSCTL = 26,
};
struct ct_iter_state {
struct seq_net_private p;
struct hlist_nulls_head *hash;
unsigned int htable_size;
unsigned int bucket;
u_int64_t time_now;
};
struct tcpvegas_info {
__u32 tcpv_enabled;
__u32 tcpv_rttcnt;
__u32 tcpv_rtt;
__u32 tcpv_minrtt;
};
struct tcp_dctcp_info {
__u16 dctcp_enabled;
__u16 dctcp_ce_state;
__u32 dctcp_alpha;
__u32 dctcp_ab_ecn;
__u32 dctcp_ab_tot;
};
struct tcp_bbr_info {
__u32 bbr_bw_lo;
__u32 bbr_bw_hi;
__u32 bbr_min_rtt;
__u32 bbr_pacing_gain;
__u32 bbr_cwnd_gain;
};
union tcp_cc_info {
struct tcpvegas_info vegas;
struct tcp_dctcp_info dctcp;
struct tcp_bbr_info bbr;
};
enum tcp_chrono {
TCP_CHRONO_UNSPEC = 0,
TCP_CHRONO_BUSY = 1,
TCP_CHRONO_RWND_LIMITED = 2,
TCP_CHRONO_SNDBUF_LIMITED = 3,
__TCP_CHRONO_MAX = 4,
};
enum {
TCP_NO_QUEUE = 0,
TCP_RECV_QUEUE = 1,
TCP_SEND_QUEUE = 2,
TCP_QUEUES_NR = 3,
};
enum {
TCP_CMSG_INQ = 1,
TCP_CMSG_TS = 2,
};
enum {
BPF_TCP_ESTABLISHED = 1,
BPF_TCP_SYN_SENT = 2,
BPF_TCP_SYN_RECV = 3,
BPF_TCP_FIN_WAIT1 = 4,
BPF_TCP_FIN_WAIT2 = 5,
BPF_TCP_TIME_WAIT = 6,
BPF_TCP_CLOSE = 7,
BPF_TCP_CLOSE_WAIT = 8,
BPF_TCP_LAST_ACK = 9,
BPF_TCP_LISTEN = 10,
BPF_TCP_CLOSING = 11,
BPF_TCP_NEW_SYN_RECV = 12,
BPF_TCP_BOUND_INACTIVE = 13,
BPF_TCP_MAX_STATES = 14,
};
enum {
TCP_NLA_PAD = 0,
TCP_NLA_BUSY = 1,
TCP_NLA_RWND_LIMITED = 2,
TCP_NLA_SNDBUF_LIMITED = 3,
TCP_NLA_DATA_SEGS_OUT = 4,
TCP_NLA_TOTAL_RETRANS = 5,
TCP_NLA_PACING_RATE = 6,
TCP_NLA_DELIVERY_RATE = 7,
TCP_NLA_SND_CWND = 8,
TCP_NLA_REORDERING = 9,
TCP_NLA_MIN_RTT = 10,
TCP_NLA_RECUR_RETRANS = 11,
TCP_NLA_DELIVERY_RATE_APP_LMT = 12,
TCP_NLA_SNDQ_SIZE = 13,
TCP_NLA_CA_STATE = 14,
TCP_NLA_SND_SSTHRESH = 15,
TCP_NLA_DELIVERED = 16,
TCP_NLA_DELIVERED_CE = 17,
TCP_NLA_BYTES_SENT = 18,
TCP_NLA_BYTES_RETRANS = 19,
TCP_NLA_DSACK_DUPS = 20,
TCP_NLA_REORD_SEEN = 21,
TCP_NLA_SRTT = 22,
TCP_NLA_TIMEOUT_REHASH = 23,
TCP_NLA_BYTES_NOTSENT = 24,
TCP_NLA_EDT = 25,
TCP_NLA_TTL = 26,
TCP_NLA_REHASH = 27,
};
struct tcp_splice_state {
struct pipe_inode_info *pipe;
size_t len;
unsigned int flags;
};
struct tcp_info {
__u8 tcpi_state;
__u8 tcpi_ca_state;
__u8 tcpi_retransmits;
__u8 tcpi_probes;
__u8 tcpi_backoff;
__u8 tcpi_options;
__u8 tcpi_snd_wscale: 4;
__u8 tcpi_rcv_wscale: 4;
__u8 tcpi_delivery_rate_app_limited: 1;
__u8 tcpi_fastopen_client_fail: 2;
__u32 tcpi_rto;
__u32 tcpi_ato;
__u32 tcpi_snd_mss;
__u32 tcpi_rcv_mss;
__u32 tcpi_unacked;
__u32 tcpi_sacked;
__u32 tcpi_lost;
__u32 tcpi_retrans;
__u32 tcpi_fackets;
__u32 tcpi_last_data_sent;
__u32 tcpi_last_ack_sent;
__u32 tcpi_last_data_recv;
__u32 tcpi_last_ack_recv;
__u32 tcpi_pmtu;
__u32 tcpi_rcv_ssthresh;
__u32 tcpi_rtt;
__u32 tcpi_rttvar;
__u32 tcpi_snd_ssthresh;
__u32 tcpi_snd_cwnd;
__u32 tcpi_advmss;
__u32 tcpi_reordering;
__u32 tcpi_rcv_rtt;
__u32 tcpi_rcv_space;
__u32 tcpi_total_retrans;
__u64 tcpi_pacing_rate;
__u64 tcpi_max_pacing_rate;
__u64 tcpi_bytes_acked;
__u64 tcpi_bytes_received;
__u32 tcpi_segs_out;
__u32 tcpi_segs_in;
__u32 tcpi_notsent_bytes;
__u32 tcpi_min_rtt;
__u32 tcpi_data_segs_in;
__u32 tcpi_data_segs_out;
__u64 tcpi_delivery_rate;
__u64 tcpi_busy_time;
__u64 tcpi_rwnd_limited;
__u64 tcpi_sndbuf_limited;
__u32 tcpi_delivered;
__u32 tcpi_delivered_ce;
__u64 tcpi_bytes_sent;
__u64 tcpi_bytes_retrans;
__u32 tcpi_dsack_dups;
__u32 tcpi_reord_seen;
__u32 tcpi_rcv_ooopack;
__u32 tcpi_snd_wnd;
__u32 tcpi_rcv_wnd;
__u32 tcpi_rehash;
__u16 tcpi_total_rto;
__u16 tcpi_total_rto_recoveries;
__u32 tcpi_total_rto_time;
};
struct tcp_zerocopy_receive {
__u64 address;
__u32 length;
__u32 recv_skip_hint;
__u32 inq;
__s32 err;
__u64 copybuf_address;
__s32 copybuf_len;
__u32 flags;
__u64 msg_control;
__u64 msg_controllen;
__u32 msg_flags;
__u32 reserved;
};
struct tcp_repair_opt {
__u32 opt_code;
__u32 opt_val;
};
struct tcp_repair_window {
__u32 snd_wl1;
__u32 snd_wnd;
__u32 max_window;
__u32 rcv_wnd;
__u32 rcv_wup;
};
struct cfg80211_tx_status {
u64 cookie;
u64 tx_tstamp;
u64 ack_tstamp;
const u8 *buf;
size_t len;
bool ack;
};
struct estack_pages {
u32 offs;
u16 size;
u16 type;
};
struct semaphore_waiter {
struct list_head list;
struct task_struct *task;
bool up;
};
struct optimistic_spin_node {
struct optimistic_spin_node *next;
struct optimistic_spin_node *prev;
int locked;
int cpu;
};
struct nbcon_state {
union {
unsigned int atom;
struct {
unsigned int prio: 2;
unsigned int req_prio: 2;
unsigned int unsafe: 1;
unsigned int unsafe_takeover: 1;
unsigned int cpu: 24;
};
};
};
typedef void (*btf_trace_module_load)(void *, struct module *);
typedef void (*btf_trace_module_free)(void *, struct module *);
typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long);
typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long);
typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long);
struct mod_tree_root {
struct latch_tree_root root;
unsigned long addr_min;
unsigned long addr_max;
};
enum mod_license {
NOT_GPL_ONLY = 0,
GPL_ONLY = 1,
};
struct symsearch {
const struct kernel_symbol *start;
const struct kernel_symbol *stop;
const s32 *crcs;
enum mod_license license;
};
enum kernel_load_data_id {
LOADING_UNKNOWN = 0,
LOADING_FIRMWARE = 1,
LOADING_MODULE = 2,
LOADING_KEXEC_IMAGE = 3,
LOADING_KEXEC_INITRAMFS = 4,
LOADING_POLICY = 5,
LOADING_X509_CERTIFICATE = 6,
LOADING_MAX_ID = 7,
};
enum fail_dup_mod_reason {
FAIL_DUP_MOD_BECOMING = 0,
FAIL_DUP_MOD_LOAD = 1,
};
struct trace_event_raw_module_load {
struct trace_entry ent;
unsigned int taints;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_module_free {
struct trace_entry ent;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_module_refcnt {
struct trace_entry ent;
unsigned long ip;
int refcnt;
u32 __data_loc_name;
char __data[0];
};
struct trace_event_raw_module_request {
struct trace_entry ent;
unsigned long ip;
bool wait;
u32 __data_loc_name;
char __data[0];
};
struct mod_initfree {
struct llist_node node;
void *init_text;
void *init_data;
void *init_rodata;
};
struct idempotent {
const void *cookie;
struct hlist_node entry;
struct completion complete;
int ret;
};
struct trace_event_data_offsets_module_load {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_module_free {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_module_refcnt {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_module_request {
u32 name;
const void *name_ptr_;
};
struct find_symbol_arg {
const char *name;
bool gplok;
bool warn;
struct module *owner;
const s32 *crc;
const struct kernel_symbol *sym;
enum mod_license license;
};
struct swap_extent {
struct rb_node rb_node;
unsigned long start_page;
unsigned long nr_pages;
sector_t start_block;
};
union swap_header {
struct {
char reserved[4086];
char magic[10];
} magic;
struct {
char bootbits[1024];
__u32 version;
__u32 last_page;
__u32 nr_badpages;
unsigned char sws_uuid[16];
unsigned char sws_volume[16];
__u32 padding[117];
__u32 badpages[1];
} info;
};
struct backing_aio {
struct kiocb iocb;
refcount_t ref;
struct kiocb *orig_iocb;
void (*end_write)(struct file *);
struct work_struct work;
long res;
};
struct debugfs_blob_wrapper {
void *data;
unsigned long size;
};
struct debugfs_devm_entry {
int (*read)(struct seq_file *, void *);
struct device *dev;
};
struct prop_handler {
struct hlist_node node;
const char *xattr_name;
int (*validate)(const struct btrfs_inode *, const char *, size_t);
int (*apply)(struct inode *, const char *, size_t);
const char * (*extract)(struct inode *);
bool (*ignore)(const struct btrfs_inode *);
int inheritable;
};
enum prio_policy {
POLICY_NO_CHANGE = 0,
POLICY_PROMOTE_TO_RT = 1,
POLICY_RESTRICT_TO_BE = 2,
POLICY_ALL_TO_IDLE = 3,
POLICY_NONE_TO_RT = 4,
};
struct ioprio_blkcg {
struct blkcg_policy_data cpd;
enum prio_policy prio_policy;
};
struct ioprio_blkg {
struct blkg_policy_data pd;
};
struct gen_pool_chunk {
struct list_head next_chunk;
atomic_long_t avail;
phys_addr_t phys_addr;
void *owner;
unsigned long start_addr;
unsigned long end_addr;
unsigned long bits[0];
};
struct genpool_data_align {
int align;
};
struct genpool_data_fixed {
unsigned long offset;
};
struct fb_cmap_user {
__u32 start;
__u32 len;
__u16 __attribute__((btf_type_tag("user"))) *red;
__u16 __attribute__((btf_type_tag("user"))) *green;
__u16 __attribute__((btf_type_tag("user"))) *blue;
__u16 __attribute__((btf_type_tag("user"))) *transp;
};
struct serial_private;
struct pciserial_board;
struct pci_serial_quirk {
u32 vendor;
u32 device;
u32 subvendor;
u32 subdevice;
int (*probe)(struct pci_dev *);
int (*init)(struct pci_dev *);
int (*setup)(struct serial_private *, const struct pciserial_board *, struct uart_8250_port *, int);
void (*exit)(struct pci_dev *);
};
struct serial_private {
struct pci_dev *dev;
unsigned int nr;
struct pci_serial_quirk *quirk;
const struct pciserial_board *board;
int line[0];
};
struct pciserial_board {
unsigned int flags;
unsigned int num_ports;
unsigned int base_baud;
unsigned int uart_offset;
unsigned int reg_shift;
unsigned int first_offset;
};
struct timedia_struct {
int num;
const unsigned short *ids;
};
enum {
MOXA_SUPP_RS232 = 1,
MOXA_SUPP_RS422 = 2,
MOXA_SUPP_RS485 = 4,
};
enum pci_board_num_t {
pbn_default = 0,
pbn_b0_1_115200 = 1,
pbn_b0_2_115200 = 2,
pbn_b0_4_115200 = 3,
pbn_b0_5_115200 = 4,
pbn_b0_8_115200 = 5,
pbn_b0_1_921600 = 6,
pbn_b0_2_921600 = 7,
pbn_b0_4_921600 = 8,
pbn_b0_2_1130000 = 9,
pbn_b0_4_1152000 = 10,
pbn_b0_4_1250000 = 11,
pbn_b0_2_1843200 = 12,
pbn_b0_4_1843200 = 13,
pbn_b0_1_15625000 = 14,
pbn_b0_bt_1_115200 = 15,
pbn_b0_bt_2_115200 = 16,
pbn_b0_bt_4_115200 = 17,
pbn_b0_bt_8_115200 = 18,
pbn_b0_bt_1_460800 = 19,
pbn_b0_bt_2_460800 = 20,
pbn_b0_bt_4_460800 = 21,
pbn_b0_bt_1_921600 = 22,
pbn_b0_bt_2_921600 = 23,
pbn_b0_bt_4_921600 = 24,
pbn_b0_bt_8_921600 = 25,
pbn_b1_1_115200 = 26,
pbn_b1_2_115200 = 27,
pbn_b1_4_115200 = 28,
pbn_b1_8_115200 = 29,
pbn_b1_16_115200 = 30,
pbn_b1_1_921600 = 31,
pbn_b1_2_921600 = 32,
pbn_b1_4_921600 = 33,
pbn_b1_8_921600 = 34,
pbn_b1_2_1250000 = 35,
pbn_b1_bt_1_115200 = 36,
pbn_b1_bt_2_115200 = 37,
pbn_b1_bt_4_115200 = 38,
pbn_b1_bt_2_921600 = 39,
pbn_b1_1_1382400 = 40,
pbn_b1_2_1382400 = 41,
pbn_b1_4_1382400 = 42,
pbn_b1_8_1382400 = 43,
pbn_b2_1_115200 = 44,
pbn_b2_2_115200 = 45,
pbn_b2_4_115200 = 46,
pbn_b2_8_115200 = 47,
pbn_b2_1_460800 = 48,
pbn_b2_4_460800 = 49,
pbn_b2_8_460800 = 50,
pbn_b2_16_460800 = 51,
pbn_b2_1_921600 = 52,
pbn_b2_4_921600 = 53,
pbn_b2_8_921600 = 54,
pbn_b2_8_1152000 = 55,
pbn_b2_bt_1_115200 = 56,
pbn_b2_bt_2_115200 = 57,
pbn_b2_bt_4_115200 = 58,
pbn_b2_bt_2_921600 = 59,
pbn_b2_bt_4_921600 = 60,
pbn_b3_2_115200 = 61,
pbn_b3_4_115200 = 62,
pbn_b3_8_115200 = 63,
pbn_b4_bt_2_921600 = 64,
pbn_b4_bt_4_921600 = 65,
pbn_b4_bt_8_921600 = 66,
pbn_panacom = 67,
pbn_panacom2 = 68,
pbn_panacom4 = 69,
pbn_plx_romulus = 70,
pbn_oxsemi = 71,
pbn_oxsemi_1_15625000 = 72,
pbn_oxsemi_2_15625000 = 73,
pbn_oxsemi_4_15625000 = 74,
pbn_oxsemi_8_15625000 = 75,
pbn_intel_i960 = 76,
pbn_sgi_ioc3 = 77,
pbn_computone_4 = 78,
pbn_computone_6 = 79,
pbn_computone_8 = 80,
pbn_sbsxrsio = 81,
pbn_pasemi_1682M = 82,
pbn_ni8430_2 = 83,
pbn_ni8430_4 = 84,
pbn_ni8430_8 = 85,
pbn_ni8430_16 = 86,
pbn_ADDIDATA_PCIe_1_3906250 = 87,
pbn_ADDIDATA_PCIe_2_3906250 = 88,
pbn_ADDIDATA_PCIe_4_3906250 = 89,
pbn_ADDIDATA_PCIe_8_3906250 = 90,
pbn_ce4100_1_115200 = 91,
pbn_omegapci = 92,
pbn_NETMOS9900_2s_115200 = 93,
pbn_brcm_trumanage = 94,
pbn_fintek_4 = 95,
pbn_fintek_8 = 96,
pbn_fintek_12 = 97,
pbn_fintek_F81504A = 98,
pbn_fintek_F81508A = 99,
pbn_fintek_F81512A = 100,
pbn_wch382_2 = 101,
pbn_wch384_4 = 102,
pbn_wch384_8 = 103,
pbn_sunix_pci_1s = 104,
pbn_sunix_pci_2s = 105,
pbn_sunix_pci_4s = 106,
pbn_sunix_pci_8s = 107,
pbn_sunix_pci_16s = 108,
pbn_titan_1_4000000 = 109,
pbn_titan_2_4000000 = 110,
pbn_titan_4_4000000 = 111,
pbn_titan_8_4000000 = 112,
pbn_moxa_2 = 113,
pbn_moxa_4 = 114,
pbn_moxa_8 = 115,
};
struct f815xxa_data {
spinlock_t lock;
int idx;
};
enum {
AHCI_PCI_BAR_STA2X11 = 0,
AHCI_PCI_BAR_CAVIUM = 0,
AHCI_PCI_BAR_LOONGSON = 0,
AHCI_PCI_BAR_ENMOTUS = 2,
AHCI_PCI_BAR_CAVIUM_GEN5 = 4,
AHCI_PCI_BAR_STANDARD = 5,
};
enum {
AHCI_MAX_PORTS = 32,
AHCI_MAX_SG = 168,
AHCI_DMA_BOUNDARY = 4294967295,
AHCI_MAX_CMDS = 32,
AHCI_CMD_SZ = 32,
AHCI_CMD_SLOT_SZ = 1024,
AHCI_RX_FIS_SZ = 256,
AHCI_CMD_TBL_CDB = 64,
AHCI_CMD_TBL_HDR_SZ = 128,
AHCI_CMD_TBL_SZ = 2816,
AHCI_CMD_TBL_AR_SZ = 90112,
AHCI_PORT_PRIV_DMA_SZ = 91392,
AHCI_PORT_PRIV_FBS_DMA_SZ = 95232,
AHCI_IRQ_ON_SG = 2147483648,
AHCI_CMD_ATAPI = 32,
AHCI_CMD_WRITE = 64,
AHCI_CMD_PREFETCH = 128,
AHCI_CMD_RESET = 256,
AHCI_CMD_CLR_BUSY = 1024,
RX_FIS_PIO_SETUP = 32,
RX_FIS_D2H_REG = 64,
RX_FIS_SDB = 88,
RX_FIS_UNK = 96,
HOST_CAP = 0,
HOST_CTL = 4,
HOST_IRQ_STAT = 8,
HOST_PORTS_IMPL = 12,
HOST_VERSION = 16,
HOST_EM_LOC = 28,
HOST_EM_CTL = 32,
HOST_CAP2 = 36,
HOST_RESET = 1,
HOST_IRQ_EN = 2,
HOST_MRSM = 4,
HOST_AHCI_EN = 2147483648,
HOST_CAP_SXS = 32,
HOST_CAP_EMS = 64,
HOST_CAP_CCC = 128,
HOST_CAP_PART = 8192,
HOST_CAP_SSC = 16384,
HOST_CAP_PIO_MULTI = 32768,
HOST_CAP_FBS = 65536,
HOST_CAP_PMP = 131072,
HOST_CAP_ONLY = 262144,
HOST_CAP_CLO = 16777216,
HOST_CAP_LED = 33554432,
HOST_CAP_ALPM = 67108864,
HOST_CAP_SSS = 134217728,
HOST_CAP_MPS = 268435456,
HOST_CAP_SNTF = 536870912,
HOST_CAP_NCQ = 1073741824,
HOST_CAP_64 = 2147483648,
HOST_CAP2_BOH = 1,
HOST_CAP2_NVMHCI = 2,
HOST_CAP2_APST = 4,
HOST_CAP2_SDS = 8,
HOST_CAP2_SADM = 16,
HOST_CAP2_DESO = 32,
PORT_LST_ADDR = 0,
PORT_LST_ADDR_HI = 4,
PORT_FIS_ADDR = 8,
PORT_FIS_ADDR_HI = 12,
PORT_IRQ_STAT = 16,
PORT_IRQ_MASK = 20,
PORT_CMD = 24,
PORT_TFDATA = 32,
PORT_SIG = 36,
PORT_CMD_ISSUE = 56,
PORT_SCR_STAT = 40,
PORT_SCR_CTL = 44,
PORT_SCR_ERR = 48,
PORT_SCR_ACT = 52,
PORT_SCR_NTF = 60,
PORT_FBS = 64,
PORT_DEVSLP = 68,
PORT_IRQ_COLD_PRES = 2147483648,
PORT_IRQ_TF_ERR = 1073741824,
PORT_IRQ_HBUS_ERR = 536870912,
PORT_IRQ_HBUS_DATA_ERR = 268435456,
PORT_IRQ_IF_ERR = 134217728,
PORT_IRQ_IF_NONFATAL = 67108864,
PORT_IRQ_OVERFLOW = 16777216,
PORT_IRQ_BAD_PMP = 8388608,
PORT_IRQ_PHYRDY = 4194304,
PORT_IRQ_DMPS = 128,
PORT_IRQ_CONNECT = 64,
PORT_IRQ_SG_DONE = 32,
PORT_IRQ_UNK_FIS = 16,
PORT_IRQ_SDB_FIS = 8,
PORT_IRQ_DMAS_FIS = 4,
PORT_IRQ_PIOS_FIS = 2,
PORT_IRQ_D2H_REG_FIS = 1,
PORT_IRQ_FREEZE = 683671632,
PORT_IRQ_ERROR = 2025848912,
DEF_PORT_IRQ = 2025848959,
PORT_CMD_ASP = 134217728,
PORT_CMD_ALPE = 67108864,
PORT_CMD_ATAPI = 16777216,
PORT_CMD_FBSCP = 4194304,
PORT_CMD_ESP = 2097152,
PORT_CMD_CPD = 1048576,
PORT_CMD_MPSP = 524288,
PORT_CMD_HPCP = 262144,
PORT_CMD_PMP = 131072,
PORT_CMD_LIST_ON = 32768,
PORT_CMD_FIS_ON = 16384,
PORT_CMD_FIS_RX = 16,
PORT_CMD_CLO = 8,
PORT_CMD_POWER_ON = 4,
PORT_CMD_SPIN_UP = 2,
PORT_CMD_START = 1,
PORT_CMD_ICC_MASK = 4026531840,
PORT_CMD_ICC_ACTIVE = 268435456,
PORT_CMD_ICC_PARTIAL = 536870912,
PORT_CMD_ICC_SLUMBER = 1610612736,
PORT_CMD_CAP = 8126464,
PORT_FBS_DWE_OFFSET = 16,
PORT_FBS_ADO_OFFSET = 12,
PORT_FBS_DEV_OFFSET = 8,
PORT_FBS_DEV_MASK = 3840,
PORT_FBS_SDE = 4,
PORT_FBS_DEC = 2,
PORT_FBS_EN = 1,
PORT_DEVSLP_DM_OFFSET = 25,
PORT_DEVSLP_DM_MASK = 503316480,
PORT_DEVSLP_DITO_OFFSET = 15,
PORT_DEVSLP_MDAT_OFFSET = 10,
PORT_DEVSLP_DETO_OFFSET = 2,
PORT_DEVSLP_DSP = 2,
PORT_DEVSLP_ADSE = 1,
AHCI_HFLAG_NO_NCQ = 1,
AHCI_HFLAG_IGN_IRQ_IF_ERR = 2,
AHCI_HFLAG_IGN_SERR_INTERNAL = 4,
AHCI_HFLAG_32BIT_ONLY = 8,
AHCI_HFLAG_MV_PATA = 16,
AHCI_HFLAG_NO_MSI = 32,
AHCI_HFLAG_NO_PMP = 64,
AHCI_HFLAG_SECT255 = 256,
AHCI_HFLAG_YES_NCQ = 512,
AHCI_HFLAG_NO_SUSPEND = 1024,
AHCI_HFLAG_SRST_TOUT_IS_OFFLINE = 2048,
AHCI_HFLAG_NO_SNTF = 4096,
AHCI_HFLAG_NO_FPDMA_AA = 8192,
AHCI_HFLAG_YES_FBS = 16384,
AHCI_HFLAG_DELAY_ENGINE = 32768,
AHCI_HFLAG_NO_DEVSLP = 131072,
AHCI_HFLAG_NO_FBS = 262144,
AHCI_HFLAG_MULTI_MSI = 1048576,
AHCI_HFLAG_WAKE_BEFORE_STOP = 4194304,
AHCI_HFLAG_YES_ALPM = 8388608,
AHCI_HFLAG_NO_WRITE_TO_RO = 16777216,
AHCI_HFLAG_SUSPEND_PHYS = 33554432,
AHCI_HFLAG_NO_SXS = 67108864,
AHCI_HFLAG_43BIT_ONLY = 134217728,
AHCI_HFLAG_INTEL_PCS_QUIRK = 268435456,
AHCI_FLAG_COMMON = 393346,
ICH_MAP = 144,
PCS_6 = 146,
PCS_7 = 148,
EM_MAX_SLOTS = 15,
EM_MAX_RETRY = 5,
EM_CTL_RST = 512,
EM_CTL_TM = 256,
EM_CTL_MR = 1,
EM_CTL_ALHD = 67108864,
EM_CTL_XMT = 33554432,
EM_CTL_SMB = 16777216,
EM_CTL_SGPIO = 524288,
EM_CTL_SES = 262144,
EM_CTL_SAFTE = 131072,
EM_CTL_LED = 65536,
EM_MSG_TYPE_LED = 1,
EM_MSG_TYPE_SAFTE = 2,
EM_MSG_TYPE_SES2 = 4,
EM_MSG_TYPE_SGPIO = 8,
};
enum board_ids {
board_ahci = 0,
board_ahci_43bit_dma = 1,
board_ahci_ign_iferr = 2,
board_ahci_no_debounce_delay = 3,
board_ahci_no_msi = 4,
board_ahci_pcs_quirk = 5,
board_ahci_pcs_quirk_no_devslp = 6,
board_ahci_pcs_quirk_no_sntf = 7,
board_ahci_yes_fbs = 8,
board_ahci_al = 9,
board_ahci_avn = 10,
board_ahci_mcp65 = 11,
board_ahci_mcp77 = 12,
board_ahci_mcp89 = 13,
board_ahci_mv = 14,
board_ahci_sb600 = 15,
board_ahci_sb700 = 16,
board_ahci_vt8251 = 17,
board_ahci_mcp_linux = 11,
board_ahci_mcp67 = 11,
board_ahci_mcp73 = 11,
board_ahci_mcp79 = 12,
};
struct ahci_host_priv {
unsigned int flags;
u32 mask_port_map;
void *mmio;
u32 cap;
u32 cap2;
u32 version;
u32 port_map;
u32 saved_cap;
u32 saved_cap2;
u32 saved_port_map;
u32 saved_port_cap[32];
u32 em_loc;
u32 em_buf_sz;
u32 em_msg_type;
u32 remapped_nvme;
bool got_runtime_pm;
unsigned int n_clks;
struct clk_bulk_data *clks;
unsigned int f_rsts;
struct reset_control *rsts;
struct regulator **target_pwrs;
struct regulator *ahci_regulator;
struct regulator *phy_regulator;
struct phy **phys;
unsigned int nports;
void *plat_data;
unsigned int irq;
void (*start_engine)(struct ata_port *);
int (*stop_engine)(struct ata_port *);
irqreturn_t (*irq_handler)(int, void *);
int (*get_irq_vector)(struct ata_host *, int);
};
struct ahci_em_priv {
enum sw_activity blink_policy;
struct timer_list timer;
unsigned long saved_activity;
unsigned long activity;
unsigned long led_state;
struct ata_link *link;
};
struct ahci_cmd_hdr;
struct ahci_port_priv {
struct ata_link *active_link;
struct ahci_cmd_hdr *cmd_slot;
dma_addr_t cmd_slot_dma;
void *cmd_tbl;
dma_addr_t cmd_tbl_dma;
void *rx_fis;
dma_addr_t rx_fis_dma;
unsigned int ncq_saw_d2h: 1;
unsigned int ncq_saw_dmas: 1;
unsigned int ncq_saw_sdb: 1;
spinlock_t lock;
u32 intr_mask;
bool fbs_supported;
bool fbs_enabled;
int fbs_last_dev;
struct ahci_em_priv em_priv[15];
char *irq_desc;
};
struct ahci_cmd_hdr {
__le32 opts;
__le32 status;
__le32 tbl_addr;
__le32 tbl_addr_hi;
__le32 reserved[4];
};
struct iwl_shared_mem_lmac_cfg {
__le32 txfifo_addr;
__le32 txfifo_size[15];
__le32 rxfifo1_addr;
__le32 rxfifo1_size;
};
struct iwl_shared_mem_cfg {
__le32 shared_mem_addr;
__le32 shared_mem_size;
__le32 sample_buff_addr;
__le32 sample_buff_size;
__le32 rxfifo2_addr;
__le32 rxfifo2_size;
__le32 page_buff_addr;
__le32 page_buff_size;
__le32 lmac_num;
struct iwl_shared_mem_lmac_cfg lmac_smem[3];
__le32 rxfifo2_control_addr;
__le32 rxfifo2_control_size;
};
struct iwl_shared_mem_cfg_v2 {
__le32 shared_mem_addr;
__le32 shared_mem_size;
__le32 sample_buff_addr;
__le32 sample_buff_size;
__le32 txfifo_addr;
__le32 txfifo_size[8];
__le32 rxfifo_size[2];
__le32 page_buff_addr;
__le32 page_buff_size;
__le32 rxfifo_addr;
__le32 internal_txfifo_addr;
__le32 internal_txfifo_size[6];
};
struct i2c_devinfo {
struct list_head list;
int busnum;
struct i2c_board_info board_info;
};
struct cs_policy_dbs_info {
struct policy_dbs_info policy_dbs;
unsigned int down_skip;
unsigned int requested_freq;
};
struct cs_dbs_tuners {
unsigned int down_threshold;
unsigned int freq_step;
};
struct quirks_list_struct {
struct hid_device_id hid_bl_item;
struct list_head node;
};
struct llc_pdu_un {
u8 dsap;
u8 ssap;
u8 ctrl_1;
};
enum nft_trace_attributes {
NFTA_TRACE_UNSPEC = 0,
NFTA_TRACE_TABLE = 1,
NFTA_TRACE_CHAIN = 2,
NFTA_TRACE_RULE_HANDLE = 3,
NFTA_TRACE_TYPE = 4,
NFTA_TRACE_VERDICT = 5,
NFTA_TRACE_ID = 6,
NFTA_TRACE_LL_HEADER = 7,
NFTA_TRACE_NETWORK_HEADER = 8,
NFTA_TRACE_TRANSPORT_HEADER = 9,
NFTA_TRACE_IIF = 10,
NFTA_TRACE_IIFTYPE = 11,
NFTA_TRACE_OIF = 12,
NFTA_TRACE_OIFTYPE = 13,
NFTA_TRACE_MARK = 14,
NFTA_TRACE_NFPROTO = 15,
NFTA_TRACE_POLICY = 16,
NFTA_TRACE_PAD = 17,
__NFTA_TRACE_MAX = 18,
};
struct nft_rule_dp_last {
struct nft_rule_dp end;
struct callback_head h;
struct nft_rule_blob *blob;
const struct nft_chain *chain;
};
struct icmp6_err {
int err;
int fatal;
};
struct icmpv6_msg {
struct sk_buff *skb;
int offset;
uint8_t type;
};
enum rfkill_type {
RFKILL_TYPE_ALL = 0,
RFKILL_TYPE_WLAN = 1,
RFKILL_TYPE_BLUETOOTH = 2,
RFKILL_TYPE_UWB = 3,
RFKILL_TYPE_WIMAX = 4,
RFKILL_TYPE_WWAN = 5,
RFKILL_TYPE_GPS = 6,
RFKILL_TYPE_FM = 7,
RFKILL_TYPE_NFC = 8,
NUM_RFKILL_TYPES = 9,
};
struct cfg80211_beacon_registration {
struct list_head list;
u32 nlportid;
};
enum {
SNBEP_PCI_QPI_PORT0_FILTER = 0,
SNBEP_PCI_QPI_PORT1_FILTER = 1,
BDX_PCI_QPI_PORT2_FILTER = 2,
};
enum {
IIO_TOPOLOGY_TYPE = 0,
UPI_TOPOLOGY_TYPE = 1,
TOPOLOGY_MAX = 2,
};
enum {
MEMTYPE_EXACT_MATCH = 0,
MEMTYPE_END_MATCH = 1,
};
enum uv_system_type {
UV_NONE = 0,
UV_LEGACY_APIC = 1,
UV_X2APIC = 2,
};
typedef struct {
efi_guid_t guid;
unsigned long *ptr;
const char name[16];
} efi_config_table_type_t;
enum efi_secureboot_mode {
efi_secureboot_mode_unset = 0,
efi_secureboot_mode_unknown = 1,
efi_secureboot_mode_disabled = 2,
efi_secureboot_mode_enabled = 3,
};
typedef struct {
efi_guid_t guid;
u32 table;
} efi_config_table_32_t;
typedef union {
struct {
efi_guid_t guid;
void *table;
};
efi_config_table_32_t mixed_mode;
} efi_config_table_t;
typedef struct {
u32 version;
u32 length;
u64 memory_protection_attribute;
} efi_properties_table_t;
typedef struct {
efi_table_hdr_t hdr;
u64 fw_vendor;
u32 fw_revision;
u32 __pad1;
u64 con_in_handle;
u64 con_in;
u64 con_out_handle;
u64 con_out;
u64 stderr_handle;
u64 stderr;
u64 runtime;
u64 boottime;
u32 nr_tables;
u32 __pad2;
u64 tables;
} efi_system_table_64_t;
struct bpf_preload_info;
struct bpf_preload_ops {
int (*preload)(struct bpf_preload_info *);
struct module *owner;
};
struct bpf_preload_info {
char link_name[16];
struct bpf_link *link;
};
enum bpf_type {
BPF_TYPE_UNSPEC = 0,
BPF_TYPE_PROG = 1,
BPF_TYPE_MAP = 2,
BPF_TYPE_LINK = 3,
};
enum {
OPT_UID = 0,
OPT_GID = 1,
OPT_MODE = 2,
OPT_DELEGATE_CMDS = 3,
OPT_DELEGATE_MAPS = 4,
OPT_DELEGATE_PROGS = 5,
OPT_DELEGATE_ATTACHS = 6,
};
struct map_iter {
void *key;
bool done;
};
struct bpffs_btf_enums {
const struct btf *btf;
const struct btf_type *cmd_t;
const struct btf_type *map_t;
const struct btf_type *prog_t;
const struct btf_type *attach_t;
};
struct workspace___2 {
z_stream strm;
char *buf;
unsigned int buf_size;
struct list_head list;
int level;
};
enum {
ICQ_EXITED = 4,
ICQ_DESTROYED = 8,
};
struct acpi_pci_ioapic {
acpi_handle root_handle;
acpi_handle handle;
u32 gsi_base;
struct resource res;
struct pci_dev *pdev;
struct list_head list;
};
typedef int (*pm_callback_t)(struct device *);
struct iwl_rxq_sync_cmd {
__le32 flags;
__le32 rxq_mask;
__le32 count;
u8 payload[0];
};
struct iwl_mvm_sta_state_ops {
int (*add_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*update_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*rm_sta)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_sta *);
int (*mac_ctxt_changed)(struct iwl_mvm *, struct ieee80211_vif *, bool);
};
struct iwl_mvm_roc_ops {
int (*add_aux_sta_for_hs20)(struct iwl_mvm *, u32);
int (*link)(struct iwl_mvm *, struct ieee80211_vif *);
};
struct iwl_mvm_switch_vif_chanctx_ops {
int (*__assign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool);
void (*__unassign_vif_chanctx)(struct iwl_mvm *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *, bool);
};
enum iwl_mcc_update_status {
MCC_RESP_NEW_CHAN_PROFILE = 0,
MCC_RESP_SAME_CHAN_PROFILE = 1,
MCC_RESP_INVALID = 2,
MCC_RESP_NVM_DISABLED = 3,
MCC_RESP_ILLEGAL = 4,
MCC_RESP_LOW_PRIORITY = 5,
MCC_RESP_TEST_MODE_ACTIVE = 6,
MCC_RESP_TEST_MODE_NOT_ACTIVE = 7,
MCC_RESP_TEST_MODE_DENIAL_OF_SERVICE = 8,
};
enum ieee80211_radiotap_timestamp_unit_spos {
IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MASK = 15,
IEEE80211_RADIOTAP_TIMESTAMP_UNIT_MS = 0,
IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US = 1,
IEEE80211_RADIOTAP_TIMESTAMP_UNIT_NS = 3,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_MASK = 240,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_BEGIN_MDPU = 0,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_PLCP_SIG_ACQ = 16,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_PPDU = 32,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_EO_MPDU = 48,
IEEE80211_RADIOTAP_TIMESTAMP_SPOS_UNKNOWN = 240,
};
enum iwl_dev_tx_power_cmd_mode {
IWL_TX_POWER_MODE_SET_MAC = 0,
IWL_TX_POWER_MODE_SET_DEVICE = 1,
IWL_TX_POWER_MODE_SET_CHAINS = 2,
IWL_TX_POWER_MODE_SET_ACK = 3,
IWL_TX_POWER_MODE_SET_SAR_TIMER = 4,
IWL_TX_POWER_MODE_SET_SAR_TIMER_DEFAULT_TABLE = 5,
};
enum iwl_he_pkt_ext_constellations {
IWL_HE_PKT_EXT_BPSK = 0,
IWL_HE_PKT_EXT_QPSK = 1,
IWL_HE_PKT_EXT_16QAM = 2,
IWL_HE_PKT_EXT_64QAM = 3,
IWL_HE_PKT_EXT_256QAM = 4,
IWL_HE_PKT_EXT_1024QAM = 5,
IWL_HE_PKT_EXT_4096QAM = 6,
IWL_HE_PKT_EXT_NONE = 7,
};
enum iwl_he_htc_flags {
IWL_HE_HTC_SUPPORT = 1,
IWL_HE_HTC_UL_MU_RESP_SCHED = 8,
IWL_HE_HTC_BSR_SUPP = 16,
IWL_HE_HTC_OMI_SUPP = 32,
IWL_HE_HTC_BQR_SUPP = 64,
};
enum iwl_scan_status {
IWL_MVM_SCAN_REGULAR = 1,
IWL_MVM_SCAN_SCHED = 2,
IWL_MVM_SCAN_NETDETECT = 4,
IWL_MVM_SCAN_STOPPING_REGULAR = 256,
IWL_MVM_SCAN_STOPPING_SCHED = 512,
IWL_MVM_SCAN_STOPPING_NETDETECT = 1024,
IWL_MVM_SCAN_REGULAR_MASK = 257,
IWL_MVM_SCAN_SCHED_MASK = 514,
IWL_MVM_SCAN_NETDETECT_MASK = 1028,
IWL_MVM_SCAN_STOPPING_MASK = 65280,
IWL_MVM_SCAN_MASK = 255,
};
enum iwl_mvm_pm_event {
IWL_MVM_PM_EVENT_AWAKE = 0,
IWL_MVM_PM_EVENT_ASLEEP = 1,
IWL_MVM_PM_EVENT_UAPSD = 2,
IWL_MVM_PM_EVENT_PS_POLL = 3,
};
enum nl80211_ftm_responder_stats {
__NL80211_FTM_STATS_INVALID = 0,
NL80211_FTM_STATS_SUCCESS_NUM = 1,
NL80211_FTM_STATS_PARTIAL_NUM = 2,
NL80211_FTM_STATS_FAILED_NUM = 3,
NL80211_FTM_STATS_ASAP_NUM = 4,
NL80211_FTM_STATS_NON_ASAP_NUM = 5,
NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 6,
NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 7,
NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 8,
NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 9,
NL80211_FTM_STATS_PAD = 10,
__NL80211_FTM_STATS_AFTER_LAST = 11,
NL80211_FTM_STATS_MAX = 10,
};
enum iwl_link_ctx_modify_flags {
LINK_CONTEXT_MODIFY_ACTIVE = 1,
LINK_CONTEXT_MODIFY_RATES_INFO = 2,
LINK_CONTEXT_MODIFY_PROTECT_FLAGS = 4,
LINK_CONTEXT_MODIFY_QOS_PARAMS = 8,
LINK_CONTEXT_MODIFY_BEACON_TIMING = 16,
LINK_CONTEXT_MODIFY_HE_PARAMS = 32,
LINK_CONTEXT_MODIFY_BSS_COLOR_DISABLE = 64,
LINK_CONTEXT_MODIFY_EHT_PARAMS = 128,
LINK_CONTEXT_MODIFY_ALL = 255,
};
enum iwl_he_sta_ctxt_flags {
STA_CTXT_HE_REF_BSSID_VALID = 16,
STA_CTXT_HE_BSS_COLOR_DIS = 32,
STA_CTXT_HE_PARTIAL_BSS_COLOR = 64,
STA_CTXT_HE_32BIT_BA_BITMAP = 128,
STA_CTXT_HE_PACKET_EXT = 256,
STA_CTXT_HE_TRIG_RND_ALLOC = 512,
STA_CTXT_HE_CONST_TRIG_RND_ALLOC = 1024,
STA_CTXT_HE_ACK_ENABLED = 2048,
STA_CTXT_HE_MU_EDCA_CW = 4096,
STA_CTXT_HE_NIC_NOT_ACK_ENABLED = 8192,
STA_CTXT_HE_RU_2MHZ_BLOCK = 16384,
STA_CTXT_HE_NDP_FEEDBACK_ENABLED = 32768,
STA_CTXT_EHT_PUNCTURE_MASK_VALID = 65536,
STA_CTXT_EHT_LONG_PPE_ENABLED = 131072,
};
enum iwl_roc_activity {
ROC_ACTIVITY_HOTSPOT = 0,
ROC_ACTIVITY_P2P_DISC = 1,
ROC_ACTIVITY_P2P_TXRX = 2,
ROC_NUM_ACTIVITIES = 3,
};
struct iwl_mu_group_mgmt_cmd {
__le32 reserved;
__le32 membership_status[2];
__le32 user_position[4];
};
struct iwl_hs20_roc_req_tail {
u8 node_addr[6];
__le16 reserved;
__le32 apply_time;
__le32 apply_time_max_delay;
__le32 duration;
};
struct iwl_hs20_roc_req {
__le32 id_and_color;
__le32 action;
__le32 event_unique_id;
__le32 sta_id_and_color;
struct iwl_fw_channel_info channel_info;
struct iwl_hs20_roc_req_tail tail;
};
struct iwl_mvm_ftm_responder_iter_data {
bool responder;
struct ieee80211_chanctx_conf *ctx;
};
struct iwl_chan_switch_te_cmd {
__le32 mac_id;
__le32 action;
__le32 tsf;
u8 cs_count;
u8 cs_delayed_bcn_count;
u8 cs_mode;
u8 reserved;
};
struct iwl_mvm_he_obss_narrow_bw_ru_data {
bool tolerated;
};
struct iwl_mvm_mc_iter_data {
struct iwl_mvm *mvm;
int port_id;
};
struct iwl_mu_group_mgmt_notif {
__le32 membership_status[2];
__le32 user_position[4];
};
struct iwl_he_backoff_conf {
__le16 cwmin;
__le16 cwmax;
__le16 aifsn;
__le16 mu_time;
};
struct iwl_mvm_pm_state_notification {
u8 sta_id;
u8 type;
__le16 reserved;
};
struct iwl_fw_dbg_trigger_tdls {
u8 action_bitmap;
u8 peer_mode;
u8 peer[6];
u8 reserved[4];
};
struct iwl_he_pkt_ext_v1 {
u8 pkt_ext_qam_th[16];
};
struct iwl_he_sta_context_cmd_v2 {
u8 sta_id;
u8 tid_limit;
u8 reserved1;
u8 reserved2;
__le32 flags;
u8 ref_bssid_addr[6];
__le16 reserved0;
__le32 htc_flags;
u8 frag_flags;
u8 frag_level;
u8 frag_max_num;
u8 frag_min_size;
struct iwl_he_pkt_ext_v1 pkt_ext;
u8 bss_color;
u8 htc_trig_based_pkt_ext;
__le16 frame_time_rts_th;
u8 rand_alloc_ecwmin;
u8 rand_alloc_ecwmax;
__le16 reserved3;
struct iwl_he_backoff_conf trig_based_txf[4];
u8 max_bssid_indicator;
u8 bssid_index;
u8 ema_ap;
u8 profile_periodicity;
u8 bssid_count;
u8 reserved4[3];
};
struct iwl_he_sta_context_cmd_v3 {
u8 sta_id;
u8 tid_limit;
u8 reserved1;
u8 reserved2;
__le32 flags;
u8 ref_bssid_addr[6];
__le16 reserved0;
__le32 htc_flags;
u8 frag_flags;
u8 frag_level;
u8 frag_max_num;
u8 frag_min_size;
struct iwl_he_pkt_ext_v2 pkt_ext;
u8 bss_color;
u8 htc_trig_based_pkt_ext;
__le16 frame_time_rts_th;
u8 rand_alloc_ecwmin;
u8 rand_alloc_ecwmax;
__le16 puncture_mask;
struct iwl_he_backoff_conf trig_based_txf[4];
u8 max_bssid_indicator;
u8 bssid_index;
u8 ema_ap;
u8 profile_periodicity;
u8 bssid_count;
u8 reserved4[3];
};
struct iwl_hs20_roc_res {
__le32 event_unique_id;
__le32 status;
};
enum input_clock_type {
INPUT_CLK_REAL = 0,
INPUT_CLK_MONO = 1,
INPUT_CLK_BOOT = 2,
INPUT_CLK_MAX = 3,
};
union input_seq_state {
struct {
unsigned short pos;
bool mutex_acquired;
};
void *p;
};
struct input_devres {
struct input_dev *input;
};
enum tc_mq_command {
TC_MQ_CREATE = 0,
TC_MQ_DESTROY = 1,
TC_MQ_STATS = 2,
TC_MQ_GRAFT = 3,
};
struct tc_qopt_offload_stats {
struct gnet_stats_basic_sync *bstats;
struct gnet_stats_queue *qstats;
};
struct tc_mq_opt_offload_graft_params {
unsigned long queue;
u32 child_handle;
};
struct tc_mq_qopt_offload {
enum tc_mq_command command;
u32 handle;
union {
struct tc_qopt_offload_stats stats;
struct tc_mq_opt_offload_graft_params graft_params;
};
};
struct mq_sched {
struct Qdisc **qdiscs;
};
struct nft_set_ext_type {
u8 len;
u8 align;
};
enum nft_expr_attributes {
NFTA_EXPR_UNSPEC = 0,
NFTA_EXPR_NAME = 1,
NFTA_EXPR_DATA = 2,
__NFTA_EXPR_MAX = 3,
};
enum nft_verdict_attributes {
NFTA_VERDICT_UNSPEC = 0,
NFTA_VERDICT_CODE = 1,
NFTA_VERDICT_CHAIN = 2,
NFTA_VERDICT_CHAIN_ID = 3,
__NFTA_VERDICT_MAX = 4,
};
enum nft_data_attributes {
NFTA_DATA_UNSPEC = 0,
NFTA_DATA_VALUE = 1,
NFTA_DATA_VERDICT = 2,
__NFTA_DATA_MAX = 3,
};
enum nft_set_policies {
NFT_SET_POL_PERFORMANCE = 0,
NFT_SET_POL_MEMORY = 1,
};
enum nft_set_desc_attributes {
NFTA_SET_DESC_UNSPEC = 0,
NFTA_SET_DESC_SIZE = 1,
NFTA_SET_DESC_CONCAT = 2,
__NFTA_SET_DESC_MAX = 3,
};
enum nft_set_field_attributes {
NFTA_SET_FIELD_UNSPEC = 0,
NFTA_SET_FIELD_LEN = 1,
__NFTA_SET_FIELD_MAX = 2,
};
enum nft_object_attributes {
NFTA_OBJ_UNSPEC = 0,
NFTA_OBJ_TABLE = 1,
NFTA_OBJ_NAME = 2,
NFTA_OBJ_TYPE = 3,
NFTA_OBJ_DATA = 4,
NFTA_OBJ_USE = 5,
NFTA_OBJ_HANDLE = 6,
NFTA_OBJ_PAD = 7,
NFTA_OBJ_USERDATA = 8,
__NFTA_OBJ_MAX = 9,
};
enum nft_data_desc_flags {
NFT_DATA_DESC_SETELEM = 1,
};
enum nft_table_flags {
NFT_TABLE_F_DORMANT = 1,
NFT_TABLE_F_OWNER = 2,
NFT_TABLE_F_PERSIST = 4,
};
enum nft_table_attributes {
NFTA_TABLE_UNSPEC = 0,
NFTA_TABLE_NAME = 1,
NFTA_TABLE_FLAGS = 2,
NFTA_TABLE_USE = 3,
NFTA_TABLE_HANDLE = 4,
NFTA_TABLE_PAD = 5,
NFTA_TABLE_USERDATA = 6,
NFTA_TABLE_OWNER = 7,
__NFTA_TABLE_MAX = 8,
};
enum nft_chain_attributes {
NFTA_CHAIN_UNSPEC = 0,
NFTA_CHAIN_TABLE = 1,
NFTA_CHAIN_HANDLE = 2,
NFTA_CHAIN_NAME = 3,
NFTA_CHAIN_HOOK = 4,
NFTA_CHAIN_POLICY = 5,
NFTA_CHAIN_USE = 6,
NFTA_CHAIN_TYPE = 7,
NFTA_CHAIN_COUNTERS = 8,
NFTA_CHAIN_PAD = 9,
NFTA_CHAIN_FLAGS = 10,
NFTA_CHAIN_ID = 11,
NFTA_CHAIN_USERDATA = 12,
__NFTA_CHAIN_MAX = 13,
};
enum nft_hook_attributes {
NFTA_HOOK_UNSPEC = 0,
NFTA_HOOK_HOOKNUM = 1,
NFTA_HOOK_PRIORITY = 2,
NFTA_HOOK_DEV = 3,
NFTA_HOOK_DEVS = 4,
__NFTA_HOOK_MAX = 5,
};
enum nft_devices_attributes {
NFTA_DEVICE_UNSPEC = 0,
NFTA_DEVICE_NAME = 1,
__NFTA_DEVICE_MAX = 2,
};
enum {
NFT_VALIDATE_SKIP = 0,
NFT_VALIDATE_NEED = 1,
NFT_VALIDATE_DO = 2,
};
enum nft_set_elem_list_attributes {
NFTA_SET_ELEM_LIST_UNSPEC = 0,
NFTA_SET_ELEM_LIST_TABLE = 1,
NFTA_SET_ELEM_LIST_SET = 2,
NFTA_SET_ELEM_LIST_ELEMENTS = 3,
NFTA_SET_ELEM_LIST_SET_ID = 4,
__NFTA_SET_ELEM_LIST_MAX = 5,
};
enum nft_set_elem_attributes {
NFTA_SET_ELEM_UNSPEC = 0,
NFTA_SET_ELEM_KEY = 1,
NFTA_SET_ELEM_DATA = 2,
NFTA_SET_ELEM_FLAGS = 3,
NFTA_SET_ELEM_TIMEOUT = 4,
NFTA_SET_ELEM_EXPIRATION = 5,
NFTA_SET_ELEM_USERDATA = 6,
NFTA_SET_ELEM_EXPR = 7,
NFTA_SET_ELEM_PAD = 8,
NFTA_SET_ELEM_OBJREF = 9,
NFTA_SET_ELEM_KEY_END = 10,
NFTA_SET_ELEM_EXPRESSIONS = 11,
__NFTA_SET_ELEM_MAX = 12,
};
enum nft_gen_attributes {
NFTA_GEN_UNSPEC = 0,
NFTA_GEN_ID = 1,
NFTA_GEN_PROC_PID = 2,
NFTA_GEN_PROC_NAME = 3,
__NFTA_GEN_MAX = 4,
};
enum nft_flowtable_attributes {
NFTA_FLOWTABLE_UNSPEC = 0,
NFTA_FLOWTABLE_TABLE = 1,
NFTA_FLOWTABLE_NAME = 2,
NFTA_FLOWTABLE_HOOK = 3,
NFTA_FLOWTABLE_USE = 4,
NFTA_FLOWTABLE_HANDLE = 5,
NFTA_FLOWTABLE_PAD = 6,
NFTA_FLOWTABLE_FLAGS = 7,
__NFTA_FLOWTABLE_MAX = 8,
};
enum nft_flowtable_flags {
NFT_FLOWTABLE_HW_OFFLOAD = 1,
NFT_FLOWTABLE_COUNTER = 2,
NFT_FLOWTABLE_MASK = 3,
};
enum nft_flowtable_hook_attributes {
NFTA_FLOWTABLE_HOOK_UNSPEC = 0,
NFTA_FLOWTABLE_HOOK_NUM = 1,
NFTA_FLOWTABLE_HOOK_PRIORITY = 2,
NFTA_FLOWTABLE_HOOK_DEVS = 3,
__NFTA_FLOWTABLE_HOOK_MAX = 4,
};
struct nft_module_request {
struct list_head list;
char module[56];
bool done;
};
struct nft_set_elem_catchall {
struct list_head list;
struct callback_head rcu;
struct nft_elem_priv *elem;
};
struct nft_flowtable {
struct list_head list;
struct nft_table *table;
char *name;
int hooknum;
int ops_len;
u32 genmask: 2;
u32 use;
u64 handle;
long: 64;
struct list_head hook_list;
struct nf_flowtable data;
long: 64;
long: 64;
long: 64;
};
struct nft_trans_set {
struct nft_set *set;
u32 set_id;
u32 gc_int;
u64 timeout;
bool update;
bool bound;
u32 size;
};
struct nft_trans_elem {
struct nft_set *set;
struct nft_elem_priv *elem_priv;
bool bound;
};
struct nftnl_skb_parms {
bool report;
};
struct nft_trans_obj {
struct nft_object *obj;
struct nft_object *newobj;
bool update;
};
struct nft_trans_flowtable {
struct nft_flowtable *flowtable;
bool update;
struct list_head hook_list;
u32 flags;
};
struct nft_trans_table {
bool update;
};
struct nft_set_dump_args {
const struct netlink_callback *cb;
struct nft_set_iter iter;
struct sk_buff *skb;
bool reset;
};
struct nft_audit_data {
struct nft_table *table;
int entries;
int op;
struct list_head list;
};
struct nft_chain_hook {
u32 num;
s32 priority;
const struct nft_chain_type *type;
struct list_head list;
};
struct nft_userdata {
u8 len;
unsigned char data[0];
};
struct nft_flowtable_hook {
u32 num;
int priority;
struct list_head list;
};
struct nft_rule_dump_ctx {
unsigned int s_idx;
char *table;
char *chain;
bool reset;
};
struct nft_immediate_expr {
struct nft_data data;
u8 dreg;
u8 dlen;
};
struct nft_set_dump_ctx {
const struct nft_set *set;
struct nft_ctx ctx;
bool reset;
};
struct nft_obj_dump_ctx {
unsigned int s_idx;
char *table;
u32 type;
bool reset;
};
struct nft_flowtable_filter {
char *table;
};
struct ip6addrlbl_init_table {
const struct in6_addr *prefix;
int prefixlen;
u32 label;
};
enum {
IFAL_ADDRESS = 1,
IFAL_LABEL = 2,
__IFAL_MAX = 3,
};
struct ip6addrlbl_entry {
struct in6_addr prefix;
int prefixlen;
int ifindex;
int addrtype;
u32 label;
struct hlist_node list;
struct callback_head rcu;
};
struct ifaddrlblmsg {
__u8 ifal_family;
__u8 __ifal_reserved;
__u8 ifal_prefixlen;
__u8 ifal_flags;
__u32 ifal_index;
__u32 ifal_seq;
};
enum mac80211_tx_status_flags {
IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1,
};
enum ieee80211_status_data {
IEEE80211_STATUS_TYPE_MASK = 15,
IEEE80211_STATUS_TYPE_INVALID = 0,
IEEE80211_STATUS_TYPE_SMPS = 1,
IEEE80211_STATUS_SUBDATA_MASK = 4080,
};
struct kexec_load_limit {
struct mutex mutex;
int limit;
};
enum {
BPF_RINGBUF_BUSY_BIT = 2147483648,
BPF_RINGBUF_DISCARD_BIT = 1073741824,
BPF_RINGBUF_HDR_SZ = 8,
};
enum {
BPF_RB_NO_WAKEUP = 1,
BPF_RB_FORCE_WAKEUP = 2,
};
enum {
BPF_RB_AVAIL_DATA = 0,
BPF_RB_RING_SIZE = 1,
BPF_RB_CONS_POS = 2,
BPF_RB_PROD_POS = 3,
};
typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64);
typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64);
typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64);
typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64);
typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64);
typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *);
typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64);
typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64);
typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64);
struct bpf_ringbuf {
wait_queue_head_t waitq;
struct irq_work work;
u64 mask;
struct page **pages;
int nr_pages;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
spinlock_t spinlock;
atomic_t busy;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
unsigned long consumer_pos;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
unsigned long producer_pos;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
char data[0];
};
struct bpf_ringbuf_map {
struct bpf_map map;
struct bpf_ringbuf *rb;
};
struct bpf_ringbuf_hdr {
u32 len;
u32 pg_off;
};
enum shmem_param {
Opt_gid___8 = 0,
Opt_huge = 1,
Opt_mode___6 = 2,
Opt_mpol = 3,
Opt_nr_blocks = 4,
Opt_nr_inodes___2 = 5,
Opt_size___2 = 6,
Opt_uid___7 = 7,
Opt_inode32 = 8,
Opt_inode64 = 9,
Opt_noswap = 10,
Opt_quota___2 = 11,
Opt_usrquota___2 = 12,
Opt_grpquota___2 = 13,
Opt_usrquota_block_hardlimit = 14,
Opt_usrquota_inode_hardlimit = 15,
Opt_grpquota_block_hardlimit = 16,
Opt_grpquota_inode_hardlimit = 17,
};
struct shmem_quota_limits {
qsize_t usrquota_bhardlimit;
qsize_t usrquota_ihardlimit;
qsize_t grpquota_bhardlimit;
qsize_t grpquota_ihardlimit;
};
struct shmem_sb_info {
unsigned long max_blocks;
struct percpu_counter used_blocks;
unsigned long max_inodes;
unsigned long free_ispace;
raw_spinlock_t stat_lock;
umode_t mode;
unsigned char huge;
kuid_t uid;
kgid_t gid;
bool full_inums;
bool noswap;
ino_t next_ino;
ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch;
struct mempolicy *mpol;
spinlock_t shrinklist_lock;
struct list_head shrinklist;
unsigned long shrinklist_len;
struct shmem_quota_limits qlimits;
};
struct shmem_options {
unsigned long long blocks;
unsigned long long inodes;
struct mempolicy *mpol;
kuid_t uid;
kgid_t gid;
umode_t mode;
bool full_inums;
int huge;
int seen;
bool noswap;
unsigned short quota_types;
struct shmem_quota_limits qlimits;
};
struct shmem_falloc {
wait_queue_head_t *waitq;
unsigned long start;
unsigned long next;
unsigned long nr_falloced;
unsigned long nr_unswapped;
};
struct dio {
int flags;
blk_opf_t opf;
struct gendisk *bio_disk;
struct inode *inode;
loff_t i_size;
dio_iodone_t *end_io;
bool is_pinned;
void *private;
spinlock_t bio_lock;
int page_errors;
int is_async;
bool defer_completion;
bool should_dirty;
int io_error;
unsigned long refcount;
struct bio *bio_list;
struct task_struct *waiter;
struct kiocb *iocb;
ssize_t result;
union {
struct page *pages[64];
struct work_struct complete_work;
};
long: 64;
long: 64;
};
struct dio_submit {
struct bio *bio;
unsigned int blkbits;
unsigned int blkfactor;
unsigned int start_zero_done;
int pages_in_io;
sector_t block_in_file;
unsigned int blocks_available;
int reap_counter;
sector_t final_block_in_request;
int boundary;
get_block_t *get_block;
loff_t logical_offset_in_bio;
sector_t final_block_in_bio;
sector_t next_block_for_io;
struct page *cur_page;
unsigned int cur_page_offset;
unsigned int cur_page_len;
sector_t cur_page_block;
loff_t cur_page_fs_offset;
struct iov_iter *iter;
unsigned int head;
unsigned int tail;
size_t from;
size_t to;
};
struct sysctl_alias {
const char *kernel_param;
const char *sysctl_param;
};
struct workspace___3 {
void *mem;
void *buf;
void *cbuf;
struct list_head list;
};
struct crypto_queue {
struct list_head list;
struct list_head *backlog;
unsigned int qlen;
unsigned int max_qlen;
};
enum {
IOU_PBUF_RING_MMAP = 1,
};
struct io_provide_buf {
struct file *file;
__u64 addr;
__u32 len;
__u32 bgid;
__u32 nbufs;
__u16 bid;
};
struct io_buf_free {
struct hlist_node list;
void *mem;
size_t size;
int inuse;
};
struct io_uring_buf_reg {
__u64 ring_addr;
__u32 ring_entries;
__u16 bgid;
__u16 flags;
__u64 resv[3];
};
struct io_uring_buf_status {
__u32 buf_group;
__u32 head;
__u32 resv[8];
};
enum {
EI_ETYPE_NULL = 0,
EI_ETYPE_ERRNO = 1,
EI_ETYPE_ERRNO_NULL = 2,
EI_ETYPE_TRUE = 3,
};
struct ei_entry {
struct list_head list;
unsigned long start_addr;
unsigned long end_addr;
int etype;
void *priv;
};
enum {
FBCON_LOGO_CANSHOW = -1,
FBCON_LOGO_DRAW = -2,
FBCON_LOGO_DONTSHOW = -3,
};
struct fb_con2fbmap {
__u32 console;
__u32 framebuffer;
};
struct virtio_driver {
struct device_driver driver;
const struct virtio_device_id *id_table;
const unsigned int *feature_table;
unsigned int feature_table_size;
const unsigned int *feature_table_legacy;
unsigned int feature_table_size_legacy;
int (*validate)(struct virtio_device *);
int (*probe)(struct virtio_device *);
void (*scan)(struct virtio_device *);
void (*remove)(struct virtio_device *);
void (*config_changed)(struct virtio_device *);
int (*freeze)(struct virtio_device *);
int (*restore)(struct virtio_device *);
};
struct virtio_blk_vq;
struct virtio_blk {
struct mutex vdev_mutex;
struct virtio_device *vdev;
struct gendisk *disk;
struct blk_mq_tag_set tag_set;
struct work_struct config_work;
int index;
int num_vqs;
int io_queues[3];
struct virtio_blk_vq *vqs;
unsigned int zone_sectors;
};
struct virtio_blk_vq {
struct virtqueue *vq;
spinlock_t lock;
char name[16];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
typedef __u32 __virtio32;
typedef __u64 __virtio64;
struct virtio_blk_outhdr {
__virtio32 type;
__virtio32 ioprio;
__virtio64 sector;
};
struct virtblk_req {
struct virtio_blk_outhdr out_hdr;
union {
u8 status;
struct {
__virtio64 sector;
u8 status;
} zone_append;
} in_hdr;
size_t in_hdr_len;
struct sg_table sg_table;
struct scatterlist sg[0];
};
struct virtio_blk_discard_write_zeroes {
__le64 sector;
__le32 num_sectors;
__le32 flags;
};
struct iwl_mvm_scan_timing_params {
u32 suspend_time;
u32 max_out_time;
};
struct iwl_mvm_scan_params;
struct iwl_scan_umac_handler {
u8 version;
int (*handler)(struct iwl_mvm *, struct ieee80211_vif *, struct iwl_mvm_scan_params *, int, int);
};
struct iwl_scan_probe_segment {
__le16 offset;
__le16 len;
};
struct iwl_scan_probe_req {
struct iwl_scan_probe_segment mac_header;
struct iwl_scan_probe_segment band_data[3];
struct iwl_scan_probe_segment common_data;
u8 buf[512];
};
struct iwl_mvm_scan_params {
enum iwl_mvm_scan_type type;
enum iwl_mvm_scan_type hb_type;
u32 n_channels;
u16 delay;
int n_ssids;
struct cfg80211_ssid *ssids;
struct ieee80211_channel **channels;
u32 flags;
u8 *mac_addr;
u8 *mac_addr_mask;
bool no_cck;
bool pass_all;
int n_match_sets;
struct iwl_scan_probe_req preq;
struct cfg80211_match_set *match_sets;
int n_scan_plans;
struct cfg80211_sched_scan_plan *scan_plans;
bool iter_notif;
struct cfg80211_scan_6ghz_params *scan_6ghz_params;
u32 n_6ghz_params;
bool scan_6ghz;
bool enable_6ghz_passive;
bool respect_p2p_go;
bool respect_p2p_go_hb;
s8 tsf_report_link_id;
short: 0;
u8 bssid[6];
};
struct iwl_mvm_scan_channel_segment {
u8 start_idx;
u8 end_idx;
u8 first_channel_id;
u8 last_channel_id;
u8 channel_spacing_shift;
u8 band;
};
enum iwl_scan_offload_complete_status {
IWL_SCAN_OFFLOAD_COMPLETED = 1,
IWL_SCAN_OFFLOAD_ABORTED = 2,
};
enum iwl_scan_ebs_status {
IWL_SCAN_EBS_SUCCESS = 0,
IWL_SCAN_EBS_FAILED = 1,
IWL_SCAN_EBS_CHAN_NOT_FOUND = 2,
IWL_SCAN_EBS_INACTIVE = 3,
};
enum scan_config_flags {
SCAN_CONFIG_FLAG_ACTIVATE = 1,
SCAN_CONFIG_FLAG_DEACTIVATE = 2,
SCAN_CONFIG_FLAG_FORBID_CHUB_REQS = 4,
SCAN_CONFIG_FLAG_ALLOW_CHUB_REQS = 8,
SCAN_CONFIG_FLAG_SET_TX_CHAINS = 256,
SCAN_CONFIG_FLAG_SET_RX_CHAINS = 512,
SCAN_CONFIG_FLAG_SET_AUX_STA_ID = 1024,
SCAN_CONFIG_FLAG_SET_ALL_TIMES = 2048,
SCAN_CONFIG_FLAG_SET_EFFECTIVE_TIMES = 4096,
SCAN_CONFIG_FLAG_SET_CHANNEL_FLAGS = 8192,
SCAN_CONFIG_FLAG_SET_LEGACY_RATES = 16384,
SCAN_CONFIG_FLAG_SET_MAC_ADDR = 32768,
SCAN_CONFIG_FLAG_SET_FRAGMENTED = 65536,
SCAN_CONFIG_FLAG_CLEAR_FRAGMENTED = 131072,
SCAN_CONFIG_FLAG_SET_CAM_MODE = 262144,
SCAN_CONFIG_FLAG_CLEAR_CAM_MODE = 524288,
SCAN_CONFIG_FLAG_SET_PROMISC_MODE = 1048576,
SCAN_CONFIG_FLAG_CLEAR_PROMISC_MODE = 2097152,
SCAN_CONFIG_FLAG_SET_LMAC2_FRAGMENTED = 4194304,
SCAN_CONFIG_FLAG_CLEAR_LMAC2_FRAGMENTED = 8388608,
};
enum iwl_channel_flags {
IWL_CHANNEL_FLAG_EBS = 1,
IWL_CHANNEL_FLAG_ACCURATE_EBS = 2,
IWL_CHANNEL_FLAG_EBS_ADD = 4,
IWL_CHANNEL_FLAG_PRE_SCAN_PASSIVE2ACTIVE = 8,
};
enum iwl_scan_channel_flags {
IWL_SCAN_CHANNEL_FLAG_EBS = 1,
IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE = 2,
IWL_SCAN_CHANNEL_FLAG_CACHE_ADD = 4,
IWL_SCAN_CHANNEL_FLAG_EBS_FRAG = 8,
IWL_SCAN_CHANNEL_FLAG_FORCE_EBS = 16,
IWL_SCAN_CHANNEL_FLAG_ENABLE_CHAN_ORDER = 32,
IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER = 64,
};
enum iwl_scan_priority_ext {
IWL_SCAN_PRIORITY_EXT_0_LOWEST = 0,
IWL_SCAN_PRIORITY_EXT_1 = 1,
IWL_SCAN_PRIORITY_EXT_2 = 2,
IWL_SCAN_PRIORITY_EXT_3 = 3,
IWL_SCAN_PRIORITY_EXT_4 = 4,
IWL_SCAN_PRIORITY_EXT_5 = 5,
IWL_SCAN_PRIORITY_EXT_6 = 6,
IWL_SCAN_PRIORITY_EXT_7_HIGHEST = 7,
};
enum iwl_mvm_lmac_scan_flags {
IWL_MVM_LMAC_SCAN_FLAG_PASS_ALL = 1,
IWL_MVM_LMAC_SCAN_FLAG_PASSIVE = 2,
IWL_MVM_LMAC_SCAN_FLAG_PRE_CONNECTION = 4,
IWL_MVM_LMAC_SCAN_FLAG_ITER_COMPLETE = 8,
IWL_MVM_LMAC_SCAN_FLAG_MULTIPLE_SSIDS = 16,
IWL_MVM_LMAC_SCAN_FLAG_FRAGMENTED = 32,
IWL_MVM_LMAC_SCAN_FLAGS_RRM_ENABLED = 64,
IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL = 128,
IWL_MVM_LMAC_SCAN_FLAG_MATCH = 512,
};
enum {
IWL_RATE_6M_PLCP___2 = 13,
IWL_RATE_9M_PLCP___2 = 15,
IWL_RATE_12M_PLCP___2 = 5,
IWL_RATE_18M_PLCP___2 = 7,
IWL_RATE_24M_PLCP___2 = 9,
IWL_RATE_36M_PLCP___2 = 11,
IWL_RATE_48M_PLCP___2 = 1,
IWL_RATE_54M_PLCP___2 = 3,
IWL_RATE_1M_PLCP___2 = 10,
IWL_RATE_2M_PLCP___2 = 20,
IWL_RATE_5M_PLCP___2 = 55,
IWL_RATE_11M_PLCP___2 = 110,
IWL_RATE_INVM_PLCP = -1,
};
enum iwl_scan_channel_flags_lmac {
IWL_UNIFIED_SCAN_CHANNEL_FULL = 134217728,
IWL_UNIFIED_SCAN_CHANNEL_PARTIAL = 268435456,
};
enum iwl_umac_scan_general_flags_v2 {
IWL_UMAC_SCAN_GEN_FLAGS_V2_PERIODIC = 1,
IWL_UMAC_SCAN_GEN_FLAGS_V2_PASS_ALL = 2,
IWL_UMAC_SCAN_GEN_FLAGS_V2_NTFY_ITER_COMPLETE = 4,
IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC1 = 8,
IWL_UMAC_SCAN_GEN_FLAGS_V2_FRAGMENTED_LMAC2 = 16,
IWL_UMAC_SCAN_GEN_FLAGS_V2_MATCH = 32,
IWL_UMAC_SCAN_GEN_FLAGS_V2_USE_ALL_RX_CHAINS = 64,
IWL_UMAC_SCAN_GEN_FLAGS_V2_ADAPTIVE_DWELL = 128,
IWL_UMAC_SCAN_GEN_FLAGS_V2_PREEMPTIVE = 256,
IWL_UMAC_SCAN_GEN_FLAGS_V2_NTF_START = 512,
IWL_UMAC_SCAN_GEN_FLAGS_V2_MULTI_SSID = 1024,
IWL_UMAC_SCAN_GEN_FLAGS_V2_FORCE_PASSIVE = 2048,
IWL_UMAC_SCAN_GEN_FLAGS_V2_TRIGGER_UHB_SCAN = 4096,
IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN = 8192,
IWL_UMAC_SCAN_GEN_FLAGS_V2_6GHZ_PASSIVE_SCAN_FILTER_IN = 16384,
IWL_UMAC_SCAN_GEN_FLAGS_V2_OCE = 32768,
};
enum iwl_umac_scan_general_params_flags2 {
IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_LB = 1,
IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_RESPECT_P2P_GO_HB = 2,
IWL_UMAC_SCAN_GEN_PARAMS_FLAGS2_DONT_TOGGLE_ANT = 4,
};
enum iwl_uhb_chan_cfg_flags {
IWL_UHB_CHAN_CFG_FLAG_UNSOLICITED_PROBE_RES = 16777216,
IWL_UHB_CHAN_CFG_FLAG_PSC_CHAN_NO_LISTEN = 33554432,
IWL_UHB_CHAN_CFG_FLAG_FORCE_PASSIVE = 67108864,
};
enum iwl_umac_scan_general_flags {
IWL_UMAC_SCAN_GEN_FLAGS_PERIODIC = 1,
IWL_UMAC_SCAN_GEN_FLAGS_OVER_BT = 2,
IWL_UMAC_SCAN_GEN_FLAGS_PASS_ALL = 4,
IWL_UMAC_SCAN_GEN_FLAGS_PASSIVE = 8,
IWL_UMAC_SCAN_GEN_FLAGS_PRE_CONNECT = 16,
IWL_UMAC_SCAN_GEN_FLAGS_ITER_COMPLETE = 32,
IWL_UMAC_SCAN_GEN_FLAGS_MULTIPLE_SSID = 64,
IWL_UMAC_SCAN_GEN_FLAGS_FRAGMENTED = 128,
IWL_UMAC_SCAN_GEN_FLAGS_RRM_ENABLED = 256,
IWL_UMAC_SCAN_GEN_FLAGS_MATCH = 512,
IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL = 1024,
IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_DEFER_SUPP = 1024,
IWL_UMAC_SCAN_GEN_FLAGS_LMAC2_FRAGMENTED = 2048,
IWL_UMAC_SCAN_GEN_FLAGS_ADAPTIVE_DWELL = 8192,
IWL_UMAC_SCAN_GEN_FLAGS_MAX_CHNL_TIME = 16384,
IWL_UMAC_SCAN_GEN_FLAGS_PROB_REQ_HIGH_TX_RATE = 32768,
};
enum iwl_umac_scan_general_flags2 {
IWL_UMAC_SCAN_GEN_FLAGS2_NOTIF_PER_CHNL = 1,
IWL_UMAC_SCAN_GEN_FLAGS2_ALLOW_CHNL_REORDER = 2,
};
enum iwl_umac_scan_flags {
IWL_UMAC_SCAN_FLAG_PREEMPTIVE = 1,
IWL_UMAC_SCAN_FLAG_START_NOTIF = 2,
};
enum scan_framework_client {
SCAN_CLIENT_SCHED_SCAN = 1,
SCAN_CLIENT_NETDETECT = 2,
SCAN_CLIENT_ASSET_TRACKING = 4,
};
enum iwl_scan_offload_auth_alg {
IWL_AUTH_ALGO_UNSUPPORTED = 0,
IWL_AUTH_ALGO_NONE = 1,
IWL_AUTH_ALGO_PSK = 2,
IWL_AUTH_ALGO_8021X = 4,
IWL_AUTH_ALGO_SAE = 8,
IWL_AUTH_ALGO_8021X_SHA384 = 16,
IWL_AUTH_ALGO_OWE = 32,
};
enum iwl_scan_offload_network_type {
IWL_NETWORK_TYPE_BSS = 1,
IWL_NETWORK_TYPE_IBSS = 2,
IWL_NETWORK_TYPE_ANY = 3,
};
enum iwl_scan_offload_band_selection {
IWL_SCAN_OFFLOAD_SELECT_2_4 = 4,
IWL_SCAN_OFFLOAD_SELECT_5_2 = 8,
IWL_SCAN_OFFLOAD_SELECT_ANY = 12,
};
struct iwl_scan_umac_schedule {
__le16 interval;
u8 iter_count;
u8 reserved;
};
struct iwl_scan_req_umac_tail_v2 {
struct iwl_scan_umac_schedule schedule[2];
__le16 delay;
__le16 reserved;
struct iwl_scan_probe_req preq;
struct iwl_ssid_ie direct_scan[20];
};
struct iwl_scan_probe_req_v1 {
struct iwl_scan_probe_segment mac_header;
struct iwl_scan_probe_segment band_data[2];
struct iwl_scan_probe_segment common_data;
u8 buf[512];
};
struct iwl_scan_req_umac_tail_v1 {
struct iwl_scan_umac_schedule schedule[2];
__le16 delay;
__le16 reserved;
struct iwl_scan_probe_req_v1 preq;
struct iwl_ssid_ie direct_scan[20];
};
struct iwl_scan_offload_profile {
u8 ssid_index;
u8 unicast_cipher;
u8 auth_alg;
u8 network_type;
u8 band_selection;
u8 client_bitmap;
u8 reserved[2];
};
struct iwl_scan_offload_profile_cfg_data {
u8 blocklist_len;
u8 num_profiles;
u8 match_notify;
u8 pass_match;
u8 active_clients;
u8 any_beacon_notify;
u8 reserved[2];
};
struct iwl_scan_offload_profile_cfg {
struct iwl_scan_offload_profile profiles[8];
struct iwl_scan_offload_profile_cfg_data data;
};
struct iwl_mvm_scan_iter_data {
u32 global_cnt;
struct ieee80211_vif *current_vif;
bool is_dcm_with_p2p_go;
};
struct iwl_scan_dwell {
u8 active;
u8 passive;
u8 fragmented;
u8 extended;
};
struct iwl_scan_config_v2 {
__le32 flags;
__le32 tx_chains;
__le32 rx_chains;
__le32 legacy_rates;
__le32 out_of_channel_time[2];
__le32 suspend_time[2];
struct iwl_scan_dwell dwell;
u8 mac_addr[6];
u8 bcast_sta_id;
u8 channel_flags;
u8 channel_array[0];
};
struct iwl_scan_config_v1 {
__le32 flags;
__le32 tx_chains;
__le32 rx_chains;
__le32 legacy_rates;
__le32 out_of_channel_time;
__le32 suspend_time;
struct iwl_scan_dwell dwell;
u8 mac_addr[6];
u8 bcast_sta_id;
u8 channel_flags;
u8 channel_array[0];
};
struct iwl_mvm_scan_respect_p2p_go_iter_data {
struct ieee80211_vif *current_vif;
bool p2p_go;
enum nl80211_band band;
};
struct iwl_scan_req_tx_cmd {
__le32 tx_flags;
__le32 rate_n_flags;
u8 sta_id;
u8 reserved[3];
};
struct iwl_scan_schedule_lmac {
__le16 delay;
u8 iterations;
u8 full_scan_mul;
};
struct iwl_scan_channel_opt {
__le16 flags;
__le16 non_ebs_ratio;
};
struct iwl_scan_req_lmac {
__le32 reserved1;
u8 n_channels;
u8 active_dwell;
u8 passive_dwell;
u8 fragmented_dwell;
u8 extended_dwell;
u8 reserved2;
__le16 rx_chain_select;
__le32 scan_flags;
__le32 max_out_time;
__le32 suspend_time;
__le32 flags;
__le32 filter_flags;
struct iwl_scan_req_tx_cmd tx_cmd[2];
struct iwl_ssid_ie direct_scan[20];
__le32 scan_prio;
__le32 iter_num;
__le32 delay;
struct iwl_scan_schedule_lmac schedule[2];
struct iwl_scan_channel_opt channel_opt[2];
u8 data[0];
};
struct iwl_scan_umac_chan_param {
u8 flags;
u8 count;
__le16 reserved;
};
struct iwl_scan_req_umac {
__le32 flags;
__le32 uid;
__le32 ooc_priority;
__le16 general_flags;
u8 reserved;
u8 scan_start_mac_id;
union {
struct {
u8 extended_dwell;
u8 active_dwell;
u8 passive_dwell;
u8 fragmented_dwell;
__le32 max_out_time;
__le32 suspend_time;
__le32 scan_priority;
struct iwl_scan_umac_chan_param channel;
u8 data[0];
} v1;
struct {
u8 extended_dwell;
u8 active_dwell;
u8 passive_dwell;
u8 fragmented_dwell;
__le32 max_out_time[2];
__le32 suspend_time[2];
__le32 scan_priority;
struct iwl_scan_umac_chan_param channel;
u8 data[0];
} v6;
struct {
u8 active_dwell;
u8 passive_dwell;
u8 fragmented_dwell;
u8 adwell_default_n_aps;
u8 adwell_default_n_aps_social;
u8 reserved3;
__le16 adwell_max_budget;
__le32 max_out_time[2];
__le32 suspend_time[2];
__le32 scan_priority;
struct iwl_scan_umac_chan_param channel;
u8 data[0];
} v7;
struct {
u8 active_dwell[2];
u8 reserved2;
u8 adwell_default_n_aps;
u8 adwell_default_n_aps_social;
u8 general_flags2;
__le16 adwell_max_budget;
__le32 max_out_time[2];
__le32 suspend_time[2];
__le32 scan_priority;
u8 passive_dwell[2];
u8 num_of_fragments[2];
struct iwl_scan_umac_chan_param channel;
u8 data[0];
} v8;
struct {
u8 active_dwell[2];
u8 adwell_default_hb_n_aps;
u8 adwell_default_lb_n_aps;
u8 adwell_default_n_aps_social;
u8 general_flags2;
__le16 adwell_max_budget;
__le32 max_out_time[2];
__le32 suspend_time[2];
__le32 scan_priority;
u8 passive_dwell[2];
u8 num_of_fragments[2];
struct iwl_scan_umac_chan_param channel;
u8 data[0];
} v9;
};
};
struct iwl_scan_channel_cfg_lmac {
__le32 flags;
__le16 channel_num;
__le16 iter_count;
__le32 iter_interval;
};
struct iwl_scan_channel_cfg_umac {
__le32 flags;
union {
struct {
u8 channel_num;
u8 iter_count;
__le16 iter_interval;
} v1;
struct {
u8 channel_num;
u8 band;
u8 iter_count;
u8 iter_interval;
} v2;
struct {
u8 channel_num;
u8 psd_20;
u8 iter_count;
u8 iter_interval;
} v5;
};
};
struct iwl_scan_offload_blocklist {
u8 ssid[6];
u8 reported_rssi;
u8 client_bitmap;
};
struct iwl_scan_offload_profile_cfg_v1 {
struct iwl_scan_offload_profile profiles[11];
struct iwl_scan_offload_profile_cfg_data data;
};
struct iwl_umac_scan_abort {
__le32 uid;
__le32 flags;
};
struct iwl_scan_general_params_v11 {
__le16 flags;
u8 reserved;
u8 scan_start_mac_or_link_id;
u8 active_dwell[2];
u8 adwell_default_2g;
u8 adwell_default_5g;
u8 adwell_default_social_chn;
u8 flags2;
__le16 adwell_max_budget;
__le32 max_out_of_time[2];
__le32 suspend_time[2];
__le32 scan_priority;
u8 passive_dwell[2];
u8 num_of_fragments[2];
};
struct iwl_scan_probe_params_v3 {
struct iwl_scan_probe_req preq;
u8 ssid_num;
u8 short_ssid_num;
u8 bssid_num;
u8 reserved;
struct iwl_ssid_ie direct_scan[20];
__le32 short_ssid[8];
u8 bssid_array[96];
};
struct iwl_scan_channel_params_v4 {
u8 flags;
u8 count;
u8 num_of_aps_override;
u8 reserved;
struct iwl_scan_channel_cfg_umac channel_config[67];
u8 adwell_ch_override_bitmap[16];
};
struct iwl_scan_probe_params_v4 {
struct iwl_scan_probe_req preq;
u8 short_ssid_num;
u8 bssid_num;
__le16 reserved;
struct iwl_ssid_ie direct_scan[20];
__le32 short_ssid[8];
u8 bssid_array[96];
};
struct iwl_scan_channel_params_v7 {
u8 flags;
u8 count;
u8 n_aps_override[2];
struct iwl_scan_channel_cfg_umac channel_config[67];
};
struct iwl_scan_results_notif {
u8 channel;
u8 band;
u8 probe_status;
u8 num_probe_not_sent;
__le32 duration;
};
struct iwl_lmac_scan_complete_notif {
u8 scanned_channels;
u8 status;
u8 bt_status;
u8 last_channel;
__le32 tsf_low;
__le32 tsf_high;
struct iwl_scan_results_notif results[0];
};
struct iwl_periodic_scan_complete {
u8 last_schedule_line;
u8 last_schedule_iteration;
u8 status;
u8 ebs_status;
__le32 time_after_last_iter;
__le32 reserved;
};
struct iwl_scan_config {
u8 enable_cam_mode;
u8 enable_promiscouos_mode;
u8 bcast_sta_id;
u8 reserved;
__le32 tx_chains;
__le32 rx_chains;
};
struct iwl_umac_scan_complete {
__le32 uid;
u8 last_schedule;
u8 last_iter;
u8 status;
u8 ebs_status;
__le32 time_from_last_iter;
__le32 reserved;
};
struct iwl_umac_scan_iter_complete_notif {
__le32 uid;
u8 scanned_channels;
u8 status;
u8 bt_status;
u8 last_channel;
__le64 start_tsf;
struct iwl_scan_results_notif results[0];
};
struct iwl_scan_periodic_parms_v1 {
struct iwl_scan_umac_schedule schedule[2];
__le16 delay;
__le16 reserved;
};
struct iwl_scan_req_params_v12 {
struct iwl_scan_general_params_v11 general_params;
struct iwl_scan_channel_params_v4 channel_params;
struct iwl_scan_periodic_parms_v1 periodic_params;
struct iwl_scan_probe_params_v3 probe_params;
};
struct iwl_scan_req_umac_v12 {
__le32 uid;
__le32 ooc_priority;
struct iwl_scan_req_params_v12 scan_params;
};
struct iwl_scan_req_params_v17 {
struct iwl_scan_general_params_v11 general_params;
struct iwl_scan_channel_params_v7 channel_params;
struct iwl_scan_periodic_parms_v1 periodic_params;
struct iwl_scan_probe_params_v4 probe_params;
};
struct iwl_scan_req_umac_v17 {
__le32 uid;
__le32 ooc_priority;
struct iwl_scan_req_params_v17 scan_params;
};
struct md_setup_args {
int minor;
int partitioned;
int level;
int chunk;
char *device_names;
};
struct mdu_array_info_s {
int major_version;
int minor_version;
int patch_version;
unsigned int ctime;
int level;
int size;
int nr_disks;
int raid_disks;
int md_minor;
int not_persistent;
unsigned int utime;
int state;
int active_disks;
int working_disks;
int failed_disks;
int spare_disks;
int layout;
int chunk_size;
};
struct mdu_disk_info_s {
int number;
int major;
int minor;
int raid_disk;
int state;
};
struct pppoe_tag {
__be16 tag_type;
__be16 tag_len;
char tag_data[0];
};
struct pppoe_hdr {
__u8 type: 4;
__u8 ver: 4;
__u8 code;
__be16 sid;
__be16 length;
struct pppoe_tag tag[0];
};
struct flow_dissector_key {
enum flow_dissector_key_id key_id;
size_t offset;
};
enum {
TCA_FLOWER_KEY_CT_FLAGS_NEW = 1,
TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2,
TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4,
TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8,
TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16,
TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32,
__TCA_FLOWER_KEY_CT_FLAGS_MAX = 33,
};
enum flow_dissect_ret {
FLOW_DISSECT_RET_OUT_GOOD = 0,
FLOW_DISSECT_RET_OUT_BAD = 1,
FLOW_DISSECT_RET_PROTO_AGAIN = 2,
FLOW_DISSECT_RET_IPPROTO_AGAIN = 3,
FLOW_DISSECT_RET_CONTINUE = 4,
};
enum bpf_ret_code {
BPF_OK = 0,
BPF_DROP = 2,
BPF_REDIRECT = 7,
BPF_LWT_REROUTE = 128,
BPF_FLOW_DISSECTOR_CONTINUE = 129,
};
enum batadv_packettype {
BATADV_IV_OGM = 0,
BATADV_BCAST = 1,
BATADV_CODED = 2,
BATADV_ELP = 3,
BATADV_OGM2 = 4,
BATADV_MCAST = 5,
BATADV_UNICAST = 64,
BATADV_UNICAST_FRAG = 65,
BATADV_UNICAST_4ADDR = 66,
BATADV_ICMP = 67,
BATADV_UNICAST_TVLV = 68,
};
struct _flow_keys_digest_data {
__be16 n_proto;
u8 ip_proto;
u8 padding;
__be32 ports;
__be32 src;
__be32 dst;
};
struct batadv_unicast_packet {
__u8 packet_type;
__u8 version;
__u8 ttl;
__u8 ttvn;
__u8 dest[6];
};
struct tipc_basic_hdr {
__be32 w[4];
};
struct flow_dissector_key_cfm {
u8 mdl_ver;
u8 opcode;
};
struct ip_esp_hdr {
__be32 spi;
__be32 seq_no;
__u8 enc_data[0];
};
struct ip_auth_hdr {
__u8 nexthdr;
__u8 hdrlen;
__be16 reserved;
__be32 spi;
__be32 seq_no;
__u8 auth_data[0];
};
struct nf_conn_labels {
unsigned long bits[2];
};
struct flow_dissector_key_hash {
u32 hash;
};
struct hsr_tag {
__be16 path_and_LSDU_size;
__be16 sequence_nr;
__be16 encap_proto;
};
struct flow_dissector_key_num_of_vlans {
u8 num_of_vlans;
};
struct flow_keys_digest {
u8 data[16];
};
enum nfnl_batch_attributes {
NFNL_BATCH_UNSPEC = 0,
NFNL_BATCH_GENID = 1,
__NFNL_BATCH_MAX = 2,
};
enum {
NFNL_BATCH_FAILURE = 1,
NFNL_BATCH_DONE = 2,
NFNL_BATCH_REPLAY = 4,
};
struct nfnl_err {
struct list_head head;
struct nlmsghdr *nlh;
int err;
struct netlink_ext_ack extack;
};
struct nfnl_net {
struct sock *nfnl;
};
enum tcp_ca_ack_event_flags {
CA_ACK_SLOWPATH = 1,
CA_ACK_WIN_UPDATE = 2,
CA_ACK_ECE = 4,
};
enum tcp_queue {
TCP_FRAG_IN_WRITE_QUEUE = 0,
TCP_FRAG_IN_RTX_QUEUE = 1,
};
struct tcp_sacktag_state {
u64 first_sackt;
u64 last_sackt;
u32 reord;
u32 sack_delivered;
int flag;
unsigned int mss_now;
struct rate_sample *rate;
};
struct ieee80211_elems_parse {
struct ieee802_11_elems elems;
const struct element *ml_basic_elem;
const struct element *ml_reconf_elem;
size_t scratch_len;
u8 *scratch_pos;
u8 scratch[0];
};
typedef void (*btf_trace_drv_return_void)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_return_int)(void *, struct ieee80211_local *, int);
typedef void (*btf_trace_drv_return_bool)(void *, struct ieee80211_local *, bool);
typedef void (*btf_trace_drv_return_u32)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_return_u64)(void *, struct ieee80211_local *, u64);
typedef void (*btf_trace_drv_start)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_get_et_strings)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_get_et_sset_count)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_get_et_stats)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_suspend)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_resume)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_set_wakeup)(void *, struct ieee80211_local *, bool);
typedef void (*btf_trace_drv_stop)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_add_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_change_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum nl80211_iftype, bool);
typedef void (*btf_trace_drv_remove_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_config)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_vif_cfg_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64);
typedef void (*btf_trace_drv_link_info_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, u64);
typedef void (*btf_trace_drv_prepare_multicast)(void *, struct ieee80211_local *, int);
typedef void (*btf_trace_drv_configure_filter)(void *, struct ieee80211_local *, unsigned int, unsigned int *, u64);
typedef void (*btf_trace_drv_config_iface_filter)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, unsigned int);
typedef void (*btf_trace_drv_set_tim)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool);
typedef void (*btf_trace_drv_set_key)(void *, struct ieee80211_local *, enum set_key_cmd, struct ieee80211_sub_if_data *, struct ieee80211_sta *, struct ieee80211_key_conf *);
typedef void (*btf_trace_drv_update_tkip_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32);
typedef void (*btf_trace_drv_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_cancel_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_sched_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_sched_scan_stop)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_sw_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const u8 *);
typedef void (*btf_trace_drv_sw_scan_complete)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_get_stats)(void *, struct ieee80211_local *, struct ieee80211_low_level_stats *, int);
typedef void (*btf_trace_drv_get_key_seq)(void *, struct ieee80211_local *, struct ieee80211_key_conf *);
typedef void (*btf_trace_drv_set_frag_threshold)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_set_rts_threshold)(void *, struct ieee80211_local *, u32);
typedef void (*btf_trace_drv_set_coverage_class)(void *, struct ieee80211_local *, s16);
typedef void (*btf_trace_drv_sta_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum sta_notify_cmd, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_state)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state);
typedef void (*btf_trace_drv_sta_set_txpwr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_rc_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u32);
typedef void (*btf_trace_drv_sta_statistics)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_add)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_pre_rcu_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sync_rx_queues)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_sta_rate_tbl_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_conf_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, u16, const struct ieee80211_tx_queue_params *);
typedef void (*btf_trace_drv_get_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_set_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64);
typedef void (*btf_trace_drv_offset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, s64);
typedef void (*btf_trace_drv_reset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_tx_last_beacon)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_ampdu_action)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_ampdu_params *);
typedef void (*btf_trace_drv_get_survey)(void *, struct ieee80211_local *, int, struct survey_info *);
typedef void (*btf_trace_drv_flush)(void *, struct ieee80211_local *, u32, bool);
typedef void (*btf_trace_drv_flush_sta)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
typedef void (*btf_trace_drv_set_antenna)(void *, struct ieee80211_local *, u32, u32, int);
typedef void (*btf_trace_drv_get_antenna)(void *, struct ieee80211_local *, u32, u32, int);
typedef void (*btf_trace_drv_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel *, unsigned int, enum ieee80211_roc_type);
typedef void (*btf_trace_drv_cancel_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_set_ringparam)(void *, struct ieee80211_local *, u32, u32);
typedef void (*btf_trace_drv_get_ringparam)(void *, struct ieee80211_local *, u32 *, u32 *, u32 *, u32 *);
typedef void (*btf_trace_drv_tx_frames_pending)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_offchannel_tx_cancel_wait)(void *, struct ieee80211_local *);
typedef void (*btf_trace_drv_set_bitrate_mask)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_bitrate_mask *);
typedef void (*btf_trace_drv_set_rekey_data)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_gtk_rekey_data *);
typedef void (*btf_trace_drv_event_callback)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct ieee80211_event *);
typedef void (*btf_trace_drv_release_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
typedef void (*btf_trace_drv_allow_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool);
typedef void (*btf_trace_drv_mgd_prepare_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool);
typedef void (*btf_trace_drv_mgd_complete_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool);
typedef void (*btf_trace_drv_mgd_protect_tdls_discover)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_add_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *);
typedef void (*btf_trace_drv_remove_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *);
typedef void (*btf_trace_drv_change_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *, u32);
typedef void (*btf_trace_drv_switch_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode);
typedef void (*btf_trace_drv_assign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *);
typedef void (*btf_trace_drv_unassign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *);
typedef void (*btf_trace_drv_start_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
typedef void (*btf_trace_drv_stop_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
typedef void (*btf_trace_drv_reconfig_complete)(void *, struct ieee80211_local *, enum ieee80211_reconfig_type);
typedef void (*btf_trace_drv_ipv6_addr_change)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_join_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *);
typedef void (*btf_trace_drv_leave_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_get_expected_throughput)(void *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_start_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *);
typedef void (*btf_trace_drv_stop_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_nan_change_conf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *, u32);
typedef void (*btf_trace_drv_add_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_nan_func *);
typedef void (*btf_trace_drv_del_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8);
typedef void (*btf_trace_drv_start_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_abort_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_set_default_unicast_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int);
typedef void (*btf_trace_drv_channel_switch_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_chan_def *);
typedef void (*btf_trace_drv_pre_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
typedef void (*btf_trace_drv_post_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_abort_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_channel_switch_rx_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *);
typedef void (*btf_trace_drv_get_txpower)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int, int);
typedef void (*btf_trace_drv_tdls_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *);
typedef void (*btf_trace_drv_tdls_cancel_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_tdls_recv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_tdls_ch_sw_params *);
typedef void (*btf_trace_drv_wake_tx_queue)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct txq_info *);
typedef void (*btf_trace_drv_get_ftm_responder_stats)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_ftm_responder_stats *);
typedef void (*btf_trace_drv_update_vif_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_drv_sta_set_4addr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool);
typedef void (*btf_trace_drv_sta_set_decap_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool);
typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *);
typedef void (*btf_trace_drv_twt_teardown_request)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8);
typedef void (*btf_trace_drv_net_fill_forward_path)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *);
typedef void (*btf_trace_drv_net_setup_tc)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8);
typedef void (*btf_trace_drv_can_activate_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16);
typedef void (*btf_trace_drv_change_vif_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16);
typedef void (*btf_trace_drv_change_sta_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u16, u16);
typedef void (*btf_trace_api_start_tx_ba_session)(void *, struct ieee80211_sta *, u16);
typedef void (*btf_trace_api_start_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16);
typedef void (*btf_trace_api_stop_tx_ba_session)(void *, struct ieee80211_sta *, u16);
typedef void (*btf_trace_api_stop_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16);
typedef void (*btf_trace_api_restart_hw)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_beacon_loss)(void *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_api_connection_loss)(void *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_api_disconnect)(void *, struct ieee80211_sub_if_data *, bool);
typedef void (*btf_trace_api_cqm_rssi_notify)(void *, struct ieee80211_sub_if_data *, enum nl80211_cqm_rssi_threshold_event, s32);
typedef void (*btf_trace_api_cqm_beacon_loss_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *);
typedef void (*btf_trace_api_scan_completed)(void *, struct ieee80211_local *, bool);
typedef void (*btf_trace_api_sched_scan_results)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_sched_scan_stopped)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_sta_block_awake)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool);
typedef void (*btf_trace_api_chswitch_done)(void *, struct ieee80211_sub_if_data *, bool, unsigned int);
typedef void (*btf_trace_api_ready_on_channel)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_remain_on_channel_expired)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_gtk_rekey_notify)(void *, struct ieee80211_sub_if_data *, const u8 *, const u8 *);
typedef void (*btf_trace_api_enable_rssi_reports)(void *, struct ieee80211_sub_if_data *, int, int);
typedef void (*btf_trace_api_eosp)(void *, struct ieee80211_local *, struct ieee80211_sta *);
typedef void (*btf_trace_api_send_eosp_nullfunc)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8);
typedef void (*btf_trace_api_sta_set_buffered)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8, bool);
typedef void (*btf_trace_api_radar_detected)(void *, struct ieee80211_local *);
typedef void (*btf_trace_api_request_smps)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_link_data *, enum ieee80211_smps_mode);
typedef void (*btf_trace_wake_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason);
typedef void (*btf_trace_stop_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason);
typedef void (*btf_trace_drv_can_neg_ttlm)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_neg_ttlm *);
typedef void (*btf_trace_drv_neg_ttlm_res)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum ieee80211_neg_ttlm_res, struct ieee80211_neg_ttlm *);
struct trace_event_raw_local_only_evt {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_drv_return_int {
struct trace_entry ent;
char wiphy_name[32];
int ret;
char __data[0];
};
struct trace_event_raw_drv_return_bool {
struct trace_entry ent;
char wiphy_name[32];
bool ret;
char __data[0];
};
struct trace_event_raw_drv_return_u32 {
struct trace_entry ent;
char wiphy_name[32];
u32 ret;
char __data[0];
};
struct trace_event_raw_drv_return_u64 {
struct trace_entry ent;
char wiphy_name[32];
u64 ret;
char __data[0];
};
struct trace_event_raw_local_u32_evt {
struct trace_entry ent;
char wiphy_name[32];
u32 value;
char __data[0];
};
struct trace_event_raw_drv_set_wakeup {
struct trace_entry ent;
char wiphy_name[32];
bool enabled;
char __data[0];
};
struct trace_event_raw_local_sdata_addr_evt {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char addr[6];
char __data[0];
};
struct trace_event_raw_drv_change_interface {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 new_type;
bool new_p2p;
char __data[0];
};
struct trace_event_raw_drv_config {
struct trace_entry ent;
char wiphy_name[32];
u32 changed;
u32 flags;
int power_level;
int dynamic_ps_timeout;
u16 listen_interval;
u8 long_frame_max_tx_count;
u8 short_frame_max_tx_count;
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
int smps;
char __data[0];
};
struct trace_event_raw_drv_vif_cfg_changed {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u64 changed;
bool assoc;
bool ibss_joined;
bool ibss_creator;
u16 aid;
u32 __data_loc_arp_addr_list;
int arp_addr_cnt;
u32 __data_loc_ssid;
int s1g;
bool idle;
bool ps;
char __data[0];
};
struct trace_event_raw_drv_link_info_changed {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u64 changed;
int link_id;
bool cts;
bool shortpre;
bool shortslot;
bool enable_beacon;
u8 dtimper;
u16 bcnint;
u16 assoc_cap;
u64 sync_tsf;
u32 sync_device_ts;
u8 sync_dtim_count;
u32 basic_rates;
int mcast_rate[6];
u16 ht_operation_mode;
s32 cqm_rssi_thold;
s32 cqm_rssi_hyst;
u32 channel_width;
u32 channel_cfreq1;
u32 channel_cfreq1_offset;
bool qos;
bool hidden_ssid;
int txpower;
u8 p2p_oppps_ctwindow;
char __data[0];
};
struct trace_event_raw_drv_prepare_multicast {
struct trace_entry ent;
char wiphy_name[32];
int mc_count;
char __data[0];
};
struct trace_event_raw_drv_configure_filter {
struct trace_entry ent;
char wiphy_name[32];
unsigned int changed;
unsigned int total;
u64 multicast;
char __data[0];
};
struct trace_event_raw_drv_config_iface_filter {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
unsigned int filter_flags;
unsigned int changed_flags;
char __data[0];
};
struct trace_event_raw_drv_set_tim {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
bool set;
char __data[0];
};
struct trace_event_raw_drv_set_key {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u32 cmd;
u32 cipher;
u8 hw_key_idx;
u8 flags;
s8 keyidx;
char __data[0];
};
struct trace_event_raw_drv_update_tkip_key {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u32 iv32;
char __data[0];
};
struct trace_event_raw_local_sdata_evt {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char __data[0];
};
struct trace_event_raw_drv_sw_scan_start {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char mac_addr[6];
char __data[0];
};
struct trace_event_raw_drv_get_stats {
struct trace_entry ent;
char wiphy_name[32];
int ret;
unsigned int ackfail;
unsigned int rtsfail;
unsigned int fcserr;
unsigned int rtssucc;
char __data[0];
};
struct trace_event_raw_drv_get_key_seq {
struct trace_entry ent;
char wiphy_name[32];
u32 cipher;
u8 hw_key_idx;
u8 flags;
s8 keyidx;
char __data[0];
};
struct trace_event_raw_drv_set_coverage_class {
struct trace_entry ent;
char wiphy_name[32];
s16 value;
char __data[0];
};
struct trace_event_raw_drv_sta_notify {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u32 cmd;
char __data[0];
};
struct trace_event_raw_drv_sta_state {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u32 old_state;
u32 new_state;
char __data[0];
};
struct trace_event_raw_drv_sta_set_txpwr {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
s16 txpwr;
u8 type;
char __data[0];
};
struct trace_event_raw_drv_sta_rc_update {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u32 changed;
char __data[0];
};
struct trace_event_raw_sta_event {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
char __data[0];
};
struct trace_event_raw_drv_conf_tx {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
unsigned int link_id;
u16 ac;
u16 txop;
u16 cw_min;
u16 cw_max;
u8 aifs;
bool uapsd;
char __data[0];
};
struct trace_event_raw_drv_set_tsf {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u64 tsf;
char __data[0];
};
struct trace_event_raw_drv_offset_tsf {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
s64 tsf_offset;
char __data[0];
};
struct trace_event_raw_drv_ampdu_action {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
enum ieee80211_ampdu_mlme_action ieee80211_ampdu_mlme_action;
char sta_addr[6];
u16 tid;
u16 ssn;
u16 buf_size;
bool amsdu;
u16 timeout;
u16 action;
char __data[0];
};
struct trace_event_raw_drv_get_survey {
struct trace_entry ent;
char wiphy_name[32];
int idx;
char __data[0];
};
struct trace_event_raw_drv_flush {
struct trace_entry ent;
char wiphy_name[32];
bool drop;
u32 queues;
char __data[0];
};
struct trace_event_raw_chanswitch_evt {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u64 timestamp;
u32 device_timestamp;
bool block_tx;
u8 count;
u8 link_id;
char __data[0];
};
struct trace_event_raw_drv_set_antenna {
struct trace_entry ent;
char wiphy_name[32];
u32 tx_ant;
u32 rx_ant;
int ret;
char __data[0];
};
struct trace_event_raw_drv_get_antenna {
struct trace_entry ent;
char wiphy_name[32];
u32 tx_ant;
u32 rx_ant;
int ret;
char __data[0];
};
struct trace_event_raw_drv_remain_on_channel {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int center_freq;
int freq_offset;
unsigned int duration;
u32 type;
char __data[0];
};
struct trace_event_raw_drv_set_ringparam {
struct trace_entry ent;
char wiphy_name[32];
u32 tx;
u32 rx;
char __data[0];
};
struct trace_event_raw_drv_get_ringparam {
struct trace_entry ent;
char wiphy_name[32];
u32 tx;
u32 tx_max;
u32 rx;
u32 rx_max;
char __data[0];
};
struct trace_event_raw_drv_set_bitrate_mask {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 legacy_2g;
u32 legacy_5g;
char __data[0];
};
struct trace_event_raw_drv_set_rekey_data {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 kek[16];
u8 kck[16];
u8 replay_ctr[8];
char __data[0];
};
struct trace_event_raw_drv_event_callback {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 type;
char __data[0];
};
struct trace_event_raw_release_evt {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
u16 tids;
int num_frames;
int reason;
bool more_data;
char __data[0];
};
struct trace_event_raw_mgd_prepare_complete_tx_evt {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 duration;
u16 subtype;
u8 success;
char __data[0];
};
struct trace_event_raw_local_chanctx {
struct trace_entry ent;
char wiphy_name[32];
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u32 min_control_freq;
u32 min_freq_offset;
u32 min_chan_width;
u32 min_center_freq1;
u32 min_freq1_offset;
u32 min_center_freq2;
u32 ap_control_freq;
u32 ap_freq_offset;
u32 ap_chan_width;
u32 ap_center_freq1;
u32 ap_freq1_offset;
u32 ap_center_freq2;
u8 rx_chains_static;
u8 rx_chains_dynamic;
char __data[0];
};
struct trace_event_raw_drv_change_chanctx {
struct trace_entry ent;
char wiphy_name[32];
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u32 min_control_freq;
u32 min_freq_offset;
u32 min_chan_width;
u32 min_center_freq1;
u32 min_freq1_offset;
u32 min_center_freq2;
u32 ap_control_freq;
u32 ap_freq_offset;
u32 ap_chan_width;
u32 ap_center_freq1;
u32 ap_freq1_offset;
u32 ap_center_freq2;
u8 rx_chains_static;
u8 rx_chains_dynamic;
u32 changed;
char __data[0];
};
struct trace_event_raw_drv_switch_vif_chanctx {
struct trace_entry ent;
char wiphy_name[32];
int n_vifs;
u32 mode;
u32 __data_loc_vifs;
char __data[0];
};
struct trace_event_raw_local_sdata_chanctx {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u32 min_control_freq;
u32 min_freq_offset;
u32 min_chan_width;
u32 min_center_freq1;
u32 min_freq1_offset;
u32 min_center_freq2;
u32 ap_control_freq;
u32 ap_freq_offset;
u32 ap_chan_width;
u32 ap_center_freq1;
u32 ap_freq1_offset;
u32 ap_center_freq2;
u8 rx_chains_static;
u8 rx_chains_dynamic;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_drv_start_ap {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 link_id;
u8 dtimper;
u16 bcnint;
u32 __data_loc_ssid;
bool hidden_ssid;
char __data[0];
};
struct trace_event_raw_drv_stop_ap {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 link_id;
char __data[0];
};
struct trace_event_raw_drv_reconfig_complete {
struct trace_entry ent;
char wiphy_name[32];
u8 reconfig_type;
char __data[0];
};
struct trace_event_raw_drv_join_ibss {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 dtimper;
u16 bcnint;
u32 __data_loc_ssid;
char __data[0];
};
struct trace_event_raw_drv_get_expected_throughput {
struct trace_entry ent;
char sta_addr[6];
char __data[0];
};
struct trace_event_raw_drv_start_nan {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 master_pref;
u8 bands;
char __data[0];
};
struct trace_event_raw_drv_stop_nan {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char __data[0];
};
struct trace_event_raw_drv_nan_change_conf {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 master_pref;
u8 bands;
u32 changes;
char __data[0];
};
struct trace_event_raw_drv_add_nan_func {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 type;
u8 inst_id;
char __data[0];
};
struct trace_event_raw_drv_del_nan_func {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 instance_id;
char __data[0];
};
struct trace_event_raw_drv_set_default_unicast_key {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int key_idx;
char __data[0];
};
struct trace_event_raw_drv_channel_switch_beacon {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
char __data[0];
};
struct trace_event_raw_drv_get_txpower {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int dbm;
int ret;
char __data[0];
};
struct trace_event_raw_drv_tdls_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u8 oper_class;
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
char __data[0];
};
struct trace_event_raw_drv_tdls_cancel_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
char __data[0];
};
struct trace_event_raw_drv_tdls_recv_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 action_code;
char sta_addr[6];
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u32 status;
bool peer_initiator;
u32 timestamp;
u16 switch_time;
u16 switch_timeout;
char __data[0];
};
struct trace_event_raw_drv_wake_tx_queue {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u8 ac;
u8 tid;
char __data[0];
};
struct trace_event_raw_drv_get_ftm_responder_stats {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char __data[0];
};
struct trace_event_raw_sta_flag_evt {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
bool enabled;
char __data[0];
};
struct trace_event_raw_drv_add_twt_setup {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
u8 dialog_token;
u8 control;
__le16 req_type;
__le64 twt;
u8 duration;
__le16 mantissa;
u8 channel;
char __data[0];
};
struct trace_event_raw_drv_twt_teardown_request {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
u8 flowid;
char __data[0];
};
struct trace_event_raw_drv_net_setup_tc {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 type;
char __data[0];
};
struct trace_event_raw_drv_can_activate_links {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u16 active_links;
char __data[0];
};
struct trace_event_raw_drv_change_vif_links {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u16 old_links;
u16 new_links;
char __data[0];
};
struct trace_event_raw_drv_change_sta_links {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char sta_addr[6];
u16 old_links;
u16 new_links;
char __data[0];
};
struct trace_event_raw_api_start_tx_ba_session {
struct trace_entry ent;
char sta_addr[6];
u16 tid;
char __data[0];
};
struct trace_event_raw_api_start_tx_ba_cb {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 ra[6];
u16 tid;
char __data[0];
};
struct trace_event_raw_api_stop_tx_ba_session {
struct trace_entry ent;
char sta_addr[6];
u16 tid;
char __data[0];
};
struct trace_event_raw_api_stop_tx_ba_cb {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 ra[6];
u16 tid;
char __data[0];
};
struct trace_event_raw_api_beacon_loss {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char __data[0];
};
struct trace_event_raw_api_connection_loss {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
char __data[0];
};
struct trace_event_raw_api_disconnect {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int reconnect;
char __data[0];
};
struct trace_event_raw_api_cqm_rssi_notify {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 rssi_event;
s32 rssi_level;
char __data[0];
};
struct trace_event_raw_api_scan_completed {
struct trace_entry ent;
char wiphy_name[32];
bool aborted;
char __data[0];
};
struct trace_event_raw_api_sched_scan_results {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_api_sched_scan_stopped {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_api_sta_block_awake {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
bool block;
char __data[0];
};
struct trace_event_raw_api_chswitch_done {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
bool success;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_api_gtk_rekey_notify {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u8 bssid[6];
u8 replay_ctr[8];
char __data[0];
};
struct trace_event_raw_api_enable_rssi_reports {
struct trace_entry ent;
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int rssi_min_thold;
int rssi_max_thold;
char __data[0];
};
struct trace_event_raw_api_eosp {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
char __data[0];
};
struct trace_event_raw_api_send_eosp_nullfunc {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
u8 tid;
char __data[0];
};
struct trace_event_raw_api_sta_set_buffered {
struct trace_entry ent;
char wiphy_name[32];
char sta_addr[6];
u8 tid;
bool buffered;
char __data[0];
};
struct trace_event_raw_api_radar_detected {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_api_request_smps {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
int link_id;
u32 smps_mode;
char __data[0];
};
struct trace_event_raw_wake_queue {
struct trace_entry ent;
char wiphy_name[32];
u16 queue;
u32 reason;
char __data[0];
};
struct trace_event_raw_stop_queue {
struct trace_entry ent;
char wiphy_name[32];
u16 queue;
u32 reason;
char __data[0];
};
struct trace_event_raw_drv_can_neg_ttlm {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u16 downlink[16];
u16 uplink[16];
char __data[0];
};
struct trace_event_raw_drv_neg_ttlm_res {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_iftype vif_type;
void *sdata;
bool p2p;
u32 __data_loc_vif_name;
u32 res;
u16 downlink[16];
u16 uplink[16];
char __data[0];
};
struct trace_event_data_offsets_local_sdata_addr_evt {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_local_sdata_evt {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_change_interface {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_vif_cfg_changed {
u32 vif_name;
const void *vif_name_ptr_;
u32 arp_addr_list;
const void *arp_addr_list_ptr_;
u32 ssid;
const void *ssid_ptr_;
};
struct trace_event_data_offsets_drv_link_info_changed {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_config_iface_filter {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_set_key {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_update_tkip_key {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_sw_scan_start {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_sta_notify {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_sta_state {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_sta_set_txpwr {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_sta_rc_update {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_sta_event {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_conf_tx {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_set_tsf {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_offset_tsf {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_ampdu_action {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_chanswitch_evt {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_remain_on_channel {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_set_bitrate_mask {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_set_rekey_data {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_event_callback {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_mgd_prepare_complete_tx_evt {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_switch_vif_chanctx {
u32 vifs;
const void *vifs_ptr_;
};
struct trace_event_data_offsets_local_sdata_chanctx {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_start_ap {
u32 vif_name;
const void *vif_name_ptr_;
u32 ssid;
const void *ssid_ptr_;
};
struct trace_event_data_offsets_drv_stop_ap {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_join_ibss {
u32 vif_name;
const void *vif_name_ptr_;
u32 ssid;
const void *ssid_ptr_;
};
struct trace_event_data_offsets_drv_start_nan {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_stop_nan {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_nan_change_conf {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_add_nan_func {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_del_nan_func {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_set_default_unicast_key {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_channel_switch_beacon {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_get_txpower {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_tdls_channel_switch {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_tdls_cancel_channel_switch {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_tdls_recv_channel_switch {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_wake_tx_queue {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_get_ftm_responder_stats {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_sta_flag_evt {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_net_setup_tc {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_can_activate_links {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_change_vif_links {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_change_sta_links {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_start_tx_ba_cb {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_stop_tx_ba_cb {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_beacon_loss {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_connection_loss {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_disconnect {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_cqm_rssi_notify {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_chswitch_done {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_gtk_rekey_notify {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_enable_rssi_reports {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_api_request_smps {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_can_neg_ttlm {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_drv_neg_ttlm_res {
u32 vif_name;
const void *vif_name_ptr_;
};
struct trace_event_data_offsets_local_only_evt {};
struct trace_event_data_offsets_local_u32_evt {};
struct trace_event_data_offsets_drv_return_int {};
struct trace_event_data_offsets_drv_return_bool {};
struct trace_event_data_offsets_drv_return_u32 {};
struct trace_event_data_offsets_drv_return_u64 {};
struct trace_event_data_offsets_drv_set_wakeup {};
struct trace_event_data_offsets_drv_config {};
struct trace_event_data_offsets_drv_prepare_multicast {};
struct trace_event_data_offsets_drv_configure_filter {};
struct trace_event_data_offsets_drv_set_tim {};
struct trace_event_data_offsets_drv_get_stats {};
struct trace_event_data_offsets_drv_get_key_seq {};
struct trace_event_data_offsets_drv_set_coverage_class {};
struct trace_event_data_offsets_drv_get_survey {};
struct trace_event_data_offsets_drv_flush {};
struct trace_event_data_offsets_drv_set_antenna {};
struct trace_event_data_offsets_drv_get_antenna {};
struct trace_event_data_offsets_drv_set_ringparam {};
struct trace_event_data_offsets_drv_get_ringparam {};
struct trace_event_data_offsets_release_evt {};
struct trace_event_data_offsets_local_chanctx {};
struct trace_event_data_offsets_drv_change_chanctx {};
struct trace_vif_entry {
enum nl80211_iftype vif_type;
bool p2p;
char vif_name[16];
} __attribute__((packed));
struct trace_chandef_entry {
u32 control_freq;
u32 freq_offset;
u32 chan_width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
};
struct trace_switch_entry {
struct trace_vif_entry vif;
unsigned int link_id;
struct trace_chandef_entry old_chandef;
struct trace_chandef_entry new_chandef;
} __attribute__((packed));
struct trace_event_data_offsets_drv_reconfig_complete {};
struct trace_event_data_offsets_drv_get_expected_throughput {};
struct trace_event_data_offsets_drv_add_twt_setup {};
struct trace_event_data_offsets_drv_twt_teardown_request {};
struct trace_event_data_offsets_api_start_tx_ba_session {};
struct trace_event_data_offsets_api_stop_tx_ba_session {};
struct trace_event_data_offsets_api_scan_completed {};
struct trace_event_data_offsets_api_sched_scan_results {};
struct trace_event_data_offsets_api_sched_scan_stopped {};
struct trace_event_data_offsets_api_sta_block_awake {};
struct trace_event_data_offsets_api_eosp {};
struct trace_event_data_offsets_api_send_eosp_nullfunc {};
struct trace_event_data_offsets_api_sta_set_buffered {};
struct trace_event_data_offsets_api_radar_detected {};
struct trace_event_data_offsets_wake_queue {};
struct trace_event_data_offsets_stop_queue {};
typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *);
typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int);
typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *);
typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *);
typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t);
typedef void (*btf_trace_sched_waking)(void *, struct task_struct *);
typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *);
typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *);
typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int);
typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int);
typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *);
typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *);
typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *);
typedef void (*btf_trace_sched_process_wait)(void *, struct pid *);
typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *);
typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *);
typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64);
typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *);
typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *);
typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int);
typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int);
typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int);
typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int);
typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *);
typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *);
typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *);
typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *);
typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *);
typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *);
typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *);
typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool);
typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *);
typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *);
typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int);
typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *);
typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *);
typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *);
typedef void (*btf_trace_ipi_entry)(void *, const char *);
typedef void (*btf_trace_ipi_exit)(void *, const char *);
struct tick_work {
int cpu;
atomic_t state;
struct delayed_work work;
};
enum {
preempt_dynamic_undefined = -1,
preempt_dynamic_none = 0,
preempt_dynamic_voluntary = 1,
preempt_dynamic_full = 2,
};
enum {
cpuset = 0,
possible = 1,
fail = 2,
};
union cpumask_rcuhead {
cpumask_t cpumask;
struct callback_head rcu;
};
struct trace_event_raw_sched_kthread_stop {
struct trace_entry ent;
char comm[16];
pid_t pid;
char __data[0];
};
struct trace_event_raw_sched_kthread_stop_ret {
struct trace_entry ent;
int ret;
char __data[0];
};
struct trace_event_raw_sched_kthread_work_queue_work {
struct trace_entry ent;
void *work;
void *function;
void *worker;
char __data[0];
};
struct trace_event_raw_sched_kthread_work_execute_start {
struct trace_entry ent;
void *work;
void *function;
char __data[0];
};
struct trace_event_raw_sched_kthread_work_execute_end {
struct trace_entry ent;
void *work;
void *function;
char __data[0];
};
struct trace_event_raw_sched_wakeup_template {
struct trace_entry ent;
char comm[16];
pid_t pid;
int prio;
int target_cpu;
char __data[0];
};
struct trace_event_raw_sched_switch {
struct trace_entry ent;
char prev_comm[16];
pid_t prev_pid;
int prev_prio;
long prev_state;
char next_comm[16];
pid_t next_pid;
int next_prio;
char __data[0];
};
struct trace_event_raw_sched_migrate_task {
struct trace_entry ent;
char comm[16];
pid_t pid;
int prio;
int orig_cpu;
int dest_cpu;
char __data[0];
};
struct trace_event_raw_sched_process_template {
struct trace_entry ent;
char comm[16];
pid_t pid;
int prio;
char __data[0];
};
struct trace_event_raw_sched_process_wait {
struct trace_entry ent;
char comm[16];
pid_t pid;
int prio;
char __data[0];
};
struct trace_event_raw_sched_process_fork {
struct trace_entry ent;
char parent_comm[16];
pid_t parent_pid;
char child_comm[16];
pid_t child_pid;
char __data[0];
};
struct trace_event_raw_sched_process_exec {
struct trace_entry ent;
u32 __data_loc_filename;
pid_t pid;
pid_t old_pid;
char __data[0];
};
struct trace_event_raw_sched_stat_runtime {
struct trace_entry ent;
char comm[16];
pid_t pid;
u64 runtime;
char __data[0];
};
struct trace_event_raw_sched_pi_setprio {
struct trace_entry ent;
char comm[16];
pid_t pid;
int oldprio;
int newprio;
char __data[0];
};
struct trace_event_raw_sched_process_hang {
struct trace_entry ent;
char comm[16];
pid_t pid;
char __data[0];
};
struct trace_event_raw_sched_move_numa {
struct trace_entry ent;
pid_t pid;
pid_t tgid;
pid_t ngid;
int src_cpu;
int src_nid;
int dst_cpu;
int dst_nid;
char __data[0];
};
struct trace_event_raw_sched_numa_pair_template {
struct trace_entry ent;
pid_t src_pid;
pid_t src_tgid;
pid_t src_ngid;
int src_cpu;
int src_nid;
pid_t dst_pid;
pid_t dst_tgid;
pid_t dst_ngid;
int dst_cpu;
int dst_nid;
char __data[0];
};
struct trace_event_raw_sched_wake_idle_without_ipi {
struct trace_entry ent;
int cpu;
char __data[0];
};
struct trace_event_raw_ipi_raise {
struct trace_entry ent;
u32 __data_loc_target_cpus;
const char *reason;
char __data[0];
};
struct trace_event_raw_ipi_send_cpu {
struct trace_entry ent;
unsigned int cpu;
void *callsite;
void *callback;
char __data[0];
};
struct trace_event_raw_ipi_send_cpumask {
struct trace_entry ent;
u32 __data_loc_cpumask;
void *callsite;
void *callback;
char __data[0];
};
struct trace_event_raw_ipi_handler {
struct trace_entry ent;
const char *reason;
char __data[0];
};
struct sched_param {
int sched_priority;
};
struct trace_event_data_offsets_sched_process_exec {
u32 filename;
const void *filename_ptr_;
};
struct trace_event_data_offsets_ipi_raise {
u32 target_cpus;
const void *target_cpus_ptr_;
};
struct trace_event_data_offsets_ipi_send_cpumask {
u32 cpumask;
const void *cpumask_ptr_;
};
typedef struct {
raw_spinlock_t *lock;
} class_raw_spinlock_irq_t;
typedef struct {
void *lock;
} class_preempt_t;
typedef struct {
struct rq *lock;
struct rq_flags rf;
} class_rq_lock_irqsave_t;
typedef struct {
raw_spinlock_t *lock;
unsigned long flags;
} class_raw_spinlock_irqsave_t;
typedef struct {
struct task_struct *lock;
struct rq *rq;
struct rq_flags rf;
} class_task_rq_lock_t;
typedef struct task_struct *class_find_get_task_t;
typedef struct {
void *lock;
unsigned long flags;
} class_irqsave_t;
typedef struct {
struct rq *lock;
struct rq *lock2;
} class_double_rq_lock_t;
struct set_affinity_pending;
struct migration_arg {
struct task_struct *task;
int dest_cpu;
struct set_affinity_pending *pending;
};
struct set_affinity_pending {
refcount_t refs;
unsigned int stop_pending;
struct completion done;
struct cpu_stop_work stop_work;
struct migration_arg arg;
};
typedef struct {
struct rq *lock;
struct rq_flags rf;
} class_rq_lock_irq_t;
struct trace_event_data_offsets_sched_kthread_stop {};
struct trace_event_data_offsets_sched_kthread_stop_ret {};
struct trace_event_data_offsets_sched_kthread_work_queue_work {};
struct trace_event_data_offsets_sched_kthread_work_execute_start {};
struct trace_event_data_offsets_sched_kthread_work_execute_end {};
struct trace_event_data_offsets_sched_wakeup_template {};
struct trace_event_data_offsets_sched_switch {};
struct trace_event_data_offsets_sched_migrate_task {};
struct trace_event_data_offsets_sched_process_template {};
struct trace_event_data_offsets_sched_process_wait {};
struct trace_event_data_offsets_sched_process_fork {};
struct trace_event_data_offsets_sched_stat_runtime {};
struct trace_event_data_offsets_sched_pi_setprio {};
struct trace_event_data_offsets_sched_process_hang {};
struct trace_event_data_offsets_sched_move_numa {};
struct trace_event_data_offsets_sched_numa_pair_template {};
struct trace_event_data_offsets_sched_wake_idle_without_ipi {};
struct trace_event_data_offsets_ipi_send_cpu {};
struct trace_event_data_offsets_ipi_handler {};
typedef int (*tg_visitor)(struct task_group *, void *);
enum {
BPF_LOCAL_STORAGE_GET_F_CREATE = 1,
BPF_SK_STORAGE_GET_F_CREATE = 1,
};
typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t);
typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *);
typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *);
struct swap_iocb {
struct kiocb iocb;
struct bio_vec bvec[32];
int pages;
int len;
};
struct epitem;
struct eventpoll {
struct mutex mtx;
wait_queue_head_t wq;
wait_queue_head_t poll_wait;
struct list_head rdllist;
rwlock_t lock;
struct rb_root_cached rbr;
struct epitem *ovflist;
struct wakeup_source *ws;
struct user_struct *user;
struct file *file;
u64 gen;
struct hlist_head refs;
refcount_t refcount;
unsigned int napi_id;
u32 busy_poll_usecs;
u16 busy_poll_budget;
bool prefer_busy_poll;
u8 nests;
};
struct epoll_filefd {
struct file *file;
int fd;
} __attribute__((packed));
struct eppoll_entry;
struct epitem {
union {
struct rb_node rbn;
struct callback_head rcu;
};
struct list_head rdllink;
struct epitem *next;
struct epoll_filefd ffd;
bool dying;
struct eppoll_entry *pwqlist;
struct eventpoll *ep;
struct hlist_node fllink;
struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws;
struct epoll_event event;
};
struct eppoll_entry {
struct eppoll_entry *next;
struct epitem *base;
wait_queue_entry_t wait;
wait_queue_head_t *whead;
};
struct epitems_head {
struct hlist_head epitems;
struct epitems_head *next;
};
struct ep_pqueue {
poll_table pt;
struct epitem *epi;
};
struct epoll_params {
__u32 busy_poll_usecs;
__u16 busy_poll_budget;
__u8 prefer_busy_poll;
__u8 __pad;
};
enum btrfs_lockdep_trans_states {
BTRFS_LOCKDEP_TRANS_COMMIT_PREP = 0,
BTRFS_LOCKDEP_TRANS_UNBLOCKED = 1,
BTRFS_LOCKDEP_TRANS_SUPER_COMMITTED = 2,
BTRFS_LOCKDEP_TRANS_COMPLETED = 3,
};
enum btrfs_csum_type {
BTRFS_CSUM_TYPE_CRC32 = 0,
BTRFS_CSUM_TYPE_XXHASH = 1,
BTRFS_CSUM_TYPE_SHA256 = 2,
BTRFS_CSUM_TYPE_BLAKE2 = 3,
};
struct ghash_ctx {
struct gf128mul_4k *gf128;
};
struct ghash_desc_ctx {
u8 buffer[16];
u32 bytes;
};
typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int);
typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int);
typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *);
enum {
KYBER_READ = 0,
KYBER_WRITE = 1,
KYBER_DISCARD = 2,
KYBER_OTHER = 3,
KYBER_NUM_DOMAINS = 4,
};
enum {
KYBER_TOTAL_LATENCY = 0,
KYBER_IO_LATENCY = 1,
};
enum {
KYBER_LATENCY_SHIFT = 2,
KYBER_GOOD_BUCKETS = 4,
KYBER_LATENCY_BUCKETS = 8,
};
enum {
KYBER_ASYNC_PERCENT = 75,
};
struct trace_event_raw_kyber_latency {
struct trace_entry ent;
dev_t dev;
char domain[16];
char type[8];
u8 percentile;
u8 numerator;
u8 denominator;
unsigned int samples;
char __data[0];
};
struct trace_event_raw_kyber_adjust {
struct trace_entry ent;
dev_t dev;
char domain[16];
unsigned int depth;
char __data[0];
};
struct trace_event_raw_kyber_throttled {
struct trace_entry ent;
dev_t dev;
char domain[16];
char __data[0];
};
struct kyber_cpu_latency {
atomic_t buckets[48];
};
struct kyber_queue_data {
struct request_queue *q;
dev_t dev;
struct sbitmap_queue domain_tokens[4];
unsigned int async_depth;
struct kyber_cpu_latency __attribute__((btf_type_tag("percpu"))) *cpu_latency;
struct timer_list timer;
unsigned int latency_buckets[48];
unsigned long latency_timeout[3];
int domain_p99[3];
u64 latency_targets[3];
};
struct kyber_ctx_queue {
spinlock_t lock;
struct list_head rq_list[4];
};
struct kyber_hctx_data {
spinlock_t lock;
struct list_head rqs[4];
unsigned int cur_domain;
unsigned int batching;
struct kyber_ctx_queue *kcqs;
struct sbitmap kcq_map[4];
struct sbq_wait domain_wait[4];
struct sbq_wait_state *domain_ws[4];
atomic_t wait_index[4];
};
struct flush_kcq_data {
struct kyber_hctx_data *khd;
unsigned int sched_domain;
struct list_head *list;
};
struct trace_event_data_offsets_kyber_latency {};
struct trace_event_data_offsets_kyber_adjust {};
struct trace_event_data_offsets_kyber_throttled {};
struct acpi_lpat {
int temp;
int raw;
};
struct acpi_lpat_conversion_table {
struct acpi_lpat *lpat;
int lpat_count;
};
struct lpit_residency_info {
struct acpi_generic_address gaddr;
u64 frequency;
void *iomem_addr;
};
struct acpi_lpit_header {
u32 type;
u32 length;
u16 unique_id;
u16 reserved;
u32 flags;
};
struct acpi_lpit_native {
struct acpi_lpit_header header;
struct acpi_generic_address entry_trigger;
u32 residency;
u32 latency;
struct acpi_generic_address residency_counter;
u64 counter_frequency;
};
struct acpi_table_lpit {
struct acpi_table_header header;
};
struct acpi_comment_node {
char *comment;
struct acpi_comment_node *next;
};
struct acpi_fixed_event_info {
u8 status_register_id;
u8 enable_register_id;
u16 status_bit_mask;
u16 enable_bit_mask;
};
struct acpi_table_fadt {
struct acpi_table_header header;
u32 facs;
u32 dsdt;
u8 model;
u8 preferred_profile;
u16 sci_interrupt;
u32 smi_command;
u8 acpi_enable;
u8 acpi_disable;
u8 s4_bios_request;
u8 pstate_control;
u32 pm1a_event_block;
u32 pm1b_event_block;
u32 pm1a_control_block;
u32 pm1b_control_block;
u32 pm2_control_block;
u32 pm_timer_block;
u32 gpe0_block;
u32 gpe1_block;
u8 pm1_event_length;
u8 pm1_control_length;
u8 pm2_control_length;
u8 pm_timer_length;
u8 gpe0_block_length;
u8 gpe1_block_length;
u8 gpe1_base;
u8 cst_control;
u16 c2_latency;
u16 c3_latency;
u16 flush_size;
u16 flush_stride;
u8 duty_offset;
u8 duty_width;
u8 day_alarm;
u8 month_alarm;
u8 century;
u16 boot_flags;
u8 reserved;
u32 flags;
struct acpi_generic_address reset_register;
u8 reset_value;
u16 arm_boot_flags;
u8 minor_revision;
u64 Xfacs;
u64 Xdsdt;
struct acpi_generic_address xpm1a_event_block;
struct acpi_generic_address xpm1b_event_block;
struct acpi_generic_address xpm1a_control_block;
struct acpi_generic_address xpm1b_control_block;
struct acpi_generic_address xpm2_control_block;
struct acpi_generic_address xpm_timer_block;
struct acpi_generic_address xgpe0_block;
struct acpi_generic_address xgpe1_block;
struct acpi_generic_address sleep_control;
struct acpi_generic_address sleep_status;
u64 hypervisor_id;
} __attribute__((packed));
struct acpi_table_list {
struct acpi_table_desc *tables;
u32 current_table_count;
u32 max_table_count;
u8 flags;
};
struct acpi_mutex_info {
void *mutex;
u32 use_count;
u64 thread_id;
};
typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *);
typedef acpi_status (*acpi_init_handler)(acpi_handle, u32);
struct acpi_ged_handler_info {
struct acpi_ged_handler_info *next;
u32 int_id;
struct acpi_namespace_node *evt_method;
};
struct acpi_fixed_event_handler {
acpi_event_handler handler;
void *context;
};
typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t);
struct trace_event_raw_devres {
struct trace_entry ent;
u32 __data_loc_devname;
struct device *dev;
const char *op;
void *node;
const char *name;
size_t size;
char __data[0];
};
struct trace_event_data_offsets_devres {
u32 devname;
const void *devname_ptr_;
};
struct iwl_time_quota_data_v1 {
__le32 id_and_color;
__le32 quota;
__le32 max_duration;
};
struct iwl_mvm_quota_iterator_data {
int n_interfaces[4];
int colors[4];
int low_latency[4];
int n_low_latency_bindings;
struct ieee80211_vif *disabled_vif;
};
enum r1bio_state {
R1BIO_Uptodate = 0,
R1BIO_IsSync = 1,
R1BIO_Degraded = 2,
R1BIO_BehindIO = 3,
R1BIO_ReadError = 4,
R1BIO_Returned = 5,
R1BIO_MadeGood = 6,
R1BIO_WriteError = 7,
R1BIO_FailFast = 8,
};
struct serial_info {
struct rb_node node;
sector_t start;
sector_t last;
sector_t _subtree_last;
};
struct r1bio {
atomic_t remaining;
atomic_t behind_remaining;
sector_t sector;
int sectors;
unsigned long state;
struct mddev *mddev;
struct bio *master_bio;
int read_disk;
struct list_head retry_list;
struct bio *behind_master_bio;
struct bio *bios[0];
};
struct raid1_info;
struct pool_info;
struct r1conf {
struct mddev *mddev;
struct raid1_info *mirrors;
int raid_disks;
int nonrot_disks;
spinlock_t device_lock;
struct list_head retry_list;
struct list_head bio_end_io_list;
struct bio_list pending_bio_list;
wait_queue_head_t wait_barrier;
spinlock_t resync_lock;
atomic_t nr_sync_pending;
atomic_t *nr_pending;
atomic_t *nr_waiting;
atomic_t *nr_queued;
atomic_t *barrier;
int array_frozen;
int fullsync;
int recovery_disabled;
struct pool_info *poolinfo;
mempool_t r1bio_pool;
mempool_t r1buf_pool;
struct bio_set bio_split;
struct page *tmppage;
struct md_thread __attribute__((btf_type_tag("rcu"))) *thread;
sector_t cluster_sync_low;
sector_t cluster_sync_high;
};
struct raid1_info {
struct md_rdev *rdev;
sector_t head_position;
sector_t next_seq_sect;
sector_t seq_start;
};
struct pool_info {
struct mddev *mddev;
int raid_disks;
};
struct read_balance_ctl {
sector_t closest_dist;
int closest_dist_disk;
int min_pending;
int min_pending_disk;
int sequential_disk;
int readable_disks;
};
struct fib_notifier_net {
struct list_head fib_notifier_ops;
struct atomic_notifier_head fib_chain;
};
enum {
ETHTOOL_A_DEBUG_UNSPEC = 0,
ETHTOOL_A_DEBUG_HEADER = 1,
ETHTOOL_A_DEBUG_MSGMASK = 2,
__ETHTOOL_A_DEBUG_CNT = 3,
ETHTOOL_A_DEBUG_MAX = 2,
};
struct debug_reply_data {
struct ethnl_reply_data base;
u32 msg_mask;
};
typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32);
struct bpf_struct_ops_tcp_congestion_ops {
struct bpf_struct_ops_common_value common;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct tcp_congestion_ops data;
};
typedef __u16 Elf32_Half;
typedef __u32 Elf32_Addr;
typedef __u32 Elf32_Off;
struct elf32_hdr {
unsigned char e_ident[16];
Elf32_Half e_type;
Elf32_Half e_machine;
Elf32_Word e_version;
Elf32_Addr e_entry;
Elf32_Off e_phoff;
Elf32_Off e_shoff;
Elf32_Word e_flags;
Elf32_Half e_ehsize;
Elf32_Half e_phentsize;
Elf32_Half e_phnum;
Elf32_Half e_shentsize;
Elf32_Half e_shnum;
Elf32_Half e_shstrndx;
};
typedef struct elf32_hdr Elf32_Ehdr;
struct elf32_phdr {
Elf32_Word p_type;
Elf32_Off p_offset;
Elf32_Addr p_vaddr;
Elf32_Addr p_paddr;
Elf32_Word p_filesz;
Elf32_Word p_memsz;
Elf32_Word p_flags;
Elf32_Word p_align;
};
typedef struct elf32_phdr Elf32_Phdr;
typedef struct elf64_phdr Elf64_Phdr;
typedef struct elf32_note Elf32_Nhdr;
typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int);
struct nmi_stats {
unsigned int normal;
unsigned int unknown;
unsigned int external;
unsigned int swallow;
unsigned long recv_jiffies;
unsigned long idt_seq;
unsigned long idt_nmi_seq;
unsigned long idt_ignored;
atomic_long_t idt_calls;
unsigned long idt_seq_snap;
unsigned long idt_nmi_seq_snap;
unsigned long idt_ignored_snap;
long idt_calls_snap;
};
enum nmi_states {
NMI_NOT_RUNNING = 0,
NMI_EXECUTING = 1,
NMI_LATCHED = 2,
};
struct nmi_desc {
raw_spinlock_t lock;
struct list_head head;
};
struct trace_event_raw_nmi_handler {
struct trace_entry ent;
void *handler;
s64 delta_ns;
int handled;
char __data[0];
};
struct trace_event_data_offsets_nmi_handler {};
enum {
HIBERNATION_INVALID = 0,
HIBERNATION_PLATFORM = 1,
HIBERNATION_SHUTDOWN = 2,
HIBERNATION_REBOOT = 3,
HIBERNATION_SUSPEND = 4,
HIBERNATION_TEST_RESUME = 5,
__HIBERNATION_AFTER_LAST = 6,
};
struct bpf_iter__bpf_prog {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_prog *prog;
};
};
struct bpf_iter_seq_prog_info {
u32 prog_id;
};
typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool);
typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool);
typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool);
struct memcg_path {
local_lock_t lock;
char __attribute__((btf_type_tag("rcu"))) *buf;
local_t buf_idx;
};
struct trace_event_raw_mmap_lock {
struct trace_entry ent;
struct mm_struct *mm;
u32 __data_loc_memcg_path;
bool write;
char __data[0];
};
struct trace_event_raw_mmap_lock_acquire_returned {
struct trace_entry ent;
struct mm_struct *mm;
u32 __data_loc_memcg_path;
bool write;
bool success;
char __data[0];
};
struct trace_event_data_offsets_mmap_lock {
u32 memcg_path;
const void *memcg_path_ptr_;
};
struct trace_event_data_offsets_mmap_lock_acquire_returned {
u32 memcg_path;
const void *memcg_path_ptr_;
};
struct kioctx_cpu;
struct ctx_rq_wait;
struct kioctx {
struct percpu_ref users;
atomic_t dead;
struct percpu_ref reqs;
unsigned long user_id;
struct kioctx_cpu *cpu;
unsigned int req_batch;
unsigned int max_reqs;
unsigned int nr_events;
unsigned long mmap_base;
unsigned long mmap_size;
struct page **ring_pages;
long nr_pages;
struct rcu_work free_rwork;
struct ctx_rq_wait *rq_wait;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct {
atomic_t reqs_available;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct {
spinlock_t ctx_lock;
struct list_head active_reqs;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct {
struct mutex ring_lock;
wait_queue_head_t wait;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct {
unsigned int tail;
unsigned int completed_events;
spinlock_t completion_lock;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct page *internal_pages[8];
struct file *aio_ring_file;
unsigned int id;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct kioctx_cpu {
unsigned int reqs_available;
};
struct ctx_rq_wait {
struct completion comp;
atomic_t count;
};
enum {
IOCB_CMD_PREAD = 0,
IOCB_CMD_PWRITE = 1,
IOCB_CMD_FSYNC = 2,
IOCB_CMD_FDSYNC = 3,
IOCB_CMD_POLL = 5,
IOCB_CMD_NOOP = 6,
IOCB_CMD_PREADV = 7,
IOCB_CMD_PWRITEV = 8,
};
struct fsync_iocb {
struct file *file;
struct work_struct work;
bool datasync;
struct cred *creds;
};
struct poll_iocb {
struct file *file;
struct wait_queue_head *head;
__poll_t events;
bool cancelled;
bool work_scheduled;
bool work_need_resched;
struct wait_queue_entry wait;
struct work_struct work;
};
typedef int kiocb_cancel_fn(struct kiocb *);
struct io_event {
__u64 data;
__u64 obj;
__s64 res;
__s64 res2;
};
struct aio_kiocb {
union {
struct file *ki_filp;
struct kiocb rw;
struct fsync_iocb fsync;
struct poll_iocb poll;
};
struct kioctx *ki_ctx;
kiocb_cancel_fn *ki_cancel;
struct io_event ki_res;
struct list_head ki_list;
refcount_t ki_refcnt;
struct eventfd_ctx *ki_eventfd;
};
typedef __kernel_ulong_t aio_context_t;
struct iocb {
__u64 aio_data;
__u32 aio_key;
__kernel_rwf_t aio_rw_flags;
__u16 aio_lio_opcode;
__s16 aio_reqprio;
__u32 aio_fildes;
__u64 aio_buf;
__u64 aio_nbytes;
__s64 aio_offset;
__u64 aio_reserved2;
__u32 aio_flags;
__u32 aio_resfd;
};
struct aio_poll_table {
struct poll_table_struct pt;
struct aio_kiocb *iocb;
bool queued;
int error;
};
struct aio_waiter {
struct wait_queue_entry w;
size_t min_nr;
};
struct __aio_sigset {
const sigset_t __attribute__((btf_type_tag("user"))) *sigmask;
size_t sigsetsize;
};
struct aio_ring {
unsigned int id;
unsigned int nr;
unsigned int head;
unsigned int tail;
unsigned int magic;
unsigned int compat_features;
unsigned int incompat_features;
unsigned int header_length;
struct io_event io_events[0];
};
struct getdents_callback {
struct dir_context ctx;
char *name;
u64 ino;
int found;
int sequence;
};
struct btrfs_csums {
u16 size;
const char name[10];
const char driver[12];
};
typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *);
typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *);
typedef void (*btf_trace_block_rq_requeue)(void *, struct request *);
typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int);
typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int);
typedef void (*btf_trace_block_rq_insert)(void *, struct request *);
typedef void (*btf_trace_block_rq_issue)(void *, struct request *);
typedef void (*btf_trace_block_rq_merge)(void *, struct request *);
typedef void (*btf_trace_block_io_start)(void *, struct request *);
typedef void (*btf_trace_block_io_done)(void *, struct request *);
typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *);
typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *);
typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *);
typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *);
typedef void (*btf_trace_block_bio_queue)(void *, struct bio *);
typedef void (*btf_trace_block_getrq)(void *, struct bio *);
typedef void (*btf_trace_block_plug)(void *, struct request_queue *);
typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool);
typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int);
typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t);
typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t);
struct trace_event_raw_block_buffer {
struct trace_entry ent;
dev_t dev;
sector_t sector;
size_t size;
char __data[0];
};
struct trace_event_raw_block_rq_requeue {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
char rwbs[8];
u32 __data_loc_cmd;
char __data[0];
};
struct trace_event_raw_block_rq_completion {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
int error;
char rwbs[8];
u32 __data_loc_cmd;
char __data[0];
};
struct trace_event_raw_block_rq {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
unsigned int bytes;
char rwbs[8];
char comm[16];
u32 __data_loc_cmd;
char __data[0];
};
struct trace_event_raw_block_bio_complete {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
int error;
char rwbs[8];
char __data[0];
};
struct trace_event_raw_block_bio {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
char rwbs[8];
char comm[16];
char __data[0];
};
struct trace_event_raw_block_plug {
struct trace_entry ent;
char comm[16];
char __data[0];
};
struct trace_event_raw_block_unplug {
struct trace_entry ent;
int nr_rq;
char comm[16];
char __data[0];
};
struct trace_event_raw_block_split {
struct trace_entry ent;
dev_t dev;
sector_t sector;
sector_t new_sector;
char rwbs[8];
char comm[16];
char __data[0];
};
struct trace_event_raw_block_bio_remap {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
dev_t old_dev;
sector_t old_sector;
char rwbs[8];
char __data[0];
};
struct trace_event_raw_block_rq_remap {
struct trace_entry ent;
dev_t dev;
sector_t sector;
unsigned int nr_sector;
dev_t old_dev;
sector_t old_sector;
unsigned int nr_bios;
char rwbs[8];
char __data[0];
};
struct trace_event_data_offsets_block_buffer {};
struct trace_event_data_offsets_block_rq_requeue {
u32 cmd;
const void *cmd_ptr_;
};
struct trace_event_data_offsets_block_rq_completion {
u32 cmd;
const void *cmd_ptr_;
};
struct trace_event_data_offsets_block_rq {
u32 cmd;
const void *cmd_ptr_;
};
struct trace_event_data_offsets_block_bio_complete {};
struct trace_event_data_offsets_block_bio {};
struct trace_event_data_offsets_block_plug {};
struct trace_event_data_offsets_block_unplug {};
struct trace_event_data_offsets_block_split {};
struct trace_event_data_offsets_block_bio_remap {};
struct trace_event_data_offsets_block_rq_remap {};
struct irq_glue {
struct irq_affinity_notify notify;
struct cpu_rmap *rmap;
u16 index;
};
struct clk_fractional_divider {
struct clk_hw hw;
void *reg;
u8 mshift;
u8 mwidth;
u8 nshift;
u8 nwidth;
u8 flags;
void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *);
spinlock_t *lock;
};
struct u32_fract {
__u32 numerator;
__u32 denominator;
};
typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *);
struct ata_scsi_args {
struct ata_device *dev;
u16 *id;
struct scsi_cmnd *cmd;
};
struct netdev_lag_lower_state_info {
u8 link_up: 1;
u8 tx_enabled: 1;
};
struct net_failover_info {
struct net_device __attribute__((btf_type_tag("rcu"))) *primary_dev;
struct net_device __attribute__((btf_type_tag("rcu"))) *standby_dev;
struct rtnl_link_stats64 primary_stats;
struct rtnl_link_stats64 standby_stats;
struct rtnl_link_stats64 failover_stats;
spinlock_t stats_lock;
};
struct led_trigger {};
enum rc_filter_type {
RC_FILTER_NORMAL = 0,
RC_FILTER_WAKEUP = 1,
RC_FILTER_MAX = 2,
};
struct rc_filter_attribute {
struct device_attribute attr;
enum rc_filter_type type;
bool mask;
};
struct dmi_memdev_info {
const char *device;
const char *bank;
u64 size;
u16 handle;
u8 type;
};
enum {
ETHTOOL_STATS_ETH_PHY = 0,
ETHTOOL_STATS_ETH_MAC = 1,
ETHTOOL_STATS_ETH_CTRL = 2,
ETHTOOL_STATS_RMON = 3,
__ETHTOOL_STATS_CNT = 4,
};
enum {
ETHTOOL_A_STATS_UNSPEC = 0,
ETHTOOL_A_STATS_PAD = 1,
ETHTOOL_A_STATS_HEADER = 2,
ETHTOOL_A_STATS_GROUPS = 3,
ETHTOOL_A_STATS_GRP = 4,
ETHTOOL_A_STATS_SRC = 5,
__ETHTOOL_A_STATS_CNT = 6,
ETHTOOL_A_STATS_MAX = 5,
};
enum {
ETHTOOL_A_STATS_GRP_UNSPEC = 0,
ETHTOOL_A_STATS_GRP_PAD = 1,
ETHTOOL_A_STATS_GRP_ID = 2,
ETHTOOL_A_STATS_GRP_SS_ID = 3,
ETHTOOL_A_STATS_GRP_STAT = 4,
ETHTOOL_A_STATS_GRP_HIST_RX = 5,
ETHTOOL_A_STATS_GRP_HIST_TX = 6,
ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7,
ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8,
ETHTOOL_A_STATS_GRP_HIST_VAL = 9,
__ETHTOOL_A_STATS_GRP_CNT = 10,
ETHTOOL_A_STATS_GRP_MAX = 9,
};
enum {
ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0,
__ETHTOOL_A_STATS_ETH_PHY_CNT = 1,
ETHTOOL_A_STATS_ETH_PHY_MAX = 0,
};
enum {
ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0,
ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1,
ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2,
ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3,
ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4,
ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5,
ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6,
ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7,
ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8,
ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9,
ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10,
ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11,
ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12,
ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13,
ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14,
ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15,
ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16,
ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17,
ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18,
ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19,
ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20,
ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21,
__ETHTOOL_A_STATS_ETH_MAC_CNT = 22,
ETHTOOL_A_STATS_ETH_MAC_MAX = 21,
};
enum {
ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0,
ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1,
ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2,
__ETHTOOL_A_STATS_ETH_CTRL_CNT = 3,
ETHTOOL_A_STATS_ETH_CTRL_MAX = 2,
};
enum {
ETHTOOL_A_STATS_RMON_UNDERSIZE = 0,
ETHTOOL_A_STATS_RMON_OVERSIZE = 1,
ETHTOOL_A_STATS_RMON_FRAG = 2,
ETHTOOL_A_STATS_RMON_JABBER = 3,
__ETHTOOL_A_STATS_RMON_CNT = 4,
ETHTOOL_A_STATS_RMON_MAX = 3,
};
struct stats_req_info {
struct ethnl_req_info base;
unsigned long stat_mask[1];
enum ethtool_mac_stats_src src;
};
struct stats_reply_data {
struct ethnl_reply_data base;
union {
struct {
struct ethtool_eth_phy_stats phy_stats;
struct ethtool_eth_mac_stats mac_stats;
struct ethtool_eth_ctrl_stats ctrl_stats;
struct ethtool_rmon_stats rmon_stats;
};
struct {
struct ethtool_eth_phy_stats phy_stats;
struct ethtool_eth_mac_stats mac_stats;
struct ethtool_eth_ctrl_stats ctrl_stats;
struct ethtool_rmon_stats rmon_stats;
} stats;
};
const struct ethtool_rmon_hist_range *rmon_ranges;
};
struct rt_cache_stat {
unsigned int in_slow_tot;
unsigned int in_slow_mc;
unsigned int in_no_route;
unsigned int in_brd;
unsigned int in_martian_dst;
unsigned int in_martian_src;
unsigned int out_slow_tot;
unsigned int out_slow_mc;
};
enum nl80211_attrs {
NL80211_ATTR_UNSPEC = 0,
NL80211_ATTR_WIPHY = 1,
NL80211_ATTR_WIPHY_NAME = 2,
NL80211_ATTR_IFINDEX = 3,
NL80211_ATTR_IFNAME = 4,
NL80211_ATTR_IFTYPE = 5,
NL80211_ATTR_MAC = 6,
NL80211_ATTR_KEY_DATA = 7,
NL80211_ATTR_KEY_IDX = 8,
NL80211_ATTR_KEY_CIPHER = 9,
NL80211_ATTR_KEY_SEQ = 10,
NL80211_ATTR_KEY_DEFAULT = 11,
NL80211_ATTR_BEACON_INTERVAL = 12,
NL80211_ATTR_DTIM_PERIOD = 13,
NL80211_ATTR_BEACON_HEAD = 14,
NL80211_ATTR_BEACON_TAIL = 15,
NL80211_ATTR_STA_AID = 16,
NL80211_ATTR_STA_FLAGS = 17,
NL80211_ATTR_STA_LISTEN_INTERVAL = 18,
NL80211_ATTR_STA_SUPPORTED_RATES = 19,
NL80211_ATTR_STA_VLAN = 20,
NL80211_ATTR_STA_INFO = 21,
NL80211_ATTR_WIPHY_BANDS = 22,
NL80211_ATTR_MNTR_FLAGS = 23,
NL80211_ATTR_MESH_ID = 24,
NL80211_ATTR_STA_PLINK_ACTION = 25,
NL80211_ATTR_MPATH_NEXT_HOP = 26,
NL80211_ATTR_MPATH_INFO = 27,
NL80211_ATTR_BSS_CTS_PROT = 28,
NL80211_ATTR_BSS_SHORT_PREAMBLE = 29,
NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30,
NL80211_ATTR_HT_CAPABILITY = 31,
NL80211_ATTR_SUPPORTED_IFTYPES = 32,
NL80211_ATTR_REG_ALPHA2 = 33,
NL80211_ATTR_REG_RULES = 34,
NL80211_ATTR_MESH_CONFIG = 35,
NL80211_ATTR_BSS_BASIC_RATES = 36,
NL80211_ATTR_WIPHY_TXQ_PARAMS = 37,
NL80211_ATTR_WIPHY_FREQ = 38,
NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39,
NL80211_ATTR_KEY_DEFAULT_MGMT = 40,
NL80211_ATTR_MGMT_SUBTYPE = 41,
NL80211_ATTR_IE = 42,
NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43,
NL80211_ATTR_SCAN_FREQUENCIES = 44,
NL80211_ATTR_SCAN_SSIDS = 45,
NL80211_ATTR_GENERATION = 46,
NL80211_ATTR_BSS = 47,
NL80211_ATTR_REG_INITIATOR = 48,
NL80211_ATTR_REG_TYPE = 49,
NL80211_ATTR_SUPPORTED_COMMANDS = 50,
NL80211_ATTR_FRAME = 51,
NL80211_ATTR_SSID = 52,
NL80211_ATTR_AUTH_TYPE = 53,
NL80211_ATTR_REASON_CODE = 54,
NL80211_ATTR_KEY_TYPE = 55,
NL80211_ATTR_MAX_SCAN_IE_LEN = 56,
NL80211_ATTR_CIPHER_SUITES = 57,
NL80211_ATTR_FREQ_BEFORE = 58,
NL80211_ATTR_FREQ_AFTER = 59,
NL80211_ATTR_FREQ_FIXED = 60,
NL80211_ATTR_WIPHY_RETRY_SHORT = 61,
NL80211_ATTR_WIPHY_RETRY_LONG = 62,
NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63,
NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64,
NL80211_ATTR_TIMED_OUT = 65,
NL80211_ATTR_USE_MFP = 66,
NL80211_ATTR_STA_FLAGS2 = 67,
NL80211_ATTR_CONTROL_PORT = 68,
NL80211_ATTR_TESTDATA = 69,
NL80211_ATTR_PRIVACY = 70,
NL80211_ATTR_DISCONNECTED_BY_AP = 71,
NL80211_ATTR_STATUS_CODE = 72,
NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73,
NL80211_ATTR_CIPHER_SUITE_GROUP = 74,
NL80211_ATTR_WPA_VERSIONS = 75,
NL80211_ATTR_AKM_SUITES = 76,
NL80211_ATTR_REQ_IE = 77,
NL80211_ATTR_RESP_IE = 78,
NL80211_ATTR_PREV_BSSID = 79,
NL80211_ATTR_KEY = 80,
NL80211_ATTR_KEYS = 81,
NL80211_ATTR_PID = 82,
NL80211_ATTR_4ADDR = 83,
NL80211_ATTR_SURVEY_INFO = 84,
NL80211_ATTR_PMKID = 85,
NL80211_ATTR_MAX_NUM_PMKIDS = 86,
NL80211_ATTR_DURATION = 87,
NL80211_ATTR_COOKIE = 88,
NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89,
NL80211_ATTR_TX_RATES = 90,
NL80211_ATTR_FRAME_MATCH = 91,
NL80211_ATTR_ACK = 92,
NL80211_ATTR_PS_STATE = 93,
NL80211_ATTR_CQM = 94,
NL80211_ATTR_LOCAL_STATE_CHANGE = 95,
NL80211_ATTR_AP_ISOLATE = 96,
NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97,
NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98,
NL80211_ATTR_TX_FRAME_TYPES = 99,
NL80211_ATTR_RX_FRAME_TYPES = 100,
NL80211_ATTR_FRAME_TYPE = 101,
NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102,
NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103,
NL80211_ATTR_SUPPORT_IBSS_RSN = 104,
NL80211_ATTR_WIPHY_ANTENNA_TX = 105,
NL80211_ATTR_WIPHY_ANTENNA_RX = 106,
NL80211_ATTR_MCAST_RATE = 107,
NL80211_ATTR_OFFCHANNEL_TX_OK = 108,
NL80211_ATTR_BSS_HT_OPMODE = 109,
NL80211_ATTR_KEY_DEFAULT_TYPES = 110,
NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111,
NL80211_ATTR_MESH_SETUP = 112,
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113,
NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114,
NL80211_ATTR_SUPPORT_MESH_AUTH = 115,
NL80211_ATTR_STA_PLINK_STATE = 116,
NL80211_ATTR_WOWLAN_TRIGGERS = 117,
NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118,
NL80211_ATTR_SCHED_SCAN_INTERVAL = 119,
NL80211_ATTR_INTERFACE_COMBINATIONS = 120,
NL80211_ATTR_SOFTWARE_IFTYPES = 121,
NL80211_ATTR_REKEY_DATA = 122,
NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123,
NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124,
NL80211_ATTR_SCAN_SUPP_RATES = 125,
NL80211_ATTR_HIDDEN_SSID = 126,
NL80211_ATTR_IE_PROBE_RESP = 127,
NL80211_ATTR_IE_ASSOC_RESP = 128,
NL80211_ATTR_STA_WME = 129,
NL80211_ATTR_SUPPORT_AP_UAPSD = 130,
NL80211_ATTR_ROAM_SUPPORT = 131,
NL80211_ATTR_SCHED_SCAN_MATCH = 132,
NL80211_ATTR_MAX_MATCH_SETS = 133,
NL80211_ATTR_PMKSA_CANDIDATE = 134,
NL80211_ATTR_TX_NO_CCK_RATE = 135,
NL80211_ATTR_TDLS_ACTION = 136,
NL80211_ATTR_TDLS_DIALOG_TOKEN = 137,
NL80211_ATTR_TDLS_OPERATION = 138,
NL80211_ATTR_TDLS_SUPPORT = 139,
NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140,
NL80211_ATTR_DEVICE_AP_SME = 141,
NL80211_ATTR_DONT_WAIT_FOR_ACK = 142,
NL80211_ATTR_FEATURE_FLAGS = 143,
NL80211_ATTR_PROBE_RESP_OFFLOAD = 144,
NL80211_ATTR_PROBE_RESP = 145,
NL80211_ATTR_DFS_REGION = 146,
NL80211_ATTR_DISABLE_HT = 147,
NL80211_ATTR_HT_CAPABILITY_MASK = 148,
NL80211_ATTR_NOACK_MAP = 149,
NL80211_ATTR_INACTIVITY_TIMEOUT = 150,
NL80211_ATTR_RX_SIGNAL_DBM = 151,
NL80211_ATTR_BG_SCAN_PERIOD = 152,
NL80211_ATTR_WDEV = 153,
NL80211_ATTR_USER_REG_HINT_TYPE = 154,
NL80211_ATTR_CONN_FAILED_REASON = 155,
NL80211_ATTR_AUTH_DATA = 156,
NL80211_ATTR_VHT_CAPABILITY = 157,
NL80211_ATTR_SCAN_FLAGS = 158,
NL80211_ATTR_CHANNEL_WIDTH = 159,
NL80211_ATTR_CENTER_FREQ1 = 160,
NL80211_ATTR_CENTER_FREQ2 = 161,
NL80211_ATTR_P2P_CTWINDOW = 162,
NL80211_ATTR_P2P_OPPPS = 163,
NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164,
NL80211_ATTR_ACL_POLICY = 165,
NL80211_ATTR_MAC_ADDRS = 166,
NL80211_ATTR_MAC_ACL_MAX = 167,
NL80211_ATTR_RADAR_EVENT = 168,
NL80211_ATTR_EXT_CAPA = 169,
NL80211_ATTR_EXT_CAPA_MASK = 170,
NL80211_ATTR_STA_CAPABILITY = 171,
NL80211_ATTR_STA_EXT_CAPABILITY = 172,
NL80211_ATTR_PROTOCOL_FEATURES = 173,
NL80211_ATTR_SPLIT_WIPHY_DUMP = 174,
NL80211_ATTR_DISABLE_VHT = 175,
NL80211_ATTR_VHT_CAPABILITY_MASK = 176,
NL80211_ATTR_MDID = 177,
NL80211_ATTR_IE_RIC = 178,
NL80211_ATTR_CRIT_PROT_ID = 179,
NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180,
NL80211_ATTR_PEER_AID = 181,
NL80211_ATTR_COALESCE_RULE = 182,
NL80211_ATTR_CH_SWITCH_COUNT = 183,
NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184,
NL80211_ATTR_CSA_IES = 185,
NL80211_ATTR_CNTDWN_OFFS_BEACON = 186,
NL80211_ATTR_CNTDWN_OFFS_PRESP = 187,
NL80211_ATTR_RXMGMT_FLAGS = 188,
NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189,
NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190,
NL80211_ATTR_HANDLE_DFS = 191,
NL80211_ATTR_SUPPORT_5_MHZ = 192,
NL80211_ATTR_SUPPORT_10_MHZ = 193,
NL80211_ATTR_OPMODE_NOTIF = 194,
NL80211_ATTR_VENDOR_ID = 195,
NL80211_ATTR_VENDOR_SUBCMD = 196,
NL80211_ATTR_VENDOR_DATA = 197,
NL80211_ATTR_VENDOR_EVENTS = 198,
NL80211_ATTR_QOS_MAP = 199,
NL80211_ATTR_MAC_HINT = 200,
NL80211_ATTR_WIPHY_FREQ_HINT = 201,
NL80211_ATTR_MAX_AP_ASSOC_STA = 202,
NL80211_ATTR_TDLS_PEER_CAPABILITY = 203,
NL80211_ATTR_SOCKET_OWNER = 204,
NL80211_ATTR_CSA_C_OFFSETS_TX = 205,
NL80211_ATTR_MAX_CSA_COUNTERS = 206,
NL80211_ATTR_TDLS_INITIATOR = 207,
NL80211_ATTR_USE_RRM = 208,
NL80211_ATTR_WIPHY_DYN_ACK = 209,
NL80211_ATTR_TSID = 210,
NL80211_ATTR_USER_PRIO = 211,
NL80211_ATTR_ADMITTED_TIME = 212,
NL80211_ATTR_SMPS_MODE = 213,
NL80211_ATTR_OPER_CLASS = 214,
NL80211_ATTR_MAC_MASK = 215,
NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216,
NL80211_ATTR_EXT_FEATURES = 217,
NL80211_ATTR_SURVEY_RADIO_STATS = 218,
NL80211_ATTR_NETNS_FD = 219,
NL80211_ATTR_SCHED_SCAN_DELAY = 220,
NL80211_ATTR_REG_INDOOR = 221,
NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222,
NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223,
NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224,
NL80211_ATTR_SCHED_SCAN_PLANS = 225,
NL80211_ATTR_PBSS = 226,
NL80211_ATTR_BSS_SELECT = 227,
NL80211_ATTR_STA_SUPPORT_P2P_PS = 228,
NL80211_ATTR_PAD = 229,
NL80211_ATTR_IFTYPE_EXT_CAPA = 230,
NL80211_ATTR_MU_MIMO_GROUP_DATA = 231,
NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232,
NL80211_ATTR_SCAN_START_TIME_TSF = 233,
NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234,
NL80211_ATTR_MEASUREMENT_DURATION = 235,
NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236,
NL80211_ATTR_MESH_PEER_AID = 237,
NL80211_ATTR_NAN_MASTER_PREF = 238,
NL80211_ATTR_BANDS = 239,
NL80211_ATTR_NAN_FUNC = 240,
NL80211_ATTR_NAN_MATCH = 241,
NL80211_ATTR_FILS_KEK = 242,
NL80211_ATTR_FILS_NONCES = 243,
NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244,
NL80211_ATTR_BSSID = 245,
NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246,
NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247,
NL80211_ATTR_TIMEOUT_REASON = 248,
NL80211_ATTR_FILS_ERP_USERNAME = 249,
NL80211_ATTR_FILS_ERP_REALM = 250,
NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251,
NL80211_ATTR_FILS_ERP_RRK = 252,
NL80211_ATTR_FILS_CACHE_ID = 253,
NL80211_ATTR_PMK = 254,
NL80211_ATTR_SCHED_SCAN_MULTI = 255,
NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256,
NL80211_ATTR_WANT_1X_4WAY_HS = 257,
NL80211_ATTR_PMKR0_NAME = 258,
NL80211_ATTR_PORT_AUTHORIZED = 259,
NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260,
NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261,
NL80211_ATTR_NSS = 262,
NL80211_ATTR_ACK_SIGNAL = 263,
NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264,
NL80211_ATTR_TXQ_STATS = 265,
NL80211_ATTR_TXQ_LIMIT = 266,
NL80211_ATTR_TXQ_MEMORY_LIMIT = 267,
NL80211_ATTR_TXQ_QUANTUM = 268,
NL80211_ATTR_HE_CAPABILITY = 269,
NL80211_ATTR_FTM_RESPONDER = 270,
NL80211_ATTR_FTM_RESPONDER_STATS = 271,
NL80211_ATTR_TIMEOUT = 272,
NL80211_ATTR_PEER_MEASUREMENTS = 273,
NL80211_ATTR_AIRTIME_WEIGHT = 274,
NL80211_ATTR_STA_TX_POWER_SETTING = 275,
NL80211_ATTR_STA_TX_POWER = 276,
NL80211_ATTR_SAE_PASSWORD = 277,
NL80211_ATTR_TWT_RESPONDER = 278,
NL80211_ATTR_HE_OBSS_PD = 279,
NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280,
NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281,
NL80211_ATTR_VLAN_ID = 282,
NL80211_ATTR_HE_BSS_COLOR = 283,
NL80211_ATTR_IFTYPE_AKM_SUITES = 284,
NL80211_ATTR_TID_CONFIG = 285,
NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286,
NL80211_ATTR_PMK_LIFETIME = 287,
NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288,
NL80211_ATTR_RECEIVE_MULTICAST = 289,
NL80211_ATTR_WIPHY_FREQ_OFFSET = 290,
NL80211_ATTR_CENTER_FREQ1_OFFSET = 291,
NL80211_ATTR_SCAN_FREQ_KHZ = 292,
NL80211_ATTR_HE_6GHZ_CAPABILITY = 293,
NL80211_ATTR_FILS_DISCOVERY = 294,
NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295,
NL80211_ATTR_S1G_CAPABILITY = 296,
NL80211_ATTR_S1G_CAPABILITY_MASK = 297,
NL80211_ATTR_SAE_PWE = 298,
NL80211_ATTR_RECONNECT_REQUESTED = 299,
NL80211_ATTR_SAR_SPEC = 300,
NL80211_ATTR_DISABLE_HE = 301,
NL80211_ATTR_OBSS_COLOR_BITMAP = 302,
NL80211_ATTR_COLOR_CHANGE_COUNT = 303,
NL80211_ATTR_COLOR_CHANGE_COLOR = 304,
NL80211_ATTR_COLOR_CHANGE_ELEMS = 305,
NL80211_ATTR_MBSSID_CONFIG = 306,
NL80211_ATTR_MBSSID_ELEMS = 307,
NL80211_ATTR_RADAR_BACKGROUND = 308,
NL80211_ATTR_AP_SETTINGS_FLAGS = 309,
NL80211_ATTR_EHT_CAPABILITY = 310,
NL80211_ATTR_DISABLE_EHT = 311,
NL80211_ATTR_MLO_LINKS = 312,
NL80211_ATTR_MLO_LINK_ID = 313,
NL80211_ATTR_MLD_ADDR = 314,
NL80211_ATTR_MLO_SUPPORT = 315,
NL80211_ATTR_MAX_NUM_AKM_SUITES = 316,
NL80211_ATTR_EML_CAPABILITY = 317,
NL80211_ATTR_MLD_CAPA_AND_OPS = 318,
NL80211_ATTR_TX_HW_TIMESTAMP = 319,
NL80211_ATTR_RX_HW_TIMESTAMP = 320,
NL80211_ATTR_TD_BITMAP = 321,
NL80211_ATTR_PUNCT_BITMAP = 322,
NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 323,
NL80211_ATTR_HW_TIMESTAMP_ENABLED = 324,
NL80211_ATTR_EMA_RNR_ELEMS = 325,
NL80211_ATTR_MLO_LINK_DISABLED = 326,
NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 327,
NL80211_ATTR_MLO_TTLM_DLINK = 328,
NL80211_ATTR_MLO_TTLM_ULINK = 329,
NL80211_ATTR_ASSOC_SPP_AMSDU = 330,
__NL80211_ATTR_AFTER_LAST = 331,
NUM_NL80211_ATTR = 331,
NL80211_ATTR_MAX = 330,
};
enum nl80211_rate_info {
__NL80211_RATE_INFO_INVALID = 0,
NL80211_RATE_INFO_BITRATE = 1,
NL80211_RATE_INFO_MCS = 2,
NL80211_RATE_INFO_40_MHZ_WIDTH = 3,
NL80211_RATE_INFO_SHORT_GI = 4,
NL80211_RATE_INFO_BITRATE32 = 5,
NL80211_RATE_INFO_VHT_MCS = 6,
NL80211_RATE_INFO_VHT_NSS = 7,
NL80211_RATE_INFO_80_MHZ_WIDTH = 8,
NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9,
NL80211_RATE_INFO_160_MHZ_WIDTH = 10,
NL80211_RATE_INFO_10_MHZ_WIDTH = 11,
NL80211_RATE_INFO_5_MHZ_WIDTH = 12,
NL80211_RATE_INFO_HE_MCS = 13,
NL80211_RATE_INFO_HE_NSS = 14,
NL80211_RATE_INFO_HE_GI = 15,
NL80211_RATE_INFO_HE_DCM = 16,
NL80211_RATE_INFO_HE_RU_ALLOC = 17,
NL80211_RATE_INFO_320_MHZ_WIDTH = 18,
NL80211_RATE_INFO_EHT_MCS = 19,
NL80211_RATE_INFO_EHT_NSS = 20,
NL80211_RATE_INFO_EHT_GI = 21,
NL80211_RATE_INFO_EHT_RU_ALLOC = 22,
NL80211_RATE_INFO_S1G_MCS = 23,
NL80211_RATE_INFO_S1G_NSS = 24,
NL80211_RATE_INFO_1_MHZ_WIDTH = 25,
NL80211_RATE_INFO_2_MHZ_WIDTH = 26,
NL80211_RATE_INFO_4_MHZ_WIDTH = 27,
NL80211_RATE_INFO_8_MHZ_WIDTH = 28,
NL80211_RATE_INFO_16_MHZ_WIDTH = 29,
__NL80211_RATE_INFO_AFTER_LAST = 30,
NL80211_RATE_INFO_MAX = 29,
};
enum plink_actions {
NL80211_PLINK_ACTION_NO_ACTION = 0,
NL80211_PLINK_ACTION_OPEN = 1,
NL80211_PLINK_ACTION_BLOCK = 2,
NUM_NL80211_PLINK_ACTIONS = 3,
};
enum nl80211_multicast_groups {
NL80211_MCGRP_CONFIG = 0,
NL80211_MCGRP_SCAN = 1,
NL80211_MCGRP_REGULATORY = 2,
NL80211_MCGRP_MLME = 3,
NL80211_MCGRP_VENDOR = 4,
NL80211_MCGRP_NAN = 5,
NL80211_MCGRP_TESTMODE = 6,
};
enum nl80211_nan_match_attributes {
__NL80211_NAN_MATCH_INVALID = 0,
NL80211_NAN_MATCH_FUNC_LOCAL = 1,
NL80211_NAN_MATCH_FUNC_PEER = 2,
NUM_NL80211_NAN_MATCH_ATTR = 3,
NL80211_NAN_MATCH_ATTR_MAX = 2,
};
enum nl80211_nan_func_attributes {
__NL80211_NAN_FUNC_INVALID = 0,
NL80211_NAN_FUNC_TYPE = 1,
NL80211_NAN_FUNC_SERVICE_ID = 2,
NL80211_NAN_FUNC_PUBLISH_TYPE = 3,
NL80211_NAN_FUNC_PUBLISH_BCAST = 4,
NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 5,
NL80211_NAN_FUNC_FOLLOW_UP_ID = 6,
NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 7,
NL80211_NAN_FUNC_FOLLOW_UP_DEST = 8,
NL80211_NAN_FUNC_CLOSE_RANGE = 9,
NL80211_NAN_FUNC_TTL = 10,
NL80211_NAN_FUNC_SERVICE_INFO = 11,
NL80211_NAN_FUNC_SRF = 12,
NL80211_NAN_FUNC_RX_MATCH_FILTER = 13,
NL80211_NAN_FUNC_TX_MATCH_FILTER = 14,
NL80211_NAN_FUNC_INSTANCE_ID = 15,
NL80211_NAN_FUNC_TERM_REASON = 16,
NUM_NL80211_NAN_FUNC_ATTR = 17,
NL80211_NAN_FUNC_ATTR_MAX = 16,
};
enum nl80211_key_type {
NL80211_KEYTYPE_GROUP = 0,
NL80211_KEYTYPE_PAIRWISE = 1,
NL80211_KEYTYPE_PEERKEY = 2,
NUM_NL80211_KEYTYPES = 3,
};
enum nl80211_connect_failed_reason {
NL80211_CONN_FAIL_MAX_CLIENTS = 0,
NL80211_CONN_FAIL_BLOCKED_CLIENT = 1,
};
enum nl80211_attr_cqm {
__NL80211_ATTR_CQM_INVALID = 0,
NL80211_ATTR_CQM_RSSI_THOLD = 1,
NL80211_ATTR_CQM_RSSI_HYST = 2,
NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 3,
NL80211_ATTR_CQM_PKT_LOSS_EVENT = 4,
NL80211_ATTR_CQM_TXE_RATE = 5,
NL80211_ATTR_CQM_TXE_PKTS = 6,
NL80211_ATTR_CQM_TXE_INTVL = 7,
NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 8,
NL80211_ATTR_CQM_RSSI_LEVEL = 9,
__NL80211_ATTR_CQM_AFTER_LAST = 10,
NL80211_ATTR_CQM_MAX = 9,
};
enum nl80211_wowlan_triggers {
__NL80211_WOWLAN_TRIG_INVALID = 0,
NL80211_WOWLAN_TRIG_ANY = 1,
NL80211_WOWLAN_TRIG_DISCONNECT = 2,
NL80211_WOWLAN_TRIG_MAGIC_PKT = 3,
NL80211_WOWLAN_TRIG_PKT_PATTERN = 4,
NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 5,
NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 6,
NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 7,
NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 8,
NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 9,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 10,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 11,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 12,
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 13,
NL80211_WOWLAN_TRIG_TCP_CONNECTION = 14,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 15,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 16,
NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 17,
NL80211_WOWLAN_TRIG_NET_DETECT = 18,
NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 19,
NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 20,
NUM_NL80211_WOWLAN_TRIG = 21,
MAX_NL80211_WOWLAN_TRIG = 20,
};
enum nl80211_txq_attr {
__NL80211_TXQ_ATTR_INVALID = 0,
NL80211_TXQ_ATTR_AC = 1,
NL80211_TXQ_ATTR_TXOP = 2,
NL80211_TXQ_ATTR_CWMIN = 3,
NL80211_TXQ_ATTR_CWMAX = 4,
NL80211_TXQ_ATTR_AIFS = 5,
__NL80211_TXQ_ATTR_AFTER_LAST = 6,
NL80211_TXQ_ATTR_MAX = 5,
};
enum nl80211_mntr_flags {
__NL80211_MNTR_FLAG_INVALID = 0,
NL80211_MNTR_FLAG_FCSFAIL = 1,
NL80211_MNTR_FLAG_PLCPFAIL = 2,
NL80211_MNTR_FLAG_CONTROL = 3,
NL80211_MNTR_FLAG_OTHER_BSS = 4,
NL80211_MNTR_FLAG_COOK_FRAMES = 5,
NL80211_MNTR_FLAG_ACTIVE = 6,
__NL80211_MNTR_FLAG_AFTER_LAST = 7,
NL80211_MNTR_FLAG_MAX = 6,
};
enum nl80211_key_attributes {
__NL80211_KEY_INVALID = 0,
NL80211_KEY_DATA = 1,
NL80211_KEY_IDX = 2,
NL80211_KEY_CIPHER = 3,
NL80211_KEY_SEQ = 4,
NL80211_KEY_DEFAULT = 5,
NL80211_KEY_DEFAULT_MGMT = 6,
NL80211_KEY_TYPE = 7,
NL80211_KEY_DEFAULT_TYPES = 8,
NL80211_KEY_MODE = 9,
NL80211_KEY_DEFAULT_BEACON = 10,
__NL80211_KEY_AFTER_LAST = 11,
NL80211_KEY_MAX = 10,
};
enum nl80211_key_default_types {
__NL80211_KEY_DEFAULT_TYPE_INVALID = 0,
NL80211_KEY_DEFAULT_TYPE_UNICAST = 1,
NL80211_KEY_DEFAULT_TYPE_MULTICAST = 2,
NUM_NL80211_KEY_DEFAULT_TYPES = 3,
};
enum nl80211_ftm_responder_attributes {
__NL80211_FTM_RESP_ATTR_INVALID = 0,
NL80211_FTM_RESP_ATTR_ENABLED = 1,
NL80211_FTM_RESP_ATTR_LCI = 2,
NL80211_FTM_RESP_ATTR_CIVICLOC = 3,
__NL80211_FTM_RESP_ATTR_LAST = 4,
NL80211_FTM_RESP_ATTR_MAX = 3,
};
enum nl80211_bss_color_attributes {
__NL80211_HE_BSS_COLOR_ATTR_INVALID = 0,
NL80211_HE_BSS_COLOR_ATTR_COLOR = 1,
NL80211_HE_BSS_COLOR_ATTR_DISABLED = 2,
NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 3,
__NL80211_HE_BSS_COLOR_ATTR_LAST = 4,
NL80211_HE_BSS_COLOR_ATTR_MAX = 3,
};
enum nl80211_fils_discovery_attributes {
__NL80211_FILS_DISCOVERY_ATTR_INVALID = 0,
NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 1,
NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 2,
NL80211_FILS_DISCOVERY_ATTR_TMPL = 3,
__NL80211_FILS_DISCOVERY_ATTR_LAST = 4,
NL80211_FILS_DISCOVERY_ATTR_MAX = 3,
};
enum nl80211_unsol_bcast_probe_resp_attributes {
__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INVALID = 0,
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 1,
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 2,
__NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_LAST = 3,
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 2,
};
enum nl80211_ap_settings_flags {
NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1,
NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2,
};
enum nl80211_tx_rate_attributes {
__NL80211_TXRATE_INVALID = 0,
NL80211_TXRATE_LEGACY = 1,
NL80211_TXRATE_HT = 2,
NL80211_TXRATE_VHT = 3,
NL80211_TXRATE_GI = 4,
NL80211_TXRATE_HE = 5,
NL80211_TXRATE_HE_GI = 6,
NL80211_TXRATE_HE_LTF = 7,
__NL80211_TXRATE_AFTER_LAST = 8,
NL80211_TXRATE_MAX = 7,
};
enum nl80211_obss_pd_attributes {
__NL80211_HE_OBSS_PD_ATTR_INVALID = 0,
NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 1,
NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 2,
NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 3,
NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 4,
NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 5,
NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 6,
__NL80211_HE_OBSS_PD_ATTR_LAST = 7,
NL80211_HE_OBSS_PD_ATTR_MAX = 6,
};
enum nl80211_mbssid_config_attributes {
__NL80211_MBSSID_CONFIG_ATTR_INVALID = 0,
NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 1,
NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 2,
NL80211_MBSSID_CONFIG_ATTR_INDEX = 3,
NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 4,
NL80211_MBSSID_CONFIG_ATTR_EMA = 5,
__NL80211_MBSSID_CONFIG_ATTR_LAST = 6,
NL80211_MBSSID_CONFIG_ATTR_MAX = 5,
};
enum nl80211_sta_wme_attr {
__NL80211_STA_WME_INVALID = 0,
NL80211_STA_WME_UAPSD_QUEUES = 1,
NL80211_STA_WME_MAX_SP = 2,
__NL80211_STA_WME_AFTER_LAST = 3,
NL80211_STA_WME_MAX = 2,
};
enum mpath_info_flags {
MPATH_INFO_FRAME_QLEN = 1,
MPATH_INFO_SN = 2,
MPATH_INFO_METRIC = 4,
MPATH_INFO_EXPTIME = 8,
MPATH_INFO_DISCOVERY_TIMEOUT = 16,
MPATH_INFO_DISCOVERY_RETRIES = 32,
MPATH_INFO_FLAGS = 64,
MPATH_INFO_HOP_COUNT = 128,
MPATH_INFO_PATH_CHANGE = 256,
};
enum nl80211_mpath_info {
__NL80211_MPATH_INFO_INVALID = 0,
NL80211_MPATH_INFO_FRAME_QLEN = 1,
NL80211_MPATH_INFO_SN = 2,
NL80211_MPATH_INFO_METRIC = 3,
NL80211_MPATH_INFO_EXPTIME = 4,
NL80211_MPATH_INFO_FLAGS = 5,
NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 6,
NL80211_MPATH_INFO_DISCOVERY_RETRIES = 7,
NL80211_MPATH_INFO_HOP_COUNT = 8,
NL80211_MPATH_INFO_PATH_CHANGE = 9,
__NL80211_MPATH_INFO_AFTER_LAST = 10,
NL80211_MPATH_INFO_MAX = 9,
};
enum nl80211_reg_rule_attr {
__NL80211_REG_RULE_ATTR_INVALID = 0,
NL80211_ATTR_REG_RULE_FLAGS = 1,
NL80211_ATTR_FREQ_RANGE_START = 2,
NL80211_ATTR_FREQ_RANGE_END = 3,
NL80211_ATTR_FREQ_RANGE_MAX_BW = 4,
NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5,
NL80211_ATTR_POWER_RULE_MAX_EIRP = 6,
NL80211_ATTR_DFS_CAC_TIME = 7,
NL80211_ATTR_POWER_RULE_PSD = 8,
__NL80211_REG_RULE_ATTR_AFTER_LAST = 9,
NL80211_REG_RULE_ATTR_MAX = 8,
};
enum nl80211_meshconf_params {
__NL80211_MESHCONF_INVALID = 0,
NL80211_MESHCONF_RETRY_TIMEOUT = 1,
NL80211_MESHCONF_CONFIRM_TIMEOUT = 2,
NL80211_MESHCONF_HOLDING_TIMEOUT = 3,
NL80211_MESHCONF_MAX_PEER_LINKS = 4,
NL80211_MESHCONF_MAX_RETRIES = 5,
NL80211_MESHCONF_TTL = 6,
NL80211_MESHCONF_AUTO_OPEN_PLINKS = 7,
NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 8,
NL80211_MESHCONF_PATH_REFRESH_TIME = 9,
NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 10,
NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 11,
NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 12,
NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 13,
NL80211_MESHCONF_HWMP_ROOTMODE = 14,
NL80211_MESHCONF_ELEMENT_TTL = 15,
NL80211_MESHCONF_HWMP_RANN_INTERVAL = 16,
NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 17,
NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 18,
NL80211_MESHCONF_FORWARDING = 19,
NL80211_MESHCONF_RSSI_THRESHOLD = 20,
NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 21,
NL80211_MESHCONF_HT_OPMODE = 22,
NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 23,
NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 24,
NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 25,
NL80211_MESHCONF_POWER_MODE = 26,
NL80211_MESHCONF_AWAKE_WINDOW = 27,
NL80211_MESHCONF_PLINK_TIMEOUT = 28,
NL80211_MESHCONF_CONNECTED_TO_GATE = 29,
NL80211_MESHCONF_NOLEARN = 30,
NL80211_MESHCONF_CONNECTED_TO_AS = 31,
__NL80211_MESHCONF_ATTR_AFTER_LAST = 32,
NL80211_MESHCONF_ATTR_MAX = 31,
};
enum nl80211_bss {
__NL80211_BSS_INVALID = 0,
NL80211_BSS_BSSID = 1,
NL80211_BSS_FREQUENCY = 2,
NL80211_BSS_TSF = 3,
NL80211_BSS_BEACON_INTERVAL = 4,
NL80211_BSS_CAPABILITY = 5,
NL80211_BSS_INFORMATION_ELEMENTS = 6,
NL80211_BSS_SIGNAL_MBM = 7,
NL80211_BSS_SIGNAL_UNSPEC = 8,
NL80211_BSS_STATUS = 9,
NL80211_BSS_SEEN_MS_AGO = 10,
NL80211_BSS_BEACON_IES = 11,
NL80211_BSS_CHAN_WIDTH = 12,
NL80211_BSS_BEACON_TSF = 13,
NL80211_BSS_PRESP_DATA = 14,
NL80211_BSS_LAST_SEEN_BOOTTIME = 15,
NL80211_BSS_PAD = 16,
NL80211_BSS_PARENT_TSF = 17,
NL80211_BSS_PARENT_BSSID = 18,
NL80211_BSS_CHAIN_SIGNAL = 19,
NL80211_BSS_FREQUENCY_OFFSET = 20,
NL80211_BSS_MLO_LINK_ID = 21,
NL80211_BSS_MLD_ADDR = 22,
NL80211_BSS_USE_FOR = 23,
NL80211_BSS_CANNOT_USE_REASONS = 24,
__NL80211_BSS_AFTER_LAST = 25,
NL80211_BSS_MAX = 24,
};
enum nl80211_bss_status {
NL80211_BSS_STATUS_AUTHENTICATED = 0,
NL80211_BSS_STATUS_ASSOCIATED = 1,
NL80211_BSS_STATUS_IBSS_JOINED = 2,
};
enum nl80211_sched_scan_match_attr {
__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID = 0,
NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 1,
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 2,
NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 3,
NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 4,
NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 5,
NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 6,
__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST = 7,
NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 6,
};
enum nl80211_sched_scan_plan {
__NL80211_SCHED_SCAN_PLAN_INVALID = 0,
NL80211_SCHED_SCAN_PLAN_INTERVAL = 1,
NL80211_SCHED_SCAN_PLAN_ITERATIONS = 2,
__NL80211_SCHED_SCAN_PLAN_AFTER_LAST = 3,
NL80211_SCHED_SCAN_PLAN_MAX = 2,
};
enum cfg80211_connect_params_changed {
UPDATE_ASSOC_IES = 1,
UPDATE_FILS_ERP_INFO = 2,
UPDATE_AUTH_TYPE = 4,
};
enum nl80211_survey_info {
__NL80211_SURVEY_INFO_INVALID = 0,
NL80211_SURVEY_INFO_FREQUENCY = 1,
NL80211_SURVEY_INFO_NOISE = 2,
NL80211_SURVEY_INFO_IN_USE = 3,
NL80211_SURVEY_INFO_TIME = 4,
NL80211_SURVEY_INFO_TIME_BUSY = 5,
NL80211_SURVEY_INFO_TIME_EXT_BUSY = 6,
NL80211_SURVEY_INFO_TIME_RX = 7,
NL80211_SURVEY_INFO_TIME_TX = 8,
NL80211_SURVEY_INFO_TIME_SCAN = 9,
NL80211_SURVEY_INFO_PAD = 10,
NL80211_SURVEY_INFO_TIME_BSS_RX = 11,
NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 12,
__NL80211_SURVEY_INFO_AFTER_LAST = 13,
NL80211_SURVEY_INFO_MAX = 12,
};
enum nl80211_ps_state {
NL80211_PS_DISABLED = 0,
NL80211_PS_ENABLED = 1,
};
enum nl80211_mesh_setup_params {
__NL80211_MESH_SETUP_INVALID = 0,
NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 1,
NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 2,
NL80211_MESH_SETUP_IE = 3,
NL80211_MESH_SETUP_USERSPACE_AUTH = 4,
NL80211_MESH_SETUP_USERSPACE_AMPE = 5,
NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 6,
NL80211_MESH_SETUP_USERSPACE_MPM = 7,
NL80211_MESH_SETUP_AUTH_PROTOCOL = 8,
__NL80211_MESH_SETUP_ATTR_AFTER_LAST = 9,
NL80211_MESH_SETUP_ATTR_MAX = 8,
};
enum ieee80211_mesh_sync_method {
IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1,
IEEE80211_SYNC_METHOD_VENDOR = 255,
};
enum ieee80211_mesh_path_protocol {
IEEE80211_PATH_PROTOCOL_HWMP = 1,
IEEE80211_PATH_PROTOCOL_VENDOR = 255,
};
enum ieee80211_mesh_path_metric {
IEEE80211_PATH_METRIC_AIRTIME = 1,
IEEE80211_PATH_METRIC_VENDOR = 255,
};
enum nl80211_packet_pattern_attr {
__NL80211_PKTPAT_INVALID = 0,
NL80211_PKTPAT_MASK = 1,
NL80211_PKTPAT_PATTERN = 2,
NL80211_PKTPAT_OFFSET = 3,
NUM_NL80211_PKTPAT = 4,
MAX_NL80211_PKTPAT = 3,
};
enum nl80211_wowlan_tcp_attrs {
__NL80211_WOWLAN_TCP_INVALID = 0,
NL80211_WOWLAN_TCP_SRC_IPV4 = 1,
NL80211_WOWLAN_TCP_DST_IPV4 = 2,
NL80211_WOWLAN_TCP_DST_MAC = 3,
NL80211_WOWLAN_TCP_SRC_PORT = 4,
NL80211_WOWLAN_TCP_DST_PORT = 5,
NL80211_WOWLAN_TCP_DATA_PAYLOAD = 6,
NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 7,
NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 8,
NL80211_WOWLAN_TCP_DATA_INTERVAL = 9,
NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 10,
NL80211_WOWLAN_TCP_WAKE_MASK = 11,
NUM_NL80211_WOWLAN_TCP = 12,
MAX_NL80211_WOWLAN_TCP = 11,
};
enum nl80211_rekey_data {
__NL80211_REKEY_DATA_INVALID = 0,
NL80211_REKEY_DATA_KEK = 1,
NL80211_REKEY_DATA_KCK = 2,
NL80211_REKEY_DATA_REPLAY_CTR = 3,
NL80211_REKEY_DATA_AKM = 4,
NUM_NL80211_REKEY_DATA = 5,
MAX_NL80211_REKEY_DATA = 4,
};
enum nl80211_nan_publish_type {
NL80211_NAN_SOLICITED_PUBLISH = 1,
NL80211_NAN_UNSOLICITED_PUBLISH = 2,
};
enum nl80211_nan_srf_attributes {
__NL80211_NAN_SRF_INVALID = 0,
NL80211_NAN_SRF_INCLUDE = 1,
NL80211_NAN_SRF_BF = 2,
NL80211_NAN_SRF_BF_IDX = 3,
NL80211_NAN_SRF_MAC_ADDRS = 4,
NUM_NL80211_NAN_SRF_ATTR = 5,
NL80211_NAN_SRF_ATTR_MAX = 4,
};
enum nl80211_protocol_features {
NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1,
};
enum nl80211_attr_coalesce_rule {
__NL80211_COALESCE_RULE_INVALID = 0,
NL80211_ATTR_COALESCE_RULE_DELAY = 1,
NL80211_ATTR_COALESCE_RULE_CONDITION = 2,
NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 3,
NUM_NL80211_ATTR_COALESCE_RULE = 4,
NL80211_ATTR_COALESCE_RULE_MAX = 3,
};
enum wiphy_vendor_command_flags {
WIPHY_VENDOR_CMD_NEED_WDEV = 1,
WIPHY_VENDOR_CMD_NEED_NETDEV = 2,
WIPHY_VENDOR_CMD_NEED_RUNNING = 4,
};
enum nl80211_tid_config_attr {
__NL80211_TID_CONFIG_ATTR_INVALID = 0,
NL80211_TID_CONFIG_ATTR_PAD = 1,
NL80211_TID_CONFIG_ATTR_VIF_SUPP = 2,
NL80211_TID_CONFIG_ATTR_PEER_SUPP = 3,
NL80211_TID_CONFIG_ATTR_OVERRIDE = 4,
NL80211_TID_CONFIG_ATTR_TIDS = 5,
NL80211_TID_CONFIG_ATTR_NOACK = 6,
NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 7,
NL80211_TID_CONFIG_ATTR_RETRY_LONG = 8,
NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 9,
NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 10,
NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 11,
NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 12,
NL80211_TID_CONFIG_ATTR_TX_RATE = 13,
__NL80211_TID_CONFIG_ATTR_AFTER_LAST = 14,
NL80211_TID_CONFIG_ATTR_MAX = 13,
};
enum nl80211_sar_attrs {
__NL80211_SAR_ATTR_INVALID = 0,
NL80211_SAR_ATTR_TYPE = 1,
NL80211_SAR_ATTR_SPECS = 2,
__NL80211_SAR_ATTR_LAST = 3,
NL80211_SAR_ATTR_MAX = 2,
};
enum nl80211_sar_specs_attrs {
__NL80211_SAR_ATTR_SPECS_INVALID = 0,
NL80211_SAR_ATTR_SPECS_POWER = 1,
NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 2,
NL80211_SAR_ATTR_SPECS_START_FREQ = 3,
NL80211_SAR_ATTR_SPECS_END_FREQ = 4,
__NL80211_SAR_ATTR_SPECS_LAST = 5,
NL80211_SAR_ATTR_SPECS_MAX = 4,
};
enum nl80211_band_attr {
__NL80211_BAND_ATTR_INVALID = 0,
NL80211_BAND_ATTR_FREQS = 1,
NL80211_BAND_ATTR_RATES = 2,
NL80211_BAND_ATTR_HT_MCS_SET = 3,
NL80211_BAND_ATTR_HT_CAPA = 4,
NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5,
NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6,
NL80211_BAND_ATTR_VHT_MCS_SET = 7,
NL80211_BAND_ATTR_VHT_CAPA = 8,
NL80211_BAND_ATTR_IFTYPE_DATA = 9,
NL80211_BAND_ATTR_EDMG_CHANNELS = 10,
NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11,
NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 12,
NL80211_BAND_ATTR_S1G_CAPA = 13,
__NL80211_BAND_ATTR_AFTER_LAST = 14,
NL80211_BAND_ATTR_MAX = 13,
};
enum nl80211_bitrate_attr {
__NL80211_BITRATE_ATTR_INVALID = 0,
NL80211_BITRATE_ATTR_RATE = 1,
NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 2,
__NL80211_BITRATE_ATTR_AFTER_LAST = 3,
NL80211_BITRATE_ATTR_MAX = 2,
};
enum nl80211_band_iftype_attr {
__NL80211_BAND_IFTYPE_ATTR_INVALID = 0,
NL80211_BAND_IFTYPE_ATTR_IFTYPES = 1,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 2,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 3,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 4,
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 5,
NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 6,
NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 7,
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 8,
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 9,
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 10,
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 11,
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST = 12,
NL80211_BAND_IFTYPE_ATTR_MAX = 11,
};
enum nl80211_if_combination_attrs {
NL80211_IFACE_COMB_UNSPEC = 0,
NL80211_IFACE_COMB_LIMITS = 1,
NL80211_IFACE_COMB_MAXNUM = 2,
NL80211_IFACE_COMB_STA_AP_BI_MATCH = 3,
NL80211_IFACE_COMB_NUM_CHANNELS = 4,
NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 5,
NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 6,
NL80211_IFACE_COMB_BI_MIN_GCD = 7,
NUM_NL80211_IFACE_COMB = 8,
MAX_NL80211_IFACE_COMB = 7,
};
enum nl80211_iface_limit_attrs {
NL80211_IFACE_LIMIT_UNSPEC = 0,
NL80211_IFACE_LIMIT_MAX = 1,
NL80211_IFACE_LIMIT_TYPES = 2,
NUM_NL80211_IFACE_LIMIT = 3,
MAX_NL80211_IFACE_LIMIT = 2,
};
enum nl80211_peer_measurement_attrs {
__NL80211_PMSR_ATTR_INVALID = 0,
NL80211_PMSR_ATTR_MAX_PEERS = 1,
NL80211_PMSR_ATTR_REPORT_AP_TSF = 2,
NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 3,
NL80211_PMSR_ATTR_TYPE_CAPA = 4,
NL80211_PMSR_ATTR_PEERS = 5,
NUM_NL80211_PMSR_ATTR = 6,
NL80211_PMSR_ATTR_MAX = 5,
};
enum nl80211_peer_measurement_ftm_capa {
__NL80211_PMSR_FTM_CAPA_ATTR_INVALID = 0,
NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 1,
NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 2,
NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 3,
NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 4,
NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 5,
NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 6,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 7,
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 8,
NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 9,
NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 10,
NUM_NL80211_PMSR_FTM_CAPA_ATTR = 11,
NL80211_PMSR_FTM_CAPA_ATTR_MAX = 10,
};
enum nl80211_iftype_akm_attributes {
__NL80211_IFTYPE_AKM_ATTR_INVALID = 0,
NL80211_IFTYPE_AKM_ATTR_IFTYPES = 1,
NL80211_IFTYPE_AKM_ATTR_SUITES = 2,
__NL80211_IFTYPE_AKM_ATTR_LAST = 3,
NL80211_IFTYPE_AKM_ATTR_MAX = 2,
};
enum nl80211_reg_type {
NL80211_REGDOM_TYPE_COUNTRY = 0,
NL80211_REGDOM_TYPE_WORLD = 1,
NL80211_REGDOM_TYPE_CUSTOM_WORLD = 2,
NL80211_REGDOM_TYPE_INTERSECTION = 3,
};
enum nl80211_frequency_attr {
__NL80211_FREQUENCY_ATTR_INVALID = 0,
NL80211_FREQUENCY_ATTR_FREQ = 1,
NL80211_FREQUENCY_ATTR_DISABLED = 2,
NL80211_FREQUENCY_ATTR_NO_IR = 3,
__NL80211_FREQUENCY_ATTR_NO_IBSS = 4,
NL80211_FREQUENCY_ATTR_RADAR = 5,
NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 6,
NL80211_FREQUENCY_ATTR_DFS_STATE = 7,
NL80211_FREQUENCY_ATTR_DFS_TIME = 8,
NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 9,
NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 10,
NL80211_FREQUENCY_ATTR_NO_80MHZ = 11,
NL80211_FREQUENCY_ATTR_NO_160MHZ = 12,
NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 13,
NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 14,
NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 15,
NL80211_FREQUENCY_ATTR_NO_20MHZ = 16,
NL80211_FREQUENCY_ATTR_NO_10MHZ = 17,
NL80211_FREQUENCY_ATTR_WMM = 18,
NL80211_FREQUENCY_ATTR_NO_HE = 19,
NL80211_FREQUENCY_ATTR_OFFSET = 20,
NL80211_FREQUENCY_ATTR_1MHZ = 21,
NL80211_FREQUENCY_ATTR_2MHZ = 22,
NL80211_FREQUENCY_ATTR_4MHZ = 23,
NL80211_FREQUENCY_ATTR_8MHZ = 24,
NL80211_FREQUENCY_ATTR_16MHZ = 25,
NL80211_FREQUENCY_ATTR_NO_320MHZ = 26,
NL80211_FREQUENCY_ATTR_NO_EHT = 27,
NL80211_FREQUENCY_ATTR_PSD = 28,
NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 29,
NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 30,
NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 31,
NL80211_FREQUENCY_ATTR_CAN_MONITOR = 32,
__NL80211_FREQUENCY_ATTR_AFTER_LAST = 33,
NL80211_FREQUENCY_ATTR_MAX = 32,
};
enum nl80211_wmm_rule {
__NL80211_WMMR_INVALID = 0,
NL80211_WMMR_CW_MIN = 1,
NL80211_WMMR_CW_MAX = 2,
NL80211_WMMR_AIFSN = 3,
NL80211_WMMR_TXOP = 4,
__NL80211_WMMR_LAST = 5,
NL80211_WMMR_MAX = 4,
};
enum nl80211_sta_bss_param {
__NL80211_STA_BSS_PARAM_INVALID = 0,
NL80211_STA_BSS_PARAM_CTS_PROT = 1,
NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 2,
NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 3,
NL80211_STA_BSS_PARAM_DTIM_PERIOD = 4,
NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 5,
__NL80211_STA_BSS_PARAM_AFTER_LAST = 6,
NL80211_STA_BSS_PARAM_MAX = 5,
};
enum nl80211_pmksa_candidate_attr {
__NL80211_PMKSA_CANDIDATE_INVALID = 0,
NL80211_PMKSA_CANDIDATE_INDEX = 1,
NL80211_PMKSA_CANDIDATE_BSSID = 2,
NL80211_PMKSA_CANDIDATE_PREAUTH = 3,
NUM_NL80211_PMKSA_CANDIDATE = 4,
MAX_NL80211_PMKSA_CANDIDATE = 3,
};
struct cfg80211_ft_event_params {
const u8 *ies;
size_t ies_len;
const u8 *target_ap;
const u8 *ric_ies;
size_t ric_ies_len;
};
struct key_parse {
struct key_params p;
int idx;
int type;
bool def;
bool defmgmt;
bool defbeacon;
bool def_uni;
bool def_multi;
};
struct nl80211_txrate_vht {
__u16 mcs[8];
};
struct nl80211_txrate_he {
__u16 mcs[8];
};
struct nl80211_dump_wiphy_state {
s64 filter_wiphy;
long start;
long split_start;
long band_start;
long chan_start;
long capa_start;
bool split;
};
struct nl80211_mlme_event {
enum nl80211_commands cmd;
const u8 *buf;
size_t buf_len;
int uapsd_queues;
const u8 *req_ies;
size_t req_ies_len;
bool reconnect;
};
struct get_key_cookie {
struct sk_buff *msg;
int error;
int idx;
};
struct nl80211_bss_select_rssi_adjust {
__u8 band;
__s8 delta;
};
struct nl80211_pattern_support {
__u32 max_patterns;
__u32 min_pattern_len;
__u32 max_pattern_len;
__u32 max_pkt_offset;
};
struct nl80211_coalesce_rule_support {
__u32 max_rules;
struct nl80211_pattern_support pat;
__u32 max_delay;
};
typedef struct ldttss_desc ldt_desc;
struct user_desc {
unsigned int entry_number;
unsigned int base_addr;
unsigned int limit;
unsigned int seg_32bit: 1;
unsigned int contents: 2;
unsigned int read_exec_only: 1;
unsigned int limit_in_pages: 1;
unsigned int seg_not_present: 1;
unsigned int useable: 1;
unsigned int lm: 1;
};
enum {
GP_IDLE = 0,
GP_ENTER = 1,
GP_PASSED = 2,
GP_EXIT = 3,
GP_REPLAY = 4,
};
enum rcutorture_type {
RCU_FLAVOR = 0,
RCU_TASKS_FLAVOR = 1,
RCU_TASKS_RUDE_FLAVOR = 2,
RCU_TASKS_TRACING_FLAVOR = 3,
RCU_TRIVIAL_FLAVOR = 4,
SRCU_FLAVOR = 5,
INVALID_RCU_FLAVOR = 6,
};
struct bpf_iter__bpf_map {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_map *map;
};
};
struct bpf_iter_seq_map_info {
u32 map_id;
};
struct vmemmap_remap_walk {
void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *);
unsigned long nr_walked;
struct page *reuse_page;
unsigned long reuse_addr;
struct list_head *vmemmap_pages;
unsigned long flags;
};
struct mmp_struct {
__le32 mmp_magic;
__le32 mmp_seq;
__le64 mmp_time;
char mmp_nodename[64];
char mmp_bdevname[32];
__le16 mmp_check_interval;
__le16 mmp_pad1;
__le32 mmp_pad2[226];
__le32 mmp_checksum;
};
struct crypto_lskcipher_spawn {
struct crypto_spawn base;
};
struct uuidcmp {
const char *uuid;
int len;
};
enum {
SOCKET_URING_OP_SIOCINQ = 0,
SOCKET_URING_OP_SIOCOUTQ = 1,
SOCKET_URING_OP_GETSOCKOPT = 2,
SOCKET_URING_OP_SETSOCKOPT = 3,
};
typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *);
typedef enum {
ACPI_TRACE_AML_METHOD = 0,
ACPI_TRACE_AML_OPCODE = 1,
ACPI_TRACE_AML_REGION = 2,
} acpi_trace_event_type;
struct req {
struct req *next;
struct completion done;
int err;
const char *name;
umode_t mode;
kuid_t uid;
kgid_t gid;
struct device *dev;
};
enum iwl_tx_pm_timeouts {
PM_FRAME_NONE = 0,
PM_FRAME_MGMT = 2,
PM_FRAME_ASSOC = 3,
};
enum iwl_dump_control {
DUMP_TX_FIFO_FLUSH = 2,
};
enum iwl_tx_offload_assist_flags_pos {
TX_CMD_OFFLD_IP_HDR = 0,
TX_CMD_OFFLD_L4_EN = 6,
TX_CMD_OFFLD_L3_EN = 7,
TX_CMD_OFFLD_MH_SIZE = 8,
TX_CMD_OFFLD_PAD = 13,
TX_CMD_OFFLD_AMSDU = 14,
};
enum iwl_tx_cmd_flags {
IWL_TX_FLAGS_CMD_RATE = 1,
IWL_TX_FLAGS_ENCRYPT_DIS = 2,
IWL_TX_FLAGS_HIGH_PRI = 4,
IWL_TX_FLAGS_RTS = 8,
IWL_TX_FLAGS_CTS = 16,
};
struct tx_status {
u8 status;
u8 reserved[3];
};
struct iwl_fw_dbg_trigger_tx_status {
struct tx_status statuses[16];
__le32 reserved[2];
};
struct iwl_tx_path_flush_cmd_v1 {
__le32 queues_ctl;
__le16 flush_ctl;
__le16 reserved;
};
struct iwl_tx_cmd_gen3 {
__le16 len;
__le16 flags;
__le32 offload_assist;
struct iwl_dram_sec_info dram_info;
__le32 rate_n_flags;
u8 reserved[8];
struct ieee80211_hdr hdr[0];
};
struct iwl_mvm_ba_notif {
u8 sta_addr[6];
__le16 reserved;
u8 sta_id;
u8 tid;
__le16 seq_ctl;
__le64 bitmap;
__le16 scd_flow;
__le16 scd_ssn;
u8 txed;
u8 txed_2_done;
u8 reduced_txp;
u8 reserved1;
} __attribute__((packed));
struct iwl_mvm_compressed_ba_ratid {
u8 q_num;
u8 tid;
__le16 ssn;
};
struct iwl_mvm_compressed_ba_tfd {
__le16 q_num;
__le16 tfd_index;
u8 scd_queue;
u8 tid;
u8 reserved[2];
};
struct iwl_mvm_compressed_ba_notif {
__le32 flags;
u8 sta_id;
u8 reduced_txp;
u8 tlc_rate_info;
u8 retry_cnt;
__le32 query_byte_cnt;
__le16 query_frame_cnt;
__le16 txed;
__le16 done;
__le16 reserved;
__le32 wireless_time;
__le32 tx_rate;
__le16 tfd_cnt;
__le16 ra_tid_cnt;
union {
struct {
struct {} __empty_ra_tid;
struct iwl_mvm_compressed_ba_ratid ra_tid[0];
};
struct {
struct {} __empty_tfd;
struct iwl_mvm_compressed_ba_tfd tfd[0];
};
};
};
struct iwl_tx_path_flush_cmd {
__le32 sta_id;
__le16 tid_mask;
__le16 reserved;
};
struct iwl_flush_queue_info {
__le16 tid;
__le16 queue_num;
__le16 read_before_flush;
__le16 read_after_flush;
};
struct iwl_tx_path_flush_cmd_rsp {
__le16 sta_id;
__le16 num_flushed_queues;
struct iwl_flush_queue_info queues[16];
};
enum xhci_ep_reset_type {
EP_HARD_RESET = 0,
EP_SOFT_RESET = 1,
};
struct rtnl_link {
rtnl_doit_func doit;
rtnl_dumpit_func dumpit;
struct module *owner;
unsigned int flags;
struct callback_head rcu;
};
enum {
IFLA_OFFLOAD_XSTATS_UNSPEC = 0,
IFLA_OFFLOAD_XSTATS_CPU_HIT = 1,
IFLA_OFFLOAD_XSTATS_HW_S_INFO = 2,
IFLA_OFFLOAD_XSTATS_L3_STATS = 3,
__IFLA_OFFLOAD_XSTATS_MAX = 4,
};
enum rtnl_kinds {
RTNL_KIND_NEW = 0,
RTNL_KIND_DEL = 1,
RTNL_KIND_GET = 2,
RTNL_KIND_SET = 3,
};
enum {
IFLA_EVENT_NONE = 0,
IFLA_EVENT_REBOOT = 1,
IFLA_EVENT_FEATURES = 2,
IFLA_EVENT_BONDING_FAILOVER = 3,
IFLA_EVENT_NOTIFY_PEERS = 4,
IFLA_EVENT_IGMP_RESEND = 5,
IFLA_EVENT_BONDING_OPTIONS = 6,
};
enum {
IFLA_PROTO_DOWN_REASON_UNSPEC = 0,
IFLA_PROTO_DOWN_REASON_MASK = 1,
IFLA_PROTO_DOWN_REASON_VALUE = 2,
__IFLA_PROTO_DOWN_REASON_CNT = 3,
IFLA_PROTO_DOWN_REASON_MAX = 2,
};
enum {
IFLA_VF_INFO_UNSPEC = 0,
IFLA_VF_INFO = 1,
__IFLA_VF_INFO_MAX = 2,
};
enum {
IFLA_VF_UNSPEC = 0,
IFLA_VF_MAC = 1,
IFLA_VF_VLAN = 2,
IFLA_VF_TX_RATE = 3,
IFLA_VF_SPOOFCHK = 4,
IFLA_VF_LINK_STATE = 5,
IFLA_VF_RATE = 6,
IFLA_VF_RSS_QUERY_EN = 7,
IFLA_VF_STATS = 8,
IFLA_VF_TRUST = 9,
IFLA_VF_IB_NODE_GUID = 10,
IFLA_VF_IB_PORT_GUID = 11,
IFLA_VF_VLAN_LIST = 12,
IFLA_VF_BROADCAST = 13,
__IFLA_VF_MAX = 14,
};
enum {
IFLA_VF_VLAN_INFO_UNSPEC = 0,
IFLA_VF_VLAN_INFO = 1,
__IFLA_VF_VLAN_INFO_MAX = 2,
};
enum {
IFLA_VF_STATS_RX_PACKETS = 0,
IFLA_VF_STATS_TX_PACKETS = 1,
IFLA_VF_STATS_RX_BYTES = 2,
IFLA_VF_STATS_TX_BYTES = 3,
IFLA_VF_STATS_BROADCAST = 4,
IFLA_VF_STATS_MULTICAST = 5,
IFLA_VF_STATS_PAD = 6,
IFLA_VF_STATS_RX_DROPPED = 7,
IFLA_VF_STATS_TX_DROPPED = 8,
__IFLA_VF_STATS_MAX = 9,
};
enum {
IFLA_VF_PORT_UNSPEC = 0,
IFLA_VF_PORT = 1,
__IFLA_VF_PORT_MAX = 2,
};
enum {
IFLA_PORT_UNSPEC = 0,
IFLA_PORT_VF = 1,
IFLA_PORT_PROFILE = 2,
IFLA_PORT_VSI_TYPE = 3,
IFLA_PORT_INSTANCE_UUID = 4,
IFLA_PORT_HOST_UUID = 5,
IFLA_PORT_REQUEST = 6,
IFLA_PORT_RESPONSE = 7,
__IFLA_PORT_MAX = 8,
};
enum {
XDP_ATTACHED_NONE = 0,
XDP_ATTACHED_DRV = 1,
XDP_ATTACHED_SKB = 2,
XDP_ATTACHED_HW = 3,
XDP_ATTACHED_MULTI = 4,
};
enum {
IFLA_XDP_UNSPEC = 0,
IFLA_XDP_FD = 1,
IFLA_XDP_ATTACHED = 2,
IFLA_XDP_FLAGS = 3,
IFLA_XDP_PROG_ID = 4,
IFLA_XDP_DRV_PROG_ID = 5,
IFLA_XDP_SKB_PROG_ID = 6,
IFLA_XDP_HW_PROG_ID = 7,
IFLA_XDP_EXPECTED_FD = 8,
__IFLA_XDP_MAX = 9,
};
enum {
IFLA_INFO_UNSPEC = 0,
IFLA_INFO_KIND = 1,
IFLA_INFO_DATA = 2,
IFLA_INFO_XSTATS = 3,
IFLA_INFO_SLAVE_KIND = 4,
IFLA_INFO_SLAVE_DATA = 5,
__IFLA_INFO_MAX = 6,
};
enum {
IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0,
IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 1,
IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 2,
__IFLA_OFFLOAD_XSTATS_HW_S_INFO_MAX = 3,
};
enum {
IFLA_STATS_GETSET_UNSPEC = 0,
IFLA_STATS_GET_FILTERS = 1,
IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2,
__IFLA_STATS_GETSET_MAX = 3,
};
struct rtnl_offload_xstats_request_used {
bool request;
bool used;
};
struct rtnl_newlink_tbs {
struct nlattr *tb[66];
struct nlattr *attr[51];
struct nlattr *slave_attr[45];
};
struct if_stats_msg {
__u8 family;
__u8 pad1;
__u16 pad2;
__u32 ifindex;
__u32 filter_mask;
};
struct rtnl_link_stats {
__u32 rx_packets;
__u32 tx_packets;
__u32 rx_bytes;
__u32 tx_bytes;
__u32 rx_errors;
__u32 tx_errors;
__u32 rx_dropped;
__u32 tx_dropped;
__u32 multicast;
__u32 collisions;
__u32 rx_length_errors;
__u32 rx_over_errors;
__u32 rx_crc_errors;
__u32 rx_frame_errors;
__u32 rx_fifo_errors;
__u32 rx_missed_errors;
__u32 tx_aborted_errors;
__u32 tx_carrier_errors;
__u32 tx_fifo_errors;
__u32 tx_heartbeat_errors;
__u32 tx_window_errors;
__u32 rx_compressed;
__u32 tx_compressed;
__u32 rx_nohandler;
};
struct ifla_vf_mac {
__u32 vf;
__u8 mac[32];
};
struct ifla_vf_vlan {
__u32 vf;
__u32 vlan;
__u32 qos;
};
struct ifla_vf_vlan_info {
__u32 vf;
__u32 vlan;
__u32 qos;
__be16 vlan_proto;
};
struct ifla_vf_tx_rate {
__u32 vf;
__u32 rate;
};
struct ifla_vf_rate {
__u32 vf;
__u32 min_tx_rate;
__u32 max_tx_rate;
};
struct ifla_vf_spoofchk {
__u32 vf;
__u32 setting;
};
struct ifla_vf_link_state {
__u32 vf;
__u32 link_state;
};
struct ifla_vf_rss_query_en {
__u32 vf;
__u32 setting;
};
struct ifla_vf_trust {
__u32 vf;
__u32 setting;
};
struct rtnl_stats_dump_filters {
u32 mask[6];
};
struct rta_cacheinfo {
__u32 rta_clntref;
__u32 rta_lastuse;
__s32 rta_expires;
__u32 rta_error;
__u32 rta_used;
__u32 rta_id;
__u32 rta_ts;
__u32 rta_tsage;
};
struct rtnl_mdb_dump_ctx {
long idx;
};
struct rtnl_link_ifmap {
__u64 mem_start;
__u64 mem_end;
__u64 base_addr;
__u16 irq;
__u8 dma;
__u8 port;
};
struct ifla_vf_broadcast {
__u8 broadcast[32];
};
struct arppayload {
unsigned char mac_src[6];
unsigned char ip_src[4];
unsigned char mac_dst[6];
unsigned char ip_dst[4];
};
enum KTHREAD_BITS {
KTHREAD_IS_PER_CPU = 0,
KTHREAD_SHOULD_STOP = 1,
KTHREAD_SHOULD_PARK = 2,
};
enum {
KTW_FREEZABLE = 1,
};
struct kthread_create_info {
char *full_name;
int (*threadfn)(void *);
void *data;
int node;
struct task_struct *result;
struct completion *done;
struct list_head list;
};
struct kthread_flush_work {
struct kthread_work work;
struct completion done;
};
struct kthread {
unsigned long flags;
unsigned int cpu;
int result;
int (*threadfn)(void *);
void *data;
struct completion parked;
struct completion exited;
struct cgroup_subsys_state *blkcg_css;
char *full_name;
};
struct stacktrace_cookie {
unsigned long *store;
unsigned int size;
unsigned int skip;
unsigned int len;
};
enum {
BPF_TASK_ITER_ALL_PROCS = 0,
BPF_TASK_ITER_ALL_THREADS = 1,
BPF_TASK_ITER_PROC_THREADS = 2,
};
enum bpf_task_vma_iter_find_op {
task_vma_iter_first_vma = 0,
task_vma_iter_next_vma = 1,
task_vma_iter_find_vma = 2,
};
typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64);
struct bpf_iter__task {
union {
struct bpf_iter_meta *meta;
};
union {
struct task_struct *task;
};
};
struct bpf_iter_seq_task_common {
struct pid_namespace *ns;
enum bpf_iter_task_type type;
u32 pid;
u32 pid_visiting;
};
struct bpf_iter__task_file {
union {
struct bpf_iter_meta *meta;
};
union {
struct task_struct *task;
};
u32 fd;
union {
struct file *file;
};
};
struct bpf_iter_seq_task_file_info {
struct bpf_iter_seq_task_common common;
struct task_struct *task;
u32 tid;
u32 fd;
};
struct bpf_iter__task_vma {
union {
struct bpf_iter_meta *meta;
};
union {
struct task_struct *task;
};
union {
struct vm_area_struct *vma;
};
};
struct bpf_iter_seq_task_vma_info {
struct bpf_iter_seq_task_common common;
struct task_struct *task;
struct mm_struct *mm;
struct vm_area_struct *vma;
u32 tid;
unsigned long prev_vm_start;
unsigned long prev_vm_end;
};
struct bpf_iter_task_vma {
__u64 __opaque[1];
};
struct bpf_iter_task_vma_kern_data;
struct bpf_iter_task_vma_kern {
struct bpf_iter_task_vma_kern_data *data;
};
struct bpf_iter_task_vma_kern_data {
struct task_struct *task;
struct mm_struct *mm;
struct mmap_unlock_irq_work *work;
struct vma_iterator vmi;
};
struct bpf_iter_css_task {
__u64 __opaque[1];
};
struct bpf_iter_css_task_kern {
struct css_task_iter *css_it;
};
struct bpf_iter_task {
__u64 __opaque[3];
};
struct bpf_iter_task_kern {
struct task_struct *task;
struct task_struct *pos;
unsigned int flags;
};
struct bpf_iter_seq_task_info {
struct bpf_iter_seq_task_common common;
u32 tid;
};
struct dma_page {
struct list_head page_list;
void *vaddr;
dma_addr_t dma;
};
struct dma_block;
struct dma_pool {
struct list_head page_list;
spinlock_t lock;
struct dma_block *next_block;
size_t nr_blocks;
size_t nr_active;
size_t nr_pages;
struct device *dev;
unsigned int size;
unsigned int allocation;
unsigned int boundary;
char name[32];
struct list_head pools;
};
struct dma_block {
struct dma_block *next_block;
dma_addr_t dma;
};
struct statfs {
__kernel_long_t f_type;
__kernel_long_t f_bsize;
__kernel_long_t f_blocks;
__kernel_long_t f_bfree;
__kernel_long_t f_bavail;
__kernel_long_t f_files;
__kernel_long_t f_ffree;
__kernel_fsid_t f_fsid;
__kernel_long_t f_namelen;
__kernel_long_t f_frsize;
__kernel_long_t f_flags;
__kernel_long_t f_spare[4];
};
struct statfs64 {
__kernel_long_t f_type;
__kernel_long_t f_bsize;
__u64 f_blocks;
__u64 f_bfree;
__u64 f_bavail;
__u64 f_files;
__u64 f_ffree;
__kernel_fsid_t f_fsid;
__kernel_long_t f_namelen;
__kernel_long_t f_frsize;
__kernel_long_t f_flags;
__kernel_long_t f_spare[4];
};
typedef int __kernel_daddr_t;
struct ustat {
__kernel_daddr_t f_tfree;
unsigned long f_tinode;
char f_fname[6];
char f_fpack[6];
};
struct fd_data {
fmode_t mode;
unsigned int fd;
};
enum fuse_parse_result {
FOUND_ERR = -1,
FOUND_NONE = 0,
FOUND_SOME = 1,
FOUND_ALL = 2,
};
struct fuse_dirent {
uint64_t ino;
uint64_t off;
uint32_t namelen;
uint32_t type;
char name[0];
};
struct fuse_direntplus {
struct fuse_entry_out entry_out;
struct fuse_dirent dirent;
};
struct fuse_read_in {
uint64_t fh;
uint64_t offset;
uint32_t size;
uint32_t read_flags;
uint64_t lock_owner;
uint32_t flags;
uint32_t padding;
};
struct fuse_write_in {
uint64_t fh;
uint64_t offset;
uint32_t size;
uint32_t write_flags;
uint64_t lock_owner;
uint32_t flags;
uint32_t padding;
};
struct fuse_write_out {
uint32_t size;
uint32_t padding;
};
struct fuse_io_priv;
struct fuse_io_args {
union {
struct {
struct fuse_read_in in;
u64 attr_ver;
} read;
struct {
struct fuse_write_in in;
struct fuse_write_out out;
bool page_locked;
} write;
};
struct fuse_args_pages ap;
struct fuse_io_priv *io;
struct fuse_file *ff;
};
struct fuse_io_priv {
struct kref refcnt;
int async;
spinlock_t lock;
unsigned int reqs;
ssize_t bytes;
size_t size;
__u64 offset;
bool write;
bool should_dirty;
int err;
struct kiocb *iocb;
struct completion *done;
bool blocking;
};
struct io_splice {
struct file *file_out;
loff_t off_out;
loff_t off_in;
u64 len;
int splice_fd_in;
unsigned int flags;
};
struct lpss8250;
struct lpss8250_board {
unsigned long freq;
unsigned int base_baud;
int (*setup)(struct lpss8250 *, struct uart_port *);
void (*exit)(struct lpss8250 *);
};
struct dw_dma;
struct dw_dma_platform_data;
struct dw_dma_chip {
struct device *dev;
int id;
int irq;
void *regs;
struct clk *clk;
struct dw_dma *dw;
const struct dw_dma_platform_data *pdata;
};
struct dw_dma_slave {
struct device *dma_dev;
u8 src_id;
u8 dst_id;
u8 m_master;
u8 p_master;
u8 channels;
bool hs_polarity;
};
struct lpss8250 {
struct dw8250_port_data data;
struct lpss8250_board *board;
struct dw_dma_chip dma_chip;
struct dw_dma_slave dma_param;
u8 dma_maxburst;
};
struct dw_dma_platform_data {
u32 nr_masters;
u32 nr_channels;
u32 chan_allocation_order;
u32 chan_priority;
u32 block_size;
u32 data_width[4];
u32 multi_block[8];
u32 max_burst[8];
u32 protctl;
u32 quirks;
};
struct igb_reg_info {
u32 ofs;
char *name;
};
enum e1000_state_t___3 {
__IGB_TESTING = 0,
__IGB_RESETTING = 1,
__IGB_DOWN = 2,
__IGB_PTP_TX_IN_PROGRESS = 3,
};
enum e1000_ring_flags_t {
IGB_RING_FLAG_RX_3K_BUFFER = 0,
IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1,
IGB_RING_FLAG_RX_SCTP_CSUM = 2,
IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3,
IGB_RING_FLAG_TX_CTX_IDX = 4,
IGB_RING_FLAG_TX_DETECT_HANG = 5,
};
enum igb_tx_flags {
IGB_TX_FLAGS_VLAN = 1,
IGB_TX_FLAGS_TSO = 2,
IGB_TX_FLAGS_TSTAMP = 4,
IGB_TX_FLAGS_IPV4 = 16,
IGB_TX_FLAGS_CSUM = 32,
};
enum tx_queue_prio {
TX_QUEUE_PRIO_HIGH = 0,
TX_QUEUE_PRIO_LOW = 1,
};
enum queue_mode {
QUEUE_MODE_STRICT_PRIORITY = 0,
QUEUE_MODE_STREAM_RESERVATION = 1,
};
enum igb_filter_match_flags {
IGB_FILTER_FLAG_ETHER_TYPE = 1,
IGB_FILTER_FLAG_VLAN_TCI = 2,
IGB_FILTER_FLAG_SRC_MAC_ADDR = 4,
IGB_FILTER_FLAG_DST_MAC_ADDR = 8,
};
union e1000_adv_rx_desc {
struct {
__le64 pkt_addr;
__le64 hdr_addr;
} read;
struct {
struct {
struct {
__le16 pkt_info;
__le16 hdr_info;
} lo_dword;
union {
__le32 rss;
struct {
__le16 ip_id;
__le16 csum;
} csum_ip;
} hi_dword;
} lower;
struct {
__le32 status_error;
__le16 length;
__le16 vlan;
} upper;
} wb;
};
struct igb_nfc_input {
u8 match_flags;
__be16 etype;
__be16 vlan_tci;
u8 src_addr[6];
u8 dst_addr[6];
};
struct igb_nfc_filter {
struct hlist_node nfc_node;
struct igb_nfc_input filter;
unsigned long cookie;
u16 etype_reg_index;
u16 sw_idx;
u16 action;
};
struct e1000_adv_tx_context_desc {
__le32 vlan_macip_lens;
__le32 seqnum_seed;
__le32 type_tucmd_mlhl;
__le32 mss_l4len_idx;
};
struct tc_query_caps_base {
enum tc_setup_type type;
void *caps;
};
struct tc_taprio_caps {
bool supports_queue_max_sdu: 1;
bool gate_mask_per_txq: 1;
bool broken_mqprio: 1;
};
struct tc_cbs_qopt_offload {
u8 enable;
s32 queue;
s32 hicredit;
s32 locredit;
s32 idleslope;
s32 sendslope;
};
struct tc_etf_qopt_offload {
u8 enable;
s32 queue;
};
enum {
SK_DIAG_BPF_STORAGE_REQ_NONE = 0,
SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1,
__SK_DIAG_BPF_STORAGE_REQ_MAX = 2,
};
enum {
SK_DIAG_BPF_STORAGE_REP_NONE = 0,
SK_DIAG_BPF_STORAGE = 1,
__SK_DIAG_BPF_STORAGE_REP_MAX = 2,
};
enum {
SK_DIAG_BPF_STORAGE_NONE = 0,
SK_DIAG_BPF_STORAGE_PAD = 1,
SK_DIAG_BPF_STORAGE_MAP_ID = 2,
SK_DIAG_BPF_STORAGE_MAP_VALUE = 3,
__SK_DIAG_BPF_STORAGE_MAX = 4,
};
typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *);
typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t);
typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *);
struct bpf_sk_storage_diag {
u32 nr_maps;
struct bpf_map *maps[0];
};
struct bpf_iter__bpf_sk_storage_map {
union {
struct bpf_iter_meta *meta;
};
union {
struct bpf_map *map;
};
union {
struct sock *sk;
};
union {
void *value;
};
};
struct bpf_iter_seq_sk_storage_map_info {
struct bpf_map *map;
unsigned int bucket_id;
unsigned int skip_elems;
};
enum {
NF_BPF_CT_OPTS_SZ = 12,
};
enum {
BPF_F_CURRENT_NETNS = -1,
};
struct nf_conn___init {
struct nf_conn ct;
};
struct bpf_ct_opts {
s32 netns_id;
s32 error;
u8 l4proto;
u8 dir;
u8 reserved[2];
};
struct cfg80211_mgmt_registration {
struct list_head list;
struct wireless_dev *wdev;
u32 nlportid;
int match_len;
__le16 frame_type;
bool multicast_rx;
u8 match[0];
};
struct trampoline_header {
u64 start;
u64 efer;
u32 cr4;
u32 flags;
u32 lock;
};
enum insn_type {
CALL = 0,
NOP___2 = 1,
JMP = 2,
RET = 3,
JCC = 4,
};
struct ssb_state {
struct ssb_state *shared_state;
raw_spinlock_t lock;
unsigned int disable_state;
unsigned long local_state;
};
struct fork_frame {
struct inactive_task_frame frame;
struct pt_regs regs;
};
struct eprobe_trace_entry_head {
struct trace_entry ent;
};
struct trace_eprobe {
const char *event_system;
const char *event_name;
char *filter_str;
struct trace_event_call *event;
struct dyn_event devent;
struct trace_probe tp;
};
struct eprobe_data {
struct trace_event_file *file;
struct trace_eprobe *ep;
};
typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *);
typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool);
typedef void (*btf_trace_mark_victim)(void *, struct task_struct *, uid_t);
typedef void (*btf_trace_wake_reaper)(void *, int);
typedef void (*btf_trace_start_task_reaping)(void *, int);
typedef void (*btf_trace_finish_task_reaping)(void *, int);
typedef void (*btf_trace_skip_task_reaping)(void *, int);
typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool);
struct trace_event_raw_oom_score_adj_update {
struct trace_entry ent;
pid_t pid;
char comm[16];
short oom_score_adj;
char __data[0];
};
struct trace_event_raw_reclaim_retry_zone {
struct trace_entry ent;
int node;
int zone_idx;
int order;
unsigned long reclaimable;
unsigned long available;
unsigned long min_wmark;
int no_progress_loops;
bool wmark_check;
char __data[0];
};
struct trace_event_raw_mark_victim {
struct trace_entry ent;
int pid;
u32 __data_loc_comm;
unsigned long total_vm;
unsigned long anon_rss;
unsigned long file_rss;
unsigned long shmem_rss;
uid_t uid;
unsigned long pgtables;
short oom_score_adj;
char __data[0];
};
struct trace_event_raw_wake_reaper {
struct trace_entry ent;
int pid;
char __data[0];
};
struct trace_event_raw_start_task_reaping {
struct trace_entry ent;
int pid;
char __data[0];
};
struct trace_event_raw_finish_task_reaping {
struct trace_entry ent;
int pid;
char __data[0];
};
struct trace_event_raw_skip_task_reaping {
struct trace_entry ent;
int pid;
char __data[0];
};
struct trace_event_raw_compact_retry {
struct trace_entry ent;
int order;
int priority;
int result;
int retries;
int max_retries;
bool ret;
char __data[0];
};
struct trace_event_data_offsets_mark_victim {
u32 comm;
const void *comm_ptr_;
};
struct trace_event_data_offsets_oom_score_adj_update {};
struct trace_event_data_offsets_reclaim_retry_zone {};
struct trace_event_data_offsets_wake_reaper {};
struct trace_event_data_offsets_start_task_reaping {};
struct trace_event_data_offsets_finish_task_reaping {};
struct trace_event_data_offsets_skip_task_reaping {};
struct trace_event_data_offsets_compact_retry {};
enum umount_tree_flags {
UMOUNT_SYNC = 1,
UMOUNT_PROPAGATE = 2,
UMOUNT_CONNECTED = 4,
};
enum mnt_tree_flags_t {
MNT_TREE_MOVE = 1,
MNT_TREE_BENEATH = 2,
};
struct mount_attr {
__u64 attr_set;
__u64 attr_clr;
__u64 propagation;
__u64 userns_fd;
};
struct mnt_id_req {
__u32 size;
__u32 spare;
__u64 mnt_id;
__u64 param;
};
struct statmount {
__u32 size;
__u32 __spare1;
__u64 mask;
__u32 sb_dev_major;
__u32 sb_dev_minor;
__u64 sb_magic;
__u32 sb_flags;
__u32 fs_type;
__u64 mnt_id;
__u64 mnt_parent_id;
__u32 mnt_id_old;
__u32 mnt_parent_id_old;
__u64 mnt_attr;
__u64 mnt_propagation;
__u64 mnt_peer_group;
__u64 mnt_master;
__u64 propagate_from;
__u32 mnt_root;
__u32 mnt_point;
__u64 __spare2[50];
char str[0];
};
struct mount_kattr {
unsigned int attr_set;
unsigned int attr_clr;
unsigned int propagation;
unsigned int lookup_flags;
bool recurse;
struct user_namespace *mnt_userns;
struct mnt_idmap *mnt_idmap;
};
struct kstatmount {
struct statmount __attribute__((btf_type_tag("user"))) *buf;
size_t bufsize;
struct vfsmount *mnt;
u64 mask;
struct path root;
struct statmount sm;
struct seq_file seq;
};
struct bd_holder_disk {
struct list_head list;
struct kobject *holder_dir;
int refcnt;
};
struct io_timeout {
struct file *file;
u32 off;
u32 target_seq;
u32 repeats;
struct list_head list;
struct io_kiocb *head;
struct io_kiocb *prev;
};
struct io_timeout_rem {
struct file *file;
u64 addr;
struct timespec64 ts;
u32 flags;
bool ltimeout;
};
struct io_timeout_data {
struct io_kiocb *req;
struct hrtimer timer;
struct timespec64 ts;
enum hrtimer_mode mode;
u32 flags;
};
struct override_status_id {
struct acpi_device_id hid[2];
struct x86_cpu_id cpu_ids[2];
struct dmi_system_id dmi_ids[2];
const char *uid;
const char *path;
unsigned long long status;
};
struct virtio_pci_modern_common_cfg {
struct virtio_pci_common_cfg cfg;
__le16 queue_notify_data;
__le16 queue_reset;
__le16 admin_queue_index;
__le16 admin_queue_num;
};
struct pci1xxxx_8250 {
unsigned int nr;
u8 dev_rev;
u8 pad[3];
void *membase;
int line[0];
};
enum spi_signal_type {
SPI_SIGNAL_UNKNOWN = 1,
SPI_SIGNAL_SE = 2,
SPI_SIGNAL_LVD = 3,
SPI_SIGNAL_HVD = 4,
};
struct anon_transport_class {
struct transport_class tclass;
struct attribute_container container;
};
enum spi_compare_returns {
SPI_COMPARE_SUCCESS = 0,
SPI_COMPARE_FAILURE = 1,
SPI_COMPARE_SKIP_TEST = 2,
};
enum {
SPI_BLIST_NOIUS = 1,
};
struct spi_transport_attrs {
int period;
int min_period;
int offset;
int max_offset;
unsigned int width: 1;
unsigned int max_width: 1;
unsigned int iu: 1;
unsigned int max_iu: 1;
unsigned int dt: 1;
unsigned int qas: 1;
unsigned int max_qas: 1;
unsigned int wr_flow: 1;
unsigned int rd_strm: 1;
unsigned int rti: 1;
unsigned int pcomp_en: 1;
unsigned int hold_mcs: 1;
unsigned int initial_dv: 1;
unsigned long flags;
unsigned int support_sync: 1;
unsigned int support_wide: 1;
unsigned int support_dt: 1;
unsigned int support_dt_only;
unsigned int support_ius;
unsigned int support_qas;
unsigned int dv_pending: 1;
unsigned int dv_in_progress: 1;
struct mutex dv_mutex;
};
struct spi_function_template;
struct spi_internal {
struct scsi_transport_template t;
struct spi_function_template *f;
};
struct spi_function_template {
void (*get_period)(struct scsi_target *);
void (*set_period)(struct scsi_target *, int);
void (*get_offset)(struct scsi_target *);
void (*set_offset)(struct scsi_target *, int);
void (*get_width)(struct scsi_target *);
void (*set_width)(struct scsi_target *, int);
void (*get_iu)(struct scsi_target *);
void (*set_iu)(struct scsi_target *, int);
void (*get_dt)(struct scsi_target *);
void (*set_dt)(struct scsi_target *, int);
void (*get_qas)(struct scsi_target *);
void (*set_qas)(struct scsi_target *, int);
void (*get_wr_flow)(struct scsi_target *);
void (*set_wr_flow)(struct scsi_target *, int);
void (*get_rd_strm)(struct scsi_target *);
void (*set_rd_strm)(struct scsi_target *, int);
void (*get_rti)(struct scsi_target *);
void (*set_rti)(struct scsi_target *, int);
void (*get_pcomp_en)(struct scsi_target *);
void (*set_pcomp_en)(struct scsi_target *, int);
void (*get_hold_mcs)(struct scsi_target *);
void (*set_hold_mcs)(struct scsi_target *, int);
void (*get_signalling)(struct Scsi_Host *);
void (*set_signalling)(struct Scsi_Host *, enum spi_signal_type);
int (*deny_binding)(struct scsi_target *);
unsigned long show_period: 1;
unsigned long show_offset: 1;
unsigned long show_width: 1;
unsigned long show_iu: 1;
unsigned long show_dt: 1;
unsigned long show_qas: 1;
unsigned long show_wr_flow: 1;
unsigned long show_rd_strm: 1;
unsigned long show_rti: 1;
unsigned long show_pcomp_en: 1;
unsigned long show_hold_mcs: 1;
};
struct spi_host_attrs {
enum spi_signal_type signalling;
};
struct work_queue_wrapper {
struct work_struct work;
struct scsi_device *sdev;
};
enum iwl_mei_nvm_caps {
MEI_NVM_CAPS_LARI_SUPPORT = 1,
MEI_NVM_CAPS_11AX_SUPPORT = 2,
};
enum iwl_nvm_sbands_flags {
IWL_NVM_SBANDS_FLAGS_LAR = 1,
IWL_NVM_SBANDS_FLAGS_NO_WIDE_IN_5GHZ = 2,
};
enum nvm_sku_bits {
NVM_SKU_CAP_BAND_24GHZ = 1,
NVM_SKU_CAP_BAND_52GHZ = 2,
NVM_SKU_CAP_11N_ENABLE = 4,
NVM_SKU_CAP_11AC_ENABLE = 8,
NVM_SKU_CAP_MIMO_DISABLE = 32,
};
enum nvm_offsets {
SUBSYSTEM_ID = 10,
HW_ADDR = 21,
NVM_SW_SECTION = 448,
NVM_VERSION = 0,
RADIO_CFG = 1,
SKU = 2,
N_HW_ADDRS = 3,
NVM_CHANNELS = 32,
NVM_CALIB_SECTION = 696,
XTAL_CALIB = 94,
NVM_CHANNELS_SDP = 0,
};
enum ext_nvm_offsets {
MAC_ADDRESS_OVERRIDE_EXT_NVM = 1,
NVM_VERSION_EXT_NVM = 0,
N_HW_ADDRS_FAMILY_8000 = 3,
RADIO_CFG_FAMILY_EXT_NVM = 0,
SKU_FAMILY_8000 = 2,
NVM_CHANNELS_EXTENDED = 0,
NVM_LAR_OFFSET_OLD = 1223,
NVM_LAR_OFFSET = 1287,
NVM_LAR_ENABLED = 7,
};
enum iwl_nvm_channel_flags {
NVM_CHANNEL_VALID = 1,
NVM_CHANNEL_IBSS = 2,
NVM_CHANNEL_ACTIVE = 8,
NVM_CHANNEL_RADAR = 16,
NVM_CHANNEL_INDOOR_ONLY = 32,
NVM_CHANNEL_GO_CONCURRENT = 64,
NVM_CHANNEL_UNIFORM = 128,
NVM_CHANNEL_20MHZ = 256,
NVM_CHANNEL_40MHZ = 512,
NVM_CHANNEL_80MHZ = 1024,
NVM_CHANNEL_160MHZ = 2048,
NVM_CHANNEL_DC_HIGH = 4096,
NVM_CHANNEL_VLP = 8192,
NVM_CHANNEL_AFC = 16384,
};
enum iwl_geo_information {
GEO_NO_INFO = 0,
GEO_WMM_ETSI_5GHZ_INFO = 1,
};
enum iwl_nvm_info_general_flags {
NVM_GENERAL_FLAGS_EMPTY_OTP = 1,
};
enum iwl_nvm_mac_sku_flags {
NVM_MAC_SKU_FLAGS_BAND_2_4_ENABLED = 1,
NVM_MAC_SKU_FLAGS_BAND_5_2_ENABLED = 2,
NVM_MAC_SKU_FLAGS_802_11N_ENABLED = 4,
NVM_MAC_SKU_FLAGS_802_11AC_ENABLED = 8,
NVM_MAC_SKU_FLAGS_802_11AX_ENABLED = 16,
NVM_MAC_SKU_FLAGS_MIMO_DISABLED = 32,
NVM_MAC_SKU_FLAGS_WAPI_ENABLED = 256,
NVM_MAC_SKU_FLAGS_REG_CHECK_ENABLED = 16384,
NVM_MAC_SKU_FLAGS_API_LOCK_ENABLED = 32768,
};
enum ieee80211_vht_max_ampdu_length_exp {
IEEE80211_VHT_MAX_AMPDU_8K = 0,
IEEE80211_VHT_MAX_AMPDU_16K = 1,
IEEE80211_VHT_MAX_AMPDU_32K = 2,
IEEE80211_VHT_MAX_AMPDU_64K = 3,
IEEE80211_VHT_MAX_AMPDU_128K = 4,
IEEE80211_VHT_MAX_AMPDU_256K = 5,
IEEE80211_VHT_MAX_AMPDU_512K = 6,
IEEE80211_VHT_MAX_AMPDU_1024K = 7,
};
enum iwl_reg_capa_flags_v4 {
REG_CAPA_V4_160MHZ_ALLOWED = 8,
REG_CAPA_V4_80MHZ_ALLOWED = 16,
REG_CAPA_V4_MCS_12_ALLOWED = 32,
REG_CAPA_V4_MCS_13_ALLOWED = 64,
REG_CAPA_V4_11BE_DISABLED = 256,
REG_CAPA_V4_11AX_DISABLED = 8192,
REG_CAPA_V4_320MHZ_ALLOWED = 65536,
};
enum iwl_reg_capa_flags_v2 {
REG_CAPA_V2_STRADDLE_DISABLED = 1,
REG_CAPA_V2_BF_CCD_LOW_BAND = 2,
REG_CAPA_V2_BF_CCD_HIGH_BAND = 4,
REG_CAPA_V2_160MHZ_ALLOWED = 8,
REG_CAPA_V2_80MHZ_ALLOWED = 16,
REG_CAPA_V2_MCS_8_ALLOWED = 32,
REG_CAPA_V2_MCS_9_ALLOWED = 64,
REG_CAPA_V2_WEATHER_DISABLED = 128,
REG_CAPA_V2_40MHZ_ALLOWED = 256,
REG_CAPA_V2_11AX_DISABLED = 1024,
};
enum iwl_reg_capa_flags_v1 {
REG_CAPA_V1_BF_CCD_LOW_BAND = 1,
REG_CAPA_V1_BF_CCD_HIGH_BAND = 2,
REG_CAPA_V1_160MHZ_ALLOWED = 4,
REG_CAPA_V1_80MHZ_ALLOWED = 8,
REG_CAPA_V1_MCS_8_ALLOWED = 16,
REG_CAPA_V1_MCS_9_ALLOWED = 32,
REG_CAPA_V1_40MHZ_FORBIDDEN = 128,
REG_CAPA_V1_DC_HIGH_ENABLED = 512,
REG_CAPA_V1_11AX_DISABLED = 1024,
};
struct iwl_reg_capa {
bool allow_40mhz;
bool allow_80mhz;
bool allow_160mhz;
bool allow_320mhz;
bool disable_11ax;
bool disable_11be;
};
struct iwl_nvm_get_info {
__le32 reserved;
};
struct iwl_nvm_get_info_general {
__le32 flags;
__le16 nvm_version;
u8 board_type;
u8 n_hw_addrs;
};
struct iwl_nvm_get_info_sku {
__le32 mac_sku_flags;
};
struct iwl_nvm_get_info_phy {
__le32 tx_chains;
__le32 rx_chains;
};
struct iwl_nvm_get_info_regulatory {
__le32 lar_enabled;
__le32 n_channels;
__le32 channel_profile[110];
};
struct iwl_nvm_get_info_rsp {
struct iwl_nvm_get_info_general general;
struct iwl_nvm_get_info_sku mac_sku;
struct iwl_nvm_get_info_phy phy_sku;
struct iwl_nvm_get_info_regulatory regulatory;
};
struct iwl_nvm_get_info_regulatory_v1 {
__le32 lar_enabled;
__le16 channel_profile[51];
__le16 reserved;
};
struct iwl_nvm_get_info_rsp_v3 {
struct iwl_nvm_get_info_general general;
struct iwl_nvm_get_info_sku mac_sku;
struct iwl_nvm_get_info_phy phy_sku;
struct iwl_nvm_get_info_regulatory_v1 regulatory;
};
enum iwl_wowlan_flags {
IS_11W_ASSOC = 1,
ENABLE_L3_FILTERING = 2,
ENABLE_NBNS_FILTERING = 4,
ENABLE_DHCP_FILTERING = 8,
ENABLE_STORE_BEACON = 16,
};
enum iwl_wowlan_wakeup_filters {
IWL_WOWLAN_WAKEUP_MAGIC_PACKET = 1,
IWL_WOWLAN_WAKEUP_PATTERN_MATCH = 2,
IWL_WOWLAN_WAKEUP_BEACON_MISS = 4,
IWL_WOWLAN_WAKEUP_LINK_CHANGE = 8,
IWL_WOWLAN_WAKEUP_GTK_REKEY_FAIL = 16,
IWL_WOWLAN_WAKEUP_EAP_IDENT_REQ = 32,
IWL_WOWLAN_WAKEUP_4WAY_HANDSHAKE = 64,
IWL_WOWLAN_WAKEUP_ENABLE_NET_DETECT = 128,
IWL_WOWLAN_WAKEUP_RF_KILL_DEASSERT = 256,
IWL_WOWLAN_WAKEUP_REMOTE_LINK_LOSS = 512,
IWL_WOWLAN_WAKEUP_REMOTE_SIGNATURE_TABLE = 1024,
IWL_WOWLAN_WAKEUP_REMOTE_TCP_EXTERNAL = 2048,
IWL_WOWLAN_WAKEUP_REMOTE_WAKEUP_PACKET = 4096,
IWL_WOWLAN_WAKEUP_IOAC_MAGIC_PACKET = 8192,
IWL_WOWLAN_WAKEUP_HOST_TIMER = 16384,
IWL_WOWLAN_WAKEUP_RX_FRAME = 32768,
IWL_WOWLAN_WAKEUP_BCN_FILTERING = 65536,
};
enum iwl_wowlan_pattern_type {
WOWLAN_PATTERN_TYPE_BITMASK = 0,
WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN = 1,
WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN = 2,
WOWLAN_PATTERN_TYPE_IPV4_TCP_SYN_WILDCARD = 3,
WOWLAN_PATTERN_TYPE_IPV6_TCP_SYN_WILDCARD = 4,
};
enum iwl_d3_notif {
IWL_D3_NOTIF_WOWLAN_INFO = 1,
IWL_D3_NOTIF_WOWLAN_WAKE_PKT = 2,
IWL_D3_NOTIF_PROT_OFFLOAD = 4,
IWL_D3_ND_MATCH_INFO = 8,
IWL_D3_NOTIF_D3_END_NOTIF = 16,
};
enum iwl_d0i3_flags {
IWL_D0I3_RESET_REQUIRE = 1,
};
enum iwl_wowlan_wakeup_reason {
IWL_WOWLAN_WAKEUP_BY_NON_WIRELESS = 0,
IWL_WOWLAN_WAKEUP_BY_MAGIC_PACKET = 1,
IWL_WOWLAN_WAKEUP_BY_PATTERN = 2,
IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_MISSED_BEACON = 4,
IWL_WOWLAN_WAKEUP_BY_DISCONNECTION_ON_DEAUTH = 8,
IWL_WOWLAN_WAKEUP_BY_GTK_REKEY_FAILURE = 16,
IWL_WOWLAN_WAKEUP_BY_RFKILL_DEASSERTED = 32,
IWL_WOWLAN_WAKEUP_BY_UCODE_ERROR = 64,
IWL_WOWLAN_WAKEUP_BY_EAPOL_REQUEST = 128,
IWL_WOWLAN_WAKEUP_BY_FOUR_WAY_HANDSHAKE = 256,
IWL_WOWLAN_WAKEUP_BY_REM_WAKE_LINK_LOSS = 512,
IWL_WOWLAN_WAKEUP_BY_REM_WAKE_SIGNATURE_TABLE = 1024,
IWL_WOWLAN_WAKEUP_BY_REM_WAKE_TCP_EXTERNAL = 2048,
IWL_WOWLAN_WAKEUP_BY_REM_WAKE_WAKEUP_PACKET = 4096,
IWL_WOWLAN_WAKEUP_BY_IOAC_MAGIC_PACKET = 8192,
IWL_WOWLAN_WAKEUP_BY_D3_WAKEUP_HOST_TIMER = 16384,
IWL_WOWLAN_WAKEUP_BY_RXFRAME_FILTERED_IN = 32768,
IWL_WOWLAN_WAKEUP_BY_BEACON_FILTERED_IN = 65536,
IWL_WAKEUP_BY_11W_UNPROTECTED_DEAUTH_OR_DISASSOC = 131072,
IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN = 262144,
IWL_WAKEUP_BY_PATTERN_IPV4_TCP_SYN_WILDCARD = 524288,
IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN = 1048576,
IWL_WAKEUP_BY_PATTERN_IPV6_TCP_SYN_WILDCARD = 2097152,
};
struct iwl_d3_manager_config {
__le32 min_sleep_time;
__le32 wakeup_flags;
__le32 wakeup_host_timer;
};
struct iwl_nonqos_seq_query_cmd {
__le32 get_set_flag;
__le32 mac_id_n_color;
__le16 value;
__le16 reserved;
};
struct iwl_binding_cmd_v1 {
__le32 id_and_color;
__le32 action;
__le32 macs[3];
__le32 phy;
};
struct wowlan_key_reprogram_data {
bool error;
int wep_key_idx;
};
struct iwl_mic_keys {
u8 tx[8];
u8 rx_unicast[8];
u8 rx_mcast[8];
};
struct iwl_p1k_cache {
__le16 p1k[5];
};
struct iwl_wowlan_tkip_params_cmd {
struct iwl_mic_keys mic_keys;
struct iwl_p1k_cache tx;
struct iwl_p1k_cache rx_uni[2];
struct iwl_p1k_cache rx_multi[2];
u8 reversed[2];
__le32 sta_id;
};
struct wowlan_key_tkip_data {
struct iwl_wowlan_tkip_params_cmd tkip;
bool have_tkip_keys;
} __attribute__((packed));
struct iwl_wowlan_kek_kck_material_cmd_v4 {
__le32 sta_id;
u8 kck[32];
u8 kek[32];
__le16 kck_len;
__le16 kek_len;
__le64 replay_ctr;
__le32 akm;
__le32 gtk_cipher;
__le32 igtk_cipher;
__le32 bigtk_cipher;
};
struct wowlan_key_gtk_type_iter {
struct iwl_wowlan_kek_kck_material_cmd_v4 *kek_kck_cmd;
};
struct iwl_wowlan_rsc_tsc_params_cmd;
struct wowlan_key_rsc_v5_data {
struct iwl_wowlan_rsc_tsc_params_cmd *rsc;
bool have_rsc;
int gtks;
int gtk_ids[4];
};
struct iwl_wowlan_rsc_tsc_params_cmd {
__le64 ucast_rsc[8];
__le64 mcast_rsc[16];
__le32 sta_id;
u8 mcast_key_id_map[4];
};
struct iwl_wowlan_rsc_tsc_params_cmd_v4;
struct wowlan_key_rsc_tsc_data {
struct iwl_wowlan_rsc_tsc_params_cmd_v4 *rsc_tsc;
bool have_rsc_tsc;
};
struct iwl_tkip_rsc_tsc {
struct tkip_sc unicast_rsc[16];
struct tkip_sc multicast_rsc[16];
struct tkip_sc tsc;
};
struct iwl_aes_rsc_tsc {
struct aes_sc unicast_rsc[16];
struct aes_sc multicast_rsc[16];
struct aes_sc tsc;
};
union iwl_all_tsc_rsc {
struct iwl_tkip_rsc_tsc tkip;
struct iwl_aes_rsc_tsc aes;
};
struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 {
union iwl_all_tsc_rsc all_tsc_rsc;
};
struct iwl_wowlan_rsc_tsc_params_cmd_v4 {
struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 params;
__le32 sta_id;
} __attribute__((packed));
struct iwl_wowlan_pattern_v1 {
u8 mask[16];
u8 pattern[128];
u8 mask_size;
u8 pattern_size;
__le16 reserved;
};
struct iwl_wowlan_patterns_cmd_v1 {
__le32 n_patterns;
struct iwl_wowlan_pattern_v1 patterns[0];
};
struct iwl_wowlan_ipv4_tcp_syn {
u8 src_addr[4];
u8 dst_addr[4];
__le16 src_port;
__le16 dst_port;
};
struct iwl_wowlan_ipv6_tcp_syn {
u8 src_addr[16];
u8 dst_addr[16];
__le16 src_port;
__le16 dst_port;
};
union iwl_wowlan_pattern_data {
struct iwl_wowlan_pattern_v1 bitmask;
struct iwl_wowlan_ipv4_tcp_syn ipv4_tcp_syn;
struct iwl_wowlan_ipv6_tcp_syn ipv6_tcp_syn;
};
struct iwl_wowlan_pattern_v2 {
u8 pattern_type;
u8 reserved[3];
union iwl_wowlan_pattern_data u;
};
struct iwl_wowlan_patterns_cmd {
u8 n_patterns;
u8 sta_id;
__le16 reserved;
struct iwl_wowlan_pattern_v2 patterns[0];
};
struct iwl_mvm_nd_results {
u32 matched_profiles;
u8 matches[198];
};
struct iwl_wowlan_status_data;
struct iwl_d3_data {
struct iwl_wowlan_status_data *status;
bool test;
u32 d3_end_flags;
u32 notif_expected;
u32 notif_received;
struct iwl_mvm_nd_results *nd_results;
bool nd_results_valid;
};
struct iwl_multicast_key_data {
u8 key[32];
u8 len;
u8 flags;
u8 id;
u8 ipn[6];
};
struct iwl_wowlan_status_data {
u64 replay_ctr;
u32 num_of_gtk_rekeys;
u32 received_beacons;
u32 wakeup_reasons;
u32 wake_packet_length;
u32 wake_packet_bufsize;
u16 pattern_number;
u16 non_qos_seq_ctr;
u16 qos_seq_ctr[8];
u8 tid_tear_down;
struct {
u8 key[32];
u8 len;
u8 flags;
u8 id;
} gtk[2];
struct {
struct {
struct ieee80211_key_seq seq[8];
} tkip;
struct {
struct ieee80211_key_seq seq[8];
} aes;
s8 key_id;
bool valid;
} gtk_seq[2];
struct {
struct {
struct ieee80211_key_seq seq[8];
u64 tx_pn;
} tkip;
struct {
struct ieee80211_key_seq seq[8];
u64 tx_pn;
} aes;
} ptk;
struct iwl_multicast_key_data igtk;
struct iwl_multicast_key_data bigtk[2];
u8 *wake_packet;
};
struct error_table_start___2 {
u32 valid;
__le32 err_id;
};
struct iwl_wowlan_get_status_cmd {
__le32 sta_id;
};
struct iwl_wowlan_gtk_status_v1 {
u8 key_index;
u8 reserved[3];
u8 decrypt_key[16];
u8 tkip_mic_key[8];
struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc;
} __attribute__((packed));
struct iwl_wowlan_status_v6 {
struct iwl_wowlan_gtk_status_v1 gtk;
__le64 replay_ctr;
__le16 pattern_number;
__le16 non_qos_seq_ctr;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
__le32 wake_packet_length;
__le32 wake_packet_bufsize;
u8 wake_packet[0];
} __attribute__((packed));
struct iwl_wowlan_gtk_status_v2 {
u8 key[32];
u8 key_len;
u8 key_flags;
u8 reserved[2];
u8 tkip_mic_key[8];
struct iwl_wowlan_rsc_tsc_params_cmd_ver_2 rsc;
} __attribute__((packed));
struct iwl_wowlan_igtk_status {
u8 key[32];
u8 ipn[6];
u8 key_len;
u8 key_flags;
};
struct iwl_wowlan_status_v7 {
struct iwl_wowlan_gtk_status_v2 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 non_qos_seq_ctr;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
__le32 wake_packet_length;
__le32 wake_packet_bufsize;
u8 wake_packet[0];
} __attribute__((packed));
struct iwl_wowlan_status_v9 {
struct iwl_wowlan_gtk_status_v2 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 non_qos_seq_ctr;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
__le32 wake_packet_length;
__le32 wake_packet_bufsize;
u8 tid_tear_down;
u8 reserved[3];
u8 wake_packet[0];
};
struct iwl_wowlan_all_rsc_tsc_v5 {
__le64 ucast_rsc[8];
__le64 mcast_rsc[16];
__le32 sta_id;
u8 mcast_key_id_map[4];
};
struct iwl_wowlan_gtk_status_v3 {
u8 key[32];
u8 key_len;
u8 key_flags;
u8 reserved[2];
u8 tkip_mic_key[8];
struct iwl_wowlan_all_rsc_tsc_v5 sc;
} __attribute__((packed));
struct iwl_wowlan_status_v12 {
struct iwl_wowlan_gtk_status_v3 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 non_qos_seq_ctr;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
__le32 wake_packet_length;
__le32 wake_packet_bufsize;
u8 tid_tear_down;
u8 reserved[3];
u8 wake_packet[0];
};
struct iwl_scan_offload_profile_match {
u8 bssid[6];
__le16 reserved;
u8 channel;
u8 energy;
u8 matching_feature;
u8 matching_channels[7];
};
struct iwl_scan_offload_match_info {
__le32 matched_profiles;
__le32 last_scan_age;
__le32 n_scans_done;
__le32 gp2_d0u;
__le32 gp2_invoked;
u8 resume_while_scanning;
u8 self_recovery;
__le16 reserved;
struct iwl_scan_offload_profile_match matches[0];
};
struct iwl_mvm_d3_gtk_iter_data {
struct iwl_mvm *mvm;
struct iwl_wowlan_status_data *status;
u32 gtk_cipher;
u32 igtk_cipher;
u32 bigtk_cipher;
bool unhandled_cipher;
bool igtk_support;
bool bigtk_support;
int num_keys;
};
struct iwl_scan_offload_profile_match_v1 {
u8 bssid[6];
__le16 reserved;
u8 channel;
u8 energy;
u8 matching_feature;
u8 matching_channels[5];
};
struct iwl_mvm_wep_key {
u8 key_index;
u8 key_offset;
__le16 reserved1;
u8 key_size;
u8 reserved2[3];
u8 key[16];
};
struct iwl_mvm_wep_key_cmd {
__le32 mac_id_n_color;
u8 num_keys;
u8 decryption_type;
u8 flags;
u8 reserved;
struct iwl_mvm_wep_key wep_key[0];
};
struct iwl_wowlan_wake_pkt_notif {
__le32 wake_packet_length;
u8 station_id;
u8 reserved[3];
u8 wake_packet[1];
} __attribute__((packed));
struct iwl_wowlan_info_notif {
struct iwl_wowlan_gtk_status_v3 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
struct iwl_wowlan_igtk_status bigtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 reserved1;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
u8 tid_tear_down;
u8 station_id;
u8 reserved2[2];
};
struct iwl_wowlan_info_notif_v1 {
struct iwl_wowlan_gtk_status_v3 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 reserved1;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
__le32 wake_packet_length;
__le32 wake_packet_bufsize;
u8 tid_tear_down;
u8 station_id;
u8 reserved2[2];
};
struct iwl_wowlan_info_notif_v2 {
struct iwl_wowlan_gtk_status_v3 gtk[2];
struct iwl_wowlan_igtk_status igtk[2];
__le64 replay_ctr;
__le16 pattern_number;
__le16 reserved1;
__le16 qos_seq_ctr[8];
__le32 wakeup_reasons;
__le32 num_of_gtk_rekeys;
__le32 transmitted_ndps;
__le32 received_beacons;
u8 tid_tear_down;
u8 station_id;
u8 reserved2[2];
};
struct iwl_mvm_d3_end_notif {
__le32 flags;
};
typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long);
typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long);
typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *);
enum hwmon_chip_attributes {
hwmon_chip_temp_reset_history = 0,
hwmon_chip_in_reset_history = 1,
hwmon_chip_curr_reset_history = 2,
hwmon_chip_power_reset_history = 3,
hwmon_chip_register_tz = 4,
hwmon_chip_update_interval = 5,
hwmon_chip_alarms = 6,
hwmon_chip_samples = 7,
hwmon_chip_curr_samples = 8,
hwmon_chip_in_samples = 9,
hwmon_chip_power_samples = 10,
hwmon_chip_temp_samples = 11,
hwmon_chip_beep_enable = 12,
};
enum hwmon_power_attributes {
hwmon_power_enable = 0,
hwmon_power_average = 1,
hwmon_power_average_interval = 2,
hwmon_power_average_interval_max = 3,
hwmon_power_average_interval_min = 4,
hwmon_power_average_highest = 5,
hwmon_power_average_lowest = 6,
hwmon_power_average_max = 7,
hwmon_power_average_min = 8,
hwmon_power_input = 9,
hwmon_power_input_highest = 10,
hwmon_power_input_lowest = 11,
hwmon_power_reset_history = 12,
hwmon_power_accuracy = 13,
hwmon_power_cap = 14,
hwmon_power_cap_hyst = 15,
hwmon_power_cap_max = 16,
hwmon_power_cap_min = 17,
hwmon_power_min = 18,
hwmon_power_max = 19,
hwmon_power_crit = 20,
hwmon_power_lcrit = 21,
hwmon_power_label = 22,
hwmon_power_alarm = 23,
hwmon_power_cap_alarm = 24,
hwmon_power_min_alarm = 25,
hwmon_power_max_alarm = 26,
hwmon_power_lcrit_alarm = 27,
hwmon_power_crit_alarm = 28,
hwmon_power_rated_min = 29,
hwmon_power_rated_max = 30,
};
enum hwmon_energy_attributes {
hwmon_energy_enable = 0,
hwmon_energy_input = 1,
hwmon_energy_label = 2,
};
enum hwmon_humidity_attributes {
hwmon_humidity_enable = 0,
hwmon_humidity_input = 1,
hwmon_humidity_label = 2,
hwmon_humidity_min = 3,
hwmon_humidity_min_hyst = 4,
hwmon_humidity_max = 5,
hwmon_humidity_max_hyst = 6,
hwmon_humidity_alarm = 7,
hwmon_humidity_fault = 8,
hwmon_humidity_rated_min = 9,
hwmon_humidity_rated_max = 10,
hwmon_humidity_min_alarm = 11,
hwmon_humidity_max_alarm = 12,
};
enum hwmon_fan_attributes {
hwmon_fan_enable = 0,
hwmon_fan_input = 1,
hwmon_fan_label = 2,
hwmon_fan_min = 3,
hwmon_fan_max = 4,
hwmon_fan_div = 5,
hwmon_fan_pulses = 6,
hwmon_fan_target = 7,
hwmon_fan_alarm = 8,
hwmon_fan_min_alarm = 9,
hwmon_fan_max_alarm = 10,
hwmon_fan_fault = 11,
hwmon_fan_beep = 12,
};
struct trace_event_raw_hwmon_attr_class {
struct trace_entry ent;
int index;
u32 __data_loc_attr_name;
long val;
char __data[0];
};
struct trace_event_raw_hwmon_attr_show_string {
struct trace_entry ent;
int index;
u32 __data_loc_attr_name;
u32 __data_loc_label;
char __data[0];
};
struct hwmon_device_attribute {
struct device_attribute dev_attr;
const struct hwmon_ops *ops;
enum hwmon_sensor_types type;
u32 attr;
int index;
char name[32];
};
struct hwmon_device {
const char *name;
const char *label;
struct device dev;
const struct hwmon_chip_info *chip;
struct list_head tzdata;
struct attribute_group group;
const struct attribute_group **groups;
};
struct trace_event_data_offsets_hwmon_attr_class {
u32 attr_name;
const void *attr_name_ptr_;
};
struct trace_event_data_offsets_hwmon_attr_show_string {
u32 attr_name;
const void *attr_name_ptr_;
u32 label;
const void *label_ptr_;
};
enum {
NETDEV_A_PAGE_POOL_STATS_INFO = 1,
NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8,
NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW = 9,
NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER = 10,
NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY = 11,
NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL = 12,
NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE = 13,
NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED = 14,
NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL = 15,
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING = 16,
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL = 17,
NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT = 18,
__NETDEV_A_PAGE_POOL_STATS_MAX = 19,
NETDEV_A_PAGE_POOL_STATS_MAX = 18,
};
enum {
NETDEV_A_PAGE_POOL_ID = 1,
NETDEV_A_PAGE_POOL_IFINDEX = 2,
NETDEV_A_PAGE_POOL_NAPI_ID = 3,
NETDEV_A_PAGE_POOL_INFLIGHT = 4,
NETDEV_A_PAGE_POOL_INFLIGHT_MEM = 5,
NETDEV_A_PAGE_POOL_DETACH_TIME = 6,
__NETDEV_A_PAGE_POOL_MAX = 7,
NETDEV_A_PAGE_POOL_MAX = 6,
};
typedef int (*pp_nl_fill_cb)(struct sk_buff *, const struct page_pool *, const struct genl_info *);
struct page_pool_dump_cb {
unsigned long ifindex;
u32 pp_id;
};
enum {
ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0,
ETHTOOL_A_PHC_VCLOCKS_HEADER = 1,
ETHTOOL_A_PHC_VCLOCKS_NUM = 2,
ETHTOOL_A_PHC_VCLOCKS_INDEX = 3,
__ETHTOOL_A_PHC_VCLOCKS_CNT = 4,
ETHTOOL_A_PHC_VCLOCKS_MAX = 3,
};
struct phc_vclocks_reply_data {
struct ethnl_reply_data base;
int num;
int *index;
};
enum nft_objref_attributes {
NFTA_OBJREF_UNSPEC = 0,
NFTA_OBJREF_IMM_TYPE = 1,
NFTA_OBJREF_IMM_NAME = 2,
NFTA_OBJREF_SET_SREG = 3,
NFTA_OBJREF_SET_NAME = 4,
NFTA_OBJREF_SET_ID = 5,
__NFTA_OBJREF_MAX = 6,
};
struct nft_objref_map {
struct nft_set *set;
u8 sreg;
struct nft_set_binding binding;
};
enum {
TCP_BPF_IPV4 = 0,
TCP_BPF_IPV6 = 1,
TCP_BPF_NUM_PROTS = 2,
};
enum {
TCP_BPF_BASE = 0,
TCP_BPF_TX = 1,
TCP_BPF_RX = 2,
TCP_BPF_TXRX = 3,
TCP_BPF_NUM_CFGS = 4,
};
struct tx_work {
struct delayed_work work;
struct sock *sk;
};
struct tls_rec;
struct tls_sw_context_tx {
struct crypto_aead *aead_send;
struct crypto_wait async_wait;
struct tx_work tx_work;
struct tls_rec *open_rec;
struct list_head tx_list;
atomic_t encrypt_pending;
u8 async_capable: 1;
unsigned long tx_bitmask;
};
struct klist_waiter {
struct list_head list;
struct klist_node *node;
struct task_struct *process;
int woken;
};
struct legacy_pic {
int nr_legacy_irqs;
struct irq_chip *chip;
void (*mask)(unsigned int);
void (*unmask)(unsigned int);
void (*mask_all)();
void (*restore_mask)();
void (*init)(int);
int (*probe)();
int (*irq_pending)(unsigned int);
void (*make_irq)(unsigned int);
};
struct __user_cap_header_struct;
typedef struct __user_cap_header_struct *cap_user_header_t;
struct __user_cap_header_struct {
__u32 version;
int pid;
};
struct __user_cap_data_struct;
typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t;
struct __user_cap_data_struct {
__u32 effective;
__u32 permitted;
__u32 inheritable;
};
enum {
IRQC_IS_HARDIRQ = 0,
IRQC_IS_NESTED = 1,
};
struct tp_transition_snapshot {
unsigned long rcu;
unsigned long srcu;
bool ongoing;
};
enum tp_func_state {
TP_FUNC_0 = 0,
TP_FUNC_1 = 1,
TP_FUNC_2 = 2,
TP_FUNC_N = 3,
};
enum tp_transition_sync {
TP_TRANSITION_SYNC_1_0_1 = 0,
TP_TRANSITION_SYNC_N_2_1 = 1,
_NR_TP_TRANSITION_SYNC = 2,
};
struct tp_module {
struct list_head list;
struct module *mod;
};
struct tp_probes {
struct callback_head rcu;
struct tracepoint_func probes[0];
};
struct saved_cmdlines_buffer {
unsigned int map_pid_to_cmdline[32769];
unsigned int *map_cmdline_to_pid;
unsigned int cmdline_num;
int cmdline_idx;
char saved_cmdlines[0];
};
struct bpf_cpumask {
cpumask_t cpumask;
refcount_t usage;
};
struct kmem_cache_node {
spinlock_t list_lock;
unsigned long nr_partial;
struct list_head partial;
};
struct slub_flush_work {
struct work_struct work;
struct kmem_cache *s;
bool skip;
};
struct slab_attribute {
struct attribute attr;
ssize_t (*show)(struct kmem_cache *, char *);
ssize_t (*store)(struct kmem_cache *, const char *, size_t);
};
struct saved_alias {
struct kmem_cache *s;
const char *name;
struct saved_alias *next;
};
enum stat_item {
ALLOC_FASTPATH = 0,
ALLOC_SLOWPATH = 1,
FREE_FASTPATH = 2,
FREE_SLOWPATH = 3,
FREE_FROZEN = 4,
FREE_ADD_PARTIAL = 5,
FREE_REMOVE_PARTIAL = 6,
ALLOC_FROM_PARTIAL = 7,
ALLOC_SLAB = 8,
ALLOC_REFILL = 9,
ALLOC_NODE_MISMATCH = 10,
FREE_SLAB = 11,
CPUSLAB_FLUSH = 12,
DEACTIVATE_FULL = 13,
DEACTIVATE_EMPTY = 14,
DEACTIVATE_TO_HEAD = 15,
DEACTIVATE_TO_TAIL = 16,
DEACTIVATE_REMOTE_FREES = 17,
DEACTIVATE_BYPASS = 18,
ORDER_FALLBACK = 19,
CMPXCHG_DOUBLE_CPU_FAIL = 20,
CMPXCHG_DOUBLE_FAIL = 21,
CPU_PARTIAL_ALLOC = 22,
CPU_PARTIAL_FREE = 23,
CPU_PARTIAL_NODE = 24,
CPU_PARTIAL_DRAIN = 25,
NR_SLUB_STAT_ITEMS = 26,
};
enum track_item {
TRACK_ALLOC = 0,
TRACK_FREE = 1,
};
enum slab_stat_type {
SL_ALL = 0,
SL_PARTIAL = 1,
SL_CPU = 2,
SL_OBJECTS = 3,
SL_TOTAL = 4,
};
typedef struct {
unsigned long v;
} freeptr_t;
struct detached_freelist {
struct slab *slab;
void *tail;
void *freelist;
int cnt;
struct kmem_cache *s;
};
struct partial_context {
gfp_t flags;
unsigned int orig_size;
void *object;
};
union __u128_halves {
u128 full;
struct {
u64 low;
u64 high;
};
};
struct track {
unsigned long addr;
depot_stack_handle_t handle;
int cpu;
int pid;
unsigned long when;
};
struct eventfd_ctx {
struct kref kref;
wait_queue_head_t wqh;
__u64 count;
unsigned int flags;
int id;
};
struct ext4_system_zone {
struct rb_node node;
ext4_fsblk_t start_blk;
unsigned int count;
u32 ino;
};
struct fuse_writepage_args {
struct fuse_io_args ia;
struct rb_node writepages_entry;
struct list_head queue_entry;
struct fuse_writepage_args *next;
struct inode *inode;
struct fuse_sync_bucket *bucket;
};
struct fuse_open_in {
uint32_t flags;
uint32_t open_flags;
};
struct fuse_lseek_in {
uint64_t fh;
uint64_t offset;
uint32_t whence;
uint32_t padding;
};
struct fuse_lseek_out {
uint64_t offset;
};
struct fuse_file_lock {
uint64_t start;
uint64_t end;
uint32_t type;
uint32_t pid;
};
struct fuse_lk_in {
uint64_t fh;
uint64_t owner;
struct fuse_file_lock lk;
uint32_t lk_flags;
uint32_t padding;
};
struct fuse_lk_out {
struct fuse_file_lock lk;
};
struct fuse_copy_file_range_in {
uint64_t fh_in;
uint64_t off_in;
uint64_t nodeid_out;
uint64_t fh_out;
uint64_t off_out;
uint64_t len;
uint64_t flags;
};
struct fuse_fill_wb_data {
struct fuse_writepage_args *wpa;
struct fuse_file *ff;
struct inode *inode;
struct page **orig_pages;
unsigned int max_pages;
};
struct fuse_fsync_in {
uint64_t fh;
uint32_t fsync_flags;
uint32_t padding;
};
struct fuse_poll_out {
uint32_t revents;
uint32_t padding;
};
struct fuse_poll_in {
uint64_t fh;
uint64_t kh;
uint32_t flags;
uint32_t events;
};
struct fuse_flush_in {
uint64_t fh;
uint32_t unused;
uint32_t padding;
uint64_t lock_owner;
};
struct fuse_fallocate_in {
uint64_t fh;
uint64_t offset;
uint64_t length;
uint32_t mode;
uint32_t padding;
};
struct fuse_bmap_out {
uint64_t block;
};
struct fuse_bmap_in {
uint64_t block;
uint32_t blocksize;
uint32_t padding;
};
struct xts_instance_ctx {
struct crypto_skcipher_spawn spawn;
struct crypto_cipher_spawn tweak_spawn;
};
struct xts_request_ctx {
le128 t;
struct scatterlist *tail;
struct scatterlist sg[2];
struct skcipher_request subreq;
};
struct xts_tfm_ctx {
struct crypto_skcipher *child;
struct crypto_cipher *tweak;
};
struct io_notif_data {
struct file *file;
struct ubuf_info uarg;
unsigned long account_pages;
bool zc_report;
bool zc_used;
bool zc_copied;
};
struct broken_edid {
u8 manufacturer[4];
u32 model;
u32 fix;
};
struct __fb_timings {
u32 dclk;
u32 hfreq;
u32 vfreq;
u32 hactive;
u32 vactive;
u32 hblank;
u32 vblank;
u32 htotal;
u32 vtotal;
};
enum {
AML_FIELD_ATTRIB_QUICK = 2,
AML_FIELD_ATTRIB_SEND_RECEIVE = 4,
AML_FIELD_ATTRIB_BYTE = 6,
AML_FIELD_ATTRIB_WORD = 8,
AML_FIELD_ATTRIB_BLOCK = 10,
AML_FIELD_ATTRIB_BYTES = 11,
AML_FIELD_ATTRIB_PROCESS_CALL = 12,
AML_FIELD_ATTRIB_BLOCK_PROCESS_CALL = 13,
AML_FIELD_ATTRIB_RAW_BYTES = 14,
AML_FIELD_ATTRIB_RAW_PROCESS_BYTES = 15,
};
enum {
ACTION_FAIL = 0,
ACTION_REPREP = 1,
ACTION_DELAYED_REPREP = 2,
ACTION_RETRY = 3,
ACTION_DELAYED_RETRY = 4,
};
enum scsi_host_prot_capabilities {
SHOST_DIF_TYPE1_PROTECTION = 1,
SHOST_DIF_TYPE2_PROTECTION = 2,
SHOST_DIF_TYPE3_PROTECTION = 4,
SHOST_DIX_TYPE0_PROTECTION = 8,
SHOST_DIX_TYPE1_PROTECTION = 16,
SHOST_DIX_TYPE2_PROTECTION = 32,
SHOST_DIX_TYPE3_PROTECTION = 64,
};
struct iwl_dbg_tlv_ver_data {
int min_ver;
int max_ver;
};
enum iwl_fw_ini_config_set_type {
IWL_FW_INI_CONFIG_SET_TYPE_INVALID = 0,
IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_MAC = 1,
IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_PHY = 2,
IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_AUX = 3,
IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_MEMORY = 4,
IWL_FW_INI_CONFIG_SET_TYPE_CSR = 5,
IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR = 6,
IWL_FW_INI_CONFIG_SET_TYPE_PERIPH_SCRATCH_HWM = 7,
IWL_FW_INI_CONFIG_SET_TYPE_MAX_NUM = 8,
} __attribute__((mode(byte)));
struct iwl_dbg_tlv_timer_node {
struct list_head list;
struct timer_list timer;
struct iwl_fw_runtime *fwrt;
struct iwl_ucode_tlv *tlv;
};
struct iwl_fw_ini_hcmd {
u8 id;
u8 group;
__le16 reserved;
u8 data[0];
};
struct iwl_fw_ini_hcmd_tlv {
struct iwl_fw_ini_header hdr;
__le32 time_point;
__le32 period_msec;
struct iwl_fw_ini_hcmd hcmd;
};
struct iwl_buf_alloc_frag {
__le64 addr;
__le32 size;
} __attribute__((packed));
struct iwl_buf_alloc_cmd {
__le32 alloc_id;
__le32 buf_location;
__le32 num_frags;
struct iwl_buf_alloc_frag frags[16];
};
struct iwl_dram_info {
__le32 first_word;
__le32 second_word;
struct iwl_buf_alloc_cmd dram_frags[4];
};
struct iwl_dbgc1_info {
__le32 first_word;
__le32 dbgc1_add_lsb;
__le32 dbgc1_add_msb;
__le32 dbgc1_size;
};
struct iwl_fw_ini_addr_val {
__le32 address;
__le32 value;
};
struct iwl_fw_ini_conf_set_tlv {
struct iwl_fw_ini_header hdr;
__le32 time_point;
__le32 set_type;
__le32 addr_offset;
struct iwl_fw_ini_addr_val addr_val[0];
};
enum rtw_regulatory_domains {
RTW_REGD_FCC = 0,
RTW_REGD_MKK = 1,
RTW_REGD_ETSI = 2,
RTW_REGD_IC = 3,
RTW_REGD_KCC = 4,
RTW_REGD_ACMA = 5,
RTW_REGD_CHILE = 6,
RTW_REGD_UKRAINE = 7,
RTW_REGD_MEXICO = 8,
RTW_REGD_CN = 9,
RTW_REGD_QATAR = 10,
RTW_REGD_UK = 11,
RTW_REGD_WW = 12,
RTW_REGD_MAX = 13,
};
enum rtw_phy_band_type {
PHY_BAND_2G = 0,
PHY_BAND_5G = 1,
};
enum rtw_phy_cck_pd_lv {
CCK_PD_LV0 = 0,
CCK_PD_LV1 = 1,
CCK_PD_LV2 = 2,
CCK_PD_LV3 = 3,
CCK_PD_LV4 = 4,
CCK_PD_LV_MAX = 5,
};
struct rtw_phy_stat_iter_data {
struct rtw_dev *rtwdev;
u8 min_rssi;
};
struct phy_cfg_pair {
u32 addr;
u32 data;
};
union phy_table_tile {
struct rtw_phy_cond cond;
struct phy_cfg_pair cfg;
};
struct rtw_power_params {
u8 pwr_base;
s8 pwr_offset;
s8 pwr_limit;
s8 pwr_remnant;
s8 pwr_sar;
};
struct md_cluster_operations {
int (*join)(struct mddev *, int);
int (*leave)(struct mddev *);
int (*slot_number)(struct mddev *);
int (*resync_info_update)(struct mddev *, sector_t, sector_t);
void (*resync_info_get)(struct mddev *, sector_t *, sector_t *);
int (*metadata_update_start)(struct mddev *);
int (*metadata_update_finish)(struct mddev *);
void (*metadata_update_cancel)(struct mddev *);
int (*resync_start)(struct mddev *);
int (*resync_finish)(struct mddev *);
int (*area_resyncing)(struct mddev *, int, sector_t, sector_t);
int (*add_new_disk)(struct mddev *, struct md_rdev *);
void (*add_new_disk_cancel)(struct mddev *);
int (*new_disk_ack)(struct mddev *, bool);
int (*remove_disk)(struct mddev *, struct md_rdev *);
void (*load_bitmaps)(struct mddev *, int);
int (*gather_bitmaps)(struct md_rdev *);
int (*resize_bitmaps)(struct mddev *, sector_t, sector_t);
int (*lock_all_bitmaps)(struct mddev *);
void (*unlock_all_bitmaps)(struct mddev *);
void (*update_size)(struct mddev *, sector_t);
};
struct rdev_sysfs_entry {
struct attribute attr;
ssize_t (*show)(struct md_rdev *, char *);
ssize_t (*store)(struct md_rdev *, const char *, size_t);
};
struct super_type {
char *name;
struct module *owner;
int (*load_super)(struct md_rdev *, struct md_rdev *, int);
int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *);
void (*sync_super)(struct mddev *, struct md_rdev *);
unsigned long long (*rdev_size_change)(struct md_rdev *, sector_t);
int (*allow_new_offset)(struct md_rdev *, unsigned long long);
};
enum md_ro_state {
MD_RDWR = 0,
MD_RDONLY = 1,
MD_AUTO_READ = 2,
MD_MAX_STATE = 3,
};
enum {
MD_RESYNC_NONE = 0,
MD_RESYNC_YIELDED = 1,
MD_RESYNC_DELAYED = 2,
MD_RESYNC_ACTIVE = 3,
};
enum array_state {
clear = 0,
inactive = 1,
suspended = 2,
readonly = 3,
read_auto = 4,
clean = 5,
active = 6,
write_pending = 7,
active_idle = 8,
broken = 9,
bad_word = 10,
};
struct detected_devices_node {
struct list_head list;
dev_t dev;
};
struct md_io_clone {
struct mddev *mddev;
struct bio *orig_bio;
unsigned long start_time;
struct bio bio_clone;
};
struct mdu_version_s {
int major;
int minor;
int patchlevel;
};
typedef struct mdu_version_s mdu_version_t;
typedef struct mdu_array_info_s mdu_array_info_t;
struct mdu_bitmap_file_s {
char pathname[4096];
};
typedef struct mdu_bitmap_file_s mdu_bitmap_file_t;
typedef struct mdu_disk_info_s mdu_disk_info_t;
struct mdp_device_descriptor_s {
__u32 number;
__u32 major;
__u32 minor;
__u32 raid_disk;
__u32 state;
__u32 reserved[27];
};
typedef struct mdp_device_descriptor_s mdp_disk_t;
struct mdp_superblock_s {
__u32 md_magic;
__u32 major_version;
__u32 minor_version;
__u32 patch_version;
__u32 gvalid_words;
__u32 set_uuid0;
__u32 ctime;
__u32 level;
__u32 size;
__u32 nr_disks;
__u32 raid_disks;
__u32 md_minor;
__u32 not_persistent;
__u32 set_uuid1;
__u32 set_uuid2;
__u32 set_uuid3;
__u32 gstate_creserved[16];
__u32 utime;
__u32 state;
__u32 active_disks;
__u32 working_disks;
__u32 failed_disks;
__u32 spare_disks;
__u32 sb_csum;
__u32 events_lo;
__u32 events_hi;
__u32 cp_events_lo;
__u32 cp_events_hi;
__u32 recovery_cp;
__u64 reshape_position;
__u32 new_level;
__u32 delta_disks;
__u32 new_layout;
__u32 new_chunk;
__u32 gstate_sreserved[14];
__u32 layout;
__u32 chunk_size;
__u32 root_pv;
__u32 root_block;
__u32 pstate_reserved[60];
mdp_disk_t disks[27];
__u32 reserved[0];
mdp_disk_t this_disk;
};
typedef struct mdp_superblock_s mdp_super_t;
struct llc_pdu_sn {
u8 dsap;
u8 ssap;
u8 ctrl_1;
u8 ctrl_2;
};
enum nexthop_event_type {
NEXTHOP_EVENT_DEL = 0,
NEXTHOP_EVENT_REPLACE = 1,
NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2,
NEXTHOP_EVENT_BUCKET_REPLACE = 3,
NEXTHOP_EVENT_HW_STATS_REPORT_DELTA = 4,
};
enum nh_notifier_info_type {
NH_NOTIFIER_INFO_TYPE_SINGLE = 0,
NH_NOTIFIER_INFO_TYPE_GRP = 1,
NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2,
NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3,
NH_NOTIFIER_INFO_TYPE_GRP_HW_STATS = 4,
};
enum {
NHA_UNSPEC = 0,
NHA_ID = 1,
NHA_GROUP = 2,
NHA_GROUP_TYPE = 3,
NHA_BLACKHOLE = 4,
NHA_OIF = 5,
NHA_GATEWAY = 6,
NHA_ENCAP_TYPE = 7,
NHA_ENCAP = 8,
NHA_GROUPS = 9,
NHA_MASTER = 10,
NHA_FDB = 11,
NHA_RES_GROUP = 12,
NHA_RES_BUCKET = 13,
NHA_OP_FLAGS = 14,
NHA_GROUP_STATS = 15,
NHA_HW_STATS_ENABLE = 16,
NHA_HW_STATS_USED = 17,
__NHA_MAX = 18,
};
enum {
NEXTHOP_GRP_TYPE_MPATH = 0,
NEXTHOP_GRP_TYPE_RES = 1,
__NEXTHOP_GRP_TYPE_MAX = 2,
};
enum {
NHA_RES_GROUP_UNSPEC = 0,
NHA_RES_GROUP_PAD = 0,
NHA_RES_GROUP_BUCKETS = 1,
NHA_RES_GROUP_IDLE_TIMER = 2,
NHA_RES_GROUP_UNBALANCED_TIMER = 3,
NHA_RES_GROUP_UNBALANCED_TIME = 4,
__NHA_RES_GROUP_MAX = 5,
};
enum {
NHA_GROUP_STATS_UNSPEC = 0,
NHA_GROUP_STATS_ENTRY = 1,
__NHA_GROUP_STATS_MAX = 2,
};
enum {
NHA_GROUP_STATS_ENTRY_UNSPEC = 0,
NHA_GROUP_STATS_ENTRY_ID = 1,
NHA_GROUP_STATS_ENTRY_PACKETS = 2,
NHA_GROUP_STATS_ENTRY_PACKETS_HW = 3,
__NHA_GROUP_STATS_ENTRY_MAX = 4,
};
enum {
NHA_RES_BUCKET_UNSPEC = 0,
NHA_RES_BUCKET_PAD = 0,
NHA_RES_BUCKET_INDEX = 1,
NHA_RES_BUCKET_IDLE_TIME = 2,
NHA_RES_BUCKET_NH_ID = 3,
__NHA_RES_BUCKET_MAX = 4,
};
struct nh_notifier_single_info;
struct nh_notifier_grp_info;
struct nh_notifier_res_table_info;
struct nh_notifier_res_bucket_info;
struct nh_notifier_grp_hw_stats_info;
struct nh_notifier_info {
struct net *net;
struct netlink_ext_ack *extack;
u32 id;
enum nh_notifier_info_type type;
union {
struct nh_notifier_single_info *nh;
struct nh_notifier_grp_info *nh_grp;
struct nh_notifier_res_table_info *nh_res_table;
struct nh_notifier_res_bucket_info *nh_res_bucket;
struct nh_notifier_grp_hw_stats_info *nh_grp_hw_stats;
};
};
struct nh_notifier_single_info {
struct net_device *dev;
u8 gw_family;
union {
__be32 ipv4;
struct in6_addr ipv6;
};
u32 id;
u8 is_reject: 1;
u8 is_fdb: 1;
u8 has_encap: 1;
};
struct nh_notifier_grp_entry_info {
u8 weight;
struct nh_notifier_single_info nh;
};
struct nh_notifier_grp_info {
u16 num_nh;
bool is_fdb;
bool hw_stats;
struct nh_notifier_grp_entry_info nh_entries[0];
};
struct nh_notifier_res_table_info {
u16 num_nh_buckets;
bool hw_stats;
struct nh_notifier_single_info nhs[0];
};
struct nh_notifier_res_bucket_info {
u16 bucket_index;
unsigned int idle_timer_ms;
bool force;
struct nh_notifier_single_info old_nh;
struct nh_notifier_single_info new_nh;
};
struct nh_notifier_grp_hw_stats_entry_info {
u32 id;
u64 packets;
};
struct nh_notifier_grp_hw_stats_info {
u16 num_nh;
bool hw_stats_used;
struct nh_notifier_grp_hw_stats_entry_info stats[0];
};
struct nh_config {
u32 nh_id;
u8 nh_family;
u8 nh_protocol;
u8 nh_blackhole;
u8 nh_fdb;
u32 nh_flags;
int nh_ifindex;
struct net_device *dev;
union {
__be32 ipv4;
struct in6_addr ipv6;
} gw;
struct nlattr *nh_grp;
u16 nh_grp_type;
u16 nh_grp_res_num_buckets;
unsigned long nh_grp_res_idle_timer;
unsigned long nh_grp_res_unbalanced_timer;
bool nh_grp_res_has_num_buckets;
bool nh_grp_res_has_idle_timer;
bool nh_grp_res_has_unbalanced_timer;
bool nh_hw_stats;
struct nlattr *nh_encap;
u16 nh_encap_type;
u32 nlflags;
struct nl_info nlinfo;
};
struct nhmsg {
unsigned char nh_family;
unsigned char nh_scope;
unsigned char nh_protocol;
unsigned char resvd;
unsigned int nh_flags;
};
struct nexthop_grp {
__u32 id;
__u8 weight;
__u8 resvd1;
__u16 resvd2;
};
struct nh_dump_filter {
u32 nh_id;
int dev_idx;
int master_idx;
bool group_filter;
bool fdb_filter;
u32 res_bucket_nh_id;
u32 op_flags;
};
struct rtm_dump_nh_ctx {
u32 idx;
};
struct rtm_dump_res_bucket_ctx {
struct rtm_dump_nh_ctx nh;
u16 bucket_index;
};
struct rtm_dump_nexthop_bucket_data {
struct rtm_dump_res_bucket_ctx *ctx;
struct nh_dump_filter filter;
};
struct restore_data_record {
unsigned long jump_address;
unsigned long jump_address_phys;
unsigned long cr3;
unsigned long magic;
unsigned long e820_checksum;
};
typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *));
struct compress_format {
unsigned char magic[2];
const char *name;
decompress_fn decompressor;
};
enum rtmutex_chainwalk {
RT_MUTEX_MIN_CHAINWALK = 0,
RT_MUTEX_FULL_CHAINWALK = 1,
};
struct swsusp_header {
char reserved[4056];
u32 hw_sig;
u32 crc32;
sector_t image;
unsigned int flags;
char orig_sig[10];
char sig[10];
};
struct swsusp_extent {
struct rb_node node;
unsigned long start;
unsigned long end;
};
struct swap_map_page {
sector_t entries[511];
sector_t next_swap;
};
struct swap_map_page_list;
struct swap_map_handle {
struct swap_map_page *cur;
struct swap_map_page_list *maps;
sector_t cur_swap;
sector_t first_sector;
unsigned int k;
unsigned long reqd_free_pages;
u32 crc32;
};
struct swap_map_page_list {
struct swap_map_page *map;
struct swap_map_page_list *next;
};
struct hib_bio_batch {
atomic_t count;
wait_queue_head_t wait;
blk_status_t error;
struct blk_plug plug;
};
struct cmp_data {
struct task_struct *thr;
struct crypto_comp *cc;
atomic_t ready;
atomic_t stop;
int ret;
wait_queue_head_t go;
wait_queue_head_t done;
size_t unc_len;
size_t cmp_len;
unsigned char unc[131072];
unsigned char cmp[143360];
};
struct crc_data {
struct task_struct *thr;
atomic_t ready;
atomic_t stop;
unsigned int run_threads;
wait_queue_head_t go;
wait_queue_head_t done;
u32 *crc32;
size_t *unc_len[3];
unsigned char *unc[3];
};
struct dec_data {
struct task_struct *thr;
struct crypto_comp *cc;
atomic_t ready;
atomic_t stop;
int ret;
wait_queue_head_t go;
wait_queue_head_t done;
size_t unc_len;
size_t cmp_len;
unsigned char unc[131072];
unsigned char cmp[143360];
};
struct dynevent_arg_pair {
const char *lhs;
const char *rhs;
char operator;
char separator;
};
struct bp_slots_histogram {
atomic_t count[4];
};
struct bp_cpuinfo {
unsigned int cpu_pinned;
struct bp_slots_histogram tsk_pinned;
};
enum bp_type_idx {
TYPE_INST = 0,
TYPE_DATA = 0,
TYPE_MAX = 1,
};
struct iomap_ioend {
struct list_head io_list;
u16 io_type;
u16 io_flags;
struct inode *io_inode;
size_t io_size;
loff_t io_offset;
sector_t io_sector;
struct bio io_bio;
};
struct iomap_readpage_ctx {
struct folio *cur_folio;
bool cur_folio_in_bio;
struct bio *bio;
struct readahead_control *rac;
};
struct iomap_folio_state {
spinlock_t state_lock;
unsigned int read_bytes_pending;
atomic_t write_bytes_pending;
unsigned long state[0];
};
typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t);
struct iomap_writeback_ops;
struct iomap_writepage_ctx {
struct iomap iomap;
struct iomap_ioend *ioend;
const struct iomap_writeback_ops *ops;
u32 nr_folios;
};
struct iomap_writeback_ops {
int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t, unsigned int);
int (*prepare_ioend)(struct iomap_ioend *, int);
void (*discard_folio)(struct folio *, loff_t);
};
enum reloc_stage {
MOVE_DATA_EXTENTS = 0,
UPDATE_DATA_PTRS = 1,
};
struct mapping_node {
struct {
struct rb_node rb_node;
u64 bytenr;
};
void *data;
};
struct file_extent_cluster {
u64 start;
u64 end;
u64 boundary[128];
unsigned int nr;
u64 owning_root;
};
struct mapping_tree {
struct rb_root rb_root;
spinlock_t lock;
};
struct reloc_control {
struct btrfs_block_group *block_group;
struct btrfs_root *extent_root;
struct inode *data_inode;
struct btrfs_block_rsv *block_rsv;
struct btrfs_backref_cache backref_cache;
struct file_extent_cluster cluster;
struct extent_io_tree processed_blocks;
struct mapping_tree reloc_root_tree;
struct list_head reloc_roots;
struct list_head dirty_subvol_roots;
u64 merging_rsv_size;
u64 nodes_relocated;
u64 reserved_bytes;
u64 search_start;
u64 extents_found;
enum reloc_stage stage;
bool create_reloc_tree;
bool merge_reloc_tree;
bool found_file_extent;
};
struct tree_block {
struct {
struct rb_node rb_node;
u64 bytenr;
};
u64 owner;
struct btrfs_key key;
u8 level;
bool key_ready;
};
struct wrapper {
cmp_func_t cmp;
swap_func_t swap;
};
enum {
MAX_OPT_ARGS = 3,
};
struct lwq {
spinlock_t lock;
struct llist_node *ready;
struct llist_head new;
};
struct region {
unsigned int start;
unsigned int off;
unsigned int group_len;
unsigned int end;
unsigned int nbits;
};
struct xxh32_state {
uint32_t total_len_32;
uint32_t large_len;
uint32_t v1;
uint32_t v2;
uint32_t v3;
uint32_t v4;
uint32_t mem32[4];
uint32_t memsize;
};
enum {
ZSTDbss_compress = 0,
ZSTDbss_noCompress = 1,
};
typedef enum {
ZSTD_cpm_noAttachDict = 0,
ZSTD_cpm_attachDict = 1,
ZSTD_cpm_createCDict = 2,
ZSTD_cpm_unknown = 3,
} ZSTD_cParamMode_e;
typedef enum {
ZSTD_e_continue = 0,
ZSTD_e_flush = 1,
ZSTD_e_end = 2,
} ZSTD_EndDirective;
typedef struct {
U32 LLtype;
U32 Offtype;
U32 MLtype;
size_t size;
size_t lastCountSize;
} ZSTD_symbolEncodingTypeStats_t;
typedef struct {
U32 *splitLocations;
size_t idx;
} seqStoreSplits;
typedef struct {
U32 idx;
U32 posInSequence;
size_t posInSrc;
} ZSTD_sequencePosition;
typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t);
typedef struct {
unsigned long long ingested;
unsigned long long consumed;
unsigned long long produced;
unsigned long long flushed;
unsigned int currentJobID;
unsigned int nbActiveWorkers;
} ZSTD_frameProgression;
typedef enum {
ZSTDcrp_makeClean = 0,
ZSTDcrp_leaveDirty = 1,
} ZSTD_compResetPolicy_e;
typedef enum {
ZSTDirp_continue = 0,
ZSTDirp_reset = 1,
} ZSTD_indexResetPolicy_e;
typedef enum {
ZSTD_resetTarget_CDict = 0,
ZSTD_resetTarget_CCtx = 1,
} ZSTD_resetTarget_e;
struct acpi_power_resource;
struct acpi_power_resource_entry {
struct list_head node;
struct acpi_power_resource *resource;
};
struct acpi_power_resource {
struct acpi_device device;
struct list_head list_node;
u32 system_level;
u32 order;
unsigned int ref_count;
u8 state;
struct mutex resource_lock;
struct list_head dependents;
};
struct acpi_power_dependent_device {
struct device *dev;
struct list_head node;
};
enum acpi_return_package_types {
ACPI_PTYPE1_FIXED = 1,
ACPI_PTYPE1_VAR = 2,
ACPI_PTYPE1_OPTION = 3,
ACPI_PTYPE2 = 4,
ACPI_PTYPE2_COUNT = 5,
ACPI_PTYPE2_PKG_COUNT = 6,
ACPI_PTYPE2_FIXED = 7,
ACPI_PTYPE2_MIN = 8,
ACPI_PTYPE2_REV_FIXED = 9,
ACPI_PTYPE2_FIX_VAR = 10,
ACPI_PTYPE2_VAR_VAR = 11,
ACPI_PTYPE2_UUID_PAIR = 12,
ACPI_PTYPE_CUSTOM = 13,
};
struct mid8250;
struct mid8250_board {
unsigned long freq;
unsigned int base_baud;
unsigned int bar;
int (*setup)(struct mid8250 *, struct uart_port *);
void (*exit)(struct mid8250 *);
};
struct hsu_dma;
struct hsu_dma_chip {
struct device *dev;
int irq;
void *regs;
unsigned int length;
unsigned int offset;
struct hsu_dma *hsu;
};
struct mid8250 {
int line;
int dma_index;
struct pci_dev *dma_dev;
struct uart_8250_dma dma;
struct mid8250_board *board;
struct hsu_dma_chip dma_chip;
};
struct hsu_dma_slave {
struct device *dma_dev;
int chan_id;
};
struct igb_reg_test {
u16 reg;
u16 reg_offset;
u16 array_len;
u16 test_type;
u32 mask;
u32 write;
};
struct igb_stats {
char stat_string[32];
int sizeof_stat;
int stat_offset;
};
enum igb_diagnostics_results {
TEST_REG = 0,
TEST_EEP = 1,
TEST_IRQ = 2,
TEST_LOOP = 3,
TEST_LINK = 4,
};
enum {
ETH_RSS_HASH_TOP_BIT = 0,
ETH_RSS_HASH_XOR_BIT = 1,
ETH_RSS_HASH_CRC32_BIT = 2,
ETH_RSS_HASH_FUNCS_COUNT = 3,
};
enum {
TE_V2_FRAG_NONE = 0,
TE_V2_FRAG_SINGLE = 1,
TE_V2_FRAG_DUAL = 2,
TE_V2_FRAG_MAX = 254,
TE_V2_FRAG_ENDLESS = 255,
};
enum iwl_time_event_policy {
TE_V2_DEFAULT_POLICY = 0,
TE_V2_NOTIF_HOST_EVENT_START = 1,
TE_V2_NOTIF_HOST_EVENT_END = 2,
TE_V2_NOTIF_INTERNAL_EVENT_START = 4,
TE_V2_NOTIF_INTERNAL_EVENT_END = 8,
TE_V2_NOTIF_HOST_FRAG_START = 16,
TE_V2_NOTIF_HOST_FRAG_END = 32,
TE_V2_NOTIF_INTERNAL_FRAG_START = 64,
TE_V2_NOTIF_INTERNAL_FRAG_END = 128,
TE_V2_START_IMMEDIATELY = 2048,
TE_V2_DEP_OTHER = 4096,
TE_V2_DEP_TSF = 8192,
TE_V2_EVENT_SOCIOPATHIC = 16384,
TE_V2_ABSENCE = 32768,
};
enum iwl_mvm_session_prot_conf_id {
SESSION_PROTECT_CONF_ASSOC = 0,
SESSION_PROTECT_CONF_GO_CLIENT_ASSOC = 1,
SESSION_PROTECT_CONF_P2P_DEVICE_DISCOV = 2,
SESSION_PROTECT_CONF_P2P_GO_NEGOTIATION = 3,
SESSION_PROTECT_CONF_MAX_ID = 4,
};
struct iwl_time_event_notif {
__le32 timestamp;
__le32 session_id;
__le32 unique_id;
__le32 id_and_color;
__le32 action;
__le32 status;
};
struct iwl_mvm_session_prot_cmd {
__le32 id_and_color;
__le32 action;
__le32 conf_id;
__le32 duration_tu;
__le32 repetition_count;
__le32 interval;
};
struct iwl_roc_req {
__le32 action;
__le32 activity;
__le32 sta_id;
struct iwl_fw_channel_info channel_info;
u8 node_addr[6];
__le16 reserved;
__le32 max_delay;
__le32 duration;
};
struct iwl_roc_notif {
__le32 success;
__le32 started;
__le32 activity;
};
struct iwl_time_event_cmd {
__le32 id_and_color;
__le32 action;
__le32 id;
__le32 apply_time;
__le32 max_delay;
__le32 depends_on;
__le32 interval;
__le32 duration;
u8 repeat;
u8 max_frags;
__le16 policy;
};
struct iwl_mvm_session_prot_notif {
__le32 mac_link_id;
__le32 status;
__le32 start;
__le32 conf_id;
};
struct iwl_fw_dbg_trigger_time_event {
struct {
__le32 id;
__le32 action_bitmap;
__le32 status_bitmap;
} time_events[16];
};
struct iwl_time_event_resp {
__le32 status;
__le32 id;
__le32 unique_id;
__le32 id_and_color;
};
struct vivaldi_data {
u32 function_row_physmap[24];
unsigned int num_function_row_keys;
};
struct atkbd {
struct ps2dev ps2dev;
struct input_dev *dev;
char name[64];
char phys[32];
unsigned short id;
unsigned short keycode[512];
unsigned long force_release_mask[8];
unsigned char set;
bool translated;
bool extra;
bool write;
bool softrepeat;
bool softraw;
bool scroll;
bool enabled;
unsigned char emul;
bool resend;
bool release;
unsigned long xl_bit;
unsigned int last;
unsigned long time;
unsigned long err_count;
struct delayed_work event_work;
unsigned long event_jiffies;
unsigned long event_mask;
struct mutex mutex;
struct vivaldi_data vdata;
};
struct dm_ioctl;
typedef int (*ioctl_fn___2)(struct file *, struct dm_ioctl *, size_t);
struct dm_ioctl {
__u32 version[3];
__u32 data_size;
__u32 data_start;
__u32 target_count;
__s32 open_count;
__u32 flags;
__u32 event_nr;
__u32 padding;
__u64 dev;
char name[128];
char uuid[129];
char data[7];
};
enum {
DM_VERSION_CMD = 0,
DM_REMOVE_ALL_CMD = 1,
DM_LIST_DEVICES_CMD = 2,
DM_DEV_CREATE_CMD = 3,
DM_DEV_REMOVE_CMD = 4,
DM_DEV_RENAME_CMD = 5,
DM_DEV_SUSPEND_CMD = 6,
DM_DEV_STATUS_CMD = 7,
DM_DEV_WAIT_CMD = 8,
DM_TABLE_LOAD_CMD = 9,
DM_TABLE_CLEAR_CMD = 10,
DM_TABLE_DEPS_CMD = 11,
DM_TABLE_STATUS_CMD = 12,
DM_LIST_VERSIONS_CMD = 13,
DM_TARGET_MSG_CMD = 14,
DM_DEV_SET_GEOMETRY_CMD = 15,
DM_DEV_ARM_POLL_CMD = 16,
DM_GET_TARGET_VERSION_CMD = 17,
};
struct hash_cell {
struct rb_node name_node;
struct rb_node uuid_node;
bool name_set;
bool uuid_set;
char *name;
char *uuid;
struct mapped_device *md;
struct dm_table *new_map;
};
struct dm_target_spec {
__u64 sector_start;
__u64 length;
__s32 status;
__u32 next;
char target_type[16];
};
struct dm_target_msg {
__u64 sector;
char message[0];
};
struct dm_target_deps {
__u32 count;
__u32 padding;
__u64 dev[0];
};
struct dm_target_versions;
struct vers_iter {
size_t param_size;
struct dm_target_versions *vers;
struct dm_target_versions *old_vers;
char *end;
uint32_t flags;
};
struct dm_target_versions {
__u32 next;
__u32 version[3];
char name[0];
};
struct dm_file {
volatile unsigned int global_event_nr;
};
struct dm_name_list {
__u64 dev;
__u32 next;
char name[0];
};
struct net_test {
char name[32];
int (*fn)(struct net_device *);
};
struct netsfhdr {
__be32 version;
__be64 magic;
u8 id;
} __attribute__((packed));
struct net_packet_attrs {
const unsigned char *src;
const unsigned char *dst;
u32 ip_src;
u32 ip_dst;
bool tcp;
u16 sport;
u16 dport;
int timeout;
int size;
int max_size;
u8 id;
u16 queue_mapping;
};
struct net_test_priv {
struct net_packet_attrs *packet;
struct packet_type pt;
struct completion comp;
int double_vlan;
int vlan_id;
int ok;
};
enum nft_immediate_attributes {
NFTA_IMMEDIATE_UNSPEC = 0,
NFTA_IMMEDIATE_DREG = 1,
NFTA_IMMEDIATE_DATA = 2,
__NFTA_IMMEDIATE_MAX = 3,
};
enum {
UDP_MIB_NUM = 0,
UDP_MIB_INDATAGRAMS = 1,
UDP_MIB_NOPORTS = 2,
UDP_MIB_INERRORS = 3,
UDP_MIB_OUTDATAGRAMS = 4,
UDP_MIB_RCVBUFERRORS = 5,
UDP_MIB_SNDBUFERRORS = 6,
UDP_MIB_CSUMERRORS = 7,
UDP_MIB_IGNOREDMULTI = 8,
UDP_MIB_MEMERRORS = 9,
__UDP_MIB_MAX = 10,
};
struct udp_skb_cb {
union {
struct inet_skb_parm h4;
struct inet6_skb_parm h6;
} header;
__u16 cscov;
__u8 partial_cov;
};
struct udp_dev_scratch {
u32 _tsize_state;
u16 len;
bool is_linear;
bool csum_unnecessary;
};
struct bpf_iter__udp {
union {
struct bpf_iter_meta *meta;
};
union {
struct udp_sock *udp_sk;
};
uid_t uid;
long: 0;
int bucket;
};
struct udp_iter_state {
struct seq_net_private p;
int bucket;
};
struct bpf_udp_iter_state {
struct udp_iter_state state;
unsigned int cur_sk;
unsigned int end_sk;
unsigned int max_sk;
int offset;
struct sock **batch;
bool st_bucket_done;
};
struct pci_mmcfg_hostbridge_probe {
u32 bus;
u32 devfn;
u32 vendor;
u32 device;
const char * (*probe)();
};
struct acpi_table_mcfg {
struct acpi_table_header header;
u8 reserved[8];
};
struct acpi_mcfg_allocation {
u64 address;
u16 pci_segment;
u8 start_bus_number;
u8 end_bus_number;
u32 reserved;
};
typedef bool (*check_reserved_t)(u64, u64, enum e820_type);
struct jump_label_patch {
const void *code;
int size;
};
struct cpu_stopper {
struct task_struct *thread;
raw_spinlock_t lock;
bool enabled;
struct list_head works;
struct cpu_stop_work stop_work;
unsigned long caller;
cpu_stop_fn_t fn;
};
struct cpu_stop_done {
atomic_t nr_todo;
int ret;
struct completion completion;
};
enum multi_stop_state {
MULTI_STOP_NONE = 0,
MULTI_STOP_PREPARE = 1,
MULTI_STOP_DISABLE_IRQ = 2,
MULTI_STOP_RUN = 3,
MULTI_STOP_EXIT = 4,
};
struct multi_stop_data {
cpu_stop_fn_t fn;
void *data;
unsigned int num_threads;
const struct cpumask *active_cpus;
enum multi_stop_state state;
atomic_t thread_ack;
};
struct btf_anon_stack {
u32 tid;
u32 offset;
};
struct uprobe_cpu_buffer {
struct mutex mutex;
void *buf;
};
struct trace_uprobe {
struct dyn_event devent;
struct uprobe_consumer consumer;
struct path path;
struct inode *inode;
char *filename;
unsigned long offset;
unsigned long ref_ctr_offset;
unsigned long nhit;
struct trace_probe tp;
};
struct uprobe_trace_entry_head {
struct trace_entry ent;
unsigned long vaddr[0];
};
typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *);
struct vma_swap_readahead {
unsigned short win;
unsigned short offset;
unsigned short nr_pte;
};
struct signalfd_siginfo {
__u32 ssi_signo;
__s32 ssi_errno;
__s32 ssi_code;
__u32 ssi_pid;
__u32 ssi_uid;
__s32 ssi_fd;
__u32 ssi_tid;
__u32 ssi_band;
__u32 ssi_overrun;
__u32 ssi_trapno;
__s32 ssi_status;
__s32 ssi_int;
__u64 ssi_ptr;
__u64 ssi_utime;
__u64 ssi_stime;
__u64 ssi_addr;
__u16 ssi_addr_lsb;
__u16 __pad2;
__s32 ssi_syscall;
__u64 ssi_call_addr;
__u32 ssi_arch;
__u8 __pad[28];
};
struct signalfd_ctx {
sigset_t sigmask;
};
struct scomp_scratch {
spinlock_t lock;
void *src;
void *dst;
};
struct pcim_iomap_devres {
void *table[6];
};
enum {
ACPI_BUTTON_LID_INIT_IGNORE = 0,
ACPI_BUTTON_LID_INIT_OPEN = 1,
ACPI_BUTTON_LID_INIT_METHOD = 2,
ACPI_BUTTON_LID_INIT_DISABLED = 3,
};
struct acpi_button {
unsigned int type;
struct input_dev *input;
char phys[32];
unsigned long pushed;
int last_state;
ktime_t last_time;
bool suspended;
bool lid_state_initialized;
};
struct devcd_entry {
struct device devcd_dev;
void *data;
size_t datalen;
struct mutex mutex;
bool delete_work;
struct module *owner;
ssize_t (*read)(char *, loff_t, size_t, void *, size_t);
void (*free)(void *);
struct delayed_work del_wk;
struct device *failing_dev;
};
enum ru_state {
RU_SUSPENDED = 0,
RU_RUNNING = 1,
RU_UNINITIALIZED = -1,
};
enum scb_cmd_lo {
cuc_nop = 0,
ruc_start = 1,
ruc_load_base = 6,
cuc_start = 16,
cuc_resume = 32,
cuc_dump_addr = 64,
cuc_dump_stats = 80,
cuc_load_base = 96,
cuc_dump_reset = 112,
};
struct rfd {
__le16 status;
__le16 command;
__le32 link;
__le32 rbd;
__le16 actual_size;
__le16 size;
};
enum mac {
mac_82557_D100_A = 0,
mac_82557_D100_B = 1,
mac_82557_D100_C = 2,
mac_82558_D101_A4 = 4,
mac_82558_D101_B0 = 5,
mac_82559_D101M = 8,
mac_82559_D101S = 9,
mac_82550_D102 = 12,
mac_82550_D102_C = 13,
mac_82551_E = 14,
mac_82551_F = 15,
mac_82551_10 = 16,
mac_unknown = 255,
};
enum phy___2 {
phy_100a = 992,
phy_100c = 55575208,
phy_82555_tx = 22020776,
phy_nsc_tx = 1543512064,
phy_82562_et = 53478056,
phy_82562_em = 52429480,
phy_82562_ek = 51380904,
phy_82562_eh = 24117928,
phy_82552_v = 3496017997,
phy_unknown = 4294967295,
};
struct param_range {
u32 min;
u32 max;
u32 count;
};
struct params {
struct param_range rfds;
struct param_range cbs;
};
enum loopback {
lb_none = 0,
lb_mac = 1,
lb_phy = 3,
};
struct rx;
struct csr___2;
struct cb;
struct mem;
struct nic {
u32 msg_enable;
struct net_device *netdev;
struct pci_dev *pdev;
u16 (*mdio_ctrl)(struct nic *, u32, u32, u32, u16);
long: 64;
long: 64;
long: 64;
long: 64;
struct rx *rxs;
struct rx *rx_to_use;
struct rx *rx_to_clean;
struct rfd blank_rfd;
enum ru_state ru_running;
long: 64;
long: 64;
spinlock_t cb_lock;
spinlock_t cmd_lock;
struct csr___2 *csr;
enum scb_cmd_lo cuc_cmd;
unsigned int cbs_avail;
struct napi_struct napi;
struct cb *cbs;
struct cb *cb_to_use;
struct cb *cb_to_send;
struct cb *cb_to_clean;
__le16 tx_command;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
enum {
ich = 1,
promiscuous = 2,
multicast_all = 4,
wol_magic = 8,
ich_10h_workaround = 16,
} flags;
enum mac mac;
enum phy___2 phy;
struct params params;
struct timer_list watchdog;
struct mii_if_info mii;
struct work_struct tx_timeout_task;
enum loopback loopback;
struct mem *mem;
dma_addr_t dma_addr;
struct dma_pool *cbs_pool;
dma_addr_t cbs_dma_addr;
u8 adaptive_ifs;
u8 tx_threshold;
u32 tx_frames;
u32 tx_collisions;
u32 tx_deferred;
u32 tx_single_collisions;
u32 tx_multiple_collisions;
u32 tx_fc_pause;
u32 tx_tco_frames;
u32 rx_fc_pause;
u32 rx_fc_unsupported;
u32 rx_tco_frames;
u32 rx_short_frame_errors;
u32 rx_over_length_errors;
u16 eeprom_wc;
__le16 eeprom[256];
spinlock_t mdio_lock;
const struct firmware *fw;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rx {
struct rx *next;
struct rx *prev;
struct sk_buff *skb;
dma_addr_t dma_addr;
};
struct csr___2 {
struct {
u8 status;
u8 stat_ack;
u8 cmd_lo;
u8 cmd_hi;
u32 gen_ptr;
} scb;
u32 port;
u16 flash_ctrl;
u8 eeprom_ctrl_lo;
u8 eeprom_ctrl_hi;
u32 mdi_ctrl;
u32 rx_dma_count;
};
struct config {
u8 byte_count: 6;
u8 pad0: 2;
u8 rx_fifo_limit: 4;
u8 tx_fifo_limit: 3;
u8 pad1: 1;
u8 adaptive_ifs;
u8 mwi_enable: 1;
u8 type_enable: 1;
u8 read_align_enable: 1;
u8 term_write_cache_line: 1;
u8 pad3: 4;
u8 rx_dma_max_count: 7;
u8 pad4: 1;
u8 tx_dma_max_count: 7;
u8 dma_max_count_enable: 1;
u8 late_scb_update: 1;
u8 direct_rx_dma: 1;
u8 tno_intr: 1;
u8 cna_intr: 1;
u8 standard_tcb: 1;
u8 standard_stat_counter: 1;
u8 rx_save_overruns: 1;
u8 rx_save_bad_frames: 1;
u8 rx_discard_short_frames: 1;
u8 tx_underrun_retry: 2;
u8 pad7: 2;
u8 rx_extended_rfd: 1;
u8 tx_two_frames_in_fifo: 1;
u8 tx_dynamic_tbd: 1;
u8 mii_mode: 1;
u8 pad8: 6;
u8 csma_disabled: 1;
u8 rx_tcpudp_checksum: 1;
u8 pad9: 3;
u8 vlan_arp_tco: 1;
u8 link_status_wake: 1;
u8 arp_wake: 1;
u8 mcmatch_wake: 1;
u8 pad10: 3;
u8 no_source_addr_insertion: 1;
u8 preamble_length: 2;
u8 loopback: 2;
u8 linear_priority: 3;
u8 pad11: 5;
u8 linear_priority_mode: 1;
u8 pad12: 3;
u8 ifs: 4;
u8 ip_addr_lo;
u8 ip_addr_hi;
u8 promiscuous_mode: 1;
u8 broadcast_disabled: 1;
u8 wait_after_win: 1;
u8 pad15_1: 1;
u8 ignore_ul_bit: 1;
u8 crc_16_bit: 1;
u8 pad15_2: 1;
u8 crs_or_cdt: 1;
u8 fc_delay_lo;
u8 fc_delay_hi;
u8 rx_stripping: 1;
u8 tx_padding: 1;
u8 rx_crc_transfer: 1;
u8 rx_long_ok: 1;
u8 fc_priority_threshold: 3;
u8 pad18: 1;
u8 addr_wake: 1;
u8 magic_packet_disable: 1;
u8 fc_disable: 1;
u8 fc_restop: 1;
u8 fc_restart: 1;
u8 fc_reject: 1;
u8 full_duplex_force: 1;
u8 full_duplex_pin: 1;
u8 pad20_1: 5;
u8 fc_priority_location: 1;
u8 multi_ia: 1;
u8 pad20_2: 1;
u8 pad21_1: 3;
u8 multicast_all: 1;
u8 pad21_2: 4;
u8 rx_d102_mode: 1;
u8 rx_vlan_drop: 1;
u8 pad22: 6;
u8 pad_d102[9];
};
struct multi {
__le16 count;
u8 addr[386];
};
struct cb {
__le16 status;
__le16 command;
__le32 link;
union {
u8 iaaddr[6];
__le32 ucode[134];
struct config config;
struct multi multi;
struct {
u32 tbd_array;
u16 tcb_byte_count;
u8 threshold;
u8 tbd_count;
struct {
__le32 buf_addr;
__le16 size;
u16 eol;
} tbd;
} tcb;
__le32 dump_buffer_addr;
} u;
struct cb *next;
struct cb *prev;
dma_addr_t dma_addr;
struct sk_buff *skb;
};
struct stats {
__le32 tx_good_frames;
__le32 tx_max_collisions;
__le32 tx_late_collisions;
__le32 tx_underruns;
__le32 tx_lost_crs;
__le32 tx_deferred;
__le32 tx_single_collisions;
__le32 tx_multiple_collisions;
__le32 tx_total_collisions;
__le32 rx_good_frames;
__le32 rx_crc_errors;
__le32 rx_alignment_errors;
__le32 rx_resource_errors;
__le32 rx_overrun_errors;
__le32 rx_cdt_errors;
__le32 rx_short_frame_errors;
__le32 fc_xmt_pause;
__le32 fc_rcv_pause;
__le32 fc_rcv_unsupported;
__le16 xmt_tco_frames;
__le16 rcv_tco_frames;
__le32 complete;
};
struct mem {
struct {
u32 signature;
u32 result;
} selftest;
struct stats stats;
u8 dump_buf[596];
};
enum eeprom_offsets {
eeprom_cnfg_mdix = 3,
eeprom_phy_iface = 6,
eeprom_id = 10,
eeprom_config_asf = 13,
eeprom_smbus_addr = 144,
};
enum eeprom_id {
eeprom_id_wol = 32,
};
enum cb_command {
cb_nop = 0,
cb_iaaddr = 1,
cb_config = 2,
cb_multi = 3,
cb_tx = 4,
cb_ucode = 5,
cb_dump = 6,
cb_tx_sf = 8,
cb_tx_nc = 16,
cb_cid = 7936,
cb_i = 8192,
cb_s = 16384,
cb_el = 32768,
};
enum port {
software_reset = 0,
selftest = 1,
selective_reset = 2,
};
enum cb_status {
cb_complete = 32768,
cb_ok = 8192,
};
enum mdi_ctrl {
mdi_write = 67108864,
mdi_read = 134217728,
mdi_ready = 268435456,
};
enum scb_cmd_hi {
irq_mask_none = 0,
irq_mask_all = 1,
irq_sw_gen = 2,
};
enum scb_stat_ack {
stat_ack_not_ours = 0,
stat_ack_sw_gen = 4,
stat_ack_rnr = 16,
stat_ack_cu_idle = 32,
stat_ack_frame_rx = 64,
stat_ack_cu_cmd_done = 128,
stat_ack_not_present = 255,
stat_ack_rx = 84,
stat_ack_tx = 160,
};
enum eeprom_op {
op_write = 5,
op_read = 6,
op_ewds = 16,
op_ewen = 19,
};
enum eeprom_ctrl_lo {
eesk = 1,
eecs = 2,
eedi = 4,
eedo = 8,
};
enum led_state {
led_on = 1,
led_off = 4,
led_on_559 = 5,
led_on_557 = 7,
};
enum scb_status {
rus_no_res = 8,
rus_ready = 16,
rus_mask = 60,
};
enum cuc_dump {
cuc_dump_complete = 40965,
cuc_dump_reset_complete = 40967,
};
enum eeprom_cnfg_mdix {
eeprom_mdix_enabled = 128,
};
enum eeprom_phy_iface {
NoSuchPhy = 0,
I82553AB = 1,
I82553C = 2,
I82503 = 3,
DP83840 = 4,
S80C240 = 5,
S80C24 = 6,
I82555 = 7,
DP83840A = 10,
};
enum eeprom_config_asf {
eeprom_asf = 32768,
eeprom_gcl = 16384,
};
struct uefi_cnv_common_step_data {
u8 revision;
u8 step_mode;
u8 cnvi_eq_channel;
u8 cnvr_eq_channel;
u8 radio1;
u8 radio2;
};
struct uefi_cnv_wlan_sgom_data {
u8 revision;
u8 offset_map[338];
};
struct uefi_cnv_wlan_uats_data {
u8 revision;
u8 offset_map[338];
};
struct uefi_sar_profile {
struct iwl_sar_profile_chain chains[4];
};
struct iwl_uefi_pnvm_mem_desc {
__le32 addr;
__le32 size;
const u8 data[0];
};
struct uefi_cnv_var_wrds {
u8 revision;
u32 mode;
struct uefi_sar_profile sar_profile;
} __attribute__((packed));
struct uefi_cnv_var_ewrd {
u8 revision;
u32 mode;
u32 num_profiles;
struct uefi_sar_profile sar_profiles[3];
} __attribute__((packed));
struct uefi_cnv_var_wgds {
u8 revision;
u8 num_profiles;
struct iwl_geo_profile geo_profiles[8];
};
struct uefi_cnv_var_ppag {
u8 revision;
u32 ppag_modes;
struct iwl_ppag_chain ppag_chains[2];
} __attribute__((packed));
struct uefi_cnv_var_wtas {
u8 revision;
u32 tas_selection;
u8 black_list_size;
u16 black_list[16];
} __attribute__((packed));
struct uefi_cnv_var_splc {
u8 revision;
u32 default_pwr_limit;
} __attribute__((packed));
struct uefi_cnv_var_wrdd {
u8 revision;
u32 mcc;
} __attribute__((packed));
struct uefi_cnv_var_eckv {
u8 revision;
u32 ext_clock_valid;
} __attribute__((packed));
struct uefi_cnv_var_general_cfg {
u8 revision;
u32 functions[32];
} __attribute__((packed));
struct queue_entry_priv_usb {
struct urb *urb;
};
struct queue_entry_priv_usb_bcn {
struct urb *urb;
unsigned int guardian_data;
struct urb *guardian_urb;
};
struct rt2x00_async_read_data {
__le32 reg;
struct usb_ctrlrequest cr;
struct rt2x00_dev *rt2x00dev;
bool (*callback)(struct rt2x00_dev *, int, u32);
};
enum xmp_state {
STATE_INACTIVE___8 = 0,
STATE_LEADER_PULSE = 1,
STATE_NIBBLE_SPACE = 2,
};
typedef int (*cppc_mode_transition_fn)(int);
enum amd_pstate_mode {
AMD_PSTATE_UNDEFINED = 0,
AMD_PSTATE_DISABLE = 1,
AMD_PSTATE_PASSIVE = 2,
AMD_PSTATE_ACTIVE = 3,
AMD_PSTATE_GUIDED = 4,
AMD_PSTATE_MAX = 5,
};
struct amd_aperf_mperf {
u64 aperf;
u64 mperf;
u64 tsc;
};
struct amd_cpudata {
int cpu;
struct freq_qos_request req[2];
u64 cppc_req_cached;
u32 highest_perf;
u32 nominal_perf;
u32 lowest_nonlinear_perf;
u32 lowest_perf;
u32 prefcore_ranking;
u32 min_limit_perf;
u32 max_limit_perf;
u32 min_limit_freq;
u32 max_limit_freq;
u32 max_freq;
u32 min_freq;
u32 nominal_freq;
u32 lowest_nonlinear_freq;
struct amd_aperf_mperf cur;
struct amd_aperf_mperf prev;
u64 freq;
bool boost_supported;
bool hw_prefcore;
s16 epp_policy;
s16 epp_cached;
u32 policy;
u64 cppc_cap1_cached;
bool suspended;
};
enum nft_lookup_attributes {
NFTA_LOOKUP_UNSPEC = 0,
NFTA_LOOKUP_SET = 1,
NFTA_LOOKUP_SREG = 2,
NFTA_LOOKUP_DREG = 3,
NFTA_LOOKUP_SET_ID = 4,
NFTA_LOOKUP_FLAGS = 5,
__NFTA_LOOKUP_MAX = 6,
};
enum nft_lookup_flags {
NFT_LOOKUP_F_INV = 1,
};
struct nft_lookup {
struct nft_set *set;
u8 sreg;
u8 dreg;
bool dreg_set;
bool invert;
struct nft_set_binding binding;
};
enum {
TKIP_DECRYPT_OK = 0,
TKIP_DECRYPT_NO_EXT_IV = -1,
TKIP_DECRYPT_INVALID_KEYIDX = -2,
TKIP_DECRYPT_REPLAY = -3,
};
struct tlb_state_shared {
bool is_lazy;
};
struct flush_tlb_info {
struct mm_struct *mm;
unsigned long start;
unsigned long end;
u64 new_tlb_gen;
unsigned int initiating_cpu;
u8 stride_shift;
u8 freed_tables;
};
enum tlb_flush_reason {
TLB_FLUSH_ON_TASK_SWITCH = 0,
TLB_REMOTE_SHOOTDOWN = 1,
TLB_LOCAL_SHOOTDOWN = 2,
TLB_LOCAL_MM_SHOOTDOWN = 3,
TLB_REMOTE_SEND_IPI = 4,
NR_TLB_FLUSH_REASONS = 5,
};
typedef void (*btf_trace_timer_init)(void *, struct timer_list *);
typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long);
typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long);
typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *);
typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *);
typedef void (*btf_trace_timer_base_idle)(void *, bool, unsigned int);
typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode);
typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode);
typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *);
typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *);
typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *);
typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long);
typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long);
typedef void (*btf_trace_tick_stop)(void *, int, int);
struct timer_base {
raw_spinlock_t lock;
struct timer_list *running_timer;
unsigned long clk;
unsigned long next_expiry;
unsigned int cpu;
bool next_expiry_recalc;
bool is_idle;
bool timers_pending;
unsigned long pending_map[9];
struct hlist_head vectors[576];
long: 64;
long: 64;
long: 64;
};
struct trace_event_raw_timer_class {
struct trace_entry ent;
void *timer;
char __data[0];
};
struct trace_event_raw_timer_start {
struct trace_entry ent;
void *timer;
void *function;
unsigned long expires;
unsigned long bucket_expiry;
unsigned long now;
unsigned int flags;
char __data[0];
};
struct trace_event_raw_timer_expire_entry {
struct trace_entry ent;
void *timer;
unsigned long now;
void *function;
unsigned long baseclk;
char __data[0];
};
struct trace_event_raw_timer_base_idle {
struct trace_entry ent;
bool is_idle;
unsigned int cpu;
char __data[0];
};
struct trace_event_raw_hrtimer_init {
struct trace_entry ent;
void *hrtimer;
clockid_t clockid;
enum hrtimer_mode mode;
char __data[0];
};
struct trace_event_raw_hrtimer_start {
struct trace_entry ent;
void *hrtimer;
void *function;
s64 expires;
s64 softexpires;
enum hrtimer_mode mode;
char __data[0];
};
struct trace_event_raw_hrtimer_expire_entry {
struct trace_entry ent;
void *hrtimer;
s64 now;
void *function;
char __data[0];
};
struct trace_event_raw_hrtimer_class {
struct trace_entry ent;
void *hrtimer;
char __data[0];
};
struct trace_event_raw_itimer_state {
struct trace_entry ent;
int which;
unsigned long long expires;
long value_sec;
long value_nsec;
long interval_sec;
long interval_nsec;
char __data[0];
};
struct trace_event_raw_itimer_expire {
struct trace_entry ent;
int which;
pid_t pid;
unsigned long long now;
char __data[0];
};
struct trace_event_raw_tick_stop {
struct trace_entry ent;
int success;
int dependency;
char __data[0];
};
struct process_timer {
struct timer_list timer;
struct task_struct *task;
};
struct trace_event_data_offsets_timer_class {};
struct trace_event_data_offsets_timer_start {};
struct trace_event_data_offsets_timer_expire_entry {};
struct trace_event_data_offsets_timer_base_idle {};
struct trace_event_data_offsets_hrtimer_init {};
struct trace_event_data_offsets_hrtimer_start {};
struct trace_event_data_offsets_hrtimer_expire_entry {};
struct trace_event_data_offsets_hrtimer_class {};
struct trace_event_data_offsets_itimer_state {};
struct trace_event_data_offsets_itimer_expire {};
struct trace_event_data_offsets_tick_stop {};
struct bucket;
struct htab_elem;
struct bpf_htab {
struct bpf_map map;
struct bpf_mem_alloc ma;
struct bpf_mem_alloc pcpu_ma;
struct bucket *buckets;
void *elems;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
union {
struct pcpu_freelist freelist;
struct bpf_lru lru;
};
struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems;
struct percpu_counter pcount;
atomic_t count;
bool use_percpu_counter;
u32 n_buckets;
u32 elem_size;
u32 hashrnd;
struct lock_class_key lockdep_key;
int __attribute__((btf_type_tag("percpu"))) *map_locked[8];
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct bucket {
struct hlist_nulls_head head;
raw_spinlock_t raw_lock;
};
struct htab_elem {
union {
struct hlist_nulls_node hash_node;
struct {
void *padding;
union {
struct pcpu_freelist_node fnode;
struct htab_elem *batch_flink;
};
};
};
union {
void *ptr_to_pptr;
struct bpf_lru_node lru_node;
};
u32 hash;
long: 0;
char key[0];
};
struct bpf_iter_seq_hash_map_info {
struct bpf_map *map;
struct bpf_htab *htab;
void *percpu_value_buf;
u32 bucket_id;
u32 skip_elems;
};
struct follow_page_context {
struct dev_pagemap *pgmap;
unsigned int page_mask;
};
struct SU_SP_s {
__u8 magic[2];
__u8 skip;
};
struct SU_CE_s {
__u8 extent[8];
__u8 offset[8];
__u8 size[8];
};
struct SU_ER_s {
__u8 len_id;
__u8 len_des;
__u8 len_src;
__u8 ext_ver;
__u8 data[0];
};
struct RR_RR_s {
__u8 flags[1];
};
struct RR_PX_s {
__u8 mode[8];
__u8 n_links[8];
__u8 uid[8];
__u8 gid[8];
};
struct RR_PN_s {
__u8 dev_high[8];
__u8 dev_low[8];
};
struct SL_component {
__u8 flags;
__u8 len;
__u8 text[0];
};
struct RR_SL_s {
__u8 flags;
struct SL_component link;
};
struct RR_NM_s {
__u8 flags;
char name[0];
};
struct RR_CL_s {
__u8 location[8];
};
struct RR_PL_s {
__u8 location[8];
};
struct stamp {
__u8 time[7];
};
struct RR_TF_s {
__u8 flags;
struct stamp times[0];
};
struct RR_ZF_s {
__u8 algorithm[2];
__u8 parms[2];
__u8 real_size[8];
};
struct rock_ridge {
__u8 signature[2];
__u8 len;
__u8 version;
union {
struct SU_SP_s SP;
struct SU_CE_s CE;
struct SU_ER_s ER;
struct RR_RR_s RR;
struct RR_PX_s PX;
struct RR_PN_s PN;
struct RR_SL_s SL;
struct RR_NM_s NM;
struct RR_CL_s CL;
struct RR_PL_s PL;
struct RR_TF_s TF;
struct RR_ZF_s ZF;
} u;
};
struct rock_state {
void *buffer;
unsigned char *chr;
int len;
int cont_size;
int cont_extent;
int cont_offset;
int cont_loops;
struct inode *inode;
};
enum {
Opt_uid___8 = 0,
Opt_gid___9 = 1,
};
struct show_busy_params {
struct seq_file *m;
struct blk_mq_hw_ctx *hctx;
};
struct io_shutdown {
struct file *file;
int how;
};
struct io_sr_msg {
struct file *file;
union {
struct compat_msghdr __attribute__((btf_type_tag("user"))) *umsg_compat;
struct user_msghdr __attribute__((btf_type_tag("user"))) *umsg;
void __attribute__((btf_type_tag("user"))) *buf;
};
unsigned int len;
unsigned int done_io;
unsigned int msg_flags;
unsigned int nr_multishot_loops;
u16 flags;
u16 addr_len;
u16 buf_group;
void __attribute__((btf_type_tag("user"))) *addr;
void __attribute__((btf_type_tag("user"))) *msg_control;
struct io_kiocb *notif;
};
struct io_accept {
struct file *file;
struct sockaddr __attribute__((btf_type_tag("user"))) *addr;
int __attribute__((btf_type_tag("user"))) *addr_len;
int flags;
u32 file_slot;
unsigned long nofile;
};
struct io_socket {
struct file *file;
int domain;
int type;
int protocol;
int flags;
u32 file_slot;
unsigned long nofile;
};
struct io_connect {
struct file *file;
struct sockaddr __attribute__((btf_type_tag("user"))) *addr;
int addr_len;
bool in_progress;
bool seen_econnaborted;
};
struct io_async_msghdr {
union {
struct iovec fast_iov[8];
struct {
struct iovec fast_iov_one;
__kernel_size_t controllen;
int namelen;
__kernel_size_t payloadlen;
};
struct io_cache_entry cache;
};
struct iovec *free_iov;
struct sockaddr __attribute__((btf_type_tag("user"))) *uaddr;
struct msghdr msg;
struct __kernel_sockaddr_storage addr;
};
struct io_uring_recvmsg_out {
__u32 namelen;
__u32 controllen;
__u32 payloadlen;
__u32 flags;
};
struct io_recvmsg_multishot_hdr {
struct io_uring_recvmsg_out msg;
struct __kernel_sockaddr_storage addr;
};
struct io_async_connect {
struct __kernel_sockaddr_storage address;
};
struct iwl_mvm_link_sel_data {
u8 link_id;
enum nl80211_band band;
enum nl80211_chan_width width;
bool active;
};
struct usb_phy_roothub {
struct phy *phy;
struct list_head list;
};
typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int);
typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int);
struct trace_event_raw_i2c_write {
struct trace_entry ent;
int adapter_nr;
__u16 msg_nr;
__u16 addr;
__u16 flags;
__u16 len;
u32 __data_loc_buf;
char __data[0];
};
struct trace_event_raw_i2c_read {
struct trace_entry ent;
int adapter_nr;
__u16 msg_nr;
__u16 addr;
__u16 flags;
__u16 len;
char __data[0];
};
struct trace_event_raw_i2c_reply {
struct trace_entry ent;
int adapter_nr;
__u16 msg_nr;
__u16 addr;
__u16 flags;
__u16 len;
u32 __data_loc_buf;
char __data[0];
};
struct trace_event_raw_i2c_result {
struct trace_entry ent;
int adapter_nr;
__u16 nr_msgs;
__s16 ret;
char __data[0];
};
struct trace_event_data_offsets_i2c_write {
u32 buf;
const void *buf_ptr_;
};
struct trace_event_data_offsets_i2c_reply {
u32 buf;
const void *buf_ptr_;
};
struct trace_event_data_offsets_i2c_read {};
struct trace_event_data_offsets_i2c_result {};
struct i2c_timings {
u32 bus_freq_hz;
u32 scl_rise_ns;
u32 scl_fall_ns;
u32 scl_int_delay_ns;
u32 sda_fall_ns;
u32 sda_hold_ns;
u32 digital_filter_width_ns;
u32 analog_filter_cutoff_freq_hz;
};
struct i2c_cmd_arg {
unsigned int cmd;
void *arg;
};
struct i2c_device_identity {
u16 manufacturer_id;
u16 part_id;
u8 die_revision;
};
struct nf_nat_range {
unsigned int flags;
union nf_inet_addr min_addr;
union nf_inet_addr max_addr;
union nf_conntrack_man_proto min_proto;
union nf_conntrack_man_proto max_proto;
};
struct irq_info___2 {
u8 bus;
u8 devfn;
struct {
u8 link;
u16 bitmap;
} __attribute__((packed)) irq[4];
u8 slot;
u8 rfu;
};
struct irq_routing_table {
u32 signature;
u16 version;
u16 size;
u8 rtr_bus;
u8 rtr_devfn;
u16 exclusive_irqs;
u16 rtr_vendor;
u16 rtr_device;
u32 miniport_data;
u8 rfu[11];
u8 checksum;
struct irq_info___2 slots[0];
};
struct irq_router {
char *name;
u16 vendor;
u16 device;
int (*get)(struct pci_dev *, struct pci_dev *, int);
int (*set)(struct pci_dev *, struct pci_dev *, int, int);
int (*lvl)(struct pci_dev *, struct pci_dev *, int, int);
};
struct irq_router_handler {
u16 vendor;
int (*probe)(struct irq_router *, struct pci_dev *, u16);
};
struct irt_routing_table {
u32 signature;
u8 size;
u8 used;
u16 exclusive_irqs;
struct irq_info___2 slots[0];
};
enum psc_op {
SNP_PAGE_STATE_PRIVATE = 1,
SNP_PAGE_STATE_SHARED = 2,
};
struct chipset {
u32 vendor;
u32 device;
u32 class;
u32 class_mask;
u32 flags;
void (*f)(int, int, int);
};
struct intel_early_ops {
resource_size_t (*stolen_size)(int, int, int);
resource_size_t (*stolen_base)(int, int, int, resource_size_t);
};
struct smp_ops {
void (*smp_prepare_boot_cpu)();
void (*smp_prepare_cpus)(unsigned int);
void (*smp_cpus_done)(unsigned int);
void (*stop_other_cpus)(int);
void (*crash_stop_other_cpus)();
void (*smp_send_reschedule)(int);
void (*cleanup_dead_cpu)(unsigned int);
void (*poll_sync_state)();
int (*kick_ap_alive)(unsigned int, struct task_struct *);
int (*cpu_disable)();
void (*cpu_die)(unsigned int);
void (*play_dead)();
void (*send_call_func_ipi)(const struct cpumask *);
void (*send_call_func_single_ipi)(int);
};
struct rcu_exp_work {
unsigned long rew_s;
struct kthread_work rew_work;
};
struct rcu_node {
raw_spinlock_t lock;
unsigned long gp_seq;
unsigned long gp_seq_needed;
unsigned long completedqs;
unsigned long qsmask;
unsigned long rcu_gp_init_mask;
unsigned long qsmaskinit;
unsigned long qsmaskinitnext;
unsigned long expmask;
unsigned long expmaskinit;
unsigned long expmaskinitnext;
struct kthread_worker *exp_kworker;
unsigned long cbovldmask;
unsigned long ffmask;
unsigned long grpmask;
int grplo;
int grphi;
u8 grpnum;
u8 level;
bool wait_blkd_tasks;
struct rcu_node *parent;
struct list_head blkd_tasks;
struct list_head *gp_tasks;
struct list_head *exp_tasks;
struct list_head *boost_tasks;
struct rt_mutex boost_mtx;
unsigned long boost_time;
struct mutex kthread_mutex;
struct task_struct *boost_kthread_task;
unsigned int boost_kthread_status;
unsigned long n_boosts;
struct swait_queue_head nocb_gp_wq[2];
raw_spinlock_t fqslock;
spinlock_t exp_lock;
unsigned long exp_seq_rq;
wait_queue_head_t exp_wq[4];
struct rcu_exp_work rew;
bool exp_need_flush;
raw_spinlock_t exp_poll_lock;
unsigned long exp_seq_poll_rq;
struct work_struct exp_poll_wq;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
union rcu_noqs {
struct {
u8 norm;
u8 exp;
} b;
u16 s;
};
struct rcu_snap_record {
unsigned long gp_seq;
u64 cputime_irq;
u64 cputime_softirq;
u64 cputime_system;
unsigned long nr_hardirqs;
unsigned int nr_softirqs;
unsigned long long nr_csw;
unsigned long jiffies;
};
struct rcu_data {
unsigned long gp_seq;
unsigned long gp_seq_needed;
union rcu_noqs cpu_no_qs;
bool core_needs_qs;
bool beenonline;
bool gpwrap;
bool cpu_started;
struct rcu_node *mynode;
unsigned long grpmask;
unsigned long ticks_this_gp;
struct irq_work defer_qs_iw;
bool defer_qs_iw_pending;
struct work_struct strict_work;
struct rcu_segcblist cblist;
long qlen_last_fqs_check;
unsigned long n_cbs_invoked;
unsigned long n_force_qs_snap;
long blimit;
int dynticks_snap;
bool rcu_need_heavy_qs;
bool rcu_urgent_qs;
bool rcu_forced_tick;
bool rcu_forced_tick_exp;
unsigned long barrier_seq_snap;
struct callback_head barrier_head;
int exp_dynticks_snap;
struct swait_queue_head nocb_cb_wq;
struct swait_queue_head nocb_state_wq;
struct task_struct *nocb_gp_kthread;
raw_spinlock_t nocb_lock;
atomic_t nocb_lock_contended;
int nocb_defer_wakeup;
struct timer_list nocb_timer;
unsigned long nocb_gp_adv_time;
struct mutex nocb_gp_kthread_mutex;
long: 64;
raw_spinlock_t nocb_bypass_lock;
struct rcu_cblist nocb_bypass;
unsigned long nocb_bypass_first;
unsigned long nocb_nobypass_last;
int nocb_nobypass_count;
long: 64;
long: 64;
raw_spinlock_t nocb_gp_lock;
u8 nocb_gp_sleep;
u8 nocb_gp_bypass;
u8 nocb_gp_gp;
unsigned long nocb_gp_seq;
unsigned long nocb_gp_loops;
struct swait_queue_head nocb_gp_wq;
bool nocb_cb_sleep;
struct task_struct *nocb_cb_kthread;
struct list_head nocb_head_rdp;
struct list_head nocb_entry_rdp;
struct rcu_data *nocb_toggling_rdp;
long: 64;
long: 64;
long: 64;
long: 64;
struct rcu_data *nocb_gp_rdp;
struct task_struct *rcu_cpu_kthread_task;
unsigned int rcu_cpu_kthread_status;
char rcu_cpu_has_work;
unsigned long rcuc_activity;
unsigned int softirq_snap;
struct irq_work rcu_iw;
bool rcu_iw_pending;
unsigned long rcu_iw_gp_seq;
unsigned long rcu_ofl_gp_seq;
short rcu_ofl_gp_flags;
unsigned long rcu_onl_gp_seq;
short rcu_onl_gp_flags;
unsigned long last_fqs_resched;
unsigned long last_sched_clock;
struct rcu_snap_record snap_record;
long lazy_len;
int cpu;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rcu_state {
struct rcu_node node[521];
struct rcu_node *level[4];
int ncpus;
int n_online_cpus;
long: 64;
long: 64;
long: 64;
unsigned long gp_seq;
unsigned long gp_max;
struct task_struct *gp_kthread;
struct swait_queue_head gp_wq;
short gp_flags;
short gp_state;
unsigned long gp_wake_time;
unsigned long gp_wake_seq;
unsigned long gp_seq_polled;
unsigned long gp_seq_polled_snap;
unsigned long gp_seq_polled_exp_snap;
struct mutex barrier_mutex;
atomic_t barrier_cpu_count;
struct completion barrier_completion;
unsigned long barrier_sequence;
raw_spinlock_t barrier_lock;
struct mutex exp_mutex;
struct mutex exp_wake_mutex;
unsigned long expedited_sequence;
atomic_t expedited_need_qs;
struct swait_queue_head expedited_wq;
int ncpus_snap;
u8 cbovld;
u8 cbovldnext;
unsigned long jiffies_force_qs;
unsigned long jiffies_kick_kthreads;
unsigned long n_force_qs;
unsigned long gp_start;
unsigned long gp_end;
unsigned long gp_activity;
unsigned long gp_req_activity;
unsigned long jiffies_stall;
int nr_fqs_jiffies_stall;
unsigned long jiffies_resched;
unsigned long n_force_qs_gpstart;
const char *name;
char abbr;
long: 0;
arch_spinlock_t ofl_lock;
int nocb_is_setup;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct rcu_gp_oldstate {
unsigned long rgos_norm;
unsigned long rgos_exp;
};
struct kfree_rcu_cpu;
struct kfree_rcu_cpu_work {
struct rcu_work rcu_work;
struct callback_head *head_free;
struct rcu_gp_oldstate head_free_gp_snap;
struct list_head bulk_head_free[2];
struct kfree_rcu_cpu *krcp;
};
struct kfree_rcu_cpu {
struct callback_head *head;
unsigned long head_gp_snap;
atomic_t head_count;
struct list_head bulk_head[2];
atomic_t bulk_count[2];
struct kfree_rcu_cpu_work krw_arr[2];
raw_spinlock_t lock;
struct delayed_work monitor_work;
bool initialized;
struct delayed_work page_cache_work;
atomic_t backoff_page_cache_fill;
atomic_t work_in_progress;
struct hrtimer hrtimer;
struct llist_head bkvcache;
int nr_bkv_objs;
};
struct kvfree_rcu_bulk_data {
struct list_head list;
struct rcu_gp_oldstate gp_snap;
unsigned long nr_records;
void *records[0];
};
struct rcu_stall_chk_rdr {
int nesting;
union rcu_special rs;
bool on_blkd_list;
};
struct list_lru_memcg {
struct callback_head rcu;
struct list_lru_one node[0];
};
struct list_lru_memcg_table {
struct list_lru_memcg *mlru;
struct mem_cgroup *memcg;
};
struct old_linux_dirent {
unsigned long d_ino;
unsigned long d_offset;
unsigned short d_namlen;
char d_name[0];
};
struct readdir_callback {
struct dir_context ctx;
struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent;
int result;
};
struct linux_dirent {
unsigned long d_ino;
unsigned long d_off;
unsigned short d_reclen;
char d_name[0];
};
struct getdents_callback___2 {
struct dir_context ctx;
struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir;
int prev_reclen;
int count;
int error;
};
struct linux_dirent64 {
u64 d_ino;
s64 d_off;
unsigned short d_reclen;
unsigned char d_type;
char d_name[0];
};
struct getdents_callback64 {
struct dir_context ctx;
struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir;
int prev_reclen;
int count;
int error;
};
struct iomap_swapfile_info {
struct iomap iomap;
struct swap_info_struct *sis;
uint64_t lowest_ppage;
uint64_t highest_ppage;
unsigned long nr_pages;
int nr_extents;
struct file *file;
};
struct keyring_read_iterator_context {
size_t buflen;
size_t count;
key_serial_t *buffer;
};
struct blk_stat_callback {
struct list_head list;
struct timer_list timer;
struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat;
int (*bucket_fn)(const struct request *);
unsigned int buckets;
struct blk_rq_stat *stat;
void (*timer_fn)(struct blk_stat_callback *);
void *data;
struct callback_head rcu;
};
struct blk_queue_stats {
struct list_head callbacks;
spinlock_t lock;
int accounting;
};
struct bfq_group_data {
struct blkcg_policy_data pd;
unsigned int weight;
};
struct sg_pool {
size_t size;
char *name;
struct kmem_cache *slab;
mempool_t *pool;
};
struct virtio_admin_cmd {
__le16 opcode;
__le16 group_type;
__le64 group_member_id;
struct scatterlist *data_sg;
struct scatterlist *result_sg;
};
struct virtio_admin_cmd_status {
__le16 status;
__le16 status_qualifier;
__u8 reserved2[4];
};
struct virtio_admin_cmd_hdr {
__le16 opcode;
__le16 group_type;
__u8 reserved1[12];
__le64 group_member_id;
};
typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *);
typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int);
typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *);
typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *);
typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *);
enum scsi_vpd_parameters {
SCSI_VPD_HEADER_SIZE = 4,
SCSI_VPD_LIST_SIZE = 36,
};
struct trace_event_raw_scsi_dispatch_cmd_start {
struct trace_entry ent;
unsigned int host_no;
unsigned int channel;
unsigned int id;
unsigned int lun;
unsigned int opcode;
unsigned int cmd_len;
int driver_tag;
int scheduler_tag;
unsigned int data_sglen;
unsigned int prot_sglen;
unsigned char prot_op;
u32 __data_loc_cmnd;
char __data[0];
};
struct trace_event_raw_scsi_dispatch_cmd_error {
struct trace_entry ent;
unsigned int host_no;
unsigned int channel;
unsigned int id;
unsigned int lun;
int rtn;
unsigned int opcode;
unsigned int cmd_len;
int driver_tag;
int scheduler_tag;
unsigned int data_sglen;
unsigned int prot_sglen;
unsigned char prot_op;
u32 __data_loc_cmnd;
char __data[0];
};
struct trace_event_raw_scsi_cmd_done_timeout_template {
struct trace_entry ent;
unsigned int host_no;
unsigned int channel;
unsigned int id;
unsigned int lun;
int result;
unsigned int opcode;
unsigned int cmd_len;
int driver_tag;
int scheduler_tag;
unsigned int data_sglen;
unsigned int prot_sglen;
unsigned char prot_op;
u32 __data_loc_cmnd;
u8 sense_key;
u8 asc;
u8 ascq;
char __data[0];
};
struct trace_event_raw_scsi_eh_wakeup {
struct trace_entry ent;
unsigned int host_no;
char __data[0];
};
struct trace_event_data_offsets_scsi_dispatch_cmd_start {
u32 cmnd;
const void *cmnd_ptr_;
};
struct trace_event_data_offsets_scsi_dispatch_cmd_error {
u32 cmnd;
const void *cmnd_ptr_;
};
struct trace_event_data_offsets_scsi_cmd_done_timeout_template {
u32 cmnd;
const void *cmnd_ptr_;
};
struct trace_event_data_offsets_scsi_eh_wakeup {};
struct iwl_dev_info {
u16 device;
u16 subdevice;
u16 mac_type;
u16 rf_type;
u8 mac_step;
u8 rf_step;
u8 rf_id;
u8 no_160;
u8 cores;
u8 cdb;
u8 jacket;
const struct iwl_cfg *cfg;
const char *name;
};
enum {
WFPM_AUX_CTL_AUX_IF_MAC_OWNER_MSK = 2147483648,
};
enum iwl_link_ctx_protection_flags {
LINK_PROT_FLG_TGG_PROTECT = 1,
LINK_PROT_FLG_HT_PROT = 2,
LINK_PROT_FLG_FAT_PROT = 4,
LINK_PROT_FLG_SELF_CTS_EN = 8,
};
enum iwl_link_ctx_flags {
LINK_FLG_BSS_COLOR_DIS = 1,
LINK_FLG_MU_EDCA_CW = 2,
LINK_FLG_RU_2MHZ_BLOCK = 4,
LINK_FLG_NDP_FEEDBACK_ENABLED = 8,
};
struct iwl_link_config_cmd {
__le32 action;
__le32 link_id;
__le32 mac_id;
__le32 phy_id;
u8 local_link_addr[6];
__le16 reserved_for_local_link_addr;
__le32 modify_mask;
__le32 active;
union {
__le32 listen_lmac;
__le32 reserved1;
};
__le32 cck_rates;
__le32 ofdm_rates;
__le32 cck_short_preamble;
__le32 short_slot;
__le32 protection_flags;
__le32 qos_flags;
struct iwl_ac_qos___2 ac[5];
u8 htc_trig_based_pkt_ext;
u8 rand_alloc_ecwmin;
u8 rand_alloc_ecwmax;
u8 ndp_fdbk_buff_th_exp;
struct iwl_he_backoff_conf trig_based_txf[4];
__le32 bi;
__le32 dtim_interval;
__le16 puncture_mask;
__le16 frame_time_rts_th;
__le32 flags;
__le32 flags_mask;
u8 ref_bssid_addr[6];
__le16 reserved_for_ref_bssid_addr;
u8 bssid_index;
u8 bss_color;
u8 spec_link_id;
u8 reserved2;
u8 ibss_bssid_addr[6];
__le16 reserved_for_ibss_bssid_addr;
__le32 reserved3[8];
};
struct _thermal_state {
u64 next_check;
u64 last_interrupt_time;
struct delayed_work therm_work;
unsigned long count;
unsigned long last_count;
unsigned long max_time_ms;
unsigned long total_time_ms;
bool rate_control_active;
bool new_event;
u8 level;
u8 sample_index;
u8 sample_count;
u8 average;
u8 baseline_temp;
u8 temp_samples[3];
};
struct thermal_state {
struct _thermal_state core_throttle;
struct _thermal_state core_power_limit;
struct _thermal_state package_throttle;
struct _thermal_state package_power_limit;
struct _thermal_state core_thresh0;
struct _thermal_state core_thresh1;
struct _thermal_state pkg_thresh0;
struct _thermal_state pkg_thresh1;
};
enum {
ETHTOOL_A_FEATURES_UNSPEC = 0,
ETHTOOL_A_FEATURES_HEADER = 1,
ETHTOOL_A_FEATURES_HW = 2,
ETHTOOL_A_FEATURES_WANTED = 3,
ETHTOOL_A_FEATURES_ACTIVE = 4,
ETHTOOL_A_FEATURES_NOCHANGE = 5,
__ETHTOOL_A_FEATURES_CNT = 6,
ETHTOOL_A_FEATURES_MAX = 5,
};
struct features_reply_data {
struct ethnl_reply_data base;
u32 hw[2];
u32 wanted[2];
u32 active[2];
u32 nochange[2];
u32 all[2];
};
struct tsq_tasklet {
struct tasklet_struct tasklet;
struct list_head head;
};
enum tsq_flags {
TSQF_THROTTLED = 1,
TSQF_QUEUED = 2,
TCPF_TSQ_DEFERRED = 4,
TCPF_WRITE_TIMER_DEFERRED = 8,
TCPF_DELACK_TIMER_DEFERRED = 16,
TCPF_MTU_REDUCED_DEFERRED = 32,
TCPF_ACK_DEFERRED = 64,
};
enum {
BPF_WRITE_HDR_TCP_CURRENT_MSS = 1,
BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2,
};
struct sk_buff_fclones {
struct sk_buff skb1;
struct sk_buff skb2;
refcount_t fclone_ref;
};
struct mptcp_out_options {};
struct tcp_out_options {
u16 options;
u16 mss;
u8 ws;
u8 num_sack_blocks;
u8 hash_size;
u8 bpf_opt_len;
__u8 *hash_location;
__u32 tsval;
__u32 tsecr;
struct tcp_fastopen_cookie *fastopen_cookie;
struct mptcp_out_options mptcp;
};
enum nl80211_peer_measurement_peer_attrs {
__NL80211_PMSR_PEER_ATTR_INVALID = 0,
NL80211_PMSR_PEER_ATTR_ADDR = 1,
NL80211_PMSR_PEER_ATTR_CHAN = 2,
NL80211_PMSR_PEER_ATTR_REQ = 3,
NL80211_PMSR_PEER_ATTR_RESP = 4,
NUM_NL80211_PMSR_PEER_ATTRS = 5,
NL80211_PMSR_PEER_ATTR_MAX = 4,
};
enum nl80211_peer_measurement_req {
__NL80211_PMSR_REQ_ATTR_INVALID = 0,
NL80211_PMSR_REQ_ATTR_DATA = 1,
NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 2,
NUM_NL80211_PMSR_REQ_ATTRS = 3,
NL80211_PMSR_REQ_ATTR_MAX = 2,
};
enum nl80211_peer_measurement_ftm_req {
__NL80211_PMSR_FTM_REQ_ATTR_INVALID = 0,
NL80211_PMSR_FTM_REQ_ATTR_ASAP = 1,
NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 2,
NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 3,
NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 4,
NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 5,
NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 6,
NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 7,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 8,
NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 9,
NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 10,
NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 11,
NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 12,
NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 13,
NUM_NL80211_PMSR_FTM_REQ_ATTR = 14,
NL80211_PMSR_FTM_REQ_ATTR_MAX = 13,
};
enum nl80211_peer_measurement_resp {
__NL80211_PMSR_RESP_ATTR_INVALID = 0,
NL80211_PMSR_RESP_ATTR_DATA = 1,
NL80211_PMSR_RESP_ATTR_STATUS = 2,
NL80211_PMSR_RESP_ATTR_HOST_TIME = 3,
NL80211_PMSR_RESP_ATTR_AP_TSF = 4,
NL80211_PMSR_RESP_ATTR_FINAL = 5,
NL80211_PMSR_RESP_ATTR_PAD = 6,
NUM_NL80211_PMSR_RESP_ATTRS = 7,
NL80211_PMSR_RESP_ATTR_MAX = 6,
};
enum nl80211_peer_measurement_ftm_resp {
__NL80211_PMSR_FTM_RESP_ATTR_INVALID = 0,
NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 1,
NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 2,
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 3,
NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 4,
NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 5,
NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 6,
NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 7,
NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 8,
NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 9,
NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 10,
NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 11,
NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 12,
NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 13,
NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 14,
NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 15,
NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 16,
NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 17,
NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 18,
NL80211_PMSR_FTM_RESP_ATTR_LCI = 19,
NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 20,
NL80211_PMSR_FTM_RESP_ATTR_PAD = 21,
NUM_NL80211_PMSR_FTM_RESP_ATTR = 22,
NL80211_PMSR_FTM_RESP_ATTR_MAX = 21,
};
enum pci_bf_sort_state {
pci_bf_sort_default = 0,
pci_force_nobf = 1,
pci_force_bf = 2,
pci_dmi_bf = 3,
};
struct pci_setup_rom {
struct setup_data data;
uint16_t vendor;
uint16_t devid;
uint64_t pcilen;
unsigned long segment;
unsigned long bus;
unsigned long device;
unsigned long function;
uint8_t romdata[0];
};
struct mcs_spinlock {
struct mcs_spinlock *next;
int locked;
int count;
};
struct qnode {
struct mcs_spinlock mcs;
};
struct pm_vt_switch {
struct list_head head;
struct device *dev;
bool required;
};
struct posix_clock_desc {
struct file *fp;
struct posix_clock *clk;
};
typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int);
typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool);
typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int);
typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32);
typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int);
typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *);
typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int);
typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int);
typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool);
typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int);
typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int);
typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int);
typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int);
typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int);
typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int);
typedef void (*btf_trace_pm_qos_add_request)(void *, s32);
typedef void (*btf_trace_pm_qos_update_request)(void *, s32);
typedef void (*btf_trace_pm_qos_remove_request)(void *, s32);
typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int);
typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int);
typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32);
typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int);
struct trace_event_raw_cpu {
struct trace_entry ent;
u32 state;
u32 cpu_id;
char __data[0];
};
struct trace_event_raw_cpu_idle_miss {
struct trace_entry ent;
u32 cpu_id;
u32 state;
bool below;
char __data[0];
};
struct trace_event_raw_powernv_throttle {
struct trace_entry ent;
int chip_id;
u32 __data_loc_reason;
int pmax;
char __data[0];
};
struct trace_event_raw_pstate_sample {
struct trace_entry ent;
u32 core_busy;
u32 scaled_busy;
u32 from;
u32 to;
u64 mperf;
u64 aperf;
u64 tsc;
u32 freq;
u32 io_boost;
char __data[0];
};
struct trace_event_raw_cpu_frequency_limits {
struct trace_entry ent;
u32 min_freq;
u32 max_freq;
u32 cpu_id;
char __data[0];
};
struct trace_event_raw_device_pm_callback_start {
struct trace_entry ent;
u32 __data_loc_device;
u32 __data_loc_driver;
u32 __data_loc_parent;
u32 __data_loc_pm_ops;
int event;
char __data[0];
};
struct trace_event_raw_device_pm_callback_end {
struct trace_entry ent;
u32 __data_loc_device;
u32 __data_loc_driver;
int error;
char __data[0];
};
struct trace_event_raw_suspend_resume {
struct trace_entry ent;
const char *action;
int val;
bool start;
char __data[0];
};
struct trace_event_raw_wakeup_source {
struct trace_entry ent;
u32 __data_loc_name;
u64 state;
char __data[0];
};
struct trace_event_raw_clock {
struct trace_entry ent;
u32 __data_loc_name;
u64 state;
u64 cpu_id;
char __data[0];
};
struct trace_event_raw_power_domain {
struct trace_entry ent;
u32 __data_loc_name;
u64 state;
u64 cpu_id;
char __data[0];
};
struct trace_event_raw_cpu_latency_qos_request {
struct trace_entry ent;
s32 value;
char __data[0];
};
struct trace_event_raw_pm_qos_update {
struct trace_entry ent;
enum pm_qos_req_action action;
int prev_value;
int curr_value;
char __data[0];
};
struct trace_event_raw_dev_pm_qos_request {
struct trace_entry ent;
u32 __data_loc_name;
enum dev_pm_qos_req_type type;
s32 new_value;
char __data[0];
};
struct trace_event_raw_guest_halt_poll_ns {
struct trace_entry ent;
bool grow;
unsigned int new;
unsigned int old;
char __data[0];
};
struct trace_event_data_offsets_powernv_throttle {
u32 reason;
const void *reason_ptr_;
};
struct trace_event_data_offsets_device_pm_callback_end {
u32 device;
const void *device_ptr_;
u32 driver;
const void *driver_ptr_;
};
struct trace_event_data_offsets_wakeup_source {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_clock {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_power_domain {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_dev_pm_qos_request {
u32 name;
const void *name_ptr_;
};
struct trace_event_data_offsets_cpu {};
struct trace_event_data_offsets_cpu_idle_miss {};
struct trace_event_data_offsets_pstate_sample {};
struct trace_event_data_offsets_cpu_frequency_limits {};
struct trace_event_data_offsets_device_pm_callback_start {
u32 device;
const void *device_ptr_;
u32 driver;
const void *driver_ptr_;
u32 parent;
const void *parent_ptr_;
u32 pm_ops;
const void *pm_ops_ptr_;
};
struct trace_event_data_offsets_suspend_resume {};
struct trace_event_data_offsets_cpu_latency_qos_request {};
struct trace_event_data_offsets_pm_qos_update {};
struct trace_event_data_offsets_guest_halt_poll_ns {};
struct memory_dev_type;
struct node_memory_type_map {
struct memory_dev_type *memtype;
int map_count;
};
struct memory_dev_type {
struct list_head tier_sibling;
struct list_head list;
int adistance;
nodemask_t nodes;
struct kref kref;
};
struct demotion_nodes {
nodemask_t preferred;
};
struct access_coordinate {
unsigned int read_bandwidth;
unsigned int write_bandwidth;
unsigned int read_latency;
unsigned int write_latency;
};
struct ns_get_path_task_args {
const struct proc_ns_operations *ns_ops;
struct task_struct *task;
};
enum {
BIAS = 2147483648,
};
struct pde_opener {
struct list_head lh;
struct file *file;
bool closing;
struct completion *c;
};
enum scrub_stripe_flags {
SCRUB_STRIPE_FLAG_INITIALIZED = 0,
SCRUB_STRIPE_FLAG_REPAIR_DONE = 1,
SCRUB_STRIPE_FLAG_NO_REPORT = 2,
};
struct scrub_sector_verification;
struct scrub_stripe {
struct scrub_ctx *sctx;
struct btrfs_block_group *bg;
struct page *pages[16];
struct scrub_sector_verification *sectors;
struct btrfs_device *dev;
u64 logical;
u64 physical;
u16 mirror_num;
u16 nr_sectors;
u16 nr_data_extents;
u16 nr_meta_extents;
atomic_t pending_io;
wait_queue_head_t io_wait;
wait_queue_head_t repair_wait;
unsigned long state;
unsigned long extent_sector_bitmap;
unsigned long init_error_bitmap;
unsigned int init_nr_io_errors;
unsigned int init_nr_csum_errors;
unsigned int init_nr_meta_errors;
unsigned long error_bitmap;
unsigned long io_error_bitmap;
unsigned long csum_error_bitmap;
unsigned long meta_error_bitmap;
unsigned long write_error_bitmap;
spinlock_t write_error_lock;
u8 *csums;
struct work_struct work;
};
struct scrub_ctx {
struct scrub_stripe stripes[128];
struct scrub_stripe *raid56_data_stripes;
struct btrfs_fs_info *fs_info;
struct btrfs_path extent_path;
struct btrfs_path csum_path;
int first_free;
int cur_stripe;
atomic_t cancel_req;
int readonly;
ktime_t throttle_deadline;
u64 throttle_sent;
int is_dev_replace;
u64 write_pointer;
struct mutex wr_lock;
struct btrfs_device *wr_tgtdev;
struct btrfs_scrub_progress stat;
spinlock_t stat_lock;
refcount_t refs;
};
struct scrub_sector_verification {
bool is_metadata;
union {
u8 *csum;
u64 generation;
};
};
struct scrub_warning {
struct btrfs_path *path;
u64 extent_item_size;
const char *errstr;
u64 physical;
u64 logical;
struct btrfs_device *dev;
};
struct io_rename {
struct file *file;
int old_dfd;
int new_dfd;
struct filename *oldpath;
struct filename *newpath;
int flags;
};
struct io_unlink {
struct file *file;
int dfd;
int flags;
struct filename *filename;
};
struct io_mkdir {
struct file *file;
int dfd;
umode_t mode;
struct filename *filename;
};
struct io_link {
struct file *file;
int old_dfd;
int new_dfd;
struct filename *oldpath;
struct filename *newpath;
int flags;
};
struct nla_bitfield32 {
__u32 value;
__u32 selector;
};
typedef void (*btf_trace_iwlwifi_dev_ioread32)(void *, const struct device *, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_iowrite8)(void *, const struct device *, u32, u8);
typedef void (*btf_trace_iwlwifi_dev_iowrite32)(void *, const struct device *, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_iowrite64)(void *, const struct device *, u64, u64);
typedef void (*btf_trace_iwlwifi_dev_iowrite_prph32)(void *, const struct device *, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_iowrite_prph64)(void *, const struct device *, u64, u64);
typedef void (*btf_trace_iwlwifi_dev_ioread_prph32)(void *, const struct device *, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_irq)(void *, const struct device *);
typedef void (*btf_trace_iwlwifi_dev_irq_msix)(void *, const struct device *, struct msix_entry *, bool, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_ict_read)(void *, const struct device *, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_ucode_cont_event)(void *, const struct device *, u32, u32, u32);
typedef void (*btf_trace_iwlwifi_dev_ucode_wrap_event)(void *, const struct device *, u32, u32, u32);
typedef void (*btf_trace_iwlwifi_err)(void *, struct va_format *);
typedef void (*btf_trace_iwlwifi_warn)(void *, struct va_format *);
typedef void (*btf_trace_iwlwifi_info)(void *, struct va_format *);
typedef void (*btf_trace_iwlwifi_crit)(void *, struct va_format *);
typedef void (*btf_trace_iwlwifi_dbg)(void *, u32, const char *, struct va_format *);
typedef void (*btf_trace_iwlwifi_dev_tx_tb)(void *, const struct device *, struct sk_buff *, u8 *, dma_addr_t, size_t);
typedef void (*btf_trace_iwlwifi_dev_rx_data)(void *, const struct device *, void *, size_t, size_t);
typedef void (*btf_trace_iwlwifi_dev_hcmd)(void *, const struct device *, struct iwl_host_cmd *, u16, struct iwl_cmd_header_wide *);
typedef void (*btf_trace_iwlwifi_dev_rx)(void *, const struct device *, struct iwl_rx_packet *, size_t, size_t, size_t);
typedef void (*btf_trace_iwlwifi_dev_tx)(void *, const struct device *, struct sk_buff *, void *, size_t, void *, size_t, int);
typedef void (*btf_trace_iwlwifi_dev_ucode_event)(void *, const struct device *, u32, u32, u32);
struct trace_event_raw_iwlwifi_dev_ioread32 {
struct trace_entry ent;
u32 __data_loc_dev;
u32 offs;
u32 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_iowrite8 {
struct trace_entry ent;
u32 __data_loc_dev;
u32 offs;
u8 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_iowrite32 {
struct trace_entry ent;
u32 __data_loc_dev;
u32 offs;
u32 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_iowrite64 {
struct trace_entry ent;
u32 __data_loc_dev;
u64 offs;
u64 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_iowrite_prph32 {
struct trace_entry ent;
u32 __data_loc_dev;
u32 offs;
u32 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_iowrite_prph64 {
struct trace_entry ent;
u32 __data_loc_dev;
u64 offs;
u64 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_ioread_prph32 {
struct trace_entry ent;
u32 __data_loc_dev;
u32 offs;
u32 val;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_irq {
struct trace_entry ent;
u32 __data_loc_dev;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_irq_msix {
struct trace_entry ent;
u32 __data_loc_dev;
u32 entry;
u8 defirq;
u32 inta_fh;
u32 inta_hw;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_ict_read {
struct trace_entry ent;
u32 __data_loc_dev;
u32 index;
u32 value;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_ucode_cont_event {
struct trace_entry ent;
u32 __data_loc_dev;
u32 time;
u32 data;
u32 ev;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_ucode_wrap_event {
struct trace_entry ent;
u32 __data_loc_dev;
u32 wraps;
u32 n_entry;
u32 p_entry;
char __data[0];
};
struct trace_event_raw_iwlwifi_msg_event {
struct trace_entry ent;
u32 __data_loc_msg;
char __data[0];
};
struct trace_event_raw_iwlwifi_dbg {
struct trace_entry ent;
u32 level;
u32 __data_loc_function;
u32 __data_loc_msg;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_tx_tb {
struct trace_entry ent;
u32 __data_loc_dev;
u64 phys;
u32 __data_loc_data;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_rx_data {
struct trace_entry ent;
u32 __data_loc_dev;
u32 __data_loc_data;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_hcmd {
struct trace_entry ent;
u32 __data_loc_dev;
u32 __data_loc_hcmd;
u32 flags;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_rx {
struct trace_entry ent;
u32 __data_loc_dev;
u16 cmd;
u8 hdr_offset;
u32 __data_loc_rxbuf;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_tx {
struct trace_entry ent;
u32 __data_loc_dev;
void *skbaddr;
size_t framelen;
u32 __data_loc_tfd;
u32 __data_loc_buf0;
u32 __data_loc_buf1;
char __data[0];
};
struct trace_event_raw_iwlwifi_dev_ucode_event {
struct trace_entry ent;
u32 __data_loc_dev;
u32 time;
u32 data;
u32 ev;
char __data[0];
};
struct trace_event_data_offsets_iwlwifi_dev_ioread32 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_iowrite8 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_iowrite32 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_iowrite64 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_iowrite_prph32 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_iowrite_prph64 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_ioread_prph32 {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_irq {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_irq_msix {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_ict_read {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_ucode_cont_event {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_ucode_wrap_event {
u32 dev;
const void *dev_ptr_;
};
struct trace_event_data_offsets_iwlwifi_msg_event {
u32 msg;
const void *msg_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dbg {
u32 function;
const void *function_ptr_;
u32 msg;
const void *msg_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_tx_tb {
u32 dev;
const void *dev_ptr_;
u32 data;
const void *data_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_rx_data {
u32 dev;
const void *dev_ptr_;
u32 data;
const void *data_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_hcmd {
u32 dev;
const void *dev_ptr_;
u32 hcmd;
const void *hcmd_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_rx {
u32 dev;
const void *dev_ptr_;
u32 rxbuf;
const void *rxbuf_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_tx {
u32 dev;
const void *dev_ptr_;
u32 tfd;
const void *tfd_ptr_;
u32 buf0;
const void *buf0_ptr_;
u32 buf1;
const void *buf1_ptr_;
};
struct trace_event_data_offsets_iwlwifi_dev_ucode_event {
u32 dev;
const void *dev_ptr_;
};
struct linear_c {
struct dm_dev *dev;
sector_t start;
};
enum txtime_flags {
SOF_TXTIME_DEADLINE_MODE = 1,
SOF_TXTIME_REPORT_ERRORS = 2,
SOF_TXTIME_FLAGS_LAST = 2,
SOF_TXTIME_FLAGS_MASK = 3,
};
enum {
SK_MEMINFO_RMEM_ALLOC = 0,
SK_MEMINFO_RCVBUF = 1,
SK_MEMINFO_WMEM_ALLOC = 2,
SK_MEMINFO_SNDBUF = 3,
SK_MEMINFO_FWD_ALLOC = 4,
SK_MEMINFO_WMEM_QUEUED = 5,
SK_MEMINFO_OPTMEM = 6,
SK_MEMINFO_BACKLOG = 7,
SK_MEMINFO_DROPS = 8,
SK_MEMINFO_VARS = 9,
};
struct linger {
int l_onoff;
int l_linger;
};
struct sock_txtime {
__kernel_clockid_t clockid;
__u32 flags;
};
struct so_timestamping {
int flags;
int bind_phc;
};
enum reg_type {
REG_TYPE_RM = 0,
REG_TYPE_REG = 1,
REG_TYPE_INDEX = 2,
REG_TYPE_BASE = 3,
};
enum insn_mmio_type {
INSN_MMIO_DECODE_FAILED = 0,
INSN_MMIO_WRITE = 1,
INSN_MMIO_WRITE_IMM = 2,
INSN_MMIO_READ = 3,
INSN_MMIO_READ_ZERO_EXTEND = 4,
INSN_MMIO_READ_SIGN_EXTEND = 5,
INSN_MMIO_MOVS = 6,
};
struct sigcontext_64 {
__u64 r8;
__u64 r9;
__u64 r10;
__u64 r11;
__u64 r12;
__u64 r13;
__u64 r14;
__u64 r15;
__u64 di;
__u64 si;
__u64 bp;
__u64 bx;
__u64 dx;
__u64 ax;
__u64 cx;
__u64 sp;
__u64 ip;
__u64 flags;
__u16 cs;
__u16 gs;
__u16 fs;
__u16 ss;
__u64 err;
__u64 trapno;
__u64 oldmask;
__u64 cr2;
__u64 fpstate;
__u64 reserved1[8];
};
struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
struct sigcontext_64 uc_mcontext;
sigset_t uc_sigmask;
};
struct rt_sigframe {
char __attribute__((btf_type_tag("user"))) *pretcode;
struct ucontext uc;
struct siginfo info;
};
struct irq_devres {
unsigned int irq;
void *dev_id;
};
struct irq_desc_devres {
unsigned int from;
unsigned int cnt;
};
struct irq_matrix;
typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *);
struct cpumap;
struct irq_matrix {
unsigned int matrix_bits;
unsigned int alloc_start;
unsigned int alloc_end;
unsigned int alloc_size;
unsigned int global_available;
unsigned int global_reserved;
unsigned int systembits_inalloc;
unsigned int total_allocated;
unsigned int online_maps;
struct cpumap __attribute__((btf_type_tag("percpu"))) *maps;
unsigned long *system_map;
unsigned long scratch_map[0];
};
struct cpumap {
unsigned int available;
unsigned int allocated;
unsigned int managed;
unsigned int managed_allocated;
bool initialized;
bool online;
unsigned long *managed_map;
unsigned long alloc_map[0];
};
typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *);
typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *);
typedef void (*btf_trace_irq_matrix_remove_reserved)(void *, struct irq_matrix *);
typedef void (*btf_trace_irq_matrix_assign_system)(void *, int, struct irq_matrix *);
typedef void (*btf_trace_irq_matrix_alloc_reserved)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_reserve_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_remove_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *);
struct trace_event_raw_irq_matrix_global {
struct trace_entry ent;
unsigned int online_maps;
unsigned int global_available;
unsigned int global_reserved;
unsigned int total_allocated;
char __data[0];
};
struct trace_event_raw_irq_matrix_global_update {
struct trace_entry ent;
int bit;
unsigned int online_maps;
unsigned int global_available;
unsigned int global_reserved;
unsigned int total_allocated;
char __data[0];
};
struct trace_event_raw_irq_matrix_cpu {
struct trace_entry ent;
int bit;
unsigned int cpu;
bool online;
unsigned int available;
unsigned int allocated;
unsigned int managed;
unsigned int online_maps;
unsigned int global_available;
unsigned int global_reserved;
unsigned int total_allocated;
char __data[0];
};
struct trace_event_data_offsets_irq_matrix_global {};
struct trace_event_data_offsets_irq_matrix_global_update {};
struct trace_event_data_offsets_irq_matrix_cpu {};
enum {
SYNTH_ERR_BAD_NAME = 0,
SYNTH_ERR_INVALID_CMD = 1,
SYNTH_ERR_INVALID_DYN_CMD = 2,
SYNTH_ERR_EVENT_EXISTS = 3,
SYNTH_ERR_TOO_MANY_FIELDS = 4,
SYNTH_ERR_INCOMPLETE_TYPE = 5,
SYNTH_ERR_INVALID_TYPE = 6,
SYNTH_ERR_INVALID_FIELD = 7,
SYNTH_ERR_INVALID_ARRAY_SPEC = 8,
};
struct trace_dynamic_info {
u16 offset;
u16 len;
};
union trace_synth_field {
u8 as_u8;
u16 as_u16;
u32 as_u32;
u64 as_u64;
struct trace_dynamic_info as_dynamic;
};
struct synth_trace_event {
struct trace_entry ent;
union trace_synth_field fields[0];
};
struct synth_event_trace_state {
struct trace_event_buffer fbuffer;
struct synth_trace_event *entry;
struct trace_buffer *buffer;
struct synth_event *event;
unsigned int cur_field;
unsigned int n_u64;
bool disabled;
bool add_next;
bool add_name;
};
struct synth_field_desc {
const char *type;
const char *name;
};
struct cgroup_iter_priv {
struct cgroup_subsys_state *start_css;
bool visited_all;
bool terminate;
int order;
};
struct bpf_iter__cgroup {
union {
struct bpf_iter_meta *meta;
};
union {
struct cgroup *cgroup;
};
};
struct bpf_iter_css {
__u64 __opaque[3];
};
struct bpf_iter_css_kern {
struct cgroup_subsys_state *start;
struct cgroup_subsys_state *pos;
unsigned int flags;
};
struct mlock_fbatch {
local_lock_t lock;
struct folio_batch fbatch;
};
enum {
Enabled = 0,
Magic = 1,
};
typedef struct {
struct list_head list;
unsigned long flags;
int offset;
int size;
char *magic;
char *mask;
const char *interpreter;
char *name;
struct dentry *dentry;
struct file *interp_file;
refcount_t users;
} Node;
typedef unsigned short __kernel_uid16_t;
typedef __kernel_uid16_t uid16_t;
typedef unsigned short __kernel_gid16_t;
typedef __kernel_gid16_t gid16_t;
struct mpage_da_data {
struct inode *inode;
struct writeback_control *wbc;
unsigned int can_map: 1;
unsigned long first_page;
unsigned long next_page;
unsigned long last_page;
struct ext4_map_blocks map;
struct ext4_io_submit io_submit;
unsigned int do_map: 1;
unsigned int scanned_until_end: 1;
unsigned int journalled_more_data: 1;
};
typedef void (*btf_trace_wbt_stat)(void *, struct backing_dev_info *, struct blk_rq_stat *);
typedef void (*btf_trace_wbt_lat)(void *, struct backing_dev_info *, unsigned long);
typedef void (*btf_trace_wbt_step)(void *, struct backing_dev_info *, const char *, int, unsigned long, unsigned int, unsigned int, unsigned int);
typedef void (*btf_trace_wbt_timer)(void *, struct backing_dev_info *, unsigned int, int, unsigned int);
enum {
WBT_STATE_ON_DEFAULT = 1,
WBT_STATE_ON_MANUAL = 2,
WBT_STATE_OFF_DEFAULT = 3,
WBT_STATE_OFF_MANUAL = 4,
};
enum {
WBT_RWQ_BG = 0,
WBT_RWQ_KSWAPD = 1,
WBT_RWQ_DISCARD = 2,
WBT_NUM_RWQ = 3,
};
enum {
RWB_DEF_DEPTH = 16,
RWB_WINDOW_NSEC = 100000000,
RWB_MIN_WRITE_SAMPLES = 3,
RWB_UNKNOWN_BUMP = 5,
};
enum {
LAT_OK = 1,
LAT_UNKNOWN = 2,
LAT_UNKNOWN_WRITES = 3,
LAT_EXCEEDED = 4,
};
enum wbt_flags {
WBT_TRACKED = 1,
WBT_READ = 2,
WBT_KSWAPD = 4,
WBT_DISCARD = 8,
WBT_NR_BITS = 4,
};
struct trace_event_raw_wbt_stat {
struct trace_entry ent;
char name[32];
s64 rmean;
u64 rmin;
u64 rmax;
s64 rnr_samples;
s64 rtime;
s64 wmean;
u64 wmin;
u64 wmax;
s64 wnr_samples;
s64 wtime;
char __data[0];
};
struct trace_event_raw_wbt_lat {
struct trace_entry ent;
char name[32];
unsigned long lat;
char __data[0];
};
struct trace_event_raw_wbt_step {
struct trace_entry ent;
char name[32];
const char *msg;
int step;
unsigned long window;
unsigned int bg;
unsigned int normal;
unsigned int max;
char __data[0];
};
struct trace_event_raw_wbt_timer {
struct trace_entry ent;
char name[32];
unsigned int status;
int step;
unsigned int inflight;
char __data[0];
};
struct rq_wb {
unsigned int wb_background;
unsigned int wb_normal;
short enable_state;
unsigned int unknown_cnt;
u64 win_nsec;
u64 cur_win_nsec;
struct blk_stat_callback *cb;
u64 sync_issue;
void *sync_cookie;
unsigned long last_issue;
unsigned long last_comp;
unsigned long min_lat_nsec;
struct rq_qos rqos;
struct rq_wait rq_wait[3];
struct rq_depth rq_depth;
};
struct wbt_wait_data {
struct rq_wb *rwb;
enum wbt_flags wb_acct;
blk_opf_t opf;
};
struct trace_event_data_offsets_wbt_stat {};
struct trace_event_data_offsets_wbt_lat {};
struct trace_event_data_offsets_wbt_step {};
struct trace_event_data_offsets_wbt_timer {};
typedef struct tree_desc_s tree_desc;
struct hpx_type0 {
u32 revision;
u8 cache_line_size;
u8 latency_timer;
u8 enable_serr;
u8 enable_perr;
};
enum hpx_type3_cfg_loc {
HPX_CFG_PCICFG = 0,
HPX_CFG_PCIE_CAP = 1,
HPX_CFG_PCIE_CAP_EXT = 2,
HPX_CFG_VEND_CAP = 3,
HPX_CFG_DVSEC = 4,
HPX_CFG_MAX = 5,
};
enum hpx_type3_fn_type {
HPX_FN_NORMAL = 1,
HPX_FN_SRIOV_PHYS = 2,
HPX_FN_SRIOV_VIRT = 4,
};
struct hpx_type2 {
u32 revision;
u32 unc_err_mask_and;
u32 unc_err_mask_or;
u32 unc_err_sever_and;
u32 unc_err_sever_or;
u32 cor_err_mask_and;
u32 cor_err_mask_or;
u32 adv_err_cap_and;
u32 adv_err_cap_or;
u16 pci_exp_devctl_and;
u16 pci_exp_devctl_or;
u16 pci_exp_lnkctl_and;
u16 pci_exp_lnkctl_or;
u32 sec_unc_err_sever_and;
u32 sec_unc_err_sever_or;
u32 sec_unc_err_mask_and;
u32 sec_unc_err_mask_or;
};
struct hpx_type1 {
u32 revision;
u8 max_mem_read;
u8 avg_max_split;
u16 tot_max_split;
};
struct hpx_type3 {
u16 device_type;
u16 function_type;
u16 config_space_location;
u16 pci_exp_cap_id;
u16 pci_exp_cap_ver;
u16 pci_exp_vendor_id;
u16 dvsec_id;
u16 dvsec_rev;
u16 match_offset;
u32 match_mask_and;
u32 match_value;
u16 reg_offset;
u32 reg_mask_and;
u32 reg_mask_or;
};
struct virtio_admin_cmd_legacy_wr_data {
__u8 offset;
__u8 reserved[7];
__u8 registers[0];
};
struct virtio_admin_cmd_legacy_rd_data {
__u8 offset;
};
struct virtio_admin_cmd_notify_info_data {
__u8 flags;
__u8 bar;
__u8 padding[6];
__le64 offset;
};
struct virtio_admin_cmd_notify_info_result {
struct virtio_admin_cmd_notify_info_data entries[4];
};
typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *);
struct platform_msi_priv_data {
struct device *dev;
void *host_data;
msi_alloc_info_t arg;
irq_write_msi_msg_t write_msg;
int devid;
};
enum phy_state_work {
PHY_STATE_WORK_NONE = 0,
PHY_STATE_WORK_ANEG = 1,
PHY_STATE_WORK_SUSPEND = 2,
};
struct iwl_rxon_assoc_cmd {
__le32 flags;
__le32 filter_flags;
u8 ofdm_basic_rates;
u8 cck_basic_rates;
__le16 reserved1;
u8 ofdm_ht_single_stream_basic_rates;
u8 ofdm_ht_dual_stream_basic_rates;
u8 ofdm_ht_triple_stream_basic_rates;
u8 reserved2;
__le16 rx_chain_select_flags;
__le16 acquisition_data;
__le32 reserved3;
};
struct iwl_calib_chain_noise_reset_cmd {
struct iwl_calib_hdr hdr;
u8 data[0];
};
struct iwl_wipan_slot {
__le16 width;
u8 type;
u8 reserved;
};
struct iwl_wipan_params_cmd {
__le16 flags;
u8 reserved;
u8 num_slots;
struct iwl_wipan_slot slots[10];
};
enum rtw_pwr_seq_cmd_delay_unit {
RTW_PWR_DELAY_US = 0,
RTW_PWR_DELAY_MS = 1,
};
struct sdio_func;
struct rtw_sdio_work_data;
struct rtw_sdio {
struct sdio_func *sdio_func;
u32 irq_mask;
u8 rx_addr;
bool sdio3_bus_mode;
void *irq_thread;
struct workqueue_struct *txwq;
struct rtw_sdio_work_data *tx_handler_data;
struct sk_buff_head tx_queue[8];
};
struct rtw_sdio_work_data {
struct work_struct work;
struct rtw_dev *rtwdev;
};
typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int);
typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int);
typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int);
typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int);
typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int);
typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int);
typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int);
typedef void (*btf_trace_rtc_set_offset)(void *, long, int);
typedef void (*btf_trace_rtc_read_offset)(void *, long, int);
typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *);
typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *);
typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *);
enum {
none = 0,
day = 1,
month = 2,
year = 3,
};
struct trace_event_raw_rtc_time_alarm_class {
struct trace_entry ent;
time64_t secs;
int err;
char __data[0];
};
struct trace_event_raw_rtc_irq_set_freq {
struct trace_entry ent;
int freq;
int err;
char __data[0];
};
struct trace_event_raw_rtc_irq_set_state {
struct trace_entry ent;
int enabled;
int err;
char __data[0];
};
struct trace_event_raw_rtc_alarm_irq_enable {
struct trace_entry ent;
unsigned int enabled;
int err;
char __data[0];
};
struct trace_event_raw_rtc_offset_class {
struct trace_entry ent;
long offset;
int err;
char __data[0];
};
struct trace_event_raw_rtc_timer_class {
struct trace_entry ent;
struct rtc_timer *timer;
ktime_t expires;
ktime_t period;
char __data[0];
};
struct trace_event_data_offsets_rtc_time_alarm_class {};
struct trace_event_data_offsets_rtc_irq_set_freq {};
struct trace_event_data_offsets_rtc_irq_set_state {};
struct trace_event_data_offsets_rtc_alarm_irq_enable {};
struct trace_event_data_offsets_rtc_offset_class {};
struct trace_event_data_offsets_rtc_timer_class {};
typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *);
typedef efi_status_t efi_set_time_t(efi_time_t *);
typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *);
typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *);
typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *);
typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *);
typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *);
typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *);
typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long);
typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *);
typedef efi_status_t efi_get_next_high_mono_count_t(u32 *);
typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *);
struct efi {
const efi_runtime_services_t *runtime;
unsigned int runtime_version;
unsigned int runtime_supported_mask;
unsigned long acpi;
unsigned long acpi20;
unsigned long smbios;
unsigned long smbios3;
unsigned long esrt;
unsigned long tpm_log;
unsigned long tpm_final_log;
unsigned long mokvar_table;
unsigned long coco_secret;
unsigned long unaccepted;
efi_get_time_t *get_time;
efi_set_time_t *set_time;
efi_get_wakeup_time_t *get_wakeup_time;
efi_set_wakeup_time_t *set_wakeup_time;
efi_get_variable_t *get_variable;
efi_get_next_variable_t *get_next_variable;
efi_set_variable_t *set_variable;
efi_set_variable_t *set_variable_nonblocking;
efi_query_variable_info_t *query_variable_info;
efi_query_variable_info_t *query_variable_info_nonblocking;
efi_update_capsule_t *update_capsule;
efi_query_capsule_caps_t *query_capsule_caps;
efi_get_next_high_mono_count_t *get_next_high_mono_count;
efi_reset_system_t *reset_system;
struct efi_memory_map memmap;
unsigned long flags;
};
struct linux_efi_memreserve {
int size;
atomic_t count;
phys_addr_t next;
struct {
phys_addr_t base;
phys_addr_t size;
} entry[0];
};
typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool);
struct efivar_operations {
efi_get_variable_t *get_variable;
efi_get_next_variable_t *get_next_variable;
efi_set_variable_t *set_variable;
efi_set_variable_t *set_variable_nonblocking;
efi_query_variable_store_t *query_variable_store;
efi_query_variable_info_t *query_variable_info;
};
struct efivars {
struct kset *kset;
const struct efivar_operations *ops;
};
struct linux_efi_random_seed {
u32 size;
u8 bits[0];
};
typedef struct {
u16 version;
u16 length;
u32 runtime_services_supported;
} efi_rt_properties_table_t;
typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *);
enum {
ETHTOOL_A_HEADER_UNSPEC = 0,
ETHTOOL_A_HEADER_DEV_INDEX = 1,
ETHTOOL_A_HEADER_DEV_NAME = 2,
ETHTOOL_A_HEADER_FLAGS = 3,
__ETHTOOL_A_HEADER_CNT = 4,
ETHTOOL_A_HEADER_MAX = 3,
};
enum ethtool_multicast_groups {
ETHNL_MCGRP_MONITOR = 0,
};
struct ethnl_dump_ctx {
const struct ethnl_request_ops *ops;
struct ethnl_req_info *req_info;
struct ethnl_reply_data *reply_data;
unsigned long pos_ifindex;
};
enum nft_byteorder_ops {
NFT_BYTEORDER_NTOH = 0,
NFT_BYTEORDER_HTON = 1,
};
enum nft_byteorder_attributes {
NFTA_BYTEORDER_UNSPEC = 0,
NFTA_BYTEORDER_SREG = 1,
NFTA_BYTEORDER_DREG = 2,
NFTA_BYTEORDER_OP = 3,
NFTA_BYTEORDER_LEN = 4,
NFTA_BYTEORDER_SIZE = 5,
__NFTA_BYTEORDER_MAX = 6,
};
struct nft_byteorder {
u8 sreg;
u8 dreg;
enum nft_byteorder_ops op: 8;
u8 len;
u8 size;
};
struct igmp6_mc_iter_state {
struct seq_net_private p;
struct net_device *dev;
struct inet6_dev *idev;
};
struct igmp6_mcf_iter_state {
struct seq_net_private p;
struct net_device *dev;
struct inet6_dev *idev;
struct ifmcaddr6 *im;
};
enum kernel_gp_hint {
GP_NO_HINT = 0,
GP_NON_CANONICAL = 1,
GP_CANONICAL = 2,
};
struct kallsym_iter {
loff_t pos;
loff_t pos_mod_end;
loff_t pos_ftrace_mod_end;
loff_t pos_bpf_end;
unsigned long value;
unsigned int nameoff;
char type;
char name[512];
char module_name[56];
int exported;
int show_value;
};
struct bpf_iter__ksym {
union {
struct bpf_iter_meta *meta;
};
union {
struct kallsym_iter *ksym;
};
};
struct bpf_netns_link {
struct bpf_link link;
enum bpf_attach_type type;
enum netns_bpf_attach_type netns_type;
struct net *net;
struct list_head node;
};
struct tracefs_dir_ops {
int (*mkdir)(const char *);
int (*rmdir)(const char *);
};
struct tracefs_mount_opts {
kuid_t uid;
kgid_t gid;
umode_t mode;
unsigned int opts;
};
struct tracefs_fs_info {
struct tracefs_mount_opts mount_opts;
};
struct essiv_tfm_ctx {
union {
struct crypto_skcipher *skcipher;
struct crypto_aead *aead;
} u;
struct crypto_cipher *essiv_cipher;
struct crypto_shash *hash;
int ivoffset;
};
struct essiv_instance_ctx {
union {
struct crypto_skcipher_spawn skcipher_spawn;
struct crypto_aead_spawn aead_spawn;
} u;
char essiv_cipher_name[128];
char shash_driver_name[128];
};
struct essiv_aead_request_ctx {
struct scatterlist sg[4];
u8 *assoc;
struct aead_request aead_req;
};
struct acpi_device_properties {
const guid_t *guid;
union acpi_object *properties;
struct list_head list;
void **bufs;
};
struct vring_desc;
typedef struct vring_desc vring_desc_t;
struct vring_avail;
typedef struct vring_avail vring_avail_t;
struct vring_used;
typedef struct vring_used vring_used_t;
struct vring {
unsigned int num;
vring_desc_t *desc;
vring_avail_t *avail;
vring_used_t *used;
};
struct vring_desc_state_split;
struct vring_desc_extra;
struct vring_virtqueue_split {
struct vring vring;
u16 avail_flags_shadow;
u16 avail_idx_shadow;
struct vring_desc_state_split *desc_state;
struct vring_desc_extra *desc_extra;
dma_addr_t queue_dma_addr;
size_t queue_size_in_bytes;
u32 vring_align;
bool may_reduce_num;
};
struct vring_packed_desc;
struct vring_packed_desc_event;
struct vring_desc_state_packed;
struct vring_virtqueue_packed {
struct {
unsigned int num;
struct vring_packed_desc *desc;
struct vring_packed_desc_event *driver;
struct vring_packed_desc_event *device;
} vring;
bool avail_wrap_counter;
u16 avail_used_flags;
u16 next_avail_idx;
u16 event_flags_shadow;
struct vring_desc_state_packed *desc_state;
struct vring_desc_extra *desc_extra;
dma_addr_t ring_dma_addr;
dma_addr_t driver_event_dma_addr;
dma_addr_t device_event_dma_addr;
size_t ring_size_in_bytes;
size_t event_size_in_bytes;
};
struct vring_virtqueue {
struct virtqueue vq;
bool packed_ring;
bool use_dma_api;
bool weak_barriers;
bool broken;
bool indirect;
bool event;
bool premapped;
bool do_unmap;
unsigned int free_head;
unsigned int num_added;
u16 last_used_idx;
bool event_triggered;
union {
struct vring_virtqueue_split split;
struct vring_virtqueue_packed packed;
};
bool (*notify)(struct virtqueue *);
bool we_own_ring;
struct device *dma_dev;
};
struct vring_desc {
__virtio64 addr;
__virtio32 len;
__virtio16 flags;
__virtio16 next;
};
struct vring_avail {
__virtio16 flags;
__virtio16 idx;
__virtio16 ring[0];
};
struct vring_used_elem {
__virtio32 id;
__virtio32 len;
};
typedef struct vring_used_elem vring_used_elem_t;
struct vring_used {
__virtio16 flags;
__virtio16 idx;
vring_used_elem_t ring[0];
};
struct vring_desc_state_split {
void *data;
struct vring_desc *indir_desc;
};
struct vring_desc_extra {
dma_addr_t addr;
u32 len;
u16 flags;
u16 next;
};
struct vring_packed_desc {
__le64 addr;
__le32 len;
__le16 id;
__le16 flags;
};
struct vring_packed_desc_event {
__le16 off_wrap;
__le16 flags;
};
struct vring_desc_state_packed {
void *data;
struct vring_packed_desc *indir_desc;
u16 num;
u16 last;
};
struct virtnet_stat_desc {
char desc[32];
size_t offset;
};
struct virtnet_interrupt_coalesce {
u32 max_packets;
u32 max_usecs;
};
struct send_queue;
struct receive_queue;
struct control_buf;
struct virtnet_info {
struct virtio_device *vdev;
struct virtqueue *cvq;
struct net_device *dev;
struct send_queue *sq;
struct receive_queue *rq;
unsigned int status;
u16 max_queue_pairs;
u16 curr_queue_pairs;
u16 xdp_queue_pairs;
bool xdp_enabled;
bool big_packets;
unsigned int big_packets_num_skbfrags;
bool mergeable_rx_bufs;
bool has_rss;
bool has_rss_hash_report;
u8 rss_key_size;
u16 rss_indir_table_size;
u32 rss_hash_types_supported;
u32 rss_hash_types_saved;
bool has_cvq;
bool any_header_sg;
u8 hdr_len;
struct delayed_work refill;
bool refill_enabled;
spinlock_t refill_lock;
struct work_struct config_work;
struct work_struct rx_mode_work;
bool rx_mode_work_enabled;
bool affinity_hint_set;
struct hlist_node node;
struct hlist_node node_dead;
struct control_buf *ctrl;
u8 duplex;
u32 speed;
bool rx_dim_enabled;
struct virtnet_interrupt_coalesce intr_coal_tx;
struct virtnet_interrupt_coalesce intr_coal_rx;
unsigned long guest_offloads;
unsigned long guest_offloads_capable;
struct failover *failover;
};
struct virtnet_sq_stats {
struct u64_stats_sync syncp;
u64_stats_t packets;
u64_stats_t bytes;
u64_stats_t xdp_tx;
u64_stats_t xdp_tx_drops;
u64_stats_t kicks;
u64_stats_t tx_timeouts;
};
struct send_queue {
struct virtqueue *vq;
struct scatterlist sg[19];
char name[16];
struct virtnet_sq_stats stats;
struct virtnet_interrupt_coalesce intr_coal;
struct napi_struct napi;
bool reset;
};
struct virtnet_rq_stats {
struct u64_stats_sync syncp;
u64_stats_t packets;
u64_stats_t bytes;
u64_stats_t drops;
u64_stats_t xdp_packets;
u64_stats_t xdp_tx;
u64_stats_t xdp_redirects;
u64_stats_t xdp_drops;
u64_stats_t kicks;
};
struct ewma_pkt_len {
unsigned long internal;
};
struct virtnet_rq_dma;
struct receive_queue {
struct virtqueue *vq;
struct napi_struct napi;
struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog;
struct virtnet_rq_stats stats;
u16 calls;
bool dim_enabled;
struct dim dim;
u32 packets_in_napi;
struct virtnet_interrupt_coalesce intr_coal;
struct page *pages;
struct ewma_pkt_len mrg_avg_pkt_len;
struct page_frag alloc_frag;
struct scatterlist sg[19];
unsigned int min_buf_len;
char name[16];
long: 64;
long: 64;
struct xdp_rxq_info xdp_rxq;
struct virtnet_rq_dma *last_dma;
bool do_dma;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
};
struct virtnet_rq_dma {
dma_addr_t addr;
u32 ref;
u16 len;
u16 need_sync;
};
struct virtio_net_ctrl_hdr {
__u8 class;
__u8 cmd;
};
typedef __u8 virtio_net_ctrl_ack;
struct virtio_net_ctrl_mq {
__virtio16 virtqueue_pairs;
};
struct virtio_net_ctrl_rss {
u32 hash_types;
u16 indirection_table_mask;
u16 unclassified_queue;
u16 indirection_table[128];
u16 max_tx_vq;
u8 hash_key_length;
u8 key[40];
};
struct virtio_net_ctrl_coal_tx {
__le32 tx_max_packets;
__le32 tx_usecs;
};
struct virtio_net_ctrl_coal_rx {
__le32 rx_max_packets;
__le32 rx_usecs;
};
struct virtio_net_ctrl_coal {
__le32 max_packets;
__le32 max_usecs;
};
struct virtio_net_ctrl_coal_vq {
__le16 vqn;
__le16 reserved;
struct virtio_net_ctrl_coal coal;
};
struct control_buf {
struct virtio_net_ctrl_hdr hdr;
virtio_net_ctrl_ack status;
struct virtio_net_ctrl_mq mq;
u8 promisc;
u8 allmulti;
__virtio16 vid;
__virtio64 offloads;
struct virtio_net_ctrl_rss rss;
struct virtio_net_ctrl_coal_tx coal_tx;
struct virtio_net_ctrl_coal_rx coal_rx;
struct virtio_net_ctrl_coal_vq coal_vq;
};
struct virtio_net_hdr_v1 {
__u8 flags;
__u8 gso_type;
__virtio16 hdr_len;
__virtio16 gso_size;
union {
struct {
__virtio16 csum_start;
__virtio16 csum_offset;
};
struct {
__virtio16 start;
__virtio16 offset;
} csum;
struct {
__le16 segments;
__le16 dup_acks;
} rsc;
};
__virtio16 num_buffers;
};
struct virtio_net_hdr_v1_hash {
struct virtio_net_hdr_v1 hdr;
__le32 hash_value;
__le16 hash_report;
__le16 padding;
};
struct virtio_net_common_hdr {
union {
struct virtio_net_hdr hdr;
struct virtio_net_hdr_mrg_rxbuf mrg_hdr;
struct virtio_net_hdr_v1_hash hash_v1_hdr;
};
};
struct virtnet_sq_free_stats {
u64 packets;
u64 bytes;
};
struct virtio_net_ctrl_mac {
__virtio32 entries;
__u8 macs[0];
};
enum r5c_journal_mode {
R5C_JOURNAL_MODE_WRITE_THROUGH = 0,
R5C_JOURNAL_MODE_WRITE_BACK = 1,
};
enum r5_cache_state {
R5_INACTIVE_BLOCKED = 0,
R5_ALLOC_MORE = 1,
R5_DID_ALLOC = 2,
R5C_LOG_TIGHT = 3,
R5C_LOG_CRITICAL = 4,
R5C_EXTRA_PAGE_IN_USE = 5,
};
enum {
STRIPE_OP_BIOFILL = 0,
STRIPE_OP_COMPUTE_BLK = 1,
STRIPE_OP_PREXOR = 2,
STRIPE_OP_BIODRAIN = 3,
STRIPE_OP_RECONSTRUCT = 4,
STRIPE_OP_CHECK = 5,
STRIPE_OP_PARTIAL_PARITY = 6,
};
enum r5l_payload_type {
R5LOG_PAYLOAD_DATA = 0,
R5LOG_PAYLOAD_PARITY = 1,
R5LOG_PAYLOAD_FLUSH = 2,
};
enum r5l_io_unit_state {
IO_UNIT_RUNNING = 0,
IO_UNIT_IO_START = 1,
IO_UNIT_IO_END = 2,
IO_UNIT_STRIPE_END = 3,
};
struct r5l_log {
struct md_rdev *rdev;
u32 uuid_checksum;
sector_t device_size;
sector_t max_free_space;
sector_t last_checkpoint;
u64 last_cp_seq;
sector_t log_start;
u64 seq;
sector_t next_checkpoint;
struct mutex io_mutex;
struct r5l_io_unit *current_io;
spinlock_t io_list_lock;
struct list_head running_ios;
struct list_head io_end_ios;
struct list_head flushing_ios;
struct list_head finished_ios;
struct bio flush_bio;
struct list_head no_mem_stripes;
struct kmem_cache *io_kc;
mempool_t io_pool;
struct bio_set bs;
mempool_t meta_pool;
struct md_thread __attribute__((btf_type_tag("rcu"))) *reclaim_thread;
unsigned long reclaim_target;
wait_queue_head_t iounit_wait;
struct list_head no_space_stripes;
spinlock_t no_space_stripes_lock;
bool need_cache_flush;
enum r5c_journal_mode r5c_journal_mode;
struct list_head stripe_in_journal_list;
spinlock_t stripe_in_journal_lock;
atomic_t stripe_in_journal_count;
struct work_struct deferred_io_work;
struct work_struct disable_writeback_work;
spinlock_t tree_lock;
struct xarray big_stripe_tree;
};
struct r5l_io_unit {
struct r5l_log *log;
struct page *meta_page;
int meta_offset;
struct bio *current_bio;
atomic_t pending_stripe;
u64 seq;
sector_t log_start;
sector_t log_end;
struct list_head log_sibling;
struct list_head stripe_list;
int state;
bool need_split_bio;
struct bio *split_bio;
unsigned int has_flush: 1;
unsigned int has_fua: 1;
unsigned int has_null_flush: 1;
unsigned int has_flush_payload: 1;
unsigned int io_deferred: 1;
struct bio_list flush_barriers;
};
struct r5l_payload_header {
__le16 type;
__le16 flags;
};
struct r5l_payload_data_parity {
struct r5l_payload_header header;
__le32 size;
__le64 location;
__le32 checksum[0];
};
struct r5l_meta_block {
__le32 magic;
__le32 checksum;
__u8 version;
__u8 __zero_pading_1;
__le16 __zero_pading_2;
__le32 meta_size;
__le64 seq;
__le64 position;
struct r5l_payload_header payloads[0];
};
struct r5l_payload_flush {
struct r5l_payload_header header;
__le32 size;
__le64 flush_stripes[0];
};
struct r5l_recovery_ctx {
struct page *meta_page;
sector_t meta_total_blocks;
sector_t pos;
u64 seq;
int data_parity_stripes;
int data_only_stripes;
struct list_head cached_list;
struct page *ra_pool[256];
struct bio_vec ra_bvec[256];
sector_t pool_offset;
int total_pages;
int valid_pages;
};
struct stripe_head_state {
int syncing;
int expanding;
int expanded;
int replacing;
int locked;
int uptodate;
int to_read;
int to_write;
int failed;
int written;
int to_fill;
int compute;
int req_compute;
int non_overwrite;
int injournal;
int just_cached;
int failed_num[2];
int p_failed;
int q_failed;
int dec_preread_active;
unsigned long ops_request;
struct md_rdev *blocked_rdev;
int handle_bad_blocks;
int log_failed;
int waiting_extra_page;
};
enum {
ETHTOOL_A_PLCA_UNSPEC = 0,
ETHTOOL_A_PLCA_HEADER = 1,
ETHTOOL_A_PLCA_VERSION = 2,
ETHTOOL_A_PLCA_ENABLED = 3,
ETHTOOL_A_PLCA_STATUS = 4,
ETHTOOL_A_PLCA_NODE_CNT = 5,
ETHTOOL_A_PLCA_NODE_ID = 6,
ETHTOOL_A_PLCA_TO_TMR = 7,
ETHTOOL_A_PLCA_BURST_CNT = 8,
ETHTOOL_A_PLCA_BURST_TMR = 9,
__ETHTOOL_A_PLCA_CNT = 10,
ETHTOOL_A_PLCA_MAX = 9,
};
struct plca_reply_data {
struct ethnl_reply_data base;
struct phy_plca_cfg plca_cfg;
struct phy_plca_status plca_st;
};
struct xt_cgroup_info_v0 {
__u32 id;
__u32 invert;
};
struct xt_cgroup_info_v1 {
__u8 has_path;
__u8 has_classid;
__u8 invert_path;
__u8 invert_classid;
char path[4096];
__u32 classid;
void *priv;
};
struct xt_cgroup_info_v2 {
__u8 has_path;
__u8 has_classid;
__u8 invert_path;
__u8 invert_classid;
union {
char path[512];
__u32 classid;
};
void *priv;
};
enum {
NDUSEROPT_UNSPEC = 0,
NDUSEROPT_SRCADDR = 1,
__NDUSEROPT_MAX = 2,
};
struct rs_msg {
struct icmp6hdr icmph;
__u8 opt[0];
};
struct ra_msg {
struct icmp6hdr icmph;
__be32 reachable_time;
__be32 retrans_timer;
};
struct nduseroptmsg {
unsigned char nduseropt_family;
unsigned char nduseropt_pad1;
unsigned short nduseropt_opts_len;
int nduseropt_ifindex;
__u8 nduseropt_icmp_type;
__u8 nduseropt_icmp_code;
unsigned short nduseropt_pad2;
unsigned int nduseropt_pad3;
};
typedef void (*btf_trace_rdev_suspend)(void *, struct wiphy *, struct cfg80211_wowlan *);
typedef void (*btf_trace_rdev_return_int)(void *, struct wiphy *, int);
typedef void (*btf_trace_rdev_scan)(void *, struct wiphy *, struct cfg80211_scan_request *);
typedef void (*btf_trace_rdev_resume)(void *, struct wiphy *);
typedef void (*btf_trace_rdev_return_void)(void *, struct wiphy *);
typedef void (*btf_trace_rdev_get_antenna)(void *, struct wiphy *);
typedef void (*btf_trace_rdev_rfkill_poll)(void *, struct wiphy *);
typedef void (*btf_trace_rdev_set_wakeup)(void *, struct wiphy *, bool);
typedef void (*btf_trace_rdev_add_virtual_intf)(void *, struct wiphy *, char *, enum nl80211_iftype);
typedef void (*btf_trace_rdev_return_wdev)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_del_virtual_intf)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_change_virtual_intf)(void *, struct wiphy *, struct net_device *, enum nl80211_iftype);
typedef void (*btf_trace_rdev_get_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
typedef void (*btf_trace_rdev_del_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *);
typedef void (*btf_trace_rdev_add_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *, u8);
typedef void (*btf_trace_rdev_set_default_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, bool);
typedef void (*btf_trace_rdev_set_default_mgmt_key)(void *, struct wiphy *, struct net_device *, int, u8);
typedef void (*btf_trace_rdev_set_default_beacon_key)(void *, struct wiphy *, struct net_device *, int, u8);
typedef void (*btf_trace_rdev_start_ap)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_settings *);
typedef void (*btf_trace_rdev_change_beacon)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_update *);
typedef void (*btf_trace_rdev_stop_ap)(void *, struct wiphy *, struct net_device *, unsigned int);
typedef void (*btf_trace_rdev_set_rekey_data)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_get_mesh_config)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_leave_mesh)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_leave_ibss)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_leave_ocb)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_flush_pmksa)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_end_cac)(void *, struct wiphy *, struct net_device *);
typedef void (*btf_trace_rdev_add_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *);
typedef void (*btf_trace_rdev_change_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *);
typedef void (*btf_trace_rdev_del_station)(void *, struct wiphy *, struct net_device *, struct station_del_parameters *);
typedef void (*btf_trace_rdev_get_station)(void *, struct wiphy *, struct net_device *, const u8 *);
typedef void (*btf_trace_rdev_del_mpath)(void *, struct wiphy *, struct net_device *, const u8 *);
typedef void (*btf_trace_rdev_dump_station)(void *, struct wiphy *, struct net_device *, int, u8 *);
typedef void (*btf_trace_rdev_return_int_station_info)(void *, struct wiphy *, int, struct station_info *);
typedef void (*btf_trace_rdev_add_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
typedef void (*btf_trace_rdev_change_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
typedef void (*btf_trace_rdev_get_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
typedef void (*btf_trace_rdev_dump_mpath)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *);
typedef void (*btf_trace_rdev_get_mpp)(void *, struct wiphy *, struct net_device *, u8 *, u8 *);
typedef void (*btf_trace_rdev_dump_mpp)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *);
typedef void (*btf_trace_rdev_return_int_mpath_info)(void *, struct wiphy *, int, struct mpath_info *);
typedef void (*btf_trace_rdev_return_int_mesh_config)(void *, struct wiphy *, int, struct mesh_config *);
typedef void (*btf_trace_rdev_update_mesh_config)(void *, struct wiphy *, struct net_device *, u32, const struct mesh_config *);
typedef void (*btf_trace_rdev_join_mesh)(void *, struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *);
typedef void (*btf_trace_rdev_change_bss)(void *, struct wiphy *, struct net_device *, struct bss_parameters *);
typedef void (*btf_trace_rdev_inform_bss)(void *, struct wiphy *, struct cfg80211_bss *);
typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *);
typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *);
typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *);
typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *);
typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *);
typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *);
typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *);
typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int);
typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *);
typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32);
typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32);
typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32);
typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32);
typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16);
typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *);
typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *);
typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32);
typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int);
typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int);
typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *);
typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *);
typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32);
typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32);
typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32);
typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64);
typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64);
typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t);
typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int);
typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *);
typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation);
typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *);
typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *);
typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int);
typedef void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64);
typedef void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *);
typedef void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int);
typedef void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16);
typedef void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
typedef void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *);
typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *);
typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32);
typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *);
typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *);
typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *);
typedef void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16);
typedef void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *);
typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *);
typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *);
typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16);
typedef void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *);
typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *);
typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *);
typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *);
typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *);
typedef void (*btf_trace_rdev_external_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *);
typedef void (*btf_trace_rdev_start_radar_detection)(void *, struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32);
typedef void (*btf_trace_rdev_set_mcast_rate)(void *, struct wiphy *, struct net_device *, int *);
typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *);
typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool);
typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *);
typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *);
typedef void (*btf_trace_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t);
typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *);
typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8);
typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *);
typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *);
typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *);
typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int);
typedef void (*btf_trace_cfg80211_return_bool)(void *, bool);
typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *);
typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, const struct cfg80211_rx_assoc_resp_data *);
typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int);
typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int);
typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool);
typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *);
typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *);
typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int);
typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *);
typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *);
typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *);
typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *);
typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool);
typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool);
typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool, int);
typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32);
typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool);
typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *);
typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int);
typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int);
typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool);
typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event);
typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *);
typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool);
typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32);
typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *);
typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool);
typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int);
typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16);
typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *);
typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64);
typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64);
typedef void (*btf_trace_cfg80211_get_bss)(void *, struct wiphy *, struct ieee80211_channel *, const u8 *, const u8 *, size_t, enum ieee80211_bss_type, enum ieee80211_privacy);
typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t);
typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *);
typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int);
typedef void (*btf_trace_cfg80211_return_u32)(void *, u32);
typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *);
typedef void (*btf_trace_cfg80211_ft_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_ft_event_params *);
typedef void (*btf_trace_cfg80211_stop_iface)(void *, struct wiphy *, struct wireless_dev *);
typedef void (*btf_trace_cfg80211_pmsr_report)(void *, struct wiphy *, struct wireless_dev *, u64, const u8 *);
typedef void (*btf_trace_cfg80211_pmsr_complete)(void *, struct wiphy *, struct wireless_dev *, u64);
typedef void (*btf_trace_cfg80211_update_owe_info_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *);
typedef void (*btf_trace_cfg80211_bss_color_notify)(void *, struct net_device *, enum nl80211_commands, u8, u64);
typedef void (*btf_trace_cfg80211_assoc_comeback)(void *, struct wireless_dev *, const u8 *, u32);
typedef void (*btf_trace_rdev_add_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *);
typedef void (*btf_trace_rdev_mod_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *);
typedef void (*btf_trace_rdev_del_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_del_parameters *);
typedef void (*btf_trace_rdev_set_hw_timestamp)(void *, struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *);
typedef void (*btf_trace_cfg80211_links_removed)(void *, struct net_device *, u16);
typedef void (*btf_trace_rdev_set_ttlm)(void *, struct wiphy *, struct net_device *, struct cfg80211_ttlm_params *);
struct trace_event_raw_rdev_suspend {
struct trace_entry ent;
char wiphy_name[32];
bool any;
bool disconnect;
bool magic_pkt;
bool gtk_rekey_failure;
bool eap_identity_req;
bool four_way_handshake;
bool rfkill_release;
bool valid_wow;
char __data[0];
};
struct trace_event_raw_rdev_return_int {
struct trace_entry ent;
char wiphy_name[32];
int ret;
char __data[0];
};
struct trace_event_raw_rdev_scan {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_wiphy_only_evt {
struct trace_entry ent;
char wiphy_name[32];
char __data[0];
};
struct trace_event_raw_wiphy_enabled_evt {
struct trace_entry ent;
char wiphy_name[32];
bool enabled;
char __data[0];
};
struct trace_event_raw_rdev_add_virtual_intf {
struct trace_entry ent;
char wiphy_name[32];
u32 __data_loc_vir_intf_name;
enum nl80211_iftype type;
char __data[0];
};
struct trace_event_raw_wiphy_wdev_evt {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
char __data[0];
};
struct trace_event_raw_rdev_change_virtual_intf {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_iftype type;
char __data[0];
};
struct trace_event_raw_key_handle {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 mac_addr[6];
int link_id;
u8 key_index;
bool pairwise;
char __data[0];
};
struct trace_event_raw_rdev_add_key {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 mac_addr[6];
int link_id;
u8 key_index;
bool pairwise;
u8 mode;
char __data[0];
};
struct trace_event_raw_rdev_set_default_key {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int link_id;
u8 key_index;
bool unicast;
bool multicast;
char __data[0];
};
struct trace_event_raw_rdev_set_default_mgmt_key {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int link_id;
u8 key_index;
char __data[0];
};
struct trace_event_raw_rdev_set_default_beacon_key {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int link_id;
u8 key_index;
char __data[0];
};
struct trace_event_raw_rdev_start_ap {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
int beacon_interval;
int dtim_period;
char ssid[33];
enum nl80211_hidden_ssid hidden_ssid;
u32 wpa_ver;
bool privacy;
enum nl80211_auth_type auth_type;
int inactivity_timeout;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_rdev_change_beacon {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int link_id;
u32 __data_loc_head;
u32 __data_loc_tail;
u32 __data_loc_beacon_ies;
u32 __data_loc_proberesp_ies;
u32 __data_loc_assocresp_ies;
u32 __data_loc_probe_resp;
char __data[0];
};
struct trace_event_raw_rdev_stop_ap {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_wiphy_netdev_evt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
char __data[0];
};
struct trace_event_raw_station_add_change {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 sta_mac[6];
u32 sta_flags_mask;
u32 sta_flags_set;
u32 sta_modify_mask;
int listen_interval;
u16 capability;
u16 aid;
u8 plink_action;
u8 plink_state;
u8 uapsd_queues;
u8 max_sp;
u8 opmode_notif;
bool opmode_notif_used;
u8 ht_capa[26];
u8 vht_capa[12];
char vlan[16];
u32 __data_loc_supported_rates;
u32 __data_loc_ext_capab;
u32 __data_loc_supported_channels;
u32 __data_loc_supported_oper_classes;
char __data[0];
};
struct trace_event_raw_station_del {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 sta_mac[6];
u8 subtype;
u16 reason_code;
int link_id;
char __data[0];
};
struct trace_event_raw_wiphy_netdev_mac_evt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 sta_mac[6];
char __data[0];
};
struct trace_event_raw_rdev_dump_station {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 sta_mac[6];
int idx;
char __data[0];
};
struct trace_event_raw_rdev_return_int_station_info {
struct trace_entry ent;
char wiphy_name[32];
int ret;
int generation;
u32 connected_time;
u32 inactive_time;
u32 rx_bytes;
u32 tx_bytes;
u32 rx_packets;
u32 tx_packets;
u32 tx_retries;
u32 tx_failed;
u32 rx_dropped_misc;
u32 beacon_loss_count;
u16 llid;
u16 plid;
u8 plink_state;
char __data[0];
};
struct trace_event_raw_mpath_evt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dst[6];
u8 next_hop[6];
char __data[0];
};
struct trace_event_raw_rdev_dump_mpath {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dst[6];
u8 next_hop[6];
int idx;
char __data[0];
};
struct trace_event_raw_rdev_get_mpp {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dst[6];
u8 mpp[6];
char __data[0];
};
struct trace_event_raw_rdev_dump_mpp {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dst[6];
u8 mpp[6];
int idx;
char __data[0];
};
struct trace_event_raw_rdev_return_int_mpath_info {
struct trace_entry ent;
char wiphy_name[32];
int ret;
int generation;
u32 filled;
u32 frame_qlen;
u32 sn;
u32 metric;
u32 exptime;
u32 discovery_timeout;
u8 discovery_retries;
u8 flags;
char __data[0];
};
struct trace_event_raw_rdev_return_int_mesh_config {
struct trace_entry ent;
char wiphy_name[32];
u16 dot11MeshRetryTimeout;
u16 dot11MeshConfirmTimeout;
u16 dot11MeshHoldingTimeout;
u16 dot11MeshMaxPeerLinks;
u8 dot11MeshMaxRetries;
u8 dot11MeshTTL;
u8 element_ttl;
bool auto_open_plinks;
u32 dot11MeshNbrOffsetMaxNeighbor;
u8 dot11MeshHWMPmaxPREQretries;
u32 path_refresh_time;
u32 dot11MeshHWMPactivePathTimeout;
u16 min_discovery_timeout;
u16 dot11MeshHWMPpreqMinInterval;
u16 dot11MeshHWMPperrMinInterval;
u16 dot11MeshHWMPnetDiameterTraversalTime;
u8 dot11MeshHWMPRootMode;
u16 dot11MeshHWMPRannInterval;
bool dot11MeshGateAnnouncementProtocol;
bool dot11MeshForwarding;
s32 rssi_threshold;
u16 ht_opmode;
u32 dot11MeshHWMPactivePathToRootTimeout;
u16 dot11MeshHWMProotInterval;
u16 dot11MeshHWMPconfirmationInterval;
bool dot11MeshNolearn;
int ret;
char __data[0];
};
struct trace_event_raw_rdev_update_mesh_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u16 dot11MeshRetryTimeout;
u16 dot11MeshConfirmTimeout;
u16 dot11MeshHoldingTimeout;
u16 dot11MeshMaxPeerLinks;
u8 dot11MeshMaxRetries;
u8 dot11MeshTTL;
u8 element_ttl;
bool auto_open_plinks;
u32 dot11MeshNbrOffsetMaxNeighbor;
u8 dot11MeshHWMPmaxPREQretries;
u32 path_refresh_time;
u32 dot11MeshHWMPactivePathTimeout;
u16 min_discovery_timeout;
u16 dot11MeshHWMPpreqMinInterval;
u16 dot11MeshHWMPperrMinInterval;
u16 dot11MeshHWMPnetDiameterTraversalTime;
u8 dot11MeshHWMPRootMode;
u16 dot11MeshHWMPRannInterval;
bool dot11MeshGateAnnouncementProtocol;
bool dot11MeshForwarding;
s32 rssi_threshold;
u16 ht_opmode;
u32 dot11MeshHWMPactivePathToRootTimeout;
u16 dot11MeshHWMProotInterval;
u16 dot11MeshHWMPconfirmationInterval;
bool dot11MeshNolearn;
u32 mask;
char __data[0];
};
struct trace_event_raw_rdev_join_mesh {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u16 dot11MeshRetryTimeout;
u16 dot11MeshConfirmTimeout;
u16 dot11MeshHoldingTimeout;
u16 dot11MeshMaxPeerLinks;
u8 dot11MeshMaxRetries;
u8 dot11MeshTTL;
u8 element_ttl;
bool auto_open_plinks;
u32 dot11MeshNbrOffsetMaxNeighbor;
u8 dot11MeshHWMPmaxPREQretries;
u32 path_refresh_time;
u32 dot11MeshHWMPactivePathTimeout;
u16 min_discovery_timeout;
u16 dot11MeshHWMPpreqMinInterval;
u16 dot11MeshHWMPperrMinInterval;
u16 dot11MeshHWMPnetDiameterTraversalTime;
u8 dot11MeshHWMPRootMode;
u16 dot11MeshHWMPRannInterval;
bool dot11MeshGateAnnouncementProtocol;
bool dot11MeshForwarding;
s32 rssi_threshold;
u16 ht_opmode;
u32 dot11MeshHWMPactivePathToRootTimeout;
u16 dot11MeshHWMProotInterval;
u16 dot11MeshHWMPconfirmationInterval;
bool dot11MeshNolearn;
char __data[0];
};
struct trace_event_raw_rdev_change_bss {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int use_cts_prot;
int use_short_preamble;
int use_short_slot_time;
int ap_isolate;
int ht_opmode;
char __data[0];
};
struct trace_event_raw_rdev_inform_bss {
struct trace_entry ent;
char wiphy_name[32];
u8 bssid[6];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_rdev_set_txq_params {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_ac ac;
u16 txop;
u16 cwmin;
u16 cwmax;
u8 aifs;
char __data[0];
};
struct trace_event_raw_rdev_libertas_set_mesh_channel {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_rdev_set_monitor_channel {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
char __data[0];
};
struct trace_event_raw_rdev_auth {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
enum nl80211_auth_type auth_type;
char __data[0];
};
struct trace_event_raw_rdev_assoc {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
u8 prev_bssid[6];
bool use_mfp;
u32 flags;
u32 __data_loc_elements;
u8 ht_capa[26];
u8 ht_capa_mask[26];
u8 vht_capa[12];
u8 vht_capa_mask[12];
u32 __data_loc_fils_kek;
u32 __data_loc_fils_nonces;
char __data[0];
};
struct trace_event_raw_rdev_deauth {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
u16 reason_code;
bool local_state_change;
char __data[0];
};
struct trace_event_raw_rdev_disassoc {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
u16 reason_code;
bool local_state_change;
char __data[0];
};
struct trace_event_raw_rdev_mgmt_tx_cancel_wait {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_set_power_mgmt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
bool enabled;
int timeout;
char __data[0];
};
struct trace_event_raw_rdev_connect {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
char ssid[33];
enum nl80211_auth_type auth_type;
bool privacy;
u32 wpa_versions;
u32 flags;
u8 prev_bssid[6];
char __data[0];
};
struct trace_event_raw_rdev_update_connect_params {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u32 changed;
char __data[0];
};
struct trace_event_raw_rdev_set_cqm_rssi_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
s32 rssi_thold;
u32 rssi_hyst;
char __data[0];
};
struct trace_event_raw_rdev_set_cqm_rssi_range_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
s32 rssi_low;
s32 rssi_high;
char __data[0];
};
struct trace_event_raw_rdev_set_cqm_txe_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u32 rate;
u32 pkts;
u32 intvl;
char __data[0];
};
struct trace_event_raw_rdev_disconnect {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u16 reason_code;
char __data[0];
};
struct trace_event_raw_rdev_join_ibss {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
char ssid[33];
char __data[0];
};
struct trace_event_raw_rdev_join_ocb {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
char __data[0];
};
struct trace_event_raw_rdev_set_wiphy_params {
struct trace_entry ent;
char wiphy_name[32];
u32 changed;
char __data[0];
};
struct trace_event_raw_rdev_set_tx_power {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
enum nl80211_tx_power_setting type;
int mbm;
char __data[0];
};
struct trace_event_raw_rdev_return_int_int {
struct trace_entry ent;
char wiphy_name[32];
int func_ret;
int func_fill;
char __data[0];
};
struct trace_event_raw_rdev_set_bitrate_mask {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
unsigned int link_id;
u8 peer[6];
char __data[0];
};
struct trace_event_raw_rdev_update_mgmt_frame_registrations {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u16 global_stypes;
u16 interface_stypes;
char __data[0];
};
struct trace_event_raw_rdev_return_int_tx_rx {
struct trace_entry ent;
char wiphy_name[32];
int ret;
u32 tx;
u32 rx;
char __data[0];
};
struct trace_event_raw_rdev_return_void_tx_rx {
struct trace_entry ent;
char wiphy_name[32];
u32 tx;
u32 tx_max;
u32 rx;
u32 rx_max;
char __data[0];
};
struct trace_event_raw_tx_rx_evt {
struct trace_entry ent;
char wiphy_name[32];
u32 tx;
u32 rx;
char __data[0];
};
struct trace_event_raw_wiphy_netdev_id_evt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u64 id;
char __data[0];
};
struct trace_event_raw_rdev_tdls_mgmt {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
int link_id;
u8 action_code;
u8 dialog_token;
u16 status_code;
u32 peer_capability;
bool initiator;
u32 __data_loc_buf;
char __data[0];
};
struct trace_event_raw_rdev_dump_survey {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int idx;
char __data[0];
};
struct trace_event_raw_rdev_return_int_survey_info {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
int ret;
u64 time;
u64 time_busy;
u64 time_ext_busy;
u64 time_rx;
u64 time_tx;
u64 time_scan;
u32 filled;
s8 noise;
char __data[0];
};
struct trace_event_raw_rdev_tdls_oper {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
enum nl80211_tdls_operation oper;
char __data[0];
};
struct trace_event_raw_rdev_probe_client {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
char __data[0];
};
struct trace_event_raw_rdev_pmksa {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
char __data[0];
};
struct trace_event_raw_rdev_remain_on_channel {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
unsigned int duration;
char __data[0];
};
struct trace_event_raw_rdev_return_int_cookie {
struct trace_entry ent;
char wiphy_name[32];
int ret;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_cancel_remain_on_channel {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_mgmt_tx {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
bool offchan;
unsigned int wait;
bool no_cck;
bool dont_wait_for_ack;
char __data[0];
};
struct trace_event_raw_rdev_tx_control_port {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dest[6];
__be16 proto;
bool unencrypted;
int link_id;
char __data[0];
};
struct trace_event_raw_rdev_set_noack_map {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u16 noack_map;
char __data[0];
};
struct trace_event_raw_wiphy_wdev_link_evt {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_rdev_return_chandef {
struct trace_entry ent;
char wiphy_name[32];
int ret;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
char __data[0];
};
struct trace_event_raw_rdev_start_nan {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u8 master_pref;
u8 bands;
char __data[0];
};
struct trace_event_raw_rdev_nan_change_conf {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u8 master_pref;
u8 bands;
u32 changes;
char __data[0];
};
struct trace_event_raw_rdev_add_nan_func {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u8 func_type;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_del_nan_func {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_set_mac_acl {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u32 acl_policy;
char __data[0];
};
struct trace_event_raw_rdev_update_ft_ies {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u16 md;
u32 __data_loc_ie;
char __data[0];
};
struct trace_event_raw_rdev_crit_proto_start {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u16 proto;
u16 duration;
char __data[0];
};
struct trace_event_raw_rdev_crit_proto_stop {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
char __data[0];
};
struct trace_event_raw_rdev_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
bool radar_required;
bool block_tx;
u8 count;
u32 __data_loc_bcn_ofs;
u32 __data_loc_pres_ofs;
u8 link_id;
char __data[0];
};
struct trace_event_raw_rdev_set_qos_map {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 num_des;
u8 dscp_exception[42];
u8 up[16];
char __data[0];
};
struct trace_event_raw_rdev_set_ap_chanwidth {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_rdev_add_tx_ts {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
u8 tsid;
u8 user_prio;
u16 admitted_time;
char __data[0];
};
struct trace_event_raw_rdev_del_tx_ts {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
u8 tsid;
char __data[0];
};
struct trace_event_raw_rdev_tdls_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 addr[6];
u8 oper_class;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
char __data[0];
};
struct trace_event_raw_rdev_tdls_cancel_channel_switch {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 addr[6];
char __data[0];
};
struct trace_event_raw_rdev_set_pmk {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 aa[6];
u8 pmk_len;
u8 pmk_r0_name_len;
u32 __data_loc_pmk;
u32 __data_loc_pmk_r0_name;
char __data[0];
};
struct trace_event_raw_rdev_del_pmk {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 aa[6];
char __data[0];
};
struct trace_event_raw_rdev_external_auth {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 bssid[6];
u8 ssid[33];
u16 status;
u8 mld_addr[6];
char __data[0];
};
struct trace_event_raw_rdev_start_radar_detection {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
u32 cac_time_ms;
char __data[0];
};
struct trace_event_raw_rdev_set_mcast_rate {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
int mcast_rate[6];
char __data[0];
};
struct trace_event_raw_rdev_set_coalesce {
struct trace_entry ent;
char wiphy_name[32];
int n_rules;
char __data[0];
};
struct trace_event_raw_rdev_set_multicast_to_unicast {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
bool enabled;
char __data[0];
};
struct trace_event_raw_rdev_get_ftm_responder_stats {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u64 timestamp;
u32 success_num;
u32 partial_num;
u32 failed_num;
u32 asap_num;
u32 non_asap_num;
u64 duration;
u32 unknown_triggers;
u32 reschedule;
u32 out_of_window;
char __data[0];
};
struct trace_event_raw_wiphy_wdev_cookie_evt {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
char __data[0];
};
struct trace_event_raw_rdev_set_fils_aad {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 macaddr[6];
u8 kek_len;
char __data[0];
};
struct trace_event_raw_rdev_update_owe_info {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
u16 status;
u32 __data_loc_ie;
char __data[0];
};
struct trace_event_raw_rdev_probe_mesh_link {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dest[6];
char __data[0];
};
struct trace_event_raw_rdev_set_tid_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
char __data[0];
};
struct trace_event_raw_rdev_reset_tid_config {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
u8 tids;
char __data[0];
};
struct trace_event_raw_rdev_set_sar_specs {
struct trace_entry ent;
char wiphy_name[32];
u16 type;
u16 num;
char __data[0];
};
struct trace_event_raw_rdev_color_change {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 count;
u16 bcn_ofs;
u16 pres_ofs;
char __data[0];
};
struct trace_event_raw_rdev_set_radar_background {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
char __data[0];
};
struct trace_event_raw_cfg80211_return_bool {
struct trace_entry ent;
bool ret;
char __data[0];
};
struct trace_event_raw_cfg80211_netdev_mac_evt {
struct trace_entry ent;
char name[16];
int ifindex;
u8 macaddr[6];
char __data[0];
};
struct trace_event_raw_netdev_evt_only {
struct trace_entry ent;
char name[16];
int ifindex;
char __data[0];
};
struct trace_event_raw_cfg80211_send_rx_assoc {
struct trace_entry ent;
char name[16];
int ifindex;
u8 ap_addr[6];
char __data[0];
};
struct trace_event_raw_netdev_frame_event {
struct trace_entry ent;
char name[16];
int ifindex;
u32 __data_loc_frame;
char __data[0];
};
struct trace_event_raw_cfg80211_tx_mlme_mgmt {
struct trace_entry ent;
char name[16];
int ifindex;
u32 __data_loc_frame;
int reconnect;
char __data[0];
};
struct trace_event_raw_netdev_mac_evt {
struct trace_entry ent;
char name[16];
int ifindex;
u8 mac[6];
char __data[0];
};
struct trace_event_raw_cfg80211_send_assoc_failure {
struct trace_entry ent;
char name[16];
int ifindex;
u8 ap_addr[6];
bool timeout;
char __data[0];
};
struct trace_event_raw_cfg80211_michael_mic_failure {
struct trace_entry ent;
char name[16];
int ifindex;
u8 addr[6];
enum nl80211_key_type key_type;
int key_id;
u8 tsc[6];
char __data[0];
};
struct trace_event_raw_cfg80211_ready_on_channel {
struct trace_entry ent;
u32 id;
u64 cookie;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
unsigned int duration;
char __data[0];
};
struct trace_event_raw_cfg80211_ready_on_channel_expired {
struct trace_entry ent;
u32 id;
u64 cookie;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_cfg80211_tx_mgmt_expired {
struct trace_entry ent;
u32 id;
u64 cookie;
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_cfg80211_new_sta {
struct trace_entry ent;
char name[16];
int ifindex;
u8 mac_addr[6];
int generation;
u32 connected_time;
u32 inactive_time;
u32 rx_bytes;
u32 tx_bytes;
u32 rx_packets;
u32 tx_packets;
u32 tx_retries;
u32 tx_failed;
u32 rx_dropped_misc;
u32 beacon_loss_count;
u16 llid;
u16 plid;
u8 plink_state;
char __data[0];
};
struct trace_event_raw_cfg80211_rx_mgmt {
struct trace_entry ent;
u32 id;
int freq;
int sig_dbm;
char __data[0];
};
struct trace_event_raw_cfg80211_mgmt_tx_status {
struct trace_entry ent;
u32 id;
u64 cookie;
bool ack;
char __data[0];
};
struct trace_event_raw_cfg80211_control_port_tx_status {
struct trace_entry ent;
u32 id;
u64 cookie;
bool ack;
char __data[0];
};
struct trace_event_raw_cfg80211_rx_control_port {
struct trace_entry ent;
char name[16];
int ifindex;
int len;
u8 from[6];
u16 proto;
bool unencrypted;
int link_id;
char __data[0];
};
struct trace_event_raw_cfg80211_cqm_rssi_notify {
struct trace_entry ent;
char name[16];
int ifindex;
enum nl80211_cqm_rssi_threshold_event rssi_event;
s32 rssi_level;
char __data[0];
};
struct trace_event_raw_cfg80211_reg_can_beacon {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
enum nl80211_iftype iftype;
bool check_no_ir;
char __data[0];
};
struct trace_event_raw_cfg80211_chandef_dfs_required {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
char __data[0];
};
struct trace_event_raw_cfg80211_ch_switch_notify {
struct trace_entry ent;
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_cfg80211_ch_switch_started_notify {
struct trace_entry ent;
char name[16];
int ifindex;
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
unsigned int link_id;
char __data[0];
};
struct trace_event_raw_cfg80211_radar_event {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 control_freq;
u32 freq_offset;
u32 width;
u32 center_freq1;
u32 freq1_offset;
u32 center_freq2;
u16 punctured;
bool offchan;
char __data[0];
};
struct trace_event_raw_cfg80211_cac_event {
struct trace_entry ent;
char name[16];
int ifindex;
enum nl80211_radar_event evt;
char __data[0];
};
struct trace_event_raw_cfg80211_rx_evt {
struct trace_entry ent;
char name[16];
int ifindex;
u8 addr[6];
char __data[0];
};
struct trace_event_raw_cfg80211_ibss_joined {
struct trace_entry ent;
char name[16];
int ifindex;
u8 bssid[6];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_cfg80211_probe_status {
struct trace_entry ent;
char name[16];
int ifindex;
u8 addr[6];
u64 cookie;
bool acked;
char __data[0];
};
struct trace_event_raw_cfg80211_cqm_pktloss_notify {
struct trace_entry ent;
char name[16];
int ifindex;
u8 peer[6];
u32 num_packets;
char __data[0];
};
struct trace_event_raw_cfg80211_pmksa_candidate_notify {
struct trace_entry ent;
char name[16];
int ifindex;
int index;
u8 bssid[6];
bool preauth;
char __data[0];
};
struct trace_event_raw_cfg80211_report_obss_beacon {
struct trace_entry ent;
char wiphy_name[32];
int freq;
int sig_dbm;
char __data[0];
};
struct trace_event_raw_cfg80211_tdls_oper_request {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
enum nl80211_tdls_operation oper;
u16 reason_code;
char __data[0];
};
struct trace_event_raw_cfg80211_scan_done {
struct trace_entry ent;
u32 n_channels;
u32 __data_loc_ie;
u32 rates[6];
u32 wdev_id;
u8 wiphy_mac[6];
bool no_cck;
bool aborted;
u64 scan_start_tsf;
u8 tsf_bssid[6];
char __data[0];
};
struct trace_event_raw_wiphy_id_evt {
struct trace_entry ent;
char wiphy_name[32];
u64 id;
char __data[0];
};
struct trace_event_raw_cfg80211_get_bss {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
u8 bssid[6];
u32 __data_loc_ssid;
enum ieee80211_bss_type bss_type;
enum ieee80211_privacy privacy;
char __data[0];
};
struct trace_event_raw_cfg80211_inform_bss_frame {
struct trace_entry ent;
char wiphy_name[32];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
u32 __data_loc_mgmt;
s32 signal;
u64 ts_boottime;
u64 parent_tsf;
u8 parent_bssid[6];
char __data[0];
};
struct trace_event_raw_cfg80211_bss_evt {
struct trace_entry ent;
u8 bssid[6];
enum nl80211_band band;
u32 center_freq;
u16 freq_offset;
char __data[0];
};
struct trace_event_raw_cfg80211_return_uint {
struct trace_entry ent;
unsigned int ret;
char __data[0];
};
struct trace_event_raw_cfg80211_return_u32 {
struct trace_entry ent;
u32 ret;
char __data[0];
};
struct trace_event_raw_cfg80211_report_wowlan_wakeup {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
bool non_wireless;
bool disconnect;
bool magic_pkt;
bool gtk_rekey_failure;
bool eap_identity_req;
bool four_way_handshake;
bool rfkill_release;
s32 pattern_idx;
u32 packet_len;
u32 __data_loc_packet;
char __data[0];
};
struct trace_event_raw_cfg80211_ft_event {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u32 __data_loc_ies;
u8 target_ap[6];
u32 __data_loc_ric_ies;
char __data[0];
};
struct trace_event_raw_cfg80211_stop_iface {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
char __data[0];
};
struct trace_event_raw_cfg80211_pmsr_report {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
u8 addr[6];
char __data[0];
};
struct trace_event_raw_cfg80211_pmsr_complete {
struct trace_entry ent;
char wiphy_name[32];
u32 id;
u64 cookie;
char __data[0];
};
struct trace_event_raw_cfg80211_update_owe_info_event {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 peer[6];
u32 __data_loc_ie;
int assoc_link_id;
u8 peer_mld_addr[6];
char __data[0];
};
struct trace_event_raw_cfg80211_bss_color_notify {
struct trace_entry ent;
char name[16];
int ifindex;
u32 cmd;
u8 count;
u64 color_bitmap;
char __data[0];
};
struct trace_event_raw_cfg80211_assoc_comeback {
struct trace_entry ent;
u32 id;
u8 ap_addr[6];
u32 timeout;
char __data[0];
};
struct trace_event_raw_link_station_add_mod {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 mld_mac[6];
u8 link_mac[6];
u32 link_id;
u32 __data_loc_supported_rates;
u8 ht_capa[26];
u8 vht_capa[12];
u8 opmode_notif;
bool opmode_notif_used;
u32 __data_loc_he_capa;
u8 he_6ghz_capa[2];
u32 __data_loc_eht_capa;
char __data[0];
};
struct trace_event_raw_rdev_del_link_station {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 mld_mac[6];
u32 link_id;
char __data[0];
};
struct trace_event_raw_rdev_set_hw_timestamp {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 macaddr[6];
bool enable;
char __data[0];
};
struct trace_event_raw_cfg80211_links_removed {
struct trace_entry ent;
char name[16];
int ifindex;
u16 link_mask;
char __data[0];
};
struct trace_event_raw_rdev_set_ttlm {
struct trace_entry ent;
char wiphy_name[32];
char name[16];
int ifindex;
u8 dlink[16];
u8 ulink[16];
char __data[0];
};
struct trace_event_data_offsets_rdev_add_virtual_intf {
u32 vir_intf_name;
const void *vir_intf_name_ptr_;
};
struct trace_event_data_offsets_rdev_change_beacon {
u32 head;
const void *head_ptr_;
u32 tail;
const void *tail_ptr_;
u32 beacon_ies;
const void *beacon_ies_ptr_;
u32 proberesp_ies;
const void *proberesp_ies_ptr_;
u32 assocresp_ies;
const void *assocresp_ies_ptr_;
u32 probe_resp;
const void *probe_resp_ptr_;
};
struct trace_event_data_offsets_station_add_change {
u32 supported_rates;
const void *supported_rates_ptr_;
u32 ext_capab;
const void *ext_capab_ptr_;
u32 supported_channels;
const void *supported_channels_ptr_;
u32 supported_oper_classes;
const void *supported_oper_classes_ptr_;
};
struct trace_event_data_offsets_rdev_assoc {
u32 elements;
const void *elements_ptr_;
u32 fils_kek;
const void *fils_kek_ptr_;
u32 fils_nonces;
const void *fils_nonces_ptr_;
};
struct trace_event_data_offsets_rdev_tdls_mgmt {
u32 buf;
const void *buf_ptr_;
};
struct trace_event_data_offsets_rdev_update_ft_ies {
u32 ie;
const void *ie_ptr_;
};
struct trace_event_data_offsets_rdev_channel_switch {
u32 bcn_ofs;
const void *bcn_ofs_ptr_;
u32 pres_ofs;
const void *pres_ofs_ptr_;
};
struct trace_event_data_offsets_rdev_set_pmk {
u32 pmk;
const void *pmk_ptr_;
u32 pmk_r0_name;
const void *pmk_r0_name_ptr_;
};
struct trace_event_data_offsets_rdev_update_owe_info {
u32 ie;
const void *ie_ptr_;
};
struct trace_event_data_offsets_netdev_frame_event {
u32 frame;
const void *frame_ptr_;
};
struct trace_event_data_offsets_cfg80211_tx_mlme_mgmt {
u32 frame;
const void *frame_ptr_;
};
struct trace_event_data_offsets_cfg80211_scan_done {
u32 ie;
const void *ie_ptr_;
};
struct trace_event_data_offsets_cfg80211_get_bss {
u32 ssid;
const void *ssid_ptr_;
};
struct trace_event_data_offsets_cfg80211_inform_bss_frame {
u32 mgmt;
const void *mgmt_ptr_;
};
struct trace_event_data_offsets_cfg80211_report_wowlan_wakeup {
u32 packet;
const void *packet_ptr_;
};
struct trace_event_data_offsets_cfg80211_ft_event {
u32 ies;
const void *ies_ptr_;
u32 ric_ies;
const void *ric_ies_ptr_;
};
struct trace_event_data_offsets_cfg80211_update_owe_info_event {
u32 ie;
const void *ie_ptr_;
};
struct trace_event_data_offsets_link_station_add_mod {
u32 supported_rates;
const void *supported_rates_ptr_;
u32 he_capa;
const void *he_capa_ptr_;
u32 eht_capa;
const void *eht_capa_ptr_;
};
struct trace_event_data_offsets_rdev_suspend {};
struct trace_event_data_offsets_rdev_return_int {};
struct trace_event_data_offsets_rdev_scan {};
struct trace_event_data_offsets_wiphy_only_evt {};
struct trace_event_data_offsets_wiphy_enabled_evt {};
struct trace_event_data_offsets_wiphy_wdev_evt {};
struct trace_event_data_offsets_wiphy_wdev_cookie_evt {};
struct trace_event_data_offsets_rdev_change_virtual_intf {};
struct trace_event_data_offsets_key_handle {};
struct trace_event_data_offsets_rdev_add_key {};
struct trace_event_data_offsets_rdev_set_default_key {};
struct trace_event_data_offsets_rdev_set_default_mgmt_key {};
struct trace_event_data_offsets_rdev_set_default_beacon_key {};
struct trace_event_data_offsets_rdev_start_ap {};
struct trace_event_data_offsets_rdev_stop_ap {};
struct trace_event_data_offsets_wiphy_netdev_evt {};
struct trace_event_data_offsets_wiphy_netdev_mac_evt {};
struct trace_event_data_offsets_station_del {};
struct trace_event_data_offsets_rdev_dump_station {};
struct trace_event_data_offsets_rdev_return_int_station_info {};
struct trace_event_data_offsets_mpath_evt {};
struct trace_event_data_offsets_rdev_dump_mpath {};
struct trace_event_data_offsets_rdev_get_mpp {};
struct trace_event_data_offsets_rdev_dump_mpp {};
struct trace_event_data_offsets_rdev_return_int_mpath_info {};
struct trace_event_data_offsets_rdev_return_int_mesh_config {};
struct trace_event_data_offsets_rdev_update_mesh_config {};
struct trace_event_data_offsets_rdev_join_mesh {};
struct trace_event_data_offsets_rdev_change_bss {};
struct trace_event_data_offsets_rdev_inform_bss {};
struct trace_event_data_offsets_rdev_set_txq_params {};
struct trace_event_data_offsets_rdev_libertas_set_mesh_channel {};
struct trace_event_data_offsets_rdev_set_monitor_channel {};
struct trace_event_data_offsets_rdev_auth {};
struct trace_event_data_offsets_rdev_deauth {};
struct trace_event_data_offsets_rdev_disassoc {};
struct trace_event_data_offsets_rdev_mgmt_tx_cancel_wait {};
struct trace_event_data_offsets_rdev_set_power_mgmt {};
struct trace_event_data_offsets_rdev_connect {};
struct trace_event_data_offsets_rdev_update_connect_params {};
struct trace_event_data_offsets_rdev_set_cqm_rssi_config {};
struct trace_event_data_offsets_rdev_set_cqm_rssi_range_config {};
struct trace_event_data_offsets_rdev_set_cqm_txe_config {};
struct trace_event_data_offsets_rdev_disconnect {};
struct trace_event_data_offsets_rdev_join_ibss {};
struct trace_event_data_offsets_rdev_join_ocb {};
struct trace_event_data_offsets_rdev_set_wiphy_params {};
struct trace_event_data_offsets_rdev_set_tx_power {};
struct trace_event_data_offsets_rdev_return_int_int {};
struct trace_event_data_offsets_rdev_set_bitrate_mask {};
struct trace_event_data_offsets_rdev_update_mgmt_frame_registrations {};
struct trace_event_data_offsets_rdev_return_int_tx_rx {};
struct trace_event_data_offsets_rdev_return_void_tx_rx {};
struct trace_event_data_offsets_tx_rx_evt {};
struct trace_event_data_offsets_wiphy_netdev_id_evt {};
struct trace_event_data_offsets_rdev_dump_survey {};
struct trace_event_data_offsets_rdev_return_int_survey_info {};
struct trace_event_data_offsets_rdev_tdls_oper {};
struct trace_event_data_offsets_rdev_pmksa {};
struct trace_event_data_offsets_rdev_probe_client {};
struct trace_event_data_offsets_rdev_remain_on_channel {};
struct trace_event_data_offsets_rdev_return_int_cookie {};
struct trace_event_data_offsets_rdev_cancel_remain_on_channel {};
struct trace_event_data_offsets_rdev_mgmt_tx {};
struct trace_event_data_offsets_rdev_tx_control_port {};
struct trace_event_data_offsets_rdev_set_noack_map {};
struct trace_event_data_offsets_wiphy_wdev_link_evt {};
struct trace_event_data_offsets_rdev_return_chandef {};
struct trace_event_data_offsets_rdev_start_nan {};
struct trace_event_data_offsets_rdev_nan_change_conf {};
struct trace_event_data_offsets_rdev_add_nan_func {};
struct trace_event_data_offsets_rdev_del_nan_func {};
struct trace_event_data_offsets_rdev_set_mac_acl {};
struct trace_event_data_offsets_rdev_crit_proto_start {};
struct trace_event_data_offsets_rdev_crit_proto_stop {};
struct trace_event_data_offsets_rdev_set_qos_map {};
struct trace_event_data_offsets_rdev_set_ap_chanwidth {};
struct trace_event_data_offsets_rdev_add_tx_ts {};
struct trace_event_data_offsets_rdev_del_tx_ts {};
struct trace_event_data_offsets_rdev_tdls_channel_switch {};
struct trace_event_data_offsets_rdev_tdls_cancel_channel_switch {};
struct trace_event_data_offsets_rdev_del_pmk {};
struct trace_event_data_offsets_rdev_external_auth {};
struct trace_event_data_offsets_rdev_start_radar_detection {};
struct trace_event_data_offsets_rdev_set_mcast_rate {};
struct trace_event_data_offsets_rdev_set_coalesce {};
struct trace_event_data_offsets_rdev_set_multicast_to_unicast {};
struct trace_event_data_offsets_rdev_get_ftm_responder_stats {};
struct trace_event_data_offsets_rdev_set_fils_aad {};
struct trace_event_data_offsets_rdev_probe_mesh_link {};
struct trace_event_data_offsets_rdev_set_tid_config {};
struct trace_event_data_offsets_rdev_reset_tid_config {};
struct trace_event_data_offsets_rdev_set_sar_specs {};
struct trace_event_data_offsets_rdev_color_change {};
struct trace_event_data_offsets_rdev_set_radar_background {};
struct trace_event_data_offsets_cfg80211_return_bool {};
struct trace_event_data_offsets_cfg80211_netdev_mac_evt {};
struct trace_event_data_offsets_netdev_evt_only {};
struct trace_event_data_offsets_cfg80211_send_rx_assoc {};
struct trace_event_data_offsets_netdev_mac_evt {};
struct trace_event_data_offsets_cfg80211_send_assoc_failure {};
struct trace_event_data_offsets_cfg80211_michael_mic_failure {};
struct trace_event_data_offsets_cfg80211_ready_on_channel {};
struct trace_event_data_offsets_cfg80211_ready_on_channel_expired {};
struct trace_event_data_offsets_cfg80211_tx_mgmt_expired {};
struct trace_event_data_offsets_cfg80211_new_sta {};
struct trace_event_data_offsets_cfg80211_rx_mgmt {};
struct trace_event_data_offsets_cfg80211_mgmt_tx_status {};
struct trace_event_data_offsets_cfg80211_control_port_tx_status {};
struct trace_event_data_offsets_cfg80211_rx_control_port {};
struct trace_event_data_offsets_cfg80211_cqm_rssi_notify {};
struct trace_event_data_offsets_cfg80211_reg_can_beacon {};
struct trace_event_data_offsets_cfg80211_chandef_dfs_required {};
struct trace_event_data_offsets_cfg80211_ch_switch_notify {};
struct trace_event_data_offsets_cfg80211_ch_switch_started_notify {};
struct trace_event_data_offsets_cfg80211_radar_event {};
struct trace_event_data_offsets_cfg80211_cac_event {};
struct trace_event_data_offsets_cfg80211_rx_evt {};
struct trace_event_data_offsets_cfg80211_ibss_joined {};
struct trace_event_data_offsets_cfg80211_probe_status {};
struct trace_event_data_offsets_cfg80211_cqm_pktloss_notify {};
struct trace_event_data_offsets_cfg80211_pmksa_candidate_notify {};
struct trace_event_data_offsets_cfg80211_report_obss_beacon {};
struct trace_event_data_offsets_cfg80211_tdls_oper_request {};
struct trace_event_data_offsets_wiphy_id_evt {};
struct trace_event_data_offsets_cfg80211_bss_evt {};
struct trace_event_data_offsets_cfg80211_return_uint {};
struct trace_event_data_offsets_cfg80211_return_u32 {};
struct trace_event_data_offsets_cfg80211_stop_iface {};
struct trace_event_data_offsets_cfg80211_pmsr_report {};
struct trace_event_data_offsets_cfg80211_pmsr_complete {};
struct trace_event_data_offsets_cfg80211_bss_color_notify {};
struct trace_event_data_offsets_cfg80211_assoc_comeback {};
struct trace_event_data_offsets_rdev_del_link_station {};
struct trace_event_data_offsets_rdev_set_hw_timestamp {};
struct trace_event_data_offsets_cfg80211_links_removed {};
struct trace_event_data_offsets_rdev_set_ttlm {};
struct change_member {
struct e820_entry *entry;
unsigned long long addr;
};
typedef void (*btf_trace_rcu_utilization)(void *, const char *);
typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *);
typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *);
typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long);
typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *);
typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *);
typedef void (*btf_trace_rcu_nocb_wake)(void *, const char *, int, const char *);
typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long);
typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int);
typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int);
typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *);
typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *);
typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int);
typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long);
typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *);
typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long);
typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long);
typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *);
typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long);
typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **);
typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char);
typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long);
typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long);
struct rcu_tasks;
typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *);
typedef void (*pregp_func_t)(struct list_head *);
typedef void (*pertask_func_t)(struct task_struct *, struct list_head *);
typedef void (*postscan_func_t)(struct list_head *);
typedef void (*holdouts_func_t)(struct list_head *, bool, bool *);
typedef void (*postgp_func_t)(struct rcu_tasks *);
struct rcu_tasks_percpu;
struct rcu_tasks {
struct rcuwait cbs_wait;
raw_spinlock_t cbs_gbl_lock;
struct mutex tasks_gp_mutex;
int gp_state;
int gp_sleep;
int init_fract;
unsigned long gp_jiffies;
unsigned long gp_start;
unsigned long tasks_gp_seq;
unsigned long n_ipis;
unsigned long n_ipis_fails;
struct task_struct *kthread_ptr;
unsigned long lazy_jiffies;
rcu_tasks_gp_func_t gp_func;
pregp_func_t pregp_func;
pertask_func_t pertask_func;
postscan_func_t postscan_func;
holdouts_func_t holdouts_func;
postgp_func_t postgp_func;
call_rcu_func_t call_func;
struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu;
int percpu_enqueue_shift;
int percpu_enqueue_lim;
int percpu_dequeue_lim;
unsigned long percpu_dequeue_gpseq;
struct mutex barrier_q_mutex;
atomic_t barrier_q_count;
struct completion barrier_q_completion;
unsigned long barrier_q_seq;
char *name;
char *kname;
};
struct rcu_tasks_percpu {
struct rcu_segcblist cblist;
raw_spinlock_t lock;
unsigned long rtp_jiffies;
unsigned long rtp_n_lock_retries;
struct timer_list lazy_timer;
unsigned int urgent_gp;
struct work_struct rtp_work;
struct irq_work rtp_irq_work;
struct callback_head barrier_q_head;
struct list_head rtp_blkd_tasks;
struct list_head rtp_exit_list;
int cpu;
struct rcu_tasks *rtpp;
};
struct rcu_tasks_test_desc {
struct callback_head rh;
const char *name;
bool notrun;
unsigned long runstart;
};
struct trace_event_raw_rcu_utilization {
struct trace_entry ent;
const char *s;
char __data[0];
};
struct trace_event_raw_rcu_grace_period {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
const char *gpevent;
char __data[0];
};
struct trace_event_raw_rcu_future_grace_period {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
long gp_seq_req;
u8 level;
int grplo;
int grphi;
const char *gpevent;
char __data[0];
};
struct trace_event_raw_rcu_grace_period_init {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
u8 level;
int grplo;
int grphi;
unsigned long qsmask;
char __data[0];
};
struct trace_event_raw_rcu_exp_grace_period {
struct trace_entry ent;
const char *rcuname;
long gpseq;
const char *gpevent;
char __data[0];
};
struct trace_event_raw_rcu_exp_funnel_lock {
struct trace_entry ent;
const char *rcuname;
u8 level;
int grplo;
int grphi;
const char *gpevent;
char __data[0];
};
struct trace_event_raw_rcu_nocb_wake {
struct trace_entry ent;
const char *rcuname;
int cpu;
const char *reason;
char __data[0];
};
struct trace_event_raw_rcu_preempt_task {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
int pid;
char __data[0];
};
struct trace_event_raw_rcu_unlock_preempted_task {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
int pid;
char __data[0];
};
struct trace_event_raw_rcu_quiescent_state_report {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
unsigned long mask;
unsigned long qsmask;
u8 level;
int grplo;
int grphi;
u8 gp_tasks;
char __data[0];
};
struct trace_event_raw_rcu_fqs {
struct trace_entry ent;
const char *rcuname;
long gp_seq;
int cpu;
const char *qsevent;
char __data[0];
};
struct trace_event_raw_rcu_stall_warning {
struct trace_entry ent;
const char *rcuname;
const char *msg;
char __data[0];
};
struct trace_event_raw_rcu_dyntick {
struct trace_entry ent;
const char *polarity;
long oldnesting;
long newnesting;
int dynticks;
char __data[0];
};
struct trace_event_raw_rcu_callback {
struct trace_entry ent;
const char *rcuname;
void *rhp;
void *func;
long qlen;
char __data[0];
};
struct trace_event_raw_rcu_segcb_stats {
struct trace_entry ent;
const char *ctx;
unsigned long gp_seq[4];
long seglen[4];
char __data[0];
};
struct trace_event_raw_rcu_kvfree_callback {
struct trace_entry ent;
const char *rcuname;
void *rhp;
unsigned long offset;
long qlen;
char __data[0];
};
struct trace_event_raw_rcu_batch_start {
struct trace_entry ent;
const char *rcuname;
long qlen;
long blimit;
char __data[0];
};
struct trace_event_raw_rcu_invoke_callback {
struct trace_entry ent;
const char *rcuname;
void *rhp;
void *func;
char __data[0];
};
struct trace_event_raw_rcu_invoke_kvfree_callback {
struct trace_entry ent;
const char *rcuname;
void *rhp;
unsigned long offset;
char __data[0];
};
struct trace_event_raw_rcu_invoke_kfree_bulk_callback {
struct trace_entry ent;
const char *rcuname;
unsigned long nr_records;
void **p;
char __data[0];
};
struct trace_event_raw_rcu_batch_end {
struct trace_entry ent;
const char *rcuname;
int callbacks_invoked;
char cb;
char nr;
char iit;
char risk;
char __data[0];
};
struct trace_event_raw_rcu_torture_read {
struct trace_entry ent;
char rcutorturename[8];
struct callback_head *rhp;
unsigned long secs;
unsigned long c_old;
unsigned long c;
char __data[0];
};
struct trace_event_raw_rcu_barrier {
struct trace_entry ent;
const char *rcuname;
const char *s;
int cpu;
int cnt;
unsigned long done;
char __data[0];
};
struct early_boot_kfree_rcu {
struct callback_head rh;
};
struct trc_stall_chk_rdr {
int nesting;
int ipi_to_cpu;
u8 needqs;
};
struct trace_event_data_offsets_rcu_utilization {};
struct trace_event_data_offsets_rcu_grace_period {};
struct trace_event_data_offsets_rcu_future_grace_period {};
struct trace_event_data_offsets_rcu_grace_period_init {};
struct trace_event_data_offsets_rcu_exp_grace_period {};
struct trace_event_data_offsets_rcu_exp_funnel_lock {};
struct trace_event_data_offsets_rcu_nocb_wake {};
struct trace_event_data_offsets_rcu_preempt_task {};
struct trace_event_data_offsets_rcu_unlock_preempted_task {};
struct trace_event_data_offsets_rcu_quiescent_state_report {};
struct trace_event_data_offsets_rcu_fqs {};
struct trace_event_data_offsets_rcu_stall_warning {};
struct trace_event_data_offsets_rcu_dyntick {};
struct trace_event_data_offsets_rcu_callback {};
struct trace_event_data_offsets_rcu_segcb_stats {};
struct trace_event_data_offsets_rcu_kvfree_callback {};
struct trace_event_data_offsets_rcu_batch_start {};
struct trace_event_data_offsets_rcu_invoke_callback {};
struct trace_event_data_offsets_rcu_invoke_kvfree_callback {};
struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {};
struct trace_event_data_offsets_rcu_batch_end {};
struct trace_event_data_offsets_rcu_torture_read {};
struct trace_event_data_offsets_rcu_barrier {};
struct trace_mark {
unsigned long long val;
char sym;
};
struct ctx_switch_entry {
struct trace_entry ent;
unsigned int prev_pid;
unsigned int next_pid;
unsigned int next_cpu;
unsigned char prev_prio;
unsigned char prev_state;
unsigned char next_prio;
unsigned char next_state;
};
struct hwlat_entry {
struct trace_entry ent;
u64 duration;
u64 outer_duration;
u64 nmi_total_ts;
struct timespec64 timestamp;
unsigned int nmi_count;
unsigned int seqnum;
unsigned int count;
};
struct osnoise_entry {
struct trace_entry ent;
u64 noise;
u64 runtime;
u64 max_sample;
unsigned int hw_count;
unsigned int nmi_count;
unsigned int irq_count;
unsigned int softirq_count;
unsigned int thread_count;
};
struct timerlat_entry {
struct trace_entry ent;
unsigned int seqnum;
int context;
u64 timer_latency;
};
struct reuseport_array {
struct bpf_map map;
struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0];
};
struct fat_fid {
u32 i_gen;
u32 i_pos_low;
u16 i_pos_hi;
u16 parent_i_pos_hi;
u32 parent_i_pos_low;
u32 parent_i_gen;
};
struct variable_validate {
efi_guid_t vendor;
char *name;
bool (*validate)(efi_char16_t *, int, u8 *, unsigned long);
};
struct efi_generic_dev_path {
u8 type;
u8 sub_type;
u16 length;
};
struct io_rsrc_update {
struct file *file;
u64 arg;
u32 nr_args;
u32 offset;
};
struct io_uring_rsrc_update2 {
__u32 offset;
__u32 resv;
__u64 data;
__u64 tags;
__u32 nr;
__u32 resv2;
};
struct io_uring_rsrc_register {
__u32 nr;
__u32 flags;
__u64 resv2;
__u64 data;
__u64 tags;
};
struct serial8250_config {
const char *name;
unsigned short fifo_size;
unsigned short tx_loadsz;
unsigned char fcr;
unsigned char rxtrig_bytes[4];
unsigned int flags;
};
struct iwl5000_channel_switch_cmd {
u8 band;
u8 expect_beacon;
__le16 channel;
__le32 rxon_flags;
__le32 rxon_filter_flags;
__le32 switch_time;
__le32 reserved[52];
};
struct iwl6000_channel_switch_cmd {
u8 band;
u8 expect_beacon;
__le16 channel;
__le32 rxon_flags;
__le32 rxon_filter_flags;
__le32 switch_time;
__le32 reserved[78];
};
enum sanyo_state {
STATE_INACTIVE___9 = 0,
STATE_HEADER_SPACE___4 = 1,
STATE_BIT_PULSE___5 = 2,
STATE_BIT_SPACE___5 = 3,
STATE_TRAILER_PULSE___4 = 4,
STATE_TRAILER_SPACE___4 = 5,
};
enum {
INET6_IFADDR_STATE_PREDAD = 0,
INET6_IFADDR_STATE_DAD = 1,
INET6_IFADDR_STATE_POSTDAD = 2,
INET6_IFADDR_STATE_ERRDAD = 3,
INET6_IFADDR_STATE_DEAD = 4,
};
enum {
NETCONFA_UNSPEC = 0,
NETCONFA_IFINDEX = 1,
NETCONFA_FORWARDING = 2,
NETCONFA_RP_FILTER = 3,
NETCONFA_MC_FORWARDING = 4,
NETCONFA_PROXY_NEIGH = 5,
NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN = 6,
NETCONFA_INPUT = 7,
NETCONFA_BC_FORWARDING = 8,
__NETCONFA_MAX = 9,
};
enum {
IPV6_SADDR_RULE_INIT = 0,
IPV6_SADDR_RULE_LOCAL = 1,
IPV6_SADDR_RULE_SCOPE = 2,
IPV6_SADDR_RULE_PREFERRED = 3,
IPV6_SADDR_RULE_OIF = 4,
IPV6_SADDR_RULE_LABEL = 5,
IPV6_SADDR_RULE_PRIVACY = 6,
IPV6_SADDR_RULE_ORCHID = 7,
IPV6_SADDR_RULE_PREFIX = 8,
IPV6_SADDR_RULE_MAX = 9,
};
enum {
DAD_PROCESS = 0,
DAD_BEGIN = 1,
DAD_ABORT = 2,
};
enum cleanup_prefix_rt_t {
CLEANUP_PREFIX_RT_NOP = 0,
CLEANUP_PREFIX_RT_DEL = 1,
CLEANUP_PREFIX_RT_EXPIRE = 2,
};
enum in6_addr_gen_mode {
IN6_ADDR_GEN_MODE_EUI64 = 0,
IN6_ADDR_GEN_MODE_NONE = 1,
IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2,
IN6_ADDR_GEN_MODE_RANDOM = 3,
};
enum {
DEVCONF_FORWARDING = 0,
DEVCONF_HOPLIMIT = 1,
DEVCONF_MTU6 = 2,
DEVCONF_ACCEPT_RA = 3,
DEVCONF_ACCEPT_REDIRECTS = 4,
DEVCONF_AUTOCONF = 5,
DEVCONF_DAD_TRANSMITS = 6,
DEVCONF_RTR_SOLICITS = 7,
DEVCONF_RTR_SOLICIT_INTERVAL = 8,
DEVCONF_RTR_SOLICIT_DELAY = 9,
DEVCONF_USE_TEMPADDR = 10,
DEVCONF_TEMP_VALID_LFT = 11,
DEVCONF_TEMP_PREFERED_LFT = 12,
DEVCONF_REGEN_MAX_RETRY = 13,
DEVCONF_MAX_DESYNC_FACTOR = 14,
DEVCONF_MAX_ADDRESSES = 15,
DEVCONF_FORCE_MLD_VERSION = 16,
DEVCONF_ACCEPT_RA_DEFRTR = 17,
DEVCONF_ACCEPT_RA_PINFO = 18,
DEVCONF_ACCEPT_RA_RTR_PREF = 19,
DEVCONF_RTR_PROBE_INTERVAL = 20,
DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21,
DEVCONF_PROXY_NDP = 22,
DEVCONF_OPTIMISTIC_DAD = 23,
DEVCONF_ACCEPT_SOURCE_ROUTE = 24,
DEVCONF_MC_FORWARDING = 25,
DEVCONF_DISABLE_IPV6 = 26,
DEVCONF_ACCEPT_DAD = 27,
DEVCONF_FORCE_TLLAO = 28,
DEVCONF_NDISC_NOTIFY = 29,
DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30,
DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31,
DEVCONF_SUPPRESS_FRAG_NDISC = 32,
DEVCONF_ACCEPT_RA_FROM_LOCAL = 33,
DEVCONF_USE_OPTIMISTIC = 34,
DEVCONF_ACCEPT_RA_MTU = 35,
DEVCONF_STABLE_SECRET = 36,
DEVCONF_USE_OIF_ADDRS_ONLY = 37,
DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38,
DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39,
DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40,
DEVCONF_DROP_UNSOLICITED_NA = 41,
DEVCONF_KEEP_ADDR_ON_DOWN = 42,
DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43,
DEVCONF_SEG6_ENABLED = 44,
DEVCONF_SEG6_REQUIRE_HMAC = 45,
DEVCONF_ENHANCED_DAD = 46,
DEVCONF_ADDR_GEN_MODE = 47,
DEVCONF_DISABLE_POLICY = 48,
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49,
DEVCONF_NDISC_TCLASS = 50,
DEVCONF_RPL_SEG_ENABLED = 51,
DEVCONF_RA_DEFRTR_METRIC = 52,
DEVCONF_IOAM6_ENABLED = 53,
DEVCONF_IOAM6_ID = 54,
DEVCONF_IOAM6_ID_WIDE = 55,
DEVCONF_NDISC_EVICT_NOCARRIER = 56,
DEVCONF_ACCEPT_UNTRACKED_NA = 57,
DEVCONF_ACCEPT_RA_MIN_LFT = 58,
DEVCONF_MAX = 59,
};
enum {
IFLA_INET6_UNSPEC = 0,
IFLA_INET6_FLAGS = 1,
IFLA_INET6_CONF = 2,
IFLA_INET6_STATS = 3,
IFLA_INET6_MCAST = 4,
IFLA_INET6_CACHEINFO = 5,
IFLA_INET6_ICMP6STATS = 6,
IFLA_INET6_TOKEN = 7,
IFLA_INET6_ADDR_GEN_MODE = 8,
IFLA_INET6_RA_MTU = 9,
__IFLA_INET6_MAX = 10,
};
enum {
PREFIX_UNSPEC = 0,
PREFIX_ADDRESS = 1,
PREFIX_CACHEINFO = 2,
__PREFIX_MAX = 3,
};
enum addr_type_t {
UNICAST_ADDR = 0,
MULTICAST_ADDR = 1,
ANYCAST_ADDR = 2,
};
enum {
IFA_UNSPEC = 0,
IFA_ADDRESS = 1,
IFA_LOCAL = 2,
IFA_LABEL = 3,
IFA_BROADCAST = 4,
IFA_ANYCAST = 5,
IFA_CACHEINFO = 6,
IFA_MULTICAST = 7,
IFA_FLAGS = 8,
IFA_RT_PRIORITY = 9,
IFA_TARGET_NETNSID = 10,
IFA_PROTO = 11,
__IFA_MAX = 12,
};
union fwnet_hwaddr {
u8 u[16];
struct {
__be64 uniq_id;
u8 max_rec;
u8 sspd;
u8 fifo[6];
} uc;
};
struct prefix_cacheinfo {
__u32 preferred_time;
__u32 valid_time;
};
struct prefixmsg {
unsigned char prefix_family;
unsigned char prefix_pad1;
unsigned short prefix_pad2;
int prefix_ifindex;
unsigned char prefix_type;
unsigned char prefix_len;
unsigned char prefix_flags;
unsigned char prefix_pad3;
};
struct in6_ifreq {
struct in6_addr ifr6_addr;
__u32 ifr6_prefixlen;
int ifr6_ifindex;
};
struct ifaddrmsg {
__u8 ifa_family;
__u8 ifa_prefixlen;
__u8 ifa_flags;
__u8 ifa_scope;
__u32 ifa_index;
};
struct if6_iter_state {
struct seq_net_private p;
int bucket;
int offset;
};
struct inet6_fill_args {
u32 portid;
u32 seq;
int event;
unsigned int flags;
int netnsid;
int ifindex;
enum addr_type_t type;
};
struct ifa_cacheinfo {
__u32 ifa_prefered;
__u32 ifa_valid;
__u32 cstamp;
__u32 tstamp;
};
struct netconfmsg {
__u8 ncm_family;
};
struct ipv6_saddr_score {
int rule;
int addr_type;
struct inet6_ifaddr *ifa;
unsigned long scorebits[1];
int scopedist;
int matchlen;
};
struct ipv6_saddr_dst {
const struct in6_addr *addr;
int ifindex;
int scope;
int label;
unsigned int prefs;
};
struct ifa6_config {
const struct in6_addr *pfx;
unsigned int plen;
u8 ifa_proto;
const struct in6_addr *peer_pfx;
u32 rt_priority;
u32 ifa_flags;
u32 preferred_lft;
u32 valid_lft;
u16 scope;
};
struct in6_validator_info {
struct in6_addr i6vi_addr;
struct inet6_dev *i6vi_dev;
struct netlink_ext_ack *extack;
};
struct ifla_cacheinfo {
__u32 max_reasm_len;
__u32 tstamp;
__u32 reachable_time;
__u32 retrans_time;
};
struct __kernel_old_itimerval {
struct __kernel_old_timeval it_interval;
struct __kernel_old_timeval it_value;
};
typedef unsigned long perf_trace_t[1024];
typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t);
typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *);
enum buddy {
FIRST = 0,
LAST = 1,
};
struct zbud_header {
struct list_head buddy;
unsigned int first_chunks;
unsigned int last_chunks;
};
struct zbud_pool {
spinlock_t lock;
union {
struct list_head buddied;
struct list_head unbuddied[63];
};
u64 pages_nr;
};
struct saved {
struct path link;
struct delayed_call done;
const char *name;
unsigned int seq;
};
struct nameidata {
struct path path;
struct qstr last;
struct path root;
struct inode *inode;
unsigned int flags;
unsigned int state;
unsigned int seq;
unsigned int next_seq;
unsigned int m_seq;
unsigned int r_seq;
int last_type;
unsigned int depth;
int total_link_count;
struct saved *stack;
struct saved internal[2];
struct filename *name;
struct nameidata *saved;
unsigned int root_seq;
int dfd;
vfsuid_t dir_vfsuid;
umode_t dir_mode;
};
enum {
LAST_NORM = 0,
LAST_ROOT = 1,
LAST_DOT = 2,
LAST_DOTDOT = 3,
};
enum {
WALK_TRAILING = 1,
WALK_MORE = 2,
WALK_NOFOLLOW = 4,
};
struct renamedata {
struct mnt_idmap *old_mnt_idmap;
struct inode *old_dir;
struct dentry *old_dentry;
struct mnt_idmap *new_mnt_idmap;
struct inode *new_dir;
struct dentry *new_dentry;
struct inode **delegated_inode;
unsigned int flags;
};
enum btrfs_delayed_ref_flags {
BTRFS_DELAYED_REFS_FLUSHING = 0,
};
struct crypto_rfc3686_ctx {
struct crypto_skcipher *child;
u8 nonce[4];
};
struct crypto_rfc3686_req_ctx {
u8 iv[16];
struct skcipher_request subreq;
};
enum blacklist_hash_type {
BLACKLIST_HASH_X509_TBS = 1,
BLACKLIST_HASH_BINARY = 2,
};
struct bsg_device {
struct request_queue *queue;
struct device device;
struct cdev cdev;
int max_queue;
unsigned int timeout;
unsigned int reserved_size;
bsg_sg_io_fn *sg_io_fn;
};
typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **);
struct acpi_simple_repair_info {
char name[4];
u32 unexpected_btypes;
u32 package_index;
acpi_object_converter object_converter;
};
struct clk_gate {
struct clk_hw hw;
void *reg;
u8 bit_idx;
u8 flags;
spinlock_t *lock;
};
struct ahci_sg {
__le32 addr;
__le32 addr_hi;
__le32 reserved;
__le32 flags_size;
};
enum iwl_cfg_trans_ltr_delay {
IWL_CFG_TRANS_LTR_DELAY_NONE = 0,
IWL_CFG_TRANS_LTR_DELAY_200US = 1,
IWL_CFG_TRANS_LTR_DELAY_2500US = 2,
IWL_CFG_TRANS_LTR_DELAY_1820US = 3,
};
struct iwl_soc_configuration_cmd {
__le32 flags;
__le32 latency;
};
struct iwl_rfh_queue_data {
u8 q_num;
u8 enable;
__le16 reserved;
__le64 urbd_stts_wrptr;
__le64 fr_bd_cb;
__le64 ur_bd_cb;
__le32 fr_bd_wid;
} __attribute__((packed));
struct iwl_rfh_queue_config {
u8 num_queues;
u8 reserved[3];
struct iwl_rfh_queue_data data[0];
};
struct rtw_iter_bitrate_mask_data {
struct rtw_dev *rtwdev;
struct ieee80211_vif *vif;
const struct cfg80211_bitrate_mask *mask;
};
enum stripe_result {
STRIPE_SUCCESS = 0,
STRIPE_RETRY = 1,
STRIPE_SCHEDULE_AND_RETRY = 2,
STRIPE_FAIL = 3,
STRIPE_WAIT_RESHAPE = 4,
};
enum {
PARITY_DISABLE_RMW = 0,
PARITY_ENABLE_RMW = 1,
PARITY_PREFER_RMW = 2,
};
enum {
SYNDROME_SRC_ALL = 0,
SYNDROME_SRC_WANT_DRAIN = 1,
SYNDROME_SRC_WRITTEN = 2,
};
struct raid5_plug_cb {
struct blk_plug_cb cb;
struct list_head list;
struct list_head temp_inactive_list[8];
};
struct stripe_request_ctx {
struct stripe_head *batch_last;
sector_t first_sector;
sector_t last_sector;
unsigned long sectors_to_do[5];
bool do_flush;
};
enum nfulnl_attr_config {
NFULA_CFG_UNSPEC = 0,
NFULA_CFG_CMD = 1,
NFULA_CFG_MODE = 2,
NFULA_CFG_NLBUFSIZ = 3,
NFULA_CFG_TIMEOUT = 4,
NFULA_CFG_QTHRESH = 5,
NFULA_CFG_FLAGS = 6,
__NFULA_CFG_MAX = 7,
};
enum nfulnl_msg_config_cmds {
NFULNL_CFG_CMD_NONE = 0,
NFULNL_CFG_CMD_BIND = 1,
NFULNL_CFG_CMD_UNBIND = 2,
NFULNL_CFG_CMD_PF_BIND = 3,
NFULNL_CFG_CMD_PF_UNBIND = 4,
};
enum nfulnl_msg_types {
NFULNL_MSG_PACKET = 0,
NFULNL_MSG_CONFIG = 1,
NFULNL_MSG_MAX = 2,
};
enum nfulnl_attr_type {
NFULA_UNSPEC = 0,
NFULA_PACKET_HDR = 1,
NFULA_MARK = 2,
NFULA_TIMESTAMP = 3,
NFULA_IFINDEX_INDEV = 4,
NFULA_IFINDEX_OUTDEV = 5,
NFULA_IFINDEX_PHYSINDEV = 6,
NFULA_IFINDEX_PHYSOUTDEV = 7,
NFULA_HWADDR = 8,
NFULA_PAYLOAD = 9,
NFULA_PREFIX = 10,
NFULA_UID = 11,
NFULA_SEQ = 12,
NFULA_SEQ_GLOBAL = 13,
NFULA_GID = 14,
NFULA_HWTYPE = 15,
NFULA_HWHEADER = 16,
NFULA_HWLEN = 17,
NFULA_CT = 18,
NFULA_CT_INFO = 19,
NFULA_VLAN = 20,
NFULA_L2HDR = 21,
__NFULA_MAX = 22,
};
enum nfulnl_vlan_attr {
NFULA_VLAN_UNSPEC = 0,
NFULA_VLAN_PROTO = 1,
NFULA_VLAN_TCI = 2,
__NFULA_VLAN_MAX = 3,
};
struct nfulnl_instance {
struct hlist_node hlist;
spinlock_t lock;
refcount_t use;
unsigned int qlen;
struct sk_buff *skb;
struct timer_list timer;
struct net *net;
netns_tracker ns_tracker;
struct user_namespace *peer_user_ns;
u32 peer_portid;
unsigned int flushtimeout;
unsigned int nlbufsiz;
unsigned int qthreshold;
u_int32_t copy_range;
u_int32_t seq;
u_int16_t group_num;
u_int16_t flags;
u_int8_t copy_mode;
struct callback_head rcu;
};
struct nfnl_log_net {
spinlock_t instances_lock;
struct hlist_head instance_table[16];
atomic_t global_seq;
};
struct nfulnl_msg_packet_hdr {
__be16 hw_protocol;
__u8 hook;
__u8 _pad;
};
struct nfulnl_msg_packet_hw {
__be16 hw_addrlen;
__u16 _pad;
__u8 hw_addr[8];
};
struct nfulnl_msg_packet_timestamp {
__be64 sec;
__be64 usec;
};
struct nfulnl_msg_config_cmd {
__u8 command;
};
struct nfulnl_msg_config_mode {
__be32 copy_range;
__u8 copy_mode;
__u8 _pad;
} __attribute__((packed));
struct devinet_sysctl_table {
struct ctl_table_header *sysctl_header;
struct ctl_table devinet_vars[34];
};
enum {
IFLA_INET_UNSPEC = 0,
IFLA_INET_CONF = 1,
__IFLA_INET_MAX = 2,
};
struct inet_fill_args {
u32 portid;
u32 seq;
int event;
unsigned int flags;
int netnsid;
int ifindex;
};
struct in_validator_info {
__be32 ivi_addr;
struct in_device *ivi_dev;
struct netlink_ext_ack *extack;
};
enum {
NONE_FORCE_HPET_RESUME = 0,
OLD_ICH_FORCE_HPET_RESUME = 1,
ICH_FORCE_HPET_RESUME = 2,
VT8237_FORCE_HPET_RESUME = 3,
NVIDIA_FORCE_HPET_RESUME = 4,
ATI_FORCE_HPET_RESUME = 5,
};
enum freezer_state_flags {
CGROUP_FREEZER_ONLINE = 1,
CGROUP_FREEZING_SELF = 2,
CGROUP_FREEZING_PARENT = 4,
CGROUP_FROZEN = 8,
CGROUP_FREEZING = 6,
};
struct freezer {
struct cgroup_subsys_state css;
unsigned int state;
};
struct fmeter {
int cnt;
int val;
time64_t time;
spinlock_t lock;
};
enum prs_errcode {
PERR_NONE = 0,
PERR_INVCPUS = 1,
PERR_INVPARENT = 2,
PERR_NOTPART = 3,
PERR_NOTEXCL = 4,
PERR_NOCPUS = 5,
PERR_HOTPLUG = 6,
PERR_CPUSEMPTY = 7,
PERR_HKEEPING = 8,
};
struct cpuset {
struct cgroup_subsys_state css;
unsigned long flags;
cpumask_var_t cpus_allowed;
nodemask_t mems_allowed;
cpumask_var_t effective_cpus;
nodemask_t effective_mems;
cpumask_var_t effective_xcpus;
cpumask_var_t exclusive_cpus;
nodemask_t old_mems_allowed;
struct fmeter fmeter;
int attach_in_progress;
int pn;
int relax_domain_level;
int nr_subparts;
int partition_root_state;
int use_parent_ecpus;
int child_ecpus_count;
int nr_deadline_tasks;
int nr_migrate_dl_tasks;
u64 sum_migrate_dl_bw;
enum prs_errcode prs_err;
struct cgroup_file partition_file;
struct list_head remote_sibling;
};
enum partition_cmd {
partcmd_enable = 0,
partcmd_enablei = 1,
partcmd_disable = 2,
partcmd_update = 3,
partcmd_invalidate = 4,
};
struct cpuset_migrate_mm_work {
struct work_struct work;
struct mm_struct *mm;
nodemask_t from;
nodemask_t to;
};
struct tmpmasks {
cpumask_var_t addmask;
cpumask_var_t delmask;
cpumask_var_t new_cpus;
};
typedef enum {
CS_ONLINE = 0,
CS_CPU_EXCLUSIVE = 1,
CS_MEM_EXCLUSIVE = 2,
CS_MEM_HARDWALL = 3,
CS_MEMORY_MIGRATE = 4,
CS_SCHED_LOAD_BALANCE = 5,
CS_SPREAD_PAGE = 6,
CS_SPREAD_SLAB = 7,
} cpuset_flagbits_t;
typedef enum {
FILE_MEMORY_MIGRATE = 0,
FILE_CPULIST = 1,
FILE_MEMLIST = 2,
FILE_EFFECTIVE_CPULIST = 3,
FILE_EFFECTIVE_MEMLIST = 4,
FILE_SUBPARTS_CPULIST = 5,
FILE_EXCLUSIVE_CPULIST = 6,
FILE_EFFECTIVE_XCPULIST = 7,
FILE_ISOLATED_CPULIST = 8,
FILE_CPU_EXCLUSIVE = 9,
FILE_MEM_EXCLUSIVE = 10,
FILE_MEM_HARDWALL = 11,
FILE_SCHED_LOAD_BALANCE = 12,
FILE_PARTITION_ROOT = 13,
FILE_SCHED_RELAX_DOMAIN_LEVEL = 14,
FILE_MEMORY_PRESSURE_ENABLED = 15,
FILE_MEMORY_PRESSURE = 16,
FILE_SPREAD_PAGE = 17,
FILE_SPREAD_SLAB = 18,
} cpuset_filetype_t;
enum clear_refs_types {
CLEAR_REFS_ALL = 1,
CLEAR_REFS_ANON = 2,
CLEAR_REFS_MAPPED = 3,
CLEAR_REFS_SOFT_DIRTY = 4,
CLEAR_REFS_MM_HIWATER_RSS = 5,
CLEAR_REFS_LAST = 6,
};
struct page_region {
__u64 start;
__u64 end;
__u64 categories;
};
struct proc_maps_private {
struct inode *inode;
struct task_struct *task;
struct mm_struct *mm;
struct vma_iterator iter;
struct mempolicy *task_mempolicy;
};
struct pm_scan_arg {
__u64 size;
__u64 flags;
__u64 start;
__u64 end;
__u64 walk_end;
__u64 vec;
__u64 vec_len;
__u64 max_pages;
__u64 category_inverted;
__u64 category_mask;
__u64 category_anyof_mask;
__u64 return_mask;
};
struct pagemap_scan_private {
struct pm_scan_arg arg;
unsigned long masks_of_interest;
unsigned long cur_vma_category;
struct page_region *vec_buf;
unsigned long vec_buf_len;
unsigned long vec_buf_index;
unsigned long found_pages;
struct page_region __attribute__((btf_type_tag("user"))) *vec_out;
};
struct mem_size_stats {
unsigned long resident;
unsigned long shared_clean;
unsigned long shared_dirty;
unsigned long private_clean;
unsigned long private_dirty;
unsigned long referenced;
unsigned long anonymous;
unsigned long lazyfree;
unsigned long anonymous_thp;
unsigned long shmem_thp;
unsigned long file_thp;
unsigned long swap;
unsigned long shared_hugetlb;
unsigned long private_hugetlb;
unsigned long ksm;
u64 pss;
u64 pss_anon;
u64 pss_file;
u64 pss_shmem;
u64 pss_dirty;
u64 pss_locked;
u64 swap_pss;
};
typedef struct {
u64 pme;
} pagemap_entry_t;
struct pagemapread {
int pos;
int len;
pagemap_entry_t *buffer;
bool show_pfn;
};
struct clear_refs_private {
enum clear_refs_types type;
};
struct numa_maps {
unsigned long pages;
unsigned long anon;
unsigned long active;
unsigned long writeback;
unsigned long mapcount_max;
unsigned long dirty;
unsigned long swapcache;
unsigned long node[1024];
};
struct numa_maps_private {
struct proc_maps_private proc_maps;
struct numa_maps md;
};
enum fuse_ext_type {
FUSE_MAX_NR_SECCTX = 31,
FUSE_EXT_GROUPS = 32,
};
struct fuse_supp_groups {
uint32_t nr_groups;
uint32_t groups[0];
};
struct fuse_statx_in {
uint32_t getattr_flags;
uint32_t reserved;
uint64_t fh;
uint32_t sx_flags;
uint32_t sx_mask;
};
struct fuse_statx_out {
uint64_t attr_valid;
uint32_t attr_valid_nsec;
uint32_t flags;
uint64_t spare[2];
struct fuse_statx stat;
};
struct fuse_setattr_in {
uint32_t valid;
uint32_t padding;
uint64_t fh;
uint64_t size;
uint64_t lock_owner;
uint64_t atime;
uint64_t mtime;
uint64_t ctime;
uint32_t atimensec;
uint32_t mtimensec;
uint32_t ctimensec;
uint32_t mode;
uint32_t unused4;
uint32_t uid;
uint32_t gid;
uint32_t unused5;
};
struct fuse_attr_out {
uint64_t attr_valid;
uint32_t attr_valid_nsec;
uint32_t dummy;
struct fuse_attr attr;
};
struct fuse_access_in {
uint32_t mask;
uint32_t padding;
};
struct fuse_mknod_in {
uint32_t mode;
uint32_t rdev;
uint32_t umask;
uint32_t padding;
};
struct fuse_secctx_header {
uint32_t size;
uint32_t nr_secctx;
};
struct fuse_secctx {
uint32_t size;
uint32_t padding;
};
struct fuse_ext_header {
uint32_t size;
uint32_t type;
};
struct fuse_getattr_in {
uint32_t getattr_flags;
uint32_t dummy;
uint64_t fh;
};
struct fuse_link_in {
uint64_t oldnodeid;
};
struct fuse_mkdir_in {
uint32_t mode;
uint32_t umask;
};
struct fuse_rename2_in {
uint64_t newdir;
uint32_t flags;
uint32_t padding;
};
struct fuse_create_in {
uint32_t flags;
uint32_t mode;
uint32_t umask;
uint32_t open_flags;
};
struct sem_undo_list {
refcount_t refcnt;
spinlock_t lock;
struct list_head list_proc;
};
struct sem_undo {
struct list_head list_proc;
struct callback_head rcu;
struct sem_undo_list *ulp;
struct list_head list_id;
int semid;
short semadj[0];
};
struct sem {
int semval;
struct pid *sempid;
spinlock_t lock;
struct list_head pending_alter;
struct list_head pending_const;
time64_t sem_otime;
long: 64;
};
struct sem_array {
struct kern_ipc_perm sem_perm;
time64_t sem_ctime;
struct list_head pending_alter;
struct list_head pending_const;
struct list_head list_id;
int sem_nsems;
int complex_count;
unsigned int use_global_lock;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
long: 64;
struct sem sems[0];
};
struct sembuf;
struct sem_queue {
struct list_head list;
struct task_struct *sleeper;
struct sem_undo *undo;
struct pid *pid;
int status;
struct sembuf *sops;
struct sembuf *blocking;
int nsops;
bool alter;
bool dupsop;
};
struct sembuf {
unsigned short sem_num;
short sem_op;
short sem_flg;
};
struct semid64_ds {
struct ipc64_perm sem_perm;
__kernel_long_t sem_otime;
__kernel_ulong_t __unused1;
__kernel_long_t sem_ctime;
__kernel_ulong_t __unused2;
__kernel_ulong_t sem_nsems;
__kernel_ulong_t __unused3;
__kernel_ulong_t __unused4;
};
struct seminfo {
int semmap;
int semmni;
int semmns;
int semmnu;
int semmsl;
int semopm;
int semume;
int semusz;
int semvmx;
int semaem;
};
struct semid_ds {
struct ipc_perm sem_perm;
__kernel_old_time_t sem_otime;
__kernel_old_time_t sem_ctime;
struct sem *sem_base;
struct sem_queue *sem_pending;
struct sem_queue **sem_pending_last;
struct sem_undo *undo;
unsigned short sem_nsems;
};
typedef long mpi_limb_signed_t;
enum devm_ioremap_type {
DEVM_IOREMAP = 0,
DEVM_IOREMAP_UC = 1,
DEVM_IOREMAP_WC = 2,
DEVM_IOREMAP_NP = 3,
};
struct arch_io_reserve_memtype_wc_devres {
resource_size_t start;
resource_size_t size;
};
struct acpi_port_info {
char *name;
u16 start;
u16 end;
u8 osi_dependency;
};
typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **);
struct acpi_repair_info {
char name[4];
acpi_repair_function repair_function;
};
struct iwl_rate_info {
u8 plcp;
u8 plcp_siso;
u8 plcp_mimo2;
u8 plcp_mimo3;
u8 ieee;
u8 prev_ieee;
u8 next_ieee;
u8 prev_rs;
u8 next_rs;
u8 prev_rs_tgg;
u8 next_rs_tgg;
};
enum {
IWL_RATE_SISO_6M_PLCP = 0,
IWL_RATE_SISO_12M_PLCP = 1,
IWL_RATE_SISO_18M_PLCP = 2,
IWL_RATE_SISO_24M_PLCP = 3,
IWL_RATE_SISO_36M_PLCP = 4,
IWL_RATE_SISO_48M_PLCP = 5,
IWL_RATE_SISO_54M_PLCP = 6,
IWL_RATE_SISO_60M_PLCP = 7,
IWL_RATE_MIMO2_6M_PLCP = 8,
IWL_RATE_MIMO2_12M_PLCP = 9,
IWL_RATE_MIMO2_18M_PLCP = 10,
IWL_RATE_MIMO2_24M_PLCP = 11,
IWL_RATE_MIMO2_36M_PLCP = 12,
IWL_RATE_MIMO2_48M_PLCP = 13,
IWL_RATE_MIMO2_54M_PLCP = 14,
IWL_RATE_MIMO2_60M_PLCP = 15,
IWL_RATE_MIMO3_6M_PLCP = 16,
IWL_RATE_MIMO3_12M_PLCP = 17,
IWL_RATE_MIMO3_18M_PLCP = 18,
IWL_RATE_MIMO3_24M_PLCP = 19,
IWL_RATE_MIMO3_36M_PLCP = 20,
IWL_RATE_MIMO3_48M_PLCP = 21,
IWL_RATE_MIMO3_54M_PLCP = 22,
IWL_RATE_MIMO3_60M_PLCP = 23,
IWL_RATE_SISO_INVM_PLCP = 24,
IWL_RATE_MIMO2_INVM_PLCP = 24,
IWL_RATE_MIMO3_INVM_PLCP = 24,
};
struct itco_wdt_platform_data {
char name[32];
unsigned int version;
bool no_reboot_use_pmc;
};
struct dmi_onboard_device_info {
const char *name;
u8 type;
unsigned short i2c_addr;
const char *i2c_type;
};
struct i801_priv {
struct i2c_adapter adapter;
unsigned long smba;
unsigned char original_hstcfg;
unsigned char original_hstcnt;
unsigned char original_slvcmd;
struct pci_dev *pci_dev;
unsigned int features;
struct completion done;
u8 status;
u8 cmd;
bool is_read;
int count;
int len;
u8 *data;
struct platform_device *tco_pdev;
bool acpi_reserved;
};
struct page_frag_1k {
void *va;
u16 offset;
bool pfmemalloc;
};
struct napi_alloc_cache {
struct page_frag_cache page;
struct page_frag_1k page_small;
unsigned int skb_count;
void *skb_cache[64];
};
struct skb_seq_state {
__u32 lower_offset;
__u32 upper_offset;
__u32 frag_idx;
__u32 stepped_offset;
struct sk_buff *root_skb;
struct sk_buff *cur_skb;
__u8 *frag_data;
__u32 frag_off;
};
struct mpls_shim_hdr {
__be32 label_stack_entry;
};
struct skb_free_array {
unsigned int skb_count;
void *skb_array[16];
};
typedef int (*sendmsg_func)(struct sock *, struct msghdr *);
struct ts_ops;
struct ts_state;
struct ts_config {
struct ts_ops *ops;
int flags;
unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *);
void (*finish)(struct ts_config *, struct ts_state *);
};
struct ts_ops {
const char *name;
struct ts_config * (*init)(const void *, unsigned int, gfp_t, int);
unsigned int (*find)(struct ts_config *, struct ts_state *);
void (*destroy)(struct ts_config *);
void * (*get_pattern)(struct ts_config *);
unsigned int (*get_pattern_len)(struct ts_config *);
struct module *owner;
struct list_head list;
};
struct ts_state {
unsigned int offset;
char cb[48];
};
enum ctattr_nat {
CTA_NAT_UNSPEC = 0,
CTA_NAT_V4_MINIP = 1,
CTA_NAT_V4_MAXIP = 2,
CTA_NAT_PROTO = 3,
CTA_NAT_V6_MINIP = 4,
CTA_NAT_V6_MAXIP = 5,
__CTA_NAT_MAX = 6,
};
enum ctattr_protonat {
CTA_PROTONAT_UNSPEC = 0,
CTA_PROTONAT_PORT_MIN = 1,
CTA_PROTONAT_PORT_MAX = 2,
__CTA_PROTONAT_MAX = 3,
};
struct nf_nat_proto_clean {
u8 l3proto;
u8 l4proto;
};
struct nf_nat_lookup_hook_priv {
struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries;
struct callback_head callback_head;
};
struct nf_nat_hooks_net {
struct nf_hook_ops *nat_hook_ops;
unsigned int users;
};
struct nat_net {
struct nf_nat_hooks_net nat_proto_net[11];
};
struct ac6_iter_state {
struct seq_net_private p;
struct net_device *dev;
};
#ifndef BPF_NO_PRESERVE_ACCESS_INDEX
#pragma clang attribute pop
#endif
#endif /* __VMLINUX_H__ */