#ifndef __VMLINUX_H__ #define __VMLINUX_H__ #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) #endif typedef unsigned long long __u64; typedef __u64 u64; typedef _Bool bool; 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; }; typedef struct { int counter; } atomic_t; struct pt_regs; struct perf_event; struct cpu_hw_events; struct event_constraint; struct x86_pmu_quirk; typedef long long __s64; typedef __s64 s64; struct attribute; typedef long __kernel_long_t; typedef __kernel_long_t __kernel_ssize_t; typedef __kernel_ssize_t ssize_t; struct attribute_group; struct perf_event_pmu_context; struct perf_sample_data; struct extra_reg; struct perf_guest_switch_msr; struct pmu; struct x86_hybrid_pmu; typedef unsigned char __u8; typedef __u8 u8; 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; 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; u8 (*get_hybrid_cpu_type)(); }; 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; unsigned long cs; unsigned long flags; unsigned long sp; unsigned long ss; }; struct list_head { struct list_head *next; struct list_head *prev; }; struct rb_node { unsigned long __rb_parent_color; struct rb_node *rb_right; struct rb_node *rb_left; }; struct hlist_node { struct hlist_node *next; struct hlist_node **pprev; }; 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, }; typedef struct { s64 counter; } atomic64_t; typedef atomic64_t atomic_long_t; typedef struct { atomic_long_t a; } local_t; typedef struct { local_t a; } local64_t; typedef unsigned int __u32; typedef int __s32; typedef unsigned short __u16; 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; }; typedef __u16 u16; struct hw_perf_event_extra { u64 config; unsigned int reg; int alloc; int idx; }; 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 arch_hw_breakpoint { unsigned long address; unsigned long mask; u8 len; u8 type; }; struct rhash_head { struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; }; struct rhlist_head { struct rhash_head rhead; struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; }; struct task_struct; 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 qspinlock { union { atomic_t val; struct { u8 locked; u8 pending; }; struct { u16 locked_pending; u16 tail; }; }; }; typedef struct qspinlock arch_spinlock_t; struct raw_spinlock { arch_spinlock_t raw_lock; }; 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; }; struct spinlock { union { struct raw_spinlock rlock; }; }; typedef struct spinlock spinlock_t; struct wait_queue_head { spinlock_t lock; struct list_head head; }; typedef struct wait_queue_head wait_queue_head_t; struct llist_node { struct llist_node *next; }; struct __call_single_node { struct llist_node llist; union { unsigned int u_flags; atomic_t a_flags; }; u16 src; u16 dst; }; struct rcuwait { struct task_struct __attribute__((btf_type_tag("rcu"))) *task; }; struct irq_work { struct __call_single_node node; void (*func)(struct irq_work *); struct rcuwait irqwait; }; struct callback_head { struct callback_head *next; void (*func)(struct callback_head *); }; struct perf_addr_filters_head { struct list_head list; raw_spinlock_t lock; unsigned int nr_file_filters; }; typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); struct ftrace_ops; 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; }; struct perf_event_context; struct perf_buffer; struct fasync_struct; struct perf_addr_filter_range; struct pid_namespace; struct bpf_prog; struct trace_event_call; struct event_filter; 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; 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; void *security; struct list_head sb_list; }; struct module; struct device; struct perf_cpu_pmu_context; struct mm_struct; struct kmem_cache; struct perf_output_handle; struct pmu { struct list_head entry; struct module *module; struct device *dev; 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); }; 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 __s32 s32; struct latch_tree_node { struct rb_node node[2]; }; struct mod_tree_node { struct module *mod; struct latch_tree_node node; }; struct module_layout { void *base; unsigned int size; unsigned int text_size; unsigned int ro_size; unsigned int ro_after_init_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 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 jump_entry; struct trace_eval_map; struct static_call_site; struct klp_modinfo; 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)(); struct module_layout core_layout; struct module_layout init_layout; 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; bool klp; bool klp_alive; struct klp_modinfo *klp_info; 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; long: 32; long: 64; long: 64; }; 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 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 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 unsigned long __kernel_ulong_t; typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_size_t size_t; struct sysfs_ops { ssize_t (*show)(struct kobject *, struct attribute *, char *); ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); }; typedef unsigned short umode_t; struct attribute { const char *name; umode_t mode; }; 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); 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; }; struct rb_root { struct rb_node *rb_node; }; struct rb_root_cached { struct rb_root rb_root; struct rb_node *rb_leftmost; }; typedef __u32 u32; 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; struct rw_semaphore i_mmap_rwsem; unsigned long nrpages; unsigned long writeback_index; const struct address_space_operations *a_ops; unsigned long flags; errseq_t wb_err; spinlock_t private_lock; struct list_head private_list; void *private_data; }; struct hlist_head { struct hlist_node *first; }; typedef u32 __kernel_dev_t; typedef __kernel_dev_t dev_t; typedef __s64 time64_t; struct timespec64 { time64_t tv_sec; long tv_nsec; }; typedef u64 blkcnt_t; struct posix_acl; struct inode_operations; struct super_block; 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; void *i_security; 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; u8 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 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 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 *, struct timespec64 *, 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 hlist_bl_node { struct hlist_bl_node *next; struct hlist_bl_node **pprev; }; struct seqcount { unsigned int sequence; }; typedef struct seqcount seqcount_t; struct seqcount_spinlock { seqcount_t seqcount; }; 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 { __u64 lock_count; struct { spinlock_t lock; int count; }; }; }; struct dentry_operations; 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[32]; 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 list_head d_child; struct list_head d_subdirs; union { struct hlist_node d_alias; struct hlist_bl_node d_in_lookup_hash; struct callback_head d_rcu; } d_u; }; 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 *, const struct inode *); 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 rcu_sync { int gp_state; int gp_count; wait_queue_head_t gp_wait; struct callback_head cb_head; }; 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 sb_writers { int frozen; wait_queue_head_t wait_unfrozen; struct percpu_rw_semaphore rw_sem[3]; }; typedef struct { __u8 b[16]; } uuid_t; typedef unsigned int fmode_t; struct shrink_control; 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; struct list_head list; atomic_long_t *nr_deferred; }; struct list_lru_node; struct list_lru { struct list_lru_node *node; }; 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 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 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; void *s_security; const struct xattr_handler **s_xattr; struct hlist_bl_head s_roots; struct list_head s_mounts; struct block_device *s_bdev; 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; unsigned int s_max_links; fmode_t s_mode; 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; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; 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; }; struct lock_class_key {}; 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; }; struct writeback_control; struct kstatfs; struct seq_file; struct dquot; 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 *); int (*freeze_fs)(struct super_block *); int (*thaw_super)(struct super_block *); 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 *); ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); struct dquot ** (*get_dquots)(struct inode *); long (*nr_cached_objects)(struct super_block *, struct shrink_control *); long (*free_cached_objects)(struct super_block *, struct shrink_control *); }; 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 path { struct vfsmount *mnt; struct dentry *dentry; }; 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; } 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 cred; struct file { union { struct llist_node f_llist; struct callback_head f_rcuhead; unsigned int f_iocb_flags; }; struct path f_path; struct inode *f_inode; const struct file_operations *f_op; spinlock_t f_lock; atomic_long_t f_count; unsigned int f_flags; fmode_t f_mode; struct mutex f_pos_lock; loff_t f_pos; struct fown_struct f_owner; const struct cred *f_cred; struct file_ra_state f_ra; u64 f_version; void *f_security; void *private_data; struct hlist_head *f_ep; struct address_space *f_mapping; errseq_t f_wb_err; errseq_t f_sb_err; }; typedef unsigned int __poll_t; typedef void *fl_owner_t; struct kiocb; struct iov_iter; struct io_comp_batch; struct dir_context; struct poll_table_struct; struct file_lock; struct page; 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)(struct file *, struct dir_context *); 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 *); ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int); 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); int (*setlease)(struct file *, long, struct file_lock **, 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; struct wait_page_queue *ki_waitq; }; struct iovec; struct kvec; struct bio_vec; struct iov_iter { u8 iter_type; bool nofault; bool data_source; bool user_backed; union { size_t iov_offset; int last_offset; }; size_t count; union { const struct iovec *iov; const struct kvec *kvec; const struct bio_vec *bvec; struct xarray *xarray; struct pipe_inode_info *pipe; void __attribute__((btf_type_tag("user"))) *ubuf; }; union { unsigned long nr_segs; struct { unsigned int head; unsigned int start_head; }; loff_t xarray_start; }; }; struct iovec { void __attribute__((btf_type_tag("user"))) *iov_base; __kernel_size_t iov_len; }; struct kvec { void *iov_base; size_t iov_len; }; struct bio_vec { struct page *bv_page; unsigned int bv_len; unsigned int bv_offset; }; typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); struct dir_context { filldir_t actor; loff_t pos; }; typedef unsigned long vm_flags_t; typedef unsigned long pgprotval_t; struct pgprot { pgprotval_t pgprot; }; typedef struct pgprot pgprot_t; struct userfaultfd_ctx; struct vm_userfaultfd_ctx { struct userfaultfd_ctx *ctx; }; struct anon_vma; struct vm_operations_struct; struct vm_area_struct { unsigned long vm_start; unsigned long vm_end; struct mm_struct *vm_mm; pgprot_t vm_page_prot; union { const vm_flags_t vm_flags; vm_flags_t __vm_flags; }; 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 vm_userfaultfd_ctx vm_userfaultfd_ctx; }; typedef struct {} lockdep_map_p; struct maple_tree { union { spinlock_t ma_lock; lockdep_map_p ma_external_lock; }; void __attribute__((btf_type_tag("rcu"))) *ma_root; unsigned int ma_flags; }; 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 short 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 linux_binfmt; struct kioctx_table; struct mmu_notifier_subscriptions; struct mm_struct { struct { 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 mmap_compat_base; unsigned long mmap_compat_legacy_base; unsigned long task_size; pgd_t *pgd; atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; raw_spinlock_t cid_lock; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; struct rw_semaphore mmap_lock; struct list_head mmlist; 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[52]; 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 user_namespace *user_ns; struct file __attribute__((btf_type_tag("rcu"))) *exe_file; struct mmu_notifier_subscriptions *notifier_subscriptions; 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; }; unsigned long cpu_bitmap[0]; }; 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 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 proc_ns_operations; struct ns_common { atomic_long_t stashed; const struct proc_ns_operations *ops; unsigned int inum; refcount_t count; }; 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 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 key; struct ucounts; 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 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; struct ctl_table *child; 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 swait_queue_head { raw_spinlock_t lock; struct list_head task_list; }; struct completion { unsigned int done; struct swait_queue_head 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]; }; typedef unsigned int vm_fault_t; enum page_entry_size { PE_SIZE_PTE = 0, PE_SIZE_PMD = 1, PE_SIZE_PUD = 2, }; struct vm_fault; 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 *, enum page_entry_size); 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 *); struct page * (*find_special_page)(struct vm_area_struct *, unsigned long); }; 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, }; 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; }; 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; union { unsigned long dma_addr_upper; atomic_long_t pp_frag_count; }; }; struct { unsigned long compound_head; }; struct { unsigned long _pt_pad_1; pgtable_t pmd_huge_pte; unsigned long _pt_pad_2; union { struct mm_struct *pt_mm; atomic_t pt_frag_refcount; }; spinlock_t ptl; }; 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; long: 64; }; 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; }; struct percpu_ref_data; struct percpu_ref { unsigned long percpu_count_ptr; struct percpu_ref_data *data; }; 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; }; 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); }; struct upid { int nr; struct pid_namespace *ns; }; struct pid { refcount_t count; unsigned int level; spinlock_t lock; struct hlist_head tasks[4]; struct hlist_head inodes; wait_queue_head_t wait_pidfd; struct callback_head rcu; struct upid numbers[1]; }; struct idr { struct xarray idr_rt; unsigned int idr_base; unsigned int idr_next; }; struct fs_pin; 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 load_weight { unsigned long weight; u32 inv_weight; }; struct util_est { unsigned int enqueued; unsigned int ewma; }; 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; struct util_est util_est; }; struct cfs_rq; struct sched_entity { struct load_weight load; struct rb_node run_node; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; u64 vruntime; u64 prev_sum_exec_runtime; 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; long: 64; long: 64; 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; }; 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; struct hrtimer dl_timer; struct hrtimer inactive_timer; struct sched_dl_entity *pi_se; }; struct sched_statistics { u64 wait_start; u64 wait_max; u64 wait_count; u64 wait_sum; u64 iowait_count; u64 iowait_sum; u64 sleep_start; u64 sleep_max; s64 sum_sleep_runtime; u64 block_start; u64 block_max; s64 sum_block_runtime; u64 exec_max; u64 slice_max; u64 nr_migrations_cold; u64 nr_failed_migrations_affine; u64 nr_failed_migrations_running; u64 nr_failed_migrations_hot; u64 nr_forced_migrations; u64 nr_wakeups; u64 nr_wakeups_sync; u64 nr_wakeups_migrate; u64 nr_wakeups_local; u64 nr_wakeups_remote; u64 nr_wakeups_affine; u64 nr_wakeups_affine_attempts; u64 nr_wakeups_passive; u64 nr_wakeups_idle; long: 64; long: 64; long: 64; long: 64; }; struct cpumask { unsigned long bits[1]; }; 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; }; 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; 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 task_io_accounting { u64 rchar; u64 wchar; u64 syscr; u64 syscw; u64 read_bytes; u64 write_bytes; u64 cancelled_write_bytes; }; 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 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: 60; 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 nameidata; struct fs_struct; struct files_struct; struct io_uring_task; struct nsproxy; struct signal_struct; struct sighand_struct; struct audit_context; struct rt_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 compat_robust_list_head; struct futex_pi_state; struct rseq; struct task_delay_info; struct ftrace_ret_stack; 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; 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; const struct sched_class *sched_class; struct task_group *sched_task_group; 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 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; 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; int: 29; unsigned int sched_remote_wakeup: 1; unsigned int in_execve: 1; unsigned int in_iowait: 1; unsigned int restore_sigmask: 1; unsigned int no_cgroup_migration: 1; unsigned int frozen: 1; unsigned int use_memdelay: 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; unsigned long stack_canary; 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_group; 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; 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; 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 audit_context *audit_context; kuid_t loginuid; unsigned int sessionid; 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; void *journal_info; struct bio_list *bio_list; struct blk_plug *plug; struct reclaim_state *reclaim_state; struct backing_dev_info *backing_dev_info; struct io_context *io_context; struct capture_control *capture_control; unsigned long ptrace_message; kernel_siginfo_t *last_siginfo; struct task_io_accounting ioac; u64 acct_rss_mem1; u64 acct_vm_mem1; u64 acct_timexpd; 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 compat_robust_list_head __attribute__((btf_type_tag("user"))) *compat_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; unsigned long preempt_disable_ip; struct rseq __attribute__((btf_type_tag("user"))) *rseq; u32 rseq_len; u32 rseq_sig; unsigned long rseq_event_mask; int mm_cid; int mm_cid_active; 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 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; int patch_state; void *security; struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *bpf_storage; struct bpf_run_ctx *bpf_ctx; void __attribute__((btf_type_tag("user"))) *mce_vaddr; __u64 mce_kflags; u64 mce_addr; __u64 mce_ripv: 1; __u64 mce_whole_page: 1; __u64 __mce_reserved: 62; struct callback_head mce_kill_me; int mce_count; struct llist_head kretprobe_instances; struct llist_head rethooks; struct callback_head l1d_flush_kill; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct thread_struct thread; }; struct seqcount_raw_spinlock { seqcount_t seqcount; }; 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; }; 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 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 rq; 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 (*check_preempt_curr)(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 *); void (*rq_offline)(struct rq *); 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 (*switched_from)(struct rq *, struct task_struct *); void (*switched_to)(struct rq *, struct task_struct *); 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; }; struct kernel_cap_struct { __u32 cap[2]; }; typedef struct kernel_cap_struct kernel_cap_t; struct user_struct; struct group_info; struct cred { atomic_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; void *security; 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 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 group_info { atomic_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 { atomic_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 cgroup_namespace { struct ns_common ns; struct user_namespace *user_ns; struct ucounts *ucounts; struct css_set *root_cset; }; struct cgroup_subsys_state; struct cgroup; struct css_set { struct cgroup_subsys_state *subsys[13]; 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[13]; 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 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 cgroup_file { struct kernfs_node *kn; unsigned long notified_at; struct timer_list notify_timer; }; struct task_cputime { u64 stime; u64 utime; unsigned long long sum_exec_runtime; }; struct cgroup_base_stat { struct task_cputime cputime; }; struct bpf_prog_array; struct cgroup_bpf { struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[33]; struct hlist_head progs[33]; u8 flags[33]; 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[0]; 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[13]; struct cgroup_root *root; struct list_head cset_links; struct list_head e_csets[13]; 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; 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]; }; struct kernfs_root; 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_ops; 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 kernfs_node *parent; const char *name; struct rb_node rb; const void *ns; unsigned int hash; union { struct kernfs_elem_dir dir; struct kernfs_elem_symlink symlink; struct kernfs_elem_attr attr; }; void *priv; u64 id; unsigned short flags; umode_t mode; struct kernfs_iattrs *iattr; }; struct kernfs_open_file; 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 *); }; 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_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 cgroup_root { struct kernfs_root *kf_root; unsigned int subsys_mask; int hierarchy_id; struct cgroup cgrp; struct cgroup *cgrp_ancestor_storage; atomic_t nr_cgrps; struct list_head root_list; unsigned int flags; char release_agent_path[4096]; char name[64]; }; 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 *updated_children; struct cgroup *updated_next; }; struct psi_group {}; 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 bpf_local_storage_data; struct bpf_local_storage_map; 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 cgroup_taskset; struct cftype; 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 (*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 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 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 tty_audit_buf; 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; int 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]; 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; unsigned int audit_tty; struct tty_audit_buf *tty_audit_buf; 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]; int: 32; __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; }; 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 io_context { atomic_long_t refcount; atomic_t active_ref; unsigned short ioprio; }; 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; }; typedef u32 compat_uptr_t; struct compat_robust_list { compat_uptr_t next; }; typedef s32 compat_long_t; struct compat_robust_list_head { struct compat_robust_list list; compat_long_t futex_offset; compat_uptr_t 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 math_emu_info { long ___orig_eip; struct pt_regs *regs; }; typedef __kernel_uid32_t projid_t; typedef struct { projid_t val; } kprojid_t; 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 mem_cgroup; struct shrink_control { gfp_t gfp_mask; int nid; unsigned long nr_to_scan; unsigned long nr_scanned; struct mem_cgroup *memcg; }; 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 *); }; 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 iomap; struct fid; 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 { int val[2]; } __kernel_fsid_t; 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; __kernel_fsid_t fsid; union { fsnotify_connp_t *obj; struct fsnotify_mark_connector *destroy_next; }; struct hlist_head list; }; 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; }; 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; }; typedef u64 sector_t; enum migrate_mode { MIGRATE_ASYNC = 0, MIGRATE_SYNC_LIGHT = 1, MIGRATE_SYNC = 2, MIGRATE_SYNC_NO_COPY = 3, }; struct folio; 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_page)(struct address_space *, struct page *); 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 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; void *private; atomic_t _mapcount; atomic_t _refcount; }; struct page page; }; union { struct { unsigned long _flags_1; unsigned long _head_1; unsigned char _folio_dtor; unsigned char _folio_order; 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; }; }; 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 *); }; 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; }; typedef signed char __s8; typedef __s8 s8; 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 exception_table_entry { int insn; int fixup; int data; }; struct orc_entry { s16 sp_offset; s16 bp_offset; unsigned int sp_reg: 4; unsigned int bp_reg: 4; unsigned int type: 2; unsigned int end: 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 delayed_work { struct work_struct work; struct timer_list timer; struct workqueue_struct *wq; int cpu; }; struct lockdep_map {}; struct srcu_node; struct srcu_data; struct srcu_struct { struct srcu_node *node; struct srcu_node *level[3]; int srcu_size_state; struct mutex srcu_cb_mutex; spinlock_t lock; struct mutex srcu_gp_mutex; unsigned int srcu_idx; 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; struct srcu_data __attribute__((btf_type_tag("percpu"))) *sda; 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 lockdep_map dep_map; }; 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 rcu_segcblist { struct callback_head *head; struct callback_head **tails[4]; unsigned long gp_seq[4]; long len; long seglen[4]; u8 flags; }; struct srcu_data { atomic_long_t srcu_lock_count[2]; atomic_long_t srcu_unlock_count[2]; int srcu_nmi_safety; long: 32; 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; long: 64; }; struct tracepoint; struct bpf_raw_event_map { struct tracepoint *tp; void *bpf_func; u32 num_args; u32 writable_size; long: 64; }; 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; int (*regfunc)(); void (*unregfunc)(); struct tracepoint_func __attribute__((btf_type_tag("rcu"))) *funcs; }; struct jump_entry { s32 code; s32 target; long key; }; struct static_call_mod; struct static_call_key { void *func; union { unsigned long type; struct static_call_mod *mods; struct static_call_site *sites; }; }; struct static_call_mod { struct static_call_mod *next; struct module *mod; struct static_call_site *sites; }; struct static_call_site { s32 addr; s32 key; }; struct tracepoint_func { void *func; void *data; int prio; }; typedef __u64 Elf64_Off; 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 struct elf64_hdr Elf64_Ehdr; struct elf64_shdr; typedef struct elf64_shdr Elf64_Shdr; struct klp_modinfo { Elf64_Ehdr hdr; Elf64_Shdr *sechdrs; char *secstrings; unsigned int symndx; }; 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; }; struct error_injection_entry { unsigned long addr; int etype; }; 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 dev_pm_qos; struct dev_pm_info { pm_message_t power_state; unsigned int can_wakeup: 1; unsigned int 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; unsigned int must_resume: 1; unsigned int 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; unsigned int idle_notification: 1; unsigned int request_pending: 1; unsigned int deferred_resume: 1; unsigned int needs_force_resume: 1; unsigned int runtime_auto: 1; bool ignore_children: 1; unsigned int no_callbacks: 1; unsigned int irq_safe: 1; unsigned int use_autosuspend: 1; unsigned int timer_autosuspends: 1; unsigned int 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 {}; 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 dma_map_ops; struct bus_dma_region; struct device_dma_parameters; struct io_tlb_mem; struct device_node; struct fwnode_handle; struct class; struct iommu_group; struct dev_iommu; 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; 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; const struct dma_map_ops *dma_ops; 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; dev_t devt; u32 id; spinlock_t devres_lock; struct list_head devres_head; 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 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 iommu_ops; struct bus_type { const char *name; const char *dev_name; struct device *dev_root; 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; const struct iommu_ops *iommu_ops; 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; 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; }; enum iommu_cap { IOMMU_CAP_CACHE_COHERENCY = 0, IOMMU_CAP_NOEXEC = 1, IOMMU_CAP_PRE_BOOT_PROTECTION = 2, IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, }; enum iommu_dev_features { IOMMU_DEV_FEAT_SVA = 0, IOMMU_DEV_FEAT_IOPF = 1, }; typedef unsigned int ioasid_t; struct iommu_domain; struct iommu_device; struct of_phandle_args; struct iommu_fault_event; struct iommu_page_response; struct iommu_domain_ops; struct iommu_ops { bool (*capable)(struct device *, enum iommu_cap); struct iommu_domain * (*domain_alloc)(unsigned int); struct iommu_device * (*probe_device)(struct device *); void (*release_device)(struct device *); void (*probe_finalize)(struct device *); void (*set_platform_dma_ops)(struct device *); struct iommu_group * (*device_group)(struct device *); void (*get_resv_regions)(struct device *, struct list_head *); int (*of_xlate)(struct device *, struct of_phandle_args *); bool (*is_attach_deferred)(struct device *); int (*dev_enable_feat)(struct device *, enum iommu_dev_features); int (*dev_disable_feat)(struct device *, enum iommu_dev_features); int (*page_response)(struct device *, struct iommu_fault_event *, struct iommu_page_response *); int (*def_domain_type)(struct device *); void (*remove_dev_pasid)(struct device *, ioasid_t); const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; }; 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; }; 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 *); }; typedef u64 dma_addr_t; enum dma_data_direction { DMA_BIDIRECTIONAL = 0, DMA_TO_DEVICE = 1, DMA_FROM_DEVICE = 2, DMA_NONE = 3, }; typedef u64 phys_addr_t; struct sg_table; struct scatterlist; 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 *); }; struct bus_dma_region { phys_addr_t cpu_start; dma_addr_t dma_start; u64 size; u64 offset; }; struct device_dma_parameters { unsigned int max_segment_size; unsigned int min_align_mask; unsigned long segment_boundary_mask; }; struct subsys_private; struct class { const char *name; struct module *owner; const struct attribute_group **class_groups; const struct attribute_group **dev_groups; struct kobject *dev_kobj; int (*dev_uevent)(const struct device *, struct kobj_uevent_env *); char * (*devnode)(const struct device *, umode_t *); void (*class_release)(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; struct subsys_private *p; }; 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; }; 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; 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; 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; 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 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 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 perf_guest_switch_msr { unsigned int msr; u64 host; u64 guest; }; 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]; 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]; }; 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; }; struct x86_hybrid_pmu { struct pmu pmu; const char *name; u8 cpu_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]; }; 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; }; 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 { false = 0, true = 1, }; 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 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 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 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, }; typedef unsigned long uintptr_t; struct obs_kernel_param { const char *str; int (*setup_func)(char *); int early; }; 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, }; enum migratetype { MIGRATE_UNMOVABLE = 0, MIGRATE_MOVABLE = 1, MIGRATE_RECLAIMABLE = 2, MIGRATE_PCPTYPES = 3, MIGRATE_HIGHATOMIC = 3, MIGRATE_TYPES = 4, }; 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 pageflags { PG_locked = 0, PG_referenced = 1, PG_uptodate = 2, PG_dirty = 3, PG_lru = 4, PG_active = 5, PG_workingset = 6, PG_waiters = 7, PG_error = 8, PG_slab = 9, PG_owner_priv_1 = 10, PG_arch_1 = 11, PG_reserved = 12, PG_private = 13, PG_private_2 = 14, PG_writeback = 15, PG_head = 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 = 10, PG_swapcache = 10, PG_fscache = 14, PG_pinned = 10, PG_savepinned = 3, PG_foreign = 10, PG_xen_remapped = 10, PG_slob_free = 13, PG_isolated = 18, PG_reported = 2, }; enum compound_dtor_id { NULL_COMPOUND_DTOR = 0, COMPOUND_PAGE_DTOR = 1, HUGETLB_PAGE_DTOR = 2, NR_COMPOUND_DTORS = 3, }; struct elf64_note { Elf64_Word n_namesz; Elf64_Word n_descsz; Elf64_Word n_type; }; 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 btf_id_set8; struct btf_kfunc_id_set { struct module *owner; struct btf_id_set8 *set; }; struct fc_log; struct p_log { const char *prefix; struct fc_log *log; }; 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, }; 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; unsigned int lsm_flags; enum fs_context_purpose purpose: 8; enum fs_context_phase phase: 8; bool need_free: 1; bool global: 1; bool oldapi: 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 *); }; 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, }; struct filename; 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 audit_names; struct filename { const char *name; const char __attribute__((btf_type_tag("user"))) *uptr; int refcnt; struct audit_names *aname; const char iname[0]; }; 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; }; }; enum writeback_sync_modes { WB_SYNC_NONE = 0, WB_SYNC_ALL = 1, }; 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_fscache_wb: 1; unsigned int no_cgroup_owner: 1; unsigned int punt_to_cgroup: 1; struct swap_iocb **swap_plug; }; struct disk_stats; struct request_queue; struct partition_meta_info; struct block_device { sector_t bd_start_sect; sector_t bd_nr_sectors; struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; unsigned long bd_stamp; bool bd_read_only; dev_t bd_dev; atomic_t bd_openers; struct inode *bd_inode; struct super_block *bd_super; void *bd_claiming; struct device bd_device; void *bd_holder; int bd_holders; bool bd_write_holder; struct kobject *bd_holder_dir; u8 bd_partno; spinlock_t bd_size_lock; struct gendisk *bd_disk; struct request_queue *bd_queue; int bd_fsfreeze_count; struct mutex bd_fsfreeze_mutex; struct super_block *bd_fsfreeze_sb; struct partition_meta_info *bd_meta_info; }; 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 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; unsigned long dirty_sleep; struct list_head bdi_node; }; 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; struct bdi_writeback wb; struct list_head wb_list; 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 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, }; 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, __MAX_BPF_ATTACH_TYPE = 44, }; 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; 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 { 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 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 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 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 func_proto_unreliable; bool sleepable; bool tail_call_reachable; bool xdp_has_frags; 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]; void *security; 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; 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_BUF = 18, PTR_TO_FUNC = 19, CONST_PTR_TO_DYNPTR = 20, __BPF_REG_TYPE_MAX = 21, 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; 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 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; u64 selector; struct module *mod; }; struct bpf_tramp_image { void *image; 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 = 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, }; struct bpf_map_ops; struct btf_record; struct btf_field_offs; struct bpf_map { const struct bpf_map_ops *ops; struct bpf_map *inner_map_meta; void *security; 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; char name[16]; struct btf_field_offs *field_offs; long: 64; long: 64; atomic64_t refcnt; atomic64_t usercnt; struct work_struct work; struct mutex freeze_mutex; 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; long: 16; long: 64; long: 64; long: 64; }; typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); union bpf_attr; 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 *); int (*map_update_elem)(struct bpf_map *, void *, void *, u64); int (*map_delete_elem)(struct bpf_map *, void *); int (*map_push_elem)(struct bpf_map *, void *, u64); int (*map_pop_elem)(struct bpf_map *, void *); int (*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)(void *); 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 *); 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 *); int (*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 *); int (*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; }; 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; }; struct { __u64 pathname; __u32 bpf_fd; __u32 file_flags; }; struct { __u32 target_fd; __u32 attach_bpf_fd; __u32 attach_type; __u32 attach_flags; __u32 replace_bpf_fd; }; 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 { __u32 target_fd; __u32 attach_type; __u32 query_flags; __u32 attach_flags; __u64 prog_ids; __u32 prog_cnt; __u64 prog_attach_flags; } query; struct { __u64 name; __u32 prog_fd; } raw_tracepoint; struct { __u64 btf; __u64 btf_log_buf; __u32 btf_size; __u32 btf_log_size; __u32 btf_log_level; }; 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 { __u32 prog_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; }; } link_create; struct { __u32 link_fd; __u32 new_prog_fd; __u32 flags; __u32 old_prog_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 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 { 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 *base_btf; u32 start_id; u32 start_str_off; char name[56]; bool kernel_btf; }; 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 = 12, BPF_LIST_HEAD = 16, BPF_LIST_NODE = 32, BPF_RB_ROOT = 64, BPF_RB_NODE = 128, BPF_GRAPH_NODE_OR_ROOT = 240, }; 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; 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; struct btf_field fields[0]; }; struct btf_field_offs { u32 cnt; u32 field_off[10]; u8 field_sz[10]; }; 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 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; }; struct bpf_line_info { __u32 insn_off; __u32 file_name_off; __u32 line_off; __u32 line_col; }; 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 bpf_run_ctx {}; struct btf_id_set8 { u32 cnt; u32 flags; struct { u32 id; u32 flags; } pairs[0]; }; 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, }; typedef u64 uint64_t; struct kernel_cpustat { u64 cpustat[10]; }; enum print_line_t { TRACE_TYPE_PARTIAL_LINE = 0, TRACE_TYPE_HANDLED = 1, TRACE_TYPE_UNHANDLED = 2, TRACE_TYPE_NO_CONSUME = 3, }; struct trace_array; struct trace_iterator; 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 trace_buffer; 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; }; typedef struct cpumask cpumask_var_t[1]; struct trace_pid_list; struct trace_event_file; 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[451]; struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[451]; 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; struct list_head err_log; struct dentry *dir; struct dentry *options; struct dentry *percpu_dir; struct dentry *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; 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; }; 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; }; 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 trace_event_functions; struct trace_event { struct hlist_node node; int type; struct trace_event_functions *funcs; }; struct trace_event_class; 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 *); }; }; 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; loff_t readpos; }; struct trace_seq { char buffer[4096]; struct seq_buf seq; int full; }; 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; long wait_index; struct trace_seq tmp_seq; cpumask_var_t started; 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 prog_entry; struct event_filter { struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; char *filter_string; }; struct filter_pred; struct prog_entry { int target; int when_to_branch; struct filter_pred *pred; }; 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 trace_eval_map { const char *system; const char *eval_string; unsigned long eval_value; }; 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; }; union upper_chunk { union upper_chunk *next; union lower_chunk *data[256]; }; union lower_chunk { union lower_chunk *next; unsigned long data[256]; }; 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 dentry *dir; struct trace_array *tr; struct trace_subsystem_dir *system; struct list_head triggers; unsigned long flags; atomic_t sm_ref; atomic_t tm_ref; }; struct event_subsystem; struct trace_subsystem_dir { struct list_head list; struct event_subsystem *subsystem; struct trace_array *tr; struct dentry *entry; int ref_count; int nr_events; }; struct event_subsystem { struct list_head list; const char *name; struct event_filter *filter; int ref_count; }; struct trace_option_dentry; struct trace_options { struct tracer *tracer; struct trace_option_dentry *topts; }; struct tracer_opt; struct trace_option_dentry { struct tracer_opt *opt; struct tracer_flags *flags; struct trace_array *tr; struct dentry *entry; }; struct tracer_opt { const char *name; u32 bit; }; struct tracer_flags { u32 val; struct tracer_opt *opts; struct tracer *trace; }; struct trace_func_repeats { unsigned long ip; unsigned long parent_ip; unsigned long count; u64 ts_last_call; }; enum { TRACE_NOP_OPT_ACCEPT = 1, TRACE_NOP_OPT_REFUSE = 2, }; 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 kmalloc_cache_type { KMALLOC_NORMAL = 0, KMALLOC_CGROUP = 0, KMALLOC_RECLAIM = 1, KMALLOC_DMA = 2, NR_KMALLOC_TYPES = 3, }; struct freelist_node { atomic_t refs; struct freelist_node *next; }; struct rethook; struct rethook_node { union { struct freelist_node freelist; struct callback_head rcu; }; struct llist_node llist; struct rethook *rethook; unsigned long ret_addr; unsigned long frame; }; typedef void (*rethook_handler_t)(struct rethook_node *, void *, struct pt_regs *); struct freelist_head { struct freelist_node *head; }; struct rethook { void *data; rethook_handler_t handler; struct freelist_head pool; refcount_t ref; struct callback_head rcu; }; typedef void (*rcu_callback_t)(struct callback_head *); 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]; }; }; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct bpf_array_aux { struct list_head poke_progs; struct bpf_map *map; struct mutex poke_mutex; struct work_struct work; }; struct fd { struct file *file; unsigned int flags; }; 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 *); }; 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, MAX_BPF_LINK_TYPE = 10, }; 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 page_pool_params { unsigned int flags; unsigned int order; unsigned int pool_size; int nid; struct device *dev; enum dma_data_direction dma_dir; unsigned int max_len; unsigned int offset; void (*init_callback)(struct page *, void *); void *init_arg; }; 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: 32; 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_recycle_stats; struct page_pool { struct page_pool_params p; struct delayed_work release_dw; void (*disconnect)(void *); unsigned long defer_start; unsigned long defer_warn; u32 pages_state_hold_cnt; unsigned int frag_offset; struct page *frag_page; long frag_users; struct page_pool_alloc_stats alloc_stats; u32 xdp_mem_id; long: 32; 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; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct page_pool_recycle_stats { u64 cached; u64 cache_full; u64 ring; u64 ring_full; u64 released_refcnt; }; struct ref_tracker_dir {}; 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; 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 mptcp_mib; struct icmp_mib; struct icmpmsg_mib; struct icmpv6_mib; struct icmpv6msg_mib; struct proc_dir_entry; 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 mptcp_mib __attribute__((btf_type_tag("percpu"))) *mptcp_statistics; 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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct inet_hashinfo *hashinfo; int sysctl_max_tw_buckets; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct local_ports { seqlock_t lock; int range[2]; 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 fib_rules_ops; struct fib_table; struct inet_peer_base; struct fqdir; struct tcp_congestion_ops; struct tcp_fastopen_context; struct mr_table; struct fib_notifier_ops; struct netns_ipv4 { 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; struct fib_rules_ops *rules_ops; struct fib_table __attribute__((btf_type_tag("rcu"))) *fib_main; struct fib_table __attribute__((btf_type_tag("rcu"))) *fib_default; unsigned int fib_rules_require_fldissect; bool fib_has_custom_rules; bool fib_has_custom_local_routes; bool fib_offload_disabled; 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_use_pmtu; u8 sysctl_ip_fwd_update_priority; u8 sysctl_ip_nonlocal_bind; u8 sysctl_ip_autobind_reuse; u8 sysctl_ip_dynaddr; u8 sysctl_ip_early_demux; u8 sysctl_tcp_early_demux; 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_min_snd_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; int sysctl_tcp_reordering; u8 sysctl_tcp_retries1; u8 sysctl_tcp_retries2; u8 sysctl_tcp_orphan_retries; u8 sysctl_tcp_tw_reuse; int sysctl_tcp_fin_timeout; unsigned int sysctl_tcp_notsent_lowat; u8 sysctl_tcp_sack; u8 sysctl_tcp_window_scaling; u8 sysctl_tcp_timestamps; u8 sysctl_tcp_early_retrans; 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_moderate_rcvbuf; u8 sysctl_tcp_tso_win_divisor; u8 sysctl_tcp_workaround_signed_windows; int sysctl_tcp_limit_output_bytes; int sysctl_tcp_challenge_ack_limit; int sysctl_tcp_min_rtt_wlen; u8 sysctl_tcp_min_tso_segs; u8 sysctl_tcp_tso_rtt_log; u8 sysctl_tcp_autocorking; u8 sysctl_tcp_reflect_tos; int sysctl_tcp_invalid_ratelimit; int sysctl_tcp_pacing_ss_ratio; int sysctl_tcp_pacing_ca_ratio; int sysctl_tcp_wmem[3]; int sysctl_tcp_rmem[3]; 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_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 mr_table *mrt; u32 sysctl_fib_multipath_hash_fields; u8 sysctl_fib_multipath_use_neigh; u8 sysctl_fib_multipath_hash_policy; 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 sk_buff; struct neighbour; 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 *, int); 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; }; 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; bool skip_notify_on_dev_down; u8 fib_notify_on_flag_change; }; 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; }; struct nf_logger; struct nf_hook_entries; 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]; unsigned int defrag_ipv4_users; unsigned int defrag_ipv6_users; }; 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_dccp_net { u8 dccp_loose; unsigned int dccp_timeout[10]; }; struct nf_sctp_net { unsigned int timeouts[10]; }; 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 nf_dccp_net dccp; struct nf_sctp_net sctp; }; struct ip_conntrack_stat; struct nf_ct_event_notifier; struct netns_ct { bool ecache_dwork_pending; 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; unsigned int labels_used; }; 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 xfrm_policy_hash { struct hlist_head __attribute__((btf_type_tag("rcu"))) *table; unsigned int hmask; u8 dbits4; u8 sbits4; u8 dbits6; u8 sbits6; }; struct xfrm_policy_hthresh { struct work_struct work; seqlock_t lock; u8 lbits4; u8 rbits4; u8 lbits6; u8 rbits6; }; struct netns_xfrm { struct list_head state_all; struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_bydst; struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_bysrc; struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_byspi; struct hlist_head __attribute__((btf_type_tag("rcu"))) *state_byseq; unsigned int state_hmask; unsigned int state_num; struct work_struct state_hash_work; struct list_head policy_all; struct hlist_head *policy_byidx; unsigned int policy_idx_hmask; struct hlist_head policy_inexact[3]; struct xfrm_policy_hash policy_bydst[3]; unsigned int policy_count[6]; struct work_struct policy_hash_work; struct xfrm_policy_hthresh policy_hthresh; struct list_head inexact_bins; struct sock *nlsk; struct sock *nlsk_stash; u32 sysctl_aevent_etime; u32 sysctl_aevent_rseqth; int sysctl_larval_drop; u32 sysctl_acq_expires; u8 policy_default[3]; struct ctl_table_header *sysctl_hdr; long: 64; long: 64; long: 64; struct dst_ops xfrm4_dst_ops; struct dst_ops xfrm6_dst_ops; spinlock_t xfrm_state_lock; seqcount_spinlock_t xfrm_state_hash_generation; seqcount_spinlock_t xfrm_policy_hash_generation; spinlock_t xfrm_policy_lock; struct mutex xfrm_cfg_mutex; long: 64; long: 64; }; struct mpls_route; struct netns_mpls { int ip_ttl_propagate; int default_ttl; size_t platform_labels; struct mpls_route __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *platform_label; struct ctl_table_header *ctl; }; struct netns_xdp { struct mutex lock; struct hlist_head list; }; struct uevent_sock; struct net_generic; struct net { refcount_t passive; spinlock_t rules_mod_lock; atomic_t dev_unreg_count; unsigned int dev_base_seq; int 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 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; struct netns_ipv4 ipv4; struct netns_ipv6 ipv6; struct netns_nf nf; struct netns_ct ct; struct net_generic __attribute__((btf_type_tag("rcu"))) *gen; struct netns_bpf bpf; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct netns_xfrm xfrm; u64 net_cookie; struct netns_mpls mpls; struct netns_xdp xdp; struct sock *diag_nlsk; long: 64; long: 64; long: 64; 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 pcpu_dstats; typedef u32 xdp_features_t; typedef u64 netdev_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; }; 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; typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); typedef struct { struct net *net; } possible_net_t; enum netdev_ml_priv_type { ML_PRIV_NONE = 0, ML_PRIV_CAN = 1, }; struct netdev_tc_txq { u16 count; u16 offset; }; struct sfp_bus; struct bpf_xdp_link; struct bpf_xdp_entity { struct bpf_prog *prog; struct bpf_xdp_link *link; }; typedef struct {} netdevice_tracker; struct netdev_name_node; struct dev_ifalias; struct net_device_ops; struct xdp_metadata_ops; struct net_device_core_stats; struct ethtool_ops; struct ndisc_ops; struct header_ops; struct in_device; struct inet6_dev; struct wireless_dev; struct mpls_dev; struct netdev_rx_queue; struct mini_Qdisc; struct netdev_queue; struct cpu_rmap; struct Qdisc; struct xdp_dev_bulk_queue; struct xps_dev_maps; struct netpoll_info; struct pcpu_lstats; struct pcpu_sw_netstats; struct rtnl_link_ops; struct netprio_map; struct phy_device; struct udp_tunnel_nic_info; struct udp_tunnel_nic; struct rtnl_hw_stats64; struct devlink_port; struct net_device { 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; unsigned long state; 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 list_head ptype_specific; struct { struct list_head upper; struct list_head lower; } adj_list; unsigned int flags; xdp_features_t xdp_features; unsigned long long priv_flags; const struct net_device_ops *netdev_ops; const struct xdp_metadata_ops *xdp_metadata_ops; int ifindex; unsigned short gflags; unsigned short hard_header_len; unsigned int mtu; unsigned short needed_headroom; unsigned short needed_tailroom; netdev_features_t features; 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; netdev_features_t gso_partial_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; const struct header_ops *header_ops; unsigned char 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; unsigned int promiscuity; unsigned int allmulti; bool uc_promisc; struct in_device __attribute__((btf_type_tag("rcu"))) *ip_ptr; struct inet6_dev __attribute__((btf_type_tag("rcu"))) *ip6_ptr; struct wireless_dev *ieee80211_ptr; struct mpls_dev __attribute__((btf_type_tag("rcu"))) *mpls_ptr; const unsigned char *dev_addr; struct netdev_rx_queue *_rx; unsigned int num_rx_queues; unsigned int real_num_rx_queues; struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; 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; struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq_ingress; 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; struct netdev_queue *_tx; unsigned int num_tx_queues; unsigned int real_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 xps_dev_maps __attribute__((btf_type_tag("rcu"))) *xps_maps[2]; struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq_egress; struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress; struct hlist_head qdisc_hash[16]; 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; enum { NETREG_UNINITIALIZED = 0, NETREG_REGISTERED = 1, NETREG_UNREGISTERING = 2, NETREG_UNREGISTERED = 3, NETREG_RELEASED = 4, NETREG_DUMMY = 5, } reg_state: 8; 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 *); struct netpoll_info __attribute__((btf_type_tag("rcu"))) *npinfo; possible_net_t nd_net; void *ml_priv; enum netdev_ml_priv_type ml_priv_type; 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; }; 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; unsigned int gso_max_size; unsigned int tso_max_size; u16 gso_max_segs; u16 tso_max_segs; unsigned int gso_ipv4_max_size; s16 num_tc; struct netdev_tc_txq tc_to_txq[16]; u8 prio_tc_map[16]; struct netprio_map __attribute__((btf_type_tag("rcu"))) *priomap; 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; long: 64; long: 64; }; struct dev_ifalias { struct callback_head rcuhead; char ifalias[0]; }; 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 ndmsg; struct netlink_callback; struct nlmsghdr; 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 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); void (*ndo_poll_controller)(struct net_device *); int (*ndo_netpoll_setup)(struct net_device *, struct netpoll_info *); void (*ndo_netpoll_cleanup)(struct net_device *); 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 ndmsg *, struct nlattr **, struct net_device *, u16, 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_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); }; 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; }; union { struct sock *sk; int ip_defrag_offset; }; 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 nf_trace: 1; __u8 ip_summed: 2; __u8 ooo_okay: 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 __pkt_vlan_present_offset[0]; __u8 remcsum_offload: 1; __u8 csum_complete_sw: 1; __u8 csum_level: 2; __u8 dst_pending_confirm: 1; __u8 mono_delivery_time: 1; __u8 tc_skip_classify: 1; __u8 tc_at_ingress: 1; __u8 ndisc_nodetype: 2; __u8 ipvs_property: 1; __u8 inner_protocol_type: 1; __u8 redirected: 1; __u8 nf_skip_egress: 1; __u8 slow_gro: 1; __u8 csum_not_inet: 1; __u16 tc_index; 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; }; u16 alloc_cpu; __u32 secmark; 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 nf_trace: 1; __u8 ip_summed: 2; __u8 ooo_okay: 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 __pkt_vlan_present_offset[0]; __u8 remcsum_offload: 1; __u8 csum_complete_sw: 1; __u8 csum_level: 2; __u8 dst_pending_confirm: 1; __u8 mono_delivery_time: 1; __u8 tc_skip_classify: 1; __u8 tc_at_ingress: 1; __u8 ndisc_nodetype: 2; __u8 ipvs_property: 1; __u8 inner_protocol_type: 1; __u8 redirected: 1; __u8 nf_skip_egress: 1; __u8 slow_gro: 1; __u8 csum_not_inet: 1; __u16 tc_index; 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; }; u16 alloc_cpu; __u32 secmark; 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[2]; u8 chunks; char: 8; 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; struct netlink_range_validation *range; 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 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; bool strict_check; union { u8 ctx[48]; long args[6]; }; }; struct nlmsghdr { __u32 nlmsg_len; __u16 nlmsg_type; __u16 nlmsg_flags; __u32 nlmsg_seq; __u32 nlmsg_pid; }; 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; long: 64; long: 64; long: 64; }; 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 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; }; 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; } mtk_wdma; }; }; struct skb_shared_hwtstamps { union { ktime_t hwtstamp; void *netdev_data; }; }; 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 *); }; struct xdp_md { __u32 data; __u32 data_end; __u32 data_meta; __u32 ingress_ifindex; __u32 rx_queue_index; __u32 egress_ifindex; }; 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_channels; struct ethtool_dump; struct ethtool_ts_info; struct ethtool_modinfo; struct ethtool_eee; 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 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 *, u32 *, u8 *, u8 *); int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8); int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32); int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool); 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_eee *); int (*set_eee)(struct net_device *, struct ethtool_eee *); 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 in6_addr; 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 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; int: 32; 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 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; }; typedef __u32 __be32; struct in6_addr { union { __u8 u6_addr8[16]; __be16 u6_addr16[8]; __be32 u6_addr32[4]; } in6_u; }; struct ipv6_stable_secret { bool initialized; struct in6_addr secret; }; struct ipv6_devconf { __s32 forwarding; __s32 hop_limit; __s32 mtu6; __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_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_pinfo; __s32 ignore_routes_with_linkdown; __s32 proxy_ndp; __s32 accept_source_route; __s32 accept_ra_from_local; __s32 disable_ipv6; __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 disable_policy; __s32 ndisc_tclass; __s32 rpl_seg_enabled; __u32 ioam6_id; __u32 ioam6_id_wide; __u8 ioam6_enabled; __u8 ndisc_evict_nocarrier; 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 *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 mpls_pcpu_stats; struct mpls_dev { int input_enabled; struct net_device *dev; struct mpls_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; struct ctl_table_header *sysctl; struct callback_head rcu; }; 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 xsk_buff_pool *pool; 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 tcf_proto; struct tcf_block; struct gnet_stats_basic_sync; struct gnet_stats_queue; 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 tcf_result; struct tcf_proto_ops; struct tcf_chain; 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 tcmsg; 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 *); 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 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 flow_block { struct list_head cb_list; }; struct tcf_block { 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 net_rate_estimator; 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 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 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 qdisc_walker; 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 dql { unsigned int num_queued; unsigned int adj_limit; unsigned int last_obj_cnt; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; 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; long: 32; long: 64; long: 64; }; struct netdev_queue { struct net_device *dev; netdevice_tracker dev_tracker; struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; struct Qdisc *qdisc_sleeping; struct kobject kobj; unsigned long tx_maxrate; atomic_long_t trans_timeout; struct net_device *sb_dev; struct xsk_buff_pool *pool; long: 64; 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 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 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 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 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 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 semaphore { raw_spinlock_t lock; unsigned int count; struct list_head wait_list; }; struct netpoll; struct netpoll_info { refcount_t refcnt; struct semaphore dev_lock; struct sk_buff_head txq; struct delayed_work tx_work; struct netpoll *netpoll; struct callback_head rcu; }; 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 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 netprio_map { struct callback_head rcu; u32 priomap_len; u32 priomap[0]; }; 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 prot_inuse { int all; int val[64]; }; struct ipstats_mib { u64 mibs[37]; struct u64_stats_sync syncp; }; struct tcp_mib { unsigned long mibs[16]; }; struct linux_mib { unsigned long mibs[127]; }; struct udp_mib { unsigned long mibs[10]; }; struct mptcp_mib { unsigned long mibs[52]; }; 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; }; 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]; }; 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: 56; long: 64; long: 64; struct rhashtable rhashtable; long: 64; long: 64; long: 64; 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; }; 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; }; struct frag_v4_compare_key { __be32 saddr; __be32 daddr; u32 user; u32 vif; __be16 id; u16 protocol; }; 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; struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *buckets[0]; }; 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; }; struct xfrm_state; struct lwtunnel_state; struct dst_entry { struct net_device *dev; struct dst_ops *ops; unsigned long _metrics; unsigned long expires; struct xfrm_state *xfrm; 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; atomic_t __refcnt; int __use; unsigned long lastuse; struct lwtunnel_state *lwtstate; struct callback_head callback_head; short error; short __pad; __u32 tclassid; netdevice_tracker dev_tracker; }; 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 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 nf_ct_event; struct nf_exp_event; struct nf_ct_event_notifier { int (*ct_event)(unsigned int, const struct nf_ct_event *); int (*exp_event)(unsigned int, const struct nf_exp_event *); }; struct net_generic { union { struct { unsigned int len; struct callback_head rcu; } s; struct { struct { } __empty_ptr; void *ptr[0]; }; }; }; struct mpls_nh { struct net_device *nh_dev; unsigned int nh_flags; u8 nh_labels; u8 nh_via_alen; u8 nh_via_table; u8 nh_reserved1; u32 nh_label[0]; }; struct mpls_route { struct callback_head rt_rcu; u8 rt_protocol; u8 rt_payload_type; u8 rt_max_alen; u8 rt_ttl_propagate; u8 rt_nhn; u8 rt_nhn_alive; u8 rt_nh_size; u8 rt_via_offset; u8 rt_reserved1; struct mpls_nh rt_nh[0]; }; struct sock_fprog_kern { u16 len; struct sock_filter *filter; }; 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 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 *); unsigned int *id; size_t size; }; 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, }; 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 bpf_link_primer { struct bpf_link *link; struct file *file; int fd; u32 id; }; struct mem_section_usage; struct mem_section { unsigned long section_mem_map; struct mem_section_usage *usage; }; struct mem_section_usage { unsigned long subsection_map[1]; unsigned long pageblock_flags[0]; }; enum pageblock_bits { PB_migrate = 0, PB_migrate_end = 2, PB_migrate_skip = 3, NR_PAGEBLOCK_BITS = 4, }; 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 mminit_level { MMINIT_WARNING = 0, MMINIT_VERIFY = 1, MMINIT_TRACE = 2, }; enum zone_type { ZONE_DMA = 0, ZONE_DMA32 = 1, ZONE_NORMAL = 2, ZONE_MOVABLE = 3, __MAX_NR_ZONES = 4, }; struct cacheline_padding { char x[0]; }; struct free_area { struct list_head free_list[4]; unsigned long nr_free; }; struct pglist_data; 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]; 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; 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: 32; long: 64; long: 64; long: 64; long: 64; struct cacheline_padding _pad1_; struct free_area free_area[11]; unsigned long flags; spinlock_t lock; long: 32; 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; short: 16; struct cacheline_padding _pad3_; atomic_long_t vm_stat[10]; atomic_long_t vm_numa_event[0]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct zoneref { struct zone *zone; int zone_idx; }; struct zonelist { struct zoneref _zonerefs[5]; }; 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 per_cpu_nodestat; struct pglist_data { struct zone node_zones[4]; struct zonelist node_zonelists[1]; 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; long: 64; long: 64; long: 64; struct cacheline_padding _pad1_; struct lruvec __lruvec; unsigned long flags; long: 64; long: 64; long: 64; long: 64; 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[41]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct per_cpu_pages { spinlock_t lock; int count; int high; int batch; short free_factor; struct list_head lists[12]; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct per_cpu_zonestat { s8 vm_stat_diff[10]; s8 stat_threshold; }; 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 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; }; 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 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 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 reclaim_state { unsigned long reclaimed_slab; }; struct compact_control; struct capture_control { struct compact_control *cc; struct page *page; }; struct compact_control { struct list_head freepages; 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 per_cpu_nodestat { s8 stat_threshold; s8 vm_node_stat_diff[41]; }; 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]; }; 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_operations; struct lock_manager_operations; struct file_lock { struct file_lock *fl_blocker; struct list_head fl_list; struct hlist_node fl_link; struct list_head fl_blocked_requests; struct list_head fl_blocked_member; fl_owner_t fl_owner; unsigned int fl_flags; unsigned char fl_type; unsigned int fl_pid; int fl_link_cpu; wait_queue_head_t fl_wait; struct file *fl_file; loff_t fl_start; loff_t fl_end; struct fasync_struct *fl_fasync; unsigned long fl_break_time; unsigned long fl_downgrade_time; 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_break)(struct file_lock *); int (*lm_change)(struct file_lock *, int, struct list_head *); void (*lm_setup)(struct file_lock *, void **); bool (*lm_breaker_owns_lease)(struct file_lock *); bool (*lm_lock_expirable)(struct file_lock *); void (*lm_expire_lock)(); }; struct file_lock_context { spinlock_t flc_lock; struct list_head flc_flock; struct list_head flc_posix; struct list_head flc_lease; }; struct cdev { struct kobject kobj; struct module *owner; const struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count; }; struct inodes_stat_t { long nr_inodes; long nr_unused; long dummy[5]; }; 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, }; 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 file_time_flags { S_ATIME = 1, S_MTIME = 2, S_CTIME = 4, S_VERSION = 8, }; enum xa_lock_type { XA_LOCK_IRQ = 1, XA_LOCK_BH = 2, }; enum lru_status { LRU_REMOVED = 0, LRU_REMOVED_RETRY = 1, LRU_ROTATE = 2, LRU_SKIP = 3, LRU_RETRY = 4, }; 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, PGDEMOTE_KSWAPD = 28, PGDEMOTE_DIRECT = 29, PGDEMOTE_KHUGEPAGED = 30, PGSCAN_KSWAPD = 31, PGSCAN_DIRECT = 32, PGSCAN_KHUGEPAGED = 33, PGSCAN_DIRECT_THROTTLE = 34, PGSCAN_ANON = 35, PGSCAN_FILE = 36, PGSTEAL_ANON = 37, PGSTEAL_FILE = 38, PGINODESTEAL = 39, SLABS_SCANNED = 40, KSWAPD_INODESTEAL = 41, KSWAPD_LOW_WMARK_HIT_QUICKLY = 42, KSWAPD_HIGH_WMARK_HIT_QUICKLY = 43, PAGEOUTRUN = 44, PGROTATED = 45, DROP_PAGECACHE = 46, DROP_SLAB = 47, OOM_KILL = 48, PGMIGRATE_SUCCESS = 49, PGMIGRATE_FAIL = 50, THP_MIGRATION_SUCCESS = 51, THP_MIGRATION_FAIL = 52, THP_MIGRATION_SPLIT = 53, COMPACTMIGRATE_SCANNED = 54, COMPACTFREE_SCANNED = 55, COMPACTISOLATED = 56, COMPACTSTALL = 57, COMPACTFAIL = 58, COMPACTSUCCESS = 59, KCOMPACTD_WAKE = 60, KCOMPACTD_MIGRATE_SCANNED = 61, KCOMPACTD_FREE_SCANNED = 62, HTLB_BUDDY_PGALLOC = 63, HTLB_BUDDY_PGALLOC_FAIL = 64, UNEVICTABLE_PGCULLED = 65, UNEVICTABLE_PGSCANNED = 66, UNEVICTABLE_PGRESCUED = 67, UNEVICTABLE_PGMLOCKED = 68, UNEVICTABLE_PGMUNLOCKED = 69, UNEVICTABLE_PGCLEARED = 70, UNEVICTABLE_PGSTRANDED = 71, SWAP_RA = 72, SWAP_RA_HIT = 73, DIRECT_MAP_LEVEL2_SPLIT = 74, DIRECT_MAP_LEVEL3_SPLIT = 75, NR_VM_EVENT_ITEMS = 76, }; enum { SB_UNFROZEN = 0, SB_FREEZE_WRITE = 1, SB_FREEZE_PAGEFAULT = 2, SB_FREEZE_FS = 3, SB_FREEZE_COMPLETE = 4, }; typedef unsigned int slab_flags_t; typedef int __kernel_rwf_t; typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); 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; }; typedef int wait_bit_action_f(struct wait_bit_key *, int); typedef __kernel_ulong_t ino_t; struct fsnotify_event { struct list_head list; }; 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 mount; struct mnt_namespace { struct ns_common ns; struct mount *root; struct list_head list; spinlock_t ns_lock; struct user_namespace *user_ns; struct ucounts *ucounts; u64 seq; wait_queue_head_t poll; u64 event; unsigned int mounts; unsigned int pending_mounts; }; 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; 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; 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 mountpoint { struct hlist_node m_hash; struct dentry *m_dentry; struct hlist_head m_list; int m_count; }; struct inotify_group_private_data { spinlock_t idr_lock; struct idr idr; struct ucounts *ucounts; }; struct fsnotify_ops; 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 request; struct io_comp_batch { struct request *req_list; bool need_ts; void (*complete)(struct io_comp_batch *); }; 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; struct bio_list { struct bio *head; struct bio *tail; }; 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 block_device_operations; struct timer_rand_state; struct disk_events; struct cdrom_device_info; 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; struct cdrom_device_info *cdi; int node_id; struct badblocks *bb; struct lockdep_map lockdep_map; u64 diskseq; struct blk_independent_access_ranges *ia_ranges; }; struct blk_zone; typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); enum blk_unique_id { BLK_UID_T10 = 1, BLK_UID_EUI64 = 2, BLK_UID_NAA = 3, }; 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 block_device *, fmode_t); void (*release)(struct gendisk *, fmode_t); int (*ioctl)(struct block_device *, fmode_t, unsigned int, unsigned long); int (*compat_ioctl)(struct block_device *, fmode_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 *); }; typedef __u32 blk_opf_t; typedef u8 blk_status_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 blkcg_gq; struct bio { struct bio *bi_next; struct block_device *bi_bdev; blk_opf_t bi_opf; unsigned short bi_flags; unsigned short bi_ioprio; 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 bio_alloc_cache { struct bio *free_list; struct bio *free_list_irq; unsigned int nr; unsigned int nr_irq; }; 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_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); }; enum blk_bounce { BLK_BOUNCE_NONE = 0, BLK_BOUNCE_HIGH = 1, }; enum blk_zoned_model { BLK_ZONED_NONE = 0, BLK_ZONED_HA = 1, BLK_ZONED_HM = 2, }; 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_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; enum blk_zoned_model zoned; unsigned int dma_alignment; }; struct elevator_queue; struct blk_queue_stats; struct rq_qos; struct blk_mq_ops; struct blk_mq_ctx; struct blk_stat_callback; struct blk_rq_stat; struct blk_mq_tags; struct blk_trace; struct blk_flush_queue; struct blk_mq_tag_set; struct request_queue { struct request *last_merge; struct elevator_queue *elevator; struct percpu_ref q_usage_counter; struct blk_queue_stats *stats; struct rq_qos *rq_qos; const struct blk_mq_ops *mq_ops; struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; unsigned int queue_depth; struct xarray hctx_table; unsigned int nr_hw_queues; void *queuedata; unsigned long queue_flags; atomic_t pm_only; int id; spinlock_t queue_lock; struct gendisk *disk; refcount_t refs; struct kobject *mq_kobj; struct device *dev; enum rpm_status rpm_status; unsigned long nr_requests; unsigned int dma_pad_mask; unsigned int rq_timeout; int poll_nsec; struct blk_stat_callback *poll_cb; struct blk_rq_stat *poll_stat; struct timer_list timeout; struct work_struct timeout_work; atomic_t nr_active_requests_shared_tags; 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; struct queue_limits limits; unsigned int required_elevator_features; int node; struct blk_trace __attribute__((btf_type_tag("rcu"))) *blk_trace; struct blk_flush_queue *fq; struct list_head requeue_list; spinlock_t requeue_lock; struct delayed_work requeue_work; struct mutex sysfs_lock; struct mutex sysfs_dir_lock; struct list_head unused_hctx_list; spinlock_t unused_hctx_lock; int mq_freeze_depth; struct callback_head callback_head; wait_queue_head_t mq_freeze_wq; struct mutex mq_freeze_lock; int quiesce_depth; 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; }; 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 blk_rq_stat { u64 mean; u64 min; u64 max; u32 nr_samples; u64 batch; }; 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 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; }; 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_operations; struct tty_ldisc; struct tty_port; struct tty_struct { struct kref kref; struct device *dev; struct tty_driver *driver; const struct tty_operations *ops; int index; struct ld_semaphore ldisc_sem; struct tty_ldisc *ldisc; 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; struct winsize winsize; struct { spinlock_t lock; bool stopped; bool tco_stopped; unsigned long unused[0]; } flow; struct { spinlock_t lock; struct pid *pgrp; struct pid *session; unsigned char pktstatus; bool packet; unsigned long unused[0]; } ctrl; int hw_stopped; unsigned int receive_room; 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; struct list_head tty_files; int closing; unsigned char *write_buf; int write_cnt; struct work_struct SAK_work; struct tty_port *port; }; 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 __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; }; int used; int size; int commit; int lookahead; int read; bool flags; unsigned long 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; unsigned char *xmit_buf; struct { union { struct __kfifo kfifo; unsigned char *type; const unsigned char *const_type; char (*rectype)[0]; unsigned char *ptr; const unsigned char *ptr_const; }; unsigned char 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 { int (*receive_buf)(struct tty_port *, const unsigned char *, const unsigned char *, size_t); void (*lookahead_buf)(struct tty_port *, const unsigned char *, const unsigned char *, unsigned int); 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 *); int (*write)(struct tty_struct *, const unsigned char *, int); int (*put_char)(struct tty_struct *, unsigned char); 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 *, char); 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 *, unsigned char *, size_t, void **, unsigned long); ssize_t (*write)(struct tty_struct *, struct file *, const unsigned char *, 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 unsigned char *, const char *, int); void (*write_wakeup)(struct tty_struct *); void (*dcd_change)(struct tty_struct *, bool); int (*receive_buf2)(struct tty_struct *, const unsigned char *, const char *, int); void (*lookahead_buf)(struct tty_struct *, const unsigned char *, const unsigned char *, unsigned int); struct module *owner; }; struct blk_plug { struct request *mq_list; struct request *cached_rq; unsigned short nr_ios; unsigned short rq_count; bool multiple_queues; bool has_elevator; bool nowait; struct list_head cb_list; }; struct dqstats { unsigned long stat[8]; struct percpu_counter counter[8]; }; struct quota_module_name { int qm_fmt_id; char *qm_mod_name; }; enum { _DQUOT_USAGE_ENABLED = 0, _DQUOT_LIMITS_ENABLED = 1, _DQUOT_SUSPENDED = 2, _DQUOT_STATE_FLAGS = 3, }; enum { DQF_INFO_DIRTY_B = 17, }; enum { DQST_LOOKUPS = 0, DQST_DROPS = 1, DQST_READS = 2, DQST_WRITES = 3, DQST_CACHE_HITS = 4, DQST_ALLOC_DQUOTS = 5, DQST_FREE_DQUOTS = 6, DQST_SYNCS = 7, _DQST_DQSTAT_LAST = 8, }; enum { DQF_ROOT_SQUASH_B = 0, DQF_SYS_FILE_B = 16, DQF_PRIVATE = 17, }; enum { QIF_BLIMITS_B = 0, QIF_SPACE_B = 1, QIF_ILIMITS_B = 2, QIF_INODES_B = 3, QIF_BTIME_B = 4, QIF_ITIME_B = 5, }; typedef __kernel_uid32_t qid_t; struct dquot_warn { struct super_block *w_sb; struct kqid w_dq_id; short w_type; }; struct va_format { const char *fmt; va_list *va; }; enum netfs_read_from_hole { NETFS_READ_HOLE_IGNORE = 0, NETFS_READ_HOLE_CLEAR = 1, NETFS_READ_HOLE_FAIL = 2, }; enum netfs_io_source { NETFS_FILL_WITH_ZEROES = 0, NETFS_DOWNLOAD_FROM_SERVER = 1, NETFS_READ_FROM_CACHE = 2, NETFS_INVALID_READ = 3, }; enum netfs_io_origin { NETFS_READAHEAD = 0, NETFS_READPAGE = 1, NETFS_READ_FOR_WRITE = 2, }; enum netfs_rreq_ref_trace { netfs_rreq_trace_get_hold = 0, netfs_rreq_trace_get_subreq = 1, netfs_rreq_trace_put_complete = 2, netfs_rreq_trace_put_discard = 3, netfs_rreq_trace_put_failed = 4, netfs_rreq_trace_put_hold = 5, netfs_rreq_trace_put_subreq = 6, netfs_rreq_trace_put_zero_len = 7, netfs_rreq_trace_new = 8, }; enum netfs_sreq_ref_trace { netfs_sreq_trace_get_copy_to_cache = 0, netfs_sreq_trace_get_resubmit = 1, netfs_sreq_trace_get_short_read = 2, netfs_sreq_trace_new = 3, netfs_sreq_trace_put_clear = 4, netfs_sreq_trace_put_failed = 5, netfs_sreq_trace_put_merged = 6, netfs_sreq_trace_put_no_copy = 7, netfs_sreq_trace_put_terminated = 8, }; enum netfs_rreq_trace { netfs_rreq_trace_assess = 0, netfs_rreq_trace_copy = 1, netfs_rreq_trace_done = 2, netfs_rreq_trace_free = 3, netfs_rreq_trace_resubmit = 4, netfs_rreq_trace_unlock = 5, netfs_rreq_trace_unmark = 6, }; enum { WORK_STRUCT_PENDING_BIT = 0LL, WORK_STRUCT_INACTIVE_BIT = 1LL, WORK_STRUCT_PWQ_BIT = 2LL, WORK_STRUCT_LINKED_BIT = 3LL, WORK_STRUCT_COLOR_SHIFT = 4LL, WORK_STRUCT_COLOR_BITS = 4LL, WORK_STRUCT_PENDING = 1LL, WORK_STRUCT_INACTIVE = 2LL, WORK_STRUCT_PWQ = 4LL, WORK_STRUCT_LINKED = 8LL, WORK_STRUCT_STATIC = 0LL, WORK_NR_COLORS = 16LL, WORK_CPU_UNBOUND = 64LL, WORK_STRUCT_FLAG_BITS = 8LL, WORK_OFFQ_FLAG_BASE = 4LL, __WORK_OFFQ_CANCELING = 4LL, WORK_OFFQ_CANCELING = 16LL, WORK_OFFQ_FLAG_BITS = 1LL, WORK_OFFQ_POOL_SHIFT = 5LL, WORK_OFFQ_LEFT = 59LL, WORK_OFFQ_POOL_BITS = 31LL, WORK_OFFQ_POOL_NONE = 2147483647LL, WORK_STRUCT_FLAG_MASK = 255LL, WORK_STRUCT_WQ_DATA_MASK = -256LL, WORK_STRUCT_NO_POOL = 68719476704LL, WORK_BUSY_PENDING = 1LL, WORK_BUSY_RUNNING = 2LL, WORKER_DESC_LEN = 24LL, }; enum netfs_sreq_trace { netfs_sreq_trace_download_instead = 0, netfs_sreq_trace_free = 1, netfs_sreq_trace_prepare = 2, netfs_sreq_trace_resubmit_short = 3, netfs_sreq_trace_submit = 4, netfs_sreq_trace_terminated = 5, netfs_sreq_trace_write = 6, netfs_sreq_trace_write_skip = 7, netfs_sreq_trace_write_term = 8, }; struct netfs_io_request; struct netfs_io_subrequest { struct netfs_io_request *rreq; struct list_head rreq_link; loff_t start; size_t len; size_t transferred; refcount_t ref; short error; unsigned short debug_index; enum netfs_io_source source; unsigned long flags; }; struct netfs_cache_ops; struct netfs_cache_resources { const struct netfs_cache_ops *ops; void *cache_priv; void *cache_priv2; unsigned int debug_id; unsigned int inval_counter; }; struct netfs_request_ops; struct netfs_io_request { struct work_struct work; struct inode *inode; struct address_space *mapping; struct netfs_cache_resources cache_resources; struct list_head subrequests; void *netfs_priv; unsigned int debug_id; atomic_t nr_outstanding; atomic_t nr_copy_ops; size_t submitted; size_t len; short error; enum netfs_io_origin origin; loff_t i_size; loff_t start; unsigned long no_unlock_folio; refcount_t ref; unsigned long flags; const struct netfs_request_ops *netfs_ops; }; typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool); struct netfs_cache_ops { void (*end_operation)(struct netfs_cache_resources *); int (*read)(struct netfs_cache_resources *, loff_t, struct iov_iter *, enum netfs_read_from_hole, netfs_io_terminated_t, void *); int (*write)(struct netfs_cache_resources *, loff_t, struct iov_iter *, netfs_io_terminated_t, void *); void (*expand_readahead)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t); enum netfs_io_source (*prepare_read)(struct netfs_io_subrequest *, loff_t); int (*prepare_write)(struct netfs_cache_resources *, loff_t *, size_t *, loff_t, bool); enum netfs_io_source (*prepare_ondemand_read)(struct netfs_cache_resources *, loff_t, size_t *, loff_t, unsigned long *, ino_t); int (*query_occupancy)(struct netfs_cache_resources *, loff_t, size_t, size_t, loff_t *, size_t *); }; struct netfs_request_ops { int (*init_request)(struct netfs_io_request *, struct file *); void (*free_request)(struct netfs_io_request *); int (*begin_cache_operation)(struct netfs_io_request *); void (*expand_readahead)(struct netfs_io_request *); bool (*clamp_length)(struct netfs_io_subrequest *); void (*issue_read)(struct netfs_io_subrequest *); bool (*is_still_valid)(struct netfs_io_request *); int (*check_write_begin)(struct file *, loff_t, unsigned int, struct folio **, void **); void (*done)(struct netfs_io_request *); }; struct netfs_inode { struct inode inode; const struct netfs_request_ops *ops; loff_t remote_i_size; }; 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 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_checkpoint_io_list; struct journal_head *t_shadow_list; struct list_head t_inode_list; spinlock_t t_handle_lock; 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; unsigned long j_atomic_flags; int j_errno; struct mutex j_abort_mutex; struct buffer_head *j_sb_buffer; journal_superblock_t *j_superblock; int j_format_version; 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; 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; 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); }; 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 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; __u32 s_padding[41]; __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 { 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)(struct crypto_tfm *, u32, u32); 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 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_WRITE_ZEROES = 9, REQ_OP_ZONE_OPEN = 10, REQ_OP_ZONE_CLOSE = 11, REQ_OP_ZONE_FINISH = 12, REQ_OP_ZONE_APPEND = 13, REQ_OP_ZONE_RESET = 15, REQ_OP_ZONE_RESET_ALL = 17, REQ_OP_DRV_IN = 34, REQ_OP_DRV_OUT = 35, REQ_OP_LAST = 36, }; 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_CGROUP_PUNT = 22, __REQ_POLLED = 23, __REQ_ALLOC_CACHE = 24, __REQ_SWAP = 25, __REQ_DRV = 26, __REQ_NOUNMAP = 27, __REQ_NR_BITS = 28, }; 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 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; }; typedef unsigned long long ext4_fsblk_t; typedef __u32 ext4_lblk_t; struct ext4_map_blocks { ext4_fsblk_t m_pblk; ext4_lblk_t m_lblk; unsigned int m_len; unsigned int m_flags; }; typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); struct bvec_iter_all { struct bio_vec bv; int idx; unsigned int done; }; 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 __u16 __le16; typedef __u32 __le32; 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 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 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 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; }; typedef u32 rpc_authflavor_t; struct nlmclnt_operations; struct nfs_server; struct nfs_fh; struct nfs_fsinfo; struct nfs_fattr; struct nfs_access_entry; struct rpc_message; struct rpc_task; struct nfs_unlinkdata; struct nfs_renamedata; struct nfs_readdir_arg; struct nfs_readdir_res; struct nfs_fsstat; struct nfs_pathconf; struct xdr_stream; struct nfs_entry; struct nfs_pgio_header; struct rpc_clnt; struct nfs_commit_data; struct nfs_open_context; struct nfs_client; struct nfs_client_initdata; struct nfs_rpc_ops { u32 version; const struct dentry_operations *dentry_ops; const struct inode_operations *dir_inode_ops; const struct inode_operations *file_inode_ops; const struct file_operations *file_ops; const struct nlmclnt_operations *nlmclnt_ops; int (*getroot)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); int (*submount)(struct fs_context *, struct nfs_server *); int (*try_get_tree)(struct fs_context *); int (*getattr)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, struct inode *); int (*setattr)(struct dentry *, struct nfs_fattr *, struct iattr *); int (*lookup)(struct inode *, struct dentry *, struct nfs_fh *, struct nfs_fattr *); int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *); int (*access)(struct inode *, struct nfs_access_entry *, const struct cred *); int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int); int (*create)(struct inode *, struct dentry *, struct iattr *, int); int (*remove)(struct inode *, struct dentry *); void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *); void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *); int (*unlink_done)(struct rpc_task *, struct inode *); void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *); void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *); int (*rename_done)(struct rpc_task *, struct inode *, struct inode *); int (*link)(struct inode *, struct inode *, const struct qstr *); int (*symlink)(struct inode *, struct dentry *, struct page *, unsigned int, struct iattr *); int (*mkdir)(struct inode *, struct dentry *, struct iattr *); int (*rmdir)(struct inode *, const struct qstr *); int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *); int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t); int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *); int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *); int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool); int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *); void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *); int (*read_done)(struct rpc_task *, struct nfs_pgio_header *); void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **); int (*write_done)(struct rpc_task *, struct nfs_pgio_header *); void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **); void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *); int (*commit_done)(struct rpc_task *, struct nfs_commit_data *); int (*lock)(struct file *, int, struct file_lock *); int (*lock_check_bounds)(const struct file_lock *); void (*clear_acl_cache)(struct inode *); void (*close_context)(struct nfs_open_context *, int); struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *); int (*have_delegation)(struct inode *, fmode_t); struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *); struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *); void (*free_client)(struct nfs_client *); struct nfs_server * (*create_server)(struct fs_context *); struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t); int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); void (*enable_swap)(struct inode *); void (*disable_swap)(struct inode *); }; 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; } socket_lock_t; struct sock_cgroup_data { struct cgroup *cgroup; u32 classid; u16 prioidx; }; typedef struct {} netns_tracker; struct sk_filter; struct socket_wq; struct xfrm_policy; struct socket; struct sock_reuseport; struct sock { struct sock_common __sk_common; struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_rx_dst; int sk_rx_dst_ifindex; u32 sk_rx_dst_cookie; socket_lock_t sk_lock; atomic_t sk_drops; int sk_rcvlowat; 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; int sk_forward_alloc; u32 sk_reserved_mem; unsigned int sk_ll_usec; unsigned int sk_napi_id; 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; }; struct xfrm_policy __attribute__((btf_type_tag("rcu"))) *sk_policy[2]; struct dst_entry __attribute__((btf_type_tag("rcu"))) *sk_dst_cache; 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; __s32 sk_peek_off; int sk_write_pending; __u32 sk_dst_pending_confirm; u32 sk_pacing_status; long sk_sndtimeo; struct timer_list sk_timer; __u32 sk_priority; __u32 sk_mark; unsigned long sk_pacing_rate; unsigned long sk_max_pacing_rate; struct page_frag sk_frag; netdev_features_t sk_route_caps; int sk_gso_type; unsigned int sk_gso_max_size; gfp_t sk_allocation; __u32 sk_txhash; u8 sk_gso_disabled: 1; u8 sk_kern_sock: 1; u8 sk_no_check_tx: 1; u8 sk_no_check_rx: 1; u8 sk_userlocks: 4; u8 sk_pacing_shift; u16 sk_type; u16 sk_protocol; u16 sk_gso_max_segs; unsigned long sk_lingertime; struct proto *sk_prot_creator; rwlock_t sk_callback_lock; int sk_err; int sk_err_soft; u32 sk_ack_backlog; u32 sk_max_ack_backlog; kuid_t sk_uid; u8 sk_txrehash; u8 sk_prefer_busy_poll; u16 sk_busy_poll_budget; spinlock_t sk_peer_lock; int sk_bind_phc; struct pid *sk_peer_pid; const struct cred *sk_peer_cred; long sk_rcvtimeo; ktime_t sk_stamp; atomic_t sk_tskey; atomic_t sk_zckey; u32 sk_tsflags; u8 sk_shutdown; u8 sk_clockid; u8 sk_txtime_deadline_mode: 1; u8 sk_txtime_report_errors: 1; u8 sk_txtime_unused: 6; bool sk_use_task_frag; struct socket *sk_socket; void *sk_user_data; void *sk_security; struct sock_cgroup_data sk_cgrp_data; struct mem_cgroup *sk_memcg; void (*sk_state_change)(struct sock *); void (*sk_data_ready)(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 hlist_node sk_bind2_node; }; struct smc_hashinfo; typedef struct { union { void *kernel; void __attribute__((btf_type_tag("user"))) *user; }; bool is_kernel: 1; } sockptr_t; struct msghdr; 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, unsigned long); 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 (*compat_ioctl)(struct sock *, unsigned int, unsigned long); int (*sendmsg)(struct sock *, struct msghdr *, size_t); int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); int (*sendpage)(struct sock *, struct page *, int, size_t, int); 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; int (*forward_alloc_get)(const struct sock *); 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; 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 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; }; 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 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; u8 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 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 *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 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 socket_wq { wait_queue_head_t wait; struct fasync_struct *fasync_list; unsigned long flags; struct callback_head rcu; long: 64; }; struct xfrm_mark { __u32 v; __u32 m; }; typedef union { __be32 a4; __be32 a6[4]; struct in6_addr in6; } xfrm_address_t; struct xfrm_selector { xfrm_address_t daddr; xfrm_address_t saddr; __be16 dport; __be16 dport_mask; __be16 sport; __be16 sport_mask; __u16 family; __u8 prefixlen_d; __u8 prefixlen_s; __u8 proto; int ifindex; __kernel_uid32_t user; }; struct xfrm_lifetime_cfg { __u64 soft_byte_limit; __u64 hard_byte_limit; __u64 soft_packet_limit; __u64 hard_packet_limit; __u64 soft_add_expires_seconds; __u64 hard_add_expires_seconds; __u64 soft_use_expires_seconds; __u64 hard_use_expires_seconds; }; struct xfrm_lifetime_cur { __u64 bytes; __u64 packets; __u64 add_time; __u64 use_time; }; struct xfrm_policy_walk_entry { struct list_head all; u8 dead; }; struct xfrm_policy_queue { struct sk_buff_head hold_queue; struct timer_list hold_timer; unsigned long timeout; }; struct xfrm_id { xfrm_address_t daddr; __be32 spi; __u8 proto; }; struct xfrm_tmpl { struct xfrm_id id; xfrm_address_t saddr; unsigned short encap_family; u32 reqid; u8 mode; u8 share; u8 optional; u8 allalgs; u32 aalgos; u32 ealgos; u32 calgos; }; struct xfrm_dev_offload { struct net_device *dev; netdevice_tracker dev_tracker; struct net_device *real_dev; unsigned long offload_handle; u8 dir: 2; u8 type: 2; }; struct xfrm_sec_ctx; struct xfrm_policy { possible_net_t xp_net; struct hlist_node bydst; struct hlist_node byidx; rwlock_t lock; refcount_t refcnt; u32 pos; struct timer_list timer; atomic_t genid; u32 priority; u32 index; u32 if_id; struct xfrm_mark mark; struct xfrm_selector selector; struct xfrm_lifetime_cfg lft; struct xfrm_lifetime_cur curlft; struct xfrm_policy_walk_entry walk; struct xfrm_policy_queue polq; bool bydst_reinsert; u8 type; u8 action; u8 flags; u8 xfrm_nr; u16 family; struct xfrm_sec_ctx *security; struct xfrm_tmpl xfrm_vec[6]; struct hlist_node bydst_inexact_list; struct callback_head rcu; struct xfrm_dev_offload xdo; }; typedef enum { SS_FREE = 0, SS_UNCONNECTED = 1, SS_CONNECTING = 2, SS_CONNECTED = 3, SS_DISCONNECTING = 4, } socket_state; 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 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 (*compat_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 (*sendpage)(struct socket *, struct page *, int, size_t, int); ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); 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 (*sendpage_locked)(struct sock *, struct page *, int, size_t, int); int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); int (*set_rcvlowat)(struct sock *, int); }; 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 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 fib_rule; struct flowi; struct fib_lookup_arg; struct fib_rule_hdr; struct fib_rules_ops { int family; struct list_head list; int rule_size; int addr_size; int unresolved_rules; int nr_goto_rules; unsigned int fib_rules_seq; int (*action)(struct fib_rule *, struct flowi *, int, struct fib_lookup_arg *); bool (*suppress)(struct fib_rule *, int, struct fib_lookup_arg *); int (*match)(struct fib_rule *, struct flowi *, int); int (*configure)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *, struct nlattr **, struct netlink_ext_ack *); int (*delete)(struct fib_rule *); int (*compare)(struct fib_rule *, struct fib_rule_hdr *, struct nlattr **); int (*fill)(struct fib_rule *, struct sk_buff *, struct fib_rule_hdr *); size_t (*nlmsg_payload)(struct fib_rule *); void (*flush_cache)(struct fib_rules_ops *); int nlgroup; struct list_head rules_list; struct module *owner; struct net *fro_net; struct callback_head rcu; }; typedef __u64 __be64; struct fib_kuid_range { kuid_t start; kuid_t end; }; struct fib_rule_port_range { __u16 start; __u16 end; }; struct fib_rule { struct list_head list; int iifindex; int oifindex; u32 mark; u32 mark_mask; u32 flags; u32 table; u8 action; u8 l3mdev; u8 proto; u8 ip_proto; u32 target; __be64 tun_id; struct fib_rule __attribute__((btf_type_tag("rcu"))) *ctarget; struct net *fr_net; refcount_t refcnt; u32 pref; int suppress_ifgroup; int suppress_prefixlen; char iifname[16]; char oifname[16]; struct fib_kuid_range uid_range; struct fib_rule_port_range sport_range; struct fib_rule_port_range dport_range; struct callback_head rcu; }; 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; struct flowi_tunnel flowic_tun_key; __u32 flowic_multipath_hash; }; 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 fib_lookup_arg { void *lookup_ptr; const void *lookup_data; void *result; struct fib_rule *rule; u32 table; int flags; }; struct fib_rule_hdr { __u8 family; __u8 dst_len; __u8 src_len; __u8 tos; __u8 table; __u8 res1; __u8 res2; __u8 action; __u32 flags; }; 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 rpc_timer { struct list_head list; unsigned long expires; struct delayed_work dwork; }; struct rpc_wait_queue { spinlock_t lock; struct list_head tasks[4]; unsigned char maxpriority; unsigned char priority; unsigned char nr; unsigned short qlen; struct rpc_timer timer_list; const char *name; }; struct nfs_seqid_counter { ktime_t create_time; int owner_id; int flags; u32 counter; spinlock_t lock; struct list_head list; struct rpc_wait_queue wait; }; struct nfs4_stateid_struct { union { char data[16]; struct { __be32 seqid; char other[12]; }; }; enum { NFS4_INVALID_STATEID_TYPE = 0, NFS4_SPECIAL_STATEID_TYPE = 1, NFS4_OPEN_STATEID_TYPE = 2, NFS4_LOCK_STATEID_TYPE = 3, NFS4_DELEGATION_STATEID_TYPE = 4, NFS4_LAYOUT_STATEID_TYPE = 5, NFS4_PNFS_DS_STATEID_TYPE = 6, NFS4_REVOKED_STATEID_TYPE = 7, } type; }; typedef struct nfs4_stateid_struct nfs4_stateid; struct nfs4_state; struct nfs4_lock_state { struct list_head ls_locks; struct nfs4_state *ls_state; unsigned long ls_flags; struct nfs_seqid_counter ls_seqid; nfs4_stateid ls_stateid; refcount_t ls_count; fl_owner_t ls_owner; }; struct nfs4_state_owner; struct nfs4_state { struct list_head open_states; struct list_head inode_states; struct list_head lock_states; struct nfs4_state_owner *owner; struct inode *inode; unsigned long flags; spinlock_t state_lock; seqlock_t seqlock; nfs4_stateid stateid; nfs4_stateid open_stateid; unsigned int n_rdonly; unsigned int n_wronly; unsigned int n_rdwr; fmode_t state; refcount_t count; wait_queue_head_t waitq; struct callback_head callback_head; }; struct nfs4_state_owner { struct nfs_server *so_server; struct list_head so_lru; unsigned long so_expires; struct rb_node so_server_node; const struct cred *so_cred; spinlock_t so_lock; atomic_t so_count; unsigned long so_flags; struct list_head so_states; struct nfs_seqid_counter so_seqid; seqcount_spinlock_t so_reclaim_seqcount; struct mutex so_delegreturn_mutex; }; struct nlm_host; enum nfs4_change_attr_type { NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0, NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1, NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2, NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3, NFS4_CHANGE_TYPE_IS_UNDEFINED = 4, }; struct nfs_fsid { uint64_t major; uint64_t minor; }; struct nfs_auth_info { unsigned int flavor_len; rpc_authflavor_t flavors[12]; }; struct pnfs_layoutdriver_type; struct ida { struct xarray xa; }; struct __kernel_sockaddr_storage { union { struct { __kernel_sa_family_t ss_family; char __data[126]; }; void *__align; }; }; struct nfs_iostats; struct nfs_server { struct nfs_client *nfs_client; struct list_head client_link; struct list_head master_link; struct rpc_clnt *client; struct rpc_clnt *client_acl; struct nlm_host *nlm_host; struct nfs_iostats __attribute__((btf_type_tag("percpu"))) *io_stats; atomic_long_t writeback; unsigned int write_congested; unsigned int flags; unsigned int fattr_valid; unsigned int caps; unsigned int rsize; unsigned int rpages; unsigned int wsize; unsigned int wpages; unsigned int wtmult; unsigned int dtsize; unsigned short port; unsigned int bsize; unsigned int acregmin; unsigned int acregmax; unsigned int acdirmin; unsigned int acdirmax; unsigned int namelen; unsigned int options; unsigned int clone_blksize; enum nfs4_change_attr_type change_attr_type; struct nfs_fsid fsid; __u64 maxfilesize; struct timespec64 time_delta; unsigned long mount_time; struct super_block *super; dev_t s_dev; struct nfs_auth_info auth_info; u32 pnfs_blksize; u32 attr_bitmask[3]; u32 attr_bitmask_nl[3]; u32 exclcreat_bitmask[3]; u32 cache_consistency_bitmask[3]; u32 acl_bitmask; u32 fh_expire_type; struct pnfs_layoutdriver_type *pnfs_curr_ld; struct rpc_wait_queue roc_rpcwaitq; void *pnfs_ld_data; struct rb_root state_owners; struct ida openowner_id; struct ida lockowner_id; struct list_head state_owners_lru; struct list_head layouts; struct list_head delegations; struct list_head ss_copies; unsigned long mig_gen; unsigned long mig_status; void (*destroy)(struct nfs_server *); atomic_t active; struct __kernel_sockaddr_storage mountd_address; size_t mountd_addrlen; u32 mountd_version; unsigned short mountd_port; unsigned short mountd_protocol; struct rpc_wait_queue uoc_rpcwaitq; unsigned int read_hdrsize; const struct cred *cred; bool has_sec_mnt_opts; }; typedef struct { char data[8]; } nfs4_verifier; struct nfs41_server_owner; struct nfs41_server_scope; struct nfs41_impl_id; struct nfs_subversion; struct idmap; struct nfs4_minor_version_ops; struct nfs4_slot_table; struct nfs4_session; struct nfs_client { refcount_t cl_count; atomic_t cl_mds_count; int cl_cons_state; unsigned long cl_res_state; unsigned long cl_flags; struct __kernel_sockaddr_storage cl_addr; size_t cl_addrlen; char *cl_hostname; char *cl_acceptor; struct list_head cl_share_link; struct list_head cl_superblocks; struct rpc_clnt *cl_rpcclient; const struct nfs_rpc_ops *rpc_ops; int cl_proto; struct nfs_subversion *cl_nfs_mod; u32 cl_minorversion; unsigned int cl_nconnect; unsigned int cl_max_connect; const char *cl_principal; struct list_head cl_ds_clients; u64 cl_clientid; nfs4_verifier cl_confirm; unsigned long cl_state; spinlock_t cl_lock; unsigned long cl_lease_time; unsigned long cl_last_renewal; struct delayed_work cl_renewd; struct rpc_wait_queue cl_rpcwaitq; struct idmap *cl_idmap; const char *cl_owner_id; u32 cl_cb_ident; const struct nfs4_minor_version_ops *cl_mvops; unsigned long cl_mig_gen; struct nfs4_slot_table *cl_slot_tbl; u32 cl_seqid; u32 cl_exchange_flags; struct nfs4_session *cl_session; bool cl_preserve_clid; struct nfs41_server_owner *cl_serverowner; struct nfs41_server_scope *cl_serverscope; struct nfs41_impl_id *cl_implid; unsigned long cl_sp4_flags; char cl_ipaddr[48]; struct net *cl_net; struct list_head pending_cb_stateids; }; struct rpc_xprt_switch; struct rpc_xprt; struct rpc_xprt_iter_ops; struct rpc_xprt_iter { struct rpc_xprt_switch __attribute__((btf_type_tag("rcu"))) *xpi_xpswitch; struct rpc_xprt *xpi_cursor; const struct rpc_xprt_iter_ops *xpi_ops; }; struct rpc_pipe_dir_head { struct list_head pdh_entries; struct dentry *pdh_dentry; }; struct rpc_rtt { unsigned long timeo; unsigned long srtt[5]; unsigned long sdrtt[5]; int ntimeouts[5]; }; struct rpc_timeout { unsigned long to_initval; unsigned long to_maxval; unsigned long to_increment; unsigned int to_retries; unsigned char to_exponential; }; struct rpc_procinfo; struct rpc_auth; struct rpc_stat; struct rpc_iostats; struct rpc_program; struct rpc_sysfs_client; struct rpc_clnt { refcount_t cl_count; unsigned int cl_clid; struct list_head cl_clients; struct list_head cl_tasks; atomic_t cl_pid; spinlock_t cl_lock; struct rpc_xprt __attribute__((btf_type_tag("rcu"))) *cl_xprt; const struct rpc_procinfo *cl_procinfo; u32 cl_prog; u32 cl_vers; u32 cl_maxproc; struct rpc_auth *cl_auth; struct rpc_stat *cl_stats; struct rpc_iostats *cl_metrics; unsigned int cl_softrtry: 1; unsigned int cl_softerr: 1; unsigned int cl_discrtry: 1; unsigned int cl_noretranstimeo: 1; unsigned int cl_autobind: 1; unsigned int cl_chatty: 1; struct rpc_rtt *cl_rtt; const struct rpc_timeout *cl_timeout; atomic_t cl_swapper; int cl_nodelen; char cl_nodename[65]; struct rpc_pipe_dir_head cl_pipedir_objects; struct rpc_clnt *cl_parent; struct rpc_rtt cl_rtt_default; struct rpc_timeout cl_timeout_default; const struct rpc_program *cl_program; const char *cl_principal; struct rpc_sysfs_client *cl_sysfs; union { struct rpc_xprt_iter cl_xpi; struct work_struct cl_work; }; const struct cred *cl_cred; unsigned int cl_max_connect; }; struct rpc_xprt_ops; struct svc_xprt; struct xprt_class; struct rpc_sysfs_xprt; struct rpc_xprt { struct kref kref; const struct rpc_xprt_ops *ops; unsigned int id; const struct rpc_timeout *timeout; struct __kernel_sockaddr_storage addr; size_t addrlen; int prot; unsigned long cong; unsigned long cwnd; size_t max_payload; struct rpc_wait_queue binding; struct rpc_wait_queue sending; struct rpc_wait_queue pending; struct rpc_wait_queue backlog; struct list_head free; unsigned int max_reqs; unsigned int min_reqs; unsigned int num_reqs; unsigned long state; unsigned char resvport: 1; unsigned char reuseport: 1; atomic_t swapper; unsigned int bind_index; struct list_head xprt_switch; unsigned long bind_timeout; unsigned long reestablish_timeout; unsigned int connect_cookie; struct work_struct task_cleanup; struct timer_list timer; unsigned long last_used; unsigned long idle_timeout; unsigned long connect_timeout; unsigned long max_reconnect_timeout; atomic_long_t queuelen; spinlock_t transport_lock; spinlock_t reserve_lock; spinlock_t queue_lock; u32 xid; struct rpc_task *snd_task; struct list_head xmit_queue; atomic_long_t xmit_queuelen; struct svc_xprt *bc_xprt; struct rb_root recv_queue; struct { unsigned long bind_count; unsigned long connect_count; unsigned long connect_start; unsigned long connect_time; unsigned long sends; unsigned long recvs; unsigned long bad_xids; unsigned long max_slots; unsigned long long req_u; unsigned long long bklog_u; unsigned long long sending_u; unsigned long long pending_u; } stat; struct net *xprt_net; netns_tracker ns_tracker; const char *servername; const char *address_strings[6]; struct callback_head rcu; const struct xprt_class *xprt_class; struct rpc_sysfs_xprt *xprt_sysfs; bool main; }; struct rpc_rqst; struct xdr_buf; struct rpc_xprt_ops { void (*set_buffer_size)(struct rpc_xprt *, size_t, size_t); int (*reserve_xprt)(struct rpc_xprt *, struct rpc_task *); void (*release_xprt)(struct rpc_xprt *, struct rpc_task *); void (*alloc_slot)(struct rpc_xprt *, struct rpc_task *); void (*free_slot)(struct rpc_xprt *, struct rpc_rqst *); void (*rpcbind)(struct rpc_task *); void (*set_port)(struct rpc_xprt *, unsigned short); void (*connect)(struct rpc_xprt *, struct rpc_task *); int (*get_srcaddr)(struct rpc_xprt *, char *, size_t); unsigned short (*get_srcport)(struct rpc_xprt *); int (*buf_alloc)(struct rpc_task *); void (*buf_free)(struct rpc_task *); int (*prepare_request)(struct rpc_rqst *, struct xdr_buf *); int (*send_request)(struct rpc_rqst *); void (*wait_for_reply_request)(struct rpc_task *); void (*timer)(struct rpc_xprt *, struct rpc_task *); void (*release_request)(struct rpc_task *); void (*close)(struct rpc_xprt *); void (*destroy)(struct rpc_xprt *); void (*set_connect_timeout)(struct rpc_xprt *, unsigned long, unsigned long); void (*print_stats)(struct rpc_xprt *, struct seq_file *); int (*enable_swap)(struct rpc_xprt *); void (*disable_swap)(struct rpc_xprt *); void (*inject_disconnect)(struct rpc_xprt *); int (*bc_setup)(struct rpc_xprt *, unsigned int); size_t (*bc_maxpayload)(struct rpc_xprt *); unsigned int (*bc_num_slots)(struct rpc_xprt *); void (*bc_free_rqst)(struct rpc_rqst *); void (*bc_destroy)(struct rpc_xprt *, unsigned int); }; struct rpc_wait { struct list_head list; struct list_head links; struct list_head timer_list; }; struct rpc_message { const struct rpc_procinfo *rpc_proc; void *rpc_argp; void *rpc_resp; const struct cred *rpc_cred; }; struct rpc_call_ops; struct rpc_cred; struct rpc_task { atomic_t tk_count; int tk_status; struct list_head tk_task; void (*tk_callback)(struct rpc_task *); void (*tk_action)(struct rpc_task *); unsigned long tk_timeout; unsigned long tk_runstate; struct rpc_wait_queue *tk_waitqueue; union { struct work_struct tk_work; struct rpc_wait tk_wait; } u; struct rpc_message tk_msg; void *tk_calldata; const struct rpc_call_ops *tk_ops; struct rpc_clnt *tk_client; struct rpc_xprt *tk_xprt; struct rpc_cred *tk_op_cred; struct rpc_rqst *tk_rqstp; struct workqueue_struct *tk_workqueue; ktime_t tk_start; pid_t tk_owner; int tk_rpc_status; unsigned short tk_flags; unsigned short tk_timeouts; unsigned short tk_pid; unsigned char tk_priority: 2; unsigned char tk_garb_retry: 2; unsigned char tk_cred_retry: 2; unsigned char tk_rebind_retry: 2; }; typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *); typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *); struct rpc_procinfo { u32 p_proc; kxdreproc_t p_encode; kxdrdproc_t p_decode; unsigned int p_arglen; unsigned int p_replen; unsigned int p_timer; u32 p_statidx; const char *p_name; }; struct xdr_buf { struct kvec head[1]; struct kvec tail[1]; struct bio_vec *bvec; struct page **pages; unsigned int page_base; unsigned int page_len; unsigned int flags; unsigned int buflen; unsigned int len; }; struct rpc_rqst { struct rpc_xprt *rq_xprt; struct xdr_buf rq_snd_buf; struct xdr_buf rq_rcv_buf; struct rpc_task *rq_task; struct rpc_cred *rq_cred; __be32 rq_xid; int rq_cong; u32 rq_seqno; int rq_enc_pages_num; struct page **rq_enc_pages; void (*rq_release_snd_buf)(struct rpc_rqst *); union { struct list_head rq_list; struct rb_node rq_recv; }; struct list_head rq_xmit; struct list_head rq_xmit2; void *rq_buffer; size_t rq_callsize; void *rq_rbuffer; size_t rq_rcvsize; size_t rq_xmit_bytes_sent; size_t rq_reply_bytes_recvd; struct xdr_buf rq_private_buf; unsigned long rq_majortimeo; unsigned long rq_minortimeo; unsigned long rq_timeout; ktime_t rq_rtt; unsigned int rq_retries; unsigned int rq_connect_cookie; atomic_t rq_pin; u32 rq_bytes_sent; ktime_t rq_xtime; int rq_ntrans; }; struct rpc_credops; struct rpc_cred { struct hlist_node cr_hash; struct list_head cr_lru; struct callback_head cr_rcu; struct rpc_auth *cr_auth; const struct rpc_credops *cr_ops; unsigned long cr_expire; unsigned long cr_flags; refcount_t cr_count; const struct cred *cr_cred; }; struct rpc_authops; struct rpc_cred_cache; struct rpc_auth { unsigned int au_cslack; unsigned int au_rslack; unsigned int au_verfsize; unsigned int au_ralign; unsigned long au_flags; const struct rpc_authops *au_ops; rpc_authflavor_t au_flavor; refcount_t au_count; struct rpc_cred_cache *au_credcache; }; struct rpc_auth_create_args; struct auth_cred; struct rpcsec_gss_info; struct rpc_authops { struct module *owner; rpc_authflavor_t au_flavor; char *au_name; struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *); void (*destroy)(struct rpc_auth *); int (*hash_cred)(struct auth_cred *, unsigned int); struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int); struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t); rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *); int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *); int (*key_timeout)(struct rpc_auth *, struct rpc_cred *); }; struct rpc_auth_create_args { rpc_authflavor_t pseudoflavor; const char *target_name; }; struct auth_cred { const struct cred *cred; const char *principal; }; struct rpcsec_gss_oid { unsigned int len; u8 data[32]; }; struct rpcsec_gss_info { struct rpcsec_gss_oid oid; u32 qop; u32 service; }; struct rpc_credops { const char *cr_name; int (*cr_init)(struct rpc_auth *, struct rpc_cred *); void (*crdestroy)(struct rpc_cred *); int (*crmatch)(struct auth_cred *, struct rpc_cred *, int); int (*crmarshal)(struct rpc_task *, struct xdr_stream *); int (*crrefresh)(struct rpc_task *); int (*crvalidate)(struct rpc_task *, struct xdr_stream *); int (*crwrap_req)(struct rpc_task *, struct xdr_stream *); int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *); int (*crkey_timeout)(struct rpc_cred *); char * (*crstringify_acceptor)(struct rpc_cred *); bool (*crneed_reencode)(struct rpc_task *); }; struct xdr_stream { __be32 *p; struct xdr_buf *buf; __be32 *end; struct kvec *iov; struct kvec scratch; struct page **page_ptr; unsigned int nwords; struct rpc_rqst *rqst; }; struct rpc_call_ops { void (*rpc_call_prepare)(struct rpc_task *, void *); void (*rpc_call_done)(struct rpc_task *, void *); void (*rpc_count_stats)(struct rpc_task *, void *); void (*rpc_release)(void *); }; struct xprt_create; struct xprt_class { struct list_head list; int ident; struct rpc_xprt * (*setup)(struct xprt_create *); struct module *owner; char name[32]; const char *netid[0]; }; struct xprt_create { int ident; struct net *net; struct sockaddr *srcaddr; struct sockaddr *dstaddr; size_t addrlen; const char *servername; struct svc_xprt *bc_xprt; struct rpc_xprt_switch *bc_xps; unsigned int flags; }; struct rpc_sysfs_xprt_switch; struct rpc_xprt_switch { spinlock_t xps_lock; struct kref xps_kref; unsigned int xps_id; unsigned int xps_nxprts; unsigned int xps_nactive; unsigned int xps_nunique_destaddr_xprts; atomic_long_t xps_queuelen; struct list_head xps_xprt_list; struct net *xps_net; const struct rpc_xprt_iter_ops *xps_iter_ops; struct rpc_sysfs_xprt_switch *xps_sysfs; struct callback_head xps_rcu; }; struct rpc_xprt_iter_ops { void (*xpi_rewind)(struct rpc_xprt_iter *); struct rpc_xprt * (*xpi_xprt)(struct rpc_xprt_iter *); struct rpc_xprt * (*xpi_next)(struct rpc_xprt_iter *); }; struct rpc_stat { const struct rpc_program *program; unsigned int netcnt; unsigned int netudpcnt; unsigned int nettcpcnt; unsigned int nettcpconn; unsigned int netreconn; unsigned int rpccnt; unsigned int rpcretrans; unsigned int rpcauthrefresh; unsigned int rpcgarbage; }; struct rpc_version; struct rpc_program { const char *name; u32 number; unsigned int nrvers; const struct rpc_version **version; struct rpc_stat *stats; const char *pipe_dir_name; }; struct rpc_version { u32 number; unsigned int nrprocs; const struct rpc_procinfo *procs; unsigned int *counts; }; struct nfs_seqid; struct nfs4_state_recovery_ops; struct nfs4_state_maintenance_ops; struct nfs4_mig_recovery_ops; struct nfs4_minor_version_ops { u32 minor_version; unsigned int init_caps; int (*init_client)(struct nfs_client *); void (*shutdown_client)(struct nfs_client *); bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *); int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *); int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *); struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t); void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *); const struct rpc_call_ops *call_sync_ops; const struct nfs4_state_recovery_ops *reboot_recovery_ops; const struct nfs4_state_recovery_ops *nograce_recovery_ops; const struct nfs4_state_maintenance_ops *state_renewal_ops; const struct nfs4_mig_recovery_ops *mig_recovery_ops; }; struct nfs_fh { unsigned short size; unsigned char data[128]; }; struct nfs_fsinfo { struct nfs_fattr *fattr; __u32 rtmax; __u32 rtpref; __u32 rtmult; __u32 wtmax; __u32 wtpref; __u32 wtmult; __u32 dtpref; __u64 maxfilesize; struct timespec64 time_delta; __u32 lease_time; __u32 nlayouttypes; __u32 layouttype[8]; __u32 blksize; __u32 clone_blksize; enum nfs4_change_attr_type change_attr_type; __u32 xattr_support; }; struct nfs4_string; struct nfs4_threshold; struct nfs4_label; struct nfs_fattr { unsigned int valid; umode_t mode; __u32 nlink; kuid_t uid; kgid_t gid; dev_t rdev; __u64 size; union { struct { __u32 blocksize; __u32 blocks; } nfs2; struct { __u64 used; } nfs3; } du; struct nfs_fsid fsid; __u64 fileid; __u64 mounted_on_fileid; struct timespec64 atime; struct timespec64 mtime; struct timespec64 ctime; __u64 change_attr; __u64 pre_change_attr; __u64 pre_size; struct timespec64 pre_mtime; struct timespec64 pre_ctime; unsigned long time_start; unsigned long gencount; struct nfs4_string *owner_name; struct nfs4_string *group_name; struct nfs4_threshold *mdsthreshold; struct nfs4_label *label; }; struct nfs4_string { unsigned int len; char *data; }; struct nfs4_threshold { __u32 bm; __u32 l_type; __u64 rd_sz; __u64 wr_sz; __u64 rd_io_sz; __u64 wr_io_sz; }; struct nfs4_label { uint32_t lfs; uint32_t pi; u32 len; char *label; }; struct nfs_seqid { struct nfs_seqid_counter *sequence; struct list_head list; struct rpc_task *task; }; struct nfs4_state_recovery_ops { int owner_flag_bit; int state_flag_bit; int (*recover_open)(struct nfs4_state_owner *, struct nfs4_state *); int (*recover_lock)(struct nfs4_state *, struct file_lock *); int (*establish_clid)(struct nfs_client *, const struct cred *); int (*reclaim_complete)(struct nfs_client *, const struct cred *); int (*detect_trunking)(struct nfs_client *, struct nfs_client **, const struct cred *); }; struct nfs4_state_maintenance_ops { int (*sched_state_renewal)(struct nfs_client *, const struct cred *, unsigned int); const struct cred * (*get_state_renewal_cred)(struct nfs_client *); int (*renew_lease)(struct nfs_client *, const struct cred *); }; struct nfs4_fs_locations; struct nfs4_mig_recovery_ops { int (*get_locations)(struct nfs_server *, struct nfs_fh *, struct nfs4_fs_locations *, struct page *, const struct cred *); int (*fsid_present)(struct inode *, const struct cred *); }; struct nfs4_pathname { unsigned int ncomponents; struct nfs4_string components[512]; }; struct nfs4_fs_location { unsigned int nservers; struct nfs4_string servers[10]; struct nfs4_pathname rootpath; }; struct nfs4_fs_locations { struct nfs_fattr *fattr; const struct nfs_server *server; struct nfs4_pathname fs_path; int nlocations; struct nfs4_fs_location locations[10]; }; struct nfs_iostats { unsigned long long bytes[8]; unsigned long events[27]; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct nlmclnt_operations { void (*nlmclnt_alloc_call)(void *); bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); void (*nlmclnt_release_call)(void *); }; struct nfs_access_entry { struct rb_node rb_node; struct list_head lru; kuid_t fsuid; kgid_t fsgid; struct group_info *group_info; u64 timestamp; __u32 mask; struct callback_head callback_head; }; struct nfs4_slot; struct nfs4_sequence_args { struct nfs4_slot *sa_slot; u8 sa_cache_this: 1; u8 sa_privileged: 1; }; struct nfs_removeargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; struct qstr name; }; struct nfs4_sequence_res { struct nfs4_slot *sr_slot; unsigned long sr_timestamp; int sr_status; u32 sr_status_flags; u32 sr_highest_slotid; u32 sr_target_highest_slotid; }; struct nfs4_change_info { u32 atomic; u64 before; u64 after; }; struct nfs_removeres { struct nfs4_sequence_res seq_res; struct nfs_server *server; struct nfs_fattr *dir_attr; struct nfs4_change_info cinfo; }; struct nfs_unlinkdata { struct nfs_removeargs args; struct nfs_removeres res; struct dentry *dentry; wait_queue_head_t wq; const struct cred *cred; struct nfs_fattr dir_attr; long timeout; }; struct nfs_renameargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *old_dir; const struct nfs_fh *new_dir; const struct qstr *old_name; const struct qstr *new_name; }; struct nfs_renameres { struct nfs4_sequence_res seq_res; struct nfs_server *server; struct nfs4_change_info old_cinfo; struct nfs_fattr *old_fattr; struct nfs4_change_info new_cinfo; struct nfs_fattr *new_fattr; }; struct nfs_renamedata { struct nfs_renameargs args; struct nfs_renameres res; struct rpc_task task; const struct cred *cred; struct inode *old_dir; struct dentry *old_dentry; struct nfs_fattr old_fattr; struct inode *new_dir; struct dentry *new_dentry; struct nfs_fattr new_fattr; void (*complete)(struct rpc_task *, struct nfs_renamedata *); long timeout; bool cancelled; }; struct nfs_readdir_arg { struct dentry *dentry; const struct cred *cred; __be32 *verf; u64 cookie; struct page **pages; unsigned int page_len; bool plus; }; struct nfs_readdir_res { __be32 *verf; }; struct nfs_fsstat { struct nfs_fattr *fattr; __u64 tbytes; __u64 fbytes; __u64 abytes; __u64 tfiles; __u64 ffiles; __u64 afiles; }; struct nfs_pathconf { struct nfs_fattr *fattr; __u32 max_link; __u32 max_namelen; }; struct nfs_entry { __u64 ino; __u64 cookie; const char *name; unsigned int len; int eof; struct nfs_fh *fh; struct nfs_fattr *fattr; unsigned char d_type; struct nfs_server *server; }; struct nfs_write_verifier { char data[8]; }; enum nfs3_stable_how { NFS_UNSTABLE = 0, NFS_DATA_SYNC = 1, NFS_FILE_SYNC = 2, NFS_INVALID_STABLE_HOW = -1, }; struct nfs_writeverf { struct nfs_write_verifier verifier; enum nfs3_stable_how committed; }; struct nfs_lock_context; struct nfs_pgio_args { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; struct nfs_open_context *context; struct nfs_lock_context *lock_context; nfs4_stateid stateid; __u64 offset; __u32 count; unsigned int pgbase; struct page **pages; union { unsigned int replen; struct { const u32 *bitmask; u32 bitmask_store[3]; enum nfs3_stable_how stable; }; }; }; struct nfs_pgio_res { struct nfs4_sequence_res seq_res; struct nfs_fattr *fattr; __u64 count; __u32 op_status; union { struct { unsigned int replen; int eof; }; struct { struct nfs_writeverf *verf; const struct nfs_server *server; }; }; }; struct nfs_page_array { struct page **pagevec; unsigned int npages; struct page *page_array[8]; }; struct nfs_page; struct pnfs_layout_segment; struct nfs_pgio_completion_ops; struct nfs_rw_ops; struct nfs_io_completion; struct nfs_direct_req; struct nfs_pgio_header { struct inode *inode; const struct cred *cred; struct list_head pages; struct nfs_page *req; struct nfs_writeverf verf; fmode_t rw_mode; struct pnfs_layout_segment *lseg; loff_t io_start; const struct rpc_call_ops *mds_ops; void (*release)(struct nfs_pgio_header *); const struct nfs_pgio_completion_ops *completion_ops; const struct nfs_rw_ops *rw_ops; struct nfs_io_completion *io_completion; struct nfs_direct_req *dreq; int pnfs_error; int error; unsigned int good_bytes; unsigned long flags; struct rpc_task task; struct nfs_fattr fattr; struct nfs_pgio_args args; struct nfs_pgio_res res; unsigned long timestamp; int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *); __u64 mds_offset; struct nfs_page_array page_array; struct nfs_client *ds_clp; u32 ds_commit_idx; u32 pgio_mirror_idx; }; struct nfs_page { struct list_head wb_list; union { struct page *wb_page; struct folio *wb_folio; }; struct nfs_lock_context *wb_lock_context; unsigned long wb_index; unsigned int wb_offset; unsigned int wb_pgbase; unsigned int wb_bytes; struct kref wb_kref; unsigned long wb_flags; struct nfs_write_verifier wb_verf; struct nfs_page *wb_this_page; struct nfs_page *wb_head; unsigned short wb_nio; }; struct nfs_lock_context { refcount_t count; struct list_head list; struct nfs_open_context *open_context; fl_owner_t lockowner; atomic_t io_count; struct callback_head callback_head; }; struct nfs_open_context { struct nfs_lock_context lock_context; fl_owner_t flock_owner; struct dentry *dentry; const struct cred *cred; struct rpc_cred __attribute__((btf_type_tag("rcu"))) *ll_cred; struct nfs4_state *state; fmode_t mode; unsigned long flags; int error; struct list_head list; struct nfs4_threshold *mdsthreshold; struct callback_head callback_head; }; struct nfs_pgio_completion_ops { void (*error_cleanup)(struct list_head *, int); void (*init_hdr)(struct nfs_pgio_header *); void (*completion)(struct nfs_pgio_header *); void (*reschedule_io)(struct nfs_pgio_header *); }; struct rpc_task_setup; struct nfs_rw_ops { struct nfs_pgio_header * (*rw_alloc_header)(); void (*rw_free_header)(struct nfs_pgio_header *); int (*rw_done)(struct rpc_task *, struct nfs_pgio_header *, struct inode *); void (*rw_result)(struct rpc_task *, struct nfs_pgio_header *); void (*rw_initiate)(struct nfs_pgio_header *, struct rpc_message *, const struct nfs_rpc_ops *, struct rpc_task_setup *, int); }; struct rpc_task_setup { struct rpc_task *task; struct rpc_clnt *rpc_client; struct rpc_xprt *rpc_xprt; struct rpc_cred *rpc_op_cred; const struct rpc_message *rpc_message; const struct rpc_call_ops *callback_ops; void *callback_data; struct workqueue_struct *workqueue; unsigned short flags; signed char priority; }; struct nfs_mds_commit_info { atomic_t rpcs_out; atomic_long_t ncommit; struct list_head list; }; struct pnfs_ds_commit_info {}; struct nfs_direct_req { struct kref kref; struct nfs_open_context *ctx; struct nfs_lock_context *l_ctx; struct kiocb *iocb; struct inode *inode; atomic_t io_count; spinlock_t lock; loff_t io_start; ssize_t count; ssize_t max_count; ssize_t bytes_left; ssize_t error; struct completion completion; struct nfs_mds_commit_info mds_cinfo; struct pnfs_ds_commit_info ds_cinfo; struct work_struct work; int flags; }; struct nfs_commitargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; __u64 offset; __u32 count; const u32 *bitmask; }; struct nfs_commitres { struct nfs4_sequence_res seq_res; __u32 op_status; struct nfs_fattr *fattr; struct nfs_writeverf *verf; const struct nfs_server *server; }; struct nfs_commit_completion_ops; struct nfs_commit_data { struct rpc_task task; struct inode *inode; const struct cred *cred; struct nfs_fattr fattr; struct nfs_writeverf verf; struct list_head pages; struct list_head list; struct nfs_direct_req *dreq; struct nfs_commitargs args; struct nfs_commitres res; struct nfs_open_context *context; struct pnfs_layout_segment *lseg; struct nfs_client *ds_clp; int ds_commit_index; loff_t lwb; const struct rpc_call_ops *mds_ops; const struct nfs_commit_completion_ops *completion_ops; int (*commit_done_cb)(struct rpc_task *, struct nfs_commit_data *); unsigned long flags; }; struct nfs_commit_info; struct nfs_commit_completion_ops { void (*completion)(struct nfs_commit_data *); void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); }; struct nfs_commit_info { struct inode *inode; struct nfs_mds_commit_info *mds; struct pnfs_ds_commit_info *ds; struct nfs_direct_req *dreq; const struct nfs_commit_completion_ops *completion_ops; }; struct nfs_client_initdata { unsigned long init_flags; const char *hostname; const struct __kernel_sockaddr_storage *addr; const char *nodename; const char *ip_addr; size_t addrlen; struct nfs_subversion *nfs_mod; int proto; u32 minorversion; unsigned int nconnect; unsigned int max_connect; struct net *net; const struct rpc_timeout *timeparms; const struct cred *cred; }; struct pnfs_layout_hdr; struct nfs4_cached_acl; struct nfs_delegation; struct nfs_inode { __u64 fileid; struct nfs_fh fh; unsigned long flags; unsigned long cache_validity; unsigned long read_cache_jiffies; unsigned long attrtimeo; unsigned long attrtimeo_timestamp; unsigned long attr_gencount; struct rb_root access_cache; struct list_head access_cache_entry_lru; struct list_head access_cache_inode_lru; union { struct { unsigned long cache_change_attribute; __be32 cookieverf[2]; struct rw_semaphore rmdir_sem; }; struct { atomic_long_t nrequests; atomic_long_t redirtied_pages; struct nfs_mds_commit_info commit_info; struct mutex commit_mutex; }; }; struct list_head open_files; struct nfs4_cached_acl *nfs4_acl; struct list_head open_states; struct nfs_delegation __attribute__((btf_type_tag("rcu"))) *delegation; struct rw_semaphore rwsem; struct pnfs_layout_hdr *layout; __u64 write_io; __u64 read_io; struct inode vfs_inode; }; struct nfs_delegation { struct list_head super_list; const struct cred *cred; struct inode *inode; nfs4_stateid stateid; fmode_t type; unsigned long pagemod_limit; __u64 change_attr; unsigned long flags; refcount_t refcount; spinlock_t lock; struct callback_head rcu; }; struct nfs_createargs { struct nfs_fh *fh; const char *name; unsigned int len; struct iattr *sattr; }; struct nfs_diropok { struct nfs_fh *fh; struct nfs_fattr *fattr; }; struct nfs_createdata { struct nfs_createargs arg; struct nfs_diropok res; struct nfs_fh fhandle; struct nfs_fattr fattr; }; struct nfs2_fsstat { __u32 tsize; __u32 bsize; __u32 blocks; __u32 bfree; __u32 bavail; }; struct nfs_sattrargs { struct nfs_fh *fh; struct iattr *sattr; }; struct nfs_diropargs { struct nfs_fh *fh; const char *name; unsigned int len; }; struct nfs_readlinkargs { struct nfs_fh *fh; unsigned int pgbase; unsigned int pglen; struct page **pages; }; struct nfs_linkargs { struct nfs_fh *fromfh; struct nfs_fh *tofh; const char *toname; unsigned int tolen; }; struct nfs_symlinkargs { struct nfs_fh *fromfh; const char *fromname; unsigned int fromlen; struct page **pages; unsigned int pathlen; struct iattr *sattr; }; struct nfs_readdirargs { struct nfs_fh *fh; __u32 cookie; unsigned int count; struct page **pages; }; enum p9_trans_status { Connected = 0, BeginDisconnect = 1, Disconnected = 2, Hung = 3, }; enum fscache_cookie_state { FSCACHE_COOKIE_STATE_QUIESCENT = 0, FSCACHE_COOKIE_STATE_LOOKING_UP = 1, FSCACHE_COOKIE_STATE_CREATING = 2, FSCACHE_COOKIE_STATE_ACTIVE = 3, FSCACHE_COOKIE_STATE_INVALIDATING = 4, FSCACHE_COOKIE_STATE_FAILED = 5, FSCACHE_COOKIE_STATE_LRU_DISCARDING = 6, FSCACHE_COOKIE_STATE_WITHDRAWING = 7, FSCACHE_COOKIE_STATE_RELINQUISHING = 8, FSCACHE_COOKIE_STATE_DROPPED = 9, }; enum p9_perm_t { P9_DMDIR = 2147483648, P9_DMAPPEND = 1073741824, P9_DMEXCL = 536870912, P9_DMMOUNT = 268435456, P9_DMAUTH = 134217728, P9_DMTMP = 67108864, P9_DMSYMLINK = 33554432, P9_DMLINK = 16777216, P9_DMDEVICE = 8388608, P9_DMNAMEDPIPE = 2097152, P9_DMSOCKET = 1048576, P9_DMSETUID = 524288, P9_DMSETGID = 262144, P9_DMSETVTX = 65536, }; struct p9_qid { u8 type; u32 version; u64 path; }; struct p9_fid; struct v9fs_inode { struct netfs_inode netfs; struct p9_qid qid; unsigned int cache_validity; struct p9_fid *writeback_fid; struct mutex v_mutex; }; struct p9_client; struct p9_fid { struct p9_client *clnt; u32 fid; refcount_t count; int mode; struct p9_qid qid; u32 iounit; kuid_t uid; void *rdir; struct hlist_node dlist; struct hlist_node ilist; }; struct p9_trans_module; struct p9_client { spinlock_t lock; unsigned int msize; unsigned char proto_version; struct p9_trans_module *trans_mod; enum p9_trans_status status; void *trans; struct kmem_cache *fcall_cache; union { struct { int rfd; int wfd; } fd; struct { u16 port; bool privport; } tcp; } trans_opts; struct idr fids; struct idr reqs; char name[65]; }; typedef u8 uint8_t; struct p9_rdir { int head; int tail; uint8_t buf[0]; }; struct p9_wstat { u16 size; u16 type; u32 dev; struct p9_qid qid; u32 mode; u32 atime; u32 mtime; u64 length; const char *name; const char *uid; const char *gid; const char *muid; char *extension; kuid_t n_uid; kgid_t n_gid; kuid_t n_muid; }; struct p9_dirent { struct p9_qid qid; u64 d_off; unsigned char d_type; char d_name[256]; }; 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; }; enum kernel_pkey_operation { kernel_pkey_encrypt = 0, kernel_pkey_decrypt = 1, kernel_pkey_sign = 2, kernel_pkey_verify = 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_lookup_flag { KEY_LOOKUP_CREATE = 1, KEY_LOOKUP_PARTIAL = 2, KEY_LOOKUP_ALL = 3, }; enum key_state { KEY_IS_UNINSTANTIATED = 0, KEY_IS_POSITIVE = 1, }; 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_match_data { bool (*cmp)(const struct key *, const struct key_match_data *); const void *raw_data; void *preparsed; unsigned int lookup_type; }; 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; }; struct __key_reference_with_attributes; typedef struct __key_reference_with_attributes *key_ref_t; 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; }; 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 audit_buffer; enum ima_hooks { NONE = 0, FILE_CHECK = 1, MMAP_CHECK = 2, MMAP_CHECK_REQPROT = 3, BPRM_CHECK = 4, CREDS_CHECK = 5, POST_SETATTR = 6, MODULE_CHECK = 7, FIRMWARE_CHECK = 8, KEXEC_KERNEL_CHECK = 9, KEXEC_INITRAMFS_CHECK = 10, POLICY_CHECK = 11, KEXEC_CMDLINE = 12, KEY_CHECK = 13, CRITICAL_DATA = 14, SETXATTR_CHECK = 15, MAX_CHECK = 16, }; struct ima_key_entry { struct list_head list; void *payload; size_t payload_len; char *keyring_name; }; 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 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 rsa_asn1_template { const char *name; const u8 *data; size_t size; }; struct crypto_spawn; struct crypto_instance { struct crypto_alg alg; struct crypto_template *tmpl; union { struct hlist_node list; struct crypto_spawn *spawns; }; void *__ctx[0]; }; 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 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; }; 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 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 scatterlist { unsigned long page_link; unsigned int offset; unsigned int length; dma_addr_t dma_address; unsigned int dma_length; }; 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; }; typedef __kernel_long_t __kernel_off_t; typedef __kernel_off_t off_t; 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; }; enum mq_rq_state { MQ_RQ_IDLE = 0, MQ_RQ_IN_FLIGHT = 1, MQ_RQ_COMPLETE = 2, }; enum rq_end_io_ret { RQ_END_IO_NONE = 0, RQ_END_IO_FREE = 1, }; 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; }; typedef __u32 req_flags_t; typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); typedef void (*smp_call_func_t)(void *); struct __call_single_data { struct __call_single_node node; smp_call_func_t func; void *info; }; struct io_cq; 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 stats_sectors; unsigned short nr_phys_segments; 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; void *completion_data; }; union { struct { struct io_cq *icq; void *priv[2]; } elv; struct { unsigned int seq; struct list_head list; rq_end_io_fn *saved_end_io; } flush; }; union { struct __call_single_data csd; u64 fifo_time; }; rq_end_io_fn *end_io; void *end_io_data; }; struct blk_queue_stats { struct list_head callbacks; spinlock_t lock; int accounting; }; 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; }; 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 long queued; unsigned long run; 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; }; struct blk_flush_queue { 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]; struct list_head flush_data_in_flight; struct request *flush_rq; spinlock_t mq_flush_lock; }; 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 blk_mq_ctxs { struct kobject kobj; struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; }; 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; atomic_t 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; }; 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 { struct blk_mq_queue_map map[3]; unsigned int nr_maps; const struct blk_mq_ops *ops; 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 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 void (*exitcall_t)(); 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; }; enum rq_qos_id { RQ_QOS_WBT = 0, RQ_QOS_LATENCY = 1, RQ_QOS_COST = 2, }; 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 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 blkcg_policy_data { struct blkcg *blkcg; int plid; }; struct blkg_policy_data { struct blkcg_gq *blkg; int plid; bool online; }; 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: 32; long: 64; long: 64; }; 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; }; typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); typedef void blkcg_pol_init_cpd_fn(struct blkcg_policy_data *); typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); typedef void blkcg_pol_bind_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_init_cpd_fn *cpd_init_fn; blkcg_pol_free_cpd_fn *cpd_free_fn; blkcg_pol_bind_cpd_fn *cpd_bind_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_NO_PAGE_REF = 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 { __PERCPU_REF_ATOMIC = 1, __PERCPU_REF_DEAD = 2, __PERCPU_REF_ATOMIC_DEAD = 3, __PERCPU_REF_FLAG_BITS = 2, }; struct blk_iolatency { struct rq_qos rqos; struct timer_list timer; bool enabled; atomic_t enable_cnt; struct work_struct enable_work; }; struct percentile_stats { u64 total; u64 missed; }; struct latency_stat { union { struct percentile_stats ps; struct blk_rq_stat rqs; }; }; struct rq_wait { wait_queue_head_t wait; atomic_t inflight; }; 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 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; }; typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); typedef void cleanup_cb_t(struct rq_wait *, void *); struct blkg_conf_ctx { struct block_device *bdev; struct blkcg_gq *blkg; char *body; }; struct io_kiocb; struct io_uring_sqe; 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; int (*issue)(struct io_kiocb *, unsigned int); int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; struct io_cmd_data { struct file *file; __u8 data[56]; }; struct io_wq_work_node { struct io_wq_work_node *next; }; struct io_cqe { __u64 user_data; __s32 res; union { __u32 flags; int fd; }; }; typedef void (*io_req_tw_func_t)(struct io_kiocb *, bool *); 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_rsrc_node; struct io_mapped_ubuf; struct io_buffer; struct io_buffer_list; 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 flags; struct io_cqe cqe; struct io_ring_ctx *ctx; struct task_struct *task; struct io_rsrc_node *rsrc_node; 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; }; atomic_t refs; atomic_t poll_refs; struct io_task_work io_task_work; union { struct hlist_node hash_node; struct { u64 extra1; u64 extra2; }; }; struct async_poll *apoll; void *async_data; struct io_kiocb *link; const struct cred *creds; struct io_wq_work work; }; 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_idle; atomic_t inflight_tracked; struct percpu_counter inflight; 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; }; }; enum task_work_notify_mode { TWA_NONE = 0, TWA_RESUME = 1, TWA_SIGNAL = 2, TWA_SIGNAL_NO_IPI = 3, }; struct io_fixed_file; struct io_file_table { struct io_fixed_file *files; unsigned long *bitmap; unsigned int alloc_hint; }; struct io_wq_work_list { struct io_wq_work_node *first; struct io_wq_work_node *last; }; struct io_submit_link { struct io_kiocb *head; struct io_kiocb *last; }; struct io_uring_cqe { __u64 user_data; __s32 res; __u32 flags; __u64 big_cqe[0]; }; 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_uring_cqe cqes[16]; }; struct io_hash_bucket; struct io_hash_table { struct io_hash_bucket *hbs; unsigned int hash_bits; }; struct io_alloc_cache { struct hlist_head list; unsigned int nr_cached; }; 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_sq_data; struct io_ev_fd; 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 syscall_iopoll: 1; unsigned int poll_activated: 1; unsigned int drain_disabled: 1; unsigned int compat: 1; enum task_work_notify_mode notify_method; struct io_rings *rings; struct task_struct *submitter_task; struct percpu_ref refs; 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; int rsrc_cached_refs; atomic_t cancel_seq; struct io_file_table file_table; unsigned int nr_user_files; unsigned int nr_user_bufs; struct io_mapped_ubuf **user_bufs; struct io_submit_state submit_state; struct io_buffer_list *io_bl; struct xarray io_bl_xa; struct list_head io_buffers_cache; struct io_hash_table cancel_table_locked; struct list_head cq_overflow_list; struct io_alloc_cache apoll_cache; struct io_alloc_cache netmsg_cache; long: 64; long: 64; }; struct io_wq_work_list locked_free_list; unsigned int locked_free_nr; const struct cred *sq_creds; struct io_sq_data *sq_data; struct wait_queue_head sqo_sq_wait; struct list_head sqd_list; unsigned long check_cq; unsigned int file_alloc_start; unsigned int file_alloc_end; struct xarray personalities; u32 pers_next; long: 32; 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; struct wait_queue_head cq_wait; unsigned int cq_extra; }; struct { spinlock_t completion_lock; bool poll_multi_queue; bool cq_waiting; struct io_wq_work_list iopoll_list; struct io_hash_table cancel_table; struct llist_head work_llist; struct list_head io_buffers_comp; }; struct { spinlock_t timeout_lock; atomic_t cq_timeouts; struct list_head timeout_list; struct list_head ltimeout_list; unsigned int cq_last_tm_flush; long: 32; long: 64; long: 64; }; struct wait_queue_head poll_wq; struct io_restriction restrictions; struct io_rsrc_node *rsrc_backup_node; struct io_mapped_ubuf *dummy_ubuf; struct io_rsrc_data *file_data; struct io_rsrc_data *buf_data; struct delayed_work rsrc_put_work; struct callback_head rsrc_put_tw; struct llist_head rsrc_put_llist; struct list_head rsrc_ref_list; spinlock_t rsrc_ref_lock; struct list_head io_buffers_pages; struct socket *ring_sock; 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]; bool iowq_limits_set; struct callback_head poll_wq_task_work; struct list_head defer_list; unsigned int sq_thread_idle; unsigned int evfd_last_cq_tail; long: 64; long: 64; }; struct io_uring { u32 head; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 tail; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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; 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; }; __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; }; __u64 user_data; union { __u16 buf_index; __u16 buf_group; }; __u16 personality; union { __s32 splice_fd_in; __u32 file_index; struct { __u16 addr_len; __u16 __pad3[1]; }; }; union { struct { __u64 addr3; __u64 __pad2[1]; }; __u8 cmd[0]; }; }; struct io_rsrc_node { struct percpu_ref refs; struct list_head node; struct list_head rsrc_list; struct io_rsrc_data *rsrc_data; struct llist_node llist; bool done; }; struct io_rsrc_put; typedef void rsrc_put_fn(struct io_ring_ctx *, struct io_rsrc_put *); struct io_rsrc_data { struct io_ring_ctx *ctx; u64 **tags; unsigned int nr; rsrc_put_fn *do_put; atomic_t refs; struct completion done; bool quiesce; }; struct io_rsrc_put { struct list_head list; u64 tag; union { void *rsrc; struct file *file; struct io_mapped_ubuf *buf; }; }; struct io_mapped_ubuf { u64 ubuf; u64 ubuf_end; unsigned int nr_bvecs; unsigned long acct_pages; struct bio_vec bvec[0]; }; struct io_fixed_file { unsigned long file_ptr; }; 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; }; }; __u16 bgid; __u16 buf_nr_pages; __u16 nr_entries; __u16 head; __u16 mask; }; 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_hash_bucket { spinlock_t lock; struct hlist_head list; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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; unsigned long state; struct completion exited; }; struct eventfd_ctx; 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_uring_cmd { struct file *file; const void *cmd; union { void (*task_work_cb)(struct io_uring_cmd *); void *cookie; }; u32 cmd_op; u32 flags; u8 pdu[32]; }; struct io_buffer { struct list_head list; __u64 addr; __u32 len; __u16 bid; __u16 bgid; }; struct io_poll { struct file *file; struct wait_queue_head *head; __poll_t events; struct wait_queue_entry wait; }; struct io_cache_entry { struct hlist_node node; }; 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 *); }; 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_LAST = 49, }; 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, }; enum irqchip_irq_state { IRQCHIP_STATE_PENDING = 0, IRQCHIP_STATE_ACTIVE = 1, IRQCHIP_STATE_MASKED = 2, IRQCHIP_STATE_LINE_LEVEL = 3, }; 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, }; enum irqreturn { IRQ_NONE = 0, IRQ_HANDLED = 1, IRQ_WAKE_THREAD = 2, }; 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, }; 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_NOMASK_QUIRK = 128, 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 support_mode { ALLOW_LEGACY = 0, DENY_LEGACY = 1, }; enum msi_domain_ids { MSI_DEFAULT_DOMAIN = 0, MSI_SECONDARY_DOMAIN = 1, MSI_MAX_DEVICE_IRQDOMAINS = 2, }; typedef int pci_power_t; typedef unsigned int pci_channel_state_t; typedef phys_addr_t resource_size_t; 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; }; typedef unsigned short pci_dev_flags_t; struct pci_vpd { struct mutex lock; unsigned int len; u8 cap; }; struct pci_bus; struct pci_slot; struct rcec_ea; struct pci_driver; struct pcie_link_state; struct pci_sriov; 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; struct rcec_ea *rcec_ea; struct pci_dev *rcec; 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; unsigned int imm_ready: 1; u8 pm_cap; 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; struct pcie_link_state *link_state; unsigned int ltr_path: 1; u16 l1ss; 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; pci_dev_flags_t dev_flags; atomic_t enable_cnt; u32 saved_config_space[16]; struct hlist_head saved_cap_space; int rom_attr_enabled; 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; union { struct pci_sriov *sriov; struct pci_dev *physfn; }; u16 ats_cap; u8 ats_stu; u16 pri_cap; u32 pri_reqs_alloc; unsigned int pasid_required: 1; u16 pasid_cap; u16 pasid_features; u16 acs_cap; phys_addr_t rom; size_t romlen; const char *driver_override; unsigned long priv_flags; u8 reset_methods[7]; }; typedef unsigned short pci_bus_flags_t; 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; }; 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 unsigned long irq_hw_number_t; 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_fwspec; 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 *); }; struct irq_fwspec { struct fwnode_handle *fwnode; int param_count; u32 param[16]; }; struct irq_common_data; struct irq_chip; struct irq_data { u32 mask; unsigned int irq; unsigned long hwirq; struct irq_common_data *common; struct irq_chip *chip; struct irq_domain *domain; struct irq_data *parent_data; void *chip_data; }; struct msi_desc; struct irq_common_data { unsigned int state_use_accessors; void *handler_data; struct msi_desc *msi_desc; cpumask_var_t affinity; cpumask_var_t effective_affinity; }; 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 msi_desc { unsigned int irq; unsigned int nvec_used; struct device *dev; struct msi_msg msg; struct irq_affinity_desc *affinity; const void *iommu_cookie; 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_affinity_desc { struct cpumask mask; unsigned int is_managed: 1; }; 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; }; 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_desc; typedef void (*irq_flow_handler_t)(struct irq_desc *); 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 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; long: 64; long: 64; long: 64; long: 64; long: 64; }; typedef enum irqreturn irqreturn_t; 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_domain_info; struct msi_parent_ops { u32 supported_flags; const char *prefix; bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *); }; struct msi_domain_ops; 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; }; struct irq_alloc_info; typedef struct irq_alloc_info msi_alloc_info_t; 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 *); }; 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 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 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 { struct list_head node; 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 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; }; struct msix_entry { u32 vector; u16 entry; }; struct msi_map { int index; int virq; }; typedef u32 acpi_status; typedef u16 acpi_owner_id; union acpi_parse_object; struct acpi_namespace_node; 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; }; union acpi_name_union { u32 integer; char ascii[4]; }; union acpi_operand_object; 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; }; struct acpi_walk_state; 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_thread_state; 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_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_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; }; typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); 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_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; }; typedef u64 acpi_io_address; 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_handle; 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_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; }; 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_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; }; 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_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; }; typedef u8 acpi_adr_space_type; typedef u64 acpi_size; typedef u32 acpi_mutex_handle; typedef u32 acpi_object_type; typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); 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; }; 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, }; 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_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_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_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]; }; 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)); enum uart_pm_state { UART_PM_STATE_ON = 0, UART_PM_STATE_OFF = 3, UART_PM_STATE_UNDEFINED = 4, }; 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 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 dmaengine_tx_result { DMA_TRANS_NOERROR = 0, DMA_TRANS_READ_FAILED = 1, DMA_TRANS_WRITE_FAILED = 2, DMA_TRANS_ABORTED = 3, }; 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, }; 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 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 gpio_desc; struct serial_iso7816 { __u32 flags; __u32 tg; __u32 sc_fi; __u32 sc_di; __u32 clk; __u32 reserved[5]; }; struct uart_state; struct console; 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 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; int 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; unsigned long sysrq; unsigned int 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 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; unsigned short bugs; bool fifo_bug; 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; int (*dl_read)(struct uart_8250_port *); void (*dl_write)(struct uart_8250_port *, int); 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 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; }; typedef unsigned int uint; 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; }; 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 dma_chan; typedef bool (*dma_filter_fn)(struct dma_chan *, void *); 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; }; typedef s32 dma_cookie_t; 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 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; }; 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_async_tx_descriptor; struct dma_interleaved_template; struct dma_slave_caps; 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; }; typedef void (*dma_async_tx_callback)(void *); struct dmaengine_result; typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); 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 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); }; 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_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 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 drm_debugfs_info { const char *name; int (*show)(struct seq_file *, void *); u32 driver_features; void *data; }; enum drm_ioctl_flags { DRM_AUTH = 1, DRM_MASTER = 2, DRM_ROOT_ONLY = 4, DRM_UNLOCKED = 16, DRM_RENDER_ALLOW = 32, }; enum drm_mode_status { MODE_OK = 0, MODE_HSYNC = 1, MODE_VSYNC = 2, MODE_H_ILLEGAL = 3, MODE_V_ILLEGAL = 4, MODE_BAD_WIDTH = 5, MODE_NOMODE = 6, MODE_NO_INTERLACE = 7, MODE_NO_DBLESCAN = 8, MODE_NO_VSCAN = 9, MODE_MEM = 10, MODE_VIRTUAL_X = 11, MODE_VIRTUAL_Y = 12, MODE_MEM_VIRT = 13, MODE_NOCLOCK = 14, MODE_CLOCK_HIGH = 15, MODE_CLOCK_LOW = 16, MODE_CLOCK_RANGE = 17, MODE_BAD_HVALUE = 18, MODE_BAD_VVALUE = 19, MODE_BAD_VSCAN = 20, MODE_HSYNC_NARROW = 21, MODE_HSYNC_WIDE = 22, MODE_HBLANK_NARROW = 23, MODE_HBLANK_WIDE = 24, MODE_VSYNC_NARROW = 25, MODE_VSYNC_WIDE = 26, MODE_VBLANK_NARROW = 27, MODE_VBLANK_WIDE = 28, MODE_PANEL = 29, MODE_INTERLACE_WIDTH = 30, MODE_ONE_WIDTH = 31, MODE_ONE_HEIGHT = 32, MODE_ONE_SIZE = 33, MODE_NO_REDUCED = 34, MODE_NO_STEREO = 35, MODE_NO_420 = 36, MODE_STALE = -3, MODE_BAD = -2, MODE_ERROR = -1, }; enum hdmi_picture_aspect { HDMI_PICTURE_ASPECT_NONE = 0, HDMI_PICTURE_ASPECT_4_3 = 1, HDMI_PICTURE_ASPECT_16_9 = 2, HDMI_PICTURE_ASPECT_64_27 = 3, HDMI_PICTURE_ASPECT_256_135 = 4, HDMI_PICTURE_ASPECT_RESERVED = 5, }; enum drm_color_encoding { DRM_COLOR_YCBCR_BT601 = 0, DRM_COLOR_YCBCR_BT709 = 1, DRM_COLOR_YCBCR_BT2020 = 2, DRM_COLOR_ENCODING_MAX = 3, }; enum drm_color_range { DRM_COLOR_YCBCR_LIMITED_RANGE = 0, DRM_COLOR_YCBCR_FULL_RANGE = 1, DRM_COLOR_RANGE_MAX = 2, }; enum drm_scaling_filter { DRM_SCALING_FILTER_DEFAULT = 0, DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, }; enum drm_plane_type { DRM_PLANE_TYPE_OVERLAY = 0, DRM_PLANE_TYPE_PRIMARY = 1, DRM_PLANE_TYPE_CURSOR = 2, }; enum drm_connector_registration_state { DRM_CONNECTOR_INITIALIZING = 0, DRM_CONNECTOR_REGISTERED = 1, DRM_CONNECTOR_UNREGISTERED = 2, }; enum drm_connector_status { connector_status_connected = 1, connector_status_disconnected = 2, connector_status_unknown = 3, }; enum subpixel_order { SubPixelUnknown = 0, SubPixelHorizontalRGB = 1, SubPixelHorizontalBGR = 2, SubPixelVerticalRGB = 3, SubPixelVerticalBGR = 4, SubPixelNone = 5, }; enum drm_link_status { DRM_LINK_STATUS_GOOD = 0, DRM_LINK_STATUS_BAD = 1, }; enum drm_mode_subconnector { DRM_MODE_SUBCONNECTOR_Automatic = 0, DRM_MODE_SUBCONNECTOR_Unknown = 0, DRM_MODE_SUBCONNECTOR_VGA = 1, DRM_MODE_SUBCONNECTOR_DVID = 3, DRM_MODE_SUBCONNECTOR_DVIA = 4, DRM_MODE_SUBCONNECTOR_Composite = 5, DRM_MODE_SUBCONNECTOR_SVIDEO = 6, DRM_MODE_SUBCONNECTOR_Component = 8, DRM_MODE_SUBCONNECTOR_SCART = 9, DRM_MODE_SUBCONNECTOR_DisplayPort = 10, DRM_MODE_SUBCONNECTOR_HDMIA = 11, DRM_MODE_SUBCONNECTOR_Native = 15, DRM_MODE_SUBCONNECTOR_Wireless = 18, }; enum drm_privacy_screen_status { PRIVACY_SCREEN_DISABLED = 0, PRIVACY_SCREEN_ENABLED = 1, PRIVACY_SCREEN_DISABLED_LOCKED = 2, PRIVACY_SCREEN_ENABLED_LOCKED = 3, }; enum drm_connector_force { DRM_FORCE_UNSPECIFIED = 0, DRM_FORCE_OFF = 1, DRM_FORCE_ON = 2, DRM_FORCE_ON_DIGITAL = 3, }; 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, }; enum drm_connector_tv_mode { DRM_MODE_TV_MODE_NTSC = 0, DRM_MODE_TV_MODE_NTSC_443 = 1, DRM_MODE_TV_MODE_NTSC_J = 2, DRM_MODE_TV_MODE_PAL = 3, DRM_MODE_TV_MODE_PAL_M = 4, DRM_MODE_TV_MODE_PAL_N = 5, DRM_MODE_TV_MODE_SECAM = 6, DRM_MODE_TV_MODE_MAX = 7, }; enum switch_power_state { DRM_SWITCH_POWER_ON = 0, DRM_SWITCH_POWER_OFF = 1, DRM_SWITCH_POWER_CHANGING = 2, DRM_SWITCH_POWER_DYNAMIC_OFF = 3, }; enum drm_debug_category { DRM_UT_CORE = 0, DRM_UT_DRIVER = 1, DRM_UT_KMS = 2, DRM_UT_PRIME = 3, DRM_UT_ATOMIC = 4, DRM_UT_VBL = 5, DRM_UT_STATE = 6, DRM_UT_LEASE = 7, DRM_UT_DP = 8, DRM_UT_DRMRES = 9, }; enum drm_bridge_attach_flags { DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1, }; enum drm_bridge_ops { DRM_BRIDGE_OP_DETECT = 1, DRM_BRIDGE_OP_EDID = 2, DRM_BRIDGE_OP_HPD = 4, DRM_BRIDGE_OP_MODES = 8, }; enum drm_driver_feature { DRIVER_GEM = 1, DRIVER_MODESET = 2, DRIVER_RENDER = 8, DRIVER_ATOMIC = 16, DRIVER_SYNCOBJ = 32, DRIVER_SYNCOBJ_TIMELINE = 64, DRIVER_COMPUTE_ACCEL = 128, DRIVER_USE_AGP = 33554432, DRIVER_LEGACY = 67108864, DRIVER_PCI_DMA = 134217728, DRIVER_SG = 268435456, DRIVER_HAVE_DMA = 536870912, DRIVER_HAVE_IRQ = 1073741824, }; struct drm_crtc; struct drm_pending_vblank_event; struct drm_crtc_commit { struct drm_crtc *crtc; struct kref ref; struct completion flip_done; struct completion hw_done; struct completion cleanup_done; struct list_head commit_entry; struct drm_pending_vblank_event *event; bool abort_completion; }; struct ww_acquire_ctx; struct ww_mutex { struct mutex base; struct ww_acquire_ctx *ctx; }; struct drm_modeset_lock { struct ww_mutex mutex; struct list_head head; }; struct drm_object_properties; struct drm_mode_object { uint32_t id; uint32_t type; struct drm_object_properties *properties; struct kref refcount; void (*free_cb)(struct kref *); }; struct drm_display_mode { int clock; u16 hdisplay; u16 hsync_start; u16 hsync_end; u16 htotal; u16 hskew; u16 vdisplay; u16 vsync_start; u16 vsync_end; u16 vtotal; u16 vscan; u32 flags; int crtc_clock; u16 crtc_hdisplay; u16 crtc_hblank_start; u16 crtc_hblank_end; u16 crtc_hsync_start; u16 crtc_hsync_end; u16 crtc_htotal; u16 crtc_hskew; u16 crtc_vdisplay; u16 crtc_vblank_start; u16 crtc_vblank_end; u16 crtc_vsync_start; u16 crtc_vsync_end; u16 crtc_vtotal; u16 width_mm; u16 height_mm; u8 type; bool expose_to_userspace; struct list_head head; char name[32]; enum drm_mode_status status; enum hdmi_picture_aspect picture_aspect_ratio; }; typedef u16 uint16_t; struct drm_property; struct drm_object_properties { int count; struct drm_property *properties[24]; uint64_t values[24]; }; struct drm_crtc_crc_entry; struct drm_crtc_crc { spinlock_t lock; const char *source; bool opened; bool overflow; struct drm_crtc_crc_entry *entries; int head; int tail; size_t values_cnt; wait_queue_head_t wq; }; struct drm_device; struct drm_plane; struct drm_crtc_funcs; struct drm_crtc_helper_funcs; struct drm_crtc_state; struct drm_self_refresh_data; struct drm_crtc { struct drm_device *dev; struct device_node *port; struct list_head head; char *name; struct drm_modeset_lock mutex; struct drm_mode_object base; struct drm_plane *primary; struct drm_plane *cursor; unsigned int index; int cursor_x; int cursor_y; bool enabled; struct drm_display_mode mode; struct drm_display_mode hwmode; int x; int y; const struct drm_crtc_funcs *funcs; uint32_t gamma_size; uint16_t *gamma_store; const struct drm_crtc_helper_funcs *helper_private; struct drm_object_properties properties; struct drm_property *scaling_filter_property; struct drm_crtc_state *state; struct list_head commit_list; spinlock_t commit_lock; struct dentry *debugfs_entry; struct drm_crtc_crc crc; unsigned int fence_context; spinlock_t fence_lock; unsigned long fence_seqno; char timeline_name[32]; struct drm_self_refresh_data *self_refresh_data; }; struct drm_modeset_acquire_ctx; struct drm_mode_config_funcs; struct drm_atomic_state; struct drm_mode_config_helper_funcs; struct drm_mode_config { struct mutex mutex; struct drm_modeset_lock connection_mutex; struct drm_modeset_acquire_ctx *acquire_ctx; struct mutex idr_mutex; struct idr object_idr; struct idr tile_idr; struct mutex fb_lock; int num_fb; struct list_head fb_list; spinlock_t connector_list_lock; int num_connector; struct ida connector_ida; struct list_head connector_list; struct llist_head connector_free_list; struct work_struct connector_free_work; int num_encoder; struct list_head encoder_list; int num_total_plane; struct list_head plane_list; int num_crtc; struct list_head crtc_list; struct list_head property_list; struct list_head privobj_list; int min_width; int min_height; int max_width; int max_height; const struct drm_mode_config_funcs *funcs; bool poll_enabled; bool poll_running; bool delayed_event; struct delayed_work output_poll_work; struct mutex blob_lock; struct list_head property_blob_list; struct drm_property *edid_property; struct drm_property *dpms_property; struct drm_property *path_property; struct drm_property *tile_property; struct drm_property *link_status_property; struct drm_property *plane_type_property; struct drm_property *prop_src_x; struct drm_property *prop_src_y; struct drm_property *prop_src_w; struct drm_property *prop_src_h; struct drm_property *prop_crtc_x; struct drm_property *prop_crtc_y; struct drm_property *prop_crtc_w; struct drm_property *prop_crtc_h; struct drm_property *prop_fb_id; struct drm_property *prop_in_fence_fd; struct drm_property *prop_out_fence_ptr; struct drm_property *prop_crtc_id; struct drm_property *prop_fb_damage_clips; struct drm_property *prop_active; struct drm_property *prop_mode_id; struct drm_property *prop_vrr_enabled; struct drm_property *dvi_i_subconnector_property; struct drm_property *dvi_i_select_subconnector_property; struct drm_property *dp_subconnector_property; struct drm_property *tv_subconnector_property; struct drm_property *tv_select_subconnector_property; struct drm_property *legacy_tv_mode_property; struct drm_property *tv_mode_property; struct drm_property *tv_left_margin_property; struct drm_property *tv_right_margin_property; struct drm_property *tv_top_margin_property; struct drm_property *tv_bottom_margin_property; struct drm_property *tv_brightness_property; struct drm_property *tv_contrast_property; struct drm_property *tv_flicker_reduction_property; struct drm_property *tv_overscan_property; struct drm_property *tv_saturation_property; struct drm_property *tv_hue_property; struct drm_property *scaling_mode_property; struct drm_property *aspect_ratio_property; struct drm_property *content_type_property; struct drm_property *degamma_lut_property; struct drm_property *degamma_lut_size_property; struct drm_property *ctm_property; struct drm_property *gamma_lut_property; struct drm_property *gamma_lut_size_property; struct drm_property *suggested_x_property; struct drm_property *suggested_y_property; struct drm_property *non_desktop_property; struct drm_property *panel_orientation_property; struct drm_property *writeback_fb_id_property; struct drm_property *writeback_pixel_formats_property; struct drm_property *writeback_out_fence_ptr_property; struct drm_property *hdr_output_metadata_property; struct drm_property *content_protection_property; struct drm_property *hdcp_content_type_property; uint32_t preferred_depth; uint32_t prefer_shadow; bool prefer_shadow_fbdev; bool quirk_addfb_prefer_xbgr_30bpp; bool quirk_addfb_prefer_host_byte_order; bool async_page_flip; bool fb_modifiers_not_supported; bool normalize_zpos; struct drm_property *modifiers_property; uint32_t cursor_width; uint32_t cursor_height; struct drm_atomic_state *suspend_state; const struct drm_mode_config_helper_funcs *helper_private; }; struct drm_vram_mm; struct drm_driver; struct drm_minor; struct drm_master; struct drm_vblank_crtc; struct drm_vma_offset_manager; struct drm_fb_helper; struct drm_device { int if_version; struct kref ref; struct device *dev; struct { struct list_head resources; void *final_kfree; spinlock_t lock; } managed; const struct drm_driver *driver; void *dev_private; struct drm_minor *primary; struct drm_minor *render; struct drm_minor *accel; bool registered; struct drm_master *master; u32 driver_features; bool unplugged; struct inode *anon_inode; char *unique; struct mutex struct_mutex; struct mutex master_mutex; atomic_t open_count; struct mutex filelist_mutex; struct list_head filelist; struct list_head filelist_internal; struct mutex clientlist_mutex; struct list_head clientlist; bool vblank_disable_immediate; struct drm_vblank_crtc *vblank; spinlock_t vblank_time_lock; spinlock_t vbl_lock; u32 max_vblank_count; struct list_head vblank_event_list; spinlock_t event_lock; unsigned int num_crtcs; struct drm_mode_config mode_config; struct mutex object_name_lock; struct idr object_name_idr; struct drm_vma_offset_manager *vma_offset_manager; struct drm_vram_mm *vram_mm; enum switch_power_state switch_power_state; struct drm_fb_helper *fb_helper; struct mutex debugfs_mutex; struct list_head debugfs_list; }; struct drm_file; struct drm_gem_object; struct dma_buf; struct dma_buf_attachment; struct drm_mode_create_dumb; struct drm_ioctl_desc; struct drm_driver { int (*load)(struct drm_device *, unsigned long); int (*open)(struct drm_device *, struct drm_file *); void (*postclose)(struct drm_device *, struct drm_file *); void (*lastclose)(struct drm_device *); void (*unload)(struct drm_device *); void (*release)(struct drm_device *); void (*master_set)(struct drm_device *, struct drm_file *, bool); void (*master_drop)(struct drm_device *, struct drm_file *); void (*debugfs_init)(struct drm_minor *); struct drm_gem_object * (*gem_create_object)(struct drm_device *, size_t); int (*prime_handle_to_fd)(struct drm_device *, struct drm_file *, uint32_t, uint32_t, int *); int (*prime_fd_to_handle)(struct drm_device *, struct drm_file *, int, uint32_t *); struct drm_gem_object * (*gem_prime_import)(struct drm_device *, struct dma_buf *); struct drm_gem_object * (*gem_prime_import_sg_table)(struct drm_device *, struct dma_buf_attachment *, struct sg_table *); int (*gem_prime_mmap)(struct drm_gem_object *, struct vm_area_struct *); int (*dumb_create)(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *); int (*dumb_map_offset)(struct drm_file *, struct drm_device *, uint32_t, uint64_t *); int (*dumb_destroy)(struct drm_file *, struct drm_device *, uint32_t); int major; int minor; int patchlevel; char *name; char *desc; char *date; u32 driver_features; const struct drm_ioctl_desc *ioctls; int num_ioctls; const struct file_operations *fops; }; typedef unsigned int drm_magic_t; struct drm_prime_file_private { struct mutex lock; struct rb_root dmabufs; struct rb_root handles; }; struct drm_file { bool authenticated; bool stereo_allowed; bool universal_planes; bool atomic; bool aspect_ratio_allowed; bool writeback_connectors; bool was_master; bool is_master; struct drm_master *master; spinlock_t master_lookup_lock; struct pid *pid; drm_magic_t magic; struct list_head lhead; struct drm_minor *minor; struct idr object_idr; spinlock_t table_lock; struct idr syncobj_idr; spinlock_t syncobj_table_lock; struct file *filp; void *driver_priv; struct list_head fbs; struct mutex fbs_lock; struct list_head blobs; wait_queue_head_t event_wait; struct list_head pending_event_list; struct list_head event_list; int event_space; struct mutex event_read_lock; struct drm_prime_file_private prime; }; struct drm_master { struct kref refcount; struct drm_device *dev; char *unique; int unique_len; struct idr magic_map; void *driver_priv; struct drm_master *lessor; int lessee_id; struct list_head lessee_list; struct list_head lessees; struct idr leases; struct idr lessee_idr; }; struct drm_minor { int index; int type; struct device *kdev; struct drm_device *dev; struct dentry *debugfs_root; struct list_head debugfs_list; struct mutex debugfs_lock; }; struct sg_table { struct scatterlist *sgl; unsigned int nents; unsigned int orig_nents; }; struct drm_mode_create_dumb { __u32 height; __u32 width; __u32 bpp; __u32 flags; __u32 handle; __u32 pitch; __u64 size; }; typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *); struct drm_ioctl_desc { unsigned int cmd; enum drm_ioctl_flags flags; drm_ioctl_t *func; const char *name; }; struct kthread_worker; struct drm_vblank_crtc { struct drm_device *dev; wait_queue_head_t queue; struct timer_list disable_timer; seqlock_t seqlock; atomic64_t count; ktime_t time; atomic_t refcount; u32 last; u32 max_vblank_count; unsigned int inmodeset; unsigned int pipe; int framedur_ns; int linedur_ns; struct drm_display_mode hwmode; bool enabled; struct kthread_worker *worker; struct list_head pending_work; wait_queue_head_t work_wait_queue; }; struct kthread_work; 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; }; typedef void (*kthread_work_func_t)(struct kthread_work *); struct kthread_work { struct list_head node; kthread_work_func_t func; struct kthread_worker *worker; int canceling; }; struct ww_acquire_ctx { struct task_struct *task; unsigned long stamp; unsigned int acquired; unsigned short wounded; unsigned short is_wait_die; }; typedef u32 depot_stack_handle_t; struct drm_modeset_acquire_ctx { struct ww_acquire_ctx ww_ctx; struct drm_modeset_lock *contended; depot_stack_handle_t stack_depot; struct list_head locked; bool trylock_only; bool interruptible; }; struct drm_framebuffer; struct drm_mode_fb_cmd2; struct drm_format_info; struct drm_mode_config_funcs { struct drm_framebuffer * (*fb_create)(struct drm_device *, struct drm_file *, const struct drm_mode_fb_cmd2 *); const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *); void (*output_poll_changed)(struct drm_device *); enum drm_mode_status (*mode_valid)(struct drm_device *, const struct drm_display_mode *); int (*atomic_check)(struct drm_device *, struct drm_atomic_state *); int (*atomic_commit)(struct drm_device *, struct drm_atomic_state *, bool); struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device *); void (*atomic_state_clear)(struct drm_atomic_state *); void (*atomic_state_free)(struct drm_atomic_state *); }; struct drm_framebuffer_funcs; struct drm_framebuffer { struct drm_device *dev; struct list_head head; struct drm_mode_object base; char comm[16]; const struct drm_format_info *format; const struct drm_framebuffer_funcs *funcs; unsigned int pitches[4]; unsigned int offsets[4]; uint64_t modifier; unsigned int width; unsigned int height; int flags; int hot_x; int hot_y; struct list_head filp_head; struct drm_gem_object *obj[4]; }; struct drm_property { struct list_head head; struct drm_mode_object base; uint32_t flags; char name[32]; uint32_t num_values; uint64_t *values; struct drm_device *dev; struct list_head enum_list; }; struct drm_format_info { u32 format; u8 depth; u8 num_planes; union { u8 cpp[4]; u8 char_per_block[4]; }; u8 block_w[4]; u8 block_h[4]; u8 hsub; u8 vsub; bool has_alpha; bool is_yuv; bool is_color_indexed; }; struct drm_clip_rect; struct drm_framebuffer_funcs { void (*destroy)(struct drm_framebuffer *); int (*create_handle)(struct drm_framebuffer *, struct drm_file *, unsigned int *); int (*dirty)(struct drm_framebuffer *, struct drm_file *, unsigned int, unsigned int, struct drm_clip_rect *, unsigned int); }; struct drm_clip_rect { unsigned short x1; unsigned short y1; unsigned short x2; unsigned short y2; }; struct drm_mode_fb_cmd2 { __u32 fb_id; __u32 width; __u32 height; __u32 pixel_format; __u32 flags; __u32 handles[4]; __u32 pitches[4]; __u32 offsets[4]; __u64 modifier[4]; }; struct __drm_planes_state; struct __drm_crtcs_state; struct __drm_connnectors_state; struct __drm_private_objs_state; struct drm_atomic_state { struct kref ref; struct drm_device *dev; bool allow_modeset: 1; bool legacy_cursor_update: 1; bool async_update: 1; bool duplicated: 1; struct __drm_planes_state *planes; struct __drm_crtcs_state *crtcs; int num_connector; struct __drm_connnectors_state *connectors; int num_private_objs; struct __drm_private_objs_state *private_objs; struct drm_modeset_acquire_ctx *acquire_ctx; struct drm_crtc_commit *fake_commit; struct work_struct commit_work; }; struct drm_plane_state; struct __drm_planes_state { struct drm_plane *ptr; struct drm_plane_state *state; struct drm_plane_state *old_state; struct drm_plane_state *new_state; }; struct drm_plane_funcs; struct drm_plane_helper_funcs; struct drm_plane { struct drm_device *dev; struct list_head head; char *name; struct drm_modeset_lock mutex; struct drm_mode_object base; uint32_t possible_crtcs; uint32_t *format_types; unsigned int format_count; bool format_default; uint64_t *modifiers; unsigned int modifier_count; struct drm_crtc *crtc; struct drm_framebuffer *fb; struct drm_framebuffer *old_fb; const struct drm_plane_funcs *funcs; struct drm_object_properties properties; enum drm_plane_type type; unsigned int index; const struct drm_plane_helper_funcs *helper_private; struct drm_plane_state *state; struct drm_property *alpha_property; struct drm_property *zpos_property; struct drm_property *rotation_property; struct drm_property *blend_mode_property; struct drm_property *color_encoding_property; struct drm_property *color_range_property; struct drm_property *scaling_filter_property; }; struct drm_printer; struct drm_plane_funcs { int (*update_plane)(struct drm_plane *, struct drm_crtc *, struct drm_framebuffer *, int, int, unsigned int, unsigned int, uint32_t, uint32_t, uint32_t, uint32_t, struct drm_modeset_acquire_ctx *); int (*disable_plane)(struct drm_plane *, struct drm_modeset_acquire_ctx *); void (*destroy)(struct drm_plane *); void (*reset)(struct drm_plane *); int (*set_property)(struct drm_plane *, struct drm_property *, uint64_t); struct drm_plane_state * (*atomic_duplicate_state)(struct drm_plane *); void (*atomic_destroy_state)(struct drm_plane *, struct drm_plane_state *); int (*atomic_set_property)(struct drm_plane *, struct drm_plane_state *, struct drm_property *, uint64_t); int (*atomic_get_property)(struct drm_plane *, const struct drm_plane_state *, struct drm_property *, uint64_t *); int (*late_register)(struct drm_plane *); void (*early_unregister)(struct drm_plane *); void (*atomic_print_state)(struct drm_printer *, const struct drm_plane_state *); bool (*format_mod_supported)(struct drm_plane *, uint32_t, uint64_t); }; struct drm_rect { int x1; int y1; int x2; int y2; }; struct dma_fence; struct drm_property_blob; struct drm_plane_state { struct drm_plane *plane; struct drm_crtc *crtc; struct drm_framebuffer *fb; struct dma_fence *fence; int32_t crtc_x; int32_t crtc_y; uint32_t crtc_w; uint32_t crtc_h; uint32_t src_x; uint32_t src_y; uint32_t src_h; uint32_t src_w; u16 alpha; uint16_t pixel_blend_mode; unsigned int rotation; unsigned int zpos; unsigned int normalized_zpos; enum drm_color_encoding color_encoding; enum drm_color_range color_range; struct drm_property_blob *fb_damage_clips; struct drm_rect src; struct drm_rect dst; bool visible; enum drm_scaling_filter scaling_filter; struct drm_crtc_commit *commit; struct drm_atomic_state *state; }; 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); }; struct drm_property_blob { struct drm_mode_object base; struct drm_device *dev; struct list_head head_global; struct list_head head_file; size_t length; void *data; }; struct drm_printer { void (*printfn)(struct drm_printer *, struct va_format *); void (*puts)(struct drm_printer *, const char *); void *arg; const char *prefix; }; struct drm_plane_helper_funcs { int (*prepare_fb)(struct drm_plane *, struct drm_plane_state *); void (*cleanup_fb)(struct drm_plane *, struct drm_plane_state *); int (*begin_fb_access)(struct drm_plane *, struct drm_plane_state *); void (*end_fb_access)(struct drm_plane *, struct drm_plane_state *); int (*atomic_check)(struct drm_plane *, struct drm_atomic_state *); void (*atomic_update)(struct drm_plane *, struct drm_atomic_state *); void (*atomic_disable)(struct drm_plane *, struct drm_atomic_state *); int (*atomic_async_check)(struct drm_plane *, struct drm_atomic_state *); void (*atomic_async_update)(struct drm_plane *, struct drm_atomic_state *); }; struct __drm_crtcs_state { struct drm_crtc *ptr; struct drm_crtc_state *state; struct drm_crtc_state *old_state; struct drm_crtc_state *new_state; struct drm_crtc_commit *commit; s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; u64 last_vblank_count; }; struct drm_crtc_state { struct drm_crtc *crtc; bool enable; bool active; bool planes_changed: 1; bool mode_changed: 1; bool active_changed: 1; bool connectors_changed: 1; bool zpos_changed: 1; bool color_mgmt_changed: 1; bool no_vblank: 1; u32 plane_mask; u32 connector_mask; u32 encoder_mask; struct drm_display_mode adjusted_mode; struct drm_display_mode mode; struct drm_property_blob *mode_blob; struct drm_property_blob *degamma_lut; struct drm_property_blob *ctm; struct drm_property_blob *gamma_lut; u32 target_vblank; bool async_flip; bool vrr_enabled; bool self_refresh_active; enum drm_scaling_filter scaling_filter; struct drm_pending_vblank_event *event; struct drm_crtc_commit *commit; struct drm_atomic_state *state; }; struct drm_event { __u32 type; __u32 length; }; struct drm_event_vblank { struct drm_event base; __u64 user_data; __u32 tv_sec; __u32 tv_usec; __u32 sequence; __u32 crtc_id; }; struct drm_event_crtc_sequence { struct drm_event base; __u64 user_data; __s64 time_ns; __u64 sequence; }; struct drm_pending_event { struct completion *completion; void (*completion_release)(struct completion *); struct drm_event *event; struct dma_fence *fence; struct drm_file *file_priv; struct list_head link; struct list_head pending_link; }; struct drm_pending_vblank_event { struct drm_pending_event base; unsigned int pipe; u64 sequence; union { struct drm_event base; struct drm_event_vblank vbl; struct drm_event_crtc_sequence seq; } event; }; struct drm_connector; struct drm_connector_state; struct __drm_connnectors_state { struct drm_connector *ptr; struct drm_connector_state *state; struct drm_connector_state *old_state; struct drm_connector_state *new_state; s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; }; struct drm_scrambling { bool supported; bool low_rates; }; struct drm_scdc { bool supported; bool read_request; struct drm_scrambling scrambling; }; struct drm_hdmi_dsc_cap { bool v_1p2; bool native_420; bool all_bpp; u8 bpc_supported; u8 max_slices; int clk_per_slice; u8 max_lanes; u8 max_frl_rate_per_lane; u8 total_chunk_kbytes; }; struct drm_hdmi_info { struct drm_scdc scdc; unsigned long y420_vdb_modes[4]; unsigned long y420_cmdb_modes[4]; u8 y420_dc_modes; u8 max_frl_rate_per_lane; u8 max_lanes; struct drm_hdmi_dsc_cap dsc_cap; }; struct drm_monitor_range_info { u16 min_vfreq; u16 max_vfreq; }; struct drm_luminance_range_info { u32 min_luminance; u32 max_luminance; }; struct drm_display_info { unsigned int width_mm; unsigned int height_mm; unsigned int bpc; enum subpixel_order subpixel_order; int panel_orientation; u32 color_formats; const u32 *bus_formats; unsigned int num_bus_formats; u32 bus_flags; int max_tmds_clock; bool dvi_dual; bool is_hdmi; bool has_hdmi_infoframe; bool rgb_quant_range_selectable; u8 edid_hdmi_rgb444_dc_modes; u8 edid_hdmi_ycbcr444_dc_modes; u8 cea_rev; struct drm_hdmi_info hdmi; bool non_desktop; struct drm_monitor_range_info monitor_range; struct drm_luminance_range_info luminance_range; u8 mso_stream_count; u8 mso_pixel_overlap; u32 max_dsc_bpp; u8 *vics; int vics_len; u32 quirks; }; struct drm_privacy_screen; struct drm_connector_tv_margins { unsigned int bottom; unsigned int left; unsigned int right; unsigned int top; }; struct drm_cmdline_mode { char name[32]; bool specified; bool refresh_specified; bool bpp_specified; unsigned int pixel_clock; int xres; int yres; int bpp; int refresh; bool rb; bool interlace; bool cvt; bool margins; enum drm_connector_force force; unsigned int rotation_reflection; enum drm_panel_orientation panel_orientation; struct drm_connector_tv_margins tv_margins; enum drm_connector_tv_mode tv_mode; bool tv_mode_specified; }; struct hdr_static_metadata { __u8 eotf; __u8 metadata_type; __u16 max_cll; __u16 max_fall; __u16 min_cll; }; struct hdr_sink_metadata { __u32 metadata_type; union { struct hdr_static_metadata hdmi_type1; }; }; struct drm_connector_funcs; struct drm_connector_helper_funcs; struct drm_edid; struct drm_encoder; struct i2c_adapter; struct drm_tile_group; struct drm_connector { struct drm_device *dev; struct device *kdev; struct device_attribute *attr; struct fwnode_handle *fwnode; struct list_head head; struct list_head global_connector_list_entry; struct drm_mode_object base; char *name; struct mutex mutex; unsigned int index; int connector_type; int connector_type_id; bool interlace_allowed; bool doublescan_allowed; bool stereo_allowed; bool ycbcr_420_allowed; enum drm_connector_registration_state registration_state; struct list_head modes; enum drm_connector_status status; struct list_head probed_modes; struct drm_display_info display_info; const struct drm_connector_funcs *funcs; struct drm_property_blob *edid_blob_ptr; struct drm_object_properties properties; struct drm_property *scaling_mode_property; struct drm_property *vrr_capable_property; struct drm_property *colorspace_property; struct drm_property_blob *path_blob_ptr; struct drm_property *max_bpc_property; struct drm_privacy_screen *privacy_screen; struct notifier_block privacy_screen_notifier; struct drm_property *privacy_screen_sw_state_property; struct drm_property *privacy_screen_hw_state_property; uint8_t polled; int dpms; const struct drm_connector_helper_funcs *helper_private; struct drm_cmdline_mode cmdline_mode; enum drm_connector_force force; const struct drm_edid *edid_override; struct mutex edid_override_mutex; u64 epoch_counter; u32 possible_encoders; struct drm_encoder *encoder; uint8_t eld[128]; bool latency_present[2]; int video_latency[2]; int audio_latency[2]; struct i2c_adapter *ddc; int null_edid_counter; unsigned int bad_edid_counter; bool edid_corrupt; u8 real_edid_checksum; struct dentry *debugfs_entry; struct drm_connector_state *state; struct drm_property_blob *tile_blob_ptr; bool has_tile; struct drm_tile_group *tile_group; bool tile_is_single_monitor; uint8_t num_h_tile; uint8_t num_v_tile; uint8_t tile_h_loc; uint8_t tile_v_loc; uint16_t tile_h_size; uint16_t tile_v_size; struct llist_node free_node; struct hdr_sink_metadata hdr_sink_metadata; }; struct drm_connector_funcs { int (*dpms)(struct drm_connector *, int); void (*reset)(struct drm_connector *); enum drm_connector_status (*detect)(struct drm_connector *, bool); void (*force)(struct drm_connector *); int (*fill_modes)(struct drm_connector *, uint32_t, uint32_t); int (*set_property)(struct drm_connector *, struct drm_property *, uint64_t); int (*late_register)(struct drm_connector *); void (*early_unregister)(struct drm_connector *); void (*destroy)(struct drm_connector *); struct drm_connector_state * (*atomic_duplicate_state)(struct drm_connector *); void (*atomic_destroy_state)(struct drm_connector *, struct drm_connector_state *); int (*atomic_set_property)(struct drm_connector *, struct drm_connector_state *, struct drm_property *, uint64_t); int (*atomic_get_property)(struct drm_connector *, const struct drm_connector_state *, struct drm_property *, uint64_t *); void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state *); void (*oob_hotplug_event)(struct drm_connector *); void (*debugfs_init)(struct drm_connector *, struct dentry *); }; struct drm_tv_connector_state { enum drm_mode_subconnector select_subconnector; enum drm_mode_subconnector subconnector; struct drm_connector_tv_margins margins; unsigned int legacy_mode; unsigned int mode; unsigned int brightness; unsigned int contrast; unsigned int flicker_reduction; unsigned int overscan; unsigned int saturation; unsigned int hue; }; struct drm_writeback_job; struct drm_connector_state { struct drm_connector *connector; struct drm_crtc *crtc; struct drm_encoder *best_encoder; enum drm_link_status link_status; struct drm_atomic_state *state; struct drm_crtc_commit *commit; struct drm_tv_connector_state tv; bool self_refresh_aware; enum hdmi_picture_aspect picture_aspect_ratio; unsigned int content_type; unsigned int hdcp_content_type; unsigned int scaling_mode; unsigned int content_protection; u32 colorspace; struct drm_writeback_job *writeback_job; u8 max_requested_bpc; u8 max_bpc; enum drm_privacy_screen_status privacy_screen_sw_state; struct drm_property_blob *hdr_output_metadata; }; struct drm_encoder_funcs; struct drm_encoder_helper_funcs; struct drm_encoder { struct drm_device *dev; struct list_head head; struct drm_mode_object base; char *name; int encoder_type; unsigned int index; uint32_t possible_crtcs; uint32_t possible_clones; struct drm_crtc *crtc; struct list_head bridge_chain; const struct drm_encoder_funcs *funcs; const struct drm_encoder_helper_funcs *helper_private; }; struct drm_encoder_funcs { void (*reset)(struct drm_encoder *); void (*destroy)(struct drm_encoder *); int (*late_register)(struct drm_encoder *); void (*early_unregister)(struct drm_encoder *); }; struct drm_encoder_helper_funcs { void (*dpms)(struct drm_encoder *, int); enum drm_mode_status (*mode_valid)(struct drm_encoder *, const struct drm_display_mode *); bool (*mode_fixup)(struct drm_encoder *, const struct drm_display_mode *, struct drm_display_mode *); void (*prepare)(struct drm_encoder *); void (*commit)(struct drm_encoder *); void (*mode_set)(struct drm_encoder *, struct drm_display_mode *, struct drm_display_mode *); void (*atomic_mode_set)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *); enum drm_connector_status (*detect)(struct drm_encoder *, struct drm_connector *); void (*atomic_disable)(struct drm_encoder *, struct drm_atomic_state *); void (*atomic_enable)(struct drm_encoder *, struct drm_atomic_state *); void (*disable)(struct drm_encoder *); void (*enable)(struct drm_encoder *); int (*atomic_check)(struct drm_encoder *, struct drm_crtc_state *, struct drm_connector_state *); }; struct drm_writeback_connector; struct drm_writeback_job { struct drm_writeback_connector *connector; bool prepared; struct work_struct cleanup_work; struct list_head list_entry; struct drm_framebuffer *fb; struct dma_fence *out_fence; void *priv; }; struct drm_writeback_connector { struct drm_connector base; struct drm_encoder encoder; struct drm_property_blob *pixel_formats_blob_ptr; spinlock_t job_lock; struct list_head job_queue; unsigned int fence_context; spinlock_t fence_lock; unsigned long fence_seqno; char timeline_name[32]; }; struct drm_connector_helper_funcs { int (*get_modes)(struct drm_connector *); int (*detect_ctx)(struct drm_connector *, struct drm_modeset_acquire_ctx *, bool); enum drm_mode_status (*mode_valid)(struct drm_connector *, struct drm_display_mode *); int (*mode_valid_ctx)(struct drm_connector *, struct drm_display_mode *, struct drm_modeset_acquire_ctx *, enum drm_mode_status *); struct drm_encoder * (*best_encoder)(struct drm_connector *); struct drm_encoder * (*atomic_best_encoder)(struct drm_connector *, struct drm_atomic_state *); int (*atomic_check)(struct drm_connector *, struct drm_atomic_state *); void (*atomic_commit)(struct drm_connector *, struct drm_atomic_state *); int (*prepare_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *); void (*cleanup_writeback_job)(struct drm_writeback_connector *, struct drm_writeback_job *); void (*enable_hpd)(struct drm_connector *); void (*disable_hpd)(struct drm_connector *); }; struct edid; struct drm_edid { size_t size; const struct edid *edid; }; struct drm_tile_group { struct kref refcount; struct drm_device *dev; int id; u8 group_data[8]; }; struct drm_private_obj; struct drm_private_state; struct __drm_private_objs_state { struct drm_private_obj *ptr; struct drm_private_state *state; struct drm_private_state *old_state; struct drm_private_state *new_state; }; struct drm_private_state_funcs; struct drm_private_obj { struct list_head head; struct drm_modeset_lock lock; struct drm_private_state *state; const struct drm_private_state_funcs *funcs; }; struct drm_private_state { struct drm_atomic_state *state; struct drm_private_obj *obj; }; struct drm_private_state_funcs { struct drm_private_state * (*atomic_duplicate_state)(struct drm_private_obj *); void (*atomic_destroy_state)(struct drm_private_obj *, struct drm_private_state *); void (*atomic_print_state)(struct drm_printer *, const struct drm_private_state *); }; struct drm_mode_config_helper_funcs { void (*atomic_commit_tail)(struct drm_atomic_state *); int (*atomic_commit_setup)(struct drm_atomic_state *); }; struct drm_mode_set; struct drm_crtc_funcs { void (*reset)(struct drm_crtc *); int (*cursor_set)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t); int (*cursor_set2)(struct drm_crtc *, struct drm_file *, uint32_t, uint32_t, uint32_t, int32_t, int32_t); int (*cursor_move)(struct drm_crtc *, int, int); int (*gamma_set)(struct drm_crtc *, u16 *, u16 *, u16 *, uint32_t, struct drm_modeset_acquire_ctx *); void (*destroy)(struct drm_crtc *); int (*set_config)(struct drm_mode_set *, struct drm_modeset_acquire_ctx *); int (*page_flip)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, struct drm_modeset_acquire_ctx *); int (*page_flip_target)(struct drm_crtc *, struct drm_framebuffer *, struct drm_pending_vblank_event *, uint32_t, uint32_t, struct drm_modeset_acquire_ctx *); int (*set_property)(struct drm_crtc *, struct drm_property *, uint64_t); struct drm_crtc_state * (*atomic_duplicate_state)(struct drm_crtc *); void (*atomic_destroy_state)(struct drm_crtc *, struct drm_crtc_state *); int (*atomic_set_property)(struct drm_crtc *, struct drm_crtc_state *, struct drm_property *, uint64_t); int (*atomic_get_property)(struct drm_crtc *, const struct drm_crtc_state *, struct drm_property *, uint64_t *); int (*late_register)(struct drm_crtc *); void (*early_unregister)(struct drm_crtc *); int (*set_crc_source)(struct drm_crtc *, const char *); int (*verify_crc_source)(struct drm_crtc *, const char *, size_t *); const char * const * (*get_crc_sources)(struct drm_crtc *, size_t *); void (*atomic_print_state)(struct drm_printer *, const struct drm_crtc_state *); u32 (*get_vblank_counter)(struct drm_crtc *); int (*enable_vblank)(struct drm_crtc *); void (*disable_vblank)(struct drm_crtc *); bool (*get_vblank_timestamp)(struct drm_crtc *, int *, ktime_t *, bool); }; struct drm_mode_set { struct drm_framebuffer *fb; struct drm_crtc *crtc; struct drm_display_mode *mode; uint32_t x; uint32_t y; struct drm_connector **connectors; size_t num_connectors; }; enum mode_set_atomic { LEAVE_ATOMIC_MODE_SET = 0, ENTER_ATOMIC_MODE_SET = 1, }; struct drm_crtc_helper_funcs { void (*dpms)(struct drm_crtc *, int); void (*prepare)(struct drm_crtc *); void (*commit)(struct drm_crtc *); enum drm_mode_status (*mode_valid)(struct drm_crtc *, const struct drm_display_mode *); bool (*mode_fixup)(struct drm_crtc *, const struct drm_display_mode *, struct drm_display_mode *); int (*mode_set)(struct drm_crtc *, struct drm_display_mode *, struct drm_display_mode *, int, int, struct drm_framebuffer *); void (*mode_set_nofb)(struct drm_crtc *); int (*mode_set_base)(struct drm_crtc *, int, int, struct drm_framebuffer *); int (*mode_set_base_atomic)(struct drm_crtc *, struct drm_framebuffer *, int, int, enum mode_set_atomic); void (*disable)(struct drm_crtc *); int (*atomic_check)(struct drm_crtc *, struct drm_atomic_state *); void (*atomic_begin)(struct drm_crtc *, struct drm_atomic_state *); void (*atomic_flush)(struct drm_crtc *, struct drm_atomic_state *); void (*atomic_enable)(struct drm_crtc *, struct drm_atomic_state *); void (*atomic_disable)(struct drm_crtc *, struct drm_atomic_state *); bool (*get_scanout_position)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); }; struct drm_crtc_crc_entry { bool has_frame_counter; uint32_t frame; uint32_t crcs[10]; }; struct drm_bridge_timings; struct drm_bridge_funcs; struct drm_bridge { struct drm_private_obj base; struct drm_device *dev; struct drm_encoder *encoder; struct list_head chain_node; struct list_head list; const struct drm_bridge_timings *timings; const struct drm_bridge_funcs *funcs; void *driver_private; enum drm_bridge_ops ops; int type; bool interlace_allowed; bool pre_enable_prev_first; struct i2c_adapter *ddc; struct mutex hpd_mutex; void (*hpd_cb)(void *, enum drm_connector_status); void *hpd_data; }; struct drm_bridge_timings { u32 input_bus_flags; u32 setup_time_ps; u32 hold_time_ps; bool dual_link; }; struct drm_bridge_state; struct drm_bridge_funcs { int (*attach)(struct drm_bridge *, enum drm_bridge_attach_flags); void (*detach)(struct drm_bridge *); enum drm_mode_status (*mode_valid)(struct drm_bridge *, const struct drm_display_info *, const struct drm_display_mode *); bool (*mode_fixup)(struct drm_bridge *, const struct drm_display_mode *, struct drm_display_mode *); void (*disable)(struct drm_bridge *); void (*post_disable)(struct drm_bridge *); void (*mode_set)(struct drm_bridge *, const struct drm_display_mode *, const struct drm_display_mode *); void (*pre_enable)(struct drm_bridge *); void (*enable)(struct drm_bridge *); void (*atomic_pre_enable)(struct drm_bridge *, struct drm_bridge_state *); void (*atomic_enable)(struct drm_bridge *, struct drm_bridge_state *); void (*atomic_disable)(struct drm_bridge *, struct drm_bridge_state *); void (*atomic_post_disable)(struct drm_bridge *, struct drm_bridge_state *); struct drm_bridge_state * (*atomic_duplicate_state)(struct drm_bridge *); void (*atomic_destroy_state)(struct drm_bridge *, struct drm_bridge_state *); u32 * (*atomic_get_output_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *); u32 * (*atomic_get_input_bus_fmts)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, u32, unsigned int *); int (*atomic_check)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *); struct drm_bridge_state * (*atomic_reset)(struct drm_bridge *); enum drm_connector_status (*detect)(struct drm_bridge *); int (*get_modes)(struct drm_bridge *, struct drm_connector *); struct edid * (*get_edid)(struct drm_bridge *, struct drm_connector *); void (*hpd_notify)(struct drm_bridge *, enum drm_connector_status); void (*hpd_enable)(struct drm_bridge *); void (*hpd_disable)(struct drm_bridge *); void (*debugfs_init)(struct drm_bridge *, struct dentry *); }; struct drm_bus_cfg { u32 format; u32 flags; }; struct drm_bridge_state { struct drm_private_state base; struct drm_bridge *bridge; struct drm_bus_cfg input_bus_cfg; struct drm_bus_cfg output_bus_cfg; }; 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; }; struct drm_connector_list_iter { struct drm_device *dev; struct drm_connector *conn; }; struct drm_mode_rect { __s32 x1; __s32 y1; __s32 x2; __s32 y2; }; struct drm_debugfs_entry { struct drm_device *dev; struct drm_debugfs_info file; struct list_head list; }; typedef int drm_ioctl_compat_t(struct file *, unsigned int, unsigned long); enum drm_stat_type { _DRM_STAT_LOCK = 0, _DRM_STAT_OPENS = 1, _DRM_STAT_CLOSES = 2, _DRM_STAT_IOCTLS = 3, _DRM_STAT_LOCKS = 4, _DRM_STAT_UNLOCKS = 5, _DRM_STAT_VALUE = 6, _DRM_STAT_BYTE = 7, _DRM_STAT_COUNT = 8, _DRM_STAT_IRQ = 9, _DRM_STAT_PRIMARY = 10, _DRM_STAT_SECONDARY = 11, _DRM_STAT_DMA = 12, _DRM_STAT_SPECIAL = 13, _DRM_STAT_MISSED = 14, }; enum drm_vblank_seq_type { _DRM_VBLANK_ABSOLUTE = 0, _DRM_VBLANK_RELATIVE = 1, _DRM_VBLANK_HIGH_CRTC_MASK = 62, _DRM_VBLANK_EVENT = 67108864, _DRM_VBLANK_FLIP = 134217728, _DRM_VBLANK_NEXTONMISS = 268435456, _DRM_VBLANK_SECONDARY = 536870912, _DRM_VBLANK_SIGNAL = 1073741824, }; struct drm_version_32 { int version_major; int version_minor; int version_patchlevel; u32 name_len; u32 name; u32 date_len; u32 date; u32 desc_len; u32 desc; }; typedef struct drm_version_32 drm_version32_t; struct drm_version { int version_major; int version_minor; int version_patchlevel; __kernel_size_t name_len; char __attribute__((btf_type_tag("user"))) *name; __kernel_size_t date_len; char __attribute__((btf_type_tag("user"))) *date; __kernel_size_t desc_len; char __attribute__((btf_type_tag("user"))) *desc; }; struct drm_unique32 { u32 unique_len; u32 unique; }; typedef struct drm_unique32 drm_unique32_t; struct drm_unique { __kernel_size_t unique_len; char __attribute__((btf_type_tag("user"))) *unique; }; struct drm_client32 { int idx; int auth; u32 pid; u32 uid; u32 magic; u32 iocs; }; typedef struct drm_client32 drm_client32_t; struct drm_client { int idx; int auth; unsigned long pid; unsigned long uid; unsigned long magic; unsigned long iocs; }; struct drm_stats32 { u32 count; struct { u32 value; enum drm_stat_type type; } data[15]; }; typedef struct drm_stats32 drm_stats32_t; struct drm_wait_vblank_request32 { enum drm_vblank_seq_type type; unsigned int sequence; u32 signal; }; struct drm_wait_vblank_reply32 { enum drm_vblank_seq_type type; unsigned int sequence; s32 tval_sec; s32 tval_usec; }; union drm_wait_vblank32 { struct drm_wait_vblank_request32 request; struct drm_wait_vblank_reply32 reply; }; typedef union drm_wait_vblank32 drm_wait_vblank32_t; struct drm_wait_vblank_request { enum drm_vblank_seq_type type; unsigned int sequence; unsigned long signal; }; struct drm_wait_vblank_reply { enum drm_vblank_seq_type type; unsigned int sequence; long tval_sec; long tval_usec; }; union drm_wait_vblank { struct drm_wait_vblank_request request; struct drm_wait_vblank_reply reply; }; struct drm_mode_fb_cmd232 { u32 fb_id; u32 width; u32 height; u32 pixel_format; u32 flags; u32 handles[4]; u32 pitches[4]; u32 offsets[4]; u64 modifier[4]; } __attribute__((packed)); enum mipi_dsi_pixel_format { MIPI_DSI_FMT_RGB888 = 0, MIPI_DSI_FMT_RGB666 = 1, MIPI_DSI_FMT_RGB666_PACKED = 2, MIPI_DSI_FMT_RGB565 = 3, }; enum { MIPI_DSI_V_SYNC_START = 1, MIPI_DSI_V_SYNC_END = 17, MIPI_DSI_H_SYNC_START = 33, MIPI_DSI_H_SYNC_END = 49, MIPI_DSI_COMPRESSION_MODE = 7, MIPI_DSI_END_OF_TRANSMISSION = 8, MIPI_DSI_COLOR_MODE_OFF = 2, MIPI_DSI_COLOR_MODE_ON = 18, MIPI_DSI_SHUTDOWN_PERIPHERAL = 34, MIPI_DSI_TURN_ON_PERIPHERAL = 50, MIPI_DSI_GENERIC_SHORT_WRITE_0_PARAM = 3, MIPI_DSI_GENERIC_SHORT_WRITE_1_PARAM = 19, MIPI_DSI_GENERIC_SHORT_WRITE_2_PARAM = 35, MIPI_DSI_GENERIC_READ_REQUEST_0_PARAM = 4, MIPI_DSI_GENERIC_READ_REQUEST_1_PARAM = 20, MIPI_DSI_GENERIC_READ_REQUEST_2_PARAM = 36, MIPI_DSI_DCS_SHORT_WRITE = 5, MIPI_DSI_DCS_SHORT_WRITE_PARAM = 21, MIPI_DSI_DCS_READ = 6, MIPI_DSI_EXECUTE_QUEUE = 22, MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE = 55, MIPI_DSI_NULL_PACKET = 9, MIPI_DSI_BLANKING_PACKET = 25, MIPI_DSI_GENERIC_LONG_WRITE = 41, MIPI_DSI_DCS_LONG_WRITE = 57, MIPI_DSI_PICTURE_PARAMETER_SET = 10, MIPI_DSI_COMPRESSED_PIXEL_STREAM = 11, MIPI_DSI_LOOSELY_PACKED_PIXEL_STREAM_YCBCR20 = 12, MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR24 = 28, MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR16 = 44, MIPI_DSI_PACKED_PIXEL_STREAM_30 = 13, MIPI_DSI_PACKED_PIXEL_STREAM_36 = 29, MIPI_DSI_PACKED_PIXEL_STREAM_YCBCR12 = 61, MIPI_DSI_PACKED_PIXEL_STREAM_16 = 14, MIPI_DSI_PACKED_PIXEL_STREAM_18 = 30, MIPI_DSI_PIXEL_STREAM_3BYTE_18 = 46, MIPI_DSI_PACKED_PIXEL_STREAM_24 = 62, }; enum { MIPI_DCS_NOP = 0, MIPI_DCS_SOFT_RESET = 1, MIPI_DCS_GET_COMPRESSION_MODE = 3, MIPI_DCS_GET_DISPLAY_ID = 4, MIPI_DCS_GET_ERROR_COUNT_ON_DSI = 5, MIPI_DCS_GET_RED_CHANNEL = 6, MIPI_DCS_GET_GREEN_CHANNEL = 7, MIPI_DCS_GET_BLUE_CHANNEL = 8, MIPI_DCS_GET_DISPLAY_STATUS = 9, MIPI_DCS_GET_POWER_MODE = 10, MIPI_DCS_GET_ADDRESS_MODE = 11, MIPI_DCS_GET_PIXEL_FORMAT = 12, MIPI_DCS_GET_DISPLAY_MODE = 13, MIPI_DCS_GET_SIGNAL_MODE = 14, MIPI_DCS_GET_DIAGNOSTIC_RESULT = 15, MIPI_DCS_ENTER_SLEEP_MODE = 16, MIPI_DCS_EXIT_SLEEP_MODE = 17, MIPI_DCS_ENTER_PARTIAL_MODE = 18, MIPI_DCS_ENTER_NORMAL_MODE = 19, MIPI_DCS_GET_IMAGE_CHECKSUM_RGB = 20, MIPI_DCS_GET_IMAGE_CHECKSUM_CT = 21, MIPI_DCS_EXIT_INVERT_MODE = 32, MIPI_DCS_ENTER_INVERT_MODE = 33, MIPI_DCS_SET_GAMMA_CURVE = 38, MIPI_DCS_SET_DISPLAY_OFF = 40, MIPI_DCS_SET_DISPLAY_ON = 41, MIPI_DCS_SET_COLUMN_ADDRESS = 42, MIPI_DCS_SET_PAGE_ADDRESS = 43, MIPI_DCS_WRITE_MEMORY_START = 44, MIPI_DCS_WRITE_LUT = 45, MIPI_DCS_READ_MEMORY_START = 46, MIPI_DCS_SET_PARTIAL_ROWS = 48, MIPI_DCS_SET_PARTIAL_COLUMNS = 49, MIPI_DCS_SET_SCROLL_AREA = 51, MIPI_DCS_SET_TEAR_OFF = 52, MIPI_DCS_SET_TEAR_ON = 53, MIPI_DCS_SET_ADDRESS_MODE = 54, MIPI_DCS_SET_SCROLL_START = 55, MIPI_DCS_EXIT_IDLE_MODE = 56, MIPI_DCS_ENTER_IDLE_MODE = 57, MIPI_DCS_SET_PIXEL_FORMAT = 58, MIPI_DCS_WRITE_MEMORY_CONTINUE = 60, MIPI_DCS_SET_3D_CONTROL = 61, MIPI_DCS_READ_MEMORY_CONTINUE = 62, MIPI_DCS_GET_3D_CONTROL = 63, MIPI_DCS_SET_VSYNC_TIMING = 64, MIPI_DCS_SET_TEAR_SCANLINE = 68, MIPI_DCS_GET_SCANLINE = 69, MIPI_DCS_SET_DISPLAY_BRIGHTNESS = 81, MIPI_DCS_GET_DISPLAY_BRIGHTNESS = 82, MIPI_DCS_WRITE_CONTROL_DISPLAY = 83, MIPI_DCS_GET_CONTROL_DISPLAY = 84, MIPI_DCS_WRITE_POWER_SAVE = 85, MIPI_DCS_GET_POWER_SAVE = 86, MIPI_DCS_SET_CABC_MIN_BRIGHTNESS = 94, MIPI_DCS_GET_CABC_MIN_BRIGHTNESS = 95, MIPI_DCS_READ_DDB_START = 161, MIPI_DCS_READ_PPS_START = 162, MIPI_DCS_READ_DDB_CONTINUE = 168, MIPI_DCS_READ_PPS_CONTINUE = 169, }; enum mipi_dsi_dcs_tear_mode { MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, }; struct mipi_dsi_host; struct drm_dsc_config; struct mipi_dsi_device { struct mipi_dsi_host *host; struct device dev; char name[20]; unsigned int channel; unsigned int lanes; enum mipi_dsi_pixel_format format; unsigned long mode_flags; unsigned long hs_rate; unsigned long lp_rate; struct drm_dsc_config *dsc; }; struct mipi_dsi_host_ops; struct mipi_dsi_host { struct device *dev; const struct mipi_dsi_host_ops *ops; struct list_head list; }; struct mipi_dsi_msg; struct mipi_dsi_host_ops { int (*attach)(struct mipi_dsi_host *, struct mipi_dsi_device *); int (*detach)(struct mipi_dsi_host *, struct mipi_dsi_device *); ssize_t (*transfer)(struct mipi_dsi_host *, const struct mipi_dsi_msg *); }; struct mipi_dsi_msg { u8 channel; u8 type; u16 flags; size_t tx_len; const void *tx_buf; size_t rx_len; void *rx_buf; }; struct drm_dsc_rc_range_parameters { u8 range_min_qp; u8 range_max_qp; u8 range_bpg_offset; }; struct drm_dsc_config { u8 line_buf_depth; u8 bits_per_component; bool convert_rgb; u8 slice_count; u16 slice_width; u16 slice_height; bool simple_422; u16 pic_width; u16 pic_height; u8 rc_tgt_offset_high; u8 rc_tgt_offset_low; u16 bits_per_pixel; u8 rc_edge_factor; u8 rc_quant_incr_limit1; u8 rc_quant_incr_limit0; u16 initial_xmit_delay; u16 initial_dec_delay; bool block_pred_enable; u8 first_line_bpg_offset; u16 initial_offset; u16 rc_buf_thresh[14]; struct drm_dsc_rc_range_parameters rc_range_params[15]; u16 rc_model_size; u8 flatness_min_qp; u8 flatness_max_qp; u8 initial_scale_value; u16 scale_decrement_interval; u16 scale_increment_interval; u16 nfl_bpg_offset; u16 slice_bpg_offset; u16 final_offset; bool vbr_enable; u8 mux_word_size; u16 slice_chunk_size; u16 rc_bits; u8 dsc_version_minor; u8 dsc_version_major; bool native_422; bool native_420; u8 second_line_bpg_offset; u16 nsl_bpg_offset; u16 second_line_offset_adj; }; struct mipi_dsi_driver { struct device_driver driver; int (*probe)(struct mipi_dsi_device *); void (*remove)(struct mipi_dsi_device *); void (*shutdown)(struct mipi_dsi_device *); }; struct mipi_dsi_device_info { char type[20]; u32 channel; struct device_node *node; }; struct mipi_dsi_packet { size_t size; u8 header[4]; size_t payload_length; const u8 *payload; }; struct drm_dsc_picture_parameter_set { u8 dsc_version; u8 pps_identifier; u8 pps_reserved; u8 pps_3; u8 pps_4; u8 bits_per_pixel_low; __be16 pic_height; __be16 pic_width; __be16 slice_height; __be16 slice_width; __be16 chunk_size; u8 initial_xmit_delay_high; u8 initial_xmit_delay_low; __be16 initial_dec_delay; u8 pps20_reserved; u8 initial_scale_value; __be16 scale_increment_interval; u8 scale_decrement_interval_high; u8 scale_decrement_interval_low; u8 pps26_reserved; u8 first_line_bpg_offset; __be16 nfl_bpg_offset; __be16 slice_bpg_offset; __be16 initial_offset; __be16 final_offset; u8 flatness_min_qp; u8 flatness_max_qp; __be16 rc_model_size; u8 rc_edge_factor; u8 rc_quant_incr_limit0; u8 rc_quant_incr_limit1; u8 rc_tgt_offset; u8 rc_buf_thresh[14]; __be16 rc_range_parameters[15]; u8 native_422_420; u8 second_line_bpg_offset; __be16 nsl_bpg_offset; __be16 second_line_offset_adj; u32 pps_long_94_reserved; u32 pps_long_98_reserved; u32 pps_long_102_reserved; u32 pps_long_106_reserved; u32 pps_long_110_reserved; u32 pps_long_114_reserved; u32 pps_long_118_reserved; u32 pps_long_122_reserved; __be16 pps_short_126_reserved; } __attribute__((packed)); 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; }; 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 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; }; 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; }; enum intel_platform { INTEL_PLATFORM_UNINITIALIZED = 0, INTEL_I830 = 1, INTEL_I845G = 2, INTEL_I85X = 3, INTEL_I865G = 4, INTEL_I915G = 5, INTEL_I915GM = 6, INTEL_I945G = 7, INTEL_I945GM = 8, INTEL_G33 = 9, INTEL_PINEVIEW = 10, INTEL_I965G = 11, INTEL_I965GM = 12, INTEL_G45 = 13, INTEL_GM45 = 14, INTEL_IRONLAKE = 15, INTEL_SANDYBRIDGE = 16, INTEL_IVYBRIDGE = 17, INTEL_VALLEYVIEW = 18, INTEL_HASWELL = 19, INTEL_BROADWELL = 20, INTEL_CHERRYVIEW = 21, INTEL_SKYLAKE = 22, INTEL_BROXTON = 23, INTEL_KABYLAKE = 24, INTEL_GEMINILAKE = 25, INTEL_COFFEELAKE = 26, INTEL_COMETLAKE = 27, INTEL_ICELAKE = 28, INTEL_ELKHARTLAKE = 29, INTEL_JASPERLAKE = 30, INTEL_TIGERLAKE = 31, INTEL_ROCKETLAKE = 32, INTEL_DG1 = 33, INTEL_ALDERLAKE_S = 34, INTEL_ALDERLAKE_P = 35, INTEL_XEHPSDV = 36, INTEL_DG2 = 37, INTEL_PONTEVECCHIO = 38, INTEL_METEORLAKE = 39, INTEL_MAX_PLATFORMS = 40, }; struct intel_ip_version { u8 ver; u8 rel; u8 step; }; typedef u32 intel_engine_mask_t; struct intel_step_info { u8 graphics_step; u8 display_step; u8 media_step; u8 basedie_step; }; enum intel_ppgtt_type { INTEL_PPGTT_NONE = 0, INTEL_PPGTT_ALIASING = 1, INTEL_PPGTT_FULL = 2, }; struct intel_runtime_info { struct { struct intel_ip_version ip; } graphics; struct { struct intel_ip_version ip; } media; struct { struct intel_ip_version ip; } display; u32 platform_mask[2]; u16 device_id; intel_engine_mask_t platform_engine_mask; u32 rawclk_freq; struct intel_step_info step; unsigned int page_sizes; enum intel_ppgtt_type ppgtt_type; unsigned int ppgtt_size; u32 memory_regions; bool has_pooled_eu; struct { u8 pipe_mask; u8 cpu_transcoder_mask; u8 num_sprites[4]; u8 num_scalers[4]; u8 fbc_mask; bool has_hdcp; bool has_dmc; bool has_dsc; }; }; struct intel_gt_definition; struct intel_device_info { enum intel_platform platform; unsigned int dma_mask_size; const struct intel_gt_definition *extra_gt_list; u8 gt; u8 is_mobile: 1; u8 is_lp: 1; u8 require_force_probe: 1; u8 is_dgfx: 1; u8 has_64bit_reloc: 1; u8 has_64k_pages: 1; u8 gpu_reset_clobbers_display: 1; u8 has_reset_engine: 1; u8 has_3d_pipeline: 1; u8 has_4tile: 1; u8 has_flat_ccs: 1; u8 has_global_mocs: 1; u8 has_gmd_id: 1; u8 has_gt_uc: 1; u8 has_heci_pxp: 1; u8 has_heci_gscfi: 1; u8 has_guc_deprivilege: 1; u8 has_l3_ccs_read: 1; u8 has_l3_dpf: 1; u8 has_llc: 1; u8 has_logical_ring_contexts: 1; u8 has_logical_ring_elsq: 1; u8 has_media_ratio_mode: 1; u8 has_mslice_steering: 1; u8 has_oa_bpc_reporting: 1; u8 has_oa_slice_contrib_limits: 1; u8 has_one_eu_per_fuse_bit: 1; u8 has_pxp: 1; u8 has_rc6: 1; u8 has_rc6p: 1; u8 has_rps: 1; u8 has_runtime_pm: 1; u8 has_snoop: 1; u8 has_coherent_ggtt: 1; u8 tuning_thread_rr_after_dep: 1; u8 unfenced_needs_alignment: 1; u8 hws_needs_physical: 1; struct { u8 abox_mask; struct { u16 size; u8 slice_mask; } dbuf; u8 cursor_needs_physical: 1; u8 has_cdclk_crawl: 1; u8 has_cdclk_squash: 1; u8 has_ddi: 1; u8 has_dp_mst: 1; u8 has_dsb: 1; u8 has_fpga_dbg: 1; u8 has_gmch: 1; u8 has_hotplug: 1; u8 has_hti: 1; u8 has_ipc: 1; u8 has_modular_fia: 1; u8 has_overlay: 1; u8 has_psr: 1; u8 has_psr_hw_tracking: 1; u8 overlay_needs_physical: 1; u8 supports_tv: 1; u32 mmio_offset; u32 pipe_offsets[7]; u32 trans_offsets[7]; u32 cursor_offsets[4]; struct { u32 degamma_lut_size; u32 gamma_lut_size; u32 degamma_lut_tests; u32 gamma_lut_tests; } color; } display; const struct intel_runtime_info __runtime; }; enum intel_gt_type { GT_PRIMARY = 0, GT_TILE = 1, GT_MEDIA = 2, }; struct intel_gt_definition { enum intel_gt_type type; char *name; u32 mapping_base; u32 gsi_offset; intel_engine_mask_t engine_mask; }; struct intel_global_state; struct intel_global_state_funcs; struct intel_global_obj { struct list_head head; struct intel_global_state *state; const struct intel_global_state_funcs *funcs; }; struct intel_bw_info { unsigned int deratedbw[8]; unsigned int psf_bw[3]; u8 num_qgv_points; u8 num_psf_gv_points; u8 num_planes; }; struct intel_cdclk_config { unsigned int cdclk; unsigned int vco; unsigned int ref; unsigned int bypass; u8 voltage_level; }; struct intel_fbdev; typedef depot_stack_handle_t intel_wakeref_t; struct intel_power_domain_mask { unsigned long bits[2]; }; struct i915_power_well; struct i915_power_domains { bool initializing; bool display_core_suspended; int power_well_count; intel_wakeref_t init_wakeref; intel_wakeref_t disable_wakeref; struct mutex lock; int domain_use_count[77]; struct delayed_work async_put_work; intel_wakeref_t async_put_wakeref; struct intel_power_domain_mask async_put_domains[2]; struct i915_power_well *power_wells; }; struct intel_atomic_helper { struct llist_head free_list; struct work_struct free_work; }; struct intel_encoder; struct intel_audio_state { struct intel_encoder *encoder; u8 eld[128]; }; struct i915_audio_component; struct platform_device; struct intel_audio { struct i915_audio_component *component; bool component_registered; struct mutex mutex; int power_refcount; u32 freq_cntrl; struct intel_audio_state state[4]; struct { struct platform_device *platdev; int irq; } lpe; }; typedef struct { u32 reg; } i915_reg_t; struct dmc_fw_info { u32 mmio_count; i915_reg_t mmioaddr[20]; u32 mmiodata[20]; u32 dmc_offset; u32 start_mmioaddr; u32 dmc_fw_size; u32 *payload; bool present; }; struct intel_dmc { struct work_struct work; const char *fw_path; u32 max_fw_size; u32 version; struct dmc_fw_info dmc_info[5]; u32 dc_state; u32 target_dc_state; u32 allowed_dc_mask; intel_wakeref_t wakeref; }; struct intel_dpll_hw_state { u32 dpll; u32 dpll_md; u32 fp0; u32 fp1; u32 wrpll; u32 spll; u32 ctrl1; u32 cfgcr1; u32 cfgcr2; u32 cfgcr0; u32 div0; u32 ebb0; u32 ebb4; u32 pll0; u32 pll1; u32 pll2; u32 pll3; u32 pll6; u32 pll8; u32 pll9; u32 pll10; u32 pcsdw12; u32 mg_refclkin_ctl; u32 mg_clktop2_coreclkctl1; u32 mg_clktop2_hsclkctl; u32 mg_pll_div0; u32 mg_pll_div1; u32 mg_pll_lf; u32 mg_pll_frac_lock; u32 mg_pll_ssc; u32 mg_pll_bias; u32 mg_pll_tdc_coldst_bias; u32 mg_pll_bias_mask; u32 mg_pll_tdc_coldst_bias_mask; }; struct intel_shared_dpll_state { u8 pipe_mask; struct intel_dpll_hw_state hw_state; }; struct dpll_info; struct intel_shared_dpll { struct intel_shared_dpll_state state; u8 active_mask; bool on; const struct dpll_info *info; intel_wakeref_t wakeref; }; struct intel_dpll_mgr; struct intel_dpll { struct mutex lock; int num_shared_dpll; struct intel_shared_dpll shared_dplls[9]; const struct intel_dpll_mgr *mgr; struct { int nssc; int ssc; } ref_clks; u8 pch_ssc_use; }; struct intel_frontbuffer_tracking { spinlock_t lock; unsigned int busy_bits; unsigned int flip_bits; }; struct intel_hotplug { struct delayed_work hotplug_work; const u32 *hpd; const u32 *pch_hpd; struct { unsigned long last_jiffies; int count; enum { HPD_ENABLED = 0, HPD_DISABLED = 1, HPD_MARK_DISABLED = 2, } state; } stats[15]; u32 event_bits; u32 retry_bits; struct delayed_work reenable_work; u32 long_port_mask; u32 short_port_mask; struct work_struct dig_port_work; struct work_struct poll_init_work; bool poll_enabled; unsigned int hpd_storm_threshold; u8 hpd_short_storm_enabled; struct workqueue_struct *dp_wq; }; struct opregion_header; struct opregion_acpi; struct opregion_swsci; struct opregion_asle; struct opregion_asle_ext; struct intel_opregion { struct opregion_header *header; struct opregion_acpi *acpi; struct opregion_swsci *swsci; u32 swsci_gbda_sub_functions; u32 swsci_sbcb_sub_functions; struct opregion_asle *asle; struct opregion_asle_ext *asle_ext; void *rvda; void *vbt_firmware; const void *vbt; u32 vbt_size; u32 *lid_state; struct work_struct asle_work; struct notifier_block acpi_notifier; }; struct sdvo_device_mapping { u8 initialized; u8 dvo_port; u8 slave_addr; u8 dvo_wiring; u8 i2c_pin; u8 ddc_pin; }; struct intel_bios_encoder_data; struct intel_vbt_data { u16 version; unsigned int int_tv_support: 1; unsigned int int_crt_support: 1; unsigned int lvds_use_ssc: 1; unsigned int int_lvds_support: 1; unsigned int display_clock_mode: 1; unsigned int fdi_rx_polarity_inverted: 1; int lvds_ssc_freq; enum drm_panel_orientation orientation; bool override_afc_startup; u8 override_afc_startup_val; int crt_ddc_pin; struct list_head display_devices; struct list_head bdb_blocks; struct intel_bios_encoder_data *ports[9]; struct sdvo_device_mapping sdvo_mappings[2]; }; enum intel_ddb_partitioning { INTEL_DDB_PART_1_2 = 0, INTEL_DDB_PART_5_6 = 1, }; struct ilk_wm_values { u32 wm_pipe[3]; u32 wm_lp[3]; u32 wm_lp_spr[3]; bool enable_fbc_wm; enum intel_ddb_partitioning partitioning; }; struct g4x_pipe_wm { u16 plane[8]; u16 fbc; }; struct g4x_sr_wm { u16 plane; u16 cursor; u16 fbc; }; struct vlv_wm_ddl_values { u8 plane[8]; }; struct vlv_wm_values { struct g4x_pipe_wm pipe[3]; struct g4x_sr_wm sr; struct vlv_wm_ddl_values ddl[3]; u8 level; bool cxsr; }; struct g4x_wm_values { struct g4x_pipe_wm pipe[2]; struct g4x_sr_wm sr; struct g4x_sr_wm hpll; bool cxsr; bool hpll_en; bool fbc_en; }; struct intel_wm { u16 pri_latency[5]; u16 spr_latency[5]; u16 cur_latency[5]; u16 skl_latency[8]; union { struct ilk_wm_values hw; struct vlv_wm_values vlv; struct g4x_wm_values g4x; }; u8 max_level; struct mutex wm_mutex; bool ipc_enabled; }; struct intel_display_funcs; struct intel_cdclk_funcs; struct intel_dpll_funcs; struct intel_hotplug_funcs; struct intel_wm_funcs; struct intel_fdi_funcs; struct intel_color_funcs; struct intel_audio_funcs; struct intel_cdclk_vals; struct drm_property_blob___2; struct intel_gmbus; struct i915_hdcp_comp_master; struct drm_property___2; struct intel_fbc; struct intel_overlay; struct intel_display { struct { const struct intel_display_funcs *display; const struct intel_cdclk_funcs *cdclk; const struct intel_dpll_funcs *dpll; const struct intel_hotplug_funcs *hotplug; const struct intel_wm_funcs *wm; const struct intel_fdi_funcs *fdi; const struct intel_color_funcs *color; const struct intel_audio_funcs *audio; } funcs; struct intel_atomic_helper atomic_helper; struct { struct mutex lock; } backlight; struct { struct intel_global_obj obj; struct intel_bw_info max[6]; } bw; struct { struct intel_cdclk_config hw; const struct intel_cdclk_vals *table; struct intel_global_obj obj; unsigned int max_cdclk_freq; } cdclk; struct { struct drm_property_blob___2 *glk_linear_degamma_lut; } color; struct { u8 enabled_slices; struct intel_global_obj obj; } dbuf; struct { spinlock_t phy_lock; } dkl; struct { u32 mmio_base; } dsi; struct { struct intel_fbdev *fbdev; struct work_struct suspend_work; } fbdev; struct { unsigned int pll_freq; u32 rx_config; } fdi; struct { struct list_head obj_list; } global; struct { u32 mmio_base; struct mutex mutex; struct intel_gmbus *bus[15]; wait_queue_head_t wait_queue; } gmbus; struct { struct i915_hdcp_comp_master *master; bool comp_added; struct mutex comp_mutex; } hdcp; struct { u32 state; } hti; struct { struct i915_power_domains domains; u32 chv_phy_control; bool chv_phy_assert[2]; } power; struct { u32 mmio_base; struct mutex mutex; } pps; struct { struct drm_property___2 *broadcast_rgb; struct drm_property___2 *force_audio; } properties; struct { unsigned long mask; } quirks; struct { struct drm_atomic_state *modeset_state; struct drm_modeset_acquire_ctx reset_ctx; } restore; struct { enum { I915_SAGV_UNKNOWN = 0, I915_SAGV_DISABLED = 1, I915_SAGV_ENABLED = 2, I915_SAGV_NOT_CONTROLLED = 3, } status; u32 block_time_us; } sagv; struct { u8 phy_failed_calibration; } snps; struct { u32 chv_dpll_md[4]; u32 bxt_phy_grc; } state; struct { struct workqueue_struct *modeset; struct workqueue_struct *flip; } wq; struct intel_audio audio; struct intel_dmc dmc; struct intel_dpll dpll; struct intel_fbc *fbc[2]; struct intel_frontbuffer_tracking fb_tracking; struct intel_hotplug hotplug; struct intel_opregion opregion; struct intel_overlay *overlay; struct intel_vbt_data vbt; struct intel_wm wm; }; struct intel_crtc; struct intel_crtc_state; struct intel_initial_plane_config; struct intel_atomic_state; struct intel_display_funcs { bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *); void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config *); void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *); void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *); void (*commit_modeset_enables)(struct intel_atomic_state *); }; enum pipe { INVALID_PIPE = -1, PIPE_A = 0, PIPE_B = 1, PIPE_C = 2, PIPE_D = 3, _PIPE_EDP = 4, I915_MAX_PIPES = 4, }; struct drm_i915_private; struct intel_cdclk_state; struct intel_cdclk_funcs { void (*get_cdclk)(struct drm_i915_private *, struct intel_cdclk_config *); void (*set_cdclk)(struct drm_i915_private *, const struct intel_cdclk_config *, enum pipe); int (*modeset_calc_cdclk)(struct intel_cdclk_state *); u8 (*calc_voltage_level)(int); }; struct intel_dpll_funcs { int (*crtc_compute_clock)(struct intel_atomic_state *, struct intel_crtc *); int (*crtc_get_shared_dpll)(struct intel_atomic_state *, struct intel_crtc *); }; struct drm_i915_private___2; struct intel_hotplug_funcs { void (*hpd_irq_setup)(struct drm_i915_private___2 *); }; struct drm_i915_private___3; struct intel_wm_funcs { void (*update_wm)(struct drm_i915_private___3 *); int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *); void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_global_watermarks)(struct intel_atomic_state *); }; struct i915_gem_contexts { spinlock_t lock; struct list_head list; }; struct drm_mode_config_funcs___2; struct drm_mode_config___2 { struct mutex mutex; struct drm_modeset_lock connection_mutex; struct drm_modeset_acquire_ctx *acquire_ctx; struct mutex idr_mutex; struct idr object_idr; struct idr tile_idr; struct mutex fb_lock; int num_fb; struct list_head fb_list; spinlock_t connector_list_lock; int num_connector; struct ida connector_ida; struct list_head connector_list; struct llist_head connector_free_list; struct work_struct connector_free_work; int num_encoder; struct list_head encoder_list; int num_total_plane; struct list_head plane_list; int num_crtc; struct list_head crtc_list; struct list_head property_list; struct list_head privobj_list; int min_width; int min_height; int max_width; int max_height; const struct drm_mode_config_funcs___2 *funcs; bool poll_enabled; bool poll_running; bool delayed_event; struct delayed_work output_poll_work; struct mutex blob_lock; struct list_head property_blob_list; struct drm_property___2 *edid_property; struct drm_property___2 *dpms_property; struct drm_property___2 *path_property; struct drm_property___2 *tile_property; struct drm_property___2 *link_status_property; struct drm_property___2 *plane_type_property; struct drm_property___2 *prop_src_x; struct drm_property___2 *prop_src_y; struct drm_property___2 *prop_src_w; struct drm_property___2 *prop_src_h; struct drm_property___2 *prop_crtc_x; struct drm_property___2 *prop_crtc_y; struct drm_property___2 *prop_crtc_w; struct drm_property___2 *prop_crtc_h; struct drm_property___2 *prop_fb_id; struct drm_property___2 *prop_in_fence_fd; struct drm_property___2 *prop_out_fence_ptr; struct drm_property___2 *prop_crtc_id; struct drm_property___2 *prop_fb_damage_clips; struct drm_property___2 *prop_active; struct drm_property___2 *prop_mode_id; struct drm_property___2 *prop_vrr_enabled; struct drm_property___2 *dvi_i_subconnector_property; struct drm_property___2 *dvi_i_select_subconnector_property; struct drm_property___2 *dp_subconnector_property; struct drm_property___2 *tv_subconnector_property; struct drm_property___2 *tv_select_subconnector_property; struct drm_property___2 *legacy_tv_mode_property; struct drm_property___2 *tv_mode_property; struct drm_property___2 *tv_left_margin_property; struct drm_property___2 *tv_right_margin_property; struct drm_property___2 *tv_top_margin_property; struct drm_property___2 *tv_bottom_margin_property; struct drm_property___2 *tv_brightness_property; struct drm_property___2 *tv_contrast_property; struct drm_property___2 *tv_flicker_reduction_property; struct drm_property___2 *tv_overscan_property; struct drm_property___2 *tv_saturation_property; struct drm_property___2 *tv_hue_property; struct drm_property___2 *scaling_mode_property; struct drm_property___2 *aspect_ratio_property; struct drm_property___2 *content_type_property; struct drm_property___2 *degamma_lut_property; struct drm_property___2 *degamma_lut_size_property; struct drm_property___2 *ctm_property; struct drm_property___2 *gamma_lut_property; struct drm_property___2 *gamma_lut_size_property; struct drm_property___2 *suggested_x_property; struct drm_property___2 *suggested_y_property; struct drm_property___2 *non_desktop_property; struct drm_property___2 *panel_orientation_property; struct drm_property___2 *writeback_fb_id_property; struct drm_property___2 *writeback_pixel_formats_property; struct drm_property___2 *writeback_out_fence_ptr_property; struct drm_property___2 *hdr_output_metadata_property; struct drm_property___2 *content_protection_property; struct drm_property___2 *hdcp_content_type_property; uint32_t preferred_depth; uint32_t prefer_shadow; bool prefer_shadow_fbdev; bool quirk_addfb_prefer_xbgr_30bpp; bool quirk_addfb_prefer_host_byte_order; bool async_page_flip; bool fb_modifiers_not_supported; bool normalize_zpos; struct drm_property___2 *modifiers_property; uint32_t cursor_width; uint32_t cursor_height; struct drm_atomic_state *suspend_state; const struct drm_mode_config_helper_funcs *helper_private; }; struct drm_driver___2; struct drm_minor___2; struct drm_master___2; struct drm_device___2 { int if_version; struct kref ref; struct device *dev; struct { struct list_head resources; void *final_kfree; spinlock_t lock; } managed; const struct drm_driver___2 *driver; void *dev_private; struct drm_minor___2 *primary; struct drm_minor___2 *render; struct drm_minor___2 *accel; bool registered; struct drm_master___2 *master; u32 driver_features; bool unplugged; struct inode *anon_inode; char *unique; struct mutex struct_mutex; struct mutex master_mutex; atomic_t open_count; struct mutex filelist_mutex; struct list_head filelist; struct list_head filelist_internal; struct mutex clientlist_mutex; struct list_head clientlist; bool vblank_disable_immediate; struct drm_vblank_crtc *vblank; spinlock_t vblank_time_lock; spinlock_t vbl_lock; u32 max_vblank_count; struct list_head vblank_event_list; spinlock_t event_lock; unsigned int num_crtcs; struct drm_mode_config___2 mode_config; struct mutex object_name_lock; struct idr object_name_idr; struct drm_vma_offset_manager *vma_offset_manager; struct drm_vram_mm *vram_mm; enum switch_power_state switch_power_state; struct drm_fb_helper *fb_helper; struct mutex debugfs_mutex; struct list_head debugfs_list; }; struct i915_params { char *vbt_firmware; int modeset; int lvds_channel_mode; int panel_use_ssc; int vbt_sdvo_panel_type; int enable_dc; int enable_fbc; int enable_psr; bool psr_safest_params; bool enable_psr2_sel_fetch; int disable_power_well; int enable_ips; int invert_brightness; int enable_guc; int guc_log_level; char *guc_firmware_path; char *huc_firmware_path; char *dmc_firmware_path; char *gsc_firmware_path; bool memtest; int mmio_debug; int edp_vswing; unsigned int reset; unsigned int inject_probe_failure; int fastboot; int enable_dpcd_backlight; char *force_probe; unsigned int request_timeout_ms; unsigned int lmem_size; unsigned int lmem_bar_size; bool enable_hangcheck; bool load_detect_test; bool force_reset_modeset_test; bool error_capture; bool disable_display; bool verbose_state_checks; bool nuclear_pageflip; bool enable_dp_mst; bool enable_gvt; }; struct intel_driver_caps { unsigned int scheduler; bool has_logical_contexts: 1; }; struct i915_dsm { struct resource stolen; struct resource reserved; resource_size_t usable_size; }; enum forcewake_domains { FORCEWAKE_RENDER = 1, FORCEWAKE_GT = 2, FORCEWAKE_MEDIA = 4, FORCEWAKE_MEDIA_VDBOX0 = 8, FORCEWAKE_MEDIA_VDBOX1 = 16, FORCEWAKE_MEDIA_VDBOX2 = 32, FORCEWAKE_MEDIA_VDBOX3 = 64, FORCEWAKE_MEDIA_VDBOX4 = 128, FORCEWAKE_MEDIA_VDBOX5 = 256, FORCEWAKE_MEDIA_VDBOX6 = 512, FORCEWAKE_MEDIA_VDBOX7 = 1024, FORCEWAKE_MEDIA_VEBOX0 = 2048, FORCEWAKE_MEDIA_VEBOX1 = 4096, FORCEWAKE_MEDIA_VEBOX2 = 8192, FORCEWAKE_MEDIA_VEBOX3 = 16384, FORCEWAKE_GSC = 32768, FORCEWAKE_ALL = 65535, }; struct intel_uncore; struct intel_uncore_funcs { enum forcewake_domains (*read_fw_domains)(struct intel_uncore *, i915_reg_t); enum forcewake_domains (*write_fw_domains)(struct intel_uncore *, i915_reg_t); u8 (*mmio_readb)(struct intel_uncore *, i915_reg_t, bool); u16 (*mmio_readw)(struct intel_uncore *, i915_reg_t, bool); u32 (*mmio_readl)(struct intel_uncore *, i915_reg_t, bool); u64 (*mmio_readq)(struct intel_uncore *, i915_reg_t, bool); void (*mmio_writeb)(struct intel_uncore *, i915_reg_t, u8, bool); void (*mmio_writew)(struct intel_uncore *, i915_reg_t, u16, bool); void (*mmio_writel)(struct intel_uncore *, i915_reg_t, u32, bool); }; struct intel_gt; struct intel_runtime_pm; struct intel_forcewake_range; struct i915_range; struct intel_uncore_fw_get; struct intel_uncore_forcewake_domain; struct intel_uncore_mmio_debug; struct intel_uncore { void *regs; struct drm_i915_private___3 *i915; struct intel_gt *gt; struct intel_runtime_pm *rpm; spinlock_t lock; u32 gsi_offset; unsigned int flags; const struct intel_forcewake_range *fw_domains_table; unsigned int fw_domains_table_entries; const struct i915_range *shadowed_reg_table; unsigned int shadowed_reg_table_entries; struct notifier_block pmic_bus_access_nb; const struct intel_uncore_fw_get *fw_get_funcs; struct intel_uncore_funcs funcs; unsigned int fifo_count; enum forcewake_domains fw_domains; enum forcewake_domains fw_domains_active; enum forcewake_domains fw_domains_timer; enum forcewake_domains fw_domains_saved; struct intel_uncore_forcewake_domain *fw_domain[16]; unsigned int user_forcewake_count; struct intel_uncore_mmio_debug *debug; }; struct intel_uncore_mmio_debug { spinlock_t lock; int unclaimed_mmio_check; int saved_mmio_check; u32 suspend_count; }; struct i915_virtual_gpu { struct mutex lock; bool active; u32 caps; u32 *initial_mmio; u8 *initial_cfg_space; struct list_head entry; }; struct intel_gvt; struct pm_qos_request { struct plist_node node; struct pm_qos_constraints *qos; }; enum intel_pch { PCH_NOP = -1, PCH_NONE = 0, PCH_IBX = 1, PCH_CPT = 2, PCH_LPT = 3, PCH_SPT = 4, PCH_CNP = 5, PCH_ICP = 6, PCH_TGP = 7, PCH_ADP = 8, PCH_MTP = 9, PCH_DG1 = 1024, PCH_DG2 = 1025, }; struct drm_mm; struct drm_mm_node { unsigned long color; u64 start; u64 size; struct drm_mm *mm; struct list_head node_list; struct list_head hole_stack; struct rb_node rb; struct rb_node rb_hole_size; struct rb_node rb_hole_addr; u64 __subtree_last; u64 hole_size; u64 subtree_max_hole; unsigned long flags; }; struct drm_mm { void (*color_adjust)(const struct drm_mm_node *, unsigned long, u64 *, u64 *); struct list_head hole_stack; struct drm_mm_node head_node; struct rb_root_cached interval_tree; struct rb_root_cached holes_size; struct rb_root holes_addr; unsigned long scan_active; }; struct intel_memory_region; struct i915_gem_mm { struct intel_memory_region *stolen_region; struct drm_mm stolen; struct mutex stolen_lock; spinlock_t obj_lock; struct list_head purge_list; struct list_head shrink_list; struct llist_head free_list; struct work_struct free_work; atomic_t free_count; struct vfsmount *gemfs; struct intel_memory_region *regions[7]; struct notifier_block oom_notifier; struct notifier_block vmap_notifier; struct shrinker shrinker; rwlock_t notifier_lock; u64 shrink_memory; u32 shrink_count; }; struct intel_l3_parity { u32 *remap_info[2]; struct work_struct error_work; int which_slice; }; struct i915_gpu_coredump; struct i915_gpu_error { spinlock_t lock; struct i915_gpu_coredump *first_error; atomic_t pending_fb_pin; atomic_t reset_count; atomic_t reset_engine_count[27]; }; struct i915_suspend_saved_registers { u32 saveDSPARB; u32 saveSWF0[16]; u32 saveSWF1[16]; u32 saveSWF3[3]; u16 saveGCDGMBUS; }; enum intel_dram_type { INTEL_DRAM_UNKNOWN = 0, INTEL_DRAM_DDR3 = 1, INTEL_DRAM_DDR4 = 2, INTEL_DRAM_LPDDR3 = 3, INTEL_DRAM_LPDDR4 = 4, INTEL_DRAM_DDR5 = 5, INTEL_DRAM_LPDDR5 = 6, }; struct dram_info { bool wm_lv_0_adjust_needed; u8 num_channels; bool symmetric_memory; enum intel_dram_type type; u8 num_qgv_points; u8 num_psf_gv_points; }; struct intel_wakeref_auto { struct intel_runtime_pm *rpm; struct timer_list timer; intel_wakeref_t wakeref; spinlock_t lock; refcount_t count; }; struct intel_runtime_pm { atomic_t wakeref_count; struct device *kdev; bool available; bool suspended; bool irqs_enabled; bool no_wakeref_tracking; spinlock_t lmem_userfault_lock; struct list_head lmem_userfault_list; struct intel_wakeref_auto userfault_wakeref; }; struct i915_perf; struct i915_perf_stream; struct i915_active; struct i915_oa_ops { bool (*is_valid_b_counter_reg)(struct i915_perf *, u32); bool (*is_valid_mux_reg)(struct i915_perf *, u32); bool (*is_valid_flex_reg)(struct i915_perf *, u32); int (*enable_metric_set)(struct i915_perf_stream *, struct i915_active *); void (*disable_metric_set)(struct i915_perf_stream *); void (*oa_enable)(struct i915_perf_stream *); void (*oa_disable)(struct i915_perf_stream *); int (*read)(struct i915_perf_stream *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); u32 (*oa_hw_tail_read)(struct i915_perf_stream *); }; struct i915_oa_format; struct i915_perf { struct drm_i915_private___3 *i915; struct kobject *metrics_kobj; struct mutex metrics_lock; struct idr metrics_idr; struct ratelimit_state spurious_report_rs; struct ratelimit_state tail_pointer_race; u32 gen7_latched_oastatus1; u32 ctx_oactxctrl_offset; u32 ctx_flexeu0_offset; u32 gen8_valid_ctx_bit; struct i915_oa_ops ops; const struct i915_oa_format *oa_formats; unsigned long format_mask[1]; atomic64_t noa_programming_delay; }; enum intel_uc_fw_type { INTEL_UC_FW_TYPE_GUC = 0, INTEL_UC_FW_TYPE_HUC = 1, INTEL_UC_FW_TYPE_GSC = 2, }; enum intel_uc_fw_status { INTEL_UC_FIRMWARE_NOT_SUPPORTED = -1, INTEL_UC_FIRMWARE_UNINITIALIZED = 0, INTEL_UC_FIRMWARE_DISABLED = 1, INTEL_UC_FIRMWARE_SELECTED = 2, INTEL_UC_FIRMWARE_MISSING = 3, INTEL_UC_FIRMWARE_ERROR = 4, INTEL_UC_FIRMWARE_AVAILABLE = 5, INTEL_UC_FIRMWARE_INIT_FAIL = 6, INTEL_UC_FIRMWARE_LOADABLE = 7, INTEL_UC_FIRMWARE_LOAD_FAIL = 8, INTEL_UC_FIRMWARE_TRANSFERRED = 9, INTEL_UC_FIRMWARE_RUNNING = 10, }; struct intel_uc_fw_ver { u32 major; u32 minor; u32 patch; }; struct intel_uc_fw_file { const char *path; struct intel_uc_fw_ver ver; }; enum i915_sw_fence_notify { FENCE_COMPLETE = 0, FENCE_FREE = 1, }; struct i915_sw_fence; typedef int (*i915_sw_fence_notify_t)(struct i915_sw_fence *, enum i915_sw_fence_notify); struct i915_sw_fence { wait_queue_head_t wait; i915_sw_fence_notify_t fn; atomic_t pending; int error; }; struct i915_page_sizes { unsigned int phys; unsigned int sg; }; struct i915_refct_sgt; struct i915_vma_bindinfo { struct sg_table *pages; struct i915_page_sizes page_sizes; struct i915_refct_sgt *pages_rsgt; bool readonly: 1; bool lmem: 1; }; struct i915_address_space; struct i915_vma_ops; struct i915_vma_resource { struct dma_fence unbind_fence; spinlock_t lock; refcount_t hold_count; struct work_struct work; struct i915_sw_fence chain; struct rb_node rb; u64 __subtree_last; struct i915_address_space *vm; intel_wakeref_t wakeref; struct i915_vma_bindinfo bi; struct intel_memory_region *mr; const struct i915_vma_ops *ops; void *private; u64 start; u64 node_size; u64 vma_size; u32 guard; u32 page_sizes_gtt; u32 bound_flags; bool allocated: 1; bool immediate_unbind: 1; bool needs_wakeref: 1; bool skip_pte_rewrite: 1; u32 *tlb; }; struct drm_i915_gem_object; struct i915_vma; struct intel_uc_fw { enum intel_uc_fw_type type; union { const enum intel_uc_fw_status status; enum intel_uc_fw_status __status; }; struct intel_uc_fw_file file_wanted; struct intel_uc_fw_file file_selected; bool user_overridden; size_t size; struct drm_i915_gem_object *obj; struct i915_vma_resource dummy; struct i915_vma *rsa_data; u32 rsa_size; u32 ucode_size; u32 private_data_size; bool loaded_via_gsc; }; struct intel_context; struct intel_gsc_uc { struct intel_uc_fw fw; struct i915_vma *local; struct intel_context *ce; struct work_struct work; }; struct intel_guc_log { u32 level; struct { s32 bytes; s32 units; s32 count; u32 flag; } sizes[3]; bool sizes_initialised; struct i915_vma *vma; void *buf_addr; struct { bool buf_in_use; bool started; struct work_struct flush_work; struct rchan *channel; struct mutex lock; u32 full_count; } relay; struct { u32 sampled_overflow; u32 overflow; u32 flush; } stats[3]; }; struct guc_ct_buffer_desc; struct intel_guc_ct_buffer { spinlock_t lock; struct guc_ct_buffer_desc *desc; u32 *cmds; u32 size; u32 resv_space; u32 tail; u32 head; atomic_t space; bool broken; }; 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 intel_guc_ct { struct i915_vma *vma; bool enabled; struct { struct intel_guc_ct_buffer send; struct intel_guc_ct_buffer recv; } ctbs; struct tasklet_struct receive_tasklet; wait_queue_head_t wq; struct { u16 last_fence; spinlock_t lock; struct list_head pending; struct list_head incoming; struct work_struct worker; } requests; ktime_t stall_time; }; struct slpc_shared_data; struct intel_guc_slpc { struct i915_vma *vma; struct slpc_shared_data *vaddr; bool supported; bool selected; bool min_is_rpmax; u32 min_freq; u32 rp0_freq; u32 rp1_freq; u32 boost_freq; u32 min_freq_softlimit; u32 max_freq_softlimit; u32 media_ratio_mode; struct mutex lock; struct work_struct boost_work; atomic_t num_waiters; u32 num_boosts; }; struct iosys_map { union { void *vaddr_iomem; void *vaddr; }; bool is_iomem; }; struct intel_guc_state_capture; struct i915_sched_engine; struct i915_request; struct guc_mmio_reg; struct intel_guc { struct intel_uc_fw fw; struct intel_guc_log log; struct intel_guc_ct ct; struct intel_guc_slpc slpc; struct intel_guc_state_capture *capture; struct i915_sched_engine *sched_engine; struct i915_request *stalled_request; enum { STALL_NONE = 0, STALL_REGISTER_CONTEXT = 1, STALL_MOVE_LRC_TAIL = 2, STALL_ADD_REQUEST = 3, } submission_stall_reason; spinlock_t irq_lock; unsigned int msg_enabled_mask; atomic_t outstanding_submission_g2h; struct { bool enabled; void (*reset)(struct intel_guc *); void (*enable)(struct intel_guc *); void (*disable)(struct intel_guc *); } interrupts; struct { spinlock_t lock; struct ida guc_ids; int num_guc_ids; unsigned long *guc_ids_bitmap; struct list_head guc_id_list; unsigned int guc_ids_in_use; struct list_head destroyed_contexts; struct work_struct destroyed_worker; struct work_struct reset_fail_worker; intel_engine_mask_t reset_fail_mask; unsigned int sched_disable_delay_ms; unsigned int sched_disable_gucid_threshold; } submission_state; bool submission_supported; bool submission_selected; bool submission_initialized; struct intel_uc_fw_ver submission_version; bool rc_supported; bool rc_selected; struct i915_vma *ads_vma; struct iosys_map ads_map; u32 ads_regset_size; u32 ads_regset_count[27]; struct guc_mmio_reg *ads_regset; u32 ads_golden_ctxt_size; u32 ads_capture_size; u32 ads_engine_usage_size; struct i915_vma *lrc_desc_pool_v69; void *lrc_desc_pool_vaddr_v69; struct xarray context_lookup; u32 params[14]; struct { u32 base; unsigned int count; enum forcewake_domains fw_domains; } send_regs; i915_reg_t notify_reg; u32 mmio_msg; struct mutex send_mutex; struct { spinlock_t lock; u64 gt_stamp; unsigned long ping_delay; struct delayed_work work; u32 shift; unsigned long last_stat_jiffies; } timestamp; }; enum intel_huc_delayed_load_status { INTEL_HUC_WAITING_ON_GSC = 0, INTEL_HUC_WAITING_ON_PXP = 1, INTEL_HUC_DELAYED_LOAD_ERROR = 2, }; struct intel_huc { struct intel_uc_fw fw; struct { i915_reg_t reg; u32 mask; u32 value; } status; struct { struct i915_sw_fence fence; struct hrtimer timer; struct notifier_block nb; enum intel_huc_delayed_load_status status; } delayed_load; }; struct intel_uc_ops; struct intel_uc { const struct intel_uc_ops *ops; struct intel_gsc_uc gsc; struct intel_guc guc; struct intel_huc huc; struct drm_i915_gem_object *load_err_log; bool reset_in_progress; }; struct mei_aux_device; struct intel_gsc_intf { struct mei_aux_device *adev; struct drm_i915_gem_object *gem_obj; int irq; unsigned int id; }; struct intel_gsc { struct intel_gsc_intf intf[2]; }; struct intel_wopcm { u32 size; struct { u32 base; u32 size; } guc; }; struct seqcount_mutex { seqcount_t seqcount; }; typedef struct seqcount_mutex seqcount_mutex_t; struct i915_wa; struct i915_wa_list { struct intel_gt *gt; const char *name; const char *engine_name; struct i915_wa *list; unsigned int count; unsigned int wa_count; }; struct intel_gt_timelines { spinlock_t lock; struct list_head active_list; }; struct intel_gt_requests { struct delayed_work retire_work; }; struct intel_wakeref_ops; struct intel_wakeref { atomic_t count; struct mutex mutex; intel_wakeref_t wakeref; struct intel_runtime_pm *rpm; const struct intel_wakeref_ops *ops; struct delayed_work work; }; struct intel_reset { unsigned long flags; struct mutex mutex; wait_queue_head_t queue; struct srcu_struct backoff_srcu; }; struct intel_llc {}; struct intel_rc6 { i915_reg_t res_reg[4]; u64 prev_hw_residency[4]; u64 cur_residency[4]; u32 ctl_enable; struct drm_i915_gem_object *pctx; bool supported: 1; bool enabled: 1; bool manual: 1; bool wakeref: 1; }; struct intel_rps_ei { ktime_t ktime; u32 render_c0; u32 media_c0; }; struct intel_ips { u64 last_count1; unsigned long last_time1; unsigned long chipset_power; u64 last_count2; u64 last_time2; unsigned long gfx_power; u8 corr; int c; int m; }; struct intel_rps { struct mutex lock; struct timer_list timer; struct work_struct work; unsigned long flags; ktime_t pm_timestamp; u32 pm_interval; u32 pm_iir; u32 pm_intrmsk_mbz; u32 pm_events; u8 cur_freq; u8 last_freq; u8 min_freq_softlimit; u8 max_freq_softlimit; u8 max_freq; u8 min_freq; u8 boost_freq; u8 idle_freq; u8 efficient_freq; u8 rp1_freq; u8 rp0_freq; u16 gpll_ref_freq; int last_adj; struct { struct mutex mutex; enum { LOW_POWER = 0, BETWEEN = 1, HIGH_POWER = 2, } mode; unsigned int interactive; u8 up_threshold; u8 down_threshold; } power; atomic_t num_waiters; unsigned int boosts; struct intel_rps_ei ei; struct intel_ips ips; }; enum intel_submission_method { INTEL_SUBMISSION_RING = 0, INTEL_SUBMISSION_ELSP = 1, INTEL_SUBMISSION_GUC = 2, }; struct intel_gt_buffer_pool { spinlock_t lock; struct list_head cache_list[4]; struct delayed_work work; }; struct intel_migrate { struct intel_context *context; }; typedef union { u8 hsw[3]; unsigned long xehp[1]; } intel_sseu_ss_mask_t; struct sseu_dev_info { u8 slice_mask; intel_sseu_ss_mask_t subslice_mask; intel_sseu_ss_mask_t geometry_subslice_mask; intel_sseu_ss_mask_t compute_subslice_mask; union { u16 hsw[18]; u16 xehp[64]; } eu_mask; u16 eu_total; u8 eu_per_subslice; u8 min_eu_in_pool; u8 subslice_7eu[3]; u8 has_slice_pg: 1; u8 has_subslice_pg: 1; u8 has_eu_pg: 1; u8 has_xehp_dss: 1; u8 max_slices; u8 max_subslices; u8 max_eus_per_subslice; }; struct intel_hwconfig { u32 size; void *ptr; }; struct intel_gt_info { unsigned int id; intel_engine_mask_t engine_mask; u32 l3bank_mask; u8 num_engines; u8 sfc_mask; u8 vdbox_sfc_access; struct sseu_dev_info sseu; unsigned long mslice_mask; struct intel_hwconfig hwconfig; }; struct gt_defaults { u32 min_freq; u32 max_freq; }; struct intel_sseu { u8 slice_mask; u8 subslice_mask; u8 min_eus_per_subslice; u8 max_eus_per_subslice; }; struct i915_perf_gt { struct mutex lock; struct intel_sseu sseu; struct i915_perf_stream *exclusive_stream; }; struct i915_ggtt; struct intel_engine_cs; struct intel_mmio_range; struct intel_gt { struct drm_i915_private___3 *i915; const char *name; enum intel_gt_type type; struct intel_uncore *uncore; struct i915_ggtt *ggtt; struct intel_uc uc; struct intel_gsc gsc; struct intel_wopcm wopcm; struct { struct mutex invalidate_lock; seqcount_mutex_t seqno; } tlb; struct i915_wa_list wa_list; struct intel_gt_timelines timelines; struct intel_gt_requests requests; struct { struct llist_head list; struct work_struct work; } watchdog; struct intel_wakeref wakeref; atomic_t user_wakeref; struct list_head closed_vma; spinlock_t closed_lock; ktime_t last_init_time; struct intel_reset reset; intel_wakeref_t awake; u32 clock_frequency; u32 clock_period_ns; struct intel_llc llc; struct intel_rc6 rc6; struct intel_rps rps; spinlock_t *irq_lock; u32 gt_imr; u32 pm_ier; u32 pm_imr; u32 pm_guc_events; struct { bool active; seqcount_mutex_t lock; ktime_t total; ktime_t start; } stats; struct intel_engine_cs *engine[27]; struct intel_engine_cs *engine_class[54]; enum intel_submission_method submission_method; struct i915_address_space *vm; struct intel_gt_buffer_pool buffer_pool; struct i915_vma *scratch; struct intel_migrate migrate; const struct intel_mmio_range *steering_table[7]; struct { u8 groupid; u8 instanceid; } default_steering; spinlock_t mcr_lock; phys_addr_t phys_addr; struct intel_gt_info info; struct { u8 uc_index; u8 wb_index; } mocs; struct kobject sysfs_gt; struct gt_defaults defaults; struct kobject *sysfs_defaults; struct i915_perf_gt perf; struct list_head ggtt_link; }; struct i915_pmu_sample { u64 cur; }; struct i915_pmu { struct { struct hlist_node node; unsigned int cpu; } cpuhp; struct pmu base; bool closed; const char *name; spinlock_t lock; struct hrtimer timer; u32 enable; ktime_t timer_last; unsigned int enable_count[6]; bool timer_enabled; struct i915_pmu_sample sample[4]; ktime_t sleep_last; unsigned long irq_count; struct attribute_group events_attr_group; void *i915_attr; void *pmu_attr; }; struct i915_drm_clients { struct drm_i915_private___3 *i915; struct xarray xarray; u32 next_id; }; struct ttm_device; struct ttm_resource_manager_func; struct ttm_resource_manager { bool use_type; bool use_tt; struct ttm_device *bdev; uint64_t size; const struct ttm_resource_manager_func *func; spinlock_t move_lock; struct dma_fence *move; struct list_head lru[4]; uint64_t usage; }; enum ttm_caching { ttm_uncached = 0, ttm_write_combined = 1, ttm_cached = 2, }; struct ttm_pool; struct ttm_pool_type { struct ttm_pool *pool; unsigned int order; enum ttm_caching caching; struct list_head shrinker_list; spinlock_t lock; struct list_head pages; }; struct ttm_pool { struct device *dev; bool use_dma_alloc; bool use_dma32; struct { struct ttm_pool_type orders[11]; } caching[3]; }; struct ttm_device_funcs; struct ttm_device { struct list_head device_list; struct ttm_device_funcs *funcs; struct ttm_resource_manager sysman; struct ttm_resource_manager *man_drv[8]; struct drm_vma_offset_manager *vma_manager; struct ttm_pool pool; spinlock_t lru_lock; struct list_head pinned; struct address_space *dev_mapping; struct workqueue_struct *wq; }; struct drm_i915_clock_gating_funcs; struct vlv_s0ix_state; struct i915_hwmon; struct intel_pxp; struct drm_i915_private___3 { struct drm_device___2 drm; struct intel_display display; bool do_release; struct i915_params params; const struct intel_device_info __info; struct intel_runtime_info __runtime; struct intel_driver_caps caps; struct i915_dsm dsm; struct intel_uncore uncore; struct intel_uncore_mmio_debug mmio_debug; struct i915_virtual_gpu vgpu; struct intel_gvt *gvt; struct { struct pci_dev *pdev; struct resource mch_res; bool mchbar_need_disable; } gmch; struct rb_root uabi_engines; unsigned int engine_uabi_class_count[5]; spinlock_t irq_lock; bool display_irqs_enabled; struct mutex sb_lock; struct pm_qos_request sb_qos; union { u32 irq_mask; u32 de_irq_mask[4]; }; u32 pipestat_irq_mask[4]; bool preserve_bios_swizzle; unsigned int fsb_freq; unsigned int mem_freq; unsigned int is_ddr3; unsigned int skl_preferred_vco_freq; unsigned int max_dotclk_freq; unsigned int hpll_freq; unsigned int czclk_freq; struct workqueue_struct *wq; const struct drm_i915_clock_gating_funcs *clock_gating_funcs; enum intel_pch pch_type; unsigned short pch_id; unsigned long gem_quirks; struct i915_gem_mm mm; struct intel_l3_parity l3_parity; u32 edram_size_mb; struct i915_gpu_error gpu_error; u32 suspend_count; struct i915_suspend_saved_registers regfile; struct vlv_s0ix_state *vlv_s0ix_state; struct dram_info dram_info; struct intel_runtime_pm runtime_pm; struct i915_perf perf; struct i915_hwmon *hwmon; struct intel_gt gt0; struct intel_gt *gt[4]; struct kobject *sysfs_gt; struct intel_gt *media_gt; struct { struct i915_gem_contexts contexts; struct file *mmap_singleton; } gem; struct intel_pxp *pxp; u8 vblank_enabled; bool irq_enabled; struct i915_pmu pmu; struct i915_drm_clients clients; struct ttm_device bdev; }; struct drm_file___2; struct drm_gem_object___2; struct drm_driver___2 { int (*load)(struct drm_device___2 *, unsigned long); int (*open)(struct drm_device___2 *, struct drm_file___2 *); void (*postclose)(struct drm_device___2 *, struct drm_file___2 *); void (*lastclose)(struct drm_device___2 *); void (*unload)(struct drm_device___2 *); void (*release)(struct drm_device___2 *); void (*master_set)(struct drm_device___2 *, struct drm_file___2 *, bool); void (*master_drop)(struct drm_device___2 *, struct drm_file___2 *); void (*debugfs_init)(struct drm_minor___2 *); struct drm_gem_object___2 * (*gem_create_object)(struct drm_device___2 *, size_t); int (*prime_handle_to_fd)(struct drm_device___2 *, struct drm_file___2 *, uint32_t, uint32_t, int *); int (*prime_fd_to_handle)(struct drm_device___2 *, struct drm_file___2 *, int, uint32_t *); struct drm_gem_object___2 * (*gem_prime_import)(struct drm_device___2 *, struct dma_buf *); struct drm_gem_object___2 * (*gem_prime_import_sg_table)(struct drm_device___2 *, struct dma_buf_attachment *, struct sg_table *); int (*gem_prime_mmap)(struct drm_gem_object___2 *, struct vm_area_struct *); int (*dumb_create)(struct drm_file___2 *, struct drm_device___2 *, struct drm_mode_create_dumb *); int (*dumb_map_offset)(struct drm_file___2 *, struct drm_device___2 *, uint32_t, uint64_t *); int (*dumb_destroy)(struct drm_file___2 *, struct drm_device___2 *, uint32_t); int major; int minor; int patchlevel; char *name; char *desc; char *date; u32 driver_features; const struct drm_ioctl_desc *ioctls; int num_ioctls; const struct file_operations *fops; }; struct drm_file___2 { bool authenticated; bool stereo_allowed; bool universal_planes; bool atomic; bool aspect_ratio_allowed; bool writeback_connectors; bool was_master; bool is_master; struct drm_master___2 *master; spinlock_t master_lookup_lock; struct pid *pid; drm_magic_t magic; struct list_head lhead; struct drm_minor___2 *minor; struct idr object_idr; spinlock_t table_lock; struct idr syncobj_idr; spinlock_t syncobj_table_lock; struct file *filp; void *driver_priv; struct list_head fbs; struct mutex fbs_lock; struct list_head blobs; wait_queue_head_t event_wait; struct list_head pending_event_list; struct list_head event_list; int event_space; struct mutex event_read_lock; struct drm_prime_file_private prime; }; struct drm_master___2 { struct kref refcount; struct drm_device___2 *dev; char *unique; int unique_len; struct idr magic_map; void *driver_priv; struct drm_master___2 *lessor; int lessee_id; struct list_head lessee_list; struct list_head lessees; struct idr leases; struct idr lessee_idr; }; struct drm_minor___2 { int index; int type; struct device *kdev; struct drm_device___2 *dev; struct dentry *debugfs_root; struct list_head debugfs_list; struct mutex debugfs_lock; }; struct drm_vma_offset_node { rwlock_t vm_lock; struct drm_mm_node vm_node; struct rb_root vm_files; void *driver_private; }; struct dma_resv_list; struct dma_resv { struct ww_mutex lock; struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; }; struct drm_gem_object_funcs; struct drm_gem_lru; struct drm_gem_object___2 { struct kref refcount; unsigned int handle_count; struct drm_device___2 *dev; struct file *filp; struct drm_vma_offset_node vma_node; size_t size; int name; struct dma_buf *dma_buf; struct dma_buf_attachment *import_attach; struct dma_resv *resv; struct dma_resv _resv; const struct drm_gem_object_funcs *funcs; struct list_head lru_node; struct drm_gem_lru *lru; }; 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 drm_gem_object_funcs { void (*free)(struct drm_gem_object___2 *); int (*open)(struct drm_gem_object___2 *, struct drm_file___2 *); void (*close)(struct drm_gem_object___2 *, struct drm_file___2 *); void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object___2 *); struct dma_buf * (*export)(struct drm_gem_object___2 *, int); int (*pin)(struct drm_gem_object___2 *); void (*unpin)(struct drm_gem_object___2 *); struct sg_table * (*get_sg_table)(struct drm_gem_object___2 *); int (*vmap)(struct drm_gem_object___2 *, struct iosys_map *); void (*vunmap)(struct drm_gem_object___2 *, struct iosys_map *); int (*mmap)(struct drm_gem_object___2 *, struct vm_area_struct *); const struct vm_operations_struct *vm_ops; }; struct drm_gem_lru { struct mutex *lock; long count; struct list_head list; }; enum drm_mode_status; struct drm_display_mode; struct drm_mode_config_funcs___2 { struct drm_framebuffer * (*fb_create)(struct drm_device___2 *, struct drm_file___2 *, const struct drm_mode_fb_cmd2 *); const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *); void (*output_poll_changed)(struct drm_device___2 *); enum drm_mode_status (*mode_valid)(struct drm_device___2 *, const struct drm_display_mode *); int (*atomic_check)(struct drm_device___2 *, struct drm_atomic_state *); int (*atomic_commit)(struct drm_device___2 *, struct drm_atomic_state *, bool); struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___2 *); void (*atomic_state_clear)(struct drm_atomic_state *); void (*atomic_state_free)(struct drm_atomic_state *); }; struct drm_object_properties___2; struct drm_mode_object___2 { uint32_t id; uint32_t type; struct drm_object_properties___2 *properties; struct kref refcount; void (*free_cb)(struct kref *); }; struct drm_property___2 { struct list_head head; struct drm_mode_object___2 base; uint32_t flags; char name[32]; uint32_t num_values; uint64_t *values; struct drm_device___2 *dev; struct list_head enum_list; }; struct drm_object_properties___2 { int count; struct drm_property___2 *properties[24]; uint64_t values[24]; }; struct drm_vma_offset_manager { rwlock_t vm_lock; struct drm_mm vm_addr_space_mm; }; enum i915_cache_level { I915_CACHE_NONE = 0, I915_CACHE_LLC = 1, I915_CACHE_L3_LLC = 2, I915_CACHE_WT = 3, }; struct i915_vm_pt_stash; struct i915_vma_ops { void (*bind_vma)(struct i915_address_space *, struct i915_vm_pt_stash *, struct i915_vma_resource *, enum i915_cache_level, u32); void (*unbind_vma)(struct i915_address_space *, struct i915_vma_resource *); }; struct i915_page_table; struct i915_address_space { struct kref ref; struct work_struct release_work; struct drm_mm mm; struct intel_gt *gt; struct drm_i915_private___3 *i915; struct device *dma; u64 total; u64 reserved; u64 min_alignment[4]; unsigned int bind_async_flags; struct mutex mutex; struct kref resv_ref; struct dma_resv _resv; struct drm_i915_gem_object *scratch[4]; struct list_head bound_list; struct list_head unbound_list; bool is_ggtt: 1; bool is_dpt: 1; bool has_read_only: 1; bool skip_pte_rewrite: 1; u8 top; u8 pd_shift; u8 scratch_order; unsigned long lmem_pt_obj_flags; struct rb_root_cached pending_unbind; struct drm_i915_gem_object * (*alloc_pt_dma)(struct i915_address_space *, int); struct drm_i915_gem_object * (*alloc_scratch_dma)(struct i915_address_space *, int); u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32); void (*allocate_va_range)(struct i915_address_space *, struct i915_vm_pt_stash *, u64, u64); void (*clear_range)(struct i915_address_space *, u64, u64); void (*insert_page)(struct i915_address_space *, dma_addr_t, u64, enum i915_cache_level, u32); void (*insert_entries)(struct i915_address_space *, struct i915_vma_resource *, enum i915_cache_level, u32); void (*raw_insert_page)(struct i915_address_space *, dma_addr_t, u64, enum i915_cache_level, u32); void (*raw_insert_entries)(struct i915_address_space *, struct i915_vma_resource *, enum i915_cache_level, u32); void (*cleanup)(struct i915_address_space *); void (*foreach)(struct i915_address_space *, u64, u64, void (*)(struct i915_address_space *, struct i915_page_table *, void *), void *); struct i915_vma_ops vma_ops; }; struct io_mapping { resource_size_t base; unsigned long size; pgprot_t prot; void *iomem; }; struct i915_ppgtt; struct i915_fence_reg; struct i915_ggtt { struct i915_address_space vm; struct io_mapping iomap; struct resource gmadr; resource_size_t mappable_end; void *gsm; void (*invalidate)(struct i915_ggtt *); struct i915_ppgtt *alias; bool do_idle_maps; int mtrr; u32 bit_6_swizzle_x; u32 bit_6_swizzle_y; u32 pin_bias; unsigned int num_fences; struct i915_fence_reg *fence_regs; struct list_head fence_list; struct list_head userfault_list; struct mutex error_mutex; struct drm_mm_node error_capture; struct drm_mm_node uc_fw; struct list_head gt_list; }; enum ttm_bo_type { ttm_bo_type_device = 0, ttm_bo_type_kernel = 1, ttm_bo_type_sg = 2, }; struct ttm_resource; struct ttm_tt; struct ttm_lru_bulk_move; struct ttm_buffer_object { struct drm_gem_object___2 base; struct ttm_device *bdev; enum ttm_bo_type type; uint32_t page_alignment; void (*destroy)(struct ttm_buffer_object *); struct kref kref; struct ttm_resource *resource; struct ttm_tt *ttm; bool deleted; struct ttm_lru_bulk_move *bulk_move; unsigned int priority; unsigned int pin_count; struct work_struct delayed_delete; struct sg_table *sg; }; struct i915_gem_object_page_iter { struct scatterlist *sg_pos; unsigned int sg_idx; struct xarray radix; struct mutex lock; }; struct interval_tree_node { struct rb_node rb; unsigned long start; unsigned long last; unsigned long __subtree_last; }; struct mmu_interval_notifier_ops; struct mmu_interval_notifier { struct interval_tree_node interval_tree; const struct mmu_interval_notifier_ops *ops; struct mm_struct *mm; struct hlist_node deferred_item; unsigned long invalidate_seq; }; struct i915_gem_userptr { uintptr_t ptr; unsigned long notifier_seq; struct mmu_interval_notifier notifier; struct page **pvec; int page_ref; }; struct drm_i915_gem_object_ops; struct intel_frontbuffer; struct drm_i915_gem_object { union { struct drm_gem_object___2 base; struct ttm_buffer_object __do_not_access; }; const struct drm_i915_gem_object_ops *ops; struct { spinlock_t lock; struct list_head list; struct rb_root tree; } vma; struct list_head lut_list; spinlock_t lut_lock; struct list_head obj_link; struct i915_address_space *shares_resv_from; union { struct callback_head rcu; struct llist_node freed; }; unsigned int userfault_count; struct list_head userfault_link; struct { spinlock_t lock; struct rb_root offsets; } mmo; unsigned long flags; unsigned int mem_flags; unsigned int cache_level: 3; unsigned int cache_coherent: 2; unsigned int cache_dirty: 1; u16 read_domains; u16 write_domain; struct intel_frontbuffer __attribute__((btf_type_tag("rcu"))) *frontbuffer; unsigned int tiling_and_stride; struct { atomic_t pages_pin_count; atomic_t shrink_pin; bool ttm_shrinkable; bool unknown_state; struct intel_memory_region **placements; int n_placements; struct intel_memory_region *region; struct ttm_resource *res; struct list_head region_link; struct i915_refct_sgt *rsgt; struct sg_table *pages; void *mapping; struct i915_page_sizes page_sizes; struct i915_gem_object_page_iter get_page; struct i915_gem_object_page_iter get_dma_page; struct list_head link; unsigned int madv: 2; bool dirty: 1; u32 tlb; } mm; struct { struct i915_refct_sgt *cached_io_rsgt; struct i915_gem_object_page_iter get_io_page; struct drm_i915_gem_object *backup; bool created: 1; } ttm; u32 pxp_key_instance; unsigned long *bit_17; union { struct i915_gem_userptr userptr; struct drm_mm_node *stolen; resource_size_t bo_offset; unsigned long scratch; u64 encode; void *gvt_info; }; }; struct ttm_operation_ctx; struct ttm_place; struct ttm_placement; struct ttm_device_funcs { struct ttm_tt * (*ttm_tt_create)(struct ttm_buffer_object *, uint32_t); int (*ttm_tt_populate)(struct ttm_device *, struct ttm_tt *, struct ttm_operation_ctx *); void (*ttm_tt_unpopulate)(struct ttm_device *, struct ttm_tt *); void (*ttm_tt_destroy)(struct ttm_device *, struct ttm_tt *); bool (*eviction_valuable)(struct ttm_buffer_object *, const struct ttm_place *); void (*evict_flags)(struct ttm_buffer_object *, struct ttm_placement *); int (*move)(struct ttm_buffer_object *, bool, struct ttm_operation_ctx *, struct ttm_resource *, struct ttm_place *); void (*delete_mem_notify)(struct ttm_buffer_object *); void (*swap_notify)(struct ttm_buffer_object *); int (*io_mem_reserve)(struct ttm_device *, struct ttm_resource *); void (*io_mem_free)(struct ttm_device *, struct ttm_resource *); unsigned long (*io_mem_pfn)(struct ttm_buffer_object *, unsigned long); int (*access_memory)(struct ttm_buffer_object *, unsigned long, void *, int, int); void (*release_notify)(struct ttm_buffer_object *); }; struct ttm_operation_ctx { bool interruptible; bool no_wait_gpu; bool gfp_retry_mayfail; bool allow_res_evict; bool force_alloc; struct dma_resv *resv; uint64_t bytes_moved; }; struct ttm_place { unsigned int fpfn; unsigned int lpfn; uint32_t mem_type; uint32_t flags; }; struct ttm_bus_placement { void *addr; phys_addr_t offset; bool is_iomem; enum ttm_caching caching; }; struct ttm_resource { unsigned long start; size_t size; uint32_t mem_type; uint32_t placement; struct ttm_bus_placement bus; struct ttm_buffer_object *bo; struct list_head lru; }; struct ttm_resource_manager_func { int (*alloc)(struct ttm_resource_manager *, struct ttm_buffer_object *, const struct ttm_place *, struct ttm_resource **); void (*free)(struct ttm_resource_manager *, struct ttm_resource *); bool (*intersects)(struct ttm_resource_manager *, struct ttm_resource *, const struct ttm_place *, size_t); bool (*compatible)(struct ttm_resource_manager *, struct ttm_resource *, const struct ttm_place *, size_t); void (*debug)(struct ttm_resource_manager *, struct drm_printer *); }; struct ttm_lru_bulk_move_pos { struct ttm_resource *first; struct ttm_resource *last; }; struct ttm_lru_bulk_move { struct ttm_lru_bulk_move_pos pos[32]; }; struct drm_i915_gem_pread; struct drm_i915_gem_pwrite; struct drm_i915_gem_object_ops { unsigned int flags; int (*get_pages)(struct drm_i915_gem_object *); void (*put_pages)(struct drm_i915_gem_object *, struct sg_table *); int (*truncate)(struct drm_i915_gem_object *); int (*shrink)(struct drm_i915_gem_object *, unsigned int); int (*pread)(struct drm_i915_gem_object *, const struct drm_i915_gem_pread *); int (*pwrite)(struct drm_i915_gem_object *, const struct drm_i915_gem_pwrite *); u64 (*mmap_offset)(struct drm_i915_gem_object *); void (*unmap_virtual)(struct drm_i915_gem_object *); int (*dmabuf_export)(struct drm_i915_gem_object *); void (*adjust_lru)(struct drm_i915_gem_object *); void (*delayed_free)(struct drm_i915_gem_object *); int (*migrate)(struct drm_i915_gem_object *, struct intel_memory_region *, unsigned int); void (*release)(struct drm_i915_gem_object *); const struct vm_operations_struct *mmap_ops; const char *name; }; struct drm_i915_gem_pread { __u32 handle; __u32 pad; __u64 offset; __u64 size; __u64 data_ptr; }; struct drm_i915_gem_pwrite { __u32 handle; __u32 pad; __u64 offset; __u64 size; __u64 data_ptr; }; enum intel_region_id { INTEL_REGION_SMEM = 0, INTEL_REGION_LMEM_0 = 1, INTEL_REGION_LMEM_1 = 2, INTEL_REGION_LMEM_2 = 3, INTEL_REGION_LMEM_3 = 4, INTEL_REGION_STOLEN_SMEM = 5, INTEL_REGION_STOLEN_LMEM = 6, INTEL_REGION_UNKNOWN = 7, }; struct intel_memory_region_ops; struct intel_memory_region { struct drm_i915_private___3 *i915; const struct intel_memory_region_ops *ops; struct io_mapping iomap; struct resource region; resource_size_t io_start; resource_size_t io_size; resource_size_t min_page_size; resource_size_t total; u16 type; u16 instance; enum intel_region_id id; char name[16]; bool private; struct { struct mutex lock; struct list_head list; } objects; bool is_range_manager; void *region_private; }; struct intel_memory_region_ops { unsigned int flags; int (*init)(struct intel_memory_region *); int (*release)(struct intel_memory_region *); int (*init_object)(struct intel_memory_region *, struct drm_i915_gem_object *, resource_size_t, resource_size_t, resource_size_t, unsigned int); }; 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 i915_active_fence { struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence; struct dma_fence_cb cb; }; struct active_node; struct i915_active { atomic_t count; struct mutex mutex; spinlock_t tree_lock; struct active_node *cache; struct rb_root tree; struct i915_active_fence excl; unsigned long flags; int (*active)(struct i915_active *); void (*retire)(struct i915_active *); struct work_struct work; struct llist_head preallocated_barriers; }; struct intel_frontbuffer { struct kref ref; atomic_t bits; struct i915_active write; struct drm_i915_gem_object *obj; struct callback_head rcu; }; struct i915_refct_sgt_ops; struct i915_refct_sgt { struct kref kref; struct sg_table table; size_t size; const struct i915_refct_sgt_ops *ops; }; struct i915_refct_sgt_ops { void (*release)(struct kref *); }; struct mmu_notifier_range; struct mmu_interval_notifier_ops { bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long); }; enum mmu_notifier_event { MMU_NOTIFY_UNMAP = 0, MMU_NOTIFY_CLEAR = 1, MMU_NOTIFY_PROTECTION_VMA = 2, MMU_NOTIFY_PROTECTION_PAGE = 3, MMU_NOTIFY_SOFT_DIRTY = 4, MMU_NOTIFY_RELEASE = 5, MMU_NOTIFY_MIGRATE = 6, MMU_NOTIFY_EXCLUSIVE = 7, }; struct mmu_notifier_range { struct mm_struct *mm; unsigned long start; unsigned long end; unsigned int flags; enum mmu_notifier_event event; void *owner; }; struct i915_vm_pt_stash { struct i915_page_table *pt[2]; int pt_sz; }; struct i915_page_table { struct drm_i915_gem_object *base; union { atomic_t used; struct i915_page_table *stash; }; bool is_compact; }; struct i915_page_directory; struct i915_ppgtt { struct i915_address_space vm; struct i915_page_directory *pd; }; struct i915_page_directory { struct i915_page_table pt; spinlock_t lock; void **entry; }; struct i915_fence_reg { struct list_head link; struct i915_ggtt *ggtt; struct i915_vma *vma; atomic_t pin_count; struct i915_active active; int id; bool dirty; u32 start; u32 size; u32 tiling; u32 stride; }; enum i915_gtt_view_type { I915_GTT_VIEW_NORMAL = 0, I915_GTT_VIEW_ROTATED = 24, I915_GTT_VIEW_PARTIAL = 12, I915_GTT_VIEW_REMAPPED = 52, }; struct intel_partial_info { u64 offset; unsigned int size; } __attribute__((packed)); struct intel_remapped_plane_info { u32 offset: 31; u32 linear: 1; union { struct { u16 width; u16 height; u16 src_stride; u16 dst_stride; }; u32 size; }; }; struct intel_rotation_info { struct intel_remapped_plane_info plane[2]; }; struct intel_remapped_info { struct intel_remapped_plane_info plane[4]; u32 plane_alignment; }; struct i915_gtt_view { enum i915_gtt_view_type type; union { struct intel_partial_info partial; struct intel_rotation_info rotated; struct intel_remapped_info remapped; }; } __attribute__((packed)); struct i915_mmap_offset; struct i915_vma { struct drm_mm_node node; struct i915_address_space *vm; const struct i915_vma_ops *ops; struct drm_i915_gem_object *obj; struct sg_table *pages; void *iomap; void *private; struct i915_fence_reg *fence; u64 size; struct i915_page_sizes page_sizes; struct i915_mmap_offset *mmo; u32 guard; u32 fence_size; u32 fence_alignment; u32 display_alignment; atomic_t open_count; atomic_t flags; struct i915_active active; atomic_t pages_count; bool vm_ddestroy; struct i915_gtt_view gtt_view; struct list_head vm_link; struct list_head obj_link; struct rb_node obj_node; struct hlist_node obj_hash; struct list_head evict_link; struct list_head closed_link; struct i915_vma_resource *resource; }; enum i915_mmap_type { I915_MMAP_TYPE_GTT = 0, I915_MMAP_TYPE_WC = 1, I915_MMAP_TYPE_WB = 2, I915_MMAP_TYPE_UC = 3, I915_MMAP_TYPE_FIXED = 4, }; struct i915_mmap_offset { struct drm_vma_offset_node vma_node; struct drm_i915_gem_object *obj; enum i915_mmap_type mmap_type; struct rb_node offset; }; struct intel_uc_ops { int (*sanitize)(struct intel_uc *); void (*init_fw)(struct intel_uc *); void (*fini_fw)(struct intel_uc *); int (*init)(struct intel_uc *); void (*fini)(struct intel_uc *); int (*init_hw)(struct intel_uc *); void (*fini_hw)(struct intel_uc *); }; struct ewma_runtime { unsigned long internal; }; struct intel_context_stats { u64 active; struct { struct ewma_runtime avg; u64 total; u32 last; } runtime; }; struct i915_gem_context; struct intel_ring; struct intel_timeline; struct intel_context_ops; struct intel_context { union { struct kref ref; struct callback_head rcu; }; struct intel_engine_cs *engine; struct intel_engine_cs *inflight; struct i915_address_space *vm; struct i915_gem_context __attribute__((btf_type_tag("rcu"))) *gem_context; struct list_head signal_link; struct list_head signals; spinlock_t signal_lock; struct i915_vma *state; u32 ring_size; struct intel_ring *ring; struct intel_timeline *timeline; unsigned long flags; struct { u64 timeout_us; } watchdog; u32 *lrc_reg_state; union { struct { u32 lrca; u32 ccid; }; u64 desc; } lrc; u32 tag; struct intel_context_stats stats; unsigned int active_count; atomic_t pin_count; struct mutex pin_mutex; struct i915_active active; const struct intel_context_ops *ops; struct intel_sseu sseu; struct list_head pinned_contexts_link; u8 wa_bb_page; struct { spinlock_t lock; u32 sched_state; struct list_head fences; struct i915_sw_fence blocked; struct list_head requests; u8 prio; u32 prio_count[4]; struct delayed_work sched_disable_delay_work; } guc_state; struct { u16 id; atomic_t ref; struct list_head link; } guc_id; struct list_head destroyed_link; struct { union { struct list_head child_list; struct list_head child_link; }; struct intel_context *parent; struct i915_request *last_rq; u64 fence_context; u32 seqno; u8 number_children; u8 child_index; struct { u16 wqi_head; u16 wqi_tail; u32 *wq_head; u32 *wq_tail; u32 *wq_status; u8 parent_page; } guc; } parallel; }; struct intel_engine_execlists_stats { unsigned int active; seqcount_t lock; ktime_t total; ktime_t start; }; struct intel_engine_guc_stats { bool running; u32 prev_total; u64 total_gt_clks; u64 start_gt_clk; }; enum intel_engine_id { RCS0 = 0, BCS0 = 1, BCS1 = 2, BCS2 = 3, BCS3 = 4, BCS4 = 5, BCS5 = 6, BCS6 = 7, BCS7 = 8, BCS8 = 9, VCS0 = 10, VCS1 = 11, VCS2 = 12, VCS3 = 13, VCS4 = 14, VCS5 = 15, VCS6 = 16, VCS7 = 17, VECS0 = 18, VECS1 = 19, VECS2 = 20, VECS3 = 21, CCS0 = 22, CCS1 = 23, CCS2 = 24, CCS3 = 25, GSC0 = 26, I915_NUM_ENGINES = 27, }; struct ewma__engine_latency { unsigned long internal; }; struct intel_engine_pmu { u32 enable; unsigned int enable_count[3]; struct i915_pmu_sample sample[3]; }; struct intel_hw_status_page { struct list_head timelines; struct i915_vma *vma; u32 *addr; }; struct i915_wa_ctx_bb { u32 offset; u32 size; }; struct i915_ctx_workarounds { struct i915_wa_ctx_bb indirect_ctx; struct i915_wa_ctx_bb per_ctx; struct i915_vma *vma; }; struct intel_engine_execlists { struct timer_list timer; struct timer_list preempt; const struct i915_request *preempt_target; u32 ccid; u32 yield; u32 error_interrupt; u32 reset_ccid; u32 *submit_reg; u32 *ctrl_reg; struct i915_request * const *active; struct i915_request *inflight[3]; struct i915_request *pending[3]; unsigned int port_mask; struct rb_root_cached virtual; u32 *csb_write; u64 *csb_status; u8 csb_size; u8 csb_head; }; struct atomic_notifier_head { spinlock_t lock; struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; struct intel_breadcrumbs; struct drm_i915_reg_table; struct intel_engine_cs { struct drm_i915_private___3 *i915; struct intel_gt *gt; struct intel_uncore *uncore; char name[8]; enum intel_engine_id id; enum intel_engine_id legacy_idx; unsigned int guc_id; intel_engine_mask_t mask; u32 reset_domain; intel_engine_mask_t logical_mask; u8 class; u8 instance; u16 uabi_class; u16 uabi_instance; u32 uabi_capabilities; u32 context_size; u32 mmio_base; enum forcewake_domains fw_domain; unsigned int fw_active; unsigned long context_tag; struct rb_node uabi_node; struct intel_sseu sseu; struct i915_sched_engine *sched_engine; struct i915_request *request_pool; struct intel_context *hung_ce; struct llist_head barrier_tasks; struct intel_context *kernel_context; struct list_head pinned_contexts_list; intel_engine_mask_t saturated; struct { struct delayed_work work; struct i915_request *systole; unsigned long blocked; } heartbeat; unsigned long serial; unsigned long wakeref_serial; struct intel_wakeref wakeref; struct file *default_state; struct { struct intel_ring *ring; struct intel_timeline *timeline; } legacy; struct ewma__engine_latency latency; struct intel_breadcrumbs *breadcrumbs; struct intel_engine_pmu pmu; struct intel_hw_status_page status_page; struct i915_ctx_workarounds wa_ctx; struct i915_wa_list ctx_wa_list; struct i915_wa_list wa_list; struct i915_wa_list whitelist; u32 irq_keep_mask; u32 irq_enable_mask; void (*irq_enable)(struct intel_engine_cs *); void (*irq_disable)(struct intel_engine_cs *); void (*irq_handler)(struct intel_engine_cs *, u16); void (*sanitize)(struct intel_engine_cs *); int (*resume)(struct intel_engine_cs *); struct { void (*prepare)(struct intel_engine_cs *); void (*rewind)(struct intel_engine_cs *, bool); void (*cancel)(struct intel_engine_cs *); void (*finish)(struct intel_engine_cs *); } reset; void (*park)(struct intel_engine_cs *); void (*unpark)(struct intel_engine_cs *); void (*bump_serial)(struct intel_engine_cs *); void (*set_default_submission)(struct intel_engine_cs *); const struct intel_context_ops *cops; int (*request_alloc)(struct i915_request *); int (*emit_flush)(struct i915_request *, u32); int (*emit_bb_start)(struct i915_request *, u64, u32, unsigned int); int (*emit_init_breadcrumb)(struct i915_request *); u32 * (*emit_fini_breadcrumb)(struct i915_request *, u32 *); unsigned int emit_fini_breadcrumb_dw; void (*submit_request)(struct i915_request *); void (*release)(struct intel_engine_cs *); void (*add_active_request)(struct i915_request *); void (*remove_active_request)(struct i915_request *); ktime_t (*busyness)(struct intel_engine_cs *, ktime_t *); struct intel_engine_execlists execlists; struct intel_timeline *retire; struct work_struct retire_work; struct atomic_notifier_head context_status_notifier; unsigned int flags; struct hlist_head cmd_hash[512]; const struct drm_i915_reg_table *reg_tables; int reg_table_count; u32 (*get_cmd_length_mask)(u32); struct { union { struct intel_engine_execlists_stats execlists; struct intel_engine_guc_stats guc; }; ktime_t rps; } stats; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } props; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } defaults; }; struct i915_priolist { struct list_head requests; struct rb_node node; int priority; }; struct i915_sched_attr; struct i915_sched_engine { struct kref ref; spinlock_t lock; struct list_head requests; struct list_head hold; struct tasklet_struct tasklet; struct i915_priolist default_priolist; int queue_priority_hint; struct rb_root_cached queue; bool no_priolist; void *private_data; void (*destroy)(struct kref *); bool (*disabled)(struct i915_sched_engine *); void (*kick_backend)(const struct i915_request *, int); void (*bump_inflight_request_prio)(struct i915_request *, int); void (*retire_inflight_request_prio)(struct i915_request *); void (*schedule)(struct i915_request *, const struct i915_sched_attr *); }; struct pin_cookie {}; struct i915_sw_dma_fence_cb { struct dma_fence_cb base; struct i915_sw_fence *fence; }; struct i915_request_duration_cb { struct dma_fence_cb cb; ktime_t emitted; }; struct i915_sched_attr { int priority; }; struct i915_sched_node { struct list_head signalers_list; struct list_head waiters_list; struct list_head link; struct i915_sched_attr attr; unsigned int flags; intel_engine_mask_t semaphores; }; struct i915_dependency { struct i915_sched_node *signaler; struct i915_sched_node *waiter; struct list_head signal_link; struct list_head wait_link; struct list_head dfs_link; unsigned long flags; }; struct i915_request_watchdog { struct llist_node link; struct hrtimer timer; }; struct i915_capture_list; struct i915_request { struct dma_fence fence; spinlock_t lock; struct drm_i915_private___3 *i915; struct intel_engine_cs *engine; struct intel_context *context; struct intel_ring *ring; struct intel_timeline __attribute__((btf_type_tag("rcu"))) *timeline; struct list_head signal_link; struct llist_node signal_node; unsigned long rcustate; struct pin_cookie cookie; struct i915_sw_fence submit; union { wait_queue_entry_t submitq; struct i915_sw_dma_fence_cb dmaq; struct i915_request_duration_cb duration; }; struct llist_head execute_cb; struct i915_sw_fence semaphore; struct irq_work submit_work; struct i915_sched_node sched; struct i915_dependency dep; intel_engine_mask_t execution_mask; const u32 *hwsp_seqno; u32 head; u32 infix; u32 postfix; u32 tail; u32 wa_tail; u32 reserved_space; struct i915_vma_resource *batch_res; struct i915_capture_list *capture_list; unsigned long emitted_jiffies; struct list_head link; struct i915_request_watchdog watchdog; struct list_head guc_fence_link; u8 guc_prio; wait_queue_entry_t hucq; }; struct i915_syncmap; struct intel_timeline { u64 fence_context; u32 seqno; struct mutex mutex; atomic_t pin_count; atomic_t active_count; void *hwsp_map; const u32 *hwsp_seqno; struct i915_vma *hwsp_ggtt; u32 hwsp_offset; bool has_initial_breadcrumb; struct list_head requests; struct i915_active_fence last_request; struct i915_active active; struct intel_timeline *retire; struct i915_syncmap *sync; struct list_head link; struct intel_gt *gt; struct list_head engine_link; struct kref kref; struct callback_head rcu; }; struct i915_capture_list { struct i915_vma_resource *vma_res; struct i915_capture_list *next; }; struct intel_wakeref_ops { int (*get)(struct intel_wakeref *); int (*put)(struct intel_wakeref *); }; typedef struct { u32 reg; } i915_mcr_reg_t; struct i915_wa { union { i915_reg_t reg; i915_mcr_reg_t mcr_reg; }; u32 clr; u32 set; u32 read; u32 masked_reg: 1; u32 is_mcr: 1; }; struct i915_gem_ww_ctx; struct intel_context_ops { unsigned long flags; int (*alloc)(struct intel_context *); void (*revoke)(struct intel_context *, struct i915_request *, unsigned int); void (*close)(struct intel_context *); int (*pre_pin)(struct intel_context *, struct i915_gem_ww_ctx *, void **); int (*pin)(struct intel_context *, void *); void (*unpin)(struct intel_context *); void (*post_unpin)(struct intel_context *); void (*cancel_request)(struct intel_context *, struct i915_request *); void (*enter)(struct intel_context *); void (*exit)(struct intel_context *); void (*sched_disable)(struct intel_context *); void (*reset)(struct intel_context *); void (*destroy)(struct kref *); struct intel_context * (*create_virtual)(struct intel_engine_cs **, unsigned int, unsigned long); struct intel_context * (*create_parallel)(struct intel_engine_cs **, unsigned int, unsigned int); struct intel_engine_cs * (*get_sibling)(struct intel_engine_cs *, unsigned int); }; struct i915_gem_ww_ctx { struct ww_acquire_ctx ctx; struct list_head obj_list; struct drm_i915_gem_object *contended; bool intr; }; struct drm_i915_reg_descriptor; struct drm_i915_reg_table { const struct drm_i915_reg_descriptor *regs; int num_regs; }; struct drm_i915_file_private; struct i915_gem_engines; struct drm_syncobj; struct i915_drm_client; struct i915_gem_context { struct drm_i915_private___3 *i915; struct drm_i915_file_private *file_priv; struct i915_gem_engines __attribute__((btf_type_tag("rcu"))) *engines; struct mutex engines_mutex; struct drm_syncobj *syncobj; struct i915_address_space *vm; struct pid *pid; struct list_head link; struct i915_drm_client *client; struct list_head client_link; struct kref ref; struct work_struct release_work; struct callback_head rcu; unsigned long user_flags; unsigned long flags; bool uses_protected_content; intel_wakeref_t pxp_wakeref; struct mutex mutex; struct i915_sched_attr sched; atomic_t guilty_count; atomic_t active_count; unsigned long hang_timestamp[2]; u8 remap_slice; struct xarray handles_vma; struct mutex lut_mutex; char name[24]; struct { spinlock_t lock; struct list_head engines; } stale; }; struct i915_gem_engines { union { struct list_head link; struct callback_head rcu; }; struct i915_sw_fence fence; struct i915_gem_context *ctx; unsigned int num_engines; struct intel_context *engines[0]; }; struct i915_drm_client { struct kref kref; unsigned int id; spinlock_t ctx_lock; struct list_head ctx_list; struct i915_drm_clients *clients; atomic64_t past_runtime[5]; }; struct guc_ct_buffer_desc { u32 head; u32 tail; u32 status; u32 reserved[13]; }; struct slpc_shared_data_header { u32 size; u32 global_state; u32 display_data_addr; }; struct slpc_task_state_data { union { u32 task_status_padding; struct { u32 status; }; }; union { u32 freq_padding; struct { u32 freq; }; }; }; struct slpc_override_params { u32 bits[8]; u32 values[256]; }; struct slpc_shared_data { struct slpc_shared_data_header header; u8 shared_data_header_pad[52]; u8 platform_info_pad[64]; struct slpc_task_state_data task_state_data; u8 task_state_data_pad[56]; struct slpc_override_params override_params; u8 override_params_pad[32]; u8 shared_data_pad[2816]; u8 reserved_mode_definition[4096]; }; struct guc_mmio_reg { u32 offset; u32 value; u32 flags; u32 mask; }; struct intel_mmio_range { u32 start; u32 end; }; struct i915_perf_stream_ops; struct i915_oa_config; struct i915_perf_stream { struct i915_perf *perf; struct intel_uncore *uncore; struct intel_engine_cs *engine; struct mutex lock; u32 sample_flags; int sample_size; struct i915_gem_context *ctx; bool enabled; bool hold_preemption; const struct i915_perf_stream_ops *ops; struct i915_oa_config *oa_config; struct llist_head oa_config_bos; struct intel_context *pinned_ctx; u32 specific_ctx_id; u32 specific_ctx_id_mask; struct hrtimer poll_check_timer; wait_queue_head_t poll_wq; bool pollin; bool periodic; int period_exponent; struct { const struct i915_oa_format *format; struct i915_vma *vma; u8 *vaddr; u32 last_ctx_id; int size_exponent; spinlock_t ptr_lock; u32 aging_tail; u64 aging_timestamp; u32 head; u32 tail; } oa_buffer; struct i915_vma *noa_wait; u64 poll_oa_period; }; struct i915_oa_format { u32 format; int size; }; typedef struct poll_table_struct poll_table; struct i915_perf_stream_ops { void (*enable)(struct i915_perf_stream *); void (*disable)(struct i915_perf_stream *); void (*poll_wait)(struct i915_perf_stream *, struct file *, poll_table *); int (*wait_unlocked)(struct i915_perf_stream *); int (*read)(struct i915_perf_stream *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); void (*destroy)(struct i915_perf_stream *); }; 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 i915_oa_reg; struct i915_oa_config { struct i915_perf *perf; char uuid[37]; int id; const struct i915_oa_reg *mux_regs; u32 mux_regs_len; const struct i915_oa_reg *b_counter_regs; u32 b_counter_regs_len; const struct i915_oa_reg *flex_regs; u32 flex_regs_len; struct attribute_group sysfs_metric; struct attribute *attrs[2]; struct kobj_attribute sysfs_metric_id; struct kref ref; struct callback_head rcu; }; struct i915_oa_reg { i915_reg_t addr; u32 value; }; struct intel_forcewake_range { u32 start; u32 end; enum forcewake_domains domains; }; struct i915_range { u32 start; u32 end; }; struct intel_uncore_fw_get { void (*force_wake_get)(struct intel_uncore *, enum forcewake_domains); }; enum forcewake_domain_id { FW_DOMAIN_ID_RENDER = 0, FW_DOMAIN_ID_GT = 1, FW_DOMAIN_ID_MEDIA = 2, FW_DOMAIN_ID_MEDIA_VDBOX0 = 3, FW_DOMAIN_ID_MEDIA_VDBOX1 = 4, FW_DOMAIN_ID_MEDIA_VDBOX2 = 5, FW_DOMAIN_ID_MEDIA_VDBOX3 = 6, FW_DOMAIN_ID_MEDIA_VDBOX4 = 7, FW_DOMAIN_ID_MEDIA_VDBOX5 = 8, FW_DOMAIN_ID_MEDIA_VDBOX6 = 9, FW_DOMAIN_ID_MEDIA_VDBOX7 = 10, FW_DOMAIN_ID_MEDIA_VEBOX0 = 11, FW_DOMAIN_ID_MEDIA_VEBOX1 = 12, FW_DOMAIN_ID_MEDIA_VEBOX2 = 13, FW_DOMAIN_ID_MEDIA_VEBOX3 = 14, FW_DOMAIN_ID_GSC = 15, FW_DOMAIN_ID_COUNT = 16, }; struct intel_uncore_forcewake_domain { struct intel_uncore *uncore; enum forcewake_domain_id id; enum forcewake_domains mask; unsigned int wake_count; bool active; struct hrtimer timer; u32 *reg_set; u32 *reg_ack; }; struct drm_i915_clock_gating_funcs { void (*init_clock_gating)(struct drm_i915_private *); }; struct intel_gt_coredump; struct intel_overlay_error_state; struct i915_gpu_coredump { struct kref ref; ktime_t time; ktime_t boottime; ktime_t uptime; unsigned long capture; struct drm_i915_private___3 *i915; struct intel_gt_coredump *gt; char error_msg[128]; bool simulated; bool wakelock; bool suspended; int iommu; u32 reset_count; u32 suspend_count; struct intel_device_info device_info; struct intel_runtime_info runtime_info; struct intel_driver_caps driver_caps; struct i915_params params; struct intel_overlay_error_state *overlay; struct scatterlist *sgl; struct scatterlist *fit; }; struct intel_engine_coredump; struct intel_uc_coredump; struct intel_gt_coredump { const struct intel_gt *_gt; bool awake; bool simulated; struct intel_gt_info info; u32 eir; u32 pgtbl_er; u32 ier; u32 gtier[6]; u32 ngtier; u32 forcewake; u32 error; u32 err_int; u32 fault_data0; u32 fault_data1; u32 done_reg; u32 gac_eco; u32 gam_ecochk; u32 gab_ctl; u32 gfx_mode; u32 gtt_cache; u32 aux_err; u32 gam_done; u32 clock_frequency; u32 clock_period_ns; u32 derrmr; u32 sfc_done[4]; u32 nfence; u64 fence[32]; struct intel_engine_coredump *engine; struct intel_uc_coredump *uc; struct intel_gt_coredump *next; }; struct intel_instdone { u32 instdone; u32 slice_common; u32 slice_common_extra[2]; u32 sampler[128]; u32 row[128]; u32 geom_svg[128]; }; struct i915_gem_context_coredump { char comm[16]; u64 total_runtime; u64 avg_runtime; pid_t pid; int active; int guilty; struct i915_sched_attr sched_attr; }; struct i915_request_coredump { unsigned long flags; pid_t pid; u32 context; u32 seqno; u32 head; u32 tail; struct i915_sched_attr sched_attr; }; struct __guc_capture_parsed_output; struct i915_vma_coredump; struct intel_engine_coredump { const struct intel_engine_cs *engine; bool hung; bool simulated; u32 reset_count; u32 rq_head; u32 rq_post; u32 rq_tail; u32 ccid; u32 start; u32 tail; u32 head; u32 ctl; u32 mode; u32 hws; u32 ipeir; u32 ipehr; u32 esr; u32 bbstate; u32 instpm; u32 instps; u64 bbaddr; u64 acthd; u32 fault_reg; u64 faddr; u32 rc_psmi; u32 nopid; u32 excc; u32 cmd_cctl; u32 cscmdop; u32 ctx_sr_ctl; u32 dma_faddr_hi; u32 dma_faddr_lo; struct intel_instdone instdone; struct intel_guc_state_capture *guc_capture; struct __guc_capture_parsed_output *guc_capture_node; struct i915_gem_context_coredump context; struct i915_vma_coredump *vma; struct i915_request_coredump execlist[2]; unsigned int num_ports; struct { u32 gfx_mode; union { u64 pdp[4]; u32 pp_dir_base; }; } vm_info; struct intel_engine_coredump *next; }; struct i915_vma_coredump { struct i915_vma_coredump *next; char name[20]; u64 gtt_offset; u64 gtt_size; u32 gtt_page_sizes; int unused; struct list_head page_list; }; struct intel_ctb_coredump { u32 raw_head; u32 head; u32 raw_tail; u32 tail; u32 raw_status; u32 desc_offset; u32 cmds_offset; u32 size; }; struct guc_info { struct intel_ctb_coredump ctb[2]; struct i915_vma_coredump *vma_ctb; struct i915_vma_coredump *vma_log; u32 timestamp; u16 last_fence; bool is_guc_capture; }; struct intel_uc_coredump { struct intel_uc_fw guc_fw; struct intel_uc_fw huc_fw; struct guc_info guc; }; struct intel_fdi_funcs { void (*fdi_link_train)(struct intel_crtc *, const struct intel_crtc_state *); }; struct intel_color_funcs { int (*color_check)(struct intel_crtc_state *); void (*color_commit_noarm)(const struct intel_crtc_state *); void (*color_commit_arm)(const struct intel_crtc_state *); void (*load_luts)(const struct intel_crtc_state *); void (*read_luts)(struct intel_crtc_state *); bool (*lut_equal)(const struct intel_crtc_state *, const struct drm_property_blob *, const struct drm_property_blob *, bool); }; struct intel_audio_funcs { void (*audio_codec_enable)(struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*audio_codec_disable)(struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*audio_codec_get_config)(struct intel_encoder *, struct intel_crtc_state *); }; struct intel_global_state { struct intel_global_obj *obj; struct intel_atomic_state *state; struct kref ref; bool changed; }; struct intel_global_state_funcs { struct intel_global_state * (*atomic_duplicate_state)(struct intel_global_obj *); void (*atomic_destroy_state)(struct intel_global_obj *, struct intel_global_state *); }; struct intel_cdclk_vals { u32 cdclk; u16 refclk; u16 waveform; u8 divider; u8 ratio; }; struct drm_property_blob___2 { struct drm_mode_object___2 base; struct drm_device___2 *dev; struct list_head head_global; struct list_head head_file; size_t length; void *data; }; enum intel_dpll_id { DPLL_ID_PRIVATE = -1, DPLL_ID_PCH_PLL_A = 0, DPLL_ID_PCH_PLL_B = 1, DPLL_ID_WRPLL1 = 0, DPLL_ID_WRPLL2 = 1, DPLL_ID_SPLL = 2, DPLL_ID_LCPLL_810 = 3, DPLL_ID_LCPLL_1350 = 4, DPLL_ID_LCPLL_2700 = 5, DPLL_ID_SKL_DPLL0 = 0, DPLL_ID_SKL_DPLL1 = 1, DPLL_ID_SKL_DPLL2 = 2, DPLL_ID_SKL_DPLL3 = 3, DPLL_ID_ICL_DPLL0 = 0, DPLL_ID_ICL_DPLL1 = 1, DPLL_ID_EHL_DPLL4 = 2, DPLL_ID_ICL_TBTPLL = 2, DPLL_ID_ICL_MGPLL1 = 3, DPLL_ID_ICL_MGPLL2 = 4, DPLL_ID_ICL_MGPLL3 = 5, DPLL_ID_ICL_MGPLL4 = 6, DPLL_ID_TGL_MGPLL5 = 7, DPLL_ID_TGL_MGPLL6 = 8, DPLL_ID_DG1_DPLL0 = 0, DPLL_ID_DG1_DPLL1 = 1, DPLL_ID_DG1_DPLL2 = 2, DPLL_ID_DG1_DPLL3 = 3, }; struct intel_shared_dpll_funcs; struct dpll_info { const char *name; const struct intel_shared_dpll_funcs *funcs; enum intel_dpll_id id; u32 flags; }; struct intel_shared_dpll_funcs { void (*enable)(struct drm_i915_private *, struct intel_shared_dpll *); void (*disable)(struct drm_i915_private *, struct intel_shared_dpll *); bool (*get_hw_state)(struct drm_i915_private *, struct intel_shared_dpll *, struct intel_dpll_hw_state *); int (*get_freq)(struct drm_i915_private *, const struct intel_shared_dpll *, const struct intel_dpll_hw_state *); }; struct intel_dpll_mgr { const struct dpll_info *dpll_info; int (*compute_dplls)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *); int (*get_dplls)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *); void (*put_dplls)(struct intel_atomic_state *, struct intel_crtc *); void (*update_active_dpll)(struct intel_atomic_state *, struct intel_crtc *, struct intel_encoder *); void (*update_ref_clks)(struct drm_i915_private *); void (*dump_hw_state)(struct drm_i915_private *, const struct intel_dpll_hw_state *); }; struct intel_gt_debugfs_file { const char *name; const struct file_operations *fops; bool (*eval)(void *); }; enum { VLV_IOSF_SB_BUNIT = 0, VLV_IOSF_SB_CCK = 1, VLV_IOSF_SB_CCU = 2, VLV_IOSF_SB_DPIO = 3, VLV_IOSF_SB_FLISDSI = 4, VLV_IOSF_SB_GPIO = 5, VLV_IOSF_SB_NC = 6, VLV_IOSF_SB_PUNIT = 7, }; enum intel_rc6_res_type { INTEL_RC6_RES_RC6_LOCKED = 0, INTEL_RC6_RES_RC6 = 1, INTEL_RC6_RES_RC6p = 2, INTEL_RC6_RES_RC6pp = 3, INTEL_RC6_RES_MAX = 4, INTEL_RC6_RES_VLV_MEDIA = 2, }; enum { INTEL_RPS_ENABLED = 0, INTEL_RPS_ACTIVE = 1, INTEL_RPS_INTERRUPTS = 2, INTEL_RPS_TIMER = 3, }; 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_poll_cb_t { struct dma_fence_cb cb; wait_queue_head_t *poll; __poll_t active; }; 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_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 dma_buf_attach_ops { bool allow_peer2peer; void (*move_notify)(struct dma_buf_attachment *); }; enum i915_map_type { I915_MAP_WB = 0, I915_MAP_WC = 1, I915_MAP_FORCE_WB = 2147483648, I915_MAP_FORCE_WC = 2147483649, }; 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 intel_ring { struct kref ref; struct i915_vma *vma; void *vaddr; atomic_t pin_count; u32 head; u32 tail; u32 emit; u32 space; u32 size; u32 wrap; u32 effective_size; }; struct drm_i915_file_private { struct drm_i915_private___3 *dev_priv; union { struct drm_file___2 *file; struct callback_head rcu; }; struct mutex proto_context_lock; struct xarray proto_context_xa; struct xarray context_xa; struct xarray vm_xa; unsigned int bsd_engine; atomic_t ban_score; unsigned long hang_timestamp; struct i915_drm_client *client; }; enum drm_mm_insert_mode { DRM_MM_INSERT_BEST = 0, DRM_MM_INSERT_LOW = 1, DRM_MM_INSERT_HIGH = 2, DRM_MM_INSERT_EVICT = 3, DRM_MM_INSERT_ONCE = 2147483648, DRM_MM_INSERT_HIGHEST = 2147483650, DRM_MM_INSERT_LOWEST = 2147483649, }; enum fb_op_origin { ORIGIN_CPU = 0, ORIGIN_CS = 1, ORIGIN_FLIP = 2, ORIGIN_DIRTYFB = 3, ORIGIN_CURSOR_UPDATE = 4, }; struct drm_i915_gem_get_aperture { __u64 aper_size; __u64 aper_available_size; }; struct drm_i915_gem_sw_finish { __u32 handle; }; struct drm_i915_gem_madvise { __u32 handle; __u32 madv; __u32 retained; }; struct intel_sa_info { u16 displayrtids; u8 deburst; u8 deprogbwlimit; u8 derating; }; struct __intel_global_objs_state; struct intel_atomic_state { struct drm_atomic_state base; intel_wakeref_t wakeref; struct __intel_global_objs_state *global_objs; int num_global_objs; bool dpll_set; bool modeset; struct intel_shared_dpll_state shared_dpll[9]; bool skip_intermediate_wm; bool rps_interactive; struct i915_sw_fence commit_ready; struct llist_node freed; }; struct drm_gem_object_funcs___2; struct drm_gem_object { struct kref refcount; unsigned int handle_count; struct drm_device *dev; struct file *filp; struct drm_vma_offset_node vma_node; size_t size; int name; struct dma_buf *dma_buf; struct dma_buf_attachment *import_attach; struct dma_resv *resv; struct dma_resv _resv; const struct drm_gem_object_funcs___2 *funcs; struct list_head lru_node; struct drm_gem_lru *lru; }; struct drm_gem_object_funcs___2 { void (*free)(struct drm_gem_object *); int (*open)(struct drm_gem_object *, struct drm_file *); void (*close)(struct drm_gem_object *, struct drm_file *); void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object *); struct dma_buf * (*export)(struct drm_gem_object *, int); int (*pin)(struct drm_gem_object *); void (*unpin)(struct drm_gem_object *); struct sg_table * (*get_sg_table)(struct drm_gem_object *); int (*vmap)(struct drm_gem_object *, struct iosys_map *); void (*vunmap)(struct drm_gem_object *, struct iosys_map *); int (*mmap)(struct drm_gem_object *, struct vm_area_struct *); const struct vm_operations_struct *vm_ops; }; 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 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 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 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 __intel_global_objs_state { struct intel_global_obj *ptr; struct intel_global_state *state; struct intel_global_state *old_state; struct intel_global_state *new_state; }; enum transcoder { INVALID_TRANSCODER = -1, TRANSCODER_A = 0, TRANSCODER_B = 1, TRANSCODER_C = 2, TRANSCODER_D = 3, TRANSCODER_EDP = 4, TRANSCODER_DSI_0 = 5, TRANSCODER_DSI_1 = 6, TRANSCODER_DSI_A = 5, TRANSCODER_DSI_C = 6, I915_MAX_TRANSCODERS = 7, }; enum dp_pixelformat { DP_PIXELFORMAT_RGB = 0, DP_PIXELFORMAT_YUV444 = 1, DP_PIXELFORMAT_YUV422 = 2, DP_PIXELFORMAT_YUV420 = 3, DP_PIXELFORMAT_Y_ONLY = 4, DP_PIXELFORMAT_RAW = 5, DP_PIXELFORMAT_RESERVED = 6, }; enum dp_colorimetry { DP_COLORIMETRY_DEFAULT = 0, DP_COLORIMETRY_RGB_WIDE_FIXED = 1, DP_COLORIMETRY_BT709_YCC = 1, DP_COLORIMETRY_RGB_WIDE_FLOAT = 2, DP_COLORIMETRY_XVYCC_601 = 2, DP_COLORIMETRY_OPRGB = 3, DP_COLORIMETRY_XVYCC_709 = 3, DP_COLORIMETRY_DCI_P3_RGB = 4, DP_COLORIMETRY_SYCC_601 = 4, DP_COLORIMETRY_RGB_CUSTOM = 5, DP_COLORIMETRY_OPYCC_601 = 5, DP_COLORIMETRY_BT2020_RGB = 6, DP_COLORIMETRY_BT2020_CYCC = 6, DP_COLORIMETRY_BT2020_YCC = 7, }; enum dp_dynamic_range { DP_DYNAMIC_RANGE_VESA = 0, DP_DYNAMIC_RANGE_CTA = 1, }; enum dp_content_type { DP_CONTENT_TYPE_NOT_DEFINED = 0, DP_CONTENT_TYPE_GRAPHICS = 1, DP_CONTENT_TYPE_PHOTO = 2, DP_CONTENT_TYPE_VIDEO = 3, DP_CONTENT_TYPE_GAME = 4, }; enum hdmi_infoframe_type { HDMI_INFOFRAME_TYPE_VENDOR = 129, HDMI_INFOFRAME_TYPE_AVI = 130, HDMI_INFOFRAME_TYPE_SPD = 131, HDMI_INFOFRAME_TYPE_AUDIO = 132, HDMI_INFOFRAME_TYPE_DRM = 135, }; enum hdmi_colorspace { HDMI_COLORSPACE_RGB = 0, HDMI_COLORSPACE_YUV422 = 1, HDMI_COLORSPACE_YUV444 = 2, HDMI_COLORSPACE_YUV420 = 3, HDMI_COLORSPACE_RESERVED4 = 4, HDMI_COLORSPACE_RESERVED5 = 5, HDMI_COLORSPACE_RESERVED6 = 6, HDMI_COLORSPACE_IDO_DEFINED = 7, }; enum hdmi_scan_mode { HDMI_SCAN_MODE_NONE = 0, HDMI_SCAN_MODE_OVERSCAN = 1, HDMI_SCAN_MODE_UNDERSCAN = 2, HDMI_SCAN_MODE_RESERVED = 3, }; enum hdmi_colorimetry { HDMI_COLORIMETRY_NONE = 0, HDMI_COLORIMETRY_ITU_601 = 1, HDMI_COLORIMETRY_ITU_709 = 2, HDMI_COLORIMETRY_EXTENDED = 3, }; enum hdmi_active_aspect { HDMI_ACTIVE_ASPECT_16_9_TOP = 2, HDMI_ACTIVE_ASPECT_14_9_TOP = 3, HDMI_ACTIVE_ASPECT_16_9_CENTER = 4, HDMI_ACTIVE_ASPECT_PICTURE = 8, HDMI_ACTIVE_ASPECT_4_3 = 9, HDMI_ACTIVE_ASPECT_16_9 = 10, HDMI_ACTIVE_ASPECT_14_9 = 11, HDMI_ACTIVE_ASPECT_4_3_SP_14_9 = 13, HDMI_ACTIVE_ASPECT_16_9_SP_14_9 = 14, HDMI_ACTIVE_ASPECT_16_9_SP_4_3 = 15, }; enum hdmi_extended_colorimetry { HDMI_EXTENDED_COLORIMETRY_XV_YCC_601 = 0, HDMI_EXTENDED_COLORIMETRY_XV_YCC_709 = 1, HDMI_EXTENDED_COLORIMETRY_S_YCC_601 = 2, HDMI_EXTENDED_COLORIMETRY_OPYCC_601 = 3, HDMI_EXTENDED_COLORIMETRY_OPRGB = 4, HDMI_EXTENDED_COLORIMETRY_BT2020_CONST_LUM = 5, HDMI_EXTENDED_COLORIMETRY_BT2020 = 6, HDMI_EXTENDED_COLORIMETRY_RESERVED = 7, }; enum hdmi_quantization_range { HDMI_QUANTIZATION_RANGE_DEFAULT = 0, HDMI_QUANTIZATION_RANGE_LIMITED = 1, HDMI_QUANTIZATION_RANGE_FULL = 2, HDMI_QUANTIZATION_RANGE_RESERVED = 3, }; enum hdmi_nups { HDMI_NUPS_UNKNOWN = 0, HDMI_NUPS_HORIZONTAL = 1, HDMI_NUPS_VERTICAL = 2, HDMI_NUPS_BOTH = 3, }; enum hdmi_ycc_quantization_range { HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, }; enum hdmi_content_type { HDMI_CONTENT_TYPE_GRAPHICS = 0, HDMI_CONTENT_TYPE_PHOTO = 1, HDMI_CONTENT_TYPE_CINEMA = 2, HDMI_CONTENT_TYPE_GAME = 3, }; enum hdmi_spd_sdi { HDMI_SPD_SDI_UNKNOWN = 0, HDMI_SPD_SDI_DSTB = 1, HDMI_SPD_SDI_DVDP = 2, HDMI_SPD_SDI_DVHS = 3, HDMI_SPD_SDI_HDDVR = 4, HDMI_SPD_SDI_DVC = 5, HDMI_SPD_SDI_DSC = 6, HDMI_SPD_SDI_VCD = 7, HDMI_SPD_SDI_GAME = 8, HDMI_SPD_SDI_PC = 9, HDMI_SPD_SDI_BD = 10, HDMI_SPD_SDI_SACD = 11, HDMI_SPD_SDI_HDDVD = 12, HDMI_SPD_SDI_PMP = 13, }; enum hdmi_3d_structure { HDMI_3D_STRUCTURE_INVALID = -1, HDMI_3D_STRUCTURE_FRAME_PACKING = 0, HDMI_3D_STRUCTURE_FIELD_ALTERNATIVE = 1, HDMI_3D_STRUCTURE_LINE_ALTERNATIVE = 2, HDMI_3D_STRUCTURE_SIDE_BY_SIDE_FULL = 3, HDMI_3D_STRUCTURE_L_DEPTH = 4, HDMI_3D_STRUCTURE_L_DEPTH_GFX_GFX_DEPTH = 5, HDMI_3D_STRUCTURE_TOP_AND_BOTTOM = 6, HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF = 8, }; enum hdmi_audio_coding_type { HDMI_AUDIO_CODING_TYPE_STREAM = 0, HDMI_AUDIO_CODING_TYPE_PCM = 1, HDMI_AUDIO_CODING_TYPE_AC3 = 2, HDMI_AUDIO_CODING_TYPE_MPEG1 = 3, HDMI_AUDIO_CODING_TYPE_MP3 = 4, HDMI_AUDIO_CODING_TYPE_MPEG2 = 5, HDMI_AUDIO_CODING_TYPE_AAC_LC = 6, HDMI_AUDIO_CODING_TYPE_DTS = 7, HDMI_AUDIO_CODING_TYPE_ATRAC = 8, HDMI_AUDIO_CODING_TYPE_DSD = 9, HDMI_AUDIO_CODING_TYPE_EAC3 = 10, HDMI_AUDIO_CODING_TYPE_DTS_HD = 11, HDMI_AUDIO_CODING_TYPE_MLP = 12, HDMI_AUDIO_CODING_TYPE_DST = 13, HDMI_AUDIO_CODING_TYPE_WMA_PRO = 14, HDMI_AUDIO_CODING_TYPE_CXT = 15, }; enum hdmi_audio_sample_size { HDMI_AUDIO_SAMPLE_SIZE_STREAM = 0, HDMI_AUDIO_SAMPLE_SIZE_16 = 1, HDMI_AUDIO_SAMPLE_SIZE_20 = 2, HDMI_AUDIO_SAMPLE_SIZE_24 = 3, }; enum hdmi_audio_sample_frequency { HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM = 0, HDMI_AUDIO_SAMPLE_FREQUENCY_32000 = 1, HDMI_AUDIO_SAMPLE_FREQUENCY_44100 = 2, HDMI_AUDIO_SAMPLE_FREQUENCY_48000 = 3, HDMI_AUDIO_SAMPLE_FREQUENCY_88200 = 4, HDMI_AUDIO_SAMPLE_FREQUENCY_96000 = 5, HDMI_AUDIO_SAMPLE_FREQUENCY_176400 = 6, HDMI_AUDIO_SAMPLE_FREQUENCY_192000 = 7, }; enum hdmi_audio_coding_type_ext { HDMI_AUDIO_CODING_TYPE_EXT_CT = 0, HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC = 1, HDMI_AUDIO_CODING_TYPE_EXT_HE_AAC_V2 = 2, HDMI_AUDIO_CODING_TYPE_EXT_MPEG_SURROUND = 3, HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC = 4, HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_V2 = 5, HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC = 6, HDMI_AUDIO_CODING_TYPE_EXT_DRA = 7, HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_HE_AAC_SURROUND = 8, HDMI_AUDIO_CODING_TYPE_EXT_MPEG4_AAC_LC_SURROUND = 10, }; enum hdmi_eotf { HDMI_EOTF_TRADITIONAL_GAMMA_SDR = 0, HDMI_EOTF_TRADITIONAL_GAMMA_HDR = 1, HDMI_EOTF_SMPTE_ST2084 = 2, HDMI_EOTF_BT_2100_HLG = 3, }; enum hdmi_metadata_type { HDMI_STATIC_METADATA_TYPE1 = 0, }; enum intel_output_format { INTEL_OUTPUT_FORMAT_RGB = 0, INTEL_OUTPUT_FORMAT_YCBCR420 = 1, INTEL_OUTPUT_FORMAT_YCBCR444 = 2, }; enum drrs_refresh_rate { DRRS_REFRESH_RATE_HIGH = 0, DRRS_REFRESH_RATE_LOW = 1, }; enum intel_pipe_crc_source { INTEL_PIPE_CRC_SOURCE_NONE = 0, INTEL_PIPE_CRC_SOURCE_PLANE1 = 1, INTEL_PIPE_CRC_SOURCE_PLANE2 = 2, INTEL_PIPE_CRC_SOURCE_PLANE3 = 3, INTEL_PIPE_CRC_SOURCE_PLANE4 = 4, INTEL_PIPE_CRC_SOURCE_PLANE5 = 5, INTEL_PIPE_CRC_SOURCE_PLANE6 = 6, INTEL_PIPE_CRC_SOURCE_PLANE7 = 7, INTEL_PIPE_CRC_SOURCE_PIPE = 8, INTEL_PIPE_CRC_SOURCE_TV = 9, INTEL_PIPE_CRC_SOURCE_DP_B = 10, INTEL_PIPE_CRC_SOURCE_DP_C = 11, INTEL_PIPE_CRC_SOURCE_DP_D = 12, INTEL_PIPE_CRC_SOURCE_AUTO = 13, INTEL_PIPE_CRC_SOURCE_MAX = 14, }; struct i915_address_space___2; struct intel_memory_region___2; struct i915_vma_ops___2; struct i915_vma_resource___2 { struct dma_fence unbind_fence; spinlock_t lock; refcount_t hold_count; struct work_struct work; struct i915_sw_fence chain; struct rb_node rb; u64 __subtree_last; struct i915_address_space___2 *vm; intel_wakeref_t wakeref; struct i915_vma_bindinfo bi; struct intel_memory_region___2 *mr; const struct i915_vma_ops___2 *ops; void *private; u64 start; u64 node_size; u64 vma_size; u32 guard; u32 page_sizes_gtt; u32 bound_flags; bool allocated: 1; bool immediate_unbind: 1; bool needs_wakeref: 1; bool skip_pte_rewrite: 1; u32 *tlb; }; struct drm_i915_gem_object___2; struct i915_vma___2; struct intel_uc_fw___2 { enum intel_uc_fw_type type; union { const enum intel_uc_fw_status status; enum intel_uc_fw_status __status; }; struct intel_uc_fw_file file_wanted; struct intel_uc_fw_file file_selected; bool user_overridden; size_t size; struct drm_i915_gem_object___2 *obj; struct i915_vma_resource___2 dummy; struct i915_vma___2 *rsa_data; u32 rsa_size; u32 ucode_size; u32 private_data_size; bool loaded_via_gsc; }; struct intel_guc_log___2 { u32 level; struct { s32 bytes; s32 units; s32 count; u32 flag; } sizes[3]; bool sizes_initialised; struct i915_vma___2 *vma; void *buf_addr; struct { bool buf_in_use; bool started; struct work_struct flush_work; struct rchan *channel; struct mutex lock; u32 full_count; } relay; struct { u32 sampled_overflow; u32 overflow; u32 flush; } stats[3]; }; struct intel_guc_ct___2 { struct i915_vma___2 *vma; bool enabled; struct { struct intel_guc_ct_buffer send; struct intel_guc_ct_buffer recv; } ctbs; struct tasklet_struct receive_tasklet; wait_queue_head_t wq; struct { u16 last_fence; spinlock_t lock; struct list_head pending; struct list_head incoming; struct work_struct worker; } requests; ktime_t stall_time; }; struct intel_guc_slpc___2 { struct i915_vma___2 *vma; struct slpc_shared_data *vaddr; bool supported; bool selected; bool min_is_rpmax; u32 min_freq; u32 rp0_freq; u32 rp1_freq; u32 boost_freq; u32 min_freq_softlimit; u32 max_freq_softlimit; u32 media_ratio_mode; struct mutex lock; struct work_struct boost_work; atomic_t num_waiters; u32 num_boosts; }; struct i915_sched_engine___2; struct i915_request___2; struct intel_guc___2 { struct intel_uc_fw___2 fw; struct intel_guc_log___2 log; struct intel_guc_ct___2 ct; struct intel_guc_slpc___2 slpc; struct intel_guc_state_capture *capture; struct i915_sched_engine___2 *sched_engine; struct i915_request___2 *stalled_request; enum { STALL_NONE___2 = 0, STALL_REGISTER_CONTEXT___2 = 1, STALL_MOVE_LRC_TAIL___2 = 2, STALL_ADD_REQUEST___2 = 3, } submission_stall_reason; spinlock_t irq_lock; unsigned int msg_enabled_mask; atomic_t outstanding_submission_g2h; struct { bool enabled; void (*reset)(struct intel_guc___2 *); void (*enable)(struct intel_guc___2 *); void (*disable)(struct intel_guc___2 *); } interrupts; struct { spinlock_t lock; struct ida guc_ids; int num_guc_ids; unsigned long *guc_ids_bitmap; struct list_head guc_id_list; unsigned int guc_ids_in_use; struct list_head destroyed_contexts; struct work_struct destroyed_worker; struct work_struct reset_fail_worker; intel_engine_mask_t reset_fail_mask; unsigned int sched_disable_delay_ms; unsigned int sched_disable_gucid_threshold; } submission_state; bool submission_supported; bool submission_selected; bool submission_initialized; struct intel_uc_fw_ver submission_version; bool rc_supported; bool rc_selected; struct i915_vma___2 *ads_vma; struct iosys_map ads_map; u32 ads_regset_size; u32 ads_regset_count[27]; struct guc_mmio_reg *ads_regset; u32 ads_golden_ctxt_size; u32 ads_capture_size; u32 ads_engine_usage_size; struct i915_vma___2 *lrc_desc_pool_v69; void *lrc_desc_pool_vaddr_v69; struct xarray context_lookup; u32 params[14]; struct { u32 base; unsigned int count; enum forcewake_domains fw_domains; } send_regs; i915_reg_t notify_reg; u32 mmio_msg; struct mutex send_mutex; struct { spinlock_t lock; u64 gt_stamp; unsigned long ping_delay; struct delayed_work work; u32 shift; unsigned long last_stat_jiffies; } timestamp; }; struct ttm_device___2; struct ttm_resource___2; struct ttm_lru_bulk_move___2; struct ttm_buffer_object___2 { struct drm_gem_object base; struct ttm_device___2 *bdev; enum ttm_bo_type type; uint32_t page_alignment; void (*destroy)(struct ttm_buffer_object___2 *); struct kref kref; struct ttm_resource___2 *resource; struct ttm_tt *ttm; bool deleted; struct ttm_lru_bulk_move___2 *bulk_move; unsigned int priority; unsigned int pin_count; struct work_struct delayed_delete; struct sg_table *sg; }; struct drm_i915_gem_object_ops___2; struct intel_frontbuffer___2; struct drm_i915_gem_object___2 { union { struct drm_gem_object base; struct ttm_buffer_object___2 __do_not_access; }; const struct drm_i915_gem_object_ops___2 *ops; struct { spinlock_t lock; struct list_head list; struct rb_root tree; } vma; struct list_head lut_list; spinlock_t lut_lock; struct list_head obj_link; struct i915_address_space___2 *shares_resv_from; union { struct callback_head rcu; struct llist_node freed; }; unsigned int userfault_count; struct list_head userfault_link; struct { spinlock_t lock; struct rb_root offsets; } mmo; unsigned long flags; unsigned int mem_flags; unsigned int cache_level: 3; unsigned int cache_coherent: 2; unsigned int cache_dirty: 1; u16 read_domains; u16 write_domain; struct intel_frontbuffer___2 __attribute__((btf_type_tag("rcu"))) *frontbuffer; unsigned int tiling_and_stride; struct { atomic_t pages_pin_count; atomic_t shrink_pin; bool ttm_shrinkable; bool unknown_state; struct intel_memory_region___2 **placements; int n_placements; struct intel_memory_region___2 *region; struct ttm_resource___2 *res; struct list_head region_link; struct i915_refct_sgt *rsgt; struct sg_table *pages; void *mapping; struct i915_page_sizes page_sizes; struct i915_gem_object_page_iter get_page; struct i915_gem_object_page_iter get_dma_page; struct list_head link; unsigned int madv: 2; bool dirty: 1; u32 tlb; } mm; struct { struct i915_refct_sgt *cached_io_rsgt; struct i915_gem_object_page_iter get_io_page; struct drm_i915_gem_object___2 *backup; bool created: 1; } ttm; u32 pxp_key_instance; unsigned long *bit_17; union { struct i915_gem_userptr userptr; struct drm_mm_node *stolen; resource_size_t bo_offset; unsigned long scratch; u64 encode; void *gvt_info; }; }; struct ttm_resource_manager_func___2; struct ttm_resource_manager___2 { bool use_type; bool use_tt; struct ttm_device___2 *bdev; uint64_t size; const struct ttm_resource_manager_func___2 *func; spinlock_t move_lock; struct dma_fence *move; struct list_head lru[4]; uint64_t usage; }; struct ttm_device_funcs___2; struct ttm_device___2 { struct list_head device_list; struct ttm_device_funcs___2 *funcs; struct ttm_resource_manager___2 sysman; struct ttm_resource_manager___2 *man_drv[8]; struct drm_vma_offset_manager *vma_manager; struct ttm_pool pool; spinlock_t lru_lock; struct list_head pinned; struct address_space *dev_mapping; struct workqueue_struct *wq; }; struct ttm_device_funcs___2 { struct ttm_tt * (*ttm_tt_create)(struct ttm_buffer_object___2 *, uint32_t); int (*ttm_tt_populate)(struct ttm_device___2 *, struct ttm_tt *, struct ttm_operation_ctx *); void (*ttm_tt_unpopulate)(struct ttm_device___2 *, struct ttm_tt *); void (*ttm_tt_destroy)(struct ttm_device___2 *, struct ttm_tt *); bool (*eviction_valuable)(struct ttm_buffer_object___2 *, const struct ttm_place *); void (*evict_flags)(struct ttm_buffer_object___2 *, struct ttm_placement *); int (*move)(struct ttm_buffer_object___2 *, bool, struct ttm_operation_ctx *, struct ttm_resource___2 *, struct ttm_place *); void (*delete_mem_notify)(struct ttm_buffer_object___2 *); void (*swap_notify)(struct ttm_buffer_object___2 *); int (*io_mem_reserve)(struct ttm_device___2 *, struct ttm_resource___2 *); void (*io_mem_free)(struct ttm_device___2 *, struct ttm_resource___2 *); unsigned long (*io_mem_pfn)(struct ttm_buffer_object___2 *, unsigned long); int (*access_memory)(struct ttm_buffer_object___2 *, unsigned long, void *, int, int); void (*release_notify)(struct ttm_buffer_object___2 *); }; struct ttm_resource___2 { unsigned long start; size_t size; uint32_t mem_type; uint32_t placement; struct ttm_bus_placement bus; struct ttm_buffer_object___2 *bo; struct list_head lru; }; struct ttm_resource_manager_func___2 { int (*alloc)(struct ttm_resource_manager___2 *, struct ttm_buffer_object___2 *, const struct ttm_place *, struct ttm_resource___2 **); void (*free)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *); bool (*intersects)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *, const struct ttm_place *, size_t); bool (*compatible)(struct ttm_resource_manager___2 *, struct ttm_resource___2 *, const struct ttm_place *, size_t); void (*debug)(struct ttm_resource_manager___2 *, struct drm_printer *); }; struct ttm_lru_bulk_move_pos___2 { struct ttm_resource___2 *first; struct ttm_resource___2 *last; }; struct ttm_lru_bulk_move___2 { struct ttm_lru_bulk_move_pos___2 pos[32]; }; struct drm_i915_gem_object_ops___2 { unsigned int flags; int (*get_pages)(struct drm_i915_gem_object___2 *); void (*put_pages)(struct drm_i915_gem_object___2 *, struct sg_table *); int (*truncate)(struct drm_i915_gem_object___2 *); int (*shrink)(struct drm_i915_gem_object___2 *, unsigned int); int (*pread)(struct drm_i915_gem_object___2 *, const struct drm_i915_gem_pread *); int (*pwrite)(struct drm_i915_gem_object___2 *, const struct drm_i915_gem_pwrite *); u64 (*mmap_offset)(struct drm_i915_gem_object___2 *); void (*unmap_virtual)(struct drm_i915_gem_object___2 *); int (*dmabuf_export)(struct drm_i915_gem_object___2 *); void (*adjust_lru)(struct drm_i915_gem_object___2 *); void (*delayed_free)(struct drm_i915_gem_object___2 *); int (*migrate)(struct drm_i915_gem_object___2 *, struct intel_memory_region___2 *, unsigned int); void (*release)(struct drm_i915_gem_object___2 *); const struct vm_operations_struct *mmap_ops; const char *name; }; struct intel_memory_region_ops___2; struct intel_memory_region___2 { struct drm_i915_private *i915; const struct intel_memory_region_ops___2 *ops; struct io_mapping iomap; struct resource region; resource_size_t io_start; resource_size_t io_size; resource_size_t min_page_size; resource_size_t total; u16 type; u16 instance; enum intel_region_id id; char name[16]; bool private; struct { struct mutex lock; struct list_head list; } objects; bool is_range_manager; void *region_private; }; struct intel_wm_funcs___2; struct intel_display___2 { struct { const struct intel_display_funcs *display; const struct intel_cdclk_funcs *cdclk; const struct intel_dpll_funcs *dpll; const struct intel_hotplug_funcs *hotplug; const struct intel_wm_funcs___2 *wm; const struct intel_fdi_funcs *fdi; const struct intel_color_funcs *color; const struct intel_audio_funcs *audio; } funcs; struct intel_atomic_helper atomic_helper; struct { struct mutex lock; } backlight; struct { struct intel_global_obj obj; struct intel_bw_info max[6]; } bw; struct { struct intel_cdclk_config hw; const struct intel_cdclk_vals *table; struct intel_global_obj obj; unsigned int max_cdclk_freq; } cdclk; struct { struct drm_property_blob *glk_linear_degamma_lut; } color; struct { u8 enabled_slices; struct intel_global_obj obj; } dbuf; struct { spinlock_t phy_lock; } dkl; struct { u32 mmio_base; } dsi; struct { struct intel_fbdev *fbdev; struct work_struct suspend_work; } fbdev; struct { unsigned int pll_freq; u32 rx_config; } fdi; struct { struct list_head obj_list; } global; struct { u32 mmio_base; struct mutex mutex; struct intel_gmbus *bus[15]; wait_queue_head_t wait_queue; } gmbus; struct { struct i915_hdcp_comp_master *master; bool comp_added; struct mutex comp_mutex; } hdcp; struct { u32 state; } hti; struct { struct i915_power_domains domains; u32 chv_phy_control; bool chv_phy_assert[2]; } power; struct { u32 mmio_base; struct mutex mutex; } pps; struct { struct drm_property *broadcast_rgb; struct drm_property *force_audio; } properties; struct { unsigned long mask; } quirks; struct { struct drm_atomic_state *modeset_state; struct drm_modeset_acquire_ctx reset_ctx; } restore; struct { enum { I915_SAGV_UNKNOWN___2 = 0, I915_SAGV_DISABLED___2 = 1, I915_SAGV_ENABLED___2 = 2, I915_SAGV_NOT_CONTROLLED___2 = 3, } status; u32 block_time_us; } sagv; struct { u8 phy_failed_calibration; } snps; struct { u32 chv_dpll_md[4]; u32 bxt_phy_grc; } state; struct { struct workqueue_struct *modeset; struct workqueue_struct *flip; } wq; struct intel_audio audio; struct intel_dmc dmc; struct intel_dpll dpll; struct intel_fbc *fbc[2]; struct intel_frontbuffer_tracking fb_tracking; struct intel_hotplug hotplug; struct intel_opregion opregion; struct intel_overlay *overlay; struct intel_vbt_data vbt; struct intel_wm wm; }; struct intel_uncore___2; struct intel_uncore_funcs___2 { enum forcewake_domains (*read_fw_domains)(struct intel_uncore___2 *, i915_reg_t); enum forcewake_domains (*write_fw_domains)(struct intel_uncore___2 *, i915_reg_t); u8 (*mmio_readb)(struct intel_uncore___2 *, i915_reg_t, bool); u16 (*mmio_readw)(struct intel_uncore___2 *, i915_reg_t, bool); u32 (*mmio_readl)(struct intel_uncore___2 *, i915_reg_t, bool); u64 (*mmio_readq)(struct intel_uncore___2 *, i915_reg_t, bool); void (*mmio_writeb)(struct intel_uncore___2 *, i915_reg_t, u8, bool); void (*mmio_writew)(struct intel_uncore___2 *, i915_reg_t, u16, bool); void (*mmio_writel)(struct intel_uncore___2 *, i915_reg_t, u32, bool); }; struct intel_gt___2; struct intel_uncore_fw_get___2; struct intel_uncore_forcewake_domain___2; struct intel_uncore___2 { void *regs; struct drm_i915_private *i915; struct intel_gt___2 *gt; struct intel_runtime_pm *rpm; spinlock_t lock; u32 gsi_offset; unsigned int flags; const struct intel_forcewake_range *fw_domains_table; unsigned int fw_domains_table_entries; const struct i915_range *shadowed_reg_table; unsigned int shadowed_reg_table_entries; struct notifier_block pmic_bus_access_nb; const struct intel_uncore_fw_get___2 *fw_get_funcs; struct intel_uncore_funcs___2 funcs; unsigned int fifo_count; enum forcewake_domains fw_domains; enum forcewake_domains fw_domains_active; enum forcewake_domains fw_domains_timer; enum forcewake_domains fw_domains_saved; struct intel_uncore_forcewake_domain___2 *fw_domain[16]; unsigned int user_forcewake_count; struct intel_uncore_mmio_debug *debug; }; struct i915_gem_mm___2 { struct intel_memory_region___2 *stolen_region; struct drm_mm stolen; struct mutex stolen_lock; spinlock_t obj_lock; struct list_head purge_list; struct list_head shrink_list; struct llist_head free_list; struct work_struct free_work; atomic_t free_count; struct vfsmount *gemfs; struct intel_memory_region___2 *regions[7]; struct notifier_block oom_notifier; struct notifier_block vmap_notifier; struct shrinker shrinker; rwlock_t notifier_lock; u64 shrink_memory; u32 shrink_count; }; struct i915_gpu_coredump___2; struct i915_gpu_error___2 { spinlock_t lock; struct i915_gpu_coredump___2 *first_error; atomic_t pending_fb_pin; atomic_t reset_count; atomic_t reset_engine_count[27]; }; struct i915_perf___2; struct i915_perf_stream___2; struct i915_oa_ops___2 { bool (*is_valid_b_counter_reg)(struct i915_perf___2 *, u32); bool (*is_valid_mux_reg)(struct i915_perf___2 *, u32); bool (*is_valid_flex_reg)(struct i915_perf___2 *, u32); int (*enable_metric_set)(struct i915_perf_stream___2 *, struct i915_active *); void (*disable_metric_set)(struct i915_perf_stream___2 *); void (*oa_enable)(struct i915_perf_stream___2 *); void (*oa_disable)(struct i915_perf_stream___2 *); int (*read)(struct i915_perf_stream___2 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); u32 (*oa_hw_tail_read)(struct i915_perf_stream___2 *); }; struct i915_perf___2 { struct drm_i915_private *i915; struct kobject *metrics_kobj; struct mutex metrics_lock; struct idr metrics_idr; struct ratelimit_state spurious_report_rs; struct ratelimit_state tail_pointer_race; u32 gen7_latched_oastatus1; u32 ctx_oactxctrl_offset; u32 ctx_flexeu0_offset; u32 gen8_valid_ctx_bit; struct i915_oa_ops___2 ops; const struct i915_oa_format *oa_formats; unsigned long format_mask[1]; atomic64_t noa_programming_delay; }; struct intel_context___2; struct intel_gsc_uc___2 { struct intel_uc_fw___2 fw; struct i915_vma___2 *local; struct intel_context___2 *ce; struct work_struct work; }; struct intel_huc___2 { struct intel_uc_fw___2 fw; struct { i915_reg_t reg; u32 mask; u32 value; } status; struct { struct i915_sw_fence fence; struct hrtimer timer; struct notifier_block nb; enum intel_huc_delayed_load_status status; } delayed_load; }; struct intel_uc_ops___2; struct intel_uc___2 { const struct intel_uc_ops___2 *ops; struct intel_gsc_uc___2 gsc; struct intel_guc___2 guc; struct intel_huc___2 huc; struct drm_i915_gem_object___2 *load_err_log; bool reset_in_progress; }; struct intel_gsc_intf___2 { struct mei_aux_device *adev; struct drm_i915_gem_object___2 *gem_obj; int irq; unsigned int id; }; struct intel_gsc___2 { struct intel_gsc_intf___2 intf[2]; }; struct i915_wa_list___2 { struct intel_gt___2 *gt; const char *name; const char *engine_name; struct i915_wa *list; unsigned int count; unsigned int wa_count; }; struct intel_rc6___2 { i915_reg_t res_reg[4]; u64 prev_hw_residency[4]; u64 cur_residency[4]; u32 ctl_enable; struct drm_i915_gem_object___2 *pctx; bool supported: 1; bool enabled: 1; bool manual: 1; bool wakeref: 1; }; struct intel_migrate___2 { struct intel_context___2 *context; }; struct i915_perf_gt___2 { struct mutex lock; struct intel_sseu sseu; struct i915_perf_stream___2 *exclusive_stream; }; struct i915_ggtt___2; struct intel_engine_cs___2; struct intel_gt___2 { struct drm_i915_private *i915; const char *name; enum intel_gt_type type; struct intel_uncore___2 *uncore; struct i915_ggtt___2 *ggtt; struct intel_uc___2 uc; struct intel_gsc___2 gsc; struct intel_wopcm wopcm; struct { struct mutex invalidate_lock; seqcount_mutex_t seqno; } tlb; struct i915_wa_list___2 wa_list; struct intel_gt_timelines timelines; struct intel_gt_requests requests; struct { struct llist_head list; struct work_struct work; } watchdog; struct intel_wakeref wakeref; atomic_t user_wakeref; struct list_head closed_vma; spinlock_t closed_lock; ktime_t last_init_time; struct intel_reset reset; intel_wakeref_t awake; u32 clock_frequency; u32 clock_period_ns; struct intel_llc llc; struct intel_rc6___2 rc6; struct intel_rps rps; spinlock_t *irq_lock; u32 gt_imr; u32 pm_ier; u32 pm_imr; u32 pm_guc_events; struct { bool active; seqcount_mutex_t lock; ktime_t total; ktime_t start; } stats; struct intel_engine_cs___2 *engine[27]; struct intel_engine_cs___2 *engine_class[54]; enum intel_submission_method submission_method; struct i915_address_space___2 *vm; struct intel_gt_buffer_pool buffer_pool; struct i915_vma___2 *scratch; struct intel_migrate___2 migrate; const struct intel_mmio_range *steering_table[7]; struct { u8 groupid; u8 instanceid; } default_steering; spinlock_t mcr_lock; phys_addr_t phys_addr; struct intel_gt_info info; struct { u8 uc_index; u8 wb_index; } mocs; struct kobject sysfs_gt; struct gt_defaults defaults; struct kobject *sysfs_defaults; struct i915_perf_gt___2 perf; struct list_head ggtt_link; }; struct i915_drm_clients___2 { struct drm_i915_private *i915; struct xarray xarray; u32 next_id; }; struct drm_i915_private { struct drm_device drm; struct intel_display___2 display; bool do_release; struct i915_params params; const struct intel_device_info __info; struct intel_runtime_info __runtime; struct intel_driver_caps caps; struct i915_dsm dsm; struct intel_uncore___2 uncore; struct intel_uncore_mmio_debug mmio_debug; struct i915_virtual_gpu vgpu; struct intel_gvt *gvt; struct { struct pci_dev *pdev; struct resource mch_res; bool mchbar_need_disable; } gmch; struct rb_root uabi_engines; unsigned int engine_uabi_class_count[5]; spinlock_t irq_lock; bool display_irqs_enabled; struct mutex sb_lock; struct pm_qos_request sb_qos; union { u32 irq_mask; u32 de_irq_mask[4]; }; u32 pipestat_irq_mask[4]; bool preserve_bios_swizzle; unsigned int fsb_freq; unsigned int mem_freq; unsigned int is_ddr3; unsigned int skl_preferred_vco_freq; unsigned int max_dotclk_freq; unsigned int hpll_freq; unsigned int czclk_freq; struct workqueue_struct *wq; const struct drm_i915_clock_gating_funcs *clock_gating_funcs; enum intel_pch pch_type; unsigned short pch_id; unsigned long gem_quirks; struct i915_gem_mm___2 mm; struct intel_l3_parity l3_parity; u32 edram_size_mb; struct i915_gpu_error___2 gpu_error; u32 suspend_count; struct i915_suspend_saved_registers regfile; struct vlv_s0ix_state *vlv_s0ix_state; struct dram_info dram_info; struct intel_runtime_pm runtime_pm; struct i915_perf___2 perf; struct i915_hwmon *hwmon; struct intel_gt___2 gt0; struct intel_gt___2 *gt[4]; struct kobject *sysfs_gt; struct intel_gt___2 *media_gt; struct { struct i915_gem_contexts contexts; struct file *mmap_singleton; } gem; struct intel_pxp *pxp; u8 vblank_enabled; bool irq_enabled; struct i915_pmu pmu; struct i915_drm_clients___2 clients; struct ttm_device___2 bdev; }; struct intel_wm_level { bool enable; u32 pri_val; u32 spr_val; u32 cur_val; u32 fbc_val; }; struct intel_pipe_wm { struct intel_wm_level wm[5]; bool fbc_wm_enabled; bool pipe_enabled; bool sprites_enabled; bool sprites_scaled; }; struct vlv_wm_state { struct g4x_pipe_wm wm[3]; struct g4x_sr_wm sr[3]; u8 num_levels; bool cxsr; }; struct g4x_wm_state { struct g4x_pipe_wm wm; struct g4x_sr_wm sr; struct g4x_sr_wm hpll; bool cxsr; bool hpll_en; bool fbc_en; }; struct intel_link_m_n { u32 tu; u32 data_m; u32 data_n; u32 link_m; u32 link_n; }; struct intel_display_power_domain_set { struct intel_power_domain_mask mask; }; struct intel_pipe_crc { spinlock_t lock; int skipped; enum intel_pipe_crc_source source; }; struct intel_crtc { struct drm_crtc base; enum pipe pipe; bool active; u8 plane_ids_mask; u8 mode_flags; u16 vmax_vblank_start; struct intel_display_power_domain_set enabled_power_domains; struct intel_display_power_domain_set hw_readout_power_domains; struct intel_overlay *overlay; struct intel_crtc_state *config; bool cpu_fifo_underrun_disabled; bool pch_fifo_underrun_disabled; struct { union { struct intel_pipe_wm ilk; struct vlv_wm_state vlv; struct g4x_wm_state g4x; } active; } wm; struct { struct mutex mutex; struct delayed_work work; enum drrs_refresh_rate refresh_rate; unsigned int frontbuffer_bits; unsigned int busy_frontbuffer_bits; enum transcoder cpu_transcoder; struct intel_link_m_n m_n; struct intel_link_m_n m2_n2; } drrs; int scanline_offset; struct { unsigned int start_vbl_count; ktime_t start_vbl_time; int min_vbl; int max_vbl; int scanline_start; } debug; int num_scalers; struct pm_qos_request vblank_pm_qos; struct intel_pipe_crc pipe_crc; }; struct intel_mpllb_state { u32 clock; u32 ref_control; u32 mpllb_cp; u32 mpllb_div; u32 mpllb_div2; u32 mpllb_fracn1; u32 mpllb_fracn2; u32 mpllb_sscen; u32 mpllb_sscstep; }; struct hdmi_any_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; }; struct hdmi_avi_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; enum hdmi_colorspace colorspace; enum hdmi_scan_mode scan_mode; enum hdmi_colorimetry colorimetry; enum hdmi_picture_aspect picture_aspect; enum hdmi_active_aspect active_aspect; bool itc; enum hdmi_extended_colorimetry extended_colorimetry; enum hdmi_quantization_range quantization_range; enum hdmi_nups nups; unsigned char video_code; enum hdmi_ycc_quantization_range ycc_quantization_range; enum hdmi_content_type content_type; unsigned char pixel_repeat; unsigned short top_bar; unsigned short bottom_bar; unsigned short left_bar; unsigned short right_bar; }; struct hdmi_spd_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; char vendor[8]; char product[16]; enum hdmi_spd_sdi sdi; }; struct hdmi_vendor_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; unsigned int oui; u8 vic; enum hdmi_3d_structure s3d_struct; unsigned int s3d_ext_data; }; union hdmi_vendor_any_infoframe { struct { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; unsigned int oui; } any; struct hdmi_vendor_infoframe hdmi; }; struct hdmi_audio_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; unsigned char channels; enum hdmi_audio_coding_type coding_type; enum hdmi_audio_sample_size sample_size; enum hdmi_audio_sample_frequency sample_frequency; enum hdmi_audio_coding_type_ext coding_type_ext; unsigned char channel_allocation; unsigned char level_shift_value; bool downmix_inhibit; }; struct hdmi_drm_infoframe { enum hdmi_infoframe_type type; unsigned char version; unsigned char length; enum hdmi_eotf eotf; enum hdmi_metadata_type metadata_type; struct { u16 x; u16 y; } display_primaries[3]; struct { u16 x; u16 y; } white_point; u16 max_display_mastering_luminance; u16 min_display_mastering_luminance; u16 max_cll; u16 max_fall; }; union hdmi_infoframe { struct hdmi_any_infoframe any; struct hdmi_avi_infoframe avi; struct hdmi_spd_infoframe spd; union hdmi_vendor_any_infoframe vendor; struct hdmi_audio_infoframe audio; struct hdmi_drm_infoframe drm; }; struct drm_dp_vsc_sdp { unsigned char sdp_type; unsigned char revision; unsigned char length; enum dp_pixelformat pixelformat; enum dp_colorimetry colorimetry; int bpc; enum dp_dynamic_range dynamic_range; enum dp_content_type content_type; }; struct dpll { int n; int m1; int m2; int p1; int p2; int dot; int vco; int m; int p; }; struct icl_port_dpll { struct intel_shared_dpll *pll; struct intel_dpll_hw_state hw_state; }; struct intel_scaler { int in_use; u32 mode; }; struct intel_crtc_scaler_state { struct intel_scaler scalers[2]; unsigned int scaler_users; int scaler_id; }; struct skl_wm_level { u16 min_ddb_alloc; u16 blocks; u8 lines; bool enable; bool ignore_lines; bool can_sagv; }; struct skl_plane_wm { struct skl_wm_level wm[8]; struct skl_wm_level uv_wm[8]; struct skl_wm_level trans_wm; struct { struct skl_wm_level wm0; struct skl_wm_level trans_wm; } sagv; bool is_planar; }; struct skl_pipe_wm { struct skl_plane_wm planes[8]; bool use_sagv_wm; }; struct skl_ddb_entry { u16 start; u16 end; }; struct vlv_fifo_state { u16 plane[8]; }; struct intel_crtc_wm_state { union { struct { struct intel_pipe_wm intermediate; struct intel_pipe_wm optimal; } ilk; struct { struct skl_pipe_wm raw; struct skl_pipe_wm optimal; struct skl_ddb_entry ddb; struct skl_ddb_entry plane_ddb[8]; struct skl_ddb_entry plane_ddb_y[8]; } skl; struct { struct g4x_pipe_wm raw[3]; struct vlv_wm_state intermediate; struct vlv_wm_state optimal; struct vlv_fifo_state fifo_state; } vlv; struct { struct g4x_pipe_wm raw[3]; struct g4x_wm_state intermediate; struct g4x_wm_state optimal; } g4x; }; bool need_postvbl_update; }; struct drm_vblank_work { struct kthread_work base; struct drm_vblank_crtc *vblank; u64 count; int cancelling; struct list_head node; }; struct intel_dsb; struct intel_crtc_state { struct drm_crtc_state uapi; struct { bool active; bool enable; struct drm_property_blob *degamma_lut; struct drm_property_blob *gamma_lut; struct drm_property_blob *ctm; struct drm_display_mode mode; struct drm_display_mode pipe_mode; struct drm_display_mode adjusted_mode; enum drm_scaling_filter scaling_filter; } hw; struct drm_property_blob *pre_csc_lut; struct drm_property_blob *post_csc_lut; unsigned long quirks; unsigned int fb_bits; bool update_pipe; bool disable_cxsr; bool update_wm_pre; bool update_wm_post; bool fifo_changed; bool preload_luts; bool inherited; bool do_async_flip; struct drm_rect pipe_src; unsigned int pixel_rate; bool has_pch_encoder; bool has_infoframe; enum transcoder cpu_transcoder; bool limited_color_range; unsigned int output_types; bool has_hdmi_sink; bool has_audio; bool dither; bool dither_force_disable; bool clock_set; bool sdvo_tv_clock; bool bw_constrained; struct dpll dpll; struct intel_shared_dpll *shared_dpll; union { struct intel_dpll_hw_state dpll_hw_state; struct intel_mpllb_state mpllb_state; }; struct icl_port_dpll icl_port_dplls[2]; struct { u32 ctrl; u32 div; } dsi_pll; int pipe_bpp; struct intel_link_m_n dp_m_n; struct intel_link_m_n dp_m2_n2; bool has_drrs; bool seamless_m_n; bool has_psr; bool has_psr2; bool enable_psr2_sel_fetch; bool req_psr2_sdp_prior_scanline; u32 dc3co_exitline; u16 su_y_granularity; struct drm_dp_vsc_sdp psr_vsc; int port_clock; unsigned int pixel_multiplier; u8 mode_flags; u8 lane_count; u8 lane_lat_optim_mask; u8 min_voltage_level; struct { u32 control; u32 pgm_ratios; u32 lvds_border_bits; } gmch_pfit; struct { struct drm_rect dst; bool enabled; bool force_thru; } pch_pfit; int fdi_lanes; struct intel_link_m_n fdi_m_n; bool ips_enabled; bool crc_enabled; bool double_wide; int pbn; struct intel_crtc_scaler_state scaler_state; enum pipe hsw_workaround_pipe; bool disable_lp_wm; struct intel_crtc_wm_state wm; int min_cdclk[8]; u32 data_rate[8]; u32 data_rate_y[8]; u64 rel_data_rate[8]; u64 rel_data_rate_y[8]; u32 gamma_mode; union { u32 csc_mode; u32 cgm_mode; }; u8 enabled_planes; u8 active_planes; u8 scaled_planes; u8 nv12_planes; u8 c8_planes; u8 update_planes; u8 framestart_delay; u8 msa_timing_delay; struct { u32 enable; u32 gcp; union hdmi_infoframe avi; union hdmi_infoframe spd; union hdmi_infoframe hdmi; union hdmi_infoframe drm; struct drm_dp_vsc_sdp vsc; } infoframes; u8 eld[128]; bool hdmi_scrambling; bool hdmi_high_tmds_clock_ratio; enum intel_output_format output_format; bool gamma_enable; bool csc_enable; u8 bigjoiner_pipes; struct { bool compression_enable; bool dsc_split; u16 compressed_bpp; u8 slice_count; struct drm_dsc_config config; } dsc; u16 linetime; u16 ips_linetime; bool fec_enable; bool sdp_split_enable; enum transcoder master_transcoder; u8 sync_mode_slaves_mask; enum transcoder mst_master_transcoder; struct intel_dsb *dsb; u32 psr2_man_track_ctl; struct { bool enable; u8 pipeline_full; u16 flipline; u16 vmin; u16 vmax; u16 guardband; } vrr; struct { bool enable; u8 link_count; u8 pixel_overlap; } splitter; struct drm_vblank_work vblank_work; }; struct intel_framebuffer; struct intel_initial_plane_config { struct intel_framebuffer *fb; struct i915_vma___2 *vma; unsigned int tiling; int size; u32 base; u8 rotation; }; struct i915_color_plane_view { u32 offset; unsigned int x; unsigned int y; unsigned int mapping_stride; unsigned int scanout_stride; }; struct intel_fb_view { struct i915_gtt_view gtt; struct i915_color_plane_view color_plane[4]; }; struct intel_framebuffer { struct drm_framebuffer base; struct intel_frontbuffer___2 *frontbuffer; struct intel_fb_view normal_view; union { struct intel_fb_view rotated_view; struct intel_fb_view remapped_view; }; struct i915_address_space___2 *dpt_vm; }; struct intel_frontbuffer___2 { struct kref ref; atomic_t bits; struct i915_active write; struct drm_i915_gem_object___2 *obj; struct callback_head rcu; }; struct i915_vm_pt_stash___2; struct i915_vma_ops___2 { void (*bind_vma)(struct i915_address_space___2 *, struct i915_vm_pt_stash___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32); void (*unbind_vma)(struct i915_address_space___2 *, struct i915_vma_resource___2 *); }; struct i915_page_table___2; struct i915_address_space___2 { struct kref ref; struct work_struct release_work; struct drm_mm mm; struct intel_gt___2 *gt; struct drm_i915_private *i915; struct device *dma; u64 total; u64 reserved; u64 min_alignment[4]; unsigned int bind_async_flags; struct mutex mutex; struct kref resv_ref; struct dma_resv _resv; struct drm_i915_gem_object___2 *scratch[4]; struct list_head bound_list; struct list_head unbound_list; bool is_ggtt: 1; bool is_dpt: 1; bool has_read_only: 1; bool skip_pte_rewrite: 1; u8 top; u8 pd_shift; u8 scratch_order; unsigned long lmem_pt_obj_flags; struct rb_root_cached pending_unbind; struct drm_i915_gem_object___2 * (*alloc_pt_dma)(struct i915_address_space___2 *, int); struct drm_i915_gem_object___2 * (*alloc_scratch_dma)(struct i915_address_space___2 *, int); u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32); void (*allocate_va_range)(struct i915_address_space___2 *, struct i915_vm_pt_stash___2 *, u64, u64); void (*clear_range)(struct i915_address_space___2 *, u64, u64); void (*insert_page)(struct i915_address_space___2 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*insert_entries)(struct i915_address_space___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32); void (*raw_insert_page)(struct i915_address_space___2 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*raw_insert_entries)(struct i915_address_space___2 *, struct i915_vma_resource___2 *, enum i915_cache_level, u32); void (*cleanup)(struct i915_address_space___2 *); void (*foreach)(struct i915_address_space___2 *, u64, u64, void (*)(struct i915_address_space___2 *, struct i915_page_table___2 *, void *), void *); struct i915_vma_ops___2 vma_ops; }; struct intel_uncore_fw_get___2 { void (*force_wake_get)(struct intel_uncore___2 *, enum forcewake_domains); }; struct intel_uncore_forcewake_domain___2 { struct intel_uncore___2 *uncore; enum forcewake_domain_id id; enum forcewake_domains mask; unsigned int wake_count; bool active; struct hrtimer timer; u32 *reg_set; u32 *reg_ack; }; struct i915_ppgtt___2; struct i915_fence_reg___2; struct i915_ggtt___2 { struct i915_address_space___2 vm; struct io_mapping iomap; struct resource gmadr; resource_size_t mappable_end; void *gsm; void (*invalidate)(struct i915_ggtt___2 *); struct i915_ppgtt___2 *alias; bool do_idle_maps; int mtrr; u32 bit_6_swizzle_x; u32 bit_6_swizzle_y; u32 pin_bias; unsigned int num_fences; struct i915_fence_reg___2 *fence_regs; struct list_head fence_list; struct list_head userfault_list; struct mutex error_mutex; struct drm_mm_node error_capture; struct drm_mm_node uc_fw; struct list_head gt_list; }; struct i915_page_directory___2; struct i915_ppgtt___2 { struct i915_address_space___2 vm; struct i915_page_directory___2 *pd; }; struct i915_page_table___2 { struct drm_i915_gem_object___2 *base; union { atomic_t used; struct i915_page_table___2 *stash; }; bool is_compact; }; struct i915_page_directory___2 { struct i915_page_table___2 pt; spinlock_t lock; void **entry; }; struct i915_fence_reg___2 { struct list_head link; struct i915_ggtt___2 *ggtt; struct i915_vma___2 *vma; atomic_t pin_count; struct i915_active active; int id; bool dirty; u32 start; u32 size; u32 tiling; u32 stride; }; struct i915_mmap_offset___2; struct i915_vma___2 { struct drm_mm_node node; struct i915_address_space___2 *vm; const struct i915_vma_ops___2 *ops; struct drm_i915_gem_object___2 *obj; struct sg_table *pages; void *iomap; void *private; struct i915_fence_reg___2 *fence; u64 size; struct i915_page_sizes page_sizes; struct i915_mmap_offset___2 *mmo; u32 guard; u32 fence_size; u32 fence_alignment; u32 display_alignment; atomic_t open_count; atomic_t flags; struct i915_active active; atomic_t pages_count; bool vm_ddestroy; struct i915_gtt_view gtt_view; struct list_head vm_link; struct list_head obj_link; struct rb_node obj_node; struct hlist_node obj_hash; struct list_head evict_link; struct list_head closed_link; struct i915_vma_resource___2 *resource; }; struct i915_vm_pt_stash___2 { struct i915_page_table___2 *pt[2]; int pt_sz; }; struct i915_mmap_offset___2 { struct drm_vma_offset_node vma_node; struct drm_i915_gem_object___2 *obj; enum i915_mmap_type mmap_type; struct rb_node offset; }; struct intel_uc_ops___2 { int (*sanitize)(struct intel_uc___2 *); void (*init_fw)(struct intel_uc___2 *); void (*fini_fw)(struct intel_uc___2 *); int (*init)(struct intel_uc___2 *); void (*fini)(struct intel_uc___2 *); int (*init_hw)(struct intel_uc___2 *); void (*fini_hw)(struct intel_uc___2 *); }; struct i915_gem_context___2; struct intel_timeline___2; struct intel_context_ops___2; struct intel_context___2 { union { struct kref ref; struct callback_head rcu; }; struct intel_engine_cs___2 *engine; struct intel_engine_cs___2 *inflight; struct i915_address_space___2 *vm; struct i915_gem_context___2 __attribute__((btf_type_tag("rcu"))) *gem_context; struct list_head signal_link; struct list_head signals; spinlock_t signal_lock; struct i915_vma___2 *state; u32 ring_size; struct intel_ring *ring; struct intel_timeline___2 *timeline; unsigned long flags; struct { u64 timeout_us; } watchdog; u32 *lrc_reg_state; union { struct { u32 lrca; u32 ccid; }; u64 desc; } lrc; u32 tag; struct intel_context_stats stats; unsigned int active_count; atomic_t pin_count; struct mutex pin_mutex; struct i915_active active; const struct intel_context_ops___2 *ops; struct intel_sseu sseu; struct list_head pinned_contexts_link; u8 wa_bb_page; struct { spinlock_t lock; u32 sched_state; struct list_head fences; struct i915_sw_fence blocked; struct list_head requests; u8 prio; u32 prio_count[4]; struct delayed_work sched_disable_delay_work; } guc_state; struct { u16 id; atomic_t ref; struct list_head link; } guc_id; struct list_head destroyed_link; struct { union { struct list_head child_list; struct list_head child_link; }; struct intel_context___2 *parent; struct i915_request___2 *last_rq; u64 fence_context; u32 seqno; u8 number_children; u8 child_index; struct { u16 wqi_head; u16 wqi_tail; u32 *wq_head; u32 *wq_tail; u32 *wq_status; u8 parent_page; } guc; } parallel; }; struct intel_hw_status_page___2 { struct list_head timelines; struct i915_vma___2 *vma; u32 *addr; }; struct i915_ctx_workarounds___2 { struct i915_wa_ctx_bb indirect_ctx; struct i915_wa_ctx_bb per_ctx; struct i915_vma___2 *vma; }; struct intel_engine_execlists___2 { struct timer_list timer; struct timer_list preempt; const struct i915_request___2 *preempt_target; u32 ccid; u32 yield; u32 error_interrupt; u32 reset_ccid; u32 *submit_reg; u32 *ctrl_reg; struct i915_request___2 * const *active; struct i915_request___2 *inflight[3]; struct i915_request___2 *pending[3]; unsigned int port_mask; struct rb_root_cached virtual; u32 *csb_write; u64 *csb_status; u8 csb_size; u8 csb_head; }; struct intel_engine_cs___2 { struct drm_i915_private *i915; struct intel_gt___2 *gt; struct intel_uncore___2 *uncore; char name[8]; enum intel_engine_id id; enum intel_engine_id legacy_idx; unsigned int guc_id; intel_engine_mask_t mask; u32 reset_domain; intel_engine_mask_t logical_mask; u8 class; u8 instance; u16 uabi_class; u16 uabi_instance; u32 uabi_capabilities; u32 context_size; u32 mmio_base; enum forcewake_domains fw_domain; unsigned int fw_active; unsigned long context_tag; struct rb_node uabi_node; struct intel_sseu sseu; struct i915_sched_engine___2 *sched_engine; struct i915_request___2 *request_pool; struct intel_context___2 *hung_ce; struct llist_head barrier_tasks; struct intel_context___2 *kernel_context; struct list_head pinned_contexts_list; intel_engine_mask_t saturated; struct { struct delayed_work work; struct i915_request___2 *systole; unsigned long blocked; } heartbeat; unsigned long serial; unsigned long wakeref_serial; struct intel_wakeref wakeref; struct file *default_state; struct { struct intel_ring *ring; struct intel_timeline___2 *timeline; } legacy; struct ewma__engine_latency latency; struct intel_breadcrumbs *breadcrumbs; struct intel_engine_pmu pmu; struct intel_hw_status_page___2 status_page; struct i915_ctx_workarounds___2 wa_ctx; struct i915_wa_list___2 ctx_wa_list; struct i915_wa_list___2 wa_list; struct i915_wa_list___2 whitelist; u32 irq_keep_mask; u32 irq_enable_mask; void (*irq_enable)(struct intel_engine_cs___2 *); void (*irq_disable)(struct intel_engine_cs___2 *); void (*irq_handler)(struct intel_engine_cs___2 *, u16); void (*sanitize)(struct intel_engine_cs___2 *); int (*resume)(struct intel_engine_cs___2 *); struct { void (*prepare)(struct intel_engine_cs___2 *); void (*rewind)(struct intel_engine_cs___2 *, bool); void (*cancel)(struct intel_engine_cs___2 *); void (*finish)(struct intel_engine_cs___2 *); } reset; void (*park)(struct intel_engine_cs___2 *); void (*unpark)(struct intel_engine_cs___2 *); void (*bump_serial)(struct intel_engine_cs___2 *); void (*set_default_submission)(struct intel_engine_cs___2 *); const struct intel_context_ops___2 *cops; int (*request_alloc)(struct i915_request___2 *); int (*emit_flush)(struct i915_request___2 *, u32); int (*emit_bb_start)(struct i915_request___2 *, u64, u32, unsigned int); int (*emit_init_breadcrumb)(struct i915_request___2 *); u32 * (*emit_fini_breadcrumb)(struct i915_request___2 *, u32 *); unsigned int emit_fini_breadcrumb_dw; void (*submit_request)(struct i915_request___2 *); void (*release)(struct intel_engine_cs___2 *); void (*add_active_request)(struct i915_request___2 *); void (*remove_active_request)(struct i915_request___2 *); ktime_t (*busyness)(struct intel_engine_cs___2 *, ktime_t *); struct intel_engine_execlists___2 execlists; struct intel_timeline___2 *retire; struct work_struct retire_work; struct atomic_notifier_head context_status_notifier; unsigned int flags; struct hlist_head cmd_hash[512]; const struct drm_i915_reg_table *reg_tables; int reg_table_count; u32 (*get_cmd_length_mask)(u32); struct { union { struct intel_engine_execlists_stats execlists; struct intel_engine_guc_stats guc; }; ktime_t rps; } stats; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } props; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } defaults; }; struct i915_sched_engine___2 { struct kref ref; spinlock_t lock; struct list_head requests; struct list_head hold; struct tasklet_struct tasklet; struct i915_priolist default_priolist; int queue_priority_hint; struct rb_root_cached queue; bool no_priolist; void *private_data; void (*destroy)(struct kref *); bool (*disabled)(struct i915_sched_engine___2 *); void (*kick_backend)(const struct i915_request___2 *, int); void (*bump_inflight_request_prio)(struct i915_request___2 *, int); void (*retire_inflight_request_prio)(struct i915_request___2 *); void (*schedule)(struct i915_request___2 *, const struct i915_sched_attr *); }; struct i915_capture_list___2; struct i915_request___2 { struct dma_fence fence; spinlock_t lock; struct drm_i915_private *i915; struct intel_engine_cs___2 *engine; struct intel_context___2 *context; struct intel_ring *ring; struct intel_timeline___2 __attribute__((btf_type_tag("rcu"))) *timeline; struct list_head signal_link; struct llist_node signal_node; unsigned long rcustate; struct pin_cookie cookie; struct i915_sw_fence submit; union { wait_queue_entry_t submitq; struct i915_sw_dma_fence_cb dmaq; struct i915_request_duration_cb duration; }; struct llist_head execute_cb; struct i915_sw_fence semaphore; struct irq_work submit_work; struct i915_sched_node sched; struct i915_dependency dep; intel_engine_mask_t execution_mask; const u32 *hwsp_seqno; u32 head; u32 infix; u32 postfix; u32 tail; u32 wa_tail; u32 reserved_space; struct i915_vma_resource___2 *batch_res; struct i915_capture_list___2 *capture_list; unsigned long emitted_jiffies; struct list_head link; struct i915_request_watchdog watchdog; struct list_head guc_fence_link; u8 guc_prio; wait_queue_entry_t hucq; }; struct intel_timeline___2 { u64 fence_context; u32 seqno; struct mutex mutex; atomic_t pin_count; atomic_t active_count; void *hwsp_map; const u32 *hwsp_seqno; struct i915_vma___2 *hwsp_ggtt; u32 hwsp_offset; bool has_initial_breadcrumb; struct list_head requests; struct i915_active_fence last_request; struct i915_active active; struct intel_timeline___2 *retire; struct i915_syncmap *sync; struct list_head link; struct intel_gt___2 *gt; struct list_head engine_link; struct kref kref; struct callback_head rcu; }; struct i915_capture_list___2 { struct i915_vma_resource___2 *vma_res; struct i915_capture_list___2 *next; }; struct i915_gem_ww_ctx___2; struct intel_context_ops___2 { unsigned long flags; int (*alloc)(struct intel_context___2 *); void (*revoke)(struct intel_context___2 *, struct i915_request___2 *, unsigned int); void (*close)(struct intel_context___2 *); int (*pre_pin)(struct intel_context___2 *, struct i915_gem_ww_ctx___2 *, void **); int (*pin)(struct intel_context___2 *, void *); void (*unpin)(struct intel_context___2 *); void (*post_unpin)(struct intel_context___2 *); void (*cancel_request)(struct intel_context___2 *, struct i915_request___2 *); void (*enter)(struct intel_context___2 *); void (*exit)(struct intel_context___2 *); void (*sched_disable)(struct intel_context___2 *); void (*reset)(struct intel_context___2 *); void (*destroy)(struct kref *); struct intel_context___2 * (*create_virtual)(struct intel_engine_cs___2 **, unsigned int, unsigned long); struct intel_context___2 * (*create_parallel)(struct intel_engine_cs___2 **, unsigned int, unsigned int); struct intel_engine_cs___2 * (*get_sibling)(struct intel_engine_cs___2 *, unsigned int); }; struct i915_gem_ww_ctx___2 { struct ww_acquire_ctx ctx; struct list_head obj_list; struct drm_i915_gem_object___2 *contended; bool intr; }; struct i915_gem_engines___2; struct i915_drm_client___2; struct i915_gem_context___2 { struct drm_i915_private *i915; struct drm_i915_file_private *file_priv; struct i915_gem_engines___2 __attribute__((btf_type_tag("rcu"))) *engines; struct mutex engines_mutex; struct drm_syncobj *syncobj; struct i915_address_space___2 *vm; struct pid *pid; struct list_head link; struct i915_drm_client___2 *client; struct list_head client_link; struct kref ref; struct work_struct release_work; struct callback_head rcu; unsigned long user_flags; unsigned long flags; bool uses_protected_content; intel_wakeref_t pxp_wakeref; struct mutex mutex; struct i915_sched_attr sched; atomic_t guilty_count; atomic_t active_count; unsigned long hang_timestamp[2]; u8 remap_slice; struct xarray handles_vma; struct mutex lut_mutex; char name[24]; struct { spinlock_t lock; struct list_head engines; } stale; }; struct i915_gem_engines___2 { union { struct list_head link; struct callback_head rcu; }; struct i915_sw_fence fence; struct i915_gem_context___2 *ctx; unsigned int num_engines; struct intel_context___2 *engines[0]; }; struct i915_drm_client___2 { struct kref kref; unsigned int id; spinlock_t ctx_lock; struct list_head ctx_list; struct i915_drm_clients___2 *clients; atomic64_t past_runtime[5]; }; struct i915_perf_stream_ops___2; struct i915_oa_config___2; struct i915_perf_stream___2 { struct i915_perf___2 *perf; struct intel_uncore___2 *uncore; struct intel_engine_cs___2 *engine; struct mutex lock; u32 sample_flags; int sample_size; struct i915_gem_context___2 *ctx; bool enabled; bool hold_preemption; const struct i915_perf_stream_ops___2 *ops; struct i915_oa_config___2 *oa_config; struct llist_head oa_config_bos; struct intel_context___2 *pinned_ctx; u32 specific_ctx_id; u32 specific_ctx_id_mask; struct hrtimer poll_check_timer; wait_queue_head_t poll_wq; bool pollin; bool periodic; int period_exponent; struct { const struct i915_oa_format *format; struct i915_vma___2 *vma; u8 *vaddr; u32 last_ctx_id; int size_exponent; spinlock_t ptr_lock; u32 aging_tail; u64 aging_timestamp; u32 head; u32 tail; } oa_buffer; struct i915_vma___2 *noa_wait; u64 poll_oa_period; }; struct i915_perf_stream_ops___2 { void (*enable)(struct i915_perf_stream___2 *); void (*disable)(struct i915_perf_stream___2 *); void (*poll_wait)(struct i915_perf_stream___2 *, struct file *, poll_table *); int (*wait_unlocked)(struct i915_perf_stream___2 *); int (*read)(struct i915_perf_stream___2 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); void (*destroy)(struct i915_perf_stream___2 *); }; struct i915_oa_config___2 { struct i915_perf___2 *perf; char uuid[37]; int id; const struct i915_oa_reg *mux_regs; u32 mux_regs_len; const struct i915_oa_reg *b_counter_regs; u32 b_counter_regs_len; const struct i915_oa_reg *flex_regs; u32 flex_regs_len; struct attribute_group sysfs_metric; struct attribute *attrs[2]; struct kobj_attribute sysfs_metric_id; struct kref ref; struct callback_head rcu; }; struct intel_wm_funcs___2 { void (*update_wm)(struct drm_i915_private *); int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *); void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_global_watermarks)(struct intel_atomic_state *); }; struct i915_hdcp_component_ops; struct i915_hdcp_comp_master { struct device *mei_dev; const struct i915_hdcp_component_ops *ops; struct mutex mutex; }; struct hdcp_port_data; struct hdcp2_ake_init; struct hdcp2_ake_send_cert; struct hdcp2_ake_no_stored_km; struct hdcp2_ake_send_hprime; struct hdcp2_ake_send_pairing_info; struct hdcp2_lc_init; struct hdcp2_lc_send_lprime; struct hdcp2_ske_send_eks; struct hdcp2_rep_send_receiverid_list; struct hdcp2_rep_send_ack; struct hdcp2_rep_stream_ready; struct i915_hdcp_component_ops { struct module *owner; int (*initiate_hdcp2_session)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_init *); int (*verify_receiver_cert_prepare_km)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_cert *, bool *, struct hdcp2_ake_no_stored_km *, size_t *); int (*verify_hprime)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_hprime *); int (*store_pairing_info)(struct device *, struct hdcp_port_data *, struct hdcp2_ake_send_pairing_info *); int (*initiate_locality_check)(struct device *, struct hdcp_port_data *, struct hdcp2_lc_init *); int (*verify_lprime)(struct device *, struct hdcp_port_data *, struct hdcp2_lc_send_lprime *); int (*get_session_key)(struct device *, struct hdcp_port_data *, struct hdcp2_ske_send_eks *); int (*repeater_check_flow_prepare_ack)(struct device *, struct hdcp_port_data *, struct hdcp2_rep_send_receiverid_list *, struct hdcp2_rep_send_ack *); int (*verify_mprime)(struct device *, struct hdcp_port_data *, struct hdcp2_rep_stream_ready *); int (*enable_hdcp_authentication)(struct device *, struct hdcp_port_data *); int (*close_hdcp_session)(struct device *, struct hdcp_port_data *); }; enum mei_fw_ddi { MEI_DDI_INVALID_PORT = 0, MEI_DDI_B = 1, MEI_DDI_C = 2, MEI_DDI_D = 3, MEI_DDI_E = 4, MEI_DDI_F = 5, MEI_DDI_A = 7, MEI_DDI_RANGE_END = 7, }; enum mei_fw_tc { MEI_INVALID_TRANSCODER = 0, MEI_TRANSCODER_EDP = 1, MEI_TRANSCODER_DSI0 = 2, MEI_TRANSCODER_DSI1 = 3, MEI_TRANSCODER_A = 16, MEI_TRANSCODER_B = 17, MEI_TRANSCODER_C = 18, MEI_TRANSCODER_D = 19, }; struct hdcp2_streamid_type; struct hdcp_port_data { enum mei_fw_ddi fw_ddi; enum mei_fw_tc fw_tc; u8 port_type; u8 protocol; u16 k; u32 seq_num_m; struct hdcp2_streamid_type *streams; }; struct hdcp2_streamid_type { u8 stream_id; u8 stream_type; }; struct hdcp2_tx_caps { u8 version; u8 tx_cap_mask[2]; }; struct hdcp2_ake_init { u8 msg_id; u8 r_tx[8]; struct hdcp2_tx_caps tx_caps; }; struct hdcp2_cert_rx { u8 receiver_id[5]; u8 kpub_rx[131]; u8 reserved[2]; u8 dcp_signature[384]; }; struct hdcp2_ake_send_cert { u8 msg_id; struct hdcp2_cert_rx cert_rx; u8 r_rx[8]; u8 rx_caps[3]; }; struct hdcp2_ake_no_stored_km { u8 msg_id; u8 e_kpub_km[128]; }; struct hdcp2_ake_send_hprime { u8 msg_id; u8 h_prime[32]; }; struct hdcp2_ake_send_pairing_info { u8 msg_id; u8 e_kh_km[16]; }; struct hdcp2_lc_init { u8 msg_id; u8 r_n[8]; }; struct hdcp2_lc_send_lprime { u8 msg_id; u8 l_prime[32]; }; struct hdcp2_ske_send_eks { u8 msg_id; u8 e_dkey_ks[16]; u8 riv[8]; }; struct hdcp2_rep_send_receiverid_list { u8 msg_id; u8 rx_info[2]; u8 seq_num_v[3]; u8 v_prime[16]; u8 receiver_ids[155]; }; struct hdcp2_rep_send_ack { u8 msg_id; u8 v[16]; }; struct hdcp2_rep_stream_ready { u8 msg_id; u8 m_prime[32]; }; enum intel_output_type { INTEL_OUTPUT_UNUSED = 0, INTEL_OUTPUT_ANALOG = 1, INTEL_OUTPUT_DVO = 2, INTEL_OUTPUT_SDVO = 3, INTEL_OUTPUT_LVDS = 4, INTEL_OUTPUT_TVOUT = 5, INTEL_OUTPUT_HDMI = 6, INTEL_OUTPUT_DP = 7, INTEL_OUTPUT_EDP = 8, INTEL_OUTPUT_DSI = 9, INTEL_OUTPUT_DDI = 10, INTEL_OUTPUT_DP_MST = 11, }; enum port { PORT_NONE = -1, PORT_A = 0, PORT_B = 1, PORT_C = 2, PORT_D = 3, PORT_E = 4, PORT_F = 5, PORT_G = 6, PORT_H = 7, PORT_I = 8, PORT_TC1 = 3, PORT_TC2 = 4, PORT_TC3 = 5, PORT_TC4 = 6, PORT_TC5 = 7, PORT_TC6 = 8, PORT_D_XELPD = 7, PORT_E_XELPD = 8, I915_MAX_PORTS = 9, }; enum intel_hotplug_state { INTEL_HOTPLUG_UNCHANGED = 0, INTEL_HOTPLUG_CHANGED = 1, INTEL_HOTPLUG_RETRY = 2, }; enum hpd_pin { HPD_NONE = 0, HPD_TV = 0, HPD_CRT = 1, HPD_SDVO_B = 2, HPD_SDVO_C = 3, HPD_PORT_A = 4, HPD_PORT_B = 5, HPD_PORT_C = 6, HPD_PORT_D = 7, HPD_PORT_E = 8, HPD_PORT_TC1 = 9, HPD_PORT_TC2 = 10, HPD_PORT_TC3 = 11, HPD_PORT_TC4 = 12, HPD_PORT_TC5 = 13, HPD_PORT_TC6 = 14, HPD_NUM_PINS = 15, }; enum intel_display_power_domain { POWER_DOMAIN_DISPLAY_CORE = 0, POWER_DOMAIN_PIPE_A = 1, POWER_DOMAIN_PIPE_B = 2, POWER_DOMAIN_PIPE_C = 3, POWER_DOMAIN_PIPE_D = 4, POWER_DOMAIN_PIPE_PANEL_FITTER_A = 5, POWER_DOMAIN_PIPE_PANEL_FITTER_B = 6, POWER_DOMAIN_PIPE_PANEL_FITTER_C = 7, POWER_DOMAIN_PIPE_PANEL_FITTER_D = 8, POWER_DOMAIN_TRANSCODER_A = 9, POWER_DOMAIN_TRANSCODER_B = 10, POWER_DOMAIN_TRANSCODER_C = 11, POWER_DOMAIN_TRANSCODER_D = 12, POWER_DOMAIN_TRANSCODER_EDP = 13, POWER_DOMAIN_TRANSCODER_DSI_A = 14, POWER_DOMAIN_TRANSCODER_DSI_C = 15, POWER_DOMAIN_TRANSCODER_VDSC_PW2 = 16, POWER_DOMAIN_PORT_DDI_LANES_A = 17, POWER_DOMAIN_PORT_DDI_LANES_B = 18, POWER_DOMAIN_PORT_DDI_LANES_C = 19, POWER_DOMAIN_PORT_DDI_LANES_D = 20, POWER_DOMAIN_PORT_DDI_LANES_E = 21, POWER_DOMAIN_PORT_DDI_LANES_F = 22, POWER_DOMAIN_PORT_DDI_LANES_TC1 = 23, POWER_DOMAIN_PORT_DDI_LANES_TC2 = 24, POWER_DOMAIN_PORT_DDI_LANES_TC3 = 25, POWER_DOMAIN_PORT_DDI_LANES_TC4 = 26, POWER_DOMAIN_PORT_DDI_LANES_TC5 = 27, POWER_DOMAIN_PORT_DDI_LANES_TC6 = 28, POWER_DOMAIN_PORT_DDI_IO_A = 29, POWER_DOMAIN_PORT_DDI_IO_B = 30, POWER_DOMAIN_PORT_DDI_IO_C = 31, POWER_DOMAIN_PORT_DDI_IO_D = 32, POWER_DOMAIN_PORT_DDI_IO_E = 33, POWER_DOMAIN_PORT_DDI_IO_F = 34, POWER_DOMAIN_PORT_DDI_IO_TC1 = 35, POWER_DOMAIN_PORT_DDI_IO_TC2 = 36, POWER_DOMAIN_PORT_DDI_IO_TC3 = 37, POWER_DOMAIN_PORT_DDI_IO_TC4 = 38, POWER_DOMAIN_PORT_DDI_IO_TC5 = 39, POWER_DOMAIN_PORT_DDI_IO_TC6 = 40, POWER_DOMAIN_PORT_DSI = 41, POWER_DOMAIN_PORT_CRT = 42, POWER_DOMAIN_PORT_OTHER = 43, POWER_DOMAIN_VGA = 44, POWER_DOMAIN_AUDIO_MMIO = 45, POWER_DOMAIN_AUDIO_PLAYBACK = 46, POWER_DOMAIN_AUX_IO_A = 47, POWER_DOMAIN_AUX_IO_B = 48, POWER_DOMAIN_AUX_IO_C = 49, POWER_DOMAIN_AUX_IO_D = 50, POWER_DOMAIN_AUX_IO_E = 51, POWER_DOMAIN_AUX_IO_F = 52, POWER_DOMAIN_AUX_A = 53, POWER_DOMAIN_AUX_B = 54, POWER_DOMAIN_AUX_C = 55, POWER_DOMAIN_AUX_D = 56, POWER_DOMAIN_AUX_E = 57, POWER_DOMAIN_AUX_F = 58, POWER_DOMAIN_AUX_USBC1 = 59, POWER_DOMAIN_AUX_USBC2 = 60, POWER_DOMAIN_AUX_USBC3 = 61, POWER_DOMAIN_AUX_USBC4 = 62, POWER_DOMAIN_AUX_USBC5 = 63, POWER_DOMAIN_AUX_USBC6 = 64, POWER_DOMAIN_AUX_TBT1 = 65, POWER_DOMAIN_AUX_TBT2 = 66, POWER_DOMAIN_AUX_TBT3 = 67, POWER_DOMAIN_AUX_TBT4 = 68, POWER_DOMAIN_AUX_TBT5 = 69, POWER_DOMAIN_AUX_TBT6 = 70, POWER_DOMAIN_GMBUS = 71, POWER_DOMAIN_MODESET = 72, POWER_DOMAIN_GT_IRQ = 73, POWER_DOMAIN_DC_OFF = 74, POWER_DOMAIN_TC_COLD_OFF = 75, POWER_DOMAIN_INIT = 76, POWER_DOMAIN_NUM = 77, POWER_DOMAIN_INVALID = 77, }; struct intel_connector; struct intel_ddi_buf_trans; struct intel_encoder { struct drm_encoder base; enum intel_output_type type; enum port port; u16 cloneable; u8 pipe_mask; enum intel_hotplug_state (*hotplug)(struct intel_encoder *, struct intel_connector *); enum intel_output_type (*compute_output_type)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *); int (*compute_config)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *); int (*compute_config_late)(struct intel_encoder *, struct intel_crtc_state *, struct drm_connector_state *); void (*update_prepare)(struct intel_atomic_state *, struct intel_encoder *, struct intel_crtc *); void (*pre_pll_enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*pre_enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*enable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*update_complete)(struct intel_atomic_state *, struct intel_encoder *, struct intel_crtc *); void (*disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*post_disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*post_pll_disable)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); void (*update_pipe)(struct intel_atomic_state *, struct intel_encoder *, const struct intel_crtc_state *, const struct drm_connector_state *); bool (*get_hw_state)(struct intel_encoder *, enum pipe *); void (*get_config)(struct intel_encoder *, struct intel_crtc_state *); void (*sync_state)(struct intel_encoder *, const struct intel_crtc_state *); bool (*initial_fastset_check)(struct intel_encoder *, struct intel_crtc_state *); void (*get_power_domains)(struct intel_encoder *, struct intel_crtc_state *); void (*suspend)(struct intel_encoder *); void (*shutdown)(struct intel_encoder *); void (*enable_clock)(struct intel_encoder *, const struct intel_crtc_state *); void (*disable_clock)(struct intel_encoder *); bool (*is_clock_enabled)(struct intel_encoder *); const struct intel_ddi_buf_trans * (*get_buf_trans)(struct intel_encoder *, const struct intel_crtc_state *, int *); void (*set_signal_levels)(struct intel_encoder *, const struct intel_crtc_state *); enum hpd_pin hpd_pin; enum intel_display_power_domain power_domain; const struct intel_bios_encoder_data *devdata; }; enum pwm_polarity { PWM_POLARITY_NORMAL = 0, PWM_POLARITY_INVERSED = 1, }; struct pwm_state { u64 period; u64 duty_cycle; enum pwm_polarity polarity; bool enabled; bool usage_power; }; struct drm_edp_backlight_info { u8 pwmgen_bit_count; u8 pwm_freq_pre_divider; u16 max; bool lsb_reg_used: 1; bool aux_enable: 1; bool aux_set: 1; }; enum drrs_type { DRRS_TYPE_NONE = 0, DRRS_TYPE_STATIC = 1, DRRS_TYPE_SEAMLESS = 2, }; struct edp_power_seq { u16 t1_t3; u16 t8; u16 t9; u16 t10; u16 t11_t12; }; enum intel_backlight_type { INTEL_BACKLIGHT_PMIC = 0, INTEL_BACKLIGHT_LPSS = 1, INTEL_BACKLIGHT_DISPLAY_DDI = 2, INTEL_BACKLIGHT_DSI_DCS = 3, INTEL_BACKLIGHT_PANEL_DRIVER_INTERFACE = 4, INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE = 5, }; struct mipi_config; struct mipi_pps_data; struct intel_vbt_panel_data { struct drm_display_mode *lfp_lvds_vbt_mode; struct drm_display_mode *sdvo_lvds_vbt_mode; int panel_type; unsigned int lvds_dither: 1; unsigned int bios_lvds_val; bool vrr; u8 seamless_drrs_min_refresh_rate; enum drrs_type drrs_type; struct { int max_link_rate; int rate; int lanes; int preemphasis; int vswing; int bpp; struct edp_power_seq pps; u8 drrs_msa_timing_delay; bool low_vswing; bool initialized; bool hobl; } edp; struct { bool enable; bool full_link; bool require_aux_wakeup; int idle_frames; int tp1_wakeup_time_us; int tp2_tp3_wakeup_time_us; int psr2_tp2_tp3_wakeup_time_us; } psr; struct { u16 pwm_freq_hz; u16 brightness_precision_bits; bool present; bool active_low_pwm; u8 min_brightness; s8 controller; enum intel_backlight_type type; } backlight; struct { u16 panel_id; struct mipi_config *config; struct mipi_pps_data *pps; u16 bl_ports; u16 cabc_ports; u8 seq_version; u32 size; u8 *data; const u8 *sequence[12]; u8 *deassert_seq; enum drm_panel_orientation orientation; } dsi; }; struct pwm_device; struct backlight_device; struct intel_panel_bl_funcs; struct intel_panel { const struct drm_edid *fixed_edid; struct list_head fixed_modes; struct { bool present; u32 level; u32 min; u32 max; bool enabled; bool combination_mode; bool active_low_pwm; bool alternate_pwm_increment; u32 pwm_level_min; u32 pwm_level_max; bool pwm_enabled; bool util_pin_active_low; u8 controller; struct pwm_device *pwm; struct pwm_state pwm_state; union { struct { struct drm_edp_backlight_info info; } vesa; struct { bool sdr_uses_aux; } intel; } edp; struct backlight_device *device; const struct intel_panel_bl_funcs *funcs; const struct intel_panel_bl_funcs *pwm_funcs; void (*power)(struct intel_connector *, bool); } backlight; struct intel_vbt_panel_data vbt; }; struct intel_hdcp_shim; struct intel_hdcp { const struct intel_hdcp_shim *shim; struct mutex mutex; u64 value; struct delayed_work check_work; struct work_struct prop_work; bool hdcp_encrypted; bool hdcp2_supported; bool hdcp2_encrypted; u8 content_type; bool is_paired; bool is_repeater; u32 seq_num_v; u32 seq_num_m; wait_queue_head_t cp_irq_queue; atomic_t cp_irq_count; int cp_irq_count_cached; enum transcoder cpu_transcoder; enum transcoder stream_transcoder; }; struct drm_dp_mst_port; struct intel_dp; struct intel_connector { struct drm_connector base; struct intel_encoder *encoder; u32 acpi_device_id; bool (*get_hw_state)(struct intel_connector *); struct intel_panel panel; const struct drm_edid *detect_edid; int hotplug_retries; u8 polled; struct drm_dp_mst_port *port; struct intel_dp *mst_port; struct work_struct modeset_retry_work; struct intel_hdcp hdcp; }; struct pwm_args { u64 period; enum pwm_polarity polarity; }; struct pwm_chip; struct pwm_device { const char *label; unsigned long flags; unsigned int hwpwm; unsigned int pwm; struct pwm_chip *chip; void *chip_data; struct pwm_args args; struct pwm_state state; struct pwm_state last; }; struct pwm_ops; struct pwm_chip { struct device *dev; const struct pwm_ops *ops; int base; unsigned int npwm; struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *); unsigned int of_pwm_n_cells; struct list_head list; struct pwm_device *pwms; }; struct pwm_capture; struct pwm_ops { int (*request)(struct pwm_chip *, struct pwm_device *); void (*free)(struct pwm_chip *, struct pwm_device *); int (*capture)(struct pwm_chip *, struct pwm_device *, struct pwm_capture *, unsigned long); int (*apply)(struct pwm_chip *, struct pwm_device *, const struct pwm_state *); int (*get_state)(struct pwm_chip *, struct pwm_device *, struct pwm_state *); struct module *owner; }; struct pwm_capture { unsigned int period; unsigned int duty_cycle; }; struct of_phandle_args { struct device_node *np; int args_count; uint32_t args[16]; }; struct intel_panel_bl_funcs { int (*setup)(struct intel_connector *, enum pipe); u32 (*get)(struct intel_connector *, enum pipe); void (*set)(const struct drm_connector_state *, u32); void (*disable)(const struct drm_connector_state *, u32); void (*enable)(const struct intel_crtc_state *, const struct drm_connector_state *, u32); u32 (*hz_to_pwm)(struct intel_connector *, u32); }; struct mipi_config { u16 panel_id; u32 enable_dithering: 1; u32 rsvd1: 1; u32 is_bridge: 1; u32 panel_arch_type: 2; u32 is_cmd_mode: 1; u32 video_transfer_mode: 2; u32 cabc_supported: 1; u32 pwm_blc: 1; u32 videomode_color_format: 4; u32 rotation: 2; u32 bta_enabled: 1; u32 rsvd2: 15; u16 dual_link: 2; u16 lane_cnt: 2; u16 pixel_overlap: 3; u16 rgb_flip: 1; u16 dl_dcs_cabc_ports: 2; u16 dl_dcs_backlight_ports: 2; u16 rsvd3: 4; u16 rsvd4; u8 rsvd5; u32 target_burst_mode_freq; u32 dsi_ddr_clk; u32 bridge_ref_clk; u8 byte_clk_sel: 2; u8 rsvd6: 6; u16 dphy_param_valid: 1; u16 eot_pkt_disabled: 1; u16 enable_clk_stop: 1; u16 rsvd7: 13; u32 hs_tx_timeout; u32 lp_rx_timeout; u32 turn_around_timeout; u32 device_reset_timer; u32 master_init_timer; u32 dbi_bw_timer; u32 lp_byte_clk_val; u32 prepare_cnt: 6; u32 rsvd8: 2; u32 clk_zero_cnt: 8; u32 trail_cnt: 5; u32 rsvd9: 3; u32 exit_zero_cnt: 6; u32 rsvd10: 2; u32 clk_lane_switch_cnt; u32 hl_switch_cnt; u32 rsvd11[6]; u8 tclk_miss; u8 tclk_post; u8 rsvd12; u8 tclk_pre; u8 tclk_prepare; u8 tclk_settle; u8 tclk_term_enable; u8 tclk_trail; u16 tclk_prepare_clkzero; u8 rsvd13; u8 td_term_enable; u8 teot; u8 ths_exit; u8 ths_prepare; u16 ths_prepare_hszero; u8 rsvd14; u8 ths_settle; u8 ths_skip; u8 ths_trail; u8 tinit; u8 tlpx; u8 rsvd15[3]; u8 panel_enable; u8 bl_enable; u8 pwm_enable; u8 reset_r_n; u8 pwr_down_r; u8 stdby_r_n; } __attribute__((packed)); struct mipi_pps_data { u16 panel_on_delay; u16 bl_enable_delay; u16 bl_disable_delay; u16 panel_off_delay; u16 panel_power_cycle_delay; }; struct cec_adapter; struct drm_dp_aux_cec { struct mutex lock; struct cec_adapter *adap; struct drm_connector *connector; struct delayed_work unregister_work; }; struct drm_dp_aux_msg; struct drm_dp_aux { const char *name; struct i2c_adapter ddc; struct device *dev; struct drm_device *drm_dev; struct drm_crtc *crtc; struct mutex hw_mutex; struct work_struct crc_work; u8 crc_count; ssize_t (*transfer)(struct drm_dp_aux *, struct drm_dp_aux_msg *); int (*wait_hpd_asserted)(struct drm_dp_aux *, unsigned long); unsigned int i2c_nack_count; unsigned int i2c_defer_count; struct drm_dp_aux_cec cec; bool is_remote; }; struct drm_dp_mst_branch; struct drm_dp_mst_topology_mgr; struct drm_dp_mst_port { struct kref topology_kref; struct kref malloc_kref; u8 port_num; bool input; bool mcs; bool ddps; u8 pdt; bool ldps; u8 dpcd_rev; u8 num_sdp_streams; u8 num_sdp_stream_sinks; uint16_t full_pbn; struct list_head next; struct drm_dp_mst_branch *mstb; struct drm_dp_aux aux; struct drm_dp_aux *passthrough_aux; struct drm_dp_mst_branch *parent; struct drm_connector *connector; struct drm_dp_mst_topology_mgr *mgr; struct edid *cached_edid; bool has_audio; bool fec_capable; }; struct drm_dp_mst_branch { struct kref topology_kref; struct kref malloc_kref; struct list_head destroy_next; u8 rad[8]; u8 lct; int num_ports; struct list_head ports; struct drm_dp_mst_port *port_parent; struct drm_dp_mst_topology_mgr *mgr; bool link_address_sent; u8 guid[16]; }; struct drm_dp_sideband_msg_hdr { u8 lct; u8 lcr; u8 rad[8]; bool broadcast; bool path_msg; u8 msg_len; bool somt; bool eomt; bool seqno; }; struct drm_dp_sideband_msg_rx { u8 chunk[48]; u8 msg[256]; u8 curchunk_len; u8 curchunk_idx; u8 curchunk_hdrlen; u8 curlen; bool have_somt; bool have_eomt; struct drm_dp_sideband_msg_hdr initial_hdr; }; struct drm_dp_mst_topology_cbs; struct drm_dp_mst_topology_mgr { struct drm_private_obj base; struct drm_device *dev; const struct drm_dp_mst_topology_cbs *cbs; int max_dpcd_transaction_bytes; struct drm_dp_aux *aux; int max_payloads; int conn_base_id; struct drm_dp_sideband_msg_rx up_req_recv; struct drm_dp_sideband_msg_rx down_rep_recv; struct mutex lock; struct mutex probe_lock; bool mst_state: 1; bool payload_id_table_cleared: 1; u8 payload_count; u8 next_start_slot; struct drm_dp_mst_branch *mst_primary; u8 dpcd[15]; u8 sink_count; const struct drm_private_state_funcs *funcs; struct mutex qlock; struct list_head tx_msg_downq; wait_queue_head_t tx_waitq; struct work_struct work; struct work_struct tx_work; struct list_head destroy_port_list; struct list_head destroy_branch_device_list; struct mutex delayed_destroy_lock; struct workqueue_struct *delayed_destroy_wq; struct work_struct delayed_destroy_work; struct list_head up_req_list; struct mutex up_req_lock; struct work_struct up_req_work; }; struct drm_dp_mst_topology_cbs { struct drm_connector * (*add_connector)(struct drm_dp_mst_topology_mgr *, struct drm_dp_mst_port *, const char *); void (*poll_hpd_irq)(struct drm_dp_mst_topology_mgr *); }; struct drm_dp_aux_msg { unsigned int address; u8 request; u8 reply; void *buffer; size_t size; }; struct cec_devnode { struct device dev; struct cdev cdev; int minor; struct mutex lock; bool registered; bool unregistered; struct mutex lock_fhs; struct list_head fhs; }; struct cec_log_addrs { __u8 log_addr[4]; __u16 log_addr_mask; __u8 cec_version; __u8 num_log_addrs; __u32 vendor_id; __u32 flags; char osd_name[15]; __u8 primary_device_type[4]; __u8 log_addr_type[4]; __u8 all_device_types[4]; __u8 features[48]; }; struct cec_drm_connector_info { __u32 card_no; __u32 connector_id; }; struct cec_connector_info { __u32 type; union { struct cec_drm_connector_info drm; __u32 raw[16]; }; }; struct rc_dev; struct cec_data; struct cec_adap_ops; struct cec_fh; struct cec_adapter { struct module *owner; char name[32]; struct cec_devnode devnode; struct mutex lock; struct rc_dev *rc; struct list_head transmit_queue; unsigned int transmit_queue_sz; struct list_head wait_queue; struct cec_data *transmitting; bool transmit_in_progress; bool transmit_in_progress_aborted; unsigned int xfer_timeout_ms; struct task_struct *kthread_config; struct completion config_completion; struct task_struct *kthread; wait_queue_head_t kthread_waitq; const struct cec_adap_ops *ops; void *priv; u32 capabilities; u8 available_log_addrs; u16 phys_addr; bool needs_hpd; bool is_enabled; bool is_configuring; bool must_reconfigure; bool is_configured; bool cec_pin_is_high; bool adap_controls_phys_addr; u8 last_initiator; u32 monitor_all_cnt; u32 monitor_pin_cnt; u32 follower_cnt; struct cec_fh *cec_follower; struct cec_fh *cec_initiator; bool passthrough; struct cec_log_addrs log_addrs; struct cec_connector_info conn_info; u32 tx_timeouts; struct dentry *cec_dir; u32 sequence; char input_phys[32]; }; struct input_id { __u16 bustype; __u16 vendor; __u16 product; __u16 version; }; 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; }; 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 input_dev; 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; struct device lirc_dev; struct cdev lirc_cdev; ktime_t gap_start; spinlock_t lirc_fh_lock; struct list_head lirc_fh; 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 rc_map_table { u64 scancode; u32 keycode; }; 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 cec_msg { __u64 tx_ts; __u64 rx_ts; __u32 len; __u32 timeout; __u32 sequence; __u32 flags; __u8 msg[16]; __u8 reply; __u8 rx_status; __u8 tx_status; __u8 tx_arb_lost_cnt; __u8 tx_nack_cnt; __u8 tx_low_drive_cnt; __u8 tx_error_cnt; }; struct cec_data { struct list_head list; struct list_head xfer_list; struct cec_adapter *adap; struct cec_msg msg; struct cec_fh *fh; struct delayed_work work; struct completion c; u8 attempts; bool blocking; bool completed; }; struct cec_event_state_change { __u16 phys_addr; __u16 log_addr_mask; __u16 have_conn_info; }; struct cec_event_lost_msgs { __u32 lost_msgs; }; struct cec_event { __u64 ts; __u32 event; __u32 flags; union { struct cec_event_state_change state_change; struct cec_event_lost_msgs lost_msgs; __u32 raw[16]; }; }; struct cec_event_entry { struct list_head list; struct cec_event ev; }; struct cec_fh { struct list_head list; struct list_head xfer_list; struct cec_adapter *adap; u8 mode_initiator; u8 mode_follower; wait_queue_head_t wait; struct mutex lock; struct list_head events[8]; u16 queued_events[8]; unsigned int total_queued_events; struct cec_event_entry core_events[2]; struct list_head msgs; unsigned int queued_msgs; }; struct cec_adap_ops { int (*adap_enable)(struct cec_adapter *, bool); int (*adap_monitor_all_enable)(struct cec_adapter *, bool); int (*adap_monitor_pin_enable)(struct cec_adapter *, bool); int (*adap_log_addr)(struct cec_adapter *, u8); void (*adap_configured)(struct cec_adapter *, bool); int (*adap_transmit)(struct cec_adapter *, u8, u32, struct cec_msg *); void (*adap_status)(struct cec_adapter *, struct seq_file *); void (*adap_free)(struct cec_adapter *); int (*error_inj_show)(struct cec_adapter *, struct seq_file *); bool (*error_inj_parse_line)(struct cec_adapter *, char *); int (*received)(struct cec_adapter *, struct cec_msg *); }; struct drm_dp_dpcd_ident { u8 oui[3]; u8 device_id[6]; u8 hw_rev; u8 sw_major_rev; u8 sw_minor_rev; }; struct drm_dp_desc { struct drm_dp_dpcd_ident ident; u32 quirks; }; struct intel_pps { int panel_power_up_delay; int panel_power_down_delay; int panel_power_cycle_delay; int backlight_on_delay; int backlight_off_delay; int: 32; struct delayed_work panel_vdd_work; bool want_panel_vdd; bool initializing; long: 48; unsigned long last_power_on; unsigned long last_backlight_off; ktime_t panel_power_off_time; intel_wakeref_t vdd_wakeref; union { enum pipe pps_pipe; int pps_idx; }; enum pipe active_pipe; bool pps_reset; struct edp_power_seq pps_delays; struct edp_power_seq bios_pps_delays; long: 56; } __attribute__((packed)); struct drm_dp_phy_test_params { int link_rate; u8 num_lanes; u8 phy_pattern; u8 hbr2_reset[2]; u8 custom80[10]; bool enhanced_frame_cap; }; struct intel_dp_compliance_data { unsigned long edid; u8 video_pattern; u16 hdisplay; u16 vdisplay; u8 bpc; struct drm_dp_phy_test_params phytest; }; struct intel_dp_compliance { unsigned long test_type; struct intel_dp_compliance_data test_data; bool test_active; int test_link_rate; u8 test_lane_count; }; struct intel_dp_pcon_frl { bool is_trained; int trained_rate_gbps; }; struct intel_psr { struct mutex lock; u32 debug; bool sink_support; bool source_support; bool enabled; bool paused; enum pipe pipe; enum transcoder transcoder; bool active; struct work_struct work; unsigned int busy_frontbuffer_bits; bool sink_psr2_support; bool link_standby; bool colorimetry_support; bool psr2_enabled; bool psr2_sel_fetch_enabled; bool psr2_sel_fetch_cff_enabled; bool req_psr2_sdp_prior_scanline; u8 sink_sync_latency; ktime_t last_entry_attempt; ktime_t last_exit; bool sink_not_reliable; bool irq_aux_error; u16 su_w_granularity; u16 su_y_granularity; u32 dc3co_exitline; u32 dc3co_exit_delay; struct delayed_work dc3co_work; }; struct intel_dp_mst_encoder; struct intel_dp { i915_reg_t output_reg; u32 DP; int link_rate; u8 lane_count; u8 sink_count; bool link_trained; bool has_hdmi_sink; bool has_audio; bool reset_link_params; bool use_max_params; u8 dpcd[15]; u8 psr_dpcd[2]; u8 downstream_ports[16]; u8 edp_dpcd[3]; u8 dsc_dpcd[15]; u8 lttpr_common_caps[8]; u8 lttpr_phy_caps[24]; u8 fec_capable; u8 pcon_dsc_dpcd[13]; int num_source_rates; const int *source_rates; int num_sink_rates; int sink_rates[8]; bool use_rate_select; int max_sink_lane_count; int num_common_rates; int common_rates[8]; int max_link_lane_count; int max_link_rate; int mso_link_count; int mso_pixel_overlap; struct drm_dp_desc desc; struct drm_dp_aux aux; u32 aux_busy_last_status; u8 train_set[4]; struct intel_pps pps; bool is_mst; int active_mst_links; struct intel_connector *attached_connector; struct intel_dp_mst_encoder *mst_encoders[4]; struct drm_dp_mst_topology_mgr mst_mgr; u32 (*get_aux_clock_divider)(struct intel_dp *, int); u32 (*get_aux_send_ctl)(struct intel_dp *, int, u32); i915_reg_t (*aux_ch_ctl_reg)(struct intel_dp *); i915_reg_t (*aux_ch_data_reg)(struct intel_dp *, int); void (*prepare_link_retrain)(struct intel_dp *, const struct intel_crtc_state *); void (*set_link_train)(struct intel_dp *, const struct intel_crtc_state *, u8); void (*set_idle_link_train)(struct intel_dp *, const struct intel_crtc_state *); u8 (*preemph_max)(struct intel_dp *); u8 (*voltage_max)(struct intel_dp *, const struct intel_crtc_state *); struct intel_dp_compliance compliance; struct { int min_tmds_clock; int max_tmds_clock; int max_dotclock; int pcon_max_frl_bw; u8 max_bpc; bool ycbcr_444_to_420; bool rgb_to_ycbcr; } dfp; struct pm_qos_request pm_qos; bool force_dsc_en; int force_dsc_bpc; bool hobl_failed; bool hobl_active; struct intel_dp_pcon_frl frl; struct intel_psr psr; unsigned long last_oui_write; }; struct intel_digital_port; struct intel_dp_mst_encoder { struct intel_encoder base; enum pipe pipe; struct intel_digital_port *primary; struct intel_connector *connector; }; enum drm_dp_dual_mode_type { DRM_DP_DUAL_MODE_NONE = 0, DRM_DP_DUAL_MODE_UNKNOWN = 1, DRM_DP_DUAL_MODE_TYPE1_DVI = 2, DRM_DP_DUAL_MODE_TYPE1_HDMI = 3, DRM_DP_DUAL_MODE_TYPE2_DVI = 4, DRM_DP_DUAL_MODE_TYPE2_HDMI = 5, DRM_DP_DUAL_MODE_LSPCON = 6, }; struct cec_notifier; struct intel_hdmi { i915_reg_t hdmi_reg; int ddc_bus; struct { enum drm_dp_dual_mode_type type; int max_tmds_clock; } dp_dual_mode; bool has_hdmi_sink; bool has_audio; struct intel_connector *attached_connector; struct cec_notifier *cec_notifier; }; enum drm_lspcon_mode { DRM_LSPCON_MODE_INVALID = 0, DRM_LSPCON_MODE_LS = 1, DRM_LSPCON_MODE_PCON = 2, }; enum lspcon_vendor { LSPCON_VENDOR_MCA = 0, LSPCON_VENDOR_PARADE = 1, }; struct intel_lspcon { bool active; bool hdr_supported; enum drm_lspcon_mode mode; enum lspcon_vendor vendor; }; enum aux_ch { AUX_CH_A = 0, AUX_CH_B = 1, AUX_CH_C = 2, AUX_CH_D = 3, AUX_CH_E = 4, AUX_CH_F = 5, AUX_CH_G = 6, AUX_CH_H = 7, AUX_CH_I = 8, AUX_CH_USBC1 = 3, AUX_CH_USBC2 = 4, AUX_CH_USBC3 = 5, AUX_CH_USBC4 = 6, AUX_CH_USBC5 = 7, AUX_CH_USBC6 = 8, AUX_CH_D_XELPD = 7, AUX_CH_E_XELPD = 8, }; enum tc_port_mode { TC_PORT_DISCONNECTED = 0, TC_PORT_TBT_ALT = 1, TC_PORT_DP_ALT = 2, TC_PORT_LEGACY = 3, }; enum phy_fia { FIA1 = 0, FIA2 = 1, FIA3 = 2, }; struct intel_digital_port { struct intel_encoder base; u32 saved_port_bits; struct intel_dp dp; struct intel_hdmi hdmi; struct intel_lspcon lspcon; enum irqreturn (*hpd_pulse)(struct intel_digital_port *, bool); bool release_cl2_override; u8 max_lanes; enum aux_ch aux_ch; enum intel_display_power_domain ddi_io_power_domain; intel_wakeref_t ddi_io_wakeref; intel_wakeref_t aux_wakeref; struct mutex tc_lock; intel_wakeref_t tc_lock_wakeref; enum intel_display_power_domain tc_lock_power_domain; struct delayed_work tc_disconnect_phy_work; int tc_link_refcount; bool tc_legacy_port: 1; char tc_port_name[8]; enum tc_port_mode tc_mode; enum phy_fia tc_phy_fia; u8 tc_phy_fia_idx; struct mutex hdcp_mutex; unsigned int num_hdcp_streams; bool hdcp_auth_status; struct hdcp_port_data hdcp_port_data; bool hdcp_mst_type1_capable; void (*write_infoframe)(struct intel_encoder *, const struct intel_crtc_state *, unsigned int, const void *, ssize_t); void (*read_infoframe)(struct intel_encoder *, const struct intel_crtc_state *, unsigned int, void *, ssize_t); void (*set_infoframes)(struct intel_encoder *, bool, const struct intel_crtc_state *, const struct drm_connector_state *); u32 (*infoframes_enabled)(struct intel_encoder *, const struct intel_crtc_state *); bool (*connected)(struct intel_encoder *); }; enum hdcp_wired_protocol { HDCP_PROTOCOL_INVALID = 0, HDCP_PROTOCOL_HDMI = 1, HDCP_PROTOCOL_DP = 2, }; struct intel_hdcp_shim { int (*write_an_aksv)(struct intel_digital_port *, u8 *); int (*read_bksv)(struct intel_digital_port *, u8 *); int (*read_bstatus)(struct intel_digital_port *, u8 *); int (*repeater_present)(struct intel_digital_port *, bool *); int (*read_ri_prime)(struct intel_digital_port *, u8 *); int (*read_ksv_ready)(struct intel_digital_port *, bool *); int (*read_ksv_fifo)(struct intel_digital_port *, int, u8 *); int (*read_v_prime_part)(struct intel_digital_port *, int, u32 *); int (*toggle_signalling)(struct intel_digital_port *, enum transcoder, bool); int (*stream_encryption)(struct intel_connector *, bool); bool (*check_link)(struct intel_digital_port *, struct intel_connector *); int (*hdcp_capable)(struct intel_digital_port *, bool *); enum hdcp_wired_protocol protocol; int (*hdcp_2_2_capable)(struct intel_digital_port *, bool *); int (*write_2_2_msg)(struct intel_digital_port *, void *, size_t); int (*read_2_2_msg)(struct intel_digital_port *, u8, void *, size_t); int (*config_stream_type)(struct intel_digital_port *, bool, u8); int (*stream_2_2_encryption)(struct intel_connector *, bool); int (*check_2_2_link)(struct intel_digital_port *, struct intel_connector *); }; union intel_ddi_buf_trans_entry; struct intel_ddi_buf_trans { const union intel_ddi_buf_trans_entry *entries; u8 num_entries; u8 hdmi_default_entry; }; struct child_device_config { u16 handle; u16 device_type; union { u8 device_id[10]; struct { u8 i2c_speed; u8 dp_onboard_redriver_preemph: 3; u8 dp_onboard_redriver_vswing: 3; u8 dp_onboard_redriver_present: 1; u8 reserved0: 1; u8 dp_ondock_redriver_preemph: 3; u8 dp_ondock_redriver_vswing: 3; u8 dp_ondock_redriver_present: 1; u8 reserved1: 1; u8 hdmi_level_shifter_value: 5; u8 hdmi_max_data_rate: 3; u16 dtd_buf_ptr; u8 edidless_efp: 1; u8 compression_enable: 1; u8 compression_method_cps: 1; u8 ganged_edp: 1; u8 lttpr_non_transparent: 1; u8 disable_compression_for_ext_disp: 1; u8 reserved2: 2; u8 compression_structure_index: 4; u8 reserved3: 4; u8 hdmi_max_frl_rate: 4; u8 hdmi_max_frl_rate_valid: 1; u8 reserved4: 3; u8 reserved5; }; }; u16 addin_offset; u8 dvo_port; u8 i2c_pin; u8 slave_addr; u8 ddc_pin; u16 edid_ptr; u8 dvo_cfg; union { struct { u8 dvo2_port; u8 i2c2_pin; u8 slave2_addr; u8 ddc2_pin; }; struct { u8 efp_routed: 1; u8 lane_reversal: 1; u8 lspcon: 1; u8 iboost: 1; u8 hpd_invert: 1; u8 use_vbt_vswing: 1; u8 dp_max_lane_count: 2; u8 hdmi_support: 1; u8 dp_support: 1; u8 tmds_support: 1; u8 support_reserved: 5; u8 aux_channel; u8 dongle_detect; }; }; u8 pipe_cap: 2; u8 sdvo_stall: 1; u8 hpd_status: 2; u8 integrated_encoder: 1; u8 capabilities_reserved: 2; u8 dvo_wiring; union { u8 dvo2_wiring; u8 mipi_bridge_type; }; u16 extended_type; u8 dvo_function; u8 dp_usb_type_c: 1; u8 tbt: 1; u8 flags2_reserved: 2; u8 dp_port_trace_length: 4; u8 dp_gpio_index; u16 dp_gpio_pin_num; u8 dp_iboost_level: 4; u8 hdmi_iboost_level: 4; u8 dp_max_link_rate: 3; u8 dp_max_link_rate_reserved: 5; } __attribute__((packed)); struct dsc_compression_parameters_entry; struct intel_bios_encoder_data { struct drm_i915_private *i915; struct child_device_config child; struct dsc_compression_parameters_entry *dsc; struct list_head node; }; struct intel_gt_coredump___2; struct i915_gpu_coredump___2 { struct kref ref; ktime_t time; ktime_t boottime; ktime_t uptime; unsigned long capture; struct drm_i915_private *i915; struct intel_gt_coredump___2 *gt; char error_msg[128]; bool simulated; bool wakelock; bool suspended; int iommu; u32 reset_count; u32 suspend_count; struct intel_device_info device_info; struct intel_runtime_info runtime_info; struct intel_driver_caps driver_caps; struct i915_params params; struct intel_overlay_error_state *overlay; struct scatterlist *sgl; struct scatterlist *fit; }; struct intel_engine_coredump___2; struct intel_uc_coredump___2; struct intel_gt_coredump___2 { const struct intel_gt___2 *_gt; bool awake; bool simulated; struct intel_gt_info info; u32 eir; u32 pgtbl_er; u32 ier; u32 gtier[6]; u32 ngtier; u32 forcewake; u32 error; u32 err_int; u32 fault_data0; u32 fault_data1; u32 done_reg; u32 gac_eco; u32 gam_ecochk; u32 gab_ctl; u32 gfx_mode; u32 gtt_cache; u32 aux_err; u32 gam_done; u32 clock_frequency; u32 clock_period_ns; u32 derrmr; u32 sfc_done[4]; u32 nfence; u64 fence[32]; struct intel_engine_coredump___2 *engine; struct intel_uc_coredump___2 *uc; struct intel_gt_coredump___2 *next; }; struct intel_engine_coredump___2 { const struct intel_engine_cs___2 *engine; bool hung; bool simulated; u32 reset_count; u32 rq_head; u32 rq_post; u32 rq_tail; u32 ccid; u32 start; u32 tail; u32 head; u32 ctl; u32 mode; u32 hws; u32 ipeir; u32 ipehr; u32 esr; u32 bbstate; u32 instpm; u32 instps; u64 bbaddr; u64 acthd; u32 fault_reg; u64 faddr; u32 rc_psmi; u32 nopid; u32 excc; u32 cmd_cctl; u32 cscmdop; u32 ctx_sr_ctl; u32 dma_faddr_hi; u32 dma_faddr_lo; struct intel_instdone instdone; struct intel_guc_state_capture *guc_capture; struct __guc_capture_parsed_output *guc_capture_node; struct i915_gem_context_coredump context; struct i915_vma_coredump *vma; struct i915_request_coredump execlist[2]; unsigned int num_ports; struct { u32 gfx_mode; union { u64 pdp[4]; u32 pp_dir_base; }; } vm_info; struct intel_engine_coredump___2 *next; }; struct intel_uc_coredump___2 { struct intel_uc_fw___2 guc_fw; struct intel_uc_fw___2 huc_fw; struct guc_info guc; }; struct intel_memory_region_ops___2 { unsigned int flags; int (*init)(struct intel_memory_region___2 *); int (*release)(struct intel_memory_region___2 *); int (*init_object)(struct intel_memory_region___2 *, struct drm_i915_gem_object___2 *, resource_size_t, resource_size_t, resource_size_t, unsigned int); }; enum plane_id { PLANE_PRIMARY = 0, PLANE_SPRITE0 = 1, PLANE_SPRITE1 = 2, PLANE_SPRITE2 = 3, PLANE_SPRITE3 = 4, PLANE_SPRITE4 = 5, PLANE_SPRITE5 = 6, PLANE_CURSOR = 7, I915_MAX_PLANES = 8, }; enum dbuf_slice { DBUF_S1 = 0, DBUF_S2 = 1, DBUF_S3 = 2, DBUF_S4 = 3, I915_MAX_DBUF_SLICES = 4, }; struct intel_dbuf_bw { unsigned int max_bw[4]; u8 active_planes[4]; }; struct intel_bw_state { struct intel_global_state base; struct intel_dbuf_bw dbuf_bw[4]; u8 pipe_sagv_reject; u8 active_pipes; u16 qgv_points_mask; int min_cdclk[4]; unsigned int data_rate[4]; u8 num_active_planes[4]; }; struct intel_qgv_point { u16 dclk; u16 t_rp; u16 t_rdpre; u16 t_rc; u16 t_ras; u16 t_rcd; }; struct intel_psf_gv_point { u8 clk; }; struct intel_qgv_info { struct intel_qgv_point points[8]; struct intel_psf_gv_point psf_points[3]; u8 num_points; u8 num_psf_points; u8 t_bl; u8 max_numchannels; u8 channel_width; u8 deinterleave; }; struct intel_cdclk_state { struct intel_global_state base; struct intel_cdclk_config logical; struct intel_cdclk_config actual; int bw_min_cdclk; int min_cdclk[4]; u8 min_voltage_level[4]; enum pipe pipe; int force_min_cdclk; u8 active_pipes; }; enum gmbus_gpio { GPIOA = 0, GPIOB = 1, GPIOC = 2, GPIOD = 3, GPIOE = 4, GPIOF = 5, GPIOG = 6, GPIOH = 7, __GPIOI_UNUSED = 8, GPIOJ = 9, GPIOK = 10, GPIOL = 11, GPIOM = 12, GPION = 13, GPIOO = 14, }; struct gmbus_pin { const char *name; enum gmbus_gpio gpio; }; 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 intel_gmbus { struct i2c_adapter adapter; u32 force_bit; u32 reg0; i915_reg_t gpio_reg; struct i2c_algo_bit_data bit_algo; struct drm_i915_private *i915; }; struct drm_info_list { const char *name; int (*show)(struct seq_file *, void *); u32 driver_features; void *data; }; struct drm_info_node { struct drm_minor *minor; const struct drm_info_list *info_ent; struct list_head list; struct dentry *dent; }; struct virtio_gpu_rect { __le32 x; __le32 y; __le32 width; __le32 height; }; struct virtio_gpu_display_one { struct virtio_gpu_rect r; __le32 enabled; __le32 flags; }; typedef __u64 __le64; struct virtio_gpu_ctrl_hdr { __le32 type; __le32 flags; __le64 fence_id; __le32 ctx_id; __u8 ring_idx; __u8 padding[3]; }; struct virtio_gpu_cursor_pos { __le32 scanout_id; __le32 x; __le32 y; __le32 padding; }; struct virtio_gpu_update_cursor { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_cursor_pos pos; __le32 resource_id; __le32 hot_x; __le32 hot_y; __le32 padding; }; struct virtio_gpu_output { int index; struct drm_crtc crtc; struct drm_connector conn; struct drm_encoder enc; struct virtio_gpu_display_one info; struct virtio_gpu_update_cursor cursor; struct edid *edid; int cur_x; int cur_y; bool needs_modeset; }; struct virtqueue; struct virtio_gpu_queue { struct virtqueue *vq; spinlock_t qlock; wait_queue_head_t ack_queue; struct work_struct dequeue_work; uint32_t seqno; }; struct virtio_gpu_fence_driver { atomic64_t last_fence_id; uint64_t current_fence_id; uint64_t context; struct list_head fences; spinlock_t lock; }; struct virtio_shm_region { u64 addr; u64 len; }; struct virtio_device; struct virtio_gpu_drv_capset; struct virtio_gpu_device { struct drm_device *ddev; struct virtio_device *vdev; struct virtio_gpu_output outputs[16]; uint32_t num_scanouts; struct virtio_gpu_queue ctrlq; struct virtio_gpu_queue cursorq; struct kmem_cache *vbufs; atomic_t pending_commands; struct ida resource_ida; wait_queue_head_t resp_wq; spinlock_t display_info_lock; bool display_info_pending; struct virtio_gpu_fence_driver fence_drv; struct ida ctx_id_ida; bool has_virgl_3d; bool has_edid; bool has_indirect; bool has_resource_assign_uuid; bool has_resource_blob; bool has_host_visible; bool has_context_init; struct virtio_shm_region host_visible_region; struct drm_mm host_visible_mm; struct work_struct config_changed_work; struct work_struct obj_free_work; spinlock_t obj_free_lock; struct list_head obj_free_list; struct virtio_gpu_drv_capset *capsets; uint32_t num_capsets; uint64_t capset_id_mask; struct list_head cap_cache; spinlock_t resource_export_lock; spinlock_t host_visible_lock; }; struct virtio_device_id { __u32 device; __u32 vendor; }; 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_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 *); }; 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; void *priv; bool reset; }; struct virtio_gpu_drv_capset { uint32_t id; uint32_t max_version; uint32_t max_size; }; 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, }; 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, }; 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 klist_node; 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 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 wake_irq { struct device *dev; unsigned int status; int irq; const char *name; }; 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; struct bus_type *bus; struct kset glue_dirs; struct class *class; struct lock_class_key lock_key; }; typedef int (*pm_callback_t)(struct device *); enum scsi_target_state { STARGET_CREATED = 1, STARGET_RUNNING = 2, STARGET_REMOVE = 3, STARGET_CREATED_REMOVE = 4, STARGET_DEL = 5, }; 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 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, }; enum scsi_cmnd_submitter { SUBMITTED_BY_BLOCK_LAYER = 0, SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, SUBMITTED_BY_SCSI_RESET_IOCTL = 2, }; enum scsi_timeout_action { SCSI_EH_DONE = 0, SCSI_EH_RESET_TIMER = 1, SCSI_EH_NOT_HANDLED = 2, }; 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, }; 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 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, }; 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 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_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, }; struct scsi_data_buffer { struct sg_table table; unsigned int length; }; struct scsi_device; 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; struct bsg_device; struct Scsi_Host; struct scsi_vpd; struct scsi_target; struct scsi_device_handler; 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_target *sdev_target; blist_flags_t sdev_bflags; unsigned int eh_timeout; 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 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 manage_start_stop: 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 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_host_template; 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; 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 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; unsigned long hostdata[0]; }; 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 (*compat_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 max_host_blocked; const struct attribute_group **shost_groups; const struct attribute_group **sdev_groups; u64 vendor_id; int rpm_autosuspend_delay; }; 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]; }; 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 scsi_vpd { struct callback_head rcu; int len; unsigned char data[0]; }; typedef void (*activate_complete)(void *, int); struct scsi_sense_hdr; 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_sense_hdr { u8 response_code; u8 sense_key; u8 asc; u8 ascq; u8 byte4; u8 byte5; u8 byte6; u8 additional_length; }; 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 *); }; typedef __u32 blk_mq_req_flags_t; 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 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; }; 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_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_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_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; }; struct reset_control; 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; 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_UP = 3, PHY_RUNNING = 4, PHY_NOLINK = 5, PHY_CABLETEST = 6, }; 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_QSGMII = 18, PHY_INTERFACE_MODE_TRGMII = 19, PHY_INTERFACE_MODE_100BASEX = 20, PHY_INTERFACE_MODE_1000BASEX = 21, PHY_INTERFACE_MODE_2500BASEX = 22, PHY_INTERFACE_MODE_5GBASER = 23, PHY_INTERFACE_MODE_RXAUI = 24, PHY_INTERFACE_MODE_XAUI = 25, PHY_INTERFACE_MODE_10GBASER = 26, PHY_INTERFACE_MODE_25GBASER = 27, PHY_INTERFACE_MODE_USXGMII = 28, PHY_INTERFACE_MODE_10GKR = 29, PHY_INTERFACE_MODE_QUSGMII = 30, PHY_INTERFACE_MODE_1000BASEKX = 31, PHY_INTERFACE_MODE_MAX = 32, } phy_interface_t; struct phylink; struct pse_control; struct phy_driver; struct phy_package_shared; struct mii_timestamper; struct phy_device { struct mdio_device mdio; 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 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; 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; 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 { int addr; refcount_t refcnt; unsigned long flags; size_t priv_size; void *priv; }; struct mdio_driver_common { struct device_driver driver; int flags; }; 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 *); }; 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; }; 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 ifreq *); void (*link_state)(struct mii_timestamper *, struct phy_device *); int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); struct device *device; }; 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_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, }; 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, }; struct mii_ioctl_data { __u16 phy_id; __u16 reg_num; __u16 val_in; __u16 val_out; }; struct phy_setting { u32 speed; u8 duplex; u8 bit; }; 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 ip_tunnel_parm { char name[16]; int link; __be16 i_flags; __be16 o_flags; __be32 i_key; __be32 o_key; struct iphdr iph; }; 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; __u8 reserved: 6; __u8 autoconf: 1; __u8 onlink: 1; __be32 valid; __be32 prefered; __be32 reserved2; struct in6_addr prefix; }; 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 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 inet_peer_base { struct rb_root rb_root; seqlock_t lock; int total; }; 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 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 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 uncached_list; 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 list_head rt_uncached; struct uncached_list *rt_uncached_list; }; 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; 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; struct list_head rt6i_uncached; struct uncached_list *rt6i_uncached_list; unsigned short rt6i_nfheader_len; }; struct rt6_exception_bucket { struct hlist_head chain; int depth; }; struct nh_grp_entry { struct nexthop *nh; 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; }; 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; 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 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; }; 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; struct ib_device; struct devlink_rate; struct devlink_linecard; struct devlink_port { struct list_head list; struct list_head region_list; struct devlink *devlink; 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; }; 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 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 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 bus_attribute { struct attribute attr; ssize_t (*show)(struct bus_type *, char *); ssize_t (*store)(struct bus_type *, const char *, size_t); }; enum nsim_dev_port_type { NSIM_DEV_PORT_TYPE_PF = 0, NSIM_DEV_PORT_TYPE_VF = 1, }; struct nsim_bus_dev { struct device dev; struct list_head list; unsigned int port_count; unsigned int num_queues; struct net *initial_net; unsigned int max_vfs; unsigned int num_vfs; bool init; }; struct usb_class { struct kref kref; struct class *class; }; enum usb_interface_condition { USB_INTERFACE_UNBOUND = 0, USB_INTERFACE_BINDING = 1, USB_INTERFACE_BOUND = 2, USB_INTERFACE_UNBINDING = 3, }; struct usb_host_interface; struct usb_interface_assoc_descriptor; 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; 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_endpoint; struct usb_host_interface { struct usb_interface_descriptor desc; int extralen; unsigned char *extra; struct usb_host_endpoint *endpoint; char *string; }; 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 ep_device; 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; char: 8; struct list_head urb_list; void *hcpriv; struct ep_device *ep_dev; unsigned char *extra; int extralen; int enabled; int streams; int: 32; } __attribute__((packed)); struct usb_interface_assoc_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bFirstInterface; __u8 bInterfaceCount; __u8 bFunctionClass; __u8 bFunctionSubClass; __u8 bFunctionProtocol; __u8 iFunction; }; struct usb_class_driver { char *name; char * (*devnode)(const struct device *, umode_t *); const struct file_operations *fops; int minor_base; }; enum usb3_link_state { USB3_LPM_U0 = 0, USB3_LPM_U1 = 1, USB3_LPM_U2 = 2, USB3_LPM_U3 = 3, }; struct usb_hcd; struct urb; struct usb_device; struct usb_tt; 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 *, bool); 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 *); 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); }; struct usb_devmap { unsigned long devicemap[2]; }; struct mon_bus; 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 mon_bus *mon_bus; int monitored; }; struct usb_phy_roothub; enum usb_dev_authorize_policy { USB_DEVICE_AUTHORIZE_NONE = 0, USB_DEVICE_AUTHORIZE_ALL = 1, USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; struct giveback_urb_bh { bool running; bool high_prio; spinlock_t lock; struct list_head head; struct tasklet_struct bh; struct usb_host_endpoint *completing_ep; }; struct dma_pool; struct usb_phy; 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 wireless: 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]; }; 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, }; 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 wusb_dev; 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_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 wusb: 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; struct wusb_dev *wusb_dev; 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_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 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; __le32 bmSublinkSpeedAttr[1]; }; 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_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_cache { unsigned int num_altsetting; struct kref ref; struct usb_host_interface altsetting[0]; }; 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; }; enum uhci_rh_state { UHCI_RH_RESET = 0, UHCI_RH_SUSPENDED = 1, UHCI_RH_AUTO_STOPPED = 2, UHCI_RH_RESUMING = 3, UHCI_RH_SUSPENDING = 4, UHCI_RH_RUNNING = 5, UHCI_RH_RUNNING_NODEVS = 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, }; struct clk; struct uhci_td; struct uhci_qh; struct uhci_hcd { unsigned long io_addr; void *regs; struct dma_pool *qh_pool; struct dma_pool *td_pool; struct uhci_td *term_td; struct uhci_qh *skelqh[11]; struct uhci_qh *next_qh; spinlock_t lock; dma_addr_t frame_dma_handle; __le32 *frame; void **frame_cpu; enum uhci_rh_state rh_state; unsigned long auto_stop_time; unsigned int frame_number; unsigned int is_stopped; unsigned int last_iso_frame; unsigned int cur_iso_frame; unsigned int scan_in_progress: 1; unsigned int need_rescan: 1; unsigned int dead: 1; unsigned int RD_enable: 1; unsigned int is_initialized: 1; unsigned int fsbr_is_on: 1; unsigned int fsbr_is_wanted: 1; unsigned int fsbr_expiring: 1; struct timer_list fsbr_timer; unsigned int oc_low: 1; unsigned int wait_for_hp: 1; unsigned int big_endian_mmio: 1; unsigned int big_endian_desc: 1; unsigned int is_aspeed: 1; unsigned long port_c_suspend; unsigned long resuming_ports; unsigned long ports_timeout; struct list_head idle_qh_list; int rh_numports; wait_queue_head_t waitqh; int num_waiting; int total_load; short load[32]; struct clk *clk; void (*reset_hc)(struct uhci_hcd *); int (*check_and_reset_hc)(struct uhci_hcd *); void (*configure_hc)(struct uhci_hcd *); int (*resume_detect_interrupts_are_broken)(struct uhci_hcd *); int (*global_suspend_mode_is_broken)(struct uhci_hcd *); }; struct uhci_td { __le32 link; __le32 status; __le32 token; __le32 buffer; dma_addr_t dma_handle; struct list_head list; int frame; struct list_head fl_list; }; struct uhci_qh { __le32 link; __le32 element; dma_addr_t dma_handle; struct list_head node; struct usb_host_endpoint *hep; struct usb_device *udev; struct list_head queue; struct uhci_td *dummy_td; struct uhci_td *post_td; struct usb_iso_packet_descriptor *iso_packet_desc; unsigned long advance_jiffies; unsigned int unlink_frame; unsigned int period; short phase; short load; unsigned int iso_frame; int state; int type; int skel; unsigned int initial_toggle: 1; unsigned int needs_fixup: 1; unsigned int is_stopped: 1; unsigned int wait_expired: 1; unsigned int bandwidth_reserved: 1; }; struct urb_priv { struct list_head node; struct urb *urb; struct uhci_qh *qh; struct list_head td_list; unsigned int fsbr: 1; }; enum psmouse_type { PSMOUSE_NONE = 0, PSMOUSE_PS2 = 1, PSMOUSE_PS2PP = 2, PSMOUSE_THINKPS = 3, PSMOUSE_GENPS = 4, PSMOUSE_IMPS = 5, PSMOUSE_IMEX = 6, PSMOUSE_SYNAPTICS = 7, PSMOUSE_ALPS = 8, PSMOUSE_LIFEBOOK = 9, PSMOUSE_TRACKPOINT = 10, PSMOUSE_TOUCHKIT_PS2 = 11, PSMOUSE_CORTRON = 12, PSMOUSE_HGPK = 13, PSMOUSE_ELANTECH = 14, PSMOUSE_FSP = 15, PSMOUSE_SYNAPTICS_RELATIVE = 16, PSMOUSE_CYPRESS = 17, PSMOUSE_FOCALTECH = 18, PSMOUSE_VMMOUSE = 19, PSMOUSE_BYD = 20, PSMOUSE_SYNAPTICS_SMBUS = 21, PSMOUSE_ELANTECH_SMBUS = 22, PSMOUSE_AUTO = 23, }; enum psmouse_state { PSMOUSE_IGNORE = 0, PSMOUSE_INITIALIZING = 1, PSMOUSE_RESYNCING = 2, PSMOUSE_CMD_MODE = 3, PSMOUSE_ACTIVATED = 4, }; enum psmouse_scale { PSMOUSE_SCALE11 = 0, PSMOUSE_SCALE21 = 1, }; struct serio; struct ps2dev { struct serio *serio; struct mutex cmd_mutex; wait_queue_head_t wait; unsigned long flags; u8 cmdbuf[8]; u8 cmdcnt; u8 nak; }; typedef enum { PSMOUSE_BAD_DATA = 0, PSMOUSE_GOOD_DATA = 1, PSMOUSE_FULL_PACKET = 2, } psmouse_ret_t; struct psmouse_protocol; struct psmouse { void *private; struct input_dev *dev; struct ps2dev ps2dev; struct delayed_work resync_work; const char *vendor; const char *name; const struct psmouse_protocol *protocol; unsigned char packet[8]; unsigned char badbyte; unsigned char pktcnt; unsigned char pktsize; unsigned char oob_data_type; unsigned char extra_buttons; bool acks_disable_command; unsigned int model; unsigned long last; unsigned long out_of_sync_cnt; unsigned long num_resyncs; enum psmouse_state state; char devname[64]; char phys[32]; unsigned int rate; unsigned int resolution; unsigned int resetafter; unsigned int resync_time; bool smartscroll; psmouse_ret_t (*protocol_handler)(struct psmouse *); void (*set_rate)(struct psmouse *, unsigned int); void (*set_resolution)(struct psmouse *, unsigned int); void (*set_scale)(struct psmouse *, enum psmouse_scale); int (*reconnect)(struct psmouse *); int (*fast_reconnect)(struct psmouse *); void (*disconnect)(struct psmouse *); void (*cleanup)(struct psmouse *); int (*poll)(struct psmouse *); void (*pt_activate)(struct psmouse *); void (*pt_deactivate)(struct psmouse *); }; 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 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 psmouse_protocol { enum psmouse_type type; bool maxproto; bool ignore_parity; bool try_passthru; bool smbus_companion; const char *name; const char *alias; int (*detect)(struct psmouse *, bool); int (*init)(struct psmouse *); }; struct focaltech_finger_state { bool active; bool valid; unsigned int x; unsigned int y; }; struct focaltech_hw_state { struct focaltech_finger_state fingers[5]; unsigned int width; bool pressed; }; struct focaltech_data { unsigned int x_max; unsigned int y_max; struct focaltech_hw_state state; }; struct rc_map_list { struct list_head list; struct rc_map map; }; 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 posix_clock; struct __kernel_timex; 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 *, unsigned int, unsigned long); int (*open)(struct posix_clock *, fmode_t); __poll_t (*poll)(struct posix_clock *, struct file *, poll_table *); int (*release)(struct posix_clock *); ssize_t (*read)(struct posix_clock *, 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 ptp_extts_event { struct ptp_clock_time t; unsigned int index; unsigned int flags; unsigned int rsv[2]; }; struct timestamp_event_queue { struct ptp_extts_event buf[128]; int head; int tail; spinlock_t lock; }; struct kthread_delayed_work { struct kthread_work work; struct timer_list timer; }; struct ptp_clock_info; 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 timestamp_event_queue tsevq; struct mutex tsevq_mux; 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 __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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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); 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 ptp_pin_desc { char name[64]; unsigned int index; unsigned int func; unsigned int chan; unsigned int rsv[5]; }; 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 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 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 rsv[12]; }; 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 cpufreq_policy; struct cpufreq_policy_data; struct freq_attr; 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 *); }; struct cpufreq_cpuinfo { unsigned int max_freq; unsigned int min_freq; unsigned int transition_latency; }; enum cpufreq_table_sorting { CPUFREQ_TABLE_UNSORTED = 0, CPUFREQ_TABLE_SORTED_ASCENDING = 1, CPUFREQ_TABLE_SORTED_DESCENDING = 2, }; struct cpufreq_stats; struct cpufreq_governor; 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; 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; }; struct cpufreq_frequency_table { unsigned int flags; unsigned int driver_data; unsigned int frequency; }; struct thermal_cooling_device_ops; struct thermal_cooling_device { int id; 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 cpufreq_policy_data { struct cpufreq_cpuinfo cpuinfo; struct cpufreq_frequency_table *freq_table; unsigned int cpu; unsigned int min; unsigned int max; }; struct freq_attr { struct attribute attr; ssize_t (*show)(struct cpufreq_policy *, char *); ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); }; 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_APB_DEAD = 8, CPUHP_X86_MCE_DEAD = 9, CPUHP_VIRT_NET_DEAD = 10, CPUHP_IBMVNIC_DEAD = 11, CPUHP_SLUB_DEAD = 12, CPUHP_DEBUG_OBJ_DEAD = 13, CPUHP_MM_WRITEBACK_DEAD = 14, CPUHP_MM_DEMOTION_DEAD = 15, CPUHP_MM_VMSTAT_DEAD = 16, CPUHP_SOFTIRQ_DEAD = 17, CPUHP_NET_MVNETA_DEAD = 18, CPUHP_CPUIDLE_DEAD = 19, CPUHP_ARM64_FPSIMD_DEAD = 20, CPUHP_ARM_OMAP_WAKE_DEAD = 21, CPUHP_IRQ_POLL_DEAD = 22, CPUHP_BLOCK_SOFTIRQ_DEAD = 23, CPUHP_BIO_DEAD = 24, CPUHP_ACPI_CPUDRV_DEAD = 25, CPUHP_S390_PFAULT_DEAD = 26, CPUHP_BLK_MQ_DEAD = 27, CPUHP_FS_BUFF_DEAD = 28, CPUHP_PRINTK_DEAD = 29, CPUHP_MM_MEMCQ_DEAD = 30, CPUHP_XFS_DEAD = 31, CPUHP_PERCPU_CNT_DEAD = 32, CPUHP_RADIX_DEAD = 33, CPUHP_PAGE_ALLOC = 34, CPUHP_NET_DEV_DEAD = 35, CPUHP_PCI_XGENE_DEAD = 36, CPUHP_IOMMU_IOVA_DEAD = 37, CPUHP_LUSTRE_CFS_DEAD = 38, CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 39, CPUHP_PADATA_DEAD = 40, CPUHP_AP_DTPM_CPU_DEAD = 41, CPUHP_RANDOM_PREPARE = 42, CPUHP_WORKQUEUE_PREP = 43, CPUHP_POWER_NUMA_PREPARE = 44, CPUHP_HRTIMERS_PREPARE = 45, CPUHP_PROFILE_PREPARE = 46, CPUHP_X2APIC_PREPARE = 47, CPUHP_SMPCFD_PREPARE = 48, CPUHP_RELAY_PREPARE = 49, CPUHP_SLAB_PREPARE = 50, CPUHP_MD_RAID5_PREPARE = 51, CPUHP_RCUTREE_PREP = 52, CPUHP_CPUIDLE_COUPLED_PREPARE = 53, CPUHP_POWERPC_PMAC_PREPARE = 54, CPUHP_POWERPC_MMU_CTX_PREPARE = 55, CPUHP_XEN_PREPARE = 56, CPUHP_XEN_EVTCHN_PREPARE = 57, CPUHP_ARM_SHMOBILE_SCU_PREPARE = 58, CPUHP_SH_SH3X_PREPARE = 59, CPUHP_NET_FLOW_PREPARE = 60, CPUHP_TOPOLOGY_PREPARE = 61, CPUHP_NET_IUCV_PREPARE = 62, CPUHP_ARM_BL_PREPARE = 63, CPUHP_TRACE_RB_PREPARE = 64, CPUHP_MM_ZS_PREPARE = 65, CPUHP_MM_ZSWP_MEM_PREPARE = 66, CPUHP_MM_ZSWP_POOL_PREPARE = 67, CPUHP_KVM_PPC_BOOK3S_PREPARE = 68, CPUHP_ZCOMP_PREPARE = 69, CPUHP_TIMERS_PREPARE = 70, CPUHP_MIPS_SOC_PREPARE = 71, CPUHP_BP_PREPARE_DYN = 72, CPUHP_BP_PREPARE_DYN_END = 92, CPUHP_BRINGUP_CPU = 93, CPUHP_AP_IDLE_DEAD = 94, CPUHP_AP_OFFLINE = 95, CPUHP_AP_CACHECTRL_STARTING = 96, CPUHP_AP_SCHED_STARTING = 97, CPUHP_AP_RCUTREE_DYING = 98, CPUHP_AP_CPU_PM_STARTING = 99, CPUHP_AP_IRQ_GIC_STARTING = 100, CPUHP_AP_IRQ_HIP04_STARTING = 101, CPUHP_AP_IRQ_APPLE_AIC_STARTING = 102, CPUHP_AP_IRQ_ARMADA_XP_STARTING = 103, CPUHP_AP_IRQ_BCM2836_STARTING = 104, CPUHP_AP_IRQ_MIPS_GIC_STARTING = 105, CPUHP_AP_IRQ_RISCV_STARTING = 106, CPUHP_AP_IRQ_LOONGARCH_STARTING = 107, CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 108, CPUHP_AP_ARM_MVEBU_COHERENCY = 109, CPUHP_AP_MICROCODE_LOADER = 110, CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 111, CPUHP_AP_PERF_X86_STARTING = 112, CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 113, CPUHP_AP_PERF_X86_CQM_STARTING = 114, CPUHP_AP_PERF_X86_CSTATE_STARTING = 115, CPUHP_AP_PERF_XTENSA_STARTING = 116, CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 117, CPUHP_AP_ARM_SDEI_STARTING = 118, CPUHP_AP_ARM_VFP_STARTING = 119, CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 120, CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 121, CPUHP_AP_PERF_ARM_ACPI_STARTING = 122, CPUHP_AP_PERF_ARM_STARTING = 123, CPUHP_AP_PERF_RISCV_STARTING = 124, CPUHP_AP_ARM_L2X0_STARTING = 125, CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 126, CPUHP_AP_ARM_ARCH_TIMER_STARTING = 127, CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 128, CPUHP_AP_JCORE_TIMER_STARTING = 129, CPUHP_AP_ARM_TWD_STARTING = 130, CPUHP_AP_QCOM_TIMER_STARTING = 131, CPUHP_AP_TEGRA_TIMER_STARTING = 132, CPUHP_AP_ARMADA_TIMER_STARTING = 133, CPUHP_AP_MARCO_TIMER_STARTING = 134, CPUHP_AP_MIPS_GIC_TIMER_STARTING = 135, CPUHP_AP_ARC_TIMER_STARTING = 136, CPUHP_AP_RISCV_TIMER_STARTING = 137, CPUHP_AP_CLINT_TIMER_STARTING = 138, CPUHP_AP_CSKY_TIMER_STARTING = 139, CPUHP_AP_TI_GP_TIMER_STARTING = 140, CPUHP_AP_HYPERV_TIMER_STARTING = 141, CPUHP_AP_DUMMY_TIMER_STARTING = 142, CPUHP_AP_ARM_XEN_STARTING = 143, CPUHP_AP_ARM_CORESIGHT_STARTING = 144, CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 145, CPUHP_AP_ARM64_ISNDEP_STARTING = 146, CPUHP_AP_SMPCFD_DYING = 147, CPUHP_AP_X86_TBOOT_DYING = 148, CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 149, CPUHP_AP_ONLINE = 150, CPUHP_TEARDOWN_CPU = 151, CPUHP_AP_ONLINE_IDLE = 152, CPUHP_AP_KVM_ONLINE = 153, CPUHP_AP_SCHED_WAIT_EMPTY = 154, CPUHP_AP_SMPBOOT_THREADS = 155, CPUHP_AP_X86_VDSO_VMA_ONLINE = 156, CPUHP_AP_IRQ_AFFINITY_ONLINE = 157, CPUHP_AP_BLK_MQ_ONLINE = 158, CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 159, CPUHP_AP_X86_INTEL_EPB_ONLINE = 160, CPUHP_AP_PERF_ONLINE = 161, CPUHP_AP_PERF_X86_ONLINE = 162, CPUHP_AP_PERF_X86_UNCORE_ONLINE = 163, CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 164, CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 165, CPUHP_AP_PERF_X86_RAPL_ONLINE = 166, CPUHP_AP_PERF_X86_CQM_ONLINE = 167, CPUHP_AP_PERF_X86_CSTATE_ONLINE = 168, CPUHP_AP_PERF_X86_IDXD_ONLINE = 169, CPUHP_AP_PERF_X86_IOMMU_PERF_ONLINE = 170, CPUHP_AP_PERF_S390_CF_ONLINE = 171, CPUHP_AP_PERF_S390_SF_ONLINE = 172, CPUHP_AP_PERF_ARM_CCI_ONLINE = 173, CPUHP_AP_PERF_ARM_CCN_ONLINE = 174, CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 175, CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 176, CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 177, CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 178, CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 179, CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 180, CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 181, CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 182, CPUHP_AP_PERF_ARM_L2X0_ONLINE = 183, CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 184, CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 185, CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 186, CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 187, CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 188, CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 189, CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 190, CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 191, CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 192, CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 193, CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 194, CPUHP_AP_PERF_CSKY_ONLINE = 195, CPUHP_AP_WATCHDOG_ONLINE = 196, CPUHP_AP_WORKQUEUE_ONLINE = 197, CPUHP_AP_RANDOM_ONLINE = 198, CPUHP_AP_RCUTREE_ONLINE = 199, CPUHP_AP_BASE_CACHEINFO_ONLINE = 200, CPUHP_AP_ONLINE_DYN = 201, CPUHP_AP_ONLINE_DYN_END = 231, CPUHP_AP_MM_DEMOTION_ONLINE = 232, CPUHP_AP_X86_HPET_ONLINE = 233, CPUHP_AP_X86_KVM_CLK_ONLINE = 234, CPUHP_AP_ACTIVE = 235, CPUHP_ONLINE = 236, }; struct srcu_notifier_head { struct mutex mutex; struct srcu_struct srcu; struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; struct subsys_interface { const char *name; struct bus_type *subsys; struct list_head node; int (*add_dev)(struct device *, struct subsys_interface *); void (*remove_dev)(struct device *, struct subsys_interface *); }; 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, }; struct cpufreq_freqs { struct cpufreq_policy *policy; unsigned int old; unsigned int new; u8 flags; }; struct hid_device_id; struct hid_device; struct hid_report_id; struct hid_report; struct hid_usage_id; struct hid_field; struct hid_usage; struct hid_input; 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; }; enum hid_type { HID_TYPE_OTHER = 0, HID_TYPE_USBMOUSE = 1, HID_TYPE_USBNONE = 2, }; struct hid_report_enum { unsigned int numbered; struct list_head report_list; struct hid_report *report_id_hash[256]; }; struct hid_bpf_prog_list; struct hid_bpf { u8 *device_data; u32 allocated_data; struct hid_bpf_prog_list __attribute__((btf_type_tag("rcu"))) *progs[2]; bool destroyed; spinlock_t progs_lock; }; struct hid_collection; struct hid_ll_driver; 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; 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; unsigned int id; struct hid_bpf bpf; }; 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_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 hid_input { struct list_head list; struct hid_report *report; struct input_dev *input; const char *name; bool registered; struct list_head reports; unsigned int application; }; struct hid_field_entry { struct list_head list; struct hid_field *field; unsigned int index; __s32 priority; }; 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 *); }; struct hid_bpf_prog_list { u16 prog_idx[64]; u8 prog_cnt; }; struct hid_report_id { __u32 report_type; }; struct hid_usage_id { __u32 usage_hid; __u32 usage_type; __u32 usage_code; }; 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 plff_device { struct hid_report *report; s32 maxval; s32 *strong; s32 *weak; }; struct dmi_system_id; struct snd_soc_acpi_codecs; struct config_entry { u32 flags; u16 device; u8 acpi_hid[16]; const struct dmi_system_id *dmi_table; const struct snd_soc_acpi_codecs *codec_hid; }; 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 snd_soc_acpi_codecs { int num_codecs; u8 codecs[48]; }; enum { SND_INTEL_DSP_DRIVER_ANY = 0, SND_INTEL_DSP_DRIVER_LEGACY = 1, SND_INTEL_DSP_DRIVER_SST = 2, SND_INTEL_DSP_DRIVER_SOF = 3, SND_INTEL_DSP_DRIVER_AVS = 4, SND_INTEL_DSP_DRIVER_LAST = 4, }; enum nhlt_link_type { NHLT_LINK_HDA = 0, NHLT_LINK_DSP = 1, NHLT_LINK_DMIC = 2, NHLT_LINK_SSP = 3, NHLT_LINK_INVALID = 4, }; 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, }; 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_MAX = 127, }; 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_MD5NOTFOUND = 18, SKB_DROP_REASON_TCP_MD5UNEXPECTED = 19, SKB_DROP_REASON_TCP_MD5FAILURE = 20, SKB_DROP_REASON_SOCKET_BACKLOG = 21, SKB_DROP_REASON_TCP_FLAGS = 22, SKB_DROP_REASON_TCP_ZEROWINDOW = 23, SKB_DROP_REASON_TCP_OLD_DATA = 24, SKB_DROP_REASON_TCP_OVERWINDOW = 25, SKB_DROP_REASON_TCP_OFOMERGE = 26, SKB_DROP_REASON_TCP_RFC7323_PAWS = 27, SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 28, SKB_DROP_REASON_TCP_RESET = 29, SKB_DROP_REASON_TCP_INVALID_SYN = 30, SKB_DROP_REASON_TCP_CLOSE = 31, SKB_DROP_REASON_TCP_FASTOPEN = 32, SKB_DROP_REASON_TCP_OLD_ACK = 33, SKB_DROP_REASON_TCP_TOO_OLD_ACK = 34, SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 35, SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 36, SKB_DROP_REASON_TCP_OFO_DROP = 37, SKB_DROP_REASON_IP_OUTNOROUTES = 38, SKB_DROP_REASON_BPF_CGROUP_EGRESS = 39, SKB_DROP_REASON_IPV6DISABLED = 40, SKB_DROP_REASON_NEIGH_CREATEFAIL = 41, SKB_DROP_REASON_NEIGH_FAILED = 42, SKB_DROP_REASON_NEIGH_QUEUEFULL = 43, SKB_DROP_REASON_NEIGH_DEAD = 44, SKB_DROP_REASON_TC_EGRESS = 45, SKB_DROP_REASON_QDISC_DROP = 46, SKB_DROP_REASON_CPU_BACKLOG = 47, SKB_DROP_REASON_XDP = 48, SKB_DROP_REASON_TC_INGRESS = 49, SKB_DROP_REASON_UNHANDLED_PROTO = 50, SKB_DROP_REASON_SKB_CSUM = 51, SKB_DROP_REASON_SKB_GSO_SEG = 52, SKB_DROP_REASON_SKB_UCOPY_FAULT = 53, SKB_DROP_REASON_DEV_HDR = 54, SKB_DROP_REASON_DEV_READY = 55, SKB_DROP_REASON_FULL_RING = 56, SKB_DROP_REASON_NOMEM = 57, SKB_DROP_REASON_HDR_TRUNC = 58, SKB_DROP_REASON_TAP_FILTER = 59, SKB_DROP_REASON_TAP_TXFILTER = 60, SKB_DROP_REASON_ICMP_CSUM = 61, SKB_DROP_REASON_INVALID_PROTO = 62, SKB_DROP_REASON_IP_INADDRERRORS = 63, SKB_DROP_REASON_IP_INNOROUTES = 64, SKB_DROP_REASON_PKT_TOO_BIG = 65, SKB_DROP_REASON_DUP_FRAG = 66, SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 67, SKB_DROP_REASON_FRAG_TOO_FAR = 68, SKB_DROP_REASON_TCP_MINTTL = 69, SKB_DROP_REASON_IPV6_BAD_EXTHDR = 70, SKB_DROP_REASON_IPV6_NDISC_FRAG = 71, SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 72, SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 73, SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 74, SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 75, SKB_DROP_REASON_MAX = 76, }; 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_MAX_STATES = 13, }; struct qdisc_skb_cb { struct { unsigned int pkt_len; u16 slave_dev_queue_mapping; u16 tc_classid; }; unsigned char data[20]; }; 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 *); typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); struct ethnl_req_info; struct ethnl_reply_data; struct genl_info; 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 *, 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; }; struct genlmsghdr; struct genl_info { u32 snd_seq; u32 snd_portid; struct nlmsghdr *nlhdr; struct genlmsghdr *genlhdr; void *userhdr; struct nlattr **attrs; possible_net_t _net; void *user_ptr[2]; struct netlink_ext_ack *extack; }; struct genlmsghdr { __u8 cmd; __u8 version; __u16 reserved; }; 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 *); 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; int id; unsigned int mcgrp_offset; }; 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; }; 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, }; 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 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 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 ethnl_dump_ctx { const struct ethnl_request_ops *ops; struct ethnl_req_info *req_info; struct ethnl_reply_data *reply_data; int pos_hash; int pos_idx; }; struct genl_dumpit_info { const struct genl_family *family; struct genl_split_ops op; struct nlattr **attrs; }; struct netdev_notifier_info { struct net_device *dev; struct netlink_ext_ack *extack; }; 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 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 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_conn; struct nf_conntrack_expect; struct nf_ct_helper_expectfn { struct list_head head; const char *name; void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); }; struct nf_conntrack { refcount_t use; }; struct nf_conntrack_zone { u16 id; u8 flags; u8 dir; }; 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; 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; }; 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, }; struct ip_ct_sctp { enum sctp_conntrack state; __be32 vtag[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_zone zone; 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; u_int32_t secmark; struct nf_ct_ext *ext; union nf_conntrack_proto proto; }; struct xfrm_address_filter; struct xfrm_state_walk { struct list_head all; u8 state; u8 dying; u8 proto; u32 seq; struct xfrm_address_filter *filter; }; struct xfrm_replay_state { __u32 oseq; __u32 seq; __u32 bitmap; }; enum xfrm_replay_mode { XFRM_REPLAY_MODE_LEGACY = 0, XFRM_REPLAY_MODE_BMP = 1, XFRM_REPLAY_MODE_ESN = 2, }; struct xfrm_stats { __u32 replay_window; __u32 replay; __u32 integrity_failed; }; struct xfrm_mode { u8 encap; u8 family; u8 flags; }; struct xfrm_algo_auth; struct xfrm_algo; struct xfrm_algo_aead; struct xfrm_encap_tmpl; struct xfrm_replay_state_esn; struct xfrm_type; struct xfrm_type_offload; struct xfrm_state { possible_net_t xs_net; union { struct hlist_node gclist; struct hlist_node bydst; }; struct hlist_node bysrc; struct hlist_node byspi; struct hlist_node byseq; refcount_t refcnt; spinlock_t lock; struct xfrm_id id; struct xfrm_selector sel; struct xfrm_mark mark; u32 if_id; u32 tfcpad; u32 genid; struct xfrm_state_walk km; struct { u32 reqid; u8 mode; u8 replay_window; u8 aalgo; u8 ealgo; u8 calgo; u8 flags; u16 family; xfrm_address_t saddr; int header_len; int trailer_len; u32 extra_flags; struct xfrm_mark smark; } props; struct xfrm_lifetime_cfg lft; struct xfrm_algo_auth *aalg; struct xfrm_algo *ealg; struct xfrm_algo *calg; struct xfrm_algo_aead *aead; const char *geniv; __be16 new_mapping_sport; u32 new_mapping; u32 mapping_maxage; struct xfrm_encap_tmpl *encap; struct sock __attribute__((btf_type_tag("rcu"))) *encap_sk; xfrm_address_t *coaddr; struct xfrm_state *tunnel; atomic_t tunnel_users; struct xfrm_replay_state replay; struct xfrm_replay_state_esn *replay_esn; struct xfrm_replay_state preplay; struct xfrm_replay_state_esn *preplay_esn; enum xfrm_replay_mode repl_mode; u32 xflags; u32 replay_maxage; u32 replay_maxdiff; struct timer_list rtimer; struct xfrm_stats stats; struct xfrm_lifetime_cur curlft; struct hrtimer mtimer; struct xfrm_dev_offload xso; long saved_tmo; time64_t lastused; struct page_frag xfrag; const struct xfrm_type *type; struct xfrm_mode inner_mode; struct xfrm_mode inner_mode_iaf; struct xfrm_mode outer_mode; const struct xfrm_type_offload *type_offload; struct xfrm_sec_ctx *security; void *data; }; struct xfrm_address_filter { xfrm_address_t saddr; xfrm_address_t daddr; __u16 family; __u8 splen; __u8 dplen; }; struct xfrm_algo_auth { char alg_name[64]; unsigned int alg_key_len; unsigned int alg_trunc_len; char alg_key[0]; }; struct xfrm_algo { char alg_name[64]; unsigned int alg_key_len; char alg_key[0]; }; struct xfrm_algo_aead { char alg_name[64]; unsigned int alg_key_len; unsigned int alg_icv_len; char alg_key[0]; }; struct xfrm_encap_tmpl { __u16 encap_type; __be16 encap_sport; __be16 encap_dport; xfrm_address_t encap_oa; }; struct xfrm_replay_state_esn { unsigned int bmp_len; __u32 oseq; __u32 seq; __u32 oseq_hi; __u32 seq_hi; __u32 replay_window; __u32 bmp[0]; }; struct xfrm_type { struct module *owner; u8 proto; u8 flags; int (*init_state)(struct xfrm_state *, struct netlink_ext_ack *); void (*destructor)(struct xfrm_state *); int (*input)(struct xfrm_state *, struct sk_buff *); int (*output)(struct xfrm_state *, struct sk_buff *); int (*reject)(struct xfrm_state *, struct sk_buff *, const struct flowi *); }; struct xfrm_type_offload { struct module *owner; u8 proto; void (*encap)(struct xfrm_state *, struct sk_buff *); int (*input_tail)(struct xfrm_state *, struct sk_buff *); int (*xmit)(struct xfrm_state *, struct sk_buff *, netdev_features_t); }; struct xfrm_sec_ctx { __u8 ctx_doi; __u8 ctx_alg; __u16 ctx_len; __u32 ctx_sid; char ctx_str[0]; }; 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 nf_ct_event { struct nf_conn *ct; u32 portid; int report; }; struct nf_exp_event { struct nf_conntrack_expect *exp; u32 portid; int report; }; struct nf_conntrack_tuple_mask { struct { union nf_inet_addr u3; union nf_conntrack_man_proto u; } src; }; enum ip_conntrack_dir { IP_CT_DIR_ORIGINAL = 0, IP_CT_DIR_REPLY = 1, IP_CT_DIR_MAX = 2, }; struct nf_conntrack_helper; struct nf_conntrack_expect { struct hlist_node lnode; struct hlist_node hnode; struct nf_conntrack_tuple tuple; struct nf_conntrack_tuple_mask mask; void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); struct nf_conntrack_helper *helper; struct nf_conn *master; struct timer_list timeout; refcount_t use; unsigned int flags; unsigned int class; union nf_inet_addr saved_addr; union nf_conntrack_man_proto saved_proto; enum ip_conntrack_dir dir; struct callback_head rcu; }; 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, }; 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_ct_ext { u8 offset[8]; u8 len; unsigned int gen_id; char data[0]; }; enum nf_nat_manip_type { NF_NAT_MANIP_SRC = 0, NF_NAT_MANIP_DST = 1, }; 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 *); }; 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_ECACHE = 4, NF_CT_EXT_TSTAMP = 5, NF_CT_EXT_TIMEOUT = 6, NF_CT_EXT_LABELS = 7, NF_CT_EXT_NUM = 8, }; 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 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 nf_hook_ops_type { NF_HOOK_OP_UNDEFINED = 0, NF_HOOK_OP_NF_TABLES = 1, }; 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 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, }; 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_conn_help { struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper; struct hlist_head expectations; u8 expecting[4]; int: 32; char data[32]; }; 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_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_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 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; }; 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 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 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]; }; 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 rt_scope_t { RT_SCOPE_UNIVERSE = 0, RT_SCOPE_SITE = 200, RT_SCOPE_LINK = 253, RT_SCOPE_HOST = 254, RT_SCOPE_NOWHERE = 255, }; enum { IPSTATS_MIB_NUM = 0, IPSTATS_MIB_INPKTS = 1, IPSTATS_MIB_INOCTETS = 2, IPSTATS_MIB_INDELIVERS = 3, IPSTATS_MIB_OUTFORWDATAGRAMS = 4, IPSTATS_MIB_OUTPKTS = 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_MAX = 37, }; enum tcp_synack_type { TCP_SYNACK_NORMAL = 0, TCP_SYNACK_FASTOPEN = 1, TCP_SYNACK_COOKIE = 2, }; enum { XFRM_POLICY_IN = 0, XFRM_POLICY_OUT = 1, XFRM_POLICY_FWD = 2, XFRM_POLICY_MASK = 3, XFRM_POLICY_MAX = 3, }; 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 owners; }; 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 ip_options_rcu { struct callback_head rcu; struct ip_options opt; }; struct sockaddr_in { __kernel_sa_family_t sin_family; __be16 sin_port; struct in_addr sin_addr; unsigned char __pad[8]; }; 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; }; struct inet_cork_full { struct inet_cork base; struct flowi fl; }; struct ipv6_pinfo; struct ip_mc_socklist; struct inet_sock { struct sock sk; struct ipv6_pinfo *pinet6; __be32 inet_saddr; __s16 uc_ttl; __u16 cmsg_flags; struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; __be16 inet_sport; __u16 inet_id; __u8 tos; __u8 min_ttl; __u8 mc_ttl; __u8 pmtudisc; __u8 recverr: 1; __u8 is_icsk: 1; __u8 freebind: 1; __u8 hdrincl: 1; __u8 mc_loop: 1; __u8 transparent: 1; __u8 mc_all: 1; __u8 nodefrag: 1; __u8 bind_address_no_port: 1; __u8 recverr_rfc4884: 1; __u8 defer_connect: 1; __u8 rcv_tos; __u8 convert_csum; int uc_index; int mc_index; __be32 mc_addr; struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; struct inet_cork_full cork; struct { __u16 lo; __u16 hi; } local_port_range; }; 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; __u16 __unused_1: 7; __s16 hop_limit: 9; __u16 mc_loop: 1; __u16 __unused_2: 6; __s16 mcast_hops: 9; 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; __u16 recverr: 1; __u16 sndflow: 1; __u16 repflow: 1; __u16 pmtudisc: 3; __u16 padding: 1; __u16 srcprefs: 3; __u16 dontfrag: 1; __u16 autoflowlabel: 1; __u16 autoflowlabel_set: 1; __u16 mc_all: 1; __u16 recverr_rfc4884: 1; __u16 rtalert_isolate: 1; __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_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_bind2_bucket { possible_net_t ib_net; int l3mdev; unsigned short port; unsigned short family; union { struct in6_addr v6_rcv_saddr; __be32 rcv_saddr; }; struct hlist_node node; struct hlist_head owners; struct hlist_head deathrow; }; 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_pad: 3; 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 hlist_node tw_bind2_node; }; 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_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; 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 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 net_frag_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)(const 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 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 drop_req; u32 txhash; u32 rcv_isn; u32 snt_isn; u32 ts_off; u32 last_oow_ack_time; u32 rcv_nxt; u8 syn_tos; }; struct tcp_md5sig_key; struct tcp_fastopen_cookie; struct tcp_request_sock_ops { u16 mss_clamp; struct tcp_md5sig_key * (*req_md5_lookup)(const struct sock *, const struct sock *); int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *); __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 *); }; union tcp_md5_addr { struct in_addr a4; struct in6_addr a6; }; struct tcp_md5sig_key { struct hlist_node node; u8 keylen; u8 family; u8 prefixlen; u8 flags; union tcp_md5_addr addr; int l3index; u8 key[80]; struct callback_head rcu; }; struct tcp_fastopen_cookie { __le64 val[2]; s8 len; bool exp; }; 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 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_sack_block { u32 start_seq; u32 end_seq; }; struct tcp_sock_af_ops; struct tcp_md5sig_info; struct tcp_fastopen_request; struct tcp_sock { struct inet_connection_sock inet_conn; u16 tcp_header_len; u16 gso_segs; __be32 pred_flags; u64 bytes_received; u32 segs_in; u32 data_segs_in; u32 rcv_nxt; u32 copied_seq; u32 rcv_wup; u32 snd_nxt; u32 segs_out; u32 data_segs_out; u64 bytes_sent; u64 bytes_acked; u32 dsack_dups; u32 snd_una; u32 snd_sml; u32 rcv_tstamp; u32 lsndtime; u32 last_oow_ack_time; u32 compressed_ack_rcv_nxt; u32 tsoffset; struct list_head tsq_node; struct list_head tsorted_sent_queue; u32 snd_wl1; u32 snd_wnd; u32 max_window; u32 mss_cache; u32 window_clamp; u32 rcv_ssthresh; struct tcp_rack rack; u16 advmss; u8 compressed_ack; u8 dup_ack_counter: 2; u8 tlp_retrans: 1; u8 unused: 5; u32 chrono_start; u32 chrono_stat[3]; u8 chrono_type: 2; u8 rate_app_limited: 1; u8 fastopen_connect: 1; u8 fastopen_no_cookie: 1; u8 is_sack_reneg: 1; u8 fastopen_client_fail: 2; u8 nonagle: 4; u8 thin_lto: 1; u8 recvmsg_inq: 1; u8 repair: 1; 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 is_cwnd_limited: 1; u32 tlp_high_seq; u32 tcp_tx_delay; u64 tcp_wstamp_ns; u64 tcp_clock_cache; u64 tcp_mstamp; u32 srtt_us; u32 mdev_us; u32 mdev_max_us; u32 rttvar_us; u32 rtt_seq; struct minmax rtt_min; u32 packets_out; u32 retrans_out; u32 max_packets_out; u32 cwnd_usage_seq; u16 urg_data; u8 ecn_flags; u8 keepalive_probes; u32 reordering; u32 reord_seen; u32 snd_up; struct tcp_options_received rx_opt; u32 snd_ssthresh; u32 snd_cwnd; u32 snd_cwnd_cnt; u32 snd_cwnd_clamp; u32 snd_cwnd_used; u32 snd_cwnd_stamp; u32 prior_cwnd; u32 prr_delivered; u32 prr_out; u32 delivered; u32 delivered_ce; u32 lost; u32 app_limited; u64 first_tx_mstamp; u64 delivered_mstamp; u32 rate_delivered; u32 rate_interval_us; u32 rcv_wnd; u32 write_seq; u32 notsent_lowat; u32 pushed_seq; u32 lost_out; u32 sacked_out; struct hrtimer pacing_timer; struct hrtimer compressed_ack_timer; struct sk_buff *lost_skb_hint; struct sk_buff *retransmit_skb_hint; struct rb_root out_of_order_queue; 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]; struct sk_buff *highest_sack; 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 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; u32 rcv_rtt_last_tsecr; struct { u32 rtt_us; u32 seq; u64 time; } rcv_rtt_est; struct { u32 space; u32 seq; u64 time; } rcvq_space; struct { u32 probe_seq_start; u32 probe_seq_end; } mtu_probe; u32 plb_rehash; u32 mtu_info; bool is_mptcp; const struct tcp_sock_af_ops *af_specific; struct tcp_md5sig_info __attribute__((btf_type_tag("rcu"))) *md5sig_info; struct tcp_fastopen_request *fastopen_req; struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; struct saved_syn *saved_syn; }; struct tcp_sock_af_ops { struct tcp_md5sig_key * (*md5_lookup)(const struct sock *, const struct sock *); int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *); int (*md5_parse)(struct sock *, int, sockptr_t, int); }; struct tcp_md5sig_info { struct hlist_head head; struct callback_head rcu; }; struct tcp_fastopen_request { struct tcp_fastopen_cookie cookie; struct msghdr *data; size_t size; int copied; struct ubuf_info *uarg; }; enum nexthop_event_type { NEXTHOP_EVENT_DEL = 0, NEXTHOP_EVENT_REPLACE = 1, NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; 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 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, }; 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 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 { 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_MAX = 14, }; 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_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, }; 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, }; 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_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_single_info { struct net_device *dev; u8 gw_family; union { __be32 ipv4; struct in6_addr ipv6; }; u8 is_reject: 1; u8 is_fdb: 1; u8 has_encap: 1; }; struct nh_notifier_grp_entry_info { u8 weight; u32 id; struct nh_notifier_single_info nh; }; struct nh_notifier_grp_info { u16 num_nh; bool is_fdb; struct nh_notifier_grp_entry_info nh_entries[0]; }; struct nh_notifier_res_table_info { u16 num_nh_buckets; 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; }; 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 nl_info { struct nlmsghdr *nlh; struct net *nl_net; u32 portid; u8 skip_notify: 1; u8 skip_notify_kernel: 1; }; 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; 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; }; typedef u8 dscp_t; 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 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; }; struct nh_dump_filter { u32 nh_id; int dev_idx; int master_idx; bool group_filter; bool fdb_filter; u32 res_bucket_nh_id; }; struct rtm_dump_nh_ctx { u32 idx; }; struct rtm_dump_res_bucket_ctx { struct rtm_dump_nh_ctx nh; u16 bucket_index; u32 done_nh_idx; }; struct rtm_dump_nexthop_bucket_data { struct rtm_dump_res_bucket_ctx *ctx; struct nh_dump_filter filter; }; typedef __kernel_clock_t clock_t; struct netdev_notifier_info_ext { struct netdev_notifier_info info; union { u32 mtu; } ext; }; enum { XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, XFRM_DEV_OFFLOAD_CRYPTO = 1, XFRM_DEV_OFFLOAD_PACKET = 2, }; 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 { 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 { XFRM_STATE_VOID = 0, XFRM_STATE_ACQ = 1, XFRM_STATE_VALID = 2, XFRM_STATE_ERROR = 3, XFRM_STATE_EXPIRED = 4, XFRM_STATE_DEAD = 5, }; enum { XFRM_MODE_FLAG_TUNNEL = 1, }; 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, }; 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 { INET_ECN_NOT_ECT = 0, INET_ECN_ECT_1 = 1, INET_ECN_ECT_0 = 2, INET_ECN_CE = 3, INET_ECN_MASK = 3, }; enum skb_ext_id { SKB_EXT_SEC_PATH = 0, SKB_EXT_MPTCP = 1, SKB_EXT_NUM = 2, }; 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; }; typedef struct bio_vec 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; struct skb_shared_hwtstamps hwtstamps; unsigned int gso_type; u32 tskey; atomic_t dataref; unsigned int xdp_frags_size; void *destructor_arg; skb_frag_t frags[17]; }; struct ip_tunnel; struct ip6_tnl; struct xfrm_tunnel_skb_cb { union { struct inet_skb_parm h4; struct inet6_skb_parm h6; } header; union { struct ip_tunnel *ip4; struct ip6_tnl *ip6; } tunnel; }; struct xfrm_mode_skb_cb { struct xfrm_tunnel_skb_cb header; __be16 id; __be16 frag_off; u8 ihl; u8 tos; u8 ttl; u8 protocol; u8 optlen; u8 flow_lbl[3]; }; 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 xfrm_dst { union { struct dst_entry dst; struct rtable rt; struct rt6_info rt6; } u; struct dst_entry *route; struct dst_entry *child; struct dst_entry *path; struct xfrm_policy *pols[2]; int num_pols; int num_xfrms; u32 xfrm_genid; u32 policy_genid; u32 route_mtu_cached; u32 child_mtu_cached; u32 route_cookie; u32 path_cookie; }; struct ip_beet_phdr { __u8 nexthdr; __u8 hdrlen; __u8 padlen; __u8 reserved; }; struct xfrm_offload { struct { __u32 low; __u32 hi; } seq; __u32 flags; __u32 status; __u8 proto; __u8 inner_ipproto; }; struct sec_path { int len; int olen; struct xfrm_state *xvec[6]; struct xfrm_offload ovec[1]; }; struct xfrm_state_afinfo { u8 family; u8 proto; const struct xfrm_type_offload *type_offload_esp; const struct xfrm_type *type_esp; const struct xfrm_type *type_ipip; const struct xfrm_type *type_ipip6; const struct xfrm_type *type_comp; const struct xfrm_type *type_ah; const struct xfrm_type *type_routing; const struct xfrm_type *type_dstopts; int (*output)(struct net *, struct sock *, struct sk_buff *); int (*transport_finish)(struct sk_buff *, int); void (*local_error)(struct sk_buff *, u32); }; struct static_key_false_deferred { struct static_key_false key; unsigned long timeout; struct delayed_work work; }; struct raw_hashinfo { spinlock_t lock; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct hlist_nulls_head ht[256]; }; 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 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 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 net_proto_family { int family; int (*create)(struct net *, struct socket *, int, int); struct module *owner; }; enum tpacket_versions { TPACKET_V1 = 0, TPACKET_V2 = 1, TPACKET_V3 = 2, }; 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 { 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 tk_offsets { TK_OFFS_REAL = 0, TK_OFFS_BOOT = 1, TK_OFFS_TAI = 2, TK_OFFS_MAX = 3, }; 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, }; enum nf_dev_hooks { NF_NETDEV_INGRESS = 0, NF_NETDEV_EGRESS = 1, NF_NETDEV_NUMHOOKS = 2, }; 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 { SKBFL_ZEROCOPY_ENABLE = 1, SKBFL_SHARED_FRAG = 2, SKBFL_PURE_ZEROCOPY = 4, SKBFL_DONT_ORPHAN = 8, SKBFL_MANAGED_FRAG_REFS = 16, }; 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, }; 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_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 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 int running; unsigned int auxdata: 1; unsigned int origdev: 1; unsigned int has_vnet_hdr: 1; unsigned int tp_loss: 1; unsigned int tp_tx_has_off: 1; int pressure; int ifindex; __be16 num; struct packet_rollover *rollover; struct packet_mclist *mclist; atomic_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; int (*xmit)(struct sk_buff *); struct packet_type prot_hook; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; atomic_t tp_drops; long: 32; 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 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 { __u8 flags; __u8 gso_type; __virtio16 hdr_len; __virtio16 gso_size; __virtio16 csum_start; __virtio16 csum_offset; }; 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 sock_fprog { unsigned short len; struct sock_filter __attribute__((btf_type_tag("user"))) *filter; }; typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); 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_keys_basic { struct flow_dissector_key_control control; struct flow_dissector_key_basic basic; }; struct flow_dissector { unsigned int used_keys; unsigned short offset[31]; }; struct vlan_hdr { __be16 h_vlan_TCI; __be16 h_vlan_encapsulated_proto; }; 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 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; }; 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_RADIOTAP_NAMESPACE = 29, IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, IEEE80211_RADIOTAP_EXT = 31, }; struct ieee80211_radiotap_header; struct ieee80211_radiotap_vendor_namespaces; 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_header { uint8_t it_version; uint8_t it_pad; __le16 it_len; __le32 it_present; __le32 it_optional[0]; }; struct ieee80211_radiotap_vendor_namespaces { const struct ieee80211_radiotap_namespace *ns; int n_ns; }; 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; }; 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 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; struct mutex mtx; bool use_4addr; bool is_running; bool registered; bool registering; 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 cfg80211_cqm_config *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; char: 8; } 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 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 rfkill; 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[8]; 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; long: 32; long: 64; long: 64; 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 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; }; enum nl80211_bss_scan_width { NL80211_BSS_CHAN_WIDTH_20 = 0, NL80211_BSS_CHAN_WIDTH_10 = 1, NL80211_BSS_CHAN_WIDTH_5 = 2, NL80211_BSS_CHAN_WIDTH_1 = 3, NL80211_BSS_CHAN_WIDTH_2 = 4, }; 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; enum nl80211_bss_scan_width scan_width; 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; s32 per_band_rssi_thold[6]; }; 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; }; 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; char: 8; } __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 { u8 rx_tx_mcs7_max_nss; u8 rx_tx_mcs9_max_nss; u8 rx_tx_mcs11_max_nss; u8 rx_tx_mcs13_max_nss; }; struct ieee80211_eht_mcs_nss_supp_bw { u8 rx_tx_mcs9_max_nss; u8 rx_tx_mcs11_max_nss; u8 rx_tx_mcs13_max_nss; }; 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; }; 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_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_cqm_config { u32 rssi_hyst; s32 last_rssi_event_value; int n_rssi_thresholds; s32 rssi_thresholds[0]; }; struct cfg80211_bss_ies; struct cfg80211_bss { struct ieee80211_channel *channel; enum nl80211_bss_scan_width scan_width; 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 bssid_index; u8 max_bssid_indicator; int: 24; u8 priv[0]; }; 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; }; struct cfg80211_bss_ies { u64 tsf; struct callback_head callback_head; int len; bool from_beacon; u8 data[0]; }; 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 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_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 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_tx_power_setting { NL80211_TX_POWER_AUTOMATIC = 0, NL80211_TX_POWER_LIMITED = 1, NL80211_TX_POWER_FIXED = 2, }; 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, }; 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_MESH_AUTH = 1024, WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = 2048, 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, }; 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 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_AFTER_LAST = 153, NL80211_CMD_MAX = 152, }; enum ieee80211_privacy { IEEE80211_PRIVACY_ON = 0, IEEE80211_PRIVACY_OFF = 1, IEEE80211_PRIVACY_ANY = 2, }; enum bss_compare_mode { BSS_CMP_REGULAR = 0, BSS_CMP_HIDE_ZLEN = 1, BSS_CMP_HIDE_NUL = 2, }; enum cfg80211_bss_frame_type { CFG80211_BSS_FTYPE_UNKNOWN = 0, CFG80211_BSS_FTYPE_BEACON = 1, CFG80211_BSS_FTYPE_PRESP = 2, }; 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, }; enum ieee80211_channel_flags { IEEE80211_CHAN_DISABLED = 1, IEEE80211_CHAN_NO_IR = 2, 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, }; struct rfkill_ops { void (*poll)(struct rfkill *, void *); void (*query)(struct rfkill *, void *); int (*set_block)(void *, bool); }; struct cfg80211_ops; struct cfg80211_scan_request; 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 work_struct 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 work_struct 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; long: 32; long: 64; long: 64; long: 64; struct wiphy wiphy; }; struct vif_params; struct cfg80211_ap_settings; struct cfg80211_beacon_data; 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 cfg80211_bitrate_mask; 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_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_beacon_data *); 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 *); 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 *, 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 *); }; struct vif_params { u32 flags; int use_4addr; u8 macaddr[6]; const u8 *vht_mumimo_groups; const u8 *vht_mumimo_follow_addr; }; struct cfg80211_he_bss_color { u8 color; bool enabled; bool partial; }; struct cfg80211_mbssid_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; 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_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_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_fils_discovery { u32 min_interval; u32 max_interval; size_t tmpl_len; const u8 *tmpl; }; struct cfg80211_unsol_bcast_probe_resp { 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; u16 punct_bitmap; }; struct cfg80211_mbssid_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; __le32 basic_mcs_nss; u8 optional[0]; } __attribute__((packed)); 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; }; struct rate_info { u8 flags; u8 mcs; u16 legacy; 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; char: 8; 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_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; enum nl80211_bss_scan_width scan_width; 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; 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; }; 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; }; 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; int: 24; 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; int: 32; 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; short: 16; struct cfg80211_assoc_link links[15]; const u8 *ap_mld_addr; s8 link_id; long: 56; } __attribute__((packed)); 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; int: 32; const u8 *ie; size_t ie_len; bool privacy; int: 24; enum nl80211_mfp mfp; struct cfg80211_crypto_settings crypto; const u8 *key; u8 key_len; u8 key_idx; short: 16; 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; int: 24; 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; long: 48; const u8 *fils_erp_rrk; size_t fils_erp_rrk_len; bool want_1x; int: 24; struct ieee80211_edmg edmg; int: 32; } __attribute__((packed)); 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: 24; int mcast_rate[6]; struct ieee80211_ht_cap ht_capa; struct ieee80211_ht_cap ht_capa_mask; int: 32; struct key_params *wep_keys; int wep_tx_key; int: 32; } __attribute__((packed)); 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; u16 punct_bitmap; }; 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 element { u8 id; u8 datalen; u8 data[0]; }; 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; }; struct ieee80211_neighbor_ap_info { u8 tbtt_info_hdr; u8 tbtt_info_len; u8 op_class; u8 channel; }; struct ieee80211_he_6ghz_oper { u8 primary; u8 control; u8 ccfs0; u8 ccfs1; u8 minrate; }; struct cfg80211_inform_bss { struct ieee80211_channel *chan; enum nl80211_bss_scan_width scan_width; s32 signal; u64 boottime_ns; u64 parent_tsf; u8 parent_bssid[6]; u8 chains; s8 chain_signal[4]; }; 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; } u; } __attribute__((packed)) action; struct { struct { } __empty_body; u8 body[0]; }; } u; } __attribute__((packed)); 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; } __attribute__((packed)); struct ieee80211_s1g_bcn_compat_ie { __le16 compat_info; __le16 beacon_int; __le32 tsf_completion; }; struct cfg80211_non_tx_bss { struct cfg80211_bss *tx_bss; u8 max_bssid_indicator; u8 bssid_index; }; struct ieee80211_s1g_oper_ie { u8 ch_width; u8 oper_class; u8 primary_ch; u8 oper_ch; __le16 basic_mcs_nss; }; struct ieee80211_ht_operation { u8 primary_chan; u8 ht_param; __le16 operation_mode; __le16 stbc_param; u8 basic_set[16]; }; 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, }; struct rhash_lock_head {}; 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 set_key_cmd { SET_KEY = 0, DISABLE_KEY = 1, }; 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, }; 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_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 work_struct monitor_work; struct work_struct beacon_connection_loss_work; struct work_struct 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; int: 20; struct ieee80211_mgd_auth_data *auth_data; struct ieee80211_mgd_assoc_data *assoc_data; bool powersave; bool broken_ap; short: 16; unsigned int flags; 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: 24; 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]; int: 32; struct 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; int: 24; struct ieee80211_sta_tx_tspec tx_tspec[4]; struct delayed_work tx_tspec_wk; u8 *assoc_req_ies; size_t assoc_req_ies_len; } __attribute__((packed)); 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]; }; typedef u32 ieee80211_conn_flags_t; 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: 40; size_t elems_len; u8 *elems; ieee80211_conn_flags_t conn_flags; u16 status; short: 16; } __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 s1g; 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 work_struct 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; char: 8; u8 bssid[6]; u8 ssid[32]; u8 ssid_len; u8 ie_len; long: 48; 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; int: 32; } __attribute__((packed)); 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 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_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; 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; u32 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 ieee80211_sub_if_data; struct ieee80211_rx_status; 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; ieee80211_conn_flags_t conn_flags; 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 timer_list chswitch_timer; struct work_struct chswitch_work; struct work_struct request_smps_work; 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; struct cfg80211_bss *bss; }; 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_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_key; struct ieee80211_chanctx; struct ieee80211_bss_conf; 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 work_struct csa_finalize_work; bool csa_block_tx; bool operating_11g_mode; struct cfg80211_chan_def csa_chandef; struct work_struct color_change_finalize_work; struct delayed_work color_collision_detect_work; u64 color_bitmap; struct ieee80211_chanctx *reserved_chanctx; struct cfg80211_chan_def reserved_chandef; 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 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_vif_cfg { bool assoc; bool ibss_joined; bool ibss_creator; bool ps; u16 aid; __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_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]; } __attribute__((packed)); struct ieee80211_fils_discovery { u32 min_interval; u32 max_interval; }; struct ieee80211_tx_pwr_env { u8 tx_power_info; s8 tx_power[8]; }; struct ieee80211_ftm_responder_params; struct ieee80211_chanctx_conf; struct ieee80211_bss_conf { 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 cfg80211_chan_def chandef; 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; u16 eht_puncturing; bool csa_active; u16 csa_punct_bitmap; bool mu_mimo_owner; struct ieee80211_chanctx_conf __attribute__((btf_type_tag("rcu"))) *chanctx_conf; bool color_change_active; u8 color_change_color; 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; }; 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; 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 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 delayed_work dec_tailroom_needed_wk; struct net_device *dev; struct ieee80211_local *local; unsigned int flags; unsigned long state; 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 work_struct recalc_smps; struct work_struct 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 work_struct activate_links_work; u16 desired_active_links; struct ieee80211_vif vif; }; 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 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 rhltable { struct rhashtable ht; }; struct arc4_ctx { u32 S[256]; u32 x; u32 y; }; enum mac80211_scan_state { SCAN_DECISION = 0, SCAN_SET_CHANNEL = 1, SCAN_SEND_PROBE = 2, SCAN_SUSPEND = 3, SCAN_RESUME = 4, SCAN_ABORT = 5, }; struct led_classdev; struct led_hw_trigger_type; struct led_trigger { const char *name; int (*activate)(struct led_classdev *); void (*deactivate)(struct led_classdev *); struct led_hw_trigger_type *trigger_type; spinlock_t leddev_list_lock; struct list_head led_cdevs; struct list_head next_trig; const struct attribute_group **groups; }; struct codel_vars; struct ieee80211_ops; struct rate_control_ref; struct ieee80211_scan_request; struct tpt_led_trigger; 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]; 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; bool use_chanctx; spinlock_t filter_lock; struct work_struct 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 wowlan; struct work_struct 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; struct mutex sta_mtx; 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; struct mutex key_mtx; struct mutex 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 work_struct 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 delayed_work scan_work; struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata; struct cfg80211_chan_def _oper_chandef; struct ieee80211_channel *tmp_channel; struct list_head chanctx_list; struct mutex chanctx_mtx; struct led_trigger tx_led; struct led_trigger rx_led; struct led_trigger assoc_led; struct led_trigger radio_led; struct led_trigger tpt_led; atomic_t tx_led_active; atomic_t rx_led_active; atomic_t assoc_led_active; atomic_t radio_led_active; atomic_t tpt_led_active; struct tpt_led_trigger *tpt_led_trigger; int total_ps_buffered; bool pspolling; struct ieee80211_sub_if_data *ps_sdata; struct work_struct dynamic_ps_enable_work; struct work_struct 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; enum ieee80211_smps_mode smps_mode; struct work_struct restart_work; struct delayed_work roc_work; struct list_head roc_list; struct work_struct hw_roc_start; struct work_struct 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 cfg80211_chan_def monitor_chandef; u8 ext_capa[8]; }; 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 ieee80211_tx_control; struct ieee80211_sta; struct ieee80211_key_conf; struct ieee80211_scan_ies; struct ieee80211_low_level_stats; struct ieee80211_key_seq; struct ieee80211_ampdu_params; struct ieee80211_channel_switch; 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 (*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 *); 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 *); void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *); 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 *); 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); }; struct ieee80211_tx_control { struct ieee80211_sta *sta; }; 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; char: 8; enum ieee80211_smps_mode smps_mode; u32 supp_rates[6]; struct ieee80211_sta_ht_cap ht_cap; short: 16; 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; char: 8; enum ieee80211_sta_rx_bandwidth bandwidth; struct ieee80211_sta_txpwr txpwr; int: 32; } __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; u8 max_amsdu_subframes; struct ieee80211_sta_aggregates *cur; bool support_p2p_ps; struct ieee80211_txq *txq[17]; u16 valid_links; 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 ieee80211_txq { struct ieee80211_vif *vif; struct ieee80211_sta *sta; u8 tid; u8 ac; long: 48; u8 drv_priv[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; u8 rx_chains_static; u8 rx_chains_dynamic; bool radar_enabled; long: 40; u8 drv_priv[0]; }; 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 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_low_level_stats { unsigned int dot11ACKFailureCount; unsigned int dot11RTSFailureCount; unsigned int dot11FCSErrorCount; unsigned int dot11RTSSuccessCount; }; 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_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_channel_switch { u64 timestamp; u32 device_timestamp; bool block_tx; struct cfg80211_chan_def chandef; u8 count; u32 delay; }; 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; }; 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]; }; enum led_brightness { LED_OFF = 0, LED_ON = 1, LED_HALF = 127, LED_FULL = 255, }; struct led_pattern; struct led_classdev { const char *name; unsigned int brightness; unsigned int max_brightness; int flags; unsigned long work_flags; void (*brightness_set)(struct led_classdev *, enum led_brightness); int (*brightness_set_blocking)(struct led_classdev *, enum led_brightness); enum led_brightness (*brightness_get)(struct led_classdev *); int (*blink_set)(struct led_classdev *, unsigned long *, unsigned long *); int (*pattern_set)(struct led_classdev *, struct led_pattern *, u32, int); int (*pattern_clear)(struct led_classdev *); struct device *dev; const struct attribute_group **groups; struct list_head node; const char *default_trigger; unsigned long blink_delay_on; unsigned long blink_delay_off; struct timer_list blink_timer; int blink_brightness; int new_blink_brightness; void (*flash_resume)(struct led_classdev *); struct work_struct set_brightness_work; int delayed_set_value; struct rw_semaphore trigger_lock; struct led_trigger *trigger; struct list_head trig_list; void *trigger_data; bool activated; struct led_hw_trigger_type *trigger_type; struct mutex led_access; }; struct led_pattern { u32 delta_t; int brightness; }; struct led_hw_trigger_type { int dummy; }; struct ieee80211_tpt_blink; struct tpt_led_trigger { char name[32]; const struct ieee80211_tpt_blink *blink_table; unsigned int blink_table_len; struct timer_list timer; struct ieee80211_local *local; unsigned long prev_traffic; unsigned long tx_bytes; unsigned long rx_bytes; unsigned int active; unsigned int want; bool running; }; struct ieee80211_tpt_blink { int throughput; int blink_time; }; enum ieee80211_internal_tkip_state { TKIP_STATE_NOT_INIT = 0, TKIP_STATE_PHASE1_DONE = 1, TKIP_STATE_PHASE1_HW_UPLOADED = 2, }; 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 crypto_aead; 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; u32 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 mutex mtx; 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 work_struct 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; 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; char: 8; 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 crypto_aead { unsigned int authsize; unsigned int reqsize; struct crypto_tfm base; }; struct rtattr { unsigned short rta_len; unsigned short rta_type; }; 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_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 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; }; struct mesh_csa_settings { struct callback_head callback_head; struct cfg80211_csa_settings settings; }; 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, }; enum ieee80211_internal_key_flags { KEY_FLAG_UPLOADED_TO_HARDWARE = 1, KEY_FLAG_TAINTED = 2, }; 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 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, NUM_IEEE80211_HW_FLAGS = 54, }; 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_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_agg_stop_reason { AGG_STOP_DECLINED = 0, AGG_STOP_LOCAL_REQUEST = 1, AGG_STOP_PEER_REQUEST = 2, AGG_STOP_DESTROY_STA = 3, }; 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, NUM_NL80211_EXT_FEATURES = 64, MAX_NL80211_EXT_FEATURES = 63, }; enum ieee80211_sdata_state_bits { SDATA_STATE_RUNNING = 0, SDATA_STATE_OFFCHANNEL = 1, SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2, }; struct errormap { char *name; int val; int namelen; struct hlist_node list; }; struct __una_u32 { u32 x; }; enum p9_msg_t { P9_TLERROR = 6, P9_RLERROR = 7, P9_TSTATFS = 8, P9_RSTATFS = 9, P9_TLOPEN = 12, P9_RLOPEN = 13, P9_TLCREATE = 14, P9_RLCREATE = 15, P9_TSYMLINK = 16, P9_RSYMLINK = 17, P9_TMKNOD = 18, P9_RMKNOD = 19, P9_TRENAME = 20, P9_RRENAME = 21, P9_TREADLINK = 22, P9_RREADLINK = 23, P9_TGETATTR = 24, P9_RGETATTR = 25, P9_TSETATTR = 26, P9_RSETATTR = 27, P9_TXATTRWALK = 30, P9_RXATTRWALK = 31, P9_TXATTRCREATE = 32, P9_RXATTRCREATE = 33, P9_TREADDIR = 40, P9_RREADDIR = 41, P9_TFSYNC = 50, P9_RFSYNC = 51, P9_TLOCK = 52, P9_RLOCK = 53, P9_TGETLOCK = 54, P9_RGETLOCK = 55, P9_TLINK = 70, P9_RLINK = 71, P9_TMKDIR = 72, P9_RMKDIR = 73, P9_TRENAMEAT = 74, P9_RRENAMEAT = 75, P9_TUNLINKAT = 76, P9_RUNLINKAT = 77, P9_TVERSION = 100, P9_RVERSION = 101, P9_TAUTH = 102, P9_RAUTH = 103, P9_TATTACH = 104, P9_RATTACH = 105, P9_TERROR = 106, P9_RERROR = 107, P9_TFLUSH = 108, P9_RFLUSH = 109, P9_TWALK = 110, P9_RWALK = 111, P9_TOPEN = 112, P9_ROPEN = 113, P9_TCREATE = 114, P9_RCREATE = 115, P9_TREAD = 116, P9_RREAD = 117, P9_TWRITE = 118, P9_RWRITE = 119, P9_TCLUNK = 120, P9_RCLUNK = 121, P9_TREMOVE = 122, P9_RREMOVE = 123, P9_TSTAT = 124, P9_RSTAT = 125, P9_TWSTAT = 126, P9_RWSTAT = 127, }; enum p9_proto_versions { p9_proto_legacy = 0, p9_proto_2000u = 1, p9_proto_2000L = 2, }; struct p9_fcall { u32 size; u8 id; u16 tag; size_t offset; size_t capacity; struct kmem_cache *cache; u8 *sdata; bool zc; }; struct p9_stat_dotl { u64 st_result_mask; struct p9_qid qid; u32 st_mode; kuid_t st_uid; kgid_t st_gid; u64 st_nlink; u64 st_rdev; u64 st_size; u64 st_blksize; u64 st_blocks; u64 st_atime_sec; u64 st_atime_nsec; u64 st_mtime_sec; u64 st_mtime_nsec; u64 st_ctime_sec; u64 st_ctime_nsec; u64 st_btime_sec; u64 st_btime_nsec; u64 st_gen; u64 st_data_version; }; typedef s64 int64_t; typedef s8 int8_t; typedef s16 int16_t; struct p9_iattr_dotl { u32 valid; u32 mode; kuid_t uid; kgid_t gid; u64 size; u64 atime_sec; u64 atime_nsec; u64 mtime_sec; u64 mtime_nsec; }; 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 p9_req_t; struct p9_trans_module { struct list_head list; char *name; int maxsize; bool pooled_rbuffers; int def; struct module *owner; int (*create)(struct p9_client *, const char *, char *); void (*close)(struct p9_client *); int (*request)(struct p9_client *, struct p9_req_t *); int (*cancel)(struct p9_client *, struct p9_req_t *); int (*cancelled)(struct p9_client *, struct p9_req_t *); int (*zc_request)(struct p9_client *, struct p9_req_t *, struct iov_iter *, struct iov_iter *, int, int, int); int (*show_options)(struct seq_file *, struct p9_client *); }; struct p9_req_t { int status; int t_err; refcount_t refcount; wait_queue_head_t wq; struct p9_fcall tc; struct p9_fcall rc; struct list_head req_list; }; enum p9_req_status_t { REQ_STATUS_ALLOC = 0, REQ_STATUS_UNSENT = 1, REQ_STATUS_SENT = 2, REQ_STATUS_RCVD = 3, REQ_STATUS_FLSHD = 4, REQ_STATUS_ERROR = 5, }; enum iter_type { ITER_IOVEC = 0, ITER_KVEC = 1, ITER_BVEC = 2, ITER_PIPE = 3, ITER_XARRAY = 4, ITER_DISCARD = 5, ITER_UBUF = 6, }; struct virtio_chan { bool inuse; spinlock_t lock; struct p9_client *client; struct virtio_device *vdev; struct virtqueue *vq; int ring_bufs_avail; wait_queue_head_t *vc_wq; unsigned long p9_max_pages; struct scatterlist sg[128]; char *tag; struct list_head chan_list; }; 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 { 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, }; enum lockdep_ok { LOCKDEP_STILL_OK = 0, LOCKDEP_NOW_UNRELIABLE = 1, }; struct acpi_device; struct pci_sysdata { int domain; int node; struct acpi_device *companion; void *iommu; void *fwnode; }; 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 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; }; struct sockaddr_in6 { unsigned short sin6_family; __be16 sin6_port; __be32 sin6_flowinfo; struct in6_addr sin6_addr; __u32 sin6_scope_id; }; struct trace_print_flags { unsigned long mask; const char *name; }; 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; }; 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 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; u32 freepages_count; u32 thrashing_count; u32 compact_count; u32 wpcopy_count; }; struct nsset { unsigned int flags; struct nsproxy *nsproxy; struct fs_struct *fs; const struct cred *cred; }; struct ldt_struct { struct desc_struct *entries; unsigned int nr_entries; int slot; }; 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; 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, }; 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; }; 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]; }; typedef struct pglist_data pg_data_t; struct trace_event_data_offsets_initcall_start {}; struct trace_event_data_offsets_initcall_finish {}; typedef struct irq_desc *vector_irq_t[256]; struct io_bitmap { u64 sequence; refcount_t refcnt; unsigned int max; unsigned long bitmap[1024]; }; 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, }; struct cpuid_dep { unsigned int feature; unsigned int depends; }; 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; __u8 x86_coreid_bits; __u8 cu_id; __u32 extended_cpuid_level; int cpuid_level; union { __u32 x86_capability[22]; unsigned long x86_capability_alignment; }; char x86_vendor_id[16]; char x86_model_id[64]; 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_max_cores; u16 apicid; u16 initial_apicid; u16 x86_clflush_size; u16 booted_cores; u16 phys_proc_id; u16 logical_proc_id; u16 cpu_core_id; u16 cpu_die_id; u16 logical_die_id; u16 cpu_index; bool smt_active; u32 microcode; u8 x86_cache_bits; unsigned int initialized: 1; }; 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; }; 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 x86_cpu_id { __u16 vendor; __u16 family; __u16 model; __u16 steppings; __u16 feature; kernel_ulong_t driver_data; }; enum tlb_infos { ENTRIES = 0, NR_INFO = 1, }; 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 reserved[2]; }; struct microcode_intel { struct microcode_header_intel hdr; unsigned int bits[0]; }; struct cpu_signature { unsigned int sig; unsigned int pf; unsigned int rev; }; struct ucode_cpu_info { struct cpu_signature cpu_sig; void *mc; }; 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 sched_domain_attr { int relax_domain_level; }; struct kcore_list { struct list_head list; unsigned long addr; size_t size; int type; }; 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, }; enum memblock_flags { MEMBLOCK_NONE = 0, MEMBLOCK_HOTPLUG = 1, MEMBLOCK_MIRROR = 2, MEMBLOCK_NOMAP = 4, MEMBLOCK_DRIVER_MANAGED = 8, }; enum kcore_type { KCORE_TEXT = 0, KCORE_VMALLOC = 1, KCORE_RAM = 2, KCORE_VMEMMAP = 3, KCORE_USER = 4, }; 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 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 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, }; typedef unsigned long p4dval_t; typedef struct { p4dval_t p4d; } p4d_t; 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_region { phys_addr_t base; phys_addr_t size; enum memblock_flags flags; }; 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 sched_param { int sched_priority; }; enum KTHREAD_BITS { KTHREAD_IS_PER_CPU = 0, KTHREAD_SHOULD_STOP = 1, KTHREAD_SHOULD_PARK = 2, }; 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 { KTW_FREEZABLE = 1, }; enum { TASK_COMM_LEN = 16, }; enum { CSS_NO_REF = 1, CSS_ONLINE = 2, CSS_RELEASED = 4, CSS_VISIBLE = 8, CSS_DYING = 16, }; struct kthread_create_info { 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 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 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; }; typedef int suspend_state_t; struct rcu_cblist { struct callback_head *head; struct callback_head **tail; long len; }; struct klp_object; struct klp_state; struct klp_patch { struct module *mod; struct klp_object *objs; struct klp_state *states; bool replace; struct list_head list; struct kobject kobj; struct list_head obj_list; bool enabled; bool forced; struct work_struct free_work; struct completion finish; }; struct klp_callbacks { int (*pre_patch)(struct klp_object *); void (*post_patch)(struct klp_object *); void (*pre_unpatch)(struct klp_object *); void (*post_unpatch)(struct klp_object *); bool post_unpatch_enabled; }; struct klp_func; struct klp_object { const char *name; struct klp_func *funcs; struct klp_callbacks callbacks; struct kobject kobj; struct list_head func_list; struct list_head node; struct module *mod; bool dynamic; bool patched; }; struct klp_func { const char *old_name; void *new_func; unsigned long old_sympos; void *old_func; struct kobject kobj; struct list_head node; struct list_head stack_node; unsigned long old_size; unsigned long new_size; bool nop; bool patched; bool transition; }; struct klp_state { unsigned long id; unsigned int version; void *data; }; 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, }; enum mod_license { NOT_GPL_ONLY = 0, GPL_ONLY = 1, }; 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 ddebug_class_map; struct _ddebug_info { struct _ddebug *descs; struct ddebug_class_map *classes; unsigned int num_descs; unsigned int num_classes; }; 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; struct _ddebug_info dyndbg; 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 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 modversion_info { unsigned long crc; char name[56]; }; enum tick_device_mode { TICKDEV_MODE_PERIODIC = 0, TICKDEV_MODE_ONESHOT = 1, }; struct clock_event_device; struct tick_device { struct clock_event_device *evtdev; enum tick_device_mode mode; }; 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 tick_broadcast_mode { TICK_BROADCAST_OFF = 0, TICK_BROADCAST_ON = 1, TICK_BROADCAST_FORCE = 2, }; enum tick_broadcast_state { TICK_BROADCAST_EXIT = 0, TICK_BROADCAST_ENTER = 1, }; 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; }; 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 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, }; typedef struct { unsigned long bits[1]; } nodemask_t; 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; }; enum { CGRP_NOTIFY_ON_RELEASE = 0, CGRP_CPUSET_CLONE_CHILDREN = 1, CGRP_FREEZE = 2, CGRP_FROZEN = 3, CGRP_KILL = 4, }; 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 ftrace_page; struct ftrace_rec_iter { struct ftrace_page *pg; int index; }; struct dyn_ftrace; struct ftrace_page { struct ftrace_page *next; struct dyn_ftrace *records; int index; int order; }; struct dyn_arch_ftrace {}; struct dyn_ftrace { unsigned long ip; unsigned long flags; struct dyn_arch_ftrace arch; }; enum ftrace_bug_type { FTRACE_BUG_UNKNOWN = 0, FTRACE_BUG_INIT = 1, FTRACE_BUG_NOP = 2, FTRACE_BUG_CALL = 3, FTRACE_BUG_UPDATE = 4, }; struct ftrace_func_command { struct list_head list; char *name; int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); }; 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, }; 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, }; enum { FTRACE_MODIFY_ENABLE_FL = 1, FTRACE_MODIFY_MAY_SLEEP_FL = 2, }; 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, }; 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, }; 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 { FTRACE_HASH_FL_MOD = 1, }; enum { TRACE_ARRAY_FL_GLOBAL = 1, }; enum { TRACE_PIDS = 1, TRACE_NO_PIDS = 2, }; enum { FTRACE_UPDATE_IGNORE = 0, FTRACE_UPDATE_MAKE_CALL = 1, FTRACE_UPDATE_MODIFY_CALL = 2, FTRACE_UPDATE_MAKE_NOP = 3, }; 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, }; enum { 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_ORDERED_EXPLICIT = 524288, WQ_MAX_ACTIVE = 512, WQ_MAX_UNBOUND_PER_CPU = 4, WQ_DFL_ACTIVE = 256, }; 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_CTX_NMI = 0, TRACE_CTX_IRQ = 1, TRACE_CTX_SOFTIRQ = 2, TRACE_CTX_NORMAL = 3, TRACE_CTX_TRANSITION = 4, }; 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 graph_filter_type { GRAPH_FILTER_NOTRACE = 0, GRAPH_FILTER_FUNCTION = 1, }; struct ftrace_func_mapper { struct ftrace_hash hash; }; struct ftrace_func_entry { struct hlist_node hlist; unsigned long ip; unsigned long direct; }; struct ftrace_func_map { struct ftrace_func_entry entry; void *data; }; struct ftrace_probe_ops; 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_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 *); }; struct ftrace_direct_func { struct list_head next; unsigned long addr; int count; }; 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; }; typedef int (*cmp_func_t)(const void *, const void *); typedef int (*cpu_stop_fn_t)(void *); struct trace_parser { bool cont; char *buffer; unsigned int idx; unsigned int size; }; 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; }; typedef void (*swap_func_t)(void *, void *, int); struct ftrace_glob { char *search; unsigned int len; int type; }; typedef bool (*smp_cond_func_t)(int, void *); 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; }; typedef int (*ftrace_mapper_func)(void *); struct kallsyms_data { unsigned long *addrs; const char **syms; size_t cnt; size_t found; }; 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_CONST_SIZE = 5, ARG_CONST_SIZE_OR_ZERO = 6, ARG_PTR_TO_CTX = 7, ARG_ANYTHING = 8, ARG_PTR_TO_SPIN_LOCK = 9, ARG_PTR_TO_SOCK_COMMON = 10, ARG_PTR_TO_INT = 11, ARG_PTR_TO_LONG = 12, ARG_PTR_TO_SOCKET = 13, ARG_PTR_TO_BTF_ID = 14, ARG_PTR_TO_RINGBUF_MEM = 15, ARG_CONST_ALLOC_SIZE_OR_ZERO = 16, ARG_PTR_TO_BTF_ID_SOCK_COMMON = 17, ARG_PTR_TO_PERCPU_BTF_ID = 18, ARG_PTR_TO_FUNC = 19, ARG_PTR_TO_STACK = 20, ARG_PTR_TO_CONST_STR = 21, ARG_PTR_TO_TIMER = 22, ARG_PTR_TO_KPTR = 23, ARG_PTR_TO_DYNPTR = 24, __BPF_ARG_TYPE_MAX = 25, ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, ARG_PTR_TO_MEM_OR_NULL = 260, ARG_PTR_TO_CTX_OR_NULL = 263, ARG_PTR_TO_SOCKET_OR_NULL = 269, ARG_PTR_TO_STACK_OR_NULL = 276, ARG_PTR_TO_BTF_ID_OR_NULL = 270, 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 *); }; 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, }; 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, }; 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, }; 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); struct bpf_dynptr_kern; typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); struct bpf_dynptr_kern { void *data; u32 size; u32 offset; }; 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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; spinlock_t spinlock; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; atomic_t busy; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; 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; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct bpf_ringbuf_hdr { u32 len; u32 pg_off; }; 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, }; struct perf_event_mmap_page; 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 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 perf_event_header { __u32 type; __u16 misc; __u16 size; }; struct reciprocal_value { u32 m; u8 sh1; u8 sh2; }; 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; struct kmem_cache_node *node[1]; }; typedef struct {} local_lock_t; struct slab; struct kmem_cache_cpu { void **freelist; unsigned long tid; struct slab *slab; struct slab *partial; local_lock_t lock; }; 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; }; }; void *freelist; union { unsigned long counters; struct { unsigned int inuse: 16; unsigned int objects: 15; unsigned int frozen: 1; }; }; }; struct callback_head callback_head; }; unsigned int __unused; atomic_t __page_refcount; }; struct kmem_cache_node { spinlock_t list_lock; unsigned long nr_partial; struct list_head partial; atomic_long_t nr_slabs; atomic_long_t total_objects; struct list_head full; }; 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_rss_stat)(void *, struct mm_struct *, int); struct kmalloc_info_struct { const char *name[3]; unsigned int size; }; enum slab_state { DOWN = 0, PARTIAL = 1, PARTIAL_NODE = 2, UP = 3, FULL = 4, }; 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); long (*proc_compat_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 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, NR_VM_NODE_STAT_ITEMS = 41, }; 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_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; }; 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 slabinfo { unsigned long active_objs; unsigned long num_objs; unsigned long active_slabs; unsigned long num_slabs; unsigned long shared_avail; unsigned int limit; unsigned int batchcount; unsigned int shared; unsigned int objects_per_slab; unsigned int cache_order; }; 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_rss_stat {}; enum fixed_addresses { VSYSCALL_PAGE = 511, FIX_DBGP_BASE = 512, FIX_EARLYCON_MEM_BASE = 513, FIX_OHCI1394_BASE = 514, FIX_APIC_BASE = 515, FIX_IO_APIC_BASE_0 = 516, FIX_IO_APIC_BASE_END = 643, __end_of_permanent_fixed_addresses = 644, FIX_BTMAP_END = 1024, FIX_BTMAP_BEGIN = 1535, __end_of_fixed_addresses = 1536, }; 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 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 { XA_CHECK_SCHED = 4096, }; enum { HUGETLB_SHMFS_INODE = 1, HUGETLB_ANONHUGE_INODE = 2, }; struct shared_policy {}; 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; unsigned long fallocend; struct list_head shrinklist; struct list_head swaplist; struct shared_policy policy; struct simple_xattrs xattrs; atomic_t stop_eviction; struct timespec64 i_crtime; unsigned int fsflags; struct inode vfs_inode; }; struct hugetlbfs_inode_info { struct shared_policy policy; struct inode vfs_inode; unsigned int seals; }; 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]; }; }; typedef unsigned int xa_mark_t; 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; }; struct fid { union { struct { u32 ino; u32 gen; u32 parent_ino; u32 parent_gen; } i32; 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 dentry_d_lock_class { DENTRY_D_LOCK_NORMAL = 0, DENTRY_D_LOCK_NESTED = 1, }; 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_LUSTRE = 151, FILEID_KERNFS = 254, FILEID_INVALID = 255, }; enum fsnotify_data_type { FSNOTIFY_EVENT_NONE = 0, FSNOTIFY_EVENT_PATH = 1, FSNOTIFY_EVENT_INODE = 2, FSNOTIFY_EVENT_DENTRY = 3, FSNOTIFY_EVENT_ERROR = 4, }; struct simple_transaction_argresp { ssize_t size; char data[0]; }; struct pseudo_fs_context { const struct super_operations *ops; const struct xattr_handler **xattr; const struct dentry_operations *dops; unsigned long magic; }; struct tree_descr { const char *name; const struct file_operations *ops; int mode; }; 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 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, }; 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, }; enum { QUOTA_NL_C_UNSPEC = 0, QUOTA_NL_C_WARNING = 1, __QUOTA_NL_C_MAX = 2, }; enum { QUOTA_NL_A_UNSPEC = 0, QUOTA_NL_A_QTYPE = 1, QUOTA_NL_A_EXCESS_ID = 2, QUOTA_NL_A_WARNING = 3, QUOTA_NL_A_DEV_MAJOR = 4, QUOTA_NL_A_DEV_MINOR = 5, QUOTA_NL_A_CAUSED_ID = 6, QUOTA_NL_A_PAD = 7, __QUOTA_NL_A_MAX = 8, }; 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, }; 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 *); }; struct kernfs_fs_context { struct kernfs_root *root; void *ns_tag; unsigned long magic; bool new_sb_created; }; 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, }; typedef unsigned int ext4_group_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 list_head i_prealloc_list; spinlock_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; qsize_t i_reserved_quota; 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; struct dquot *i_dquot[3]; __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 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 pnfs_layout_range { u32 iomode; u64 offset; u64 length; }; struct pnfs_layout_segment { struct list_head pls_list; struct list_head pls_lc_list; struct list_head pls_commits; struct pnfs_layout_range pls_range; refcount_t pls_refcount; u32 pls_seq; unsigned long pls_flags; struct pnfs_layout_hdr *pls_layout; }; struct nfs_io_completion { void (*complete)(void *); void *data; struct kref refcount; }; enum positive_aop_returns { AOP_WRITEPAGE_ACTIVATE = 524288, AOP_TRUNCATED_PAGE = 524289, }; enum nfs_stat_eventcounters { NFSIOS_INODEREVALIDATE = 0, NFSIOS_DENTRYREVALIDATE = 1, NFSIOS_DATAINVALIDATE = 2, NFSIOS_ATTRINVALIDATE = 3, NFSIOS_VFSOPEN = 4, NFSIOS_VFSLOOKUP = 5, NFSIOS_VFSACCESS = 6, NFSIOS_VFSUPDATEPAGE = 7, NFSIOS_VFSREADPAGE = 8, NFSIOS_VFSREADPAGES = 9, NFSIOS_VFSWRITEPAGE = 10, NFSIOS_VFSWRITEPAGES = 11, NFSIOS_VFSGETDENTS = 12, NFSIOS_VFSSETATTR = 13, NFSIOS_VFSFLUSH = 14, NFSIOS_VFSFSYNC = 15, NFSIOS_VFSLOCK = 16, NFSIOS_VFSRELEASE = 17, NFSIOS_CONGESTIONWAIT = 18, NFSIOS_SETATTRTRUNC = 19, NFSIOS_EXTENDWRITE = 20, NFSIOS_SILLYRENAME = 21, NFSIOS_SHORTREAD = 22, NFSIOS_SHORTWRITE = 23, NFSIOS_DELAY = 24, NFSIOS_PNFS_READ = 25, NFSIOS_PNFS_WRITE = 26, __NFSIOS_COUNTSMAX = 27, }; enum { PG_BUSY = 0, PG_MAPPED = 1, PG_FOLIO = 2, PG_CLEAN = 3, PG_COMMIT_TO_DS = 4, PG_INODE_REF = 5, PG_HEADLOCK = 6, PG_TEARDOWN = 7, PG_UNLOCKPAGE = 8, PG_UPTODATE = 9, PG_WB_END = 10, PG_REMOVE = 11, PG_CONTENDED1 = 12, PG_CONTENDED2 = 13, }; enum pnfs_try_status { PNFS_ATTEMPTED = 0, PNFS_NOT_ATTEMPTED = 1, PNFS_TRY_AGAIN = 2, }; enum nfs_stat_bytecounters { NFSIOS_NORMALREADBYTES = 0, NFSIOS_NORMALWRITTENBYTES = 1, NFSIOS_DIRECTREADBYTES = 2, NFSIOS_DIRECTWRITTENBYTES = 3, NFSIOS_SERVERREADBYTES = 4, NFSIOS_SERVERWRITTENBYTES = 5, NFSIOS_READPAGES = 6, NFSIOS_WRITEPAGES = 7, __NFSIOS_BYTESMAX = 8, }; enum wb_stat_item { WB_RECLAIMABLE = 0, WB_WRITEBACK = 1, WB_DIRTIED = 2, WB_WRITTEN = 3, NR_WB_STAT_ITEMS = 4, }; enum { NFS_IOHDR_ERROR = 0, NFS_IOHDR_EOF = 1, NFS_IOHDR_REDO = 2, NFS_IOHDR_STAT = 3, NFS_IOHDR_RESEND_PNFS = 4, NFS_IOHDR_RESEND_MDS = 5, NFS_IOHDR_UNSTABLE_WRITES = 6, }; struct nfs_pgio_mirror { struct list_head pg_list; unsigned long pg_bytes_written; size_t pg_count; size_t pg_bsize; unsigned int pg_base; unsigned char pg_recoalesce: 1; }; struct nfs_pageio_ops; struct nfs_pageio_descriptor { struct inode *pg_inode; const struct nfs_pageio_ops *pg_ops; const struct nfs_rw_ops *pg_rw_ops; int pg_ioflags; int pg_error; const struct rpc_call_ops *pg_rpc_callops; const struct nfs_pgio_completion_ops *pg_completion_ops; struct pnfs_layout_segment *pg_lseg; struct nfs_io_completion *pg_io_completion; struct nfs_direct_req *pg_dreq; unsigned int pg_bsize; u32 pg_mirror_count; struct nfs_pgio_mirror *pg_mirrors; struct nfs_pgio_mirror pg_mirrors_static[1]; struct nfs_pgio_mirror *pg_mirrors_dynamic; u32 pg_mirror_idx; unsigned short pg_maxretrans; unsigned char pg_moreio: 1; }; struct nfs_pageio_ops { void (*pg_init)(struct nfs_pageio_descriptor *, struct nfs_page *); size_t (*pg_test)(struct nfs_pageio_descriptor *, struct nfs_page *, struct nfs_page *); int (*pg_doio)(struct nfs_pageio_descriptor *); unsigned int (*pg_get_mirror_count)(struct nfs_pageio_descriptor *, struct nfs_page *); void (*pg_cleanup)(struct nfs_pageio_descriptor *); struct nfs_pgio_mirror * (*pg_get_mirror)(struct nfs_pageio_descriptor *, u32); u32 (*pg_set_mirror)(struct nfs_pageio_descriptor *, u32); }; typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); struct blk_ia_range_sysfs_entry { struct attribute attr; ssize_t (*show)(struct blk_independent_access_range *, char *); }; 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]; }; struct z_stream_s; typedef struct z_stream_s z_stream; typedef z_stream *z_streamp; typedef unsigned char Byte; 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; }; typedef enum { CODES = 0, LENS = 1, DISTS = 2, } codetype; typedef unsigned int uInt; typedef uint8_t BYTE; typedef uintptr_t uptrval; typedef uint32_t U32; typedef uint64_t U64; typedef enum { endOnOutputSize = 0, endOnInputSize = 1, } endCondition_directive; typedef enum { decode_full_block = 0, partial_decode = 1, } earlyEnd_directive; typedef enum { noDict = 0, withPrefix64k = 1, usingExtDict = 2, } dict_directive; typedef struct { const uint8_t *externalDict; size_t extDictSize; const uint8_t *prefixEnd; size_t prefixSize; } LZ4_streamDecode_t_internal; typedef union { unsigned long long table[4]; LZ4_streamDecode_t_internal internal_donotuse; } LZ4_streamDecode_t; enum xz_ret { XZ_OK = 0, XZ_STREAM_END = 1, XZ_UNSUPPORTED_CHECK = 2, XZ_MEM_ERROR = 3, XZ_MEMLIMIT_ERROR = 4, XZ_FORMAT_ERROR = 5, XZ_OPTIONS_ERROR = 6, XZ_DATA_ERROR = 7, XZ_BUF_ERROR = 8, }; struct xz_dec_bcj { enum { BCJ_X86 = 4, BCJ_POWERPC = 5, BCJ_IA64 = 6, BCJ_ARM = 7, BCJ_ARMTHUMB = 8, BCJ_SPARC = 9, } type; enum xz_ret ret; bool single_call; uint32_t pos; uint32_t x86_prev_mask; uint8_t *out; size_t out_pos; size_t out_size; struct { size_t filtered; size_t size; uint8_t buf[16]; } temp; }; struct xz_buf { const uint8_t *in; size_t in_pos; size_t in_size; uint8_t *out; size_t out_pos; size_t out_size; }; struct xz_dec_lzma2; struct seccomp_data { int nr; __u32 arch; __u64 instruction_pointer; __u64 args[6]; }; struct syscall_info { __u64 sp; struct seccomp_data data; }; struct msi_domain_template { char name[48]; struct irq_chip chip; struct msi_domain_ops ops; struct msi_domain_info info; }; 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, }; 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 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_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; 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 *); }; 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 acpi_gpio_params; struct acpi_gpio_mapping { const char *name; const struct acpi_gpio_params *data; unsigned int size; unsigned int quirks; }; 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, }; 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 acpi_device_physical_node { unsigned int node_id; struct list_head node; struct device *dev; bool put_online: 1; }; struct acpi_hardware_id { struct list_head list; const char *id; }; 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; }; typedef char *acpi_string; struct acpi_object_list { u32 count; union acpi_object *pointer; }; typedef struct { __u8 b[16]; } guid_t; struct acpi_buffer { acpi_size length; void *pointer; }; typedef u32 (*acpi_event_handler)(void *); 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_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; }; typedef enum { ACPI_IMODE_LOAD_PASS1 = 1, ACPI_IMODE_LOAD_PASS2 = 2, ACPI_IMODE_EXECUTE = 3, } acpi_interpreter_mode; 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 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, }; struct power_supply; union power_supply_propval; struct power_supply_desc { const char *name; enum power_supply_type type; 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; }; struct acpi_ac { struct power_supply *charger; struct power_supply_desc charger_desc; struct acpi_device *device; unsigned long long state; struct notifier_block battery_nb; }; struct thermal_zone_device; 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 thermal_zone_device *tzd; struct thermal_cooling_device *tcd; struct led_trigger *charging_full_trig; char *charging_full_trig_name; struct led_trigger *charging_trig; char *charging_trig_name; struct led_trigger *full_trig; char *full_trig_name; struct led_trigger *online_trig; char *online_trig_name; struct led_trigger *charging_blink_full_solid_trig; char *charging_blink_full_solid_trig_name; }; union power_supply_propval { int intval; const char *strval; }; struct acpi_bus_event { struct list_head node; acpi_device_class device_class; acpi_bus_id bus_id; u32 type; u32 data; }; 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 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; 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; }; typedef __u64 __virtio64; typedef __u32 __virtio32; 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 io_pgtable; struct io_pgtable_cfg; struct io_pgtable_init_fns { struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); void (*free)(struct io_pgtable *); }; enum io_pgtable_fmt { ARM_32_LPAE_S1 = 0, ARM_32_LPAE_S2 = 1, ARM_64_LPAE_S1 = 2, ARM_64_LPAE_S2 = 3, ARM_V7S = 4, ARM_MALI_LPAE = 5, AMD_IOMMU_V1 = 6, AMD_IOMMU_V2 = 7, APPLE_DART = 8, APPLE_DART2 = 9, IO_PGTABLE_NUM_FMTS = 10, }; struct iommu_flush_ops; struct io_pgtable_cfg { unsigned long quirks; unsigned long pgsize_bitmap; unsigned int ias; unsigned int oas; bool coherent_walk; const struct iommu_flush_ops *tlb; struct device *iommu_dev; union { struct { u64 ttbr; struct { u32 ips: 3; u32 tg: 2; u32 sh: 2; u32 orgn: 2; u32 irgn: 2; u32 tsz: 6; } tcr; u64 mair; } arm_lpae_s1_cfg; struct { u64 vttbr; struct { u32 ps: 3; u32 tg: 2; u32 sh: 2; u32 orgn: 2; u32 irgn: 2; u32 sl: 2; u32 tsz: 6; } vtcr; } arm_lpae_s2_cfg; struct { u32 ttbr; u32 tcr; u32 nmrr; u32 prrr; } arm_v7s_cfg; struct { u64 transtab; u64 memattr; } arm_mali_lpae_cfg; struct { u64 ttbr[4]; u32 n_ttbrs; } apple_dart_cfg; }; }; struct iommu_iotlb_gather; struct io_pgtable_ops { int (*map_pages)(struct io_pgtable_ops *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); size_t (*unmap_pages)(struct io_pgtable_ops *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *, unsigned long); }; struct io_pgtable { enum io_pgtable_fmt fmt; void *cookie; struct io_pgtable_cfg cfg; struct io_pgtable_ops ops; }; struct iommu_flush_ops { void (*tlb_flush_all)(void *); void (*tlb_flush_walk)(unsigned long, size_t, size_t, void *); void (*tlb_add_page)(struct iommu_iotlb_gather *, unsigned long, size_t, void *); }; struct iommu_iotlb_gather { unsigned long start; unsigned long end; size_t pgsize; struct list_head freelist; bool queued; }; typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); struct iommu_domain_geometry { dma_addr_t aperture_start; dma_addr_t aperture_end; bool force_aperture; }; enum iommu_page_response_code { IOMMU_PAGE_RESP_SUCCESS = 0, IOMMU_PAGE_RESP_INVALID = 1, IOMMU_PAGE_RESP_FAILURE = 2, }; struct iommu_dma_cookie; struct iommu_fault; struct iommu_domain { unsigned int type; const struct iommu_domain_ops *ops; unsigned long pgsize_bitmap; struct iommu_domain_geometry geometry; struct iommu_dma_cookie *iova_cookie; enum iommu_page_response_code (*iopf_handler)(struct iommu_fault *, void *); void *fault_data; union { struct { iommu_fault_handler_t handler; void *handler_token; }; struct { struct mm_struct *mm; int users; }; }; }; struct iommu_domain_ops { int (*attach_dev)(struct iommu_domain *, struct device *); int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t); int (*map)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, int, gfp_t); int (*map_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); size_t (*unmap)(struct iommu_domain *, unsigned long, size_t, struct iommu_iotlb_gather *); size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); void (*flush_iotlb_all)(struct iommu_domain *); void (*iotlb_sync_map)(struct iommu_domain *, unsigned long, size_t); void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *); phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t); bool (*enforce_cache_coherency)(struct iommu_domain *); int (*enable_nesting)(struct iommu_domain *); int (*set_pgtable_quirks)(struct iommu_domain *, unsigned long); void (*free)(struct iommu_domain *); }; struct iommu_fault_unrecoverable { __u32 reason; __u32 flags; __u32 pasid; __u32 perm; __u64 addr; __u64 fetch_addr; }; struct iommu_fault_page_request { __u32 flags; __u32 pasid; __u32 grpid; __u32 perm; __u64 addr; __u64 private_data[2]; }; struct iommu_fault { __u32 type; __u32 padding; union { struct iommu_fault_unrecoverable event; struct iommu_fault_page_request prm; __u8 padding2[56]; }; }; struct iommu_device { struct list_head list; const struct iommu_ops *ops; struct fwnode_handle *fwnode; struct device *dev; u32 max_pasids; }; struct iommu_fault_event { struct iommu_fault fault; struct list_head list; }; struct iommu_page_response { __u32 argsz; __u32 version; __u32 flags; __u32 pasid; __u32 grpid; __u32 code; }; struct iopf_device_param; struct iommu_fault_param; struct iommu_fwspec; struct dev_iommu { struct mutex lock; struct iommu_fault_param *fault_param; struct iopf_device_param *iopf_param; struct iommu_fwspec *fwspec; struct iommu_device *iommu_dev; void *priv; u32 max_pasids; u32 attach_deferred: 1; }; typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *); struct iommu_fault_param { iommu_dev_fault_handler_t handler; void *data; struct list_head faults; struct mutex lock; }; struct iommu_fwspec { const struct iommu_ops *ops; struct fwnode_handle *iommu_fwnode; u32 flags; unsigned int num_ids; u32 ids[0]; }; struct amd_io_pgtable { struct io_pgtable_cfg pgtbl_cfg; struct io_pgtable iop; int mode; u64 *root; atomic64_t pt_root; u64 *pgd; }; struct protection_domain { struct list_head dev_list; struct iommu_domain domain; struct amd_io_pgtable iop; spinlock_t lock; u16 id; int glx; u64 *gcr3_tbl; unsigned long flags; unsigned int dev_cnt; unsigned int dev_iommu[32]; }; 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 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, }; typedef void (*drmres_release_t)(struct drm_device *, void *); struct pagevec { unsigned char nr; bool percpu_pvec_drained; struct page *pages[15]; }; 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; }; struct drm_gem_close { __u32 handle; __u32 pad; }; struct drm_gem_flink { __u32 handle; __u32 name; }; struct drm_gem_open { __u32 name; __u32 handle; __u64 size; }; struct dpcd_quirk { u8 oui[3]; u8 device_id[6]; bool is_branch; u32 quirks; }; struct fb_info; 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 *); }; 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, }; 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_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 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_pixmap { u8 *addr; u32 size; u32 offset; u32 buf_align; u32 scan_align; u32 access_align; u32 flags; u32 blit_x; u32 blit_y; 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 { u32 x; u32 y; u32 len; u32 flags; }; enum drm_dp_phy { DP_PHY_DPRX = 0, DP_PHY_LTTPR1 = 1, DP_PHY_LTTPR2 = 2, DP_PHY_LTTPR3 = 3, DP_PHY_LTTPR4 = 4, DP_PHY_LTTPR5 = 5, DP_PHY_LTTPR6 = 6, DP_PHY_LTTPR7 = 7, DP_PHY_LTTPR8 = 8, DP_MAX_LTTPR_COUNT = 8, }; enum drm_dp_quirk { DP_DPCD_QUIRK_CONSTANT_N = 0, DP_DPCD_QUIRK_NO_PSR = 1, DP_DPCD_QUIRK_NO_SINK_COUNT = 2, DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD = 3, DP_DPCD_QUIRK_CAN_DO_MAX_LINK_RATE_3_24_GBPS = 4, }; enum { FB_BLANK_UNBLANK = 0, FB_BLANK_NORMAL = 1, FB_BLANK_VSYNC_SUSPEND = 2, FB_BLANK_HSYNC_SUSPEND = 3, FB_BLANK_POWERDOWN = 4, }; struct est_timings { u8 t1; u8 t2; u8 mfg_rsvd; }; struct std_timing { u8 hsize; u8 vfreq_aspect; }; struct detailed_pixel_timing { u8 hactive_lo; u8 hblank_lo; u8 hactive_hblank_hi; u8 vactive_lo; u8 vblank_lo; u8 vactive_vblank_hi; u8 hsync_offset_lo; u8 hsync_pulse_width_lo; u8 vsync_offset_pulse_width_lo; u8 hsync_vsync_offset_pulse_width_hi; u8 width_mm_lo; u8 height_mm_lo; u8 width_height_mm_hi; u8 hborder; u8 vborder; u8 misc; }; struct detailed_data_string { u8 str[13]; }; struct detailed_data_monitor_range { u8 min_vfreq; u8 max_vfreq; u8 min_hfreq_khz; u8 max_hfreq_khz; u8 pixel_clock_mhz; u8 flags; union { struct { u8 reserved; u8 hfreq_start_khz; u8 c; __le16 m; u8 k; u8 j; } __attribute__((packed)) gtf2; struct { u8 version; u8 data1; u8 data2; u8 supported_aspects; u8 flags; u8 supported_scalings; u8 preferred_refresh; } cvt; } formula; } __attribute__((packed)); struct detailed_data_wpindex { u8 white_yx_lo; u8 white_x_hi; u8 white_y_hi; u8 gamma; }; struct cvt_timing { u8 code[3]; }; struct detailed_non_pixel { u8 pad1; u8 type; u8 pad2; union { struct detailed_data_string str; struct detailed_data_monitor_range range; struct detailed_data_wpindex color; struct std_timing timings[6]; struct cvt_timing cvt[4]; } data; } __attribute__((packed)); struct detailed_timing { __le16 pixel_clock; union { struct detailed_pixel_timing pixel_data; struct detailed_non_pixel other_data; } data; }; struct edid { u8 header[8]; u8 mfg_id[2]; u8 prod_code[2]; u32 serial; u8 mfg_week; u8 mfg_year; u8 version; u8 revision; u8 input; u8 width_cm; u8 height_cm; u8 gamma; u8 features; u8 red_green_lo; u8 blue_white_lo; u8 red_x; u8 red_y; u8 green_x; u8 green_y; u8 blue_x; u8 blue_y; u8 white_x; u8 white_y; struct est_timings established_timings; struct std_timing standard_timings[8]; struct detailed_timing detailed_timings[4]; u8 extensions; u8 checksum; }; struct drm_panel_funcs; struct drm_panel { struct device *dev; struct backlight_device *backlight; const struct drm_panel_funcs *funcs; int connector_type; struct list_head list; bool prepare_prev_first; }; struct display_timing; struct drm_panel_funcs { int (*prepare)(struct drm_panel *); int (*enable)(struct drm_panel *); int (*disable)(struct drm_panel *); int (*unprepare)(struct drm_panel *); int (*get_modes)(struct drm_panel *, struct drm_connector *); enum drm_panel_orientation (*get_orientation)(struct drm_panel *); int (*get_timings)(struct drm_panel *, unsigned int, struct display_timing *); void (*debugfs_init)(struct drm_panel *, struct dentry *); }; struct dp_aux_backlight { struct backlight_device *base; struct drm_dp_aux *aux; struct drm_edp_backlight_info info; bool enabled; }; struct i915_syncmap { u64 prefix; unsigned int height; unsigned int bitmap; struct i915_syncmap *parent; }; struct drm_i915_getparam32 { s32 param; u32 value; }; struct drm_i915_getparam { __s32 param; int __attribute__((btf_type_tag("user"))) *value; }; struct drm_device___3; struct drm_file___3; typedef int drm_ioctl_t___2(struct drm_device___3 *, void *, struct drm_file___3 *); struct drm_mode_config_funcs___3; struct drm_mode_config___3 { struct mutex mutex; struct drm_modeset_lock connection_mutex; struct drm_modeset_acquire_ctx *acquire_ctx; struct mutex idr_mutex; struct idr object_idr; struct idr tile_idr; struct mutex fb_lock; int num_fb; struct list_head fb_list; spinlock_t connector_list_lock; int num_connector; struct ida connector_ida; struct list_head connector_list; struct llist_head connector_free_list; struct work_struct connector_free_work; int num_encoder; struct list_head encoder_list; int num_total_plane; struct list_head plane_list; int num_crtc; struct list_head crtc_list; struct list_head property_list; struct list_head privobj_list; int min_width; int min_height; int max_width; int max_height; const struct drm_mode_config_funcs___3 *funcs; bool poll_enabled; bool poll_running; bool delayed_event; struct delayed_work output_poll_work; struct mutex blob_lock; struct list_head property_blob_list; struct drm_property *edid_property; struct drm_property *dpms_property; struct drm_property *path_property; struct drm_property *tile_property; struct drm_property *link_status_property; struct drm_property *plane_type_property; struct drm_property *prop_src_x; struct drm_property *prop_src_y; struct drm_property *prop_src_w; struct drm_property *prop_src_h; struct drm_property *prop_crtc_x; struct drm_property *prop_crtc_y; struct drm_property *prop_crtc_w; struct drm_property *prop_crtc_h; struct drm_property *prop_fb_id; struct drm_property *prop_in_fence_fd; struct drm_property *prop_out_fence_ptr; struct drm_property *prop_crtc_id; struct drm_property *prop_fb_damage_clips; struct drm_property *prop_active; struct drm_property *prop_mode_id; struct drm_property *prop_vrr_enabled; struct drm_property *dvi_i_subconnector_property; struct drm_property *dvi_i_select_subconnector_property; struct drm_property *dp_subconnector_property; struct drm_property *tv_subconnector_property; struct drm_property *tv_select_subconnector_property; struct drm_property *legacy_tv_mode_property; struct drm_property *tv_mode_property; struct drm_property *tv_left_margin_property; struct drm_property *tv_right_margin_property; struct drm_property *tv_top_margin_property; struct drm_property *tv_bottom_margin_property; struct drm_property *tv_brightness_property; struct drm_property *tv_contrast_property; struct drm_property *tv_flicker_reduction_property; struct drm_property *tv_overscan_property; struct drm_property *tv_saturation_property; struct drm_property *tv_hue_property; struct drm_property *scaling_mode_property; struct drm_property *aspect_ratio_property; struct drm_property *content_type_property; struct drm_property *degamma_lut_property; struct drm_property *degamma_lut_size_property; struct drm_property *ctm_property; struct drm_property *gamma_lut_property; struct drm_property *gamma_lut_size_property; struct drm_property *suggested_x_property; struct drm_property *suggested_y_property; struct drm_property *non_desktop_property; struct drm_property *panel_orientation_property; struct drm_property *writeback_fb_id_property; struct drm_property *writeback_pixel_formats_property; struct drm_property *writeback_out_fence_ptr_property; struct drm_property *hdr_output_metadata_property; struct drm_property *content_protection_property; struct drm_property *hdcp_content_type_property; uint32_t preferred_depth; uint32_t prefer_shadow; bool prefer_shadow_fbdev; bool quirk_addfb_prefer_xbgr_30bpp; bool quirk_addfb_prefer_host_byte_order; bool async_page_flip; bool fb_modifiers_not_supported; bool normalize_zpos; struct drm_property *modifiers_property; uint32_t cursor_width; uint32_t cursor_height; struct drm_atomic_state *suspend_state; const struct drm_mode_config_helper_funcs *helper_private; }; struct drm_driver___3; struct drm_minor___3; struct drm_master___3; struct drm_device___3 { int if_version; struct kref ref; struct device *dev; struct { struct list_head resources; void *final_kfree; spinlock_t lock; } managed; const struct drm_driver___3 *driver; void *dev_private; struct drm_minor___3 *primary; struct drm_minor___3 *render; struct drm_minor___3 *accel; bool registered; struct drm_master___3 *master; u32 driver_features; bool unplugged; struct inode *anon_inode; char *unique; struct mutex struct_mutex; struct mutex master_mutex; atomic_t open_count; struct mutex filelist_mutex; struct list_head filelist; struct list_head filelist_internal; struct mutex clientlist_mutex; struct list_head clientlist; bool vblank_disable_immediate; struct drm_vblank_crtc *vblank; spinlock_t vblank_time_lock; spinlock_t vbl_lock; u32 max_vblank_count; struct list_head vblank_event_list; spinlock_t event_lock; unsigned int num_crtcs; struct drm_mode_config___3 mode_config; struct mutex object_name_lock; struct idr object_name_idr; struct drm_vma_offset_manager *vma_offset_manager; struct drm_vram_mm *vram_mm; enum switch_power_state switch_power_state; struct drm_fb_helper *fb_helper; struct mutex debugfs_mutex; struct list_head debugfs_list; }; struct drm_gem_object___3; struct drm_ioctl_desc___2; struct drm_driver___3 { int (*load)(struct drm_device___3 *, unsigned long); int (*open)(struct drm_device___3 *, struct drm_file___3 *); void (*postclose)(struct drm_device___3 *, struct drm_file___3 *); void (*lastclose)(struct drm_device___3 *); void (*unload)(struct drm_device___3 *); void (*release)(struct drm_device___3 *); void (*master_set)(struct drm_device___3 *, struct drm_file___3 *, bool); void (*master_drop)(struct drm_device___3 *, struct drm_file___3 *); void (*debugfs_init)(struct drm_minor___3 *); struct drm_gem_object___3 * (*gem_create_object)(struct drm_device___3 *, size_t); int (*prime_handle_to_fd)(struct drm_device___3 *, struct drm_file___3 *, uint32_t, uint32_t, int *); int (*prime_fd_to_handle)(struct drm_device___3 *, struct drm_file___3 *, int, uint32_t *); struct drm_gem_object___3 * (*gem_prime_import)(struct drm_device___3 *, struct dma_buf *); struct drm_gem_object___3 * (*gem_prime_import_sg_table)(struct drm_device___3 *, struct dma_buf_attachment *, struct sg_table *); int (*gem_prime_mmap)(struct drm_gem_object___3 *, struct vm_area_struct *); int (*dumb_create)(struct drm_file___3 *, struct drm_device___3 *, struct drm_mode_create_dumb *); int (*dumb_map_offset)(struct drm_file___3 *, struct drm_device___3 *, uint32_t, uint64_t *); int (*dumb_destroy)(struct drm_file___3 *, struct drm_device___3 *, uint32_t); int major; int minor; int patchlevel; char *name; char *desc; char *date; u32 driver_features; const struct drm_ioctl_desc___2 *ioctls; int num_ioctls; const struct file_operations *fops; }; struct drm_file___3 { bool authenticated; bool stereo_allowed; bool universal_planes; bool atomic; bool aspect_ratio_allowed; bool writeback_connectors; bool was_master; bool is_master; struct drm_master___3 *master; spinlock_t master_lookup_lock; struct pid *pid; drm_magic_t magic; struct list_head lhead; struct drm_minor___3 *minor; struct idr object_idr; spinlock_t table_lock; struct idr syncobj_idr; spinlock_t syncobj_table_lock; struct file *filp; void *driver_priv; struct list_head fbs; struct mutex fbs_lock; struct list_head blobs; wait_queue_head_t event_wait; struct list_head pending_event_list; struct list_head event_list; int event_space; struct mutex event_read_lock; struct drm_prime_file_private prime; }; struct drm_master___3 { struct kref refcount; struct drm_device___3 *dev; char *unique; int unique_len; struct idr magic_map; void *driver_priv; struct drm_master___3 *lessor; int lessee_id; struct list_head lessee_list; struct list_head lessees; struct idr leases; struct idr lessee_idr; }; struct drm_minor___3 { int index; int type; struct device *kdev; struct drm_device___3 *dev; struct dentry *debugfs_root; struct list_head debugfs_list; struct mutex debugfs_lock; }; struct drm_gem_object_funcs___3; struct drm_gem_object___3 { struct kref refcount; unsigned int handle_count; struct drm_device___3 *dev; struct file *filp; struct drm_vma_offset_node vma_node; size_t size; int name; struct dma_buf *dma_buf; struct dma_buf_attachment *import_attach; struct dma_resv *resv; struct dma_resv _resv; const struct drm_gem_object_funcs___3 *funcs; struct list_head lru_node; struct drm_gem_lru *lru; }; struct drm_gem_object_funcs___3 { void (*free)(struct drm_gem_object___3 *); int (*open)(struct drm_gem_object___3 *, struct drm_file___3 *); void (*close)(struct drm_gem_object___3 *, struct drm_file___3 *); void (*print_info)(struct drm_printer *, unsigned int, const struct drm_gem_object___3 *); struct dma_buf * (*export)(struct drm_gem_object___3 *, int); int (*pin)(struct drm_gem_object___3 *); void (*unpin)(struct drm_gem_object___3 *); struct sg_table * (*get_sg_table)(struct drm_gem_object___3 *); int (*vmap)(struct drm_gem_object___3 *, struct iosys_map *); void (*vunmap)(struct drm_gem_object___3 *, struct iosys_map *); int (*mmap)(struct drm_gem_object___3 *, struct vm_area_struct *); const struct vm_operations_struct *vm_ops; }; struct drm_ioctl_desc___2 { unsigned int cmd; enum drm_ioctl_flags flags; drm_ioctl_t___2 *func; const char *name; }; struct drm_mode_config_funcs___3 { struct drm_framebuffer * (*fb_create)(struct drm_device___3 *, struct drm_file___3 *, const struct drm_mode_fb_cmd2 *); const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *); void (*output_poll_changed)(struct drm_device___3 *); enum drm_mode_status (*mode_valid)(struct drm_device___3 *, const struct drm_display_mode *); int (*atomic_check)(struct drm_device___3 *, struct drm_atomic_state *); int (*atomic_commit)(struct drm_device___3 *, struct drm_atomic_state *, bool); struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___3 *); void (*atomic_state_clear)(struct drm_atomic_state *); void (*atomic_state_free)(struct drm_atomic_state *); }; struct intel_breadcrumbs { struct kref ref; atomic_t active; spinlock_t signalers_lock; struct list_head signalers; struct llist_head signaled_requests; atomic_t signaler_active; spinlock_t irq_lock; struct irq_work irq_work; unsigned int irq_enabled; bool irq_armed; intel_engine_mask_t engine_mask; struct intel_engine_cs *irq_engine; bool (*irq_enable)(struct intel_breadcrumbs *); void (*irq_disable)(struct intel_breadcrumbs *); }; 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, }; enum { I915_FENCE_FLAG_ACTIVE = 3, I915_FENCE_FLAG_PQUEUE = 4, I915_FENCE_FLAG_HOLD = 5, I915_FENCE_FLAG_INITIAL_BREADCRUMB = 6, I915_FENCE_FLAG_SIGNAL = 7, I915_FENCE_FLAG_NOPREEMPT = 8, I915_FENCE_FLAG_SENTINEL = 9, I915_FENCE_FLAG_BOOST = 10, I915_FENCE_FLAG_SUBMIT_PARALLEL = 11, I915_FENCE_FLAG_SKIP_PARALLEL = 12, I915_FENCE_FLAG_COMPOSITE = 13, }; enum { INTEL_WAKEREF_PUT_ASYNC_BIT = 0, __INTEL_WAKEREF_PUT_LAST_BIT__ = 1, }; struct ttm_placement { unsigned int num_placement; const struct ttm_place *placement; unsigned int num_busy_placement; const struct ttm_place *busy_placement; }; struct ttm_tt { struct page **pages; uint32_t page_flags; uint32_t num_pages; struct sg_table *sg; dma_addr_t *dma_address; struct file *swap_storage; enum ttm_caching caching; }; enum { RADIX_TREE_ITER_TAG_MASK = 15, RADIX_TREE_ITER_TAGGED = 16, RADIX_TREE_ITER_CONTIG = 32, }; enum intel_memory_type { INTEL_MEMORY_SYSTEM = 0, INTEL_MEMORY_LOCAL = 1, INTEL_MEMORY_STOLEN_SYSTEM = 2, INTEL_MEMORY_STOLEN_LOCAL = 3, INTEL_MEMORY_MOCK = 4, }; 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 i915_ttm_tt { struct ttm_tt ttm; struct device *dev; struct i915_refct_sgt cached_rsgt; bool is_shmem; struct file *filp; }; struct drm_buddy; struct i915_ttm_buddy_resource { struct ttm_resource base; struct list_head blocks; unsigned long flags; unsigned long used_visible_size; struct drm_buddy *mm; }; struct drm_buddy_block; struct drm_buddy { struct list_head *free_list; struct drm_buddy_block **roots; unsigned int n_roots; unsigned int max_order; u64 chunk_size; u64 size; u64 avail; }; struct drm_buddy_block { u64 header; struct drm_buddy_block *left; struct drm_buddy_block *right; struct drm_buddy_block *parent; void *private; struct list_head link; struct list_head tmp_link; }; struct radix_tree_iter { unsigned long index; unsigned long next_index; unsigned long tags; struct xa_node *node; }; struct sgt_iter { struct scatterlist *sgp; union { unsigned long pfn; dma_addr_t dma; }; unsigned int curr; unsigned int max; }; struct buddy_page_mask { u32 page_mask; u8 type; u8 num_channels; }; struct intel_ddi_port_domains { enum port port_start; enum port port_end; enum aux_ch aux_ch_start; enum aux_ch aux_ch_end; enum intel_display_power_domain ddi_lanes; enum intel_display_power_domain ddi_io; enum intel_display_power_domain aux_io; enum intel_display_power_domain aux_legacy_usbc; enum intel_display_power_domain aux_tbt; }; struct i915_power_well_desc; struct i915_power_well { const struct i915_power_well_desc *desc; struct intel_power_domain_mask domains; int count; bool hw_enabled; u8 instance_idx; }; struct i915_power_well_ops; struct i915_power_well_instance_list; struct i915_power_well_desc { const struct i915_power_well_ops *ops; const struct i915_power_well_instance_list *instances; u16 irq_pipe_mask: 4; u16 always_on: 1; u16 fixed_enable_delay: 1; u16 has_vga: 1; u16 has_fuses: 1; u16 is_tc_tbt: 1; }; struct i915_power_well_regs; struct i915_power_well_ops { const struct i915_power_well_regs *regs; void (*sync_hw)(struct drm_i915_private *, struct i915_power_well *); void (*enable)(struct drm_i915_private *, struct i915_power_well *); void (*disable)(struct drm_i915_private *, struct i915_power_well *); bool (*is_enabled)(struct drm_i915_private *, struct i915_power_well *); }; struct i915_power_well_instance; struct i915_power_well_instance_list { const struct i915_power_well_instance *list; u8 count; }; enum i915_power_well_id { DISP_PW_ID_NONE = 0, VLV_DISP_PW_DISP2D = 1, BXT_DISP_PW_DPIO_CMN_A = 2, VLV_DISP_PW_DPIO_CMN_BC = 3, GLK_DISP_PW_DPIO_CMN_C = 4, CHV_DISP_PW_DPIO_CMN_D = 5, HSW_DISP_PW_GLOBAL = 6, SKL_DISP_PW_MISC_IO = 7, SKL_DISP_PW_1 = 8, SKL_DISP_PW_2 = 9, ICL_DISP_PW_3 = 10, SKL_DISP_DC_OFF = 11, TGL_DISP_PW_TC_COLD_OFF = 12, }; enum dpio_phy { DPIO_PHY0 = 0, DPIO_PHY1 = 1, DPIO_PHY2 = 2, }; struct i915_power_domain_list; struct i915_power_well_instance { const char *name; const struct i915_power_domain_list *domain_list; enum i915_power_well_id id; union { struct { u8 idx; } vlv; struct { enum dpio_phy phy; } bxt; struct { u8 idx; } hsw; struct { u8 aux_ch; } xelpdp; }; }; struct i915_power_domain_list { const enum intel_display_power_domain *list; u8 count; }; enum i915_drm_suspend_mode { I915_DRM_SUSPEND_IDLE = 0, I915_DRM_SUSPEND_MEM = 1, I915_DRM_SUSPEND_HIBERNATE = 2, }; enum intel_step { STEP_NONE = 0, STEP_A0 = 1, STEP_A1 = 2, STEP_A2 = 3, STEP_A3 = 4, STEP_B0 = 5, STEP_B1 = 6, STEP_B2 = 7, STEP_B3 = 8, STEP_C0 = 9, STEP_C1 = 10, STEP_C2 = 11, STEP_C3 = 12, STEP_D0 = 13, STEP_D1 = 14, STEP_D2 = 15, STEP_D3 = 16, STEP_E0 = 17, STEP_E1 = 18, STEP_E2 = 19, STEP_E3 = 20, STEP_F0 = 21, STEP_F1 = 22, STEP_F2 = 23, STEP_F3 = 24, STEP_G0 = 25, STEP_G1 = 26, STEP_G2 = 27, STEP_G3 = 28, STEP_H0 = 29, STEP_H1 = 30, STEP_H2 = 31, STEP_H3 = 32, STEP_I0 = 33, STEP_I1 = 34, STEP_I2 = 35, STEP_I3 = 36, STEP_J0 = 37, STEP_J1 = 38, STEP_J2 = 39, STEP_J3 = 40, STEP_FUTURE = 41, STEP_FOREVER = 42, }; enum dpio_channel { DPIO_CH0 = 0, DPIO_CH1 = 1, }; struct virtio_gpu_fence; struct virtio_gpu_framebuffer { struct drm_framebuffer base; struct virtio_gpu_fence *fence; }; struct virtio_gpu_fence_event; struct virtio_gpu_fence { struct dma_fence f; uint32_t ring_idx; uint64_t fence_id; bool emit_fence_info; struct virtio_gpu_fence_event *e; struct virtio_gpu_fence_driver *drv; struct list_head node; }; struct virtio_gpu_fence_event { struct drm_pending_event base; struct drm_event event; }; 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; }; enum regcache_type { REGCACHE_NONE = 0, REGCACHE_RBTREE = 1, REGCACHE_COMPRESSED = 2, REGCACHE_FLAT = 3, }; struct regmap; struct regcache_ops { const char *name; enum regcache_type type; int (*init)(struct regmap *); int (*exit)(struct regmap *); void (*debugfs_init)(struct regmap *); int (*read)(struct regmap *, unsigned int, unsigned int *); int (*write)(struct regmap *, unsigned int, unsigned int); int (*sync)(struct regmap *, unsigned int, unsigned int); int (*drop)(struct regmap *, unsigned int, unsigned int); }; typedef void (*regmap_lock)(void *); typedef void (*regmap_unlock)(void *); struct regmap_format { size_t buf_size; size_t reg_bytes; size_t pad_bytes; size_t reg_downshift; size_t val_bytes; void (*format_write)(struct regmap *, unsigned int, unsigned int); void (*format_reg)(void *, unsigned int, unsigned int); void (*format_val)(void *, unsigned int, unsigned int); unsigned int (*parse_val)(const void *); void (*parse_inplace)(void *); }; struct hwspinlock; struct regmap_bus; struct regmap_access_table; struct reg_default; struct reg_sequence; struct regmap { union { struct mutex mutex; struct { spinlock_t spinlock; unsigned long spinlock_flags; }; struct { raw_spinlock_t raw_spinlock; unsigned long raw_spinlock_flags; }; }; regmap_lock lock; regmap_unlock unlock; void *lock_arg; gfp_t alloc_flags; unsigned int reg_base; struct device *dev; void *work_buf; struct regmap_format format; const struct regmap_bus *bus; void *bus_context; const char *name; bool async; spinlock_t async_lock; wait_queue_head_t async_waitq; struct list_head async_list; struct list_head async_free; int async_ret; bool debugfs_disable; struct dentry *debugfs; const char *debugfs_name; unsigned int debugfs_reg_len; unsigned int debugfs_val_len; unsigned int debugfs_tot_len; struct list_head debugfs_off_cache; struct mutex cache_lock; unsigned int max_register; bool (*writeable_reg)(struct device *, unsigned int); bool (*readable_reg)(struct device *, unsigned int); bool (*volatile_reg)(struct device *, unsigned int); bool (*precious_reg)(struct device *, unsigned int); bool (*writeable_noinc_reg)(struct device *, unsigned int); bool (*readable_noinc_reg)(struct device *, unsigned int); const struct regmap_access_table *wr_table; const struct regmap_access_table *rd_table; const struct regmap_access_table *volatile_table; const struct regmap_access_table *precious_table; const struct regmap_access_table *wr_noinc_table; const struct regmap_access_table *rd_noinc_table; int (*reg_read)(void *, unsigned int, unsigned int *); int (*reg_write)(void *, unsigned int, unsigned int); int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); int (*read)(void *, const void *, size_t, void *, size_t); int (*write)(void *, const void *, size_t); bool defer_caching; unsigned long read_flag_mask; unsigned long write_flag_mask; int reg_shift; int reg_stride; int reg_stride_order; const struct regcache_ops *cache_ops; enum regcache_type cache_type; unsigned int cache_size_raw; unsigned int cache_word_size; unsigned int num_reg_defaults; unsigned int num_reg_defaults_raw; bool cache_only; bool cache_bypass; bool cache_free; struct reg_default *reg_defaults; const void *reg_defaults_raw; void *cache; bool cache_dirty; bool no_sync_defaults; struct reg_sequence *patch; int patch_regs; bool use_single_read; bool use_single_write; bool can_multi_write; size_t max_raw_read; size_t max_raw_write; struct rb_root range_tree; void *selector_work_buf; struct hwspinlock *hwlock; bool can_sleep; }; typedef int (*regmap_hw_write)(void *, const void *, size_t); typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); struct regmap_async; typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t); typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t); typedef void (*regmap_hw_free_context)(void *); typedef struct regmap_async * (*regmap_hw_async_alloc)(); enum regmap_endian { REGMAP_ENDIAN_DEFAULT = 0, REGMAP_ENDIAN_BIG = 1, REGMAP_ENDIAN_LITTLE = 2, REGMAP_ENDIAN_NATIVE = 3, }; struct regmap_bus { bool fast_io; bool free_on_exit; regmap_hw_write write; regmap_hw_gather_write gather_write; regmap_hw_async_write async_write; regmap_hw_reg_write reg_write; regmap_hw_reg_noinc_write reg_noinc_write; regmap_hw_reg_update_bits reg_update_bits; regmap_hw_read read; regmap_hw_reg_read reg_read; regmap_hw_reg_noinc_read reg_noinc_read; regmap_hw_free_context free_context; regmap_hw_async_alloc async_alloc; u8 read_flag_mask; enum regmap_endian reg_format_endian_default; enum regmap_endian val_format_endian_default; size_t max_raw_read; size_t max_raw_write; }; struct regmap_async { struct list_head list; struct regmap *map; void *work_buf; }; struct regmap_range; struct regmap_access_table { const struct regmap_range *yes_ranges; unsigned int n_yes_ranges; const struct regmap_range *no_ranges; unsigned int n_no_ranges; }; struct regmap_range { unsigned int range_min; unsigned int range_max; }; struct reg_default { unsigned int reg; unsigned int def; }; struct reg_sequence { unsigned int reg; unsigned int def; unsigned int delay_us; }; struct regcache_rbtree_node { void *block; long *cache_present; unsigned int base_reg; unsigned int blklen; struct rb_node node; }; struct regcache_rbtree_ctx { struct rb_root root; struct regcache_rbtree_node *cached_rbnode; }; struct scsi_varlen_cdb_hdr { __u8 opcode; __u8 control; __u8 misc[5]; __u8 additional_cdb_length; __be16 service_action; }; struct tcf_walker { int stop; int skip; int count; bool nonempty; unsigned long cookie; int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); }; struct qdisc_walker { int stop; int skip; int count; int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); }; struct tc_action; struct tcf_exts_miss_cookie_node; struct tcf_exts { __u32 type; int nr_actions; struct tc_action **actions; struct net *net; netns_tracker ns_tracker; struct tcf_exts_miss_cookie_node *miss_cookie_node; int action; int police; }; struct tcf_t { __u64 install; __u64 lastuse; __u64 expires; __u64 firstuse; }; struct tc_action_ops; struct tcf_idrinfo; struct tc_cookie; struct tc_action { const struct tc_action_ops *ops; __u32 type; struct tcf_idrinfo *idrinfo; u32 tcfa_index; refcount_t tcfa_refcnt; atomic_t tcfa_bindcnt; int tcfa_action; struct tcf_t tcfa_tm; long: 64; struct gnet_stats_basic_sync tcfa_bstats; struct gnet_stats_basic_sync tcfa_bstats_hw; struct gnet_stats_queue tcfa_qstats; struct net_rate_estimator __attribute__((btf_type_tag("rcu"))) *tcfa_rate_est; spinlock_t tcfa_lock; struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats; struct gnet_stats_basic_sync __attribute__((btf_type_tag("percpu"))) *cpu_bstats_hw; struct gnet_stats_queue __attribute__((btf_type_tag("percpu"))) *cpu_qstats; struct tc_cookie __attribute__((btf_type_tag("rcu"))) *user_cookie; struct tcf_chain __attribute__((btf_type_tag("rcu"))) *goto_chain; u32 tcfa_flags; u8 hw_stats; u8 used_hw_stats; bool used_hw_stats_valid; u32 in_hw_count; }; enum tca_id { TCA_ID_UNSPEC = 0, TCA_ID_POLICE = 1, TCA_ID_GACT = 5, TCA_ID_IPT = 6, TCA_ID_PEDIT = 7, TCA_ID_MIRRED = 8, TCA_ID_NAT = 9, TCA_ID_XT = 10, TCA_ID_SKBEDIT = 11, TCA_ID_VLAN = 12, TCA_ID_BPF = 13, TCA_ID_CONNMARK = 14, TCA_ID_SKBMOD = 15, TCA_ID_CSUM = 16, TCA_ID_TUNNEL_KEY = 17, TCA_ID_SIMP = 22, TCA_ID_IFE = 25, TCA_ID_SAMPLE = 26, TCA_ID_CTINFO = 27, TCA_ID_MPLS = 28, TCA_ID_CT = 29, TCA_ID_GATE = 30, __TCA_ID_MAX = 255, }; typedef void (*tc_action_priv_destructor)(void *); struct psample_group; struct tc_action_ops { struct list_head head; char kind[16]; enum tca_id id; unsigned int net_id; size_t size; struct module *owner; int (*act)(struct sk_buff *, const struct tc_action *, struct tcf_result *); int (*dump)(struct sk_buff *, struct tc_action *, int, int); void (*cleanup)(struct tc_action *); int (*lookup)(struct net *, struct tc_action **, u32); int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, struct tcf_proto *, u32, struct netlink_ext_ack *); int (*walk)(struct net *, struct sk_buff *, struct netlink_callback *, int, const struct tc_action_ops *, struct netlink_ext_ack *); void (*stats_update)(struct tc_action *, u64, u64, u64, u64, bool); size_t (*get_fill_size)(const struct tc_action *); struct net_device * (*get_dev)(const struct tc_action *, tc_action_priv_destructor *); struct psample_group * (*get_psample_group)(const struct tc_action *, tc_action_priv_destructor *); int (*offload_act_setup)(struct tc_action *, void *, u32 *, bool, struct netlink_ext_ack *); }; struct tcf_idrinfo { struct mutex lock; struct idr action_idr; struct net *net; }; struct tc_cookie { u8 *data; u32 len; struct callback_head rcu; }; 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, }; enum devlink_eswitch_mode { DEVLINK_ESWITCH_MODE_LEGACY = 0, DEVLINK_ESWITCH_MODE_SWITCHDEV = 1, }; enum { IFLA_VF_LINK_STATE_AUTO = 0, IFLA_VF_LINK_STATE_ENABLE = 1, IFLA_VF_LINK_STATE_DISABLE = 2, __IFLA_VF_LINK_STATE_MAX = 3, }; enum flow_block_command { FLOW_BLOCK_BIND = 0, FLOW_BLOCK_UNBIND = 1, }; 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 devlink_region; struct devlink_health_reporter; struct nsim_dev_health { struct devlink_health_reporter *empty_reporter; struct devlink_health_reporter *dummy_reporter; struct dentry *ddir; char *recovered_break_msg; u32 binary_len; bool fail_recover; }; struct nsim_dev_hwstats { struct dentry *ddir; struct dentry *l3_ddir; struct mutex hwsdev_list_lock; struct list_head l3_list; struct notifier_block netdevice_nb; struct delayed_work traffic_dw; }; struct nsim_dev_psample; struct nsim_fib_data; struct nsim_trap_data; struct nsim_vf_config; struct flow_action_cookie; struct nsim_dev { struct nsim_bus_dev *nsim_bus_dev; struct nsim_fib_data *fib_data; struct nsim_trap_data *trap_data; struct dentry *ddir; struct dentry *ports_ddir; struct dentry *take_snapshot; struct dentry *nodes_ddir; struct nsim_vf_config *vfconfigs; struct bpf_offload_dev *bpf_dev; bool bpf_bind_accept; bool bpf_bind_verifier_accept; u32 bpf_bind_verifier_delay; struct dentry *ddir_bpf_bound_progs; u32 prog_id_gen; struct list_head bpf_bound_progs; struct list_head bpf_bound_maps; struct netdev_phys_item_id switch_id; struct list_head port_list; bool fw_update_status; u32 fw_update_overwrite_mask; u32 max_macs; bool test1; bool dont_allow_reload; bool fail_reload; struct devlink_region *dummy_region; struct nsim_dev_health health; struct nsim_dev_hwstats hwstats; struct flow_action_cookie *fa_cookie; spinlock_t fa_cookie_lock; bool fail_trap_group_set; bool fail_trap_policer_set; bool fail_trap_policer_counter_get; bool fail_trap_drop_counter_get; struct { struct udp_tunnel_nic_shared utn_shared; u32 __ports[8]; bool sync_all; bool open_only; bool ipv4_only; bool shared; bool static_iana_vxlan; u32 sleep; } udp_ports; struct nsim_dev_psample *psample; u16 esw_mode; }; struct nsim_vf_config { int link_state; u16 min_tx_rate; u16 max_tx_rate; u16 vlan; __be16 vlan_proto; u16 qos; u8 vf_mac[6]; bool spoofchk_enabled; bool trusted; bool rss_query_enabled; }; struct flow_action_cookie { u32 cookie_len; u8 cookie[0]; }; struct netdevsim; struct nsim_dev_port { struct list_head list; struct devlink_port devlink_port; unsigned int port_index; enum nsim_dev_port_type port_type; struct dentry *ddir; struct dentry *rate_parent; char *parent_name; struct netdevsim *ns; }; struct debugfs_u32_array { u32 *array; u32 n_elements; }; struct xdp_attachment_info { struct bpf_prog *prog; u32 flags; }; struct nsim_sa { struct xfrm_state *xs; __be32 ipaddr[4]; u32 key[4]; u32 salt; bool used; bool crypt; bool rx; }; struct nsim_ipsec { struct nsim_sa sa[33]; struct dentry *pfile; u32 count; u32 tx; u32 ok; }; struct nsim_ethtool_pauseparam { bool rx; bool tx; bool report_stats_rx; bool report_stats_tx; }; struct nsim_ethtool { u32 get_err; u32 set_err; u32 channels; struct nsim_ethtool_pauseparam pauseparam; struct ethtool_coalesce coalesce; struct ethtool_ringparam ring; struct ethtool_fecparam fec; }; struct netdevsim { struct net_device *netdev; struct nsim_dev *nsim_dev; struct nsim_dev_port *nsim_dev_port; u64 tx_packets; u64 tx_bytes; struct u64_stats_sync syncp; struct nsim_bus_dev *nsim_bus_dev; struct bpf_prog *bpf_offloaded; u32 bpf_offloaded_id; struct xdp_attachment_info xdp; struct xdp_attachment_info xdp_hw; bool bpf_tc_accept; bool bpf_tc_non_bound_accept; bool bpf_xdpdrv_accept; bool bpf_xdpoffload_accept; bool bpf_map_accept; struct nsim_ipsec ipsec; struct { u32 inject_error; u32 sleep; u32 __ports[8]; u32 (*ports)[4]; struct debugfs_u32_array dfs_ports[2]; } udp_ports; struct nsim_ethtool ethtool; }; struct devlink_dev_stats { u32 reload_stats[6]; u32 remote_reload_stats[6]; }; struct devlink_dpipe_headers; struct devlink_ops; struct devlink { u32 index; struct xarray ports; struct list_head rate_list; struct list_head sb_list; struct list_head dpipe_table_list; struct list_head resource_list; struct xarray params; struct list_head region_list; struct list_head reporter_list; struct devlink_dpipe_headers *dpipe_headers; struct list_head trap_list; struct list_head trap_group_list; struct list_head trap_policer_list; struct list_head linecard_list; const struct devlink_ops *ops; struct xarray snapshot_ids; struct devlink_dev_stats stats; struct device *dev; possible_net_t _net; struct mutex lock; struct lock_class_key lock_key; u8 reload_failed: 1; refcount_t refcount; struct rcu_work rwork; struct notifier_block netdevice_nb; char priv[0]; }; 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 usb_dev_cap_header { __u8 bLength; __u8 bDescriptorType; __u8 bDevCapabilityType; }; struct usb_descriptor_header { __u8 bLength; __u8 bDescriptorType; }; 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, }; struct extcon_dev; 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_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 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; 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, }; 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 *); }; 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, }; 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; }; enum phy_media { PHY_MEDIA_DEFAULT = 0, PHY_MEDIA_SR = 1, PHY_MEDIA_DAC = 2, }; 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 *); 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); }; 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 ohci_rh_state { OHCI_RH_HALTED = 0, OHCI_RH_SUSPENDED = 1, OHCI_RH_RUNNING = 2, }; 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)); struct ed; struct td; struct urb_priv___2 { struct ed *ed; u16 length; u16 td_cnt; struct list_head pending; struct td *td[0]; }; typedef __u32 __hc32; struct ed { __hc32 hwINFO; __hc32 hwTailP; __hc32 hwHeadP; __hc32 hwNextED; dma_addr_t dma; struct td *dummy; struct ed *ed_next; struct ed *ed_prev; struct list_head td_list; struct list_head in_use_list; u8 state; u8 type; u8 branch; u16 interval; u16 load; u16 last_iso; u16 tick; unsigned int takeback_wdh_cnt; struct td *pending_td; long: 64; }; typedef __u16 __hc16; struct td { __hc32 hwINFO; __hc32 hwCBP; __hc32 hwNextTD; __hc32 hwBE; __hc16 hwPSW[2]; __u8 index; struct ed *ed; struct td *td_hash; struct td *next_dl_td; struct urb *urb; dma_addr_t td_dma; dma_addr_t data_dma; struct list_head td_list; long: 64; }; struct ohci_regs; struct ohci_hcca; struct ohci_hcd { spinlock_t lock; struct ohci_regs *regs; struct ohci_hcca *hcca; dma_addr_t hcca_dma; struct ed *ed_rm_list; struct ed *ed_bulktail; struct ed *ed_controltail; struct ed *periodic[32]; void (*start_hnp)(struct ohci_hcd *); struct dma_pool *td_cache; struct dma_pool *ed_cache; struct td *td_hash[64]; struct td *dl_start; struct td *dl_end; struct list_head pending; struct list_head eds_in_use; enum ohci_rh_state rh_state; int num_ports; int load[32]; u32 hc_control; unsigned long next_statechange; u32 fminterval; unsigned int autostop: 1; unsigned int working: 1; unsigned int restart_work: 1; unsigned long flags; unsigned int prev_frame_no; unsigned int wdh_cnt; unsigned int prev_wdh_cnt; u32 prev_donehead; struct timer_list io_watchdog; struct work_struct nec_work; struct dentry *debug_dir; unsigned long priv[0]; }; struct ohci_roothub_regs { __hc32 a; __hc32 b; __hc32 status; __hc32 portstatus[15]; }; struct ohci_regs { __hc32 revision; __hc32 control; __hc32 cmdstatus; __hc32 intrstatus; __hc32 intrenable; __hc32 intrdisable; __hc32 hcca; __hc32 ed_periodcurrent; __hc32 ed_controlhead; __hc32 ed_controlcurrent; __hc32 ed_bulkhead; __hc32 ed_bulkcurrent; __hc32 donehead; __hc32 fminterval; __hc32 fmremaining; __hc32 fmnumber; __hc32 periodicstart; __hc32 lsthresh; struct ohci_roothub_regs roothub; long: 64; long: 64; }; struct ohci_hcca { __hc32 int_table[32]; __hc32 frame_no; __hc32 done_head; u8 reserved_for_hc[116]; u8 what[4]; }; typedef struct urb_priv___2 urb_priv_t; struct debug_buffer { ssize_t (*fill_func)(struct debug_buffer *); struct ohci_hcd *ohci; struct mutex mutex; size_t count; char *page; }; struct ohci_driver_overrides { const char *product_desc; size_t extra_priv_size; int (*reset)(struct usb_hcd *); }; struct trackpoint_attr_data { size_t field_offset; u8 command; u8 mask; bool inverted; u8 power_on_default; }; struct psmouse_attribute { struct device_attribute dattr; void *data; ssize_t (*show)(struct psmouse *, void *, char *); ssize_t (*set)(struct psmouse *, void *, const char *, size_t); bool protect; }; struct trackpoint_data { u8 variant_id; u8 firmware_id; u8 sensitivity; u8 speed; u8 inertia; u8 reach; u8 draghys; u8 mindrag; u8 thresh; u8 upthresh; u8 ztime; u8 jenks; u8 drift_time; bool press_to_select; bool skipback; bool ext_dev; }; struct hd_geometry { unsigned char heads; unsigned char sectors; unsigned short cylinders; unsigned long start; }; enum { DM_TIO_INSIDE_DM_IO = 0, DM_TIO_IS_DUPLICATE_BIO = 1, }; enum dm_queue_mode { DM_TYPE_NONE = 0, DM_TYPE_BIO_BASED = 1, DM_TYPE_REQUEST_BASED = 2, DM_TYPE_DAX_BIO_BASED = 3, }; enum dax_access_mode { DAX_ACCESS = 0, DAX_RECOVERY_WRITE = 1, }; enum { DM_IO_ACCOUNTED = 0, DM_IO_WAS_SPLIT = 1, }; enum { GENHD_FL_REMOVABLE = 1, GENHD_FL_HIDDEN = 2, GENHD_FL_NO_PART = 4, }; typedef u16 blk_short_t; struct dm_stats_aux { bool merged; unsigned long long duration_ns; }; struct dm_io; struct dm_target; 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 mapped_device; 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 dax_device; 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_ima_device_table_metadata { char *device_metadata; unsigned int device_metadata_len; unsigned int num_targets; char *hash; unsigned int hash_len; }; struct dm_ima_measurements { struct dm_ima_device_table_metadata active_table; struct dm_ima_device_table_metadata inactive_table; unsigned int dm_version_str_len; }; struct target_type; 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_ima_measurements ima; }; 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 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; fmode_t mode; struct list_head devices; 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 *); typedef struct { u64 val; } pfn_t; 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 dax_device *dax_dev; fmode_t mode; char name[16]; }; struct dm_md_mempools { struct bio_set bs; struct bio_set io_bs; }; struct dm_stats_last_position { sector_t last_sector; unsigned int last_rw; }; 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 dev_type { u16 idVendor; u16 idProduct; const short *ff; }; typedef void (*dr_release_t)(struct device *, void *); struct snd_dma_data { int dma; }; struct snd_pcm_chmap_elem { unsigned char channels; unsigned char map[15]; }; enum snd_dma_sync_mode { SNDRV_DMA_SYNC_CPU = 0, SNDRV_DMA_SYNC_DEVICE = 1, }; enum { SNDRV_PCM_TSTAMP_NONE = 0, SNDRV_PCM_TSTAMP_ENABLE = 1, SNDRV_PCM_TSTAMP_LAST = 1, }; enum { SNDRV_PCM_STREAM_PLAYBACK = 0, SNDRV_PCM_STREAM_CAPTURE = 1, SNDRV_PCM_STREAM_LAST = 1, }; enum { SNDRV_PCM_TSTAMP_TYPE_GETTIMEOFDAY = 0, SNDRV_PCM_TSTAMP_TYPE_MONOTONIC = 1, SNDRV_PCM_TSTAMP_TYPE_MONOTONIC_RAW = 2, SNDRV_PCM_TSTAMP_TYPE_LAST = 2, }; enum { SNDRV_PCM_AUDIO_TSTAMP_TYPE_COMPAT = 0, SNDRV_PCM_AUDIO_TSTAMP_TYPE_DEFAULT = 1, SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK = 2, SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ABSOLUTE = 3, SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_ESTIMATED = 4, SNDRV_PCM_AUDIO_TSTAMP_TYPE_LINK_SYNCHRONIZED = 5, SNDRV_PCM_AUDIO_TSTAMP_TYPE_LAST = 5, }; enum { SNDRV_CHMAP_UNKNOWN = 0, SNDRV_CHMAP_NA = 1, SNDRV_CHMAP_MONO = 2, SNDRV_CHMAP_FL = 3, SNDRV_CHMAP_FR = 4, SNDRV_CHMAP_RL = 5, SNDRV_CHMAP_RR = 6, SNDRV_CHMAP_FC = 7, SNDRV_CHMAP_LFE = 8, SNDRV_CHMAP_SL = 9, SNDRV_CHMAP_SR = 10, SNDRV_CHMAP_RC = 11, SNDRV_CHMAP_FLC = 12, SNDRV_CHMAP_FRC = 13, SNDRV_CHMAP_RLC = 14, SNDRV_CHMAP_RRC = 15, SNDRV_CHMAP_FLW = 16, SNDRV_CHMAP_FRW = 17, SNDRV_CHMAP_FLH = 18, SNDRV_CHMAP_FCH = 19, SNDRV_CHMAP_FRH = 20, SNDRV_CHMAP_TC = 21, SNDRV_CHMAP_TFL = 22, SNDRV_CHMAP_TFR = 23, SNDRV_CHMAP_TFC = 24, SNDRV_CHMAP_TRL = 25, SNDRV_CHMAP_TRR = 26, SNDRV_CHMAP_TRC = 27, SNDRV_CHMAP_TFLC = 28, SNDRV_CHMAP_TFRC = 29, SNDRV_CHMAP_TSL = 30, SNDRV_CHMAP_TSR = 31, SNDRV_CHMAP_LLFE = 32, SNDRV_CHMAP_RLFE = 33, SNDRV_CHMAP_BC = 34, SNDRV_CHMAP_BLC = 35, SNDRV_CHMAP_BRC = 36, SNDRV_CHMAP_LAST = 36, }; typedef unsigned long snd_pcm_uframes_t; typedef long snd_pcm_sframes_t; typedef int snd_pcm_state_t; typedef int snd_pcm_access_t; struct snd_pcm_substream; typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long); struct snd_dma_device { int type; enum dma_data_direction dir; bool need_sync; struct device *dev; }; struct snd_dma_buffer { struct snd_dma_device dev; unsigned char *area; dma_addr_t addr; size_t bytes; void *private_data; }; struct snd_pcm_group { spinlock_t lock; struct mutex mutex; struct list_head substreams; refcount_t refs; }; struct snd_pcm; struct snd_pcm_str; struct snd_pcm_ops; struct snd_pcm_runtime; struct snd_timer; struct snd_info_entry; struct snd_pcm_substream { struct snd_pcm *pcm; struct snd_pcm_str *pstr; void *private_data; int number; char name[32]; int stream; struct pm_qos_request latency_pm_qos_req; size_t buffer_bytes_max; struct snd_dma_buffer dma_buffer; size_t dma_max; const struct snd_pcm_ops *ops; struct snd_pcm_runtime *runtime; struct snd_timer *timer; unsigned int timer_running: 1; long wait_time; struct snd_pcm_substream *next; struct list_head link_list; struct snd_pcm_group self_group; struct snd_pcm_group *group; int ref_count; atomic_t mmap_count; unsigned int f_flags; void (*pcm_release)(struct snd_pcm_substream *); struct pid *pid; struct snd_info_entry *proc_root; unsigned int hw_opened: 1; unsigned int managed_buffer_alloc: 1; }; struct snd_kcontrol; struct snd_pcm_str { int stream; struct snd_pcm *pcm; unsigned int substream_count; unsigned int substream_opened; struct snd_pcm_substream *substream; struct snd_info_entry *proc_root; struct snd_kcontrol *chmap_kctl; struct device dev; }; struct snd_card; struct snd_pcm { struct snd_card *card; struct list_head list; int device; unsigned int info_flags; unsigned short dev_class; unsigned short dev_subclass; char id[64]; char name[80]; struct snd_pcm_str streams[2]; struct mutex open_mutex; wait_queue_head_t open_wait; void *private_data; void (*private_free)(struct snd_pcm *); bool internal; bool nonatomic; bool no_device_suspend; }; struct snd_shutdown_f_ops; struct snd_card { int number; char id[16]; char driver[16]; char shortname[32]; char longname[80]; char irq_descr[32]; char mixername[80]; char components[128]; struct module *module; void *private_data; void (*private_free)(struct snd_card *); struct list_head devices; struct device ctl_dev; unsigned int last_numid; struct rw_semaphore controls_rwsem; rwlock_t ctl_files_rwlock; int controls_count; size_t user_ctl_alloc_size; struct list_head controls; struct list_head ctl_files; struct xarray ctl_numids; struct xarray ctl_hash; bool ctl_hash_collision; struct snd_info_entry *proc_root; struct proc_dir_entry *proc_root_link; struct list_head files_list; struct snd_shutdown_f_ops *s_f_ops; spinlock_t files_lock; int shutdown; struct completion *release_completion; struct device *dev; struct device card_dev; const struct attribute_group *dev_groups[4]; bool registered; bool managed; bool releasing; int sync_irq; wait_queue_head_t remove_sleep; size_t total_pcm_alloc_bytes; struct mutex memory_mutex; unsigned int power_state; atomic_t power_ref; wait_queue_head_t power_sleep; wait_queue_head_t power_ref_sleep; }; struct snd_info_buffer; struct snd_info_entry_text { void (*read)(struct snd_info_entry *, struct snd_info_buffer *); void (*write)(struct snd_info_entry *, struct snd_info_buffer *); }; struct snd_info_entry_ops; struct snd_info_entry { const char *name; umode_t mode; long size; unsigned short content; union { struct snd_info_entry_text text; const struct snd_info_entry_ops *ops; } c; struct snd_info_entry *parent; struct module *module; void *private_data; void (*private_free)(struct snd_info_entry *); struct proc_dir_entry *p; struct mutex access; struct list_head children; struct list_head list; }; struct snd_info_buffer { char *buffer; unsigned int curr; unsigned int size; unsigned int len; int stop; int error; }; struct snd_info_entry_ops { int (*open)(struct snd_info_entry *, unsigned short, void **); int (*release)(struct snd_info_entry *, unsigned short, void *); ssize_t (*read)(struct snd_info_entry *, void *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t); ssize_t (*write)(struct snd_info_entry *, void *, struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t); loff_t (*llseek)(struct snd_info_entry *, void *, struct file *, loff_t, int); __poll_t (*poll)(struct snd_info_entry *, void *, struct file *, poll_table *); int (*ioctl)(struct snd_info_entry *, void *, struct file *, unsigned int, unsigned long); int (*mmap)(struct snd_info_entry *, void *, struct inode *, struct file *, struct vm_area_struct *); }; typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); typedef int snd_ctl_elem_iface_t; struct snd_ctl_elem_id { unsigned int numid; snd_ctl_elem_iface_t iface; unsigned int device; unsigned int subdevice; unsigned char name[44]; unsigned int index; }; struct snd_ctl_elem_info; typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); struct snd_ctl_elem_value; typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); struct snd_ctl_file; struct snd_kcontrol_volatile { struct snd_ctl_file *owner; unsigned int access; }; struct snd_kcontrol { struct list_head list; struct snd_ctl_elem_id id; unsigned int count; snd_kcontrol_info_t *info; snd_kcontrol_get_t *get; snd_kcontrol_put_t *put; union { snd_kcontrol_tlv_rw_t *c; const unsigned int *p; } tlv; unsigned long private_value; void *private_data; void (*private_free)(struct snd_kcontrol *); struct snd_kcontrol_volatile vd[0]; }; typedef int snd_ctl_elem_type_t; struct snd_ctl_elem_info { struct snd_ctl_elem_id id; snd_ctl_elem_type_t type; unsigned int access; unsigned int count; __kernel_pid_t owner; union { struct { long min; long max; long step; } integer; struct { long long min; long long max; long long step; } integer64; struct { unsigned int items; unsigned int item; char name[64]; __u64 names_ptr; unsigned int names_length; } enumerated; unsigned char reserved[128]; } value; unsigned char reserved[64]; }; struct snd_aes_iec958 { unsigned char status[24]; unsigned char subcode[147]; unsigned char pad; unsigned char dig_subframe[4]; }; struct snd_ctl_elem_value { struct snd_ctl_elem_id id; unsigned int indirect: 1; union { union { long value[128]; long *value_ptr; } integer; union { long long value[64]; long long *value_ptr; } integer64; union { unsigned int item[128]; unsigned int *item_ptr; } enumerated; union { unsigned char data[512]; unsigned char *data_ptr; } bytes; struct snd_aes_iec958 iec958; } value; unsigned char reserved[128]; }; struct snd_fasync; struct snd_ctl_file { struct list_head list; struct snd_card *card; struct pid *pid; int preferred_subdevice[2]; wait_queue_head_t change_sleep; spinlock_t read_lock; struct snd_fasync *fasync; int subscribed; struct list_head events; }; struct snd_pcm_hw_params; struct snd_pcm_audio_tstamp_config; struct snd_pcm_audio_tstamp_report; struct snd_pcm_ops { int (*open)(struct snd_pcm_substream *); int (*close)(struct snd_pcm_substream *); int (*ioctl)(struct snd_pcm_substream *, unsigned int, void *); int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *); int (*hw_free)(struct snd_pcm_substream *); int (*prepare)(struct snd_pcm_substream *); int (*trigger)(struct snd_pcm_substream *, int); int (*sync_stop)(struct snd_pcm_substream *); snd_pcm_uframes_t (*pointer)(struct snd_pcm_substream *); int (*get_time_info)(struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); int (*fill_silence)(struct snd_pcm_substream *, int, unsigned long, unsigned long); int (*copy_user)(struct snd_pcm_substream *, int, unsigned long, void __attribute__((btf_type_tag("user"))) *, unsigned long); int (*copy_kernel)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long); struct page * (*page)(struct snd_pcm_substream *, unsigned long); int (*mmap)(struct snd_pcm_substream *, struct vm_area_struct *); int (*ack)(struct snd_pcm_substream *); }; struct snd_mask { __u32 bits[8]; }; struct snd_interval { unsigned int min; unsigned int max; unsigned int openmin: 1; unsigned int openmax: 1; unsigned int integer: 1; unsigned int empty: 1; }; struct snd_pcm_hw_params { unsigned int flags; struct snd_mask masks[3]; struct snd_mask mres[5]; struct snd_interval intervals[12]; struct snd_interval ires[9]; unsigned int rmask; unsigned int cmask; unsigned int info; unsigned int msbits; unsigned int rate_num; unsigned int rate_den; snd_pcm_uframes_t fifo_size; unsigned char reserved[64]; }; struct snd_pcm_audio_tstamp_config { u32 type_requested: 4; u32 report_delay: 1; }; struct snd_pcm_audio_tstamp_report { u32 valid: 1; u32 actual_type: 4; u32 accuracy_report: 1; u32 accuracy; }; typedef int snd_pcm_format_t; typedef int snd_pcm_subformat_t; union snd_pcm_sync_id { unsigned char id[16]; unsigned short id16[8]; unsigned int id32[4]; }; struct snd_pcm_hardware { unsigned int info; u64 formats; unsigned int rates; unsigned int rate_min; unsigned int rate_max; unsigned int channels_min; unsigned int channels_max; size_t buffer_bytes_max; size_t period_bytes_min; size_t period_bytes_max; unsigned int periods_min; unsigned int periods_max; size_t fifo_size; }; struct snd_pcm_hw_rule; struct snd_pcm_hw_constraints { struct snd_mask masks[3]; struct snd_interval intervals[12]; unsigned int rules_num; unsigned int rules_all; struct snd_pcm_hw_rule *rules; }; struct snd_pcm_mmap_status; struct snd_pcm_mmap_control; struct snd_pcm_runtime { snd_pcm_state_t state; snd_pcm_state_t suspended_state; struct snd_pcm_substream *trigger_master; struct timespec64 trigger_tstamp; bool trigger_tstamp_latched; int overrange; snd_pcm_uframes_t avail_max; snd_pcm_uframes_t hw_ptr_base; snd_pcm_uframes_t hw_ptr_interrupt; unsigned long hw_ptr_jiffies; unsigned long hw_ptr_buffer_jiffies; snd_pcm_sframes_t delay; u64 hw_ptr_wrap; snd_pcm_access_t access; snd_pcm_format_t format; snd_pcm_subformat_t subformat; unsigned int rate; unsigned int channels; snd_pcm_uframes_t period_size; unsigned int periods; snd_pcm_uframes_t buffer_size; snd_pcm_uframes_t min_align; size_t byte_align; unsigned int frame_bits; unsigned int sample_bits; unsigned int info; unsigned int rate_num; unsigned int rate_den; unsigned int no_period_wakeup: 1; int tstamp_mode; unsigned int period_step; snd_pcm_uframes_t start_threshold; snd_pcm_uframes_t stop_threshold; snd_pcm_uframes_t silence_threshold; snd_pcm_uframes_t silence_size; snd_pcm_uframes_t boundary; snd_pcm_uframes_t silence_start; snd_pcm_uframes_t silence_filled; union snd_pcm_sync_id sync; struct snd_pcm_mmap_status *status; struct snd_pcm_mmap_control *control; snd_pcm_uframes_t twake; wait_queue_head_t sleep; wait_queue_head_t tsleep; struct snd_fasync *fasync; bool stop_operating; struct mutex buffer_mutex; atomic_t buffer_accessing; void *private_data; void (*private_free)(struct snd_pcm_runtime *); struct snd_pcm_hardware hw; struct snd_pcm_hw_constraints hw_constraints; unsigned int timer_resolution; int tstamp_type; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; unsigned int buffer_changed: 1; struct snd_pcm_audio_tstamp_config audio_tstamp_config; struct snd_pcm_audio_tstamp_report audio_tstamp_report; struct timespec64 driver_tstamp; }; typedef char __pad_before_uframe[0]; typedef char __pad_after_uframe[0]; struct snd_pcm_mmap_status { snd_pcm_state_t state; __u32 pad1; __pad_before_uframe __pad1; snd_pcm_uframes_t hw_ptr; __pad_after_uframe __pad2; struct __kernel_timespec tstamp; snd_pcm_state_t suspended_state; __u32 pad3; struct __kernel_timespec audio_tstamp; }; struct snd_pcm_mmap_control { __pad_before_uframe __pad1; snd_pcm_uframes_t appl_ptr; __pad_before_uframe __pad2; __pad_before_uframe __pad3; snd_pcm_uframes_t avail_min; __pad_after_uframe __pad4; }; typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *, struct snd_pcm_hw_rule *); struct snd_pcm_hw_rule { unsigned int cond; int var; int deps[5]; snd_pcm_hw_rule_func_t func; void *private; }; struct snd_timer_hardware { unsigned int flags; unsigned long resolution; unsigned long resolution_min; unsigned long resolution_max; unsigned long ticks; int (*open)(struct snd_timer *); int (*close)(struct snd_timer *); unsigned long (*c_resolution)(struct snd_timer *); int (*start)(struct snd_timer *); int (*stop)(struct snd_timer *); int (*set_period)(struct snd_timer *, unsigned long, unsigned long); int (*precise_resolution)(struct snd_timer *, unsigned long *, unsigned long *); }; struct snd_timer { int tmr_class; struct snd_card *card; struct module *module; int tmr_device; int tmr_subdevice; char id[64]; char name[80]; unsigned int flags; int running; unsigned long sticks; void *private_data; void (*private_free)(struct snd_timer *); struct snd_timer_hardware hw; spinlock_t lock; struct list_head device_list; struct list_head open_list_head; struct list_head active_list_head; struct list_head ack_list_head; struct list_head sack_list_head; struct work_struct task_work; int max_instances; int num_instances; }; typedef int snd_pcm_hw_param_t; struct snd_ratden { unsigned int num_min; unsigned int num_max; unsigned int num_step; unsigned int den; }; struct snd_pcm_channel_info { unsigned int channel; __kernel_off_t offset; unsigned int first; unsigned int step; }; struct snd_kcontrol_new { snd_ctl_elem_iface_t iface; unsigned int device; unsigned int subdevice; const char *name; unsigned int index; unsigned int access; unsigned int count; snd_kcontrol_info_t *info; snd_kcontrol_get_t *get; snd_kcontrol_put_t *put; union { snd_kcontrol_tlv_rw_t *c; const unsigned int *p; } tlv; unsigned long private_value; }; struct snd_pcm_chmap { struct snd_pcm *pcm; int stream; struct snd_kcontrol *kctl; const struct snd_pcm_chmap_elem *chmap; unsigned int max_channels; unsigned int channel_mask; void *private_data; }; struct snd_ratnum { unsigned int num; unsigned int den_min; unsigned int den_max; unsigned int den_step; }; struct snd_pcm_hw_constraint_list { const unsigned int *list; unsigned int count; unsigned int mask; }; struct snd_pcm_hw_constraint_ranges { unsigned int count; const struct snd_interval *ranges; unsigned int mask; }; struct snd_pcm_hw_constraint_ratnums { int nrats; const struct snd_ratnum *rats; }; struct snd_pcm_hw_constraint_ratdens { int nrats; const struct snd_ratden *rats; }; typedef int (*pcm_copy_f)(struct snd_pcm_substream *, snd_pcm_uframes_t, void *, snd_pcm_uframes_t, snd_pcm_uframes_t, pcm_transfer_f); struct csum_state { __wsum csum; size_t off; }; struct ahash_request; 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)); struct bpf_verifier_ops; struct btf_member; 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 *); const struct btf_type *type; const struct btf_type *value_type; const char *name; struct btf_func_model func_models[64]; u32 type_id; u32 value_id; }; 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_access_type { BPF_READ = 1, BPF_WRITE = 2, }; 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, }; struct bpf_insn_access_aux; struct bpf_verifier_log; 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, enum bpf_access_type, u32 *, enum bpf_type_flag *); }; struct bpf_verifier_log { u32 level; char kbuf[1024]; char __attribute__((btf_type_tag("user"))) *ubuf; u32 len_used; u32 len_total; }; struct bpf_subprog_info { u32 start; u32 linfo_idx; u16 stack_depth; bool has_tail_call; bool tail_call_reachable; bool has_ld_abs; bool is_async_cb; }; struct bpf_id_pair { u32 old; u32 cur; }; typedef sockptr_t bpfptr_t; struct bpf_verifier_stack_elem; struct bpf_verifier_state; struct bpf_verifier_state_list; struct bpf_insn_aux_data; struct bpf_verifier_env { u32 insn_idx; u32 prev_insn_idx; struct bpf_prog *prog; const struct bpf_verifier_ops *ops; struct bpf_verifier_stack_elem *head; int stack_size; bool strict_alignment; bool test_state_freq; 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; 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; 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[257]; struct bpf_id_pair idmap_scratch[600]; struct { int *insn_state; int *insn_stack; int cur_stack; } cfg; 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; u32 prev_log_len; u32 prev_insn_print_len; char type_str_buf[128]; }; struct bpf_active_lock { void *ptr; u32 id; }; struct bpf_idx_pair; 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 first_insn_idx; u32 last_insn_idx; struct bpf_idx_pair *jmp_history; u32 jmp_history_cnt; }; 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_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; bool in_callback_fn; struct tnum callback_ret_range; bool in_async_callback_fn; int acquired_refs; struct bpf_reference_state *refs; int allocated_stack; struct bpf_stack_state *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_idx_pair { u32 prev_idx; u32 idx; }; struct bpf_verifier_state_list { struct bpf_verifier_state state; struct bpf_verifier_state_list *next; int miss_cnt; int hit_cnt; }; 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; unsigned long 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; }; u64 obj_new_size; 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 storage_get_func_atomic; bool is_iter_next; u8 alu_state; unsigned int orig_idx; bool jmp_point; bool prune_point; bool force_checkpoint; }; struct btf_struct_meta { u32 btf_id; struct btf_record *record; struct btf_field_offs *field_offs; }; 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; }; struct btf_member { __u32 name_off; __u32 type; __u32 offset; }; 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 { 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, }; struct bpf_dummy_ops_state { int val; }; 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 bpf_tramp_link; struct bpf_tramp_links { struct bpf_tramp_link *links[38]; int nr_links; }; struct bpf_tramp_link { struct bpf_link link; struct hlist_node tramp_hlist; u64 cookie; }; 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_log_buf { unsigned int count; char buf[1020]; }; 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 *); void (*compat_from_user)(void *, const void *); int (*compat_to_user)(void __attribute__((btf_type_tag("user"))) *, const void *); struct module *me; const char *table; unsigned int targetsize; unsigned int usersize; unsigned int compatsize; 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 *); void (*compat_from_user)(void *, const void *); int (*compat_to_user)(void __attribute__((btf_type_tag("user"))) *, const void *); struct module *me; const char *table; unsigned int matchsize; unsigned int usersize; unsigned int compatsize; 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; }; enum { CONNSECMARK_SAVE = 1, CONNSECMARK_RESTORE = 2, }; 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, }; struct nf_conntrack_ecache { unsigned long cache; u16 ctmask; u16 expmask; u32 missed; u32 portid; }; struct xt_connsecmark_target_info { __u8 mode; }; struct gre_protocol { int (*handler)(struct sk_buff *); void (*err_handler)(struct sk_buff *, u32); }; 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; }; struct gre_base_hdr { __be16 flags; __be16 protocol; }; struct erspan_base_hdr { __u8 vlan_upper: 4; __u8 ver: 4; __u8 vlan: 8; __u8 session_id_upper: 2; __u8 t: 1; __u8 en: 2; __u8 cos: 3; __u8 session_id: 8; }; struct tnl_ptk_info { __be16 flags; __be16 proto; __be32 key; __be32 seq; int hdr_len; }; struct xfrm_input_afinfo { u8 family; bool is_ipip; int (*callback)(struct sk_buff *, u8, int); }; struct gro_cell; struct gro_cells { struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; }; 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 poll_owner; struct net_device *dev; struct gro_list gro_hash[8]; struct sk_buff *skb; struct list_head rx_list; int rx_count; struct hrtimer timer; struct list_head dev_list; struct hlist_node napi_hash_node; unsigned int napi_id; struct task_struct *thread; }; struct gro_cell { struct sk_buff_head napi_skbs; struct napi_struct napi; }; struct xfrm_trans_tasklet { struct work_struct work; spinlock_t queue_lock; struct sk_buff_head queue; }; struct xfrm_skb_cb { struct xfrm_tunnel_skb_cb header; union { struct { __u32 low; __u32 hi; } output; struct { __be32 low; __be32 hi; } input; } seq; }; struct dst_cache_pcpu; struct dst_cache { struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; unsigned long reset_ts; }; struct ip_tunnel_encap { u16 type; u16 flags; __be16 sport; __be16 dport; }; 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 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 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 __ip6_tnl_parm { char name[16]; int link; __u8 proto; __u8 encap_limit; __u8 hop_limit; bool collect_md; __be32 flowinfo; __u32 flags; struct in6_addr laddr; struct in6_addr raddr; __be16 i_flags; __be16 o_flags; __be32 i_key; __be32 o_key; __u32 fwmark; __u32 index; __u8 erspan_ver; __u8 dir; __u16 hwid; }; struct ip6_tnl { struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *next; struct net_device *dev; netdevice_tracker dev_tracker; struct net *net; struct __ip6_tnl_parm parms; struct flowi fl; struct dst_cache dst_cache; struct gro_cells gro_cells; int err_count; unsigned long err_time; __u32 i_seqno; atomic_t o_seqno; int hlen; int tun_hlen; int encap_hlen; struct ip_tunnel_encap encap; int mlink; }; struct xfrm_spi_skb_cb { struct xfrm_tunnel_skb_cb header; unsigned int daddroff; unsigned int family; __be32 seq; }; struct xfrm_trans_cb { union { struct inet_skb_parm h4; struct inet6_skb_parm h6; } header; int (*finish)(struct net *, struct sock *, struct sk_buff *); struct net *net; }; 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 *); unsigned int descsize; int: 32; unsigned int digestsize; unsigned int statesize; struct crypto_alg base; }; struct shash_desc { struct crypto_shash *tfm; void *__ctx[0]; }; struct krb5_ctx; struct xdr_netobj; struct gss_krb5_enctype { const u32 etype; const u32 ctype; const char *name; const char *encrypt_name; const char *aux_cipher; const char *cksum_name; const u16 signalg; const u16 sealalg; const u32 cksumlength; const u32 keyed_cksum; const u32 keybytes; const u32 keylength; const u32 Kc_length; const u32 Ke_length; const u32 Ki_length; int (*import_ctx)(struct krb5_ctx *, gfp_t); int (*derive_key)(const struct gss_krb5_enctype *, const struct xdr_netobj *, struct xdr_netobj *, const struct xdr_netobj *, gfp_t); u32 (*encrypt)(struct krb5_ctx *, u32, struct xdr_buf *, struct page **); u32 (*decrypt)(struct krb5_ctx *, u32, u32, struct xdr_buf *, u32 *, u32 *); u32 (*get_mic)(struct krb5_ctx *, struct xdr_buf *, struct xdr_netobj *); u32 (*verify_mic)(struct krb5_ctx *, struct xdr_buf *, struct xdr_netobj *); u32 (*wrap)(struct krb5_ctx *, int, struct xdr_buf *, struct page **); u32 (*unwrap)(struct krb5_ctx *, int, int, struct xdr_buf *, unsigned int *, unsigned int *); }; struct xdr_netobj { unsigned int len; u8 *data; }; struct crypto_sync_skcipher; struct crypto_ahash; struct krb5_ctx { int initiate; u32 enctype; u32 flags; const struct gss_krb5_enctype *gk5e; struct crypto_sync_skcipher *enc; struct crypto_sync_skcipher *seq; struct crypto_sync_skcipher *acceptor_enc; struct crypto_sync_skcipher *initiator_enc; struct crypto_sync_skcipher *acceptor_enc_aux; struct crypto_sync_skcipher *initiator_enc_aux; struct crypto_ahash *acceptor_sign; struct crypto_ahash *initiator_sign; struct crypto_ahash *initiator_integ; struct crypto_ahash *acceptor_integ; u8 Ksess[32]; u8 cksum[32]; atomic_t seq_send; atomic64_t seq_send64; time64_t endtime; struct xdr_netobj mech_used; }; struct crypto_skcipher { unsigned int reqsize; struct crypto_tfm base; }; struct crypto_sync_skcipher { struct crypto_skcipher base; }; struct ahash_request; struct crypto_ahash { 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); 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 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 rate_control_ops; struct rate_control_ref { const struct rate_control_ops *ops; void *priv; }; 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_tx_info; 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_tx_info { u32 flags; u32 band: 3; u32 ack_frame_id: 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; }; 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; u16 tx_time; u8 flags; 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 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_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 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 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_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 wiphy_opmode_flag { STA_OPMODE_MAX_BW_CHANGED = 1, STA_OPMODE_SMPS_MODE_CHANGED = 2, STA_OPMODE_N_SS_CHANGED = 4, }; 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_EHT_PUNCTURING = 4294967296LL, }; struct sta_opmode_info { u32 changed; enum nl80211_smps_mode smps_mode; enum nl80211_chan_width bw; u8 rx_nss; }; 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, }; 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_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_conf_flags { IEEE80211_CONF_MONITOR = 1, IEEE80211_CONF_PS = 2, IEEE80211_CONF_IDLE = 4, IEEE80211_CONF_OFFCHANNEL = 8, }; 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 ieee80211_max_queues { IEEE80211_MAX_QUEUES = 16, IEEE80211_MAX_QUEUE_MAP = 65535, }; 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 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 { IEEE80211_PROBE_FLAG_DIRECTED = 1, IEEE80211_PROBE_FLAG_MIN_CONTENT = 2, IEEE80211_PROBE_FLAG_RANDOM_SN = 4, }; 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 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_VENDOR_SPECIFIC_PROTECTED = 126, WLAN_CATEGORY_VENDOR_SPECIFIC = 127, }; enum assoc_status { ASSOC_SUCCESS = 0, ASSOC_REJECTED = 1, ASSOC_TIMEOUT = 2, ASSOC_ABANDON = 3, }; 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 ieee80211_conn_flags { IEEE80211_CONN_DISABLE_HT = 1, IEEE80211_CONN_DISABLE_40MHZ = 2, IEEE80211_CONN_DISABLE_VHT = 4, IEEE80211_CONN_DISABLE_80P80MHZ = 8, IEEE80211_CONN_DISABLE_160MHZ = 16, IEEE80211_CONN_DISABLE_HE = 32, IEEE80211_CONN_DISABLE_EHT = 64, IEEE80211_CONN_DISABLE_320MHZ = 128, }; 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, }; 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, }; enum ieee80211_ac_numbers { IEEE80211_AC_VO = 0, IEEE80211_AC_VI = 1, IEEE80211_AC_BE = 2, IEEE80211_AC_BK = 3, }; enum mac80211_rx_flags { RX_FLAG_MMIC_ERROR = 1, RX_FLAG_DECRYPTED = 2, RX_FLAG_MACTIME_PLCP_START = 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_START = 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_END = 65536, RX_FLAG_ONLY_MONITOR = 131072, RX_FLAG_SKIP_MONITOR = 262144, RX_FLAG_AMSDU_MORE = 524288, RX_FLAG_RADIOTAP_VENDOR_DATA = 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 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, }; 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, }; enum ieee80211_timeout_interval_type { WLAN_TIMEOUT_REASSOC_DEADLINE = 1, WLAN_TIMEOUT_KEY_LIFETIME = 2, WLAN_TIMEOUT_ASSOC_COMEBACK = 3, }; enum ieee80211_idle_options { WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1, }; enum ieee80211_mle_subelems { IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0, IEEE80211_MLE_SUBELEM_FRAGMENT = 254, }; enum ieee80211_bss_corrupt_data_flags { IEEE80211_BSS_CORRUPT_BEACON = 1, IEEE80211_BSS_CORRUPT_PROBE_RESP = 2, }; 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_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 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 ieee80211_tdls_lnkie; struct ieee80211_ch_switch_timing; struct ieee80211_tim_ie; 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_addba_ext_ie; struct ieee80211_aid_response_ie; struct ieee80211_multi_link_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 *multi_link; 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 multi_link_len; struct ieee80211_mle_per_sta_profile *prof; size_t sta_prof_len; bool parse_error; size_t scratch_len; u8 *scratch_pos; u8 scratch[0]; }; 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; u8 virtual_map[1]; }; 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_addba_ext_ie { u8 data; }; 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_mle_per_sta_profile { __le16 control; u8 sta_info_len; u8 variable[0]; } __attribute__((packed)); struct ieee80211_elems_parse_params { const u8 *start; size_t len; bool action; u64 filter; u32 crc; struct cfg80211_bss *bss; int link_id; bool from_ap; size_t scratch_len; }; struct cfg80211_rx_assoc_resp { const u8 *buf; size_t len; const u8 *req_ies; size_t req_ies_len; int uapsd_queues; const u8 *ap_mld_addr; struct { const u8 *addr; 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 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 ieee80211_csa_ie { struct cfg80211_chan_def chandef; u8 mode; u8 count; u8 ttl; u16 pre_value; u16 reason_code; u32 max_switch_time; }; struct cfg80211_assoc_failure { const u8 *ap_mld_addr; struct cfg80211_bss *bss[15]; bool timeout; }; struct ieee80211_eht_operation_info { u8 control; u8 ccfs0; u8 ccfs1; u8 optional[0]; }; 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 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 { struct acpi_pci_root_info common; struct pci_sysdata sd; bool mcfg_added; u8 start_bus; u8 end_bus; }; struct resource_entry { struct list_head node; struct resource *res; resource_size_t offset; struct resource __res; }; 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]; }; typedef __u32 Elf32_Word; struct elf32_note { Elf32_Word n_namesz; Elf32_Word n_descsz; Elf32_Word n_type; }; 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; 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)); 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; } __attribute__((packed)); 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]; } __attribute__((packed)); struct desc_ptr { unsigned short size; unsigned long address; } __attribute__((packed)); 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, }; struct boot_params_to_save { unsigned int start; unsigned int len; }; struct __large_struct { unsigned long buf[100]; }; struct sigaltstack { void __attribute__((btf_type_tag("user"))) *ss_sp; int ss_flags; __kernel_size_t ss_size; }; typedef struct sigaltstack stack_t; 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 siginfo { union { struct { int si_signo; int si_errno; int si_code; union __sifields _sifields; }; int _si_pad[32]; }; }; struct rt_sigframe { char __attribute__((btf_type_tag("user"))) *pretcode; struct ucontext uc; struct siginfo info; }; struct ksignal { struct k_sigaction ka; kernel_siginfo_t info; int sig; }; typedef struct siginfo siginfo_t; 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 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 smca_hwid; struct smca_bank { const struct smca_hwid *hwid; u32 id; u8 sysfs_id; }; struct smca_hwid { unsigned int bank_type; u32 hwid_mcatype; }; 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 smca_bank_name { const char *name; const char *long_name; }; struct threshold_attr { struct attribute attr; ssize_t (*show)(struct threshold_block *, char *); ssize_t (*store)(struct threshold_block *, const char *, size_t); }; enum smca_bank_types { SMCA_LS = 0, SMCA_LS_V2 = 1, SMCA_IF = 2, SMCA_L2_CACHE = 3, SMCA_DE = 4, SMCA_RESERVED = 5, SMCA_EX = 6, SMCA_FP = 7, SMCA_L3_CACHE = 8, SMCA_CS = 9, SMCA_CS_V2 = 10, SMCA_PIE = 11, SMCA_UMC = 12, SMCA_UMC_V2 = 13, SMCA_PB = 14, SMCA_PSP = 15, SMCA_PSP_V2 = 16, SMCA_SMU = 17, SMCA_SMU_V2 = 18, SMCA_MP5 = 19, SMCA_MPDMA = 20, SMCA_NBIO = 21, SMCA_PCIE = 22, SMCA_PCIE_V2 = 23, SMCA_XGMI_PCS = 24, SMCA_NBIF = 25, SMCA_SHUB = 26, SMCA_SATA = 27, SMCA_USB = 28, SMCA_GMI_PCS = 29, SMCA_XGMI_PHY = 30, SMCA_WAFL_PHY = 31, SMCA_GMI_PHY = 32, N_SMCA_BANK_TYPES = 33, }; enum mca_msr { MCA_CTL = 0, MCA_STATUS = 1, MCA_ADDR = 2, MCA_MISC = 3, }; struct mce_bank { u64 ctl; __u64 init: 1; __u64 lsb_in_status: 1; __u64 __reserved_1: 62; }; struct thresh_restart { struct threshold_block *b; int reset; int set_lvt_off; int lvt_off; u16 old_limit; }; struct irqentry_state { union { bool exit_rcu; bool lockdep; }; }; typedef struct irqentry_state irqentry_state_t; struct amd_l3_cache { unsigned int indices; u8 subcaches[4]; }; 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 mce { __u64 status; __u64 misc; __u64 addr; __u64 mcgstatus; __u64 ip; __u64 tsc; __u64 time; __u8 cpuvendor; __u8 inject_flags; __u8 severity; __u8 pad; __u32 cpuid; __u8 cs; __u8 bank; __u8 cpu; __u8 finished; __u32 extcpu; __u32 socketid; __u32 apicid; __u64 mcgcap; __u64 synd; __u64 ipid; __u64 ppin; __u32 microcode; __u64 kflags; }; 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 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 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 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; }; struct addr_marker { unsigned long start_address; const char *name; unsigned long max_lines; }; enum address_markers_idx { USER_SPACE_NR = 0, KERNEL_SPACE_NR = 1, LDT_NR = 2, LOW_KERNEL_NR = 3, VMALLOC_START_NR = 4, VMEMMAP_START_NR = 5, CPU_ENTRY_AREA_NR = 6, ESPFIX_START_NR = 7, EFI_END_NR = 8, HIGH_KERNEL_NR = 9, MODULES_VADDR_NR = 10, MODULES_END_NR = 11, FIXADDR_START_NR = 12, END_OF_SPACE_NR = 13, }; struct ptdump_range; struct ptdump_state { void (*note_page)(struct ptdump_state *, unsigned long, int, u64); void (*effective_prot)(struct ptdump_state *, int, u64); const struct ptdump_range *range; }; struct pg_state { struct ptdump_state ptdump; int level; pgprotval_t current_prot; pgprotval_t effective_prot; pgprotval_t prot_levels[5]; unsigned long start_address; const struct addr_marker *marker; unsigned long lines; bool to_dmesg; bool check_wx; unsigned long wx_pages; struct seq_file *seq; }; struct ptdump_range { unsigned long start; unsigned long end; }; enum umh_disable_depth { UMH_ENABLED = 0, UMH_FREEZING = 1, UMH_DISABLED = 2, }; 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; 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 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 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_s2idle_ops { int (*begin)(); int (*prepare)(); int (*prepare_late)(); void (*check)(); bool (*wake)(); void (*restore_early)(); void (*restore)(); void (*end)(); }; enum s2idle_states { S2IDLE_STATE_NONE = 0, S2IDLE_STATE_ENTER = 1, S2IDLE_STATE_WAKE = 2, }; enum { TEST_NONE = 0, TEST_CORE = 1, TEST_CPUS = 2, TEST_PLATFORM = 3, TEST_DEVICES = 4, TEST_FREEZER = 5, __TEST_AFTER_LAST = 6, }; enum suspend_stat_step { 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 swait_queue { struct task_struct *task; struct list_head task_list; }; typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); 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_CUSTOM = 512, }; 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, }; 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 {}; 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 { 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, }; struct hrtimer_sleeper { struct hrtimer timer; struct task_struct *task; }; struct softirq_action { void (*action)(struct softirq_action *); }; struct boot_triggers { const char *event; char *trigger; }; 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, }; 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_COMM = 6, FILTER_CPU = 7, }; 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 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_PRINTK = 256, TRACE_ITER_ANNOTATE = 512, TRACE_ITER_USERSTACKTRACE = 1024, TRACE_ITER_SYM_USEROBJ = 2048, TRACE_ITER_PRINTK_MSGONLY = 4096, TRACE_ITER_CONTEXT_INFO = 8192, TRACE_ITER_LATENCY_FMT = 16384, TRACE_ITER_RECORD_CMD = 32768, TRACE_ITER_RECORD_TGID = 65536, TRACE_ITER_OVERWRITE = 131072, TRACE_ITER_STOP_ON_FREE = 262144, TRACE_ITER_IRQ_INFO = 524288, TRACE_ITER_MARKERS = 1048576, TRACE_ITER_EVENT_FORK = 2097152, TRACE_ITER_PAUSE_ON_TRACE = 4194304, TRACE_ITER_HASH_PTR = 8388608, TRACE_ITER_FUNCTION = 16777216, TRACE_ITER_FUNC_FORK = 33554432, TRACE_ITER_DISPLAY_GRAPH = 67108864, TRACE_ITER_STACKTRACE = 134217728, }; enum { FORMAT_HEADER = 1, FORMAT_FIELD_SEPERATOR = 2, FORMAT_PRINTFMT = 3, }; 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 module_string { struct list_head next; struct module *module; char *str; }; struct event_probe_data { struct trace_event_file *file; unsigned long count; int ref; bool enable; }; struct ftrace_func_mapper; struct bpf_cgroup_storage_map { struct bpf_map map; spinlock_t lock; struct rb_root root; struct list_head list; long: 64; long: 64; long: 64; long: 64; }; struct bpf_local_storage_data { struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; u8 data[0]; }; 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; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct bpf_local_storage_map_bucket { struct hlist_head list; raw_spinlock_t lock; }; enum { BPF_ANY = 0, BPF_NOEXIST = 1, BPF_EXIST = 2, BPF_F_LOCK = 4, }; enum bpf_cgroup_storage_type { BPF_CGROUP_STORAGE_SHARED = 0, BPF_CGROUP_STORAGE_PERCPU = 1, __BPF_CGROUP_STORAGE_MAX = 2, }; 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; }; typedef struct { unsigned long val; } swp_entry_t; 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[1]; unsigned int max_huge_pages_node[1]; unsigned int nr_huge_pages_node[1]; unsigned int free_huge_pages_node[1]; unsigned int surplus_huge_pages_node[1]; struct cftype cgroup_files_dfl[8]; struct cftype cgroup_files_legacy[10]; char name[32]; }; enum ttu_flags { TTU_SPLIT_HUGE_PMD = 4, TTU_IGNORE_MLOCK = 8, TTU_SYNC = 16, TTU_IGNORE_HWPOISON = 32, TTU_BATCH_FLUSH = 64, TTU_RMAP_LOCKED = 128, }; 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 migration_target_control { int nid; nodemask_t *nmask; gfp_t gfp_mask; }; typedef unsigned int isolate_mode_t; 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 int rmap_t; 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 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; }; typedef struct page *new_page_t(struct page *, unsigned long); typedef void free_page_t(struct page *, unsigned long); struct migrate_pages_stats { int nr_succeeded; int nr_failed_pages; int nr_thp_succeeded; int nr_thp_failed; int nr_thp_split; }; 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]; }; typedef __kernel_fsid_t compat_fsid_t; struct compat_statfs { int f_type; int f_bsize; int f_blocks; int f_bfree; int f_bavail; int f_files; int f_ffree; compat_fsid_t f_fsid; int f_namelen; int f_frsize; int f_flags; int f_spare[4]; }; typedef u32 compat_size_t; struct compat_statfs64 { __u32 f_type; __u32 f_bsize; __u64 f_blocks; __u64 f_bfree; __u64 f_bavail; __u64 f_files; __u64 f_ffree; __kernel_fsid_t f_fsid; __u32 f_namelen; __u32 f_frsize; __u32 f_flags; __u32 f_spare[4]; } __attribute__((packed)); typedef s32 compat_daddr_t; typedef u32 compat_ino_t; struct compat_ustat { compat_daddr_t f_tfree; compat_ino_t f_tinode; char f_fname[6]; char f_fpack[6]; }; 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_lock *); typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); struct file_lock_list_struct { spinlock_t lock; struct hlist_head hlist; }; 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 *fl_blocker; fl_owner_t fl_owner; unsigned int fl_pid; unsigned int fl_flags; unsigned char fl_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_lock *fl; unsigned long i_ino; dev_t s_dev; struct file_lock *fl_blocker; fl_owner_t fl_owner; unsigned int fl_flags; unsigned char fl_type; unsigned long fl_break_time; unsigned long fl_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 fl_owner; unsigned int fl_flags; unsigned char fl_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]; }; 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 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 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 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; }; 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 kernfs_node_type { KERNFS_DIR = 1, KERNFS_FILE = 2, KERNFS_LINK = 4, }; struct kernfs_super_info { struct super_block *sb; struct kernfs_root *root; const void *ns; struct list_head node; }; enum ext4_li_mode { EXT4_LI_MODE_PREFETCH_BBITMAP = 0, EXT4_LI_MODE_ITABLE = 1, }; enum { EXT4_STATE_JDATA = 0, EXT4_STATE_NEW = 1, EXT4_STATE_XATTR = 2, EXT4_STATE_NO_EXPAND = 3, EXT4_STATE_DA_ALLOC_CLOSE = 4, EXT4_STATE_EXT_MIGRATE = 5, EXT4_STATE_NEWENTRY = 6, EXT4_STATE_MAY_INLINE_DATA = 7, EXT4_STATE_EXT_PRECACHED = 8, EXT4_STATE_LUSTRE_EA_INODE = 9, EXT4_STATE_VERITY_IN_PROGRESS = 10, EXT4_STATE_FC_COMMITTING = 11, EXT4_STATE_ORPHAN_FILE = 12, }; 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 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 mb_cache; struct ext4_journal_trigger { struct jbd2_buffer_trigger_type tr_triggers; struct super_block *sb; }; struct fscrypt_dummy_policy {}; 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 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; 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 block_device *s_journal_bdev; char __attribute__((btf_type_tag("rcu"))) *s_qf_names[3]; int s_jquota_fmt; 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; 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_mb_max_inode_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; 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_groups_scanned; atomic_t s_bal_goals; atomic_t s_bal_breaks; atomic_t s_bal_2orders; atomic_t s_bal_cr0_bad_suggestions; atomic_t s_bal_cr1_bad_suggestions; atomic64_t s_bal_cX_groups_considered[4]; atomic64_t s_bal_cX_hits[4]; atomic64_t s_bal_cX_failed[4]; 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; 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_error_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; long: 64; long: 64; long: 64; }; 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; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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; }; 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; }; struct msdos_dir_entry; 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 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 nfs4_slot { struct nfs4_slot_table *table; struct nfs4_slot *next; unsigned long generation; u32 slot_nr; u32 seq_nr; u32 seq_nr_last_acked; u32 seq_nr_highest_sent; unsigned int privileged: 1; unsigned int seq_done: 1; }; struct nfs4_slot_table { struct nfs4_session *session; struct nfs4_slot *slots; unsigned long used_slots[16]; spinlock_t slot_tbl_lock; struct rpc_wait_queue slot_tbl_waitq; wait_queue_head_t slot_waitq; u32 max_slots; u32 max_slotid; u32 highest_used_slotid; u32 target_highest_slotid; u32 server_highest_slotid; s32 d_target_highest_slotid; s32 d2_target_highest_slotid; unsigned long generation; struct completion complete; unsigned long slot_tbl_state; }; struct nfs4_sessionid { unsigned char data[16]; }; struct nfs4_channel_attrs { u32 max_rqst_sz; u32 max_resp_sz; u32 max_resp_sz_cached; u32 max_ops; u32 max_reqs; }; struct nfs4_session { struct nfs4_sessionid sess_id; u32 flags; unsigned long session_state; u32 hash_alg; u32 ssv_len; struct nfs4_channel_attrs fc_attrs; struct nfs4_slot_table fc_slot_table; struct nfs4_channel_attrs bc_attrs; struct nfs4_slot_table bc_slot_table; struct nfs_client *clp; }; enum nfs_ftype4 { NF4BAD = 0, NF4REG = 1, NF4DIR = 2, NF4BLK = 3, NF4CHR = 4, NF4LNK = 5, NF4SOCK = 6, NF4FIFO = 7, NF4ATTRDIR = 8, NF4NAMEDATTR = 9, }; enum nfs_opnum4 { OP_ACCESS = 3, OP_CLOSE = 4, OP_COMMIT = 5, OP_CREATE = 6, OP_DELEGPURGE = 7, OP_DELEGRETURN = 8, OP_GETATTR = 9, OP_GETFH = 10, OP_LINK = 11, OP_LOCK = 12, OP_LOCKT = 13, OP_LOCKU = 14, OP_LOOKUP = 15, OP_LOOKUPP = 16, OP_NVERIFY = 17, OP_OPEN = 18, OP_OPENATTR = 19, OP_OPEN_CONFIRM = 20, OP_OPEN_DOWNGRADE = 21, OP_PUTFH = 22, OP_PUTPUBFH = 23, OP_PUTROOTFH = 24, OP_READ = 25, OP_READDIR = 26, OP_READLINK = 27, OP_REMOVE = 28, OP_RENAME = 29, OP_RENEW = 30, OP_RESTOREFH = 31, OP_SAVEFH = 32, OP_SECINFO = 33, OP_SETATTR = 34, OP_SETCLIENTID = 35, OP_SETCLIENTID_CONFIRM = 36, OP_VERIFY = 37, OP_WRITE = 38, OP_RELEASE_LOCKOWNER = 39, OP_BACKCHANNEL_CTL = 40, OP_BIND_CONN_TO_SESSION = 41, OP_EXCHANGE_ID = 42, OP_CREATE_SESSION = 43, OP_DESTROY_SESSION = 44, OP_FREE_STATEID = 45, OP_GET_DIR_DELEGATION = 46, OP_GETDEVICEINFO = 47, OP_GETDEVICELIST = 48, OP_LAYOUTCOMMIT = 49, OP_LAYOUTGET = 50, OP_LAYOUTRETURN = 51, OP_SECINFO_NO_NAME = 52, OP_SEQUENCE = 53, OP_SET_SSV = 54, OP_TEST_STATEID = 55, OP_WANT_DELEGATION = 56, OP_DESTROY_CLIENTID = 57, OP_RECLAIM_COMPLETE = 58, OP_ALLOCATE = 59, OP_COPY = 60, OP_COPY_NOTIFY = 61, OP_DEALLOCATE = 62, OP_IO_ADVISE = 63, OP_LAYOUTERROR = 64, OP_LAYOUTSTATS = 65, OP_OFFLOAD_CANCEL = 66, OP_OFFLOAD_STATUS = 67, OP_READ_PLUS = 68, OP_SEEK = 69, OP_WRITE_SAME = 70, OP_CLONE = 71, OP_GETXATTR = 72, OP_SETXATTR = 73, OP_LISTXATTRS = 74, OP_REMOVEXATTR = 75, OP_ILLEGAL = 10044, }; enum nfsstat4 { NFS4_OK = 0, NFS4ERR_PERM = 1, NFS4ERR_NOENT = 2, NFS4ERR_IO = 5, NFS4ERR_NXIO = 6, NFS4ERR_ACCESS = 13, NFS4ERR_EXIST = 17, NFS4ERR_XDEV = 18, NFS4ERR_NOTDIR = 20, NFS4ERR_ISDIR = 21, NFS4ERR_INVAL = 22, NFS4ERR_FBIG = 27, NFS4ERR_NOSPC = 28, NFS4ERR_ROFS = 30, NFS4ERR_MLINK = 31, NFS4ERR_NAMETOOLONG = 63, NFS4ERR_NOTEMPTY = 66, NFS4ERR_DQUOT = 69, NFS4ERR_STALE = 70, NFS4ERR_BADHANDLE = 10001, NFS4ERR_BAD_COOKIE = 10003, NFS4ERR_NOTSUPP = 10004, NFS4ERR_TOOSMALL = 10005, NFS4ERR_SERVERFAULT = 10006, NFS4ERR_BADTYPE = 10007, NFS4ERR_DELAY = 10008, NFS4ERR_SAME = 10009, NFS4ERR_DENIED = 10010, NFS4ERR_EXPIRED = 10011, NFS4ERR_LOCKED = 10012, NFS4ERR_GRACE = 10013, NFS4ERR_FHEXPIRED = 10014, NFS4ERR_SHARE_DENIED = 10015, NFS4ERR_WRONGSEC = 10016, NFS4ERR_CLID_INUSE = 10017, NFS4ERR_RESOURCE = 10018, NFS4ERR_MOVED = 10019, NFS4ERR_NOFILEHANDLE = 10020, NFS4ERR_MINOR_VERS_MISMATCH = 10021, NFS4ERR_STALE_CLIENTID = 10022, NFS4ERR_STALE_STATEID = 10023, NFS4ERR_OLD_STATEID = 10024, NFS4ERR_BAD_STATEID = 10025, NFS4ERR_BAD_SEQID = 10026, NFS4ERR_NOT_SAME = 10027, NFS4ERR_LOCK_RANGE = 10028, NFS4ERR_SYMLINK = 10029, NFS4ERR_RESTOREFH = 10030, NFS4ERR_LEASE_MOVED = 10031, NFS4ERR_ATTRNOTSUPP = 10032, NFS4ERR_NO_GRACE = 10033, NFS4ERR_RECLAIM_BAD = 10034, NFS4ERR_RECLAIM_CONFLICT = 10035, NFS4ERR_BADXDR = 10036, NFS4ERR_LOCKS_HELD = 10037, NFS4ERR_OPENMODE = 10038, NFS4ERR_BADOWNER = 10039, NFS4ERR_BADCHAR = 10040, NFS4ERR_BADNAME = 10041, NFS4ERR_BAD_RANGE = 10042, NFS4ERR_LOCK_NOTSUPP = 10043, NFS4ERR_OP_ILLEGAL = 10044, NFS4ERR_DEADLOCK = 10045, NFS4ERR_FILE_OPEN = 10046, NFS4ERR_ADMIN_REVOKED = 10047, NFS4ERR_CB_PATH_DOWN = 10048, NFS4ERR_BADIOMODE = 10049, NFS4ERR_BADLAYOUT = 10050, NFS4ERR_BAD_SESSION_DIGEST = 10051, NFS4ERR_BADSESSION = 10052, NFS4ERR_BADSLOT = 10053, NFS4ERR_COMPLETE_ALREADY = 10054, NFS4ERR_CONN_NOT_BOUND_TO_SESSION = 10055, NFS4ERR_DELEG_ALREADY_WANTED = 10056, NFS4ERR_BACK_CHAN_BUSY = 10057, NFS4ERR_LAYOUTTRYLATER = 10058, NFS4ERR_LAYOUTUNAVAILABLE = 10059, NFS4ERR_NOMATCHING_LAYOUT = 10060, NFS4ERR_RECALLCONFLICT = 10061, NFS4ERR_UNKNOWN_LAYOUTTYPE = 10062, NFS4ERR_SEQ_MISORDERED = 10063, NFS4ERR_SEQUENCE_POS = 10064, NFS4ERR_REQ_TOO_BIG = 10065, NFS4ERR_REP_TOO_BIG = 10066, NFS4ERR_REP_TOO_BIG_TO_CACHE = 10067, NFS4ERR_RETRY_UNCACHED_REP = 10068, NFS4ERR_UNSAFE_COMPOUND = 10069, NFS4ERR_TOO_MANY_OPS = 10070, NFS4ERR_OP_NOT_IN_SESSION = 10071, NFS4ERR_HASH_ALG_UNSUPP = 10072, NFS4ERR_CLIENTID_BUSY = 10074, NFS4ERR_PNFS_IO_HOLE = 10075, NFS4ERR_SEQ_FALSE_RETRY = 10076, NFS4ERR_BAD_HIGH_SLOT = 10077, NFS4ERR_DEADSESSION = 10078, NFS4ERR_ENCR_ALG_UNSUPP = 10079, NFS4ERR_PNFS_NO_LAYOUT = 10080, NFS4ERR_NOT_ONLY_OP = 10081, NFS4ERR_WRONG_CRED = 10082, NFS4ERR_WRONG_TYPE = 10083, NFS4ERR_DIRDELEG_UNAVAIL = 10084, NFS4ERR_REJECT_DELEG = 10085, NFS4ERR_RETURNCONFLICT = 10086, NFS4ERR_DELEG_REVOKED = 10087, NFS4ERR_PARTNER_NOTSUPP = 10088, NFS4ERR_PARTNER_NO_AUTH = 10089, NFS4ERR_UNION_NOTSUPP = 10090, NFS4ERR_OFFLOAD_DENIED = 10091, NFS4ERR_WRONG_LFS = 10092, NFS4ERR_BADLABEL = 10093, NFS4ERR_OFFLOAD_NO_REQS = 10094, NFS4ERR_NOXATTR = 10095, NFS4ERR_XATTR2BIG = 10096, }; enum open_claim_type4 { NFS4_OPEN_CLAIM_NULL = 0, NFS4_OPEN_CLAIM_PREVIOUS = 1, NFS4_OPEN_CLAIM_DELEGATE_CUR = 2, NFS4_OPEN_CLAIM_DELEGATE_PREV = 3, NFS4_OPEN_CLAIM_FH = 4, NFS4_OPEN_CLAIM_DELEG_CUR_FH = 5, NFS4_OPEN_CLAIM_DELEG_PREV_FH = 6, }; enum createmode4 { NFS4_CREATE_UNCHECKED = 0, NFS4_CREATE_GUARDED = 1, NFS4_CREATE_EXCLUSIVE = 2, NFS4_CREATE_EXCLUSIVE4_1 = 3, }; enum open_delegation_type4 { NFS4_OPEN_DELEGATE_NONE = 0, NFS4_OPEN_DELEGATE_READ = 1, NFS4_OPEN_DELEGATE_WRITE = 2, NFS4_OPEN_DELEGATE_NONE_EXT = 3, }; enum limit_by4 { NFS4_LIMIT_SIZE = 1, NFS4_LIMIT_BLOCKS = 2, }; enum why_no_delegation4 { WND4_NOT_WANTED = 0, WND4_CONTENTION = 1, WND4_RESOURCE = 2, WND4_NOT_SUPP_FTYPE = 3, WND4_WRITE_DELEG_NOT_SUPP_FTYPE = 4, WND4_NOT_SUPP_UPGRADE = 5, WND4_NOT_SUPP_DOWNGRADE = 6, WND4_CANCELLED = 7, WND4_IS_DIR = 8, }; enum nfs_stat { NFS_OK = 0, NFSERR_PERM = 1, NFSERR_NOENT = 2, NFSERR_IO = 5, NFSERR_NXIO = 6, NFSERR_EAGAIN = 11, NFSERR_ACCES = 13, NFSERR_EXIST = 17, NFSERR_XDEV = 18, NFSERR_NODEV = 19, NFSERR_NOTDIR = 20, NFSERR_ISDIR = 21, NFSERR_INVAL = 22, NFSERR_FBIG = 27, NFSERR_NOSPC = 28, NFSERR_ROFS = 30, NFSERR_MLINK = 31, NFSERR_OPNOTSUPP = 45, NFSERR_NAMETOOLONG = 63, NFSERR_NOTEMPTY = 66, NFSERR_DQUOT = 69, NFSERR_STALE = 70, NFSERR_REMOTE = 71, NFSERR_WFLUSH = 99, NFSERR_BADHANDLE = 10001, NFSERR_NOT_SYNC = 10002, NFSERR_BAD_COOKIE = 10003, NFSERR_NOTSUPP = 10004, NFSERR_TOOSMALL = 10005, NFSERR_SERVERFAULT = 10006, NFSERR_BADTYPE = 10007, NFSERR_JUKEBOX = 10008, NFSERR_SAME = 10009, NFSERR_DENIED = 10010, NFSERR_EXPIRED = 10011, NFSERR_LOCKED = 10012, NFSERR_GRACE = 10013, NFSERR_FHEXPIRED = 10014, NFSERR_SHARE_DENIED = 10015, NFSERR_WRONGSEC = 10016, NFSERR_CLID_INUSE = 10017, NFSERR_RESOURCE = 10018, NFSERR_MOVED = 10019, NFSERR_NOFILEHANDLE = 10020, NFSERR_MINOR_VERS_MISMATCH = 10021, NFSERR_STALE_CLIENTID = 10022, NFSERR_STALE_STATEID = 10023, NFSERR_OLD_STATEID = 10024, NFSERR_BAD_STATEID = 10025, NFSERR_BAD_SEQID = 10026, NFSERR_NOT_SAME = 10027, NFSERR_LOCK_RANGE = 10028, NFSERR_SYMLINK = 10029, NFSERR_RESTOREFH = 10030, NFSERR_LEASE_MOVED = 10031, NFSERR_ATTRNOTSUPP = 10032, NFSERR_NO_GRACE = 10033, NFSERR_RECLAIM_BAD = 10034, NFSERR_RECLAIM_CONFLICT = 10035, NFSERR_BAD_XDR = 10036, NFSERR_LOCKS_HELD = 10037, NFSERR_OPENMODE = 10038, NFSERR_BADOWNER = 10039, NFSERR_BADCHAR = 10040, NFSERR_BADNAME = 10041, NFSERR_BAD_RANGE = 10042, NFSERR_LOCK_NOTSUPP = 10043, NFSERR_OP_ILLEGAL = 10044, NFSERR_DEADLOCK = 10045, NFSERR_FILE_OPEN = 10046, NFSERR_ADMIN_REVOKED = 10047, NFSERR_CB_PATH_DOWN = 10048, }; enum lock_type4 { NFS4_UNLOCK_LT = 0, NFS4_READ_LT = 1, NFS4_WRITE_LT = 2, NFS4_READW_LT = 3, NFS4_WRITEW_LT = 4, }; enum nfs4_acl_type { NFS4ACL_NONE = 0, NFS4ACL_ACL = 1, NFS4ACL_DACL = 2, NFS4ACL_SACL = 3, }; enum rpc_auth_flavors { RPC_AUTH_NULL = 0, RPC_AUTH_UNIX = 1, RPC_AUTH_SHORT = 2, RPC_AUTH_DES = 3, RPC_AUTH_KRB = 4, RPC_AUTH_GSS = 6, RPC_AUTH_TLS = 7, RPC_AUTH_MAXFLAVOR = 8, RPC_AUTH_GSS_KRB5 = 390003, RPC_AUTH_GSS_KRB5I = 390004, RPC_AUTH_GSS_KRB5P = 390005, RPC_AUTH_GSS_LKEY = 390006, RPC_AUTH_GSS_LKEYI = 390007, RPC_AUTH_GSS_LKEYP = 390008, RPC_AUTH_GSS_SPKM = 390009, RPC_AUTH_GSS_SPKMI = 390010, RPC_AUTH_GSS_SPKMP = 390011, }; struct compound_hdr { int32_t status; uint32_t nops; __be32 *nops_p; uint32_t taglen; char *tag; uint32_t replen; u32 minorversion; }; struct nfs_open_confirmargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; nfs4_stateid *stateid; struct nfs_seqid *seqid; }; struct nfs_open_confirmres { struct nfs4_sequence_res seq_res; nfs4_stateid stateid; struct nfs_seqid *seqid; }; struct nfs4_layoutreturn_args; struct nfs_closeargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; nfs4_stateid stateid; struct nfs_seqid *seqid; fmode_t fmode; u32 share_access; const u32 *bitmask; u32 bitmask_store[3]; struct nfs4_layoutreturn_args *lr_args; }; struct nfs4_xdr_opaque_data; struct nfs4_layoutreturn_args { struct nfs4_sequence_args seq_args; struct pnfs_layout_hdr *layout; struct inode *inode; struct pnfs_layout_range range; nfs4_stateid stateid; __u32 layout_type; struct nfs4_xdr_opaque_data *ld_private; }; struct nfs4_xdr_opaque_ops; struct nfs4_xdr_opaque_data { const struct nfs4_xdr_opaque_ops *ops; void *data; }; struct nfs4_xdr_opaque_ops { void (*encode)(struct xdr_stream *, const void *, const struct nfs4_xdr_opaque_data *); void (*free)(struct nfs4_xdr_opaque_data *); }; struct nfs4_layoutreturn_res; struct nfs_closeres { struct nfs4_sequence_res seq_res; nfs4_stateid stateid; struct nfs_fattr *fattr; struct nfs_seqid *seqid; const struct nfs_server *server; struct nfs4_layoutreturn_res *lr_res; int lr_ret; }; struct nfs4_layoutreturn_res { struct nfs4_sequence_res seq_res; u32 lrs_present; nfs4_stateid stateid; }; struct nfs_setattrargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; nfs4_stateid stateid; struct iattr *iap; const struct nfs_server *server; const u32 *bitmask; const struct nfs4_label *label; }; typedef u64 clientid4; struct nfs4_setclientid { const nfs4_verifier *sc_verifier; u32 sc_prog; unsigned int sc_netid_len; char sc_netid[6]; unsigned int sc_uaddr_len; char sc_uaddr[58]; struct nfs_client *sc_clnt; struct rpc_cred *sc_cred; }; struct nfs4_setclientid_res { u64 clientid; nfs4_verifier confirm; }; struct nfs_lowner { __u64 clientid; __u64 id; dev_t s_dev; }; struct nfs_lock_args { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; struct file_lock *fl; struct nfs_seqid *lock_seqid; nfs4_stateid lock_stateid; struct nfs_seqid *open_seqid; nfs4_stateid open_stateid; struct nfs_lowner lock_owner; unsigned char block: 1; unsigned char reclaim: 1; unsigned char new_lock: 1; unsigned char new_lock_owner: 1; }; struct nfs_lock_res { struct nfs4_sequence_res seq_res; nfs4_stateid stateid; struct nfs_seqid *lock_seqid; struct nfs_seqid *open_seqid; }; struct nfs_lockt_args { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; struct file_lock *fl; struct nfs_lowner lock_owner; }; struct nfs_lockt_res { struct nfs4_sequence_res seq_res; struct file_lock *denied; }; struct nfs_locku_args { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; struct file_lock *fl; struct nfs_seqid *seqid; nfs4_stateid stateid; }; struct nfs_locku_res { struct nfs4_sequence_res seq_res; nfs4_stateid stateid; struct nfs_seqid *seqid; }; struct nfs4_create_arg { struct nfs4_sequence_args seq_args; u32 ftype; union { struct { struct page **pages; unsigned int len; } symlink; struct { u32 specdata1; u32 specdata2; } device; } u; const struct qstr *name; const struct nfs_server *server; const struct iattr *attrs; const struct nfs_fh *dir_fh; const u32 *bitmask; const struct nfs4_label *label; umode_t umask; }; struct nfs4_readlink { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; unsigned int pgbase; unsigned int pglen; struct page **pages; }; struct nfs4_readdir_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; u64 cookie; nfs4_verifier verifier; u32 count; struct page **pages; unsigned int pgbase; const u32 *bitmask; bool plus; }; struct nfs4_readdir_res { struct nfs4_sequence_res seq_res; nfs4_verifier verifier; unsigned int pgbase; }; struct nfs4_server_caps_res { struct nfs4_sequence_res seq_res; u32 attr_bitmask[3]; u32 exclcreat_bitmask[3]; u32 acl_bitmask; u32 has_links; u32 has_symlinks; u32 fh_expire_type; u32 case_insensitive; u32 case_preserving; }; struct nfs_getaclres { struct nfs4_sequence_res seq_res; enum nfs4_acl_type acl_type; size_t acl_len; size_t acl_data_offset; int acl_flags; struct page *acl_scratch; }; struct nfs_setaclargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; enum nfs4_acl_type acl_type; size_t acl_len; struct page **acl_pages; }; struct nfs4_secinfo_flavors; struct nfs4_secinfo_res { struct nfs4_sequence_res seq_res; struct nfs4_secinfo_flavors *flavors; }; struct nfs4_secinfo4 { u32 flavor; struct rpcsec_gss_info flavor_info; }; struct nfs4_secinfo_flavors { unsigned int num_flavors; struct nfs4_secinfo4 flavors[0]; }; struct stateowner_id { __u64 create_time; __u32 uniquifier; }; struct nfs4_layoutget_args; struct nfs_openargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; struct nfs_seqid *seqid; int open_flags; fmode_t fmode; u32 share_access; u32 access; __u64 clientid; struct stateowner_id id; union { struct { struct iattr *attrs; nfs4_verifier verifier; }; nfs4_stateid delegation; fmode_t delegation_type; } u; const struct qstr *name; const struct nfs_server *server; const u32 *bitmask; const u32 *open_bitmap; enum open_claim_type4 claim; enum createmode4 createmode; const struct nfs4_label *label; umode_t umask; struct nfs4_layoutget_args *lg_args; }; struct nfs4_layoutdriver_data { struct page **pages; __u32 pglen; __u32 len; }; struct nfs4_layoutget_args { struct nfs4_sequence_args seq_args; __u32 type; struct pnfs_layout_range range; __u64 minlength; __u32 maxcount; struct inode *inode; struct nfs_open_context *ctx; nfs4_stateid stateid; struct nfs4_layoutdriver_data layout; }; struct nfs4_layoutget_res; struct nfs_openres { struct nfs4_sequence_res seq_res; nfs4_stateid stateid; struct nfs_fh fh; struct nfs4_change_info cinfo; __u32 rflags; struct nfs_fattr *f_attr; struct nfs_seqid *seqid; const struct nfs_server *server; fmode_t delegation_type; nfs4_stateid delegation; unsigned long pagemod_limit; __u32 do_recall; __u32 attrset[3]; struct nfs4_string *owner; struct nfs4_string *group_owner; __u32 access_request; __u32 access_supported; __u32 access_result; struct nfs4_layoutget_res *lg_res; }; struct nfs4_layoutget_res { struct nfs4_sequence_res seq_res; int status; __u32 return_on_close; struct pnfs_layout_range range; __u32 type; nfs4_stateid stateid; struct nfs4_layoutdriver_data *layoutp; }; struct nfs_setattrres { struct nfs4_sequence_res seq_res; struct nfs_fattr *fattr; const struct nfs_server *server; }; struct nfs4_fsinfo_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; }; struct nfs4_fsinfo_res { struct nfs4_sequence_res seq_res; struct nfs_fsinfo *fsinfo; }; struct nfs4_accessargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; u32 access; }; struct nfs4_accessres { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fattr *fattr; u32 supported; u32 access; }; struct nfs4_getattr_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; }; struct nfs4_getattr_res { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fattr *fattr; }; struct nfs4_lookup_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *dir_fh; const struct qstr *name; const u32 *bitmask; }; struct nfs4_lookup_res { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fattr *fattr; struct nfs_fh *fh; }; struct nfs4_lookup_root_arg { struct nfs4_sequence_args seq_args; const u32 *bitmask; }; struct nfs4_link_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const struct nfs_fh *dir_fh; const struct qstr *name; const u32 *bitmask; }; struct nfs4_link_res { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fattr *fattr; struct nfs4_change_info cinfo; struct nfs_fattr *dir_attr; }; struct nfs4_create_res { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fh *fh; struct nfs_fattr *fattr; struct nfs4_change_info dir_cinfo; }; struct nfs4_pathconf_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; }; struct nfs4_pathconf_res { struct nfs4_sequence_res seq_res; struct nfs_pathconf *pathconf; }; struct nfs4_statfs_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; }; struct nfs4_statfs_res { struct nfs4_sequence_res seq_res; struct nfs_fsstat *fsstat; }; struct nfs4_readlink_res { struct nfs4_sequence_res seq_res; }; struct nfs4_server_caps_arg { struct nfs4_sequence_args seq_args; struct nfs_fh *fhandle; const u32 *bitmask; }; struct nfs4_delegreturnargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *fhandle; const nfs4_stateid *stateid; const u32 *bitmask; u32 bitmask_store[3]; struct nfs4_layoutreturn_args *lr_args; }; struct nfs4_delegreturnres { struct nfs4_sequence_res seq_res; struct nfs_fattr *fattr; struct nfs_server *server; struct nfs4_layoutreturn_res *lr_res; int lr_ret; }; struct nfs_getaclargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; enum nfs4_acl_type acl_type; size_t acl_len; struct page **acl_pages; }; struct nfs_setaclres { struct nfs4_sequence_res seq_res; }; struct nfs4_fs_locations_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *dir_fh; const struct nfs_fh *fh; const struct qstr *name; struct page *page; const u32 *bitmask; clientid4 clientid; unsigned char migration: 1; unsigned char renew: 1; }; struct nfs4_fs_locations_res { struct nfs4_sequence_res seq_res; struct nfs4_fs_locations *fs_locations; unsigned char migration: 1; unsigned char renew: 1; }; struct nfs_release_lockowner_args { struct nfs4_sequence_args seq_args; struct nfs_lowner lock_owner; }; struct nfs4_secinfo_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *dir_fh; const struct qstr *name; }; struct nfs4_fsid_present_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; clientid4 clientid; unsigned char renew: 1; }; struct nfs4_fsid_present_res { struct nfs4_sequence_res seq_res; struct nfs_fh *fh; unsigned char renew: 1; }; struct nfs4_get_lease_time_args { struct nfs4_sequence_args la_seq_args; }; struct nfs4_get_lease_time_res { struct nfs4_sequence_res lr_seq_res; struct nfs_fsinfo *lr_fsinfo; }; struct nfs4_lookupp_arg { struct nfs4_sequence_args seq_args; const struct nfs_fh *fh; const u32 *bitmask; }; struct nfs4_lookupp_res { struct nfs4_sequence_res seq_res; const struct nfs_server *server; struct nfs_fattr *fattr; struct nfs_fh *fh; }; struct netif_security_struct { struct net *ns; int ifindex; u32 sid; }; struct sel_netif { struct list_head list; struct netif_security_struct nsec; struct callback_head callback_head; }; struct selinux_avc; struct selinux_policy; struct selinux_state { bool disabled; bool enforcing; bool checkreqprot; bool initialized; bool policycap[8]; struct page *status_page; struct mutex status_lock; struct selinux_avc *avc; struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy; struct mutex policy_mutex; }; struct hashtab_node; struct hashtab { struct hashtab_node **htable; u32 size; u32 nel; }; struct symtab { struct hashtab table; u32 nprim; }; struct avtab_node; struct avtab { struct avtab_node **htable; u32 nel; u32 nslot; u32 mask; }; struct ebitmap_node; struct ebitmap { struct ebitmap_node *node; u32 highbit; }; struct class_datum; struct role_datum; struct user_datum; struct type_datum; struct cond_bool_datum; struct cond_node; struct role_allow; struct ocontext; struct genfs; struct policydb { int mls_enabled; struct symtab symtab[8]; char **sym_val_to_name[8]; struct class_datum **class_val_to_struct; struct role_datum **role_val_to_struct; struct user_datum **user_val_to_struct; struct type_datum **type_val_to_struct; struct avtab te_avtab; struct hashtab role_tr; struct ebitmap filename_trans_ttypes; struct hashtab filename_trans; u32 compat_filename_trans_count; struct cond_bool_datum **bool_val_to_struct; struct avtab te_cond_avtab; struct cond_node *cond_list; u32 cond_list_len; struct role_allow *role_allow; struct ocontext *ocontexts[9]; struct genfs *genfs; struct hashtab range_tr; struct ebitmap *type_attr_map_array; struct ebitmap policycaps; struct ebitmap permissive_map; size_t len; unsigned int policyvers; unsigned int reject_unknown: 1; unsigned int allow_unknown: 1; u16 process_class; u32 process_trans_perms; }; struct selinux_mapping; struct selinux_map { struct selinux_mapping *mapping; u16 size; }; struct sidtab; struct selinux_policy { struct sidtab *sidtab; struct policydb policydb; struct selinux_map map; u32 latest_granting; }; enum elv_merge { ELEVATOR_NO_MERGE = 0, ELEVATOR_FRONT_MERGE = 1, ELEVATOR_BACK_MERGE = 2, ELEVATOR_DISCARD_MERGE = 3, }; struct elevator_type; 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 *, bool); 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 elevator_queue { struct elevator_type *type; void *elevator_data; struct kobject kobj; struct mutex sysfs_lock; unsigned long flags; struct hlist_head hash[64]; }; 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); }; 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]; struct request *next_rq[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; }; enum { IORING_RSRC_FILE = 0, IORING_RSRC_BUFFER = 1, }; enum { REQ_F_FIXED_FILE = 1, REQ_F_IO_DRAIN = 2, REQ_F_LINK = 4, REQ_F_HARDLINK = 8, REQ_F_FORCE_ASYNC = 16, REQ_F_BUFFER_SELECT = 32, REQ_F_CQE_SKIP = 64, REQ_F_FAIL = 256, REQ_F_INFLIGHT = 512, REQ_F_CUR_POS = 1024, REQ_F_NOWAIT = 2048, REQ_F_LINK_TIMEOUT = 4096, REQ_F_NEED_CLEANUP = 8192, REQ_F_POLLED = 16384, REQ_F_BUFFER_SELECTED = 32768, REQ_F_BUFFER_RING = 65536, REQ_F_REISSUE = 131072, REQ_F_SUPPORT_NOWAIT = 1073741824, REQ_F_ISREG = 2147483648, REQ_F_CREDS = 262144, REQ_F_REFCOUNT = 524288, REQ_F_ARM_LTIMEOUT = 1048576, REQ_F_ASYNC_DATA = 2097152, REQ_F_SKIP_LINK_CQES = 4194304, REQ_F_SINGLE_POLL = 8388608, REQ_F_DOUBLE_POLL = 16777216, REQ_F_PARTIAL_IO = 33554432, REQ_F_APOLL_MULTISHOT = 134217728, REQ_F_CQE32_INIT = 67108864, REQ_F_CLEAR_POLLIN = 268435456, REQ_F_HASH_LOCKED = 536870912, }; enum { IOU_OK = 0, IOU_ISSUE_SKIP_COMPLETE = -529, IOU_STOP_MULTISHOT = -125, }; 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, }; 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, }; struct io_rsrc_update { struct file *file; u64 arg; u32 nr_args; u32 offset; }; struct scm_fp_list; struct unix_skb_parms { struct pid *pid; kuid_t uid; kgid_t gid; struct scm_fp_list *fp; u32 secid; u32 consumed; }; struct scm_fp_list { short count; short max; struct user_struct *user; struct file *fp[253]; }; struct compat_iovec { compat_uptr_t iov_base; compat_size_t iov_len; }; 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; }; enum con_scroll { SM_UP = 0, SM_DOWN = 1, }; enum vc_intensity { VCI_HALF_BRIGHT = 0, VCI_NORMAL = 1, VCI_BOLD = 2, VCI_MASK = 3, }; struct vc_data; struct console_font; struct consw { struct module *owner; const char * (*con_startup)(); void (*con_init)(struct vc_data *, int); void (*con_deinit)(struct vc_data *); void (*con_clear)(struct vc_data *, int, int, int, int); void (*con_putc)(struct vc_data *, int, int, int); void (*con_putcs)(struct vc_data *, const unsigned short *, int, int, int); void (*con_cursor)(struct vc_data *, int); bool (*con_scroll)(struct vc_data *, unsigned int, unsigned int, enum con_scroll, unsigned int); int (*con_switch)(struct vc_data *); int (*con_blank)(struct vc_data *, int, int); int (*con_font_set)(struct vc_data *, 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 *, char *); int (*con_resize)(struct vc_data *, unsigned int, unsigned int, unsigned int); void (*con_set_palette)(struct vc_data *, const unsigned char *); void (*con_scrolldelta)(struct vc_data *, int); int (*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); u16 * (*con_screen_pos)(const struct vc_data *, int); unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *); void (*con_flush_scrollback)(struct vc_data *); int (*con_debug_enter)(struct vc_data *); int (*con_debug_leave)(struct vc_data *); }; 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 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_resize_user; 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; }; typedef u32 phys_cpuid_t; 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; short: 16; unsigned int state_count; int: 32; 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; char: 8; unsigned int shared_type; struct acpi_processor_tx states[16]; int: 32; } __attribute__((packed)); 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; short: 16; unsigned int state_count; int: 32; struct acpi_processor_px *states; struct acpi_psd_package domain_info; cpumask_var_t shared_cpu_map; unsigned int shared_type; int: 32; } __attribute__((packed)); 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 throttling_tstate { unsigned int cpu; int target_state; }; struct acpi_processor_throttling_arg { struct acpi_processor *pr; int target_state; bool force; }; enum cons_flags { CON_PRINTBUFFER = 1, CON_CONSDEV = 2, CON_ENABLED = 4, CON_BOOT = 8, CON_ANYTIME = 16, CON_BRL = 32, CON_EXTENDED = 64, }; struct tty_file_private { struct tty_struct *tty; struct file *file; struct list_head list; }; typedef s32 compat_int_t; typedef u32 compat_uint_t; struct serial_struct32 { compat_int_t type; compat_int_t line; compat_uint_t port; compat_int_t irq; compat_int_t flags; compat_int_t xmit_fifo_size; compat_int_t custom_divisor; compat_int_t baud_base; unsigned short close_delay; char io_type; char reserved_char; compat_int_t hub6; unsigned short closing_wait; unsigned short closing_wait2; compat_uint_t iomem_base; unsigned short iomem_reg_shift; unsigned int port_high; compat_int_t reserved; }; struct nvram_ops { ssize_t (*get_size)(); unsigned char (*read_byte)(int); void (*write_byte)(unsigned char, int); ssize_t (*read)(char *, size_t, loff_t *); ssize_t (*write)(char *, size_t, loff_t *); long (*initialize)(); long (*set_checksum)(); }; struct tpm_pcr_attr { int alg_id; int pcr; struct device_attribute attr; }; enum tpm_chip_flags { TPM_CHIP_FLAG_TPM2 = 2, TPM_CHIP_FLAG_IRQ = 4, TPM_CHIP_FLAG_VIRTUAL = 8, TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16, TPM_CHIP_FLAG_ALWAYS_POWERED = 32, TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64, TPM_CHIP_FLAG_FIRMWARE_UPGRADE = 128, }; enum tpm_algorithms { TPM_ALG_ERROR = 0, TPM_ALG_SHA1 = 4, TPM_ALG_KEYEDHASH = 8, TPM_ALG_SHA256 = 11, TPM_ALG_SHA384 = 12, TPM_ALG_SHA512 = 13, TPM_ALG_NULL = 16, TPM_ALG_SM3_256 = 18, }; enum tpm_buf_flags { TPM_BUF_OVERFLOW = 1, }; enum tpm_sub_capabilities { TPM_CAP_PROP_PCR = 257, TPM_CAP_PROP_MANUFACTURER = 259, TPM_CAP_FLAG_PERM = 264, TPM_CAP_FLAG_VOL = 265, TPM_CAP_PROP_OWNER = 273, TPM_CAP_PROP_TIS_TIMEOUT = 277, TPM_CAP_PROP_TIS_DURATION = 288, }; enum tpm_capabilities { TPM_CAP_FLAG = 4, TPM_CAP_PROP = 5, TPM_CAP_VERSION_1_1 = 6, TPM_CAP_VERSION_1_2 = 26, }; enum tpm_duration { TPM_SHORT = 0, TPM_MEDIUM = 1, TPM_LONG = 2, TPM_LONG_LONG = 3, TPM_UNDEFINED = 4, TPM_NUM_DURATIONS = 4, }; struct tpm_bios_log { void *bios_event_log; void *bios_event_log_end; }; struct tpm_chip; struct tpm_chip_seqops { struct tpm_chip *chip; const struct seq_operations *seqops; }; struct hwrng { const char *name; int (*init)(struct hwrng *); void (*cleanup)(struct hwrng *); int (*data_present)(struct hwrng *, int); int (*data_read)(struct hwrng *, u32 *); int (*read)(struct hwrng *, void *, size_t, bool); unsigned long priv; unsigned short quality; struct list_head list; struct kref ref; struct completion cleanup_done; struct completion dying; }; struct tpm_space { u32 context_tbl[3]; u8 *context_buf; u32 session_tbl[3]; u8 *session_buf; u32 buf_size; }; struct tpm_class_ops; struct tpm_bank_info; struct tpm_chip { struct device dev; struct device devs; struct cdev cdev; struct cdev cdevs; struct rw_semaphore ops_sem; const struct tpm_class_ops *ops; struct tpm_bios_log log; struct tpm_chip_seqops bin_log_seqops; struct tpm_chip_seqops ascii_log_seqops; unsigned int flags; int dev_num; unsigned long is_open; char hwrng_name[64]; struct hwrng hwrng; struct mutex tpm_mutex; unsigned long timeout_a; unsigned long timeout_b; unsigned long timeout_c; unsigned long timeout_d; bool timeout_adjusted; unsigned long duration[4]; bool duration_adjusted; struct dentry *bios_dir[3]; const struct attribute_group *groups[8]; unsigned int groups_cnt; u32 nr_allocated_banks; struct tpm_bank_info *allocated_banks; acpi_handle acpi_dev_handle; char ppi_version[4]; struct tpm_space work_space; u32 last_cc; u32 nr_commands; u32 *cc_attrs_tbl; int locality; }; struct tpm_class_ops { unsigned int flags; const u8 req_complete_mask; const u8 req_complete_val; bool (*req_canceled)(struct tpm_chip *, u8); int (*recv)(struct tpm_chip *, u8 *, size_t); int (*send)(struct tpm_chip *, u8 *, size_t); void (*cancel)(struct tpm_chip *); u8 (*status)(struct tpm_chip *); void (*update_timeouts)(struct tpm_chip *, unsigned long *); void (*update_durations)(struct tpm_chip *, unsigned long *); int (*go_idle)(struct tpm_chip *); int (*cmd_ready)(struct tpm_chip *); int (*request_locality)(struct tpm_chip *, int); int (*relinquish_locality)(struct tpm_chip *, int); void (*clk_enable)(struct tpm_chip *, bool); }; struct tpm_bank_info { u16 alg_id; u16 digest_size; u16 crypto_id; }; struct tpm_readpubek_out { u8 algorithm[4]; u8 encscheme[2]; u8 sigscheme[2]; __be32 paramsize; u8 parameters[12]; __be32 keysize; u8 modulus[256]; u8 checksum[20]; }; struct tpm_header { __be16 tag; __be32 length; union { __be32 ordinal; __be32 return_code; }; } __attribute__((packed)); struct tpm_buf { unsigned int flags; u8 *data; }; struct permanent_flags_t { __be16 tag; u8 disable; u8 ownership; u8 deactivated; u8 readPubek; u8 disableOwnerClear; u8 allowMaintenance; u8 physicalPresenceLifetimeLock; u8 physicalPresenceHWEnable; u8 physicalPresenceCMDEnable; u8 CEKPUsed; u8 TPMpost; u8 TPMpostLock; u8 FIPS; u8 operator; u8 enableRevokeEK; u8 nvLocked; u8 readSRKPub; u8 tpmEstablished; u8 maintenanceDone; u8 disableFullDALogicInfo; }; struct stclear_flags_t { __be16 tag; u8 deactivated; u8 disableForceClear; u8 physicalPresence; u8 physicalPresenceLock; u8 bGlobalLock; } __attribute__((packed)); struct tpm1_version { u8 major; u8 minor; u8 rev_major; u8 rev_minor; }; struct tpm1_version2 { __be16 tag; struct tpm1_version version; }; struct timeout_t { __be32 a; __be32 b; __be32 c; __be32 d; }; struct duration_t { __be32 tpm_short; __be32 tpm_medium; __be32 tpm_long; }; typedef union { struct permanent_flags_t perm_flags; struct stclear_flags_t stclear_flags; __u8 owned; __be32 num_pcrs; struct tpm1_version version1; struct tpm1_version2 version2; __be32 manufacturer_id; struct timeout_t timeout; struct duration_t duration; } cap_t; struct tpm_digest { u16 alg_id; u8 digest[64]; }; enum drm_color_lut_tests { DRM_COLOR_LUT_EQUAL_CHANNELS = 1, DRM_COLOR_LUT_NON_DECREASING = 2, }; struct drm_color_lut { __u16 red; __u16 green; __u16 blue; __u16 reserved; }; struct drm_prop_enum_list { int type; const char *name; }; struct drm_mode_crtc_lut { __u32 crtc_id; __u32 gamma_size; __u64 red; __u64 green; __u64 blue; }; struct drm_vma_offset_file { struct rb_node vm_rb; struct drm_file *vm_tag; unsigned long vm_count; }; struct hdcp_srm_header { u8 srm_id; u8 reserved; __be16 srm_version; u8 srm_gen_no; } __attribute__((packed)); struct firmware { size_t size; const u8 *data; void *priv; }; struct drm_connector_funcs___2; struct drm_connector_state___2; struct drm_tile_group___2; struct drm_connector___2 { struct drm_device___2 *dev; struct device *kdev; struct device_attribute *attr; struct fwnode_handle *fwnode; struct list_head head; struct list_head global_connector_list_entry; struct drm_mode_object___2 base; char *name; struct mutex mutex; unsigned int index; int connector_type; int connector_type_id; bool interlace_allowed; bool doublescan_allowed; bool stereo_allowed; bool ycbcr_420_allowed; enum drm_connector_registration_state registration_state; struct list_head modes; enum drm_connector_status status; struct list_head probed_modes; struct drm_display_info display_info; const struct drm_connector_funcs___2 *funcs; struct drm_property_blob___2 *edid_blob_ptr; struct drm_object_properties___2 properties; struct drm_property___2 *scaling_mode_property; struct drm_property___2 *vrr_capable_property; struct drm_property___2 *colorspace_property; struct drm_property_blob___2 *path_blob_ptr; struct drm_property___2 *max_bpc_property; struct drm_privacy_screen *privacy_screen; struct notifier_block privacy_screen_notifier; struct drm_property___2 *privacy_screen_sw_state_property; struct drm_property___2 *privacy_screen_hw_state_property; uint8_t polled; int dpms; const struct drm_connector_helper_funcs *helper_private; struct drm_cmdline_mode cmdline_mode; enum drm_connector_force force; const struct drm_edid *edid_override; struct mutex edid_override_mutex; u64 epoch_counter; u32 possible_encoders; struct drm_encoder *encoder; uint8_t eld[128]; bool latency_present[2]; int video_latency[2]; int audio_latency[2]; struct i2c_adapter *ddc; int null_edid_counter; unsigned int bad_edid_counter; bool edid_corrupt; u8 real_edid_checksum; struct dentry *debugfs_entry; struct drm_connector_state___2 *state; struct drm_property_blob___2 *tile_blob_ptr; bool has_tile; struct drm_tile_group___2 *tile_group; bool tile_is_single_monitor; uint8_t num_h_tile; uint8_t num_v_tile; uint8_t tile_h_loc; uint8_t tile_v_loc; uint16_t tile_h_size; uint16_t tile_v_size; struct llist_node free_node; struct hdr_sink_metadata hdr_sink_metadata; }; struct drm_connector_funcs___2 { int (*dpms)(struct drm_connector___2 *, int); void (*reset)(struct drm_connector___2 *); enum drm_connector_status (*detect)(struct drm_connector___2 *, bool); void (*force)(struct drm_connector___2 *); int (*fill_modes)(struct drm_connector___2 *, uint32_t, uint32_t); int (*set_property)(struct drm_connector___2 *, struct drm_property___2 *, uint64_t); int (*late_register)(struct drm_connector___2 *); void (*early_unregister)(struct drm_connector___2 *); void (*destroy)(struct drm_connector___2 *); struct drm_connector_state___2 * (*atomic_duplicate_state)(struct drm_connector___2 *); void (*atomic_destroy_state)(struct drm_connector___2 *, struct drm_connector_state___2 *); int (*atomic_set_property)(struct drm_connector___2 *, struct drm_connector_state___2 *, struct drm_property___2 *, uint64_t); int (*atomic_get_property)(struct drm_connector___2 *, const struct drm_connector_state___2 *, struct drm_property___2 *, uint64_t *); void (*atomic_print_state)(struct drm_printer *, const struct drm_connector_state___2 *); void (*oob_hotplug_event)(struct drm_connector___2 *); void (*debugfs_init)(struct drm_connector___2 *, struct dentry *); }; struct drm_connector_state___2 { struct drm_connector___2 *connector; struct drm_crtc *crtc; struct drm_encoder *best_encoder; enum drm_link_status link_status; struct drm_atomic_state *state; struct drm_crtc_commit *commit; struct drm_tv_connector_state tv; bool self_refresh_aware; enum hdmi_picture_aspect picture_aspect_ratio; unsigned int content_type; unsigned int hdcp_content_type; unsigned int scaling_mode; unsigned int content_protection; u32 colorspace; struct drm_writeback_job *writeback_job; u8 max_requested_bpc; u8 max_bpc; enum drm_privacy_screen_status privacy_screen_sw_state; struct drm_property_blob___2 *hdr_output_metadata; }; struct drm_tile_group___2 { struct kref refcount; struct drm_device___2 *dev; int id; u8 group_data[8]; }; enum intel_fbc_id { INTEL_FBC_A = 0, INTEL_FBC_B = 1, I915_MAX_FBCS = 2, }; enum { I915_PRIORITY_MIN = -1024, I915_PRIORITY_NORMAL = 0, I915_PRIORITY_MAX = 1024, I915_PRIORITY_HEARTBEAT = 1025, I915_PRIORITY_DISPLAY = 1026, }; 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 intel_modifier_desc { u64 modifier; struct { u8 from; u8 until; } display_ver; const struct drm_format_info *formats; int format_count; u8 plane_caps; struct { u8 cc_planes: 3; u8 packed_aux_planes: 4; char: 1; u8 planar_aux_planes: 4; } ccs; }; enum i9xx_plane_id { PLANE_A = 0, PLANE_B = 1, PLANE_C = 2, }; struct intel_plane_state; struct intel_plane { struct drm_plane base; enum i9xx_plane_id i9xx_plane; enum plane_id id; enum pipe pipe; bool need_async_flip_disable_wa; u32 frontbuffer_bit; struct { u32 base; u32 cntl; u32 size; } cursor; struct intel_fbc *fbc; int (*min_width)(const struct drm_framebuffer *, int, unsigned int); int (*max_width)(const struct drm_framebuffer *, int, unsigned int); int (*max_height)(const struct drm_framebuffer *, int, unsigned int); unsigned int (*max_stride)(struct intel_plane *, u32, u64, unsigned int); void (*update_noarm)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *); void (*update_arm)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *); void (*disable_arm)(struct intel_plane *, const struct intel_crtc_state *); bool (*get_hw_state)(struct intel_plane *, enum pipe *); int (*check_plane)(struct intel_crtc_state *, struct intel_plane_state *); int (*min_cdclk)(const struct intel_crtc_state *, const struct intel_plane_state *); void (*async_flip)(struct intel_plane *, const struct intel_crtc_state *, const struct intel_plane_state *, bool); void (*enable_flip_done)(struct intel_plane *); void (*disable_flip_done)(struct intel_plane *); }; struct drm_intel_sprite_colorkey { __u32 plane_id; __u32 min_value; __u32 channel_mask; __u32 max_value; __u32 flags; }; struct intel_plane_state { struct drm_plane_state uapi; struct { struct drm_crtc *crtc; struct drm_framebuffer *fb; u16 alpha; u16 pixel_blend_mode; unsigned int rotation; enum drm_color_encoding color_encoding; enum drm_color_range color_range; enum drm_scaling_filter scaling_filter; } hw; struct i915_vma___2 *ggtt_vma; struct i915_vma___2 *dpt_vma; unsigned long flags; struct intel_fb_view view; bool decrypt; bool force_black; u32 ctl; u32 color_ctl; u32 cus_ctl; int scaler_id; struct intel_plane *planar_linked_plane; u32 planar_slave; struct drm_intel_sprite_colorkey ckey; struct drm_rect psr2_sel_fetch_area; u64 ccval; const char *no_fbc_reason; }; struct fb_plane_view_dims { unsigned int width; unsigned int height; unsigned int tile_width; unsigned int tile_height; }; struct intel_dvo_device; struct intel_dvo_dev_ops { bool (*init)(struct intel_dvo_device *, struct i2c_adapter *); void (*create_resources)(struct intel_dvo_device *); void (*dpms)(struct intel_dvo_device *, bool); enum drm_mode_status (*mode_valid)(struct intel_dvo_device *, struct drm_display_mode *); void (*prepare)(struct intel_dvo_device *); void (*commit)(struct intel_dvo_device *); void (*mode_set)(struct intel_dvo_device *, const struct drm_display_mode *, const struct drm_display_mode *); enum drm_connector_status (*detect)(struct intel_dvo_device *); bool (*get_hw_state)(struct intel_dvo_device *); struct drm_display_mode * (*get_modes)(struct intel_dvo_device *); void (*destroy)(struct intel_dvo_device *); void (*dump_regs)(struct intel_dvo_device *); }; struct intel_dvo_device { const char *name; int type; enum port port; u32 gpio; int slave_addr; const struct intel_dvo_dev_ops *dev_ops; void *dev_priv; struct i2c_adapter *i2c_bus; }; struct tfp410_priv { bool quiet; }; enum hdmi_packet_type { HDMI_PACKET_TYPE_NULL = 0, HDMI_PACKET_TYPE_AUDIO_CLOCK_REGEN = 1, HDMI_PACKET_TYPE_AUDIO_SAMPLE = 2, HDMI_PACKET_TYPE_GENERAL_CONTROL = 3, HDMI_PACKET_TYPE_ACP = 4, HDMI_PACKET_TYPE_ISRC1 = 5, HDMI_PACKET_TYPE_ISRC2 = 6, HDMI_PACKET_TYPE_ONE_BIT_AUDIO_SAMPLE = 7, HDMI_PACKET_TYPE_DST_AUDIO = 8, HDMI_PACKET_TYPE_HBR_AUDIO_STREAM = 9, HDMI_PACKET_TYPE_GAMUT_METADATA = 10, }; struct drm_gem_shmem_object { struct drm_gem_object base; struct mutex pages_lock; struct page **pages; unsigned int pages_use_count; int madv; struct list_head madv_list; unsigned int pages_mark_dirty_on_put: 1; unsigned int pages_mark_accessed_on_put: 1; struct sg_table *sgt; struct mutex vmap_lock; void *vaddr; unsigned int vmap_use_count; bool map_wc; }; struct virtio_gpu_object { struct drm_gem_shmem_object base; uint32_t hw_res_handle; bool dumb; bool created; bool host3d_blob; bool guest_blob; uint32_t blob_mem; uint32_t blob_flags; int uuid_state; uuid_t uuid; }; struct virtio_gpu_object_vram { struct virtio_gpu_object base; uint32_t map_state; uint32_t map_info; struct drm_mm_node vram_node; }; struct virtio_gpu_mem_entry { __le64 addr; __le32 length; __le32 padding; }; struct virtio_gpu_object_array { struct ww_acquire_ctx ticket; struct list_head next; u32 nents; u32 total; struct drm_gem_object *objs[0]; }; struct virtio_gpu_object_params { unsigned long size; bool dumb; bool virgl; bool blob; uint32_t format; uint32_t width; uint32_t height; uint32_t target; uint32_t bind; uint32_t depth; uint32_t array_size; uint32_t last_level; uint32_t nr_samples; uint32_t flags; uint32_t ctx_id; uint32_t blob_mem; uint32_t blob_flags; uint64_t blob_id; }; struct virtio_gpu_object_shmem { struct virtio_gpu_object base; }; 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, }; 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_MSI_NOMASK_QUIRK = 134217728, IRQD_HANDLE_ENFORCE_IRQCTX = 268435456, IRQD_AFFINITY_ON_ACTIVATE = 536870912, IRQD_IRQ_ENABLED_ON_SUSPEND = 1073741824, }; 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 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 { const char *name; const struct software_node *parent; const struct property_entry *properties; }; 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; }; struct value_name_pair; struct sa_name_list { int opcode; const struct value_name_pair *arr; int arr_sz; }; struct value_name_pair { int value; const char *name; }; struct error_info { unsigned short code12; unsigned short size; }; struct error_info2 { unsigned char code1; unsigned char code2_min; unsigned char code2_max; const char *str; const char *fmt; }; 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; }; struct double_list { struct list_head *top; struct list_head *bottom; }; union inet_addr { __u32 all[4]; __be32 ip; __be32 ip6[4]; struct in_addr in; struct in6_addr in6; }; struct netpoll { struct net_device *dev; netdevice_tracker dev_tracker; char dev_name[16]; const char *name; union inet_addr local_ip; union inet_addr remote_ip; bool ipv6; u16 local_port; u16 remote_port; u8 remote_mac[6]; }; struct netconsole_target { struct list_head list; bool enabled; bool extended; struct netpoll np; }; struct module_version_attribute { struct module_attribute mattr; const char *module_name; const char *version; }; 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 chip_flags { HasHltClk = 1, HasLWake = 2, }; enum RTL8139_registers { MAC0 = 0, MAR0 = 8, TxStatus0 = 16, TxAddr0 = 32, RxBuf = 48, ChipCmd = 55, RxBufPtr = 56, RxBufAddr = 58, IntrMask = 60, IntrStatus = 62, TxConfig = 64, RxConfig = 68, Timer = 72, RxMissed = 76, Cfg9346 = 80, Config0 = 81, Config1 = 82, TimerInt = 84, MediaStatus = 88, Config3 = 89, Config4 = 90, HltClk = 91, MultiIntr = 92, TxSummary = 96, BasicModeCtrl = 98, BasicModeStatus = 100, NWayAdvert = 102, NWayLPAR = 104, NWayExpansion = 106, FIFOTMS = 112, CSCR = 116, PARA78 = 120, FlashReg = 212, PARA7c = 124, Config5 = 216, }; enum Config1Bits { Cfg1_PM_Enable = 1, Cfg1_VPD_Enable = 2, Cfg1_PIO = 4, Cfg1_MMIO = 8, LWAKE = 16, Cfg1_Driver_Load = 32, Cfg1_LED0 = 64, Cfg1_LED1 = 128, SLEEP = 2, PWRDN = 1, }; enum Cfg9346Bits { Cfg9346_Lock = 0, Cfg9346_Unlock = 192, }; enum Config4Bits { LWPTN = 4, }; enum ChipCmdBits { CmdReset = 16, CmdRxEnb = 8, CmdTxEnb = 4, RxBufEmpty = 1, }; enum IntrStatusBits { PCIErr = 32768, PCSTimeout = 16384, RxFIFOOver = 64, RxUnderrun = 32, RxOverflow = 16, TxErr = 8, TxOK = 4, RxErr = 2, RxOK = 1, RxAckBits = 81, }; enum CSCRBits { CSCR_LinkOKBit = 1024, CSCR_LinkChangeBit = 2048, CSCR_LinkStatusBits = 61440, CSCR_LinkDownOffCmd = 960, CSCR_LinkDownCmd = 62400, }; enum { HAS_MII_XCVR = 65536, HAS_CHIP_XCVR = 131072, HAS_LNK_CHNG = 262144, }; enum TxStatusBits { TxHostOwns = 8192, TxUnderrun = 16384, TxStatOK = 32768, TxOutOfWindow = 536870912, TxAborted = 1073741824, TxCarrierLost = 2147483648, }; enum tx_config_bits { TxIFGShift = 24, TxIFG84 = 0, TxIFG88 = 16777216, TxIFG92 = 33554432, TxIFG96 = 50331648, TxLoopBack = 393216, TxCRC = 65536, TxClearAbt = 1, TxDMAShift = 8, TxRetryShift = 4, TxVersionMask = 2088763392, }; enum rx_mode_bits { AcceptErr = 32, AcceptRunt = 16, AcceptBroadcast = 8, AcceptMulticast = 4, AcceptMyPhys = 2, AcceptAllPhys = 1, }; enum Config3Bits { Cfg3_FBtBEn = 1, Cfg3_FuncRegEn = 2, Cfg3_CLKRUN_En = 4, Cfg3_CardB_En = 8, Cfg3_LinkUp = 16, Cfg3_Magic = 32, Cfg3_PARM_En = 64, Cfg3_GNTSel = 128, }; enum ClearBitMasks { MultiIntrClear = 61440, ChipCmdClear = 226, Config1Clear = 206, }; enum netdev_queue_state_t { __QUEUE_STATE_DRV_XOFF = 0, __QUEUE_STATE_STACK_XOFF = 1, __QUEUE_STATE_FROZEN = 2, }; enum Config5Bits { Cfg5_PME_STS = 1, Cfg5_LANWake = 2, Cfg5_LDPS = 4, Cfg5_FIFOAddrPtr = 8, Cfg5_UWF = 16, Cfg5_MWF = 32, Cfg5_BWF = 64, }; 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 RxStatusBits { RxMulticast = 32768, RxPhysical = 16384, RxBroadcast = 8192, RxBadSymbol = 32, RxRunt = 16, RxTooLong = 8, RxCRCErr = 4, RxBadAlign = 2, RxStatusOK = 1, }; 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 rtl8139_stats { u64 packets; u64 bytes; struct u64_stats_sync syncp; }; typedef enum { CH_8139 = 0, CH_8139_K = 1, CH_8139A = 2, CH_8139A_G = 3, CH_8139B = 4, CH_8130 = 5, CH_8139C = 6, CH_8100 = 7, CH_8100B_8139D = 8, CH_8101 = 9, } chip_t; struct rtl_extra_stats { unsigned long early_rx; unsigned long tx_buf_mapped; unsigned long tx_timeouts; unsigned long rx_lost_in_ring; }; 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 rtl8139_private { void *mmio_addr; int drv_flags; struct pci_dev *pci_dev; u32 msg_enable; struct napi_struct napi; struct net_device *dev; unsigned char *rx_ring; unsigned int cur_rx; struct rtl8139_stats rx_stats; dma_addr_t rx_ring_dma; unsigned int tx_flag; unsigned long cur_tx; unsigned long dirty_tx; struct rtl8139_stats tx_stats; unsigned char *tx_buf[4]; unsigned char *tx_bufs; dma_addr_t tx_bufs_dma; signed char phys[4]; char twistie; char twist_row; char twist_col; unsigned int watchdog_fired: 1; unsigned int default_port: 4; unsigned int have_thread: 1; spinlock_t lock; spinlock_t rx_lock; chip_t chipset; u32 rx_config; struct rtl_extra_stats xstats; struct delayed_work thread; struct mii_if_info mii; unsigned int regs_len; unsigned long fifo_copy_timeout; }; struct pcmcia_socket; struct pccard_resource_ops { int (*validate_mem)(struct pcmcia_socket *); int (*find_io)(struct pcmcia_socket *, unsigned int, unsigned int *, unsigned int, unsigned int, struct resource **); struct resource * (*find_mem)(unsigned long, unsigned long, unsigned long, int, struct pcmcia_socket *); int (*init)(struct pcmcia_socket *); void (*exit)(struct pcmcia_socket *); }; typedef unsigned int u_int; typedef unsigned char u_char; struct socket_state_t { u_int flags; u_int csc_mask; u_char Vcc; u_char Vpp; u_char io_irq; }; typedef struct socket_state_t socket_state_t; typedef unsigned short u_short; struct pccard_mem_map { u_char map; u_char flags; u_short speed; phys_addr_t static_start; u_int card_start; struct resource *res; }; typedef struct pccard_mem_map pccard_mem_map; struct io_window_t { u_int InUse; u_int Config; struct resource *res; }; typedef struct io_window_t io_window_t; struct pccard_operations; struct pcmcia_callback; struct pcmcia_socket { struct module *owner; socket_state_t socket; u_int state; u_int suspended_state; u_short functions; u_short lock_count; pccard_mem_map cis_mem; void *cis_virt; io_window_t io[2]; pccard_mem_map win[4]; struct list_head cis_cache; size_t fake_cis_len; u8 *fake_cis; struct list_head socket_list; struct completion socket_released; unsigned int sock; u_int features; u_int irq_mask; u_int map_size; u_int io_offset; u_int pci_irq; struct pci_dev *cb_dev; u8 resource_setup_done; struct pccard_operations *ops; struct pccard_resource_ops *resource_ops; void *resource_data; void (*zoom_video)(struct pcmcia_socket *, int); int (*power_hook)(struct pcmcia_socket *, int); void (*tune_bridge)(struct pcmcia_socket *, struct pci_bus *); struct task_struct *thread; struct completion thread_done; unsigned int thread_events; unsigned int sysfs_events; struct mutex skt_mutex; struct mutex ops_mutex; spinlock_t thread_lock; struct pcmcia_callback *callback; struct list_head devices_list; u8 device_count; u8 pcmcia_pfc; atomic_t present; unsigned int pcmcia_irq; struct device dev; void *driver_data; int resume_status; }; struct pccard_io_map; struct pccard_operations { int (*init)(struct pcmcia_socket *); int (*suspend)(struct pcmcia_socket *); int (*get_status)(struct pcmcia_socket *, u_int *); int (*set_socket)(struct pcmcia_socket *, socket_state_t *); int (*set_io_map)(struct pcmcia_socket *, struct pccard_io_map *); int (*set_mem_map)(struct pcmcia_socket *, struct pccard_mem_map *); }; struct pccard_io_map { u_char map; u_char flags; u_short speed; phys_addr_t start; phys_addr_t stop; }; struct pcmcia_callback { struct module *owner; int (*add)(struct pcmcia_socket *); int (*remove)(struct pcmcia_socket *); void (*requery)(struct pcmcia_socket *); int (*validate)(struct pcmcia_socket *, unsigned int *); int (*suspend)(struct pcmcia_socket *); int (*early_resume)(struct pcmcia_socket *); int (*resume)(struct pcmcia_socket *); }; 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 *); struct xhci_hcd; struct xhci_container_ctx; typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); 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; u32 isoc_bei_interval; int event_ring_max; int page_size; int page_shift; int msix_count; struct clk *clk; struct clk *reg_clk; struct reset_control *reset; struct xhci_device_context_array *dcbaa; struct xhci_interrupter *interrupter; 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; u32 s3_irq_pending; u32 s3_irq_control; u32 s3_erst_size; u64 s3_erst_base; u64 s3_erst_dequeue; }; 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, }; 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 num_trbs_free_temp; 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; 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_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; }; 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]; u8 fake_port; u8 real_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_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 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; 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; }; 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 *); struct xhci_ep_ctx; typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); struct xhci_ep_ctx { __le32 ep_info; __le32 ep_info2; __le64 deq; __le32 tx_info; __le32 reserved[3]; }; 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 *); struct xhci_slot_ctx; typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); struct xhci_slot_ctx { __le32 dev_info; __le32 dev_info2; __le32 tt_info; __le32 dev_state; __le32 reserved[4]; }; 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 *); struct xhci_input_control_ctx; typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); struct xhci_input_control_ctx { __le32 drop_flags; __le32 add_flags; __le32 rsvd2[6]; }; 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 *, u32, u32); typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, 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, }; 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; enum dbc_state state; struct delayed_work event_work; 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; int slot_id; 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; u32 __data_loc_str; 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; u8 fake_port; u8 real_port; 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; u32 __data_loc_str; char __data[0]; }; struct trace_event_raw_xhci_log_slot_ctx { struct trace_entry ent; u32 info; u32 info2; u32 tt_info; u32 state; u32 __data_loc_str; char __data[0]; }; struct trace_event_raw_xhci_log_ctrl_ctx { struct trace_entry ent; u32 drop; u32 add; u32 __data_loc_str; 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 num_trbs_free; unsigned int bounce_buf_len; char __data[0]; }; struct trace_event_raw_xhci_log_portsc { struct trace_entry ent; u32 portnum; u32 portsc; u32 __data_loc_str; char __data[0]; }; struct trace_event_raw_xhci_log_doorbell { struct trace_entry ent; u32 slot; u32 doorbell; u32 __data_loc_str; 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; }; struct trace_event_data_offsets_xhci_log_ctx { u32 ctx_data; }; struct trace_event_data_offsets_xhci_log_trb { u32 str; }; 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 { u32 str; }; struct trace_event_data_offsets_xhci_log_slot_ctx { u32 str; }; struct trace_event_data_offsets_xhci_log_ctrl_ctx { u32 str; }; struct trace_event_data_offsets_xhci_log_ring {}; struct trace_event_data_offsets_xhci_log_portsc { u32 str; }; struct trace_event_data_offsets_xhci_log_doorbell { u32 str; }; struct trace_event_data_offsets_xhci_dbc_log_request {}; 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_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; }; struct update_util_data { void (*func)(struct update_util_data *, u64, unsigned int); }; 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; u64 prev_cummulative_iowait; 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; }; enum acpi_predicate { all_versions = 0, less_than_or_equal = 1, equal = 2, greater_than_or_equal = 3, }; 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; }; enum energy_perf_value_index { 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, }; enum { PSS = 0, PPC = 1, }; 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; }; struct hiddev_usage_ref { __u32 report_type; __u32 report_id; __u32 field_index; __u32 usage_index; __u32 usage_code; __s32 value; }; struct hiddev; struct hiddev_list { struct hiddev_usage_ref buffer[2048]; int head; int tail; unsigned int flags; struct fasync_struct *fasync; struct hiddev *hiddev; struct list_head node; struct mutex thread_lock; }; 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 hiddev_report_info { __u32 report_type; __u32 report_id; __u32 num_fields; }; 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 usb_ctrlrequest; 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 usb_ctrlrequest { __u8 bRequestType; __u8 bRequest; __le16 wValue; __le16 wIndex; __le16 wLength; }; struct hiddev_event { unsigned int hid; int value; }; struct hiddev_collection_info { __u32 index; __u32 type; __u32 usage; __u32 level; }; struct hiddev_field_info { __u32 report_type; __u32 report_id; __u32 field_index; __u32 maxusage; __u32 flags; __u32 physical; __u32 logical; __u32 application; __s32 logical_minimum; __s32 logical_maximum; __s32 physical_minimum; __s32 physical_maximum; __u32 unit_exponent; __u32 unit; }; struct hiddev_devinfo { __u32 bustype; __u32 busnum; __u32 devnum; __u32 ifnum; __s16 vendor; __s16 product; __s16 version; __u32 num_applications; }; struct hiddev_usage_ref_multi { struct hiddev_usage_ref uref; __u32 num_values; __s32 values[1024]; }; struct hdac_bus; struct hdac_device; struct hdac_bus_ops { int (*command)(struct hdac_bus *, unsigned int); int (*get_response)(struct hdac_bus *, unsigned int, unsigned int *); void (*link_power)(struct hdac_device *, bool); }; struct hdac_rb { __le32 *buf; dma_addr_t addr; unsigned short rp; unsigned short wp; int cmds[8]; u32 res[8]; }; struct hdac_ext_bus_ops; struct drm_audio_component; struct hdac_bus { struct device *dev; const struct hdac_bus_ops *ops; const struct hdac_ext_bus_ops *ext_ops; unsigned long addr; void *remap_addr; int irq; void *ppcap; void *spbcap; void *mlcap; void *gtscap; void *drsmcap; struct list_head codec_list; unsigned int num_codecs; struct hdac_device *caddr_tbl[16]; u32 unsol_queue[128]; unsigned int unsol_rp; unsigned int unsol_wp; struct work_struct unsol_work; unsigned long codec_mask; unsigned long codec_powered; struct hdac_rb corb; struct hdac_rb rirb; unsigned int last_cmd[8]; wait_queue_head_t rirb_wq; struct snd_dma_buffer rb; struct snd_dma_buffer posbuf; int dma_type; struct list_head stream_list; bool chip_init: 1; bool aligned_mmio: 1; bool sync_write: 1; bool use_posbuf: 1; bool snoop: 1; bool align_bdle_4k: 1; bool reverse_assign: 1; bool corbrp_self_clear: 1; bool polling_mode: 1; bool needs_damn_long_delay: 1; int poll_count; int bdl_pos_adj; unsigned int dma_stop_delay; spinlock_t reg_lock; struct mutex cmd_mutex; struct mutex lock; struct drm_audio_component *audio_component; long display_power_status; unsigned long display_power_active; int num_streams; int idx; struct list_head hlink_list; bool cmd_dma_state; unsigned int sdo_limit; }; struct hdac_ext_bus_ops { int (*hdev_attach)(struct hdac_device *); int (*hdev_detach)(struct hdac_device *); }; typedef u16 hda_nid_t; struct regmap; struct snd_array { unsigned int used; unsigned int alloced; unsigned int elem_size; unsigned int alloc_align; void *list; }; struct hdac_widget_tree; struct hdac_device { struct device dev; int type; struct hdac_bus *bus; unsigned int addr; struct list_head list; hda_nid_t afg; hda_nid_t mfg; unsigned int vendor_id; unsigned int subsystem_id; unsigned int revision_id; unsigned int afg_function_id; unsigned int mfg_function_id; unsigned int afg_unsol: 1; unsigned int mfg_unsol: 1; unsigned int power_caps; const char *vendor_name; const char *chip_name; int (*exec_verb)(struct hdac_device *, unsigned int, unsigned int, unsigned int *); unsigned int num_nodes; hda_nid_t start_nid; hda_nid_t end_nid; atomic_t in_pm; struct mutex widget_lock; struct hdac_widget_tree *widgets; struct regmap *regmap; struct mutex regmap_lock; struct snd_array vendor_verbs; bool lazy_cache: 1; bool caps_overwriting: 1; bool cache_coef: 1; unsigned int registered: 1; }; struct drm_audio_component_ops; struct drm_audio_component_audio_ops; struct drm_audio_component { struct device *dev; const struct drm_audio_component_ops *ops; const struct drm_audio_component_audio_ops *audio_ops; struct completion master_bind_complete; }; struct drm_audio_component_ops { struct module *owner; unsigned long (*get_power)(struct device *); void (*put_power)(struct device *, unsigned long); void (*codec_wake_override)(struct device *, bool); int (*get_cdclk_freq)(struct device *); int (*sync_audio_rate)(struct device *, int, int, int); int (*get_eld)(struct device *, int, int, bool *, unsigned char *, int); }; struct drm_audio_component_audio_ops { void *audio_ptr; void (*pin_eld_notify)(void *, int, int); int (*pin2port)(void *, int); int (*master_bind)(struct device *, struct drm_audio_component *); void (*master_unbind)(struct device *, struct drm_audio_component *); }; struct hda_device_id; struct hdac_driver { struct device_driver driver; int type; const struct hda_device_id *id_table; int (*match)(struct hdac_device *, struct hdac_driver *); void (*unsol_event)(struct hdac_device *, unsigned int); int (*probe)(struct hdac_device *); int (*remove)(struct hdac_device *); void (*shutdown)(struct hdac_device *); }; struct hda_device_id { __u32 vendor_id; __u32 rev_id; __u8 api_version; const char *name; unsigned long driver_data; }; 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 tc_skb_cb { struct qdisc_skb_cb qdisc_cb; u16 mru; u8 post_ct: 1; u8 post_ct_snat: 1; u8 post_ct_dnat: 1; u16 zone; }; 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_CNT = 15, ETHTOOL_A_RINGS_MAX = 14, }; 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, }; struct rings_reply_data { struct ethnl_reply_data base; struct ethtool_ringparam ringparam; struct kernel_ethtool_ringparam kernel_ringparam; }; 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; }; enum ctattr_timeout_generic { CTA_TIMEOUT_GENERIC_UNSPEC = 0, CTA_TIMEOUT_GENERIC_TIMEOUT = 1, __CTA_TIMEOUT_GENERIC_MAX = 2, }; struct compat_delta; struct xt_af { struct mutex mutex; struct list_head match; struct list_head target; struct mutex compat_mutex; struct compat_delta *compat_tab; unsigned int number; unsigned int cur; }; struct compat_delta { unsigned int offset; int delta; }; 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_INVALID = 19, }; enum { MTTG_TRAV_INIT = 0, MTTG_TRAV_NFP_UNSPEC = 1, MTTG_TRAV_NFP_SPEC = 2, MTTG_TRAV_DONE = 3, }; struct compat_xt_entry_match { union { struct { u_int16_t match_size; char name[29]; u_int8_t revision; } user; struct { u_int16_t match_size; compat_uptr_t match; } kernel; u_int16_t match_size; } u; unsigned char data[0]; }; struct compat_xt_entry_target { union { struct { u_int16_t target_size; char name[29]; u_int8_t revision; } user; struct { u_int16_t target_size; compat_uptr_t target; } kernel; u_int16_t target_size; } u; unsigned char data[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 xt_template { struct list_head list; int (*table_init)(struct net *); struct module *me; char name[32]; }; 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 nf_mttg_trav { struct list_head *head; struct list_head *curr; uint8_t class; }; struct xt_counters { __u64 pcnt; __u64 bcnt; }; 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 compat_xt_error_target { struct compat_xt_entry_target t; char errorname[30]; }; struct compat_xt_standard_target { struct compat_xt_entry_target t; compat_uint_t verdict; }; struct xt_error_target { struct xt_entry_target target; char errorname[30]; }; struct xt_standard_target { struct xt_entry_target target; int verdict; }; typedef u64 compat_u64; struct compat_xt_counters { compat_u64 pcnt; compat_u64 bcnt; }; struct compat_xt_counters_info { char name[32]; compat_uint_t num_counters; struct compat_xt_counters counters[0]; } __attribute__((packed)); struct xt_counters_info { char name[32]; unsigned int num_counters; struct xt_counters counters[0]; }; struct xt_pernet { struct list_head tables[11]; }; struct xt_percpu_counter_alloc_state { unsigned int off; const char __attribute__((btf_type_tag("percpu"))) *mem; }; 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; }; 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 devinet_sysctl_table { struct ctl_table_header *sysctl_header; struct ctl_table devinet_vars[34]; }; 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 { 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, }; 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, }; 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, }; 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, }; 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 { IFLA_INET_UNSPEC = 0, IFLA_INET_CONF = 1, __IFLA_INET_MAX = 2, }; 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; }; struct ifaddrmsg { __u8 ifa_family; __u8 ifa_prefixlen; __u8 ifa_flags; __u8 ifa_scope; __u32 ifa_index; }; struct ifa_cacheinfo { __u32 ifa_prefered; __u32 ifa_valid; __u32 cstamp; __u32 tstamp; }; struct inet_fill_args { u32 portid; u32 seq; int event; unsigned int flags; int netnsid; int ifindex; }; struct netconfmsg { __u8 ncm_family; }; struct in_validator_info { __be32 ivi_addr; struct in_device *ivi_dev; struct netlink_ext_ack *extack; }; enum tunnel_encap_types { TUNNEL_ENCAP_NONE = 0, TUNNEL_ENCAP_FOU = 1, TUNNEL_ENCAP_GUE = 2, TUNNEL_ENCAP_MPLS = 3, }; enum metadata_type { METADATA_IP_TUNNEL = 0, METADATA_HW_PORT_MUX = 1, METADATA_MACSEC = 2, METADATA_XFRM = 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, }; 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_MAX = 65, }; enum { IFLA_GRE_UNSPEC = 0, IFLA_GRE_LINK = 1, IFLA_GRE_IFLAGS = 2, IFLA_GRE_OFLAGS = 3, IFLA_GRE_IKEY = 4, IFLA_GRE_OKEY = 5, IFLA_GRE_LOCAL = 6, IFLA_GRE_REMOTE = 7, IFLA_GRE_TTL = 8, IFLA_GRE_TOS = 9, IFLA_GRE_PMTUDISC = 10, IFLA_GRE_ENCAP_LIMIT = 11, IFLA_GRE_FLOWINFO = 12, IFLA_GRE_FLAGS = 13, IFLA_GRE_ENCAP_TYPE = 14, IFLA_GRE_ENCAP_FLAGS = 15, IFLA_GRE_ENCAP_SPORT = 16, IFLA_GRE_ENCAP_DPORT = 17, IFLA_GRE_COLLECT_METADATA = 18, IFLA_GRE_IGNORE_DF = 19, IFLA_GRE_FWMARK = 20, IFLA_GRE_ERSPAN_INDEX = 21, IFLA_GRE_ERSPAN_VER = 22, IFLA_GRE_ERSPAN_DIR = 23, IFLA_GRE_ERSPAN_HWID = 24, __IFLA_GRE_MAX = 25, }; enum erspan_encap_type { ERSPAN_ENCAP_NOVLAN = 0, ERSPAN_ENCAP_ISL = 1, ERSPAN_ENCAP_8021Q = 2, ERSPAN_ENCAP_INFRAME = 3, }; enum erspan_bso { BSO_NOERROR = 0, BSO_SHORT = 1, BSO_OVERSIZED = 2, BSO_BAD = 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; __be16 tp_src; __be16 tp_dst; __u8 flow_flags; }; struct ip_tunnel_info { struct ip_tunnel_key key; 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; }; struct qtag_prefix { __be16 eth_type; __be16 tci; }; struct erspan_md2 { __be32 timestamp; __be16 sgt; __u8 hwid_upper: 2; __u8 ft: 5; __u8 p: 1; __u8 o: 1; __u8 gra: 2; __u8 dir: 1; __u8 hwid: 4; }; struct erspan_metadata { int version; union { __be32 index; struct erspan_md2 md2; } u; }; 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 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 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 bpf_flow_keys; 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_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 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_xfrm_info { u32 if_id; int link; }; 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_pernet_data { struct mutex lock; struct rhashtable namespaces; struct rhashtable schemas; }; 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 ioam6_namespace; 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]; }; 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 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 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 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 udphdr { __be16 source; __be16 dest; __be16 len; __sum16 check; }; struct guehdr { union { struct { __u8 hlen: 5; __u8 control: 1; __u8 version: 2; __u8 proto_ctype; __be16 flags; }; __be32 word; }; }; 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; }; struct svc_rqst; struct auth_domain; struct auth_ops { char *name; struct module *owner; int flavour; int (*accept)(struct svc_rqst *); int (*release)(struct svc_rqst *); void (*domain_release)(struct auth_domain *); int (*set_client)(struct svc_rqst *); }; struct gss_api_mech; struct svc_cred { kuid_t cr_uid; kgid_t cr_gid; struct group_info *cr_group_info; u32 cr_flavor; char *cr_raw_principal; char *cr_principal; char *cr_targ_princ; struct gss_api_mech *cr_gss_mech; }; struct cache_deferred_req; struct cache_req { struct cache_deferred_req * (*defer)(struct cache_req *); unsigned long thread_wait; }; struct svc_cacherep; struct svc_serv; struct svc_pool; struct svc_procedure; struct svc_deferred_req; struct svc_rqst { struct list_head rq_all; struct callback_head rq_rcu_head; struct svc_xprt *rq_xprt; struct __kernel_sockaddr_storage rq_addr; size_t rq_addrlen; struct __kernel_sockaddr_storage rq_daddr; size_t rq_daddrlen; struct svc_serv *rq_server; struct svc_pool *rq_pool; const struct svc_procedure *rq_procinfo; struct auth_ops *rq_authop; struct svc_cred rq_cred; void *rq_xprt_ctxt; struct svc_deferred_req *rq_deferred; struct xdr_buf rq_arg; struct xdr_stream rq_arg_stream; struct xdr_stream rq_res_stream; struct page *rq_scratch_page; struct xdr_buf rq_res; struct page *rq_pages[260]; struct page **rq_respages; struct page **rq_next_page; struct page **rq_page_end; struct pagevec rq_pvec; struct kvec rq_vec[259]; struct bio_vec rq_bvec[259]; __be32 rq_xid; u32 rq_prog; u32 rq_vers; u32 rq_proc; u32 rq_prot; int rq_cachetype; unsigned long rq_flags; ktime_t rq_qtime; void *rq_argp; void *rq_resp; __be32 *rq_accept_statp; void *rq_auth_data; __be32 rq_auth_stat; int rq_auth_slack; int rq_reserved; ktime_t rq_stime; struct cache_req rq_chandle; struct auth_domain *rq_client; struct auth_domain *rq_gssclient; struct svc_cacherep *rq_cacherep; struct task_struct *rq_task; struct net *rq_bc_net; void **rq_lease_breaker; }; struct svc_xprt_class; struct svc_xprt_ops; struct svc_xprt { struct svc_xprt_class *xpt_class; const struct svc_xprt_ops *xpt_ops; struct kref xpt_ref; struct list_head xpt_list; struct list_head xpt_ready; unsigned long xpt_flags; struct svc_serv *xpt_server; atomic_t xpt_reserved; atomic_t xpt_nr_rqsts; struct mutex xpt_mutex; spinlock_t xpt_lock; void *xpt_auth_cache; struct list_head xpt_deferred; struct __kernel_sockaddr_storage xpt_local; size_t xpt_locallen; struct __kernel_sockaddr_storage xpt_remote; size_t xpt_remotelen; char xpt_remotebuf[58]; struct list_head xpt_users; struct net *xpt_net; netns_tracker ns_tracker; const struct cred *xpt_cred; struct rpc_xprt *xpt_bc_xprt; struct rpc_xprt_switch *xpt_bc_xps; }; struct svc_xprt_class { const char *xcl_name; struct module *xcl_owner; const struct svc_xprt_ops *xcl_ops; struct list_head xcl_list; u32 xcl_max_payload; int xcl_ident; }; struct svc_xprt_ops { struct svc_xprt * (*xpo_create)(struct svc_serv *, struct net *, struct sockaddr *, int, int); struct svc_xprt * (*xpo_accept)(struct svc_xprt *); int (*xpo_has_wspace)(struct svc_xprt *); int (*xpo_recvfrom)(struct svc_rqst *); int (*xpo_sendto)(struct svc_rqst *); int (*xpo_result_payload)(struct svc_rqst *, unsigned int, unsigned int); void (*xpo_release_rqst)(struct svc_rqst *); void (*xpo_detach)(struct svc_xprt *); void (*xpo_free)(struct svc_xprt *); void (*xpo_kill_temp_xprt)(struct svc_xprt *); void (*xpo_start_tls)(struct svc_xprt *); }; struct svc_program; struct svc_stat; struct svc_serv { struct svc_program *sv_program; struct svc_stat *sv_stats; spinlock_t sv_lock; struct kref sv_refcnt; unsigned int sv_nrthreads; unsigned int sv_maxconn; unsigned int sv_max_payload; unsigned int sv_max_mesg; unsigned int sv_xdrsize; struct list_head sv_permsocks; struct list_head sv_tempsocks; int sv_tmpcnt; struct timer_list sv_temptimer; char *sv_name; unsigned int sv_nrpools; struct svc_pool *sv_pools; int (*sv_threadfn)(void *); }; struct svc_version; struct svc_process_info; struct svc_program { struct svc_program *pg_next; u32 pg_prog; unsigned int pg_lovers; unsigned int pg_hivers; unsigned int pg_nvers; const struct svc_version **pg_vers; char *pg_name; char *pg_class; struct svc_stat *pg_stats; int (*pg_authenticate)(struct svc_rqst *); __be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *); int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, unsigned short, unsigned short); }; struct svc_version { u32 vs_vers; u32 vs_nproc; const struct svc_procedure *vs_proc; unsigned long __attribute__((btf_type_tag("percpu"))) *vs_count; u32 vs_xdrsize; bool vs_hidden; bool vs_rpcb_optnl; bool vs_need_cong_ctrl; int (*vs_dispatch)(struct svc_rqst *); }; struct svc_procedure { __be32 (*pc_func)(struct svc_rqst *); bool (*pc_decode)(struct svc_rqst *, struct xdr_stream *); bool (*pc_encode)(struct svc_rqst *, struct xdr_stream *); void (*pc_release)(struct svc_rqst *); unsigned int pc_argsize; unsigned int pc_argzero; unsigned int pc_ressize; unsigned int pc_cachetype; unsigned int pc_xdrressize; const char *pc_name; }; struct svc_stat { struct svc_program *program; unsigned int netcnt; unsigned int netudpcnt; unsigned int nettcpcnt; unsigned int nettcpconn; unsigned int rpccnt; unsigned int rpcbadfmt; unsigned int rpcbadauth; unsigned int rpcbadclnt; }; struct svc_process_info { union { int (*dispatch)(struct svc_rqst *); struct { unsigned int lovers; unsigned int hivers; } mismatch; }; }; struct svc_pool { unsigned int sp_id; spinlock_t sp_lock; struct list_head sp_sockets; unsigned int sp_nrthreads; struct list_head sp_all_threads; struct percpu_counter sp_sockets_queued; struct percpu_counter sp_threads_woken; struct percpu_counter sp_threads_timedout; unsigned long sp_flags; long: 64; long: 64; }; struct gss_api_ops; struct pf_desc; struct gss_api_mech { struct list_head gm_list; struct module *gm_owner; struct rpcsec_gss_oid gm_oid; char *gm_name; const struct gss_api_ops *gm_ops; int gm_pf_num; struct pf_desc *gm_pfs; const char *gm_upcall_enctypes; }; struct gss_ctx; struct gss_api_ops { int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t); u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **); u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *); void (*gss_delete_sec_context)(void *); }; struct gss_ctx { struct gss_api_mech *mech_type; void *internal_ctx_id; unsigned int slack; unsigned int align; }; struct pf_desc { u32 pseudoflavor; u32 qop; u32 service; char *name; char *auth_domain_name; struct auth_domain *domain; bool datatouch; }; struct auth_domain { struct kref ref; struct hlist_node hash; char *name; struct auth_ops *flavour; struct callback_head callback_head; }; struct cache_head; struct cache_deferred_req { struct hlist_node hash; struct list_head recent; struct cache_head *item; void *owner; void (*revisit)(struct cache_deferred_req *, int); }; struct svc_deferred_req { u32 prot; struct svc_xprt *xprt; struct __kernel_sockaddr_storage addr; size_t addrlen; struct __kernel_sockaddr_storage daddr; size_t daddrlen; void *xprt_ctxt; struct cache_deferred_req handle; int argslen; __be32 args[0]; }; struct cache_head { struct hlist_node cache_list; time64_t expiry_time; time64_t last_refresh; struct kref ref; unsigned long flags; }; struct mesh_rmc { struct hlist_head bucket[256]; u32 idx_mask; }; 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 { 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_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 nl80211_channel_type { NL80211_CHAN_NO_HT = 0, NL80211_CHAN_HT20 = 1, NL80211_CHAN_HT40MINUS = 2, NL80211_CHAN_HT40PLUS = 3, }; enum rate_control_capabilities { RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1, RATE_CTRL_CAPA_AMPDU_TRIGGER = 2, }; enum { IEEE80211_RX_MSG = 1, IEEE80211_TX_STATUS_MSG = 2, }; 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; }; struct netlbl_audit { u32 secid; kuid_t loginuid; unsigned int sessionid; }; 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; }; struct mpls_link_stats { __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 rx_noroute; }; struct mpls_pcpu_stats { struct mpls_link_stats stats; struct u64_stats_sync syncp; }; enum { MPLS_IPTUNNEL_UNSPEC = 0, MPLS_IPTUNNEL_DST = 1, MPLS_IPTUNNEL_TTL = 2, __MPLS_IPTUNNEL_MAX = 3, }; enum mpls_ttl_propagation { MPLS_TTL_PROP_DEFAULT = 0, MPLS_TTL_PROP_ENABLED = 1, MPLS_TTL_PROP_DISABLED = 2, }; enum { NEIGH_ARP_TABLE = 0, NEIGH_ND_TABLE = 1, NEIGH_DN_TABLE = 2, NEIGH_NR_TABLES = 3, NEIGH_LINK_TABLE = 3, }; enum { LWTUNNEL_XMIT_DONE = 0, LWTUNNEL_XMIT_CONTINUE = 1, }; struct mpls_iptunnel_encap { u8 labels; u8 ttl_propagate; u8 default_ttl; u8 reserved1; u32 label[0]; }; struct mpls_shim_hdr { __be32 label_stack_entry; }; enum pci_bf_sort_state { pci_bf_sort_default = 0, pci_force_nobf = 1, pci_force_bf = 2, pci_dmi_bf = 3, }; enum { MEMREMAP_WB = 1, MEMREMAP_WT = 2, MEMREMAP_WC = 4, MEMREMAP_ENC = 8, MEMREMAP_DEC = 16, }; 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 setup_data { __u64 next; __u32 type; __u32 len; __u8 data[0]; }; 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 dmi_header { u8 type; u8 length; u16 handle; }; struct cstate_model { unsigned long core_events; unsigned long pkg_events; unsigned long quirks; }; struct perf_msr { u64 msr; struct attribute_group *grp; bool (*test)(int, void *); bool no_check; u64 mask; }; struct perf_pmu_events_attr { struct device_attribute attr; u64 id; const char *event_str; }; 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 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, }; typedef unsigned long mce_banks_t[1]; enum { CMCI_STORM_NONE = 0, CMCI_STORM_ACTIVE = 1, CMCI_STORM_SUBSIDED = 2, }; enum mcp_flags { MCP_TIMESTAMP = 1, MCP_UC = 2, MCP_DONTLOG = 4, MCP_QUEUE_LOG = 8, }; 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; }; enum ucode_state { UCODE_OK = 0, UCODE_NEW = 1, UCODE_UPDATED = 2, UCODE_NFOUND = 3, UCODE_ERROR = 4, }; 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 *); }; 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 cpio_data { void *data; size_t size; char name[18]; }; struct cont_desc { struct microcode_amd *mc; u32 cpuid_1_eax; u32 psize; u8 *data; size_t size; }; 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_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; }; 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); struct tasklet_head { struct tasklet_struct *head; struct tasklet_struct **tail; }; 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 { TASKLET_STATE_SCHED = 0, TASKLET_STATE_RUN = 1, }; 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_data_offsets_irq_handler_entry { u32 name; }; struct trace_event_data_offsets_irq_handler_exit {}; struct trace_event_data_offsets_softirq {}; struct __kernel_old_timeval { __kernel_long_t tv_sec; __kernel_long_t tv_usec; }; struct __kernel_old_itimerval { struct __kernel_old_timeval it_interval; struct __kernel_old_timeval it_value; }; struct old_timeval32 { old_time32_t tv_sec; s32 tv_usec; }; struct old_itimerval32 { struct old_timeval32 it_interval; struct old_timeval32 it_value; }; struct itimerspec64 { struct timespec64 it_interval; struct timespec64 it_value; }; typedef int __kernel_mqd_t; typedef __kernel_mqd_t mqd_t; 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 audit_cap_data { kernel_cap_t permitted; kernel_cap_t inheritable; union { unsigned int fE; kernel_cap_t effective; }; kernel_cap_t ambient; kuid_t rootid; }; struct audit_ntp_val { long long oldval; long long newval; }; struct audit_ntp_data { struct audit_ntp_val vals[6]; }; struct open_how { __u64 flags; __u64 mode; __u64 resolve; }; enum audit_state { AUDIT_STATE_DISABLED = 0, AUDIT_STATE_BUILD = 1, AUDIT_STATE_RECORD = 2, }; struct audit_names { struct list_head list; struct filename *name; int name_len; bool hidden; unsigned long ino; dev_t dev; umode_t mode; kuid_t uid; kgid_t gid; dev_t rdev; u32 osid; struct audit_cap_data fcap; unsigned int fcap_ver; unsigned char type; bool should_free; }; struct audit_proctitle { int len; char *value; }; struct audit_aux_data; struct audit_tree_refs; struct audit_context { int dummy; enum { AUDIT_CTX_UNUSED = 0, AUDIT_CTX_SYSCALL = 1, AUDIT_CTX_URING = 2, } context; enum audit_state state; enum audit_state current_state; unsigned int serial; int major; int uring_op; struct timespec64 ctime; unsigned long argv[4]; long return_code; u64 prio; int return_valid; struct audit_names preallocated_names[5]; int name_count; struct list_head names_list; char *filterkey; struct path pwd; struct audit_aux_data *aux; struct audit_aux_data *aux_pids; struct __kernel_sockaddr_storage *sockaddr; size_t sockaddr_len; pid_t ppid; kuid_t uid; kuid_t euid; kuid_t suid; kuid_t fsuid; kgid_t gid; kgid_t egid; kgid_t sgid; kgid_t fsgid; unsigned long personality; int arch; pid_t target_pid; kuid_t target_auid; kuid_t target_uid; unsigned int target_sessionid; u32 target_sid; char target_comm[16]; struct audit_tree_refs *trees; struct audit_tree_refs *first_trees; struct list_head killed_trees; int tree_count; int type; union { struct { int nargs; long args[6]; } socketcall; struct { kuid_t uid; kgid_t gid; umode_t mode; u32 osid; int has_perm; uid_t perm_uid; gid_t perm_gid; umode_t perm_mode; unsigned long qbytes; } ipc; struct { mqd_t mqdes; struct mq_attr mqstat; } mq_getsetattr; struct { mqd_t mqdes; int sigev_signo; } mq_notify; struct { mqd_t mqdes; size_t msg_len; unsigned int msg_prio; struct timespec64 abs_timeout; } mq_sendrecv; struct { int oflag; umode_t mode; struct mq_attr attr; } mq_open; struct { pid_t pid; struct audit_cap_data cap; } capset; struct { int fd; int flags; } mmap; struct open_how openat2; struct { int argc; } execve; struct { char *name; } module; struct { struct audit_ntp_data ntp_data; struct timespec64 tk_injoffset; } time; }; int fds[2]; struct audit_proctitle proctitle; }; enum { Audit_equal = 0, Audit_not_equal = 1, Audit_bitmask = 2, Audit_bittest = 3, Audit_lt = 4, Audit_gt = 5, Audit_le = 6, Audit_ge = 7, Audit_bad = 8, }; enum { HASH_SIZE = 128, }; struct audit_tree; struct audit_node { struct list_head list; struct audit_tree *owner; unsigned int index; }; struct audit_chunk { struct list_head hash; unsigned long key; struct fsnotify_mark *mark; struct list_head trees; int count; atomic_long_t refs; struct callback_head head; struct audit_node owners[0]; }; struct audit_tree { refcount_t count; int goner; struct audit_chunk *root; struct list_head chunks; struct list_head rules; struct list_head list; struct list_head same_root; struct callback_head head; char pathname[0]; }; struct audit_tree_mark { struct fsnotify_mark mark; struct audit_chunk *chunk; }; struct audit_field; struct audit_watch; struct audit_fsnotify_mark; struct audit_krule { u32 pflags; u32 flags; u32 listnr; u32 action; u32 mask[64]; u32 buflen; u32 field_count; char *filterkey; struct audit_field *fields; struct audit_field *arch_f; struct audit_field *inode_f; struct audit_watch *watch; struct audit_tree *tree; struct audit_fsnotify_mark *exe; struct list_head rlist; struct list_head list; u64 prio; }; struct audit_field { u32 type; union { u32 val; kuid_t uid; kgid_t gid; struct { char *lsm_str; void *lsm_rule; }; }; u32 op; }; struct audit_entry { struct list_head list; struct callback_head rcu; struct audit_krule rule; }; struct dyn_event; 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 dyn_event { struct list_head list; struct dyn_event_operations *ops; }; 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_DEREF = 10, FETCH_OP_UDEREF = 11, FETCH_OP_ST_RAW = 12, FETCH_OP_ST_MEM = 13, FETCH_OP_ST_UMEM = 14, FETCH_OP_ST_STRING = 15, FETCH_OP_ST_USTRING = 16, FETCH_OP_ST_SYMSTR = 17, FETCH_OP_MOD_BF = 18, FETCH_OP_LP_ARRAY = 19, FETCH_OP_TP_ARG = 20, FETCH_OP_END = 21, FETCH_NOP_SYMBOL = 22, }; enum dynevent_type { DYNEVENT_TYPE_SYNTH = 1, DYNEVENT_TYPE_KPROBE = 2, DYNEVENT_TYPE_NONE = 3, }; 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 probe_print_type { PROBE_PRINT_NORMAL = 0, PROBE_PRINT_RETURN = 1, PROBE_PRINT_EVENT = 2, }; 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_MAXACT_NO_KPROBE = 6, TP_ERR_BAD_MAXACT = 7, TP_ERR_MAXACT_TOO_BIG = 8, TP_ERR_BAD_PROBE_ADDR = 9, TP_ERR_BAD_RETPROBE = 10, TP_ERR_BAD_ADDR_SUFFIX = 11, TP_ERR_NO_GROUP_NAME = 12, TP_ERR_GROUP_TOO_LONG = 13, TP_ERR_BAD_GROUP_NAME = 14, TP_ERR_NO_EVENT_NAME = 15, TP_ERR_EVENT_TOO_LONG = 16, TP_ERR_BAD_EVENT_NAME = 17, TP_ERR_EVENT_EXIST = 18, TP_ERR_RETVAL_ON_PROBE = 19, TP_ERR_BAD_STACK_NUM = 20, TP_ERR_BAD_ARG_NUM = 21, TP_ERR_BAD_VAR = 22, TP_ERR_BAD_REG_NAME = 23, TP_ERR_BAD_MEM_ADDR = 24, TP_ERR_BAD_IMM = 25, TP_ERR_IMMSTR_NO_CLOSE = 26, TP_ERR_FILE_ON_KPROBE = 27, TP_ERR_BAD_FILE_OFFS = 28, TP_ERR_SYM_ON_UPROBE = 29, TP_ERR_TOO_MANY_OPS = 30, TP_ERR_DEREF_NEED_BRACE = 31, TP_ERR_BAD_DEREF_OFFS = 32, TP_ERR_DEREF_OPEN_BRACE = 33, TP_ERR_COMM_CANT_DEREF = 34, TP_ERR_BAD_FETCH_ARG = 35, TP_ERR_ARRAY_NO_CLOSE = 36, TP_ERR_BAD_ARRAY_SUFFIX = 37, TP_ERR_BAD_ARRAY_NUM = 38, TP_ERR_ARRAY_TOO_BIG = 39, TP_ERR_BAD_TYPE = 40, TP_ERR_BAD_STRING = 41, TP_ERR_BAD_SYMSTRING = 42, TP_ERR_BAD_BITFIELD = 43, TP_ERR_ARG_NAME_TOO_LONG = 44, TP_ERR_NO_ARG_NAME = 45, TP_ERR_BAD_ARG_NAME = 46, TP_ERR_USED_ARG_NAME = 47, TP_ERR_ARG_TOO_LONG = 48, TP_ERR_NO_ARG_BODY = 49, TP_ERR_BAD_INSN_BNDRY = 50, TP_ERR_FAIL_REG_PROBE = 51, TP_ERR_DIFF_PROBE_TYPE = 52, TP_ERR_DIFF_ARG_TYPE = 53, TP_ERR_SAME_PROBE = 54, TP_ERR_NO_EVENT_INFO = 55, TP_ERR_BAD_ATTACH_EVENT = 56, TP_ERR_BAD_ATTACH_ARG = 57, TP_ERR_NO_EP_FILTER = 58, }; 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; }; struct kretprobe_instance; typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); 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 fetch_insn; struct fetch_type; 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 trace_probe_event; struct trace_probe { struct list_head list; struct trace_probe_event *event; ssize_t size; unsigned int nr_args; struct probe_arg args[0]; }; 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_instance { struct rethook_node node; char data[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 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; }; }; 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; }; struct event_file_link { struct trace_event_file *file; struct list_head list; }; 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 *); enum { DUMP_PREFIX_NONE = 0, DUMP_PREFIX_ADDRESS = 1, DUMP_PREFIX_OFFSET = 2, }; struct constant_table { const char *name; int value; }; 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 lock_manager { struct list_head list; bool block_opens; }; 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_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 iomap_iter; 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 *); }; 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_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 *); }; 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 *); const char *lsm; }; 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; }; struct bpf_iter_aux_info; enum ext4_journal_trigger_type { EXT4_JTR_ORPHAN_FILE = 0, EXT4_JTR_NONE = 1, }; 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_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 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; }; typedef enum { EXT4_IGET_NORMAL = 0, EXT4_IGET_SPECIAL = 1, EXT4_IGET_HANDLE = 2, EXT4_IGET_BAD = 4, } ext4_iget_flags; struct ext4_new_flex_group_data { struct ext4_new_group_data *groups; __u16 *bg_flags; ext4_group_t count; }; struct ext4_iloc { struct buffer_head *bh; unsigned long offset; ext4_group_t block_group; }; struct nfs3_getaclargs { struct nfs_fh *fh; int mask; struct page **pages; }; struct nfs3_getaclres { struct nfs_fattr *fattr; int mask; unsigned int acl_access_count; unsigned int acl_default_count; struct posix_acl *acl_access; struct posix_acl *acl_default; }; struct nfs3_setaclargs { struct inode *inode; int mask; struct posix_acl *acl_access; struct posix_acl *acl_default; size_t len; unsigned int npages; struct page **pages; }; struct nlm_host; struct nlm_lockowner { struct list_head list; refcount_t count; struct nlm_host *host; fl_owner_t owner; uint32_t pid; }; struct nsm_handle; struct nlm_host { struct hlist_node h_hash; struct __kernel_sockaddr_storage h_addr; size_t h_addrlen; struct __kernel_sockaddr_storage h_srcaddr; size_t h_srcaddrlen; struct rpc_clnt *h_rpcclnt; char *h_name; u32 h_version; unsigned short h_proto; unsigned short h_reclaiming: 1; unsigned short h_server: 1; unsigned short h_noresvport: 1; unsigned short h_inuse: 1; wait_queue_head_t h_gracewait; struct rw_semaphore h_rwsem; u32 h_state; u32 h_nsmstate; u32 h_pidcount; refcount_t h_count; struct mutex h_mutex; unsigned long h_nextrebind; unsigned long h_expires; struct list_head h_lockowners; spinlock_t h_lock; struct list_head h_granted; struct list_head h_reclaim; struct nsm_handle *h_nsmhandle; char *h_addrbuf; struct net *net; const struct cred *h_cred; char nodename[65]; const struct nlmclnt_operations *h_nlmclnt_ops; }; struct nsm_private { unsigned char data[16]; }; struct nsm_handle { struct list_head sm_link; refcount_t sm_count; char *sm_mon_name; char *sm_name; struct __kernel_sockaddr_storage sm_addr; size_t sm_addrlen; unsigned int sm_monitored: 1; unsigned int sm_sticky: 1; struct nsm_private sm_priv; char sm_addrbuf[51]; }; struct nlmsvc_binding { __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); void (*fclose)(struct file *); }; struct lockd_net { unsigned int nlmsvc_users; unsigned long next_gc; unsigned long nrhosts; struct delayed_work grace_period_end; struct lock_manager lockd_manager; struct list_head nsm_handles; }; enum p9_cache_modes { CACHE_NONE = 0, CACHE_MMAP = 1, CACHE_LOOSE = 2, CACHE_FSCACHE = 3, nr__p9_cache_modes = 4, }; enum p9_session_flags { V9FS_PROTO_2000U = 1, V9FS_PROTO_2000L = 2, V9FS_ACCESS_SINGLE = 4, V9FS_ACCESS_USER = 8, V9FS_ACCESS_CLIENT = 16, V9FS_POSIX_ACL = 32, }; struct v9fs_session_info { unsigned char flags; unsigned char nodev; unsigned short debug; unsigned int afid; unsigned int cache; char *uname; char *aname; unsigned int maxdata; kuid_t dfltuid; kgid_t dfltgid; kuid_t uid; struct p9_client *clnt; struct list_head slist; struct rw_semaphore rename_sem; long session_lock_timeout; }; struct p9_rstatfs { u32 type; u32 bsize; u64 blocks; u64 bfree; u64 bavail; u64 files; u64 ffree; u64 fsid; u32 namelen; }; struct mls_level { u32 sens; struct ebitmap cat; }; struct mls_range { struct mls_level level[2]; }; struct context { u32 user; u32 role; u32 type; u32 len; struct mls_range range; char *str; }; struct sidtab_str_cache; struct sidtab_entry { u32 sid; u32 hash; struct context context; struct sidtab_str_cache __attribute__((btf_type_tag("rcu"))) *cache; struct hlist_node list; }; struct ebitmap_node { struct ebitmap_node *next; unsigned long maps[6]; u32 startbit; }; struct sidtab_str_cache { struct callback_head rcu_member; struct list_head lru_member; struct sidtab_entry *parent; u32 len; char str[0]; }; struct sidtab_node_inner; struct sidtab_node_leaf; union sidtab_entry_inner { struct sidtab_node_inner *ptr_inner; struct sidtab_node_leaf *ptr_leaf; }; struct sidtab_isid_entry { int set; struct sidtab_entry entry; }; struct sidtab_convert_params; struct sidtab { union sidtab_entry_inner roots[4]; u32 count; struct sidtab_convert_params *convert; bool frozen; spinlock_t lock; u32 cache_free_slots; struct list_head cache_lru_list; spinlock_t cache_lock; struct sidtab_isid_entry isids[27]; struct hlist_head context_to_sid[512]; }; struct sidtab_node_inner { union sidtab_entry_inner entries[512]; }; struct sidtab_node_leaf { struct sidtab_entry entries[39]; }; struct convert_context_args; struct sidtab_convert_params { struct convert_context_args *args; struct sidtab *target; }; struct convert_context_args { struct selinux_state *state; struct policydb *oldp; struct policydb *newp; }; struct hashtab_node { void *key; void *datum; struct hashtab_node *next; }; struct common_datum; struct constraint_node; struct class_datum { u32 value; char *comkey; struct common_datum *comdatum; struct symtab permissions; struct constraint_node *constraints; struct constraint_node *validatetrans; char default_user; char default_role; char default_type; char default_range; }; struct common_datum { u32 value; struct symtab permissions; }; struct constraint_expr; struct constraint_node { u32 permissions; struct constraint_expr *expr; struct constraint_node *next; }; struct type_set; struct constraint_expr { u32 expr_type; u32 attr; u32 op; struct ebitmap names; struct type_set *type_names; struct constraint_expr *next; }; struct type_set { struct ebitmap types; struct ebitmap negset; u32 flags; }; struct role_datum { u32 value; u32 bounds; struct ebitmap dominates; struct ebitmap types; }; struct user_datum { u32 value; u32 bounds; struct ebitmap roles; struct mls_range range; struct mls_level dfltlevel; }; struct type_datum { u32 value; u32 bounds; unsigned char primary; unsigned char attribute; }; struct avtab_key { u16 source_type; u16 target_type; u16 target_class; u16 specified; }; struct avtab_extended_perms; struct avtab_datum { union { u32 data; struct avtab_extended_perms *xperms; } u; }; struct avtab_node { struct avtab_key key; struct avtab_datum datum; struct avtab_node *next; }; struct extended_perms_data { u32 p[8]; }; struct avtab_extended_perms { u8 specified; u8 driver; struct extended_perms_data perms; }; struct cond_bool_datum { __u32 value; int state; }; struct role_allow { u32 role; u32 new_role; struct role_allow *next; }; struct ocontext { union { char *name; struct { u8 protocol; u16 low_port; u16 high_port; } port; struct { u32 addr; u32 mask; } node; struct { u32 addr[4]; u32 mask[4]; } node6; struct { u64 subnet_prefix; u16 low_pkey; u16 high_pkey; } ibpkey; struct { char *dev_name; u8 port; } ibendport; } u; union { u32 sclass; u32 behavior; } v; struct context context[2]; u32 sid[2]; struct ocontext *next; }; struct genfs { char *fstype; struct ocontext *head; struct genfs *next; }; struct selinux_mapping { u16 value; unsigned int num_perms; u32 perms[32]; }; struct crypto_rng { struct crypto_tfm base; }; enum crypto_attr_type_t { CRYPTOCFGA_UNSPEC = 0, CRYPTOCFGA_PRIORITY_VAL = 1, CRYPTOCFGA_REPORT_LARVAL = 2, CRYPTOCFGA_REPORT_HASH = 3, CRYPTOCFGA_REPORT_BLKCIPHER = 4, CRYPTOCFGA_REPORT_AEAD = 5, CRYPTOCFGA_REPORT_COMPRESS = 6, CRYPTOCFGA_REPORT_RNG = 7, CRYPTOCFGA_REPORT_CIPHER = 8, CRYPTOCFGA_REPORT_AKCIPHER = 9, CRYPTOCFGA_REPORT_KPP = 10, CRYPTOCFGA_REPORT_ACOMP = 11, CRYPTOCFGA_STAT_LARVAL = 12, CRYPTOCFGA_STAT_HASH = 13, CRYPTOCFGA_STAT_BLKCIPHER = 14, CRYPTOCFGA_STAT_AEAD = 15, CRYPTOCFGA_STAT_COMPRESS = 16, CRYPTOCFGA_STAT_RNG = 17, CRYPTOCFGA_STAT_CIPHER = 18, CRYPTOCFGA_STAT_AKCIPHER = 19, CRYPTOCFGA_STAT_KPP = 20, CRYPTOCFGA_STAT_ACOMP = 21, __CRYPTOCFGA_MAX = 22, }; 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_report_rng { char type[64]; unsigned int seedsize; }; typedef u32 compat_ulong_t; typedef u32 compat_caddr_t; 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 pr_preempt { __u64 old_key; __u64 new_key; __u32 type; __u32 flags; }; struct pr_clear { __u64 key; __u32 flags; __u32 __pad; }; struct pr_reservation { __u64 key; __u32 type; __u32 flags; }; struct pr_registration { __u64 old_key; __u64 new_key; __u32 flags; __u32 __pad; }; struct compat_hd_geometry { unsigned char heads; unsigned char sectors; unsigned short cylinders; u32 start; }; struct compat_blkpg_ioctl_arg { compat_int_t op; compat_int_t flags; compat_int_t datalen; compat_caddr_t data; }; 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 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 *); }; union nested_table { union nested_table __attribute__((btf_type_tag("rcu"))) *table; struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; }; struct reciprocal_value_adv { u32 m; u8 sh; u8 exp; bool is_wide_m; }; 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, }; struct rcec_ea { u8 nextbusn; u8 lastbusn; u32 bitmap; }; struct pci_sriov { int pos; int nres; u32 cap; u16 ctrl; u16 total_VFs; u16 initial_VFs; u16 num_VFs; u16 offset; u16 stride; u16 vf_device; u32 pgsz; u8 link; u8 max_VF_buses; u16 driver_max_VFs; struct pci_dev *dev; struct pci_dev *self; u32 class; u8 hdr_type; u16 subsystem_vendor; u16 subsystem_device; resource_size_t barsz[6]; bool drivers_autoprobe; }; typedef u64 pci_bus_addr_t; struct pci_bus_region { pci_bus_addr_t start; pci_bus_addr_t end; }; enum backlight_update_reason { BACKLIGHT_UPDATE_HOTKEY = 0, BACKLIGHT_UPDATE_SYSFS = 1, }; enum backlight_notification { BACKLIGHT_REGISTERED = 0, BACKLIGHT_UNREGISTERED = 1, }; typedef int (*dr_match_t)(struct device *, void *, void *); struct acpi_signal_fatal_info { u32 type; u32 code; u32 argument; }; 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; }; 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, }; 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 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 *); typedef u64 async_cookie_t; struct acpi_offsets { size_t offset; u8 mode; }; enum { ACPI_BATTERY_ALARM_PRESENT = 0, ACPI_BATTERY_XINFO_PRESENT = 1, ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY = 2, ACPI_BATTERY_QUIRK_THINKPAD_MAH = 3, ACPI_BATTERY_QUIRK_DEGRADED_FULL_CHARGE = 4, }; 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, }; enum { POWER_SUPPLY_STATUS_UNKNOWN = 0, POWER_SUPPLY_STATUS_CHARGING = 1, POWER_SUPPLY_STATUS_DISCHARGING = 2, POWER_SUPPLY_STATUS_NOT_CHARGING = 3, POWER_SUPPLY_STATUS_FULL = 4, }; enum { POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0, POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1, POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2, POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3, POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4, POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5, }; 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, }; struct acpi_battery { struct mutex lock; struct mutex sysfs_lock; struct power_supply *bat; struct power_supply_desc bat_desc; struct acpi_device *device; struct notifier_block pm_nb; struct list_head list; unsigned long update_time; int revision; int rate_now; int capacity_now; int voltage_now; int design_capacity; int full_charge_capacity; int technology; int design_voltage; int design_capacity_warning; int design_capacity_low; int cycle_count; int measurement_accuracy; int max_sampling_time; int min_sampling_time; int max_averaging_interval; int min_averaging_interval; int capacity_granularity_1; int capacity_granularity_2; int alarm; char model_number[64]; char serial_number[64]; char type[64]; char oem_info[64]; int state; int power_unit; unsigned long flags; }; struct acpi_battery_hook { const char *name; int (*add_battery)(struct power_supply *, struct acpi_battery_hook *); int (*remove_battery)(struct power_supply *, struct acpi_battery_hook *); struct list_head list; }; typedef void (*async_func_t)(void *, async_cookie_t); struct ldsem_waiter { struct list_head list; struct task_struct *task; }; struct hpets; struct hpet; struct hpet_timer; struct hpet_dev { struct hpets *hd_hpets; struct hpet *hd_hpet; struct hpet_timer *hd_timer; unsigned long hd_ireqfreq; unsigned long hd_irqdata; wait_queue_head_t hd_waitqueue; struct fasync_struct *hd_async_queue; unsigned int hd_flags; unsigned int hd_irq; unsigned int hd_hdwirq; char hd_name[7]; }; struct clocksource; struct hpets { struct hpets *hp_next; struct hpet *hp_hpet; unsigned long hp_hpet_phys; struct clocksource *hp_clocksource; unsigned long long hp_tick_freq; unsigned long hp_delta; unsigned int hp_ntimer; unsigned int hp_which; struct hpet_dev hp_dev[0]; }; struct hpet_timer { u64 hpet_config; union { u64 _hpet_hc64; u32 _hpet_hc32; unsigned long _hpet_compare; } _u1; u64 hpet_fsb[2]; }; struct hpet { u64 hpet_cap; u64 res0; u64 hpet_config; u64 res1; u64 hpet_isr; u64 res2[25]; union { u64 _hpet_mc64; u32 _hpet_mc32; unsigned long _hpet_mc; } _u0; u64 res3; struct hpet_timer hpet_timers[0]; }; enum clocksource_ids { CSID_GENERIC = 0, CSID_ARM_ARCH_COUNTER = 1, CSID_MAX = 2, }; 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; }; struct hpet_data { unsigned long hd_phys_address; void *hd_address; unsigned short hd_nirqs; unsigned int hd_state; unsigned int hd_irq[32]; }; struct acpi_resource; typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); struct acpi_resource_irq { u8 descriptor_length; u8 triggering; u8 polarity; u8 shareable; u8 wake_capable; u8 interrupt_count; u8 interrupts[1]; }; struct acpi_resource_dma { u8 type; u8 bus_master; u8 transfer; u8 channel_count; u8 channels[1]; }; 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[1]; } __attribute__((packed)); struct acpi_resource_vendor_typed { u16 byte_length; u8 uuid_subtype; u8 uuid[16]; u8 byte_data[1]; }; 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_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_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; u32 interrupts[1]; } __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_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_address address; }; struct acpi_resource { u32 type; u32 length; union acpi_resource_data data; } __attribute__((packed)); struct hpet_info { unsigned long hi_ireqfreq; unsigned long hi_flags; unsigned short hi_hpet; unsigned short hi_timer; }; struct compat_hpet_info { compat_ulong_t hi_ireqfreq; compat_ulong_t hi_flags; unsigned short hi_hpet; unsigned short hi_timer; }; enum crb_loc_state { CRB_LOC_STATE_LOC_ASSIGNED = 2, CRB_LOC_STATE_TPM_REG_VALID_STS = 128, }; enum crb_loc_ctrl { CRB_LOC_CTRL_REQUEST_ACCESS = 1, CRB_LOC_CTRL_RELINQUISH = 2, }; enum tpm2_timeouts { TPM2_TIMEOUT_A = 750, TPM2_TIMEOUT_B = 2000, TPM2_TIMEOUT_C = 200, TPM2_TIMEOUT_D = 30, TPM2_DURATION_SHORT = 20, TPM2_DURATION_MEDIUM = 750, TPM2_DURATION_LONG = 2000, TPM2_DURATION_LONG_LONG = 300000, TPM2_DURATION_DEFAULT = 120000, }; enum crb_ctrl_req { CRB_CTRL_REQ_CMD_READY = 1, CRB_CTRL_REQ_GO_IDLE = 2, }; enum crb_cancel { CRB_CANCEL_INVOKE = 1, }; enum crb_ctrl_sts { CRB_CTRL_STS_ERROR = 1, CRB_CTRL_STS_TPM_IDLE = 2, }; enum crb_start { CRB_START_INVOKE = 1, }; enum crb_defaults { CRB_ACPI_START_REVISION_ID = 1, CRB_ACPI_START_INDEX = 1, }; enum crb_status { CRB_DRV_STS_COMPLETE = 1, }; struct tpm2_crb_smc { u32 interrupt; u8 interrupt_flags; u8 op_flags; u16 reserved2; u32 smc_func_id; }; struct tpm2_crb_pluton { u64 start_addr; u64 reply_addr; }; struct crb_regs_head; struct crb_regs_tail; struct crb_priv { u32 sm; const char *hid; struct crb_regs_head *regs_h; struct crb_regs_tail *regs_t; u8 *cmd; u8 *rsp; u32 cmd_size; u32 smc_func_id; u32 *pluton_start_addr; u32 *pluton_reply_addr; }; struct crb_regs_head { u32 loc_state; u32 reserved1; u32 loc_ctrl; u32 loc_sts; u8 reserved2[32]; u64 intf_id; u64 ctrl_ext; }; struct crb_regs_tail { u32 ctrl_req; u32 ctrl_sts; u32 ctrl_cancel; u32 ctrl_start; u32 ctrl_int_enable; u32 ctrl_int_sts; u32 ctrl_cmd_size; u32 ctrl_cmd_pa_low; u32 ctrl_cmd_pa_high; u32 ctrl_rsp_size; u64 ctrl_rsp_pa; }; struct acpi_table_tpm2 { struct acpi_table_header header; u16 platform_class; u16 reserved; u64 control_address; u32 start_method; } __attribute__((packed)); struct resource_win { struct resource res; resource_size_t offset; }; struct drm_mode_rmfb_work { struct work_struct work; struct list_head fbs; }; struct drm_mode_fb_cmd { __u32 fb_id; __u32 width; __u32 height; __u32 pitch; __u32 bpp; __u32 depth; __u32 handle; }; struct drm_mode_fb_dirty_cmd { __u32 fb_id; __u32 flags; __u32 color; __u32 num_clips; __u64 clips_ptr; }; struct insert_pte_data { u64 offset; }; struct sgt_dma { struct scatterlist *sg; dma_addr_t dma; dma_addr_t max; }; struct i915_deps; enum phy___2 { PHY_NONE = -1, PHY_A = 0, PHY_B = 1, PHY_C = 2, PHY_D = 3, PHY_E = 4, PHY_F = 5, PHY_G = 6, PHY_H = 7, PHY_I = 8, I915_MAX_PHYS = 9, }; enum tc_port { TC_PORT_NONE = -1, TC_PORT_1 = 0, TC_PORT_2 = 1, TC_PORT_3 = 2, TC_PORT_4 = 3, TC_PORT_5 = 4, TC_PORT_6 = 5, I915_MAX_TC_PORTS = 6, }; struct intel_load_detect_pipe { struct drm_atomic_state *restore_state; }; struct drm_i915_get_pipe_from_crtc_id { __u32 crtc_id; __u32 pipe; }; struct intel_dsi; struct intel_dsi_host { struct mipi_dsi_host base; struct intel_dsi *intel_dsi; enum port port; struct mipi_dsi_device *device; }; struct intel_dsi { struct intel_encoder base; struct intel_dsi_host *dsi_hosts[9]; intel_wakeref_t io_wakeref[9]; struct gpio_desc *gpio_panel; struct gpio_desc *gpio_backlight; struct intel_connector *attached_connector; union { u16 ports; u16 phys; }; bool hs; int channel; u16 operation_mode; unsigned int lane_count; int i2c_bus_num; enum mipi_dsi_pixel_format pixel_format; int video_mode; u8 eotp_pkt; u8 clock_stop; u8 escape_clk_div; u8 dual_link; bool bgr_enabled; u8 pixel_overlap; u32 port_bits; u32 bw_timer; u32 dphy_reg; u32 dphy_data_lane_reg; u32 video_frmt_cfg_bits; u16 lp_byte_clk; u16 hs_tx_timeout; u16 lp_rx_timeout; u16 turn_arnd_val; u16 rst_timer_val; u16 hs_to_lp_count; u16 clk_lp_to_hs_count; u16 clk_hs_to_lp_count; u16 init_count; u32 pclk; u16 burst_mode_ratio; u16 backlight_off_delay; u16 backlight_on_delay; u16 panel_on_delay; u16 panel_off_delay; u16 panel_pwr_cycle_delay; ktime_t panel_power_off_time; }; 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 device_attach_data { struct device *dev; bool check_async; bool want_async; bool have_async; }; 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 dma_fence_unwrap { struct dma_fence *chain; struct dma_fence *array; unsigned int index; }; 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 scsi_scan_mode { SCSI_SCAN_INITIAL = 0, SCSI_SCAN_RESCAN = 1, SCSI_SCAN_MANUAL = 2, }; struct scsi_event { enum scsi_device_event evt_type; struct list_head node; }; struct class_interface { struct list_head node; struct class *class; int (*add_dev)(struct device *, struct class_interface *); void (*remove_dev)(struct device *, struct class_interface *); }; typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); struct dev_ext_attribute { struct device_attribute attr; void *var; }; 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 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 mdio_driver { struct mdio_driver_common mdiodrv; int (*probe)(struct mdio_device *); void (*remove)(struct mdio_device *); void (*shutdown)(struct mdio_device *); }; struct mdio_board_info { const char *bus_id; char modalias[32]; int mdio_addr; const void *platform_data; }; struct trace_event_data_offsets_mdio_access {}; struct mdio_bus_stat_attr { int addr; unsigned int field_offset; }; struct devlink_fmsg; struct devlink_health_reporter_ops { char *name; int (*recover)(struct devlink_health_reporter *, void *, struct netlink_ext_ack *); int (*dump)(struct devlink_health_reporter *, struct devlink_fmsg *, void *, struct netlink_ext_ack *); int (*diagnose)(struct devlink_health_reporter *, struct devlink_fmsg *, struct netlink_ext_ack *); int (*test)(struct devlink_health_reporter *, struct netlink_ext_ack *); }; struct nsim_dev_dummy_reporter_ctx { char *break_msg; }; enum xhci_cancelled_td_status { TD_DIRTY = 0, TD_HALTED = 1, TD_CLEARING_CACHE = 2, TD_CLEARED = 3, }; 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; unsigned int num_trbs; }; struct urb_priv___3 { int num_tds; int num_tds_done; struct xhci_td td[0]; }; struct byd_data { struct timer_list timer; struct psmouse *psmouse; s32 abs_x; s32 abs_y; volatile unsigned long last_touch_time; bool btn_left; bool btn_right; bool touch; }; 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 mddev; struct md_sysfs_entry { struct attribute attr; ssize_t (*show)(struct mddev *, char *); ssize_t (*store)(struct mddev *, const char *, size_t); }; struct md_cluster_info; struct md_personality; struct md_thread; struct bitmap; struct md_rdev; 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 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 *thread; struct md_thread *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; 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 request_queue *queue; 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_acct_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; bool has_superblocks: 1; bool fail_last_dev: 1; bool serialize_policy: 1; }; 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 (*quiesce)(struct mddev *, int); void * (*takeover)(struct mddev *); int (*change_consistency_policy)(struct mddev *, const char *); }; 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 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 work_struct del_work; 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; }; 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; 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; }; enum bitmap_state { BITMAP_STALE = 1, BITMAP_WRITE_ERROR = 2, BITMAP_HOSTENDIAN = 15, }; enum bitmap_page_attr { BITMAP_PAGE_DIRTY = 0, BITMAP_PAGE_PENDING = 1, BITMAP_PAGE_NEEDWRITE = 2, }; 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 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_ALLOW_SB_UPDATE = 8, MD_UPDATING_SB = 9, MD_NOT_READY = 10, MD_BROKEN = 11, MD_DELETED = 12, }; 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 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, RemoveSynchronized = 14, ExternalBbl = 15, FailFast = 16, LastDev = 17, CollisionCheck = 18, }; typedef __u16 bitmap_counter_t; struct cgroup_subsys_state; 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 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; }; struct link_ctl_info { snd_ctl_elem_type_t type; int count; int min_val; int max_val; }; struct link_master; struct link_follower { struct list_head list; struct link_master *master; struct link_ctl_info info; int vals[2]; unsigned int flags; struct snd_kcontrol *kctl; struct snd_kcontrol follower; }; struct link_master { struct list_head followers; struct link_ctl_info info; int val; unsigned int tlv[4]; void (*hook)(void *, int); void *hook_private_data; }; struct snd_device; struct snd_device_ops { int (*dev_free)(struct snd_device *); int (*dev_register)(struct snd_device *); int (*dev_disconnect)(struct snd_device *); }; enum snd_device_state { SNDRV_DEV_BUILD = 0, SNDRV_DEV_REGISTERED = 1, SNDRV_DEV_DISCONNECTED = 2, }; enum snd_device_type { SNDRV_DEV_LOWLEVEL = 0, SNDRV_DEV_INFO = 1, SNDRV_DEV_BUS = 2, SNDRV_DEV_CODEC = 3, SNDRV_DEV_PCM = 4, SNDRV_DEV_COMPRESS = 5, SNDRV_DEV_RAWMIDI = 6, SNDRV_DEV_TIMER = 7, SNDRV_DEV_SEQUENCER = 8, SNDRV_DEV_HWDEP = 9, SNDRV_DEV_JACK = 10, SNDRV_DEV_CONTROL = 11, }; struct snd_device { struct list_head list; struct snd_card *card; enum snd_device_state state; enum snd_device_type type; void *device_data; const struct snd_device_ops *ops; }; struct snd_seq_device { struct snd_card *card; int device; const char *id; char name[80]; int argsize; void *driver_data; void *private_data; void (*private_free)(struct snd_seq_device *); struct device dev; }; struct snd_seq_driver { struct device_driver driver; char *id; int argsize; }; struct hda_vendor_id { unsigned int id; const char *name; }; struct hda_rate_tbl { unsigned int hz; unsigned int alsa_bits; unsigned int hda_fmt; }; enum { HDA_DEV_CORE = 0, HDA_DEV_LEGACY = 1, HDA_DEV_ASOC = 2, }; enum { AC_GRP_AUDIO_FUNCTION = 1, AC_GRP_MODEM_FUNCTION = 2, }; enum { AC_WID_AUD_OUT = 0, AC_WID_AUD_IN = 1, AC_WID_AUD_MIX = 2, AC_WID_AUD_SEL = 3, AC_WID_PIN = 4, AC_WID_POWER = 5, AC_WID_VOL_KNB = 6, AC_WID_BEEP = 7, AC_WID_VENDOR = 15, }; 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; }; struct tso_t { int next_frag_idx; int size; void *data; u16 ip_id; u8 tlen; bool ipv6; u32 tcp_seq; }; struct bpf_local_storage_cache { spinlock_t idx_lock; u64 idx_usage_counts[16]; }; 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; }; enum { SK_DIAG_BPF_STORAGE_REQ_NONE = 0, SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, }; enum { BPF_LOCAL_STORAGE_GET_F_CREATE = 1, BPF_SK_STORAGE_GET_F_CREATE = 1, }; 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, }; 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 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; }; 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_seq_sk_storage_map_info { struct bpf_map *map; unsigned int bucket_id; unsigned int skip_elems; }; struct bpf_iter_meta; 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_meta { union { struct seq_file *seq; }; u64 session_id; u64 seq_num; }; 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]; }; typedef const char (* const ethnl_string_array_t)[32]; 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_timeout_icmp { CTA_TIMEOUT_ICMP_UNSPEC = 0, CTA_TIMEOUT_ICMP_TIMEOUT = 1, __CTA_TIMEOUT_ICMP_MAX = 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 tcp_ca_state { TCP_CA_Open = 0, TCP_CA_Disorder = 1, TCP_CA_CWR = 2, TCP_CA_Recovery = 3, TCP_CA_Loss = 4, }; enum { SOCK_WAKE_IO = 0, SOCK_WAKE_WAITD = 1, SOCK_WAKE_SPACE = 2, SOCK_WAKE_URG = 3, }; 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_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 { 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 { 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 { 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 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_INET4_POST_BIND = 9, CGROUP_INET6_POST_BIND = 10, CGROUP_UDP4_SENDMSG = 11, CGROUP_UDP6_SENDMSG = 12, CGROUP_SYSCTL = 13, CGROUP_UDP4_RECVMSG = 14, CGROUP_UDP6_RECVMSG = 15, CGROUP_GETSOCKOPT = 16, CGROUP_SETSOCKOPT = 17, CGROUP_INET4_GETPEERNAME = 18, CGROUP_INET6_GETPEERNAME = 19, CGROUP_INET4_GETSOCKNAME = 20, CGROUP_INET6_GETSOCKNAME = 21, CGROUP_INET_SOCK_RELEASE = 22, CGROUP_LSM_START = 23, CGROUP_LSM_END = 32, MAX_CGROUP_BPF_ATTACH_TYPE = 33, }; 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, }; 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, }; enum { SCM_TSTAMP_SND = 0, SCM_TSTAMP_SCHED = 1, SCM_TSTAMP_ACK = 2, }; enum tcp_fastopen_client_fail { TFO_STATUS_UNSPEC = 0, TFO_COOKIE_UNAVAILABLE = 1, TFO_DATA_NOT_ACKED = 2, TFO_SYN_RETRANSMITTED = 3, }; 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; }; }; union tcp_word_hdr { struct tcphdr hdr; __be32 words[5]; }; struct tcp_sack_block_wire { __be32 start_seq; __be32 end_seq; }; 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 mptcp_ext { union { u64 data_ack; u32 data_ack32; }; u64 data_seq; u32 subflow_seq; u16 data_len; __sum16 csum; u8 use_map: 1; u8 dsn64: 1; u8 data_fin: 1; u8 use_ack: 1; u8 ack64: 1; u8 mpc_map: 1; u8 frozen: 1; u8 reset_transient: 1; u8 reset_reason: 4; u8 csum_reqd: 1; u8 infinite_map: 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 ic_device { struct ic_device *next; struct net_device *dev; unsigned short flags; short able; __be32 xid; }; enum { Root_NFS = 255, Root_CIFS = 254, Root_RAM0 = 1048576, Root_RAM1 = 1048577, Root_FD0 = 2097152, Root_HDA1 = 3145729, Root_HDA2 = 3145730, Root_SDA1 = 8388609, Root_SDA2 = 8388610, Root_HDC1 = 23068673, Root_SR0 = 11534336, }; struct bootp_pkt { struct iphdr iph; struct udphdr udph; u8 op; u8 htype; u8 hlen; u8 hops; __be32 xid; __be16 secs; __be16 flags; __be32 client_ip; __be32 your_ip; __be32 server_ip; __be32 relay_ip; u8 hw_addr[16]; u8 serv_name[64]; u8 boot_file[128]; u8 exten[312]; }; struct arphdr { __be16 ar_hrd; __be16 ar_pro; unsigned char ar_hln; unsigned char ar_pln; __be16 ar_op; }; 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; }; 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; atomic_long_t inflight; spinlock_t lock; unsigned long gc_flags; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; 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]; }; 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, }; struct fib_notifier_info { int family; struct netlink_ext_ack *extack; }; 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 svc_pool_map { int count; int mode; unsigned int npools; unsigned int *pool_to; unsigned int *to_pool; }; enum { SVC_POOL_AUTO = -1, SVC_POOL_GLOBAL = 0, SVC_POOL_PERCPU = 1, SVC_POOL_PERNODE = 2, }; enum rpc_reply_stat { RPC_MSG_ACCEPTED = 0, RPC_MSG_DENIED = 1, }; enum rpc_reject_stat { RPC_MISMATCH = 0, RPC_AUTH_ERROR = 1, }; enum rpc_accept_stat { RPC_SUCCESS = 0, RPC_PROG_UNAVAIL = 1, RPC_PROG_MISMATCH = 2, RPC_PROC_UNAVAIL = 3, RPC_GARBAGE_ARGS = 4, RPC_SYSTEM_ERR = 5, RPC_DROP_REPLY = 60000, }; struct strp_stats { unsigned long long msgs; unsigned long long bytes; unsigned int mem_fail; unsigned int need_more_hdr; unsigned int msg_too_big; unsigned int msg_timeouts; unsigned int bad_hdr_len; }; struct strparser; struct strp_callbacks { int (*parse_msg)(struct strparser *, struct sk_buff *); void (*rcv_msg)(struct strparser *, struct sk_buff *); int (*read_sock_done)(struct strparser *, int); void (*abort_parser)(struct strparser *, int); void (*lock)(struct strparser *); void (*unlock)(struct strparser *); }; struct strparser { struct sock *sk; u32 stopped: 1; u32 paused: 1; u32 aborted: 1; u32 interrupted: 1; u32 unrecov_intr: 1; struct sk_buff **skb_nextp; struct sk_buff *skb_head; unsigned int need_bytes; struct delayed_work msg_timer_work; struct work_struct work; struct strp_stats stats; struct strp_callbacks cb; }; struct strp_msg { int full_len; int offset; }; struct _strp_msg { struct strp_msg strp; int accum_len; }; 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_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 *); struct txq_info; typedef void (*btf_trace_drv_wake_tx_queue)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct txq_info *); 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; }; 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); struct ieee80211_twt_params; typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *); struct ieee80211_twt_params { __le16 req_type; __le64 twt; u8 min_twt_dur; __le16 mantissa; u8 channel; } __attribute__((packed)); 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_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); 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_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); 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 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_drv_channel_switch { 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; 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; 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; 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; 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_pre_channel_switch { 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; char __data[0]; }; struct trace_event_raw_drv_channel_switch_rx_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; u64 timestamp; u32 device_timestamp; bool block_tx; u8 count; 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_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; 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_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_data_offsets_local_sdata_addr_evt { u32 vif_name; }; struct trace_event_data_offsets_local_sdata_evt { u32 vif_name; }; struct trace_event_data_offsets_drv_change_interface { u32 vif_name; }; struct trace_event_data_offsets_drv_vif_cfg_changed { u32 vif_name; u32 arp_addr_list; u32 ssid; }; struct trace_event_data_offsets_drv_link_info_changed { u32 vif_name; }; struct trace_event_data_offsets_drv_config_iface_filter { u32 vif_name; }; struct trace_event_data_offsets_drv_set_key { u32 vif_name; }; struct trace_event_data_offsets_drv_update_tkip_key { u32 vif_name; }; struct trace_event_data_offsets_drv_sw_scan_start { u32 vif_name; }; struct trace_event_data_offsets_drv_sta_notify { u32 vif_name; }; struct trace_event_data_offsets_drv_sta_state { u32 vif_name; }; struct trace_event_data_offsets_drv_sta_set_txpwr { u32 vif_name; }; struct trace_event_data_offsets_drv_sta_rc_update { u32 vif_name; }; struct trace_event_data_offsets_sta_event { u32 vif_name; }; struct trace_event_data_offsets_drv_conf_tx { u32 vif_name; }; struct trace_event_data_offsets_drv_set_tsf { u32 vif_name; }; struct trace_event_data_offsets_drv_offset_tsf { u32 vif_name; }; struct trace_event_data_offsets_drv_ampdu_action { u32 vif_name; }; struct trace_event_data_offsets_drv_channel_switch { u32 vif_name; }; struct trace_event_data_offsets_drv_remain_on_channel { u32 vif_name; }; struct trace_event_data_offsets_drv_set_bitrate_mask { u32 vif_name; }; struct trace_event_data_offsets_drv_set_rekey_data { u32 vif_name; }; struct trace_event_data_offsets_drv_event_callback { u32 vif_name; }; struct trace_event_data_offsets_mgd_prepare_complete_tx_evt { u32 vif_name; }; struct trace_event_data_offsets_drv_switch_vif_chanctx { u32 vifs; }; struct trace_event_data_offsets_local_sdata_chanctx { u32 vif_name; }; struct trace_event_data_offsets_drv_start_ap { u32 vif_name; u32 ssid; }; struct trace_event_data_offsets_drv_stop_ap { u32 vif_name; }; struct trace_event_data_offsets_drv_join_ibss { u32 vif_name; u32 ssid; }; struct trace_event_data_offsets_drv_start_nan { u32 vif_name; }; struct trace_event_data_offsets_drv_stop_nan { u32 vif_name; }; struct trace_event_data_offsets_drv_nan_change_conf { u32 vif_name; }; struct trace_event_data_offsets_drv_add_nan_func { u32 vif_name; }; struct trace_event_data_offsets_drv_del_nan_func { u32 vif_name; }; struct trace_event_data_offsets_drv_set_default_unicast_key { u32 vif_name; }; struct trace_event_data_offsets_drv_channel_switch_beacon { u32 vif_name; }; struct trace_event_data_offsets_drv_pre_channel_switch { u32 vif_name; }; struct trace_event_data_offsets_drv_channel_switch_rx_beacon { u32 vif_name; }; struct trace_event_data_offsets_drv_get_txpower { u32 vif_name; }; struct trace_event_data_offsets_drv_tdls_channel_switch { u32 vif_name; }; struct trace_event_data_offsets_drv_tdls_cancel_channel_switch { u32 vif_name; }; struct trace_event_data_offsets_drv_tdls_recv_channel_switch { u32 vif_name; }; struct trace_event_data_offsets_drv_wake_tx_queue { u32 vif_name; }; struct trace_event_data_offsets_drv_get_ftm_responder_stats { u32 vif_name; }; struct trace_event_data_offsets_sta_flag_evt { u32 vif_name; }; struct trace_event_data_offsets_drv_change_vif_links { u32 vif_name; }; struct trace_event_data_offsets_drv_change_sta_links { u32 vif_name; }; struct trace_event_data_offsets_api_start_tx_ba_cb { u32 vif_name; }; struct trace_event_data_offsets_api_stop_tx_ba_cb { u32 vif_name; }; struct trace_event_data_offsets_api_beacon_loss { u32 vif_name; }; struct trace_event_data_offsets_api_connection_loss { u32 vif_name; }; struct trace_event_data_offsets_api_disconnect { u32 vif_name; }; struct trace_event_data_offsets_api_cqm_rssi_notify { u32 vif_name; }; struct trace_event_data_offsets_api_chswitch_done { u32 vif_name; }; struct trace_event_data_offsets_api_gtk_rekey_notify { u32 vif_name; }; struct trace_event_data_offsets_api_enable_rssi_reports { u32 vif_name; }; 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 {}; struct intel_uncore_box; 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 intel_uncore_extra_reg { raw_spinlock_t lock; u64 config; u64 config1; u64 config2; atomic_t ref; }; struct intel_uncore_pmu; 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_type; 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 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 { unsigned int *msr_offsets; unsigned int *pci_offsets; unsigned int *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 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; }; 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; unsigned int *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 align_flags { ALIGN_VA_32 = 1, ALIGN_VA_64 = 2, }; 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; }; 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 severity { u64 mask; u64 result; unsigned char sev; unsigned char mcgmask; unsigned char mcgres; unsigned char ser; unsigned char context; unsigned char excp; unsigned char covered; unsigned char cpu_model; unsigned char cpu_minstepping; unsigned char bank_lo; unsigned char bank_hi; char *msg; }; enum severity_level { MCE_NO_SEVERITY = 0, MCE_DEFERRED_SEVERITY = 1, MCE_UCNA_SEVERITY = 1, MCE_KEEP_SEVERITY = 2, MCE_SOME_SEVERITY = 3, MCE_AO_SEVERITY = 4, MCE_UC_SEVERITY = 5, MCE_AR_SEVERITY = 6, MCE_PANIC_SEVERITY = 7, }; enum context___2 { IN_KERNEL = 1, IN_USER = 2, IN_KERNEL_RECOV = 3, }; enum insn_mode { INSN_MODE_32 = 0, INSN_MODE_64 = 1, INSN_MODE_KERN = 2, INSN_NUM_MODES = 3, }; enum exception { EXCP_CONTEXT = 1, NO_EXCP = 2, }; enum ser { SER_REQUIRED = 1, NO_SER = 2, }; 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 scan_area { u64 addr; u64 size; }; enum bug_trap_type { BUG_TRAP_TYPE_NONE = 0, BUG_TRAP_TYPE_WARN = 1, BUG_TRAP_TYPE_BUG = 2, }; struct user_regset; 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 user_regset_view { const char *name; const struct user_regset *regsets; unsigned int n; u32 e_flags; u16 e_machine; u8 ei_osabi; }; 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 { _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, }; 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_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 *); typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); 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; 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 work_struct rtp_work; struct irq_work rtp_irq_work; struct callback_head barrier_q_head; struct list_head rtp_blkd_tasks; int cpu; struct rcu_tasks *rtpp; }; struct rcu_synchronize { struct callback_head head; struct completion completion; }; 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_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 trc_stall_chk_rdr { int nesting; int ipi_to_cpu; u8 needqs; }; typedef int (*task_call_f)(struct task_struct *, void *); 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_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 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 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_METADATA_KFUNC_RX_TIMESTAMP = 0, XDP_METADATA_KFUNC_RX_HASH = 1, MAX_XDP_METADATA_KFUNC = 2, }; 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; __u64 map_extra; }; 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_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 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 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 word_at_a_time { const unsigned long one_bits; const unsigned long high_bits; }; struct open_flags { int open_flag; umode_t mode; int acc_mode; int intent; int lookup_flags; }; struct name_snapshot { struct qstr name; unsigned char inline_name[32]; }; typedef int filler_t(struct file *, struct folio *); 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; }; struct xdr_array2_desc; typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *); struct xdr_array2_desc { unsigned int elem_size; unsigned int array_len; unsigned int array_maxlen; xdr_xcode_elem_t xcode; }; struct nfsacl_encode_desc { struct xdr_array2_desc desc; unsigned int count; struct posix_acl *acl; int typeflag; kuid_t uid; kgid_t gid; }; struct nfsacl_decode_desc { struct xdr_array2_desc desc; unsigned int count; struct posix_acl *acl; }; struct nfsacl_simple_acl { struct posix_acl acl; struct posix_acl_entry ace[4]; }; 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 maple_enode; 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; unsigned char depth; unsigned char offset; unsigned char mas_flags; }; struct maple_alloc { unsigned long total; unsigned char node_count; unsigned int request_count; struct maple_alloc *slot[30]; }; struct vma_iterator { struct ma_state mas; }; struct genradix_root; struct __genradix { struct genradix_root *root; }; struct tgid_iter { unsigned int tgid; struct task_struct *task; }; typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); 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 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; }; 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; }; struct fscrypt_str { unsigned char *name; u32 len; }; struct nfs_readdesc { struct nfs_pageio_descriptor pgio; struct nfs_open_context *ctx; }; enum { NFS_DELEGATION_NEED_RECLAIM = 0, NFS_DELEGATION_RETURN = 1, NFS_DELEGATION_RETURN_IF_CLOSED = 2, NFS_DELEGATION_REFERENCED = 3, NFS_DELEGATION_RETURNING = 4, NFS_DELEGATION_REVOKED = 5, NFS_DELEGATION_TEST_EXPIRED = 6, NFS_DELEGATION_INODE_FREEING = 7, NFS_DELEGATION_RETURN_DELAYED = 8, }; enum nfs4_client_state { NFS4CLNT_MANAGER_RUNNING = 0, NFS4CLNT_CHECK_LEASE = 1, NFS4CLNT_LEASE_EXPIRED = 2, NFS4CLNT_RECLAIM_REBOOT = 3, NFS4CLNT_RECLAIM_NOGRACE = 4, NFS4CLNT_DELEGRETURN = 5, NFS4CLNT_SESSION_RESET = 6, NFS4CLNT_LEASE_CONFIRM = 7, NFS4CLNT_SERVER_SCOPE_MISMATCH = 8, NFS4CLNT_PURGE_STATE = 9, NFS4CLNT_BIND_CONN_TO_SESSION = 10, NFS4CLNT_MOVED = 11, NFS4CLNT_LEASE_MOVED = 12, NFS4CLNT_DELEGATION_EXPIRED = 13, NFS4CLNT_RUN_MANAGER = 14, NFS4CLNT_MANAGER_AVAILABLE = 15, NFS4CLNT_RECALL_RUNNING = 16, NFS4CLNT_RECALL_ANY_LAYOUT_READ = 17, NFS4CLNT_RECALL_ANY_LAYOUT_RW = 18, NFS4CLNT_DELEGRETURN_DELAYED = 19, }; enum { LK_STATE_IN_USE = 0, NFS_DELEGATED_STATE = 1, NFS_OPEN_STATE = 2, NFS_O_RDONLY_STATE = 3, NFS_O_WRONLY_STATE = 4, NFS_O_RDWR_STATE = 5, NFS_STATE_RECLAIM_REBOOT = 6, NFS_STATE_RECLAIM_NOGRACE = 7, NFS_STATE_POSIX_LOCKS = 8, NFS_STATE_RECOVERY_FAILED = 9, NFS_STATE_MAY_NOTIFY_LOCK = 10, NFS_STATE_CHANGE_WAIT = 11, NFS_CLNT_DST_SSC_COPY_STATE = 12, NFS_CLNT_SRC_SSC_COPY_STATE = 13, NFS_SRV_SSC_COPY_STATE = 14, }; struct ipc_params; struct kern_ipc_perm; 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_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; }; typedef int __kernel_key_t; typedef __kernel_key_t key_t; struct ipc_params { key_t key; int flg; union { size_t size; int nsems; } u; }; 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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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; }; typedef unsigned int __kernel_uid_t; typedef unsigned int __kernel_gid_t; typedef unsigned int __kernel_mode_t; 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 msg; typedef __kernel_long_t __kernel_old_time_t; typedef int __kernel_ipc_pid_t; 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_msg; 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_msgseg; struct msg_msg { struct list_head m_list; long m_type; size_t m_ts; struct msg_msgseg *next; void *security; }; struct msg_sender { struct list_head list; struct task_struct *tsk; size_t msgsz; }; struct msgbuf { __kernel_long_t mtype; char mtext[1]; }; typedef s32 compat_ssize_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 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; }; typedef s32 compat_key_t; typedef u32 __compat_uid32_t; typedef u32 __compat_gid32_t; typedef u16 compat_mode_t; typedef u16 compat_ushort_t; struct compat_ipc64_perm { compat_key_t key; __compat_uid32_t uid; __compat_gid32_t gid; __compat_uid32_t cuid; __compat_gid32_t cgid; compat_mode_t mode; unsigned char __pad1[2]; compat_ushort_t seq; compat_ushort_t __pad2; compat_ulong_t unused1; compat_ulong_t unused2; }; typedef s32 compat_pid_t; struct compat_msqid64_ds { struct compat_ipc64_perm msg_perm; compat_ulong_t msg_stime; compat_ulong_t msg_stime_high; compat_ulong_t msg_rtime; compat_ulong_t msg_rtime_high; compat_ulong_t msg_ctime; compat_ulong_t msg_ctime_high; compat_ulong_t msg_cbytes; compat_ulong_t msg_qnum; compat_ulong_t msg_qbytes; compat_pid_t msg_lspid; compat_pid_t msg_lrpid; compat_ulong_t __unused4; compat_ulong_t __unused5; }; typedef u16 __compat_uid_t; typedef u16 __compat_gid_t; struct compat_ipc_perm { key_t key; __compat_uid_t uid; __compat_gid_t gid; __compat_uid_t cuid; __compat_gid_t cgid; compat_mode_t mode; unsigned short seq; }; typedef u16 compat_ipc_pid_t; struct compat_msqid_ds { struct compat_ipc_perm msg_perm; compat_uptr_t msg_first; compat_uptr_t msg_last; old_time32_t msg_stime; old_time32_t msg_rtime; old_time32_t msg_ctime; compat_ulong_t msg_lcbytes; compat_ulong_t msg_lqbytes; unsigned short msg_cbytes; unsigned short msg_qnum; unsigned short msg_qbytes; compat_ipc_pid_t msg_lspid; compat_ipc_pid_t msg_lrpid; }; struct wake_q_head { struct wake_q_node *first; struct wake_q_node **lastp; }; struct compat_msgbuf { compat_long_t mtype; char mtext[1]; }; struct hashtab_key_params { u32 (*hash)(const void *); int (*cmp)(const void *, const void *); }; struct policydb_compat_info { int version; int sym_num; int ocon_num; }; struct cond_expr_node; struct cond_expr { struct cond_expr_node *nodes; u32 len; }; struct cond_av_list { struct avtab_node **nodes; u32 len; }; struct cond_node { int cur_state; struct cond_expr expr; struct cond_av_list true_list; struct cond_av_list false_list; }; struct cond_expr_node { u32 expr_type; u32 bool; }; struct filename_trans_key { u32 ttype; u16 tclass; const char *name; }; struct range_trans { u32 source_type; u32 target_type; u32 target_class; }; struct role_trans_key { u32 role; u32 type; u32 tclass; }; struct policy_file { char *data; size_t len; }; struct filename_trans_datum { struct ebitmap stypes; u32 otype; struct filename_trans_datum *next; }; struct level_datum { struct mls_level *level; unsigned char isalias; }; struct role_trans_datum { u32 new_role; }; struct perm_datum { u32 value; }; struct policy_data { struct policydb *p; void *fp; }; struct cat_datum { u32 value; unsigned char isalias; }; struct sha256_state { u32 state[8]; u64 count; u8 buf[64]; }; 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_md2WithRSAEncryption = 11, OID_md3WithRSAEncryption = 12, OID_md4WithRSAEncryption = 13, OID_sha1WithRSAEncryption = 14, OID_sha256WithRSAEncryption = 15, OID_sha384WithRSAEncryption = 16, OID_sha512WithRSAEncryption = 17, OID_sha224WithRSAEncryption = 18, OID_data = 19, OID_signed_data = 20, OID_email_address = 21, OID_contentType = 22, OID_messageDigest = 23, OID_signingTime = 24, OID_smimeCapabilites = 25, OID_smimeAuthenticatedAttrs = 26, OID_md2 = 27, OID_md4 = 28, OID_md5 = 29, OID_mskrb5 = 30, OID_krb5 = 31, OID_krb5u2u = 32, OID_msIndirectData = 33, OID_msStatementType = 34, OID_msSpOpusInfo = 35, OID_msPeImageDataObjId = 36, OID_msIndividualSPKeyPurpose = 37, OID_msOutlookExpress = 38, OID_ntlmssp = 39, OID_spnego = 40, OID_IAKerb = 41, OID_PKU2U = 42, OID_Scram = 43, OID_certAuthInfoAccess = 44, OID_sha1 = 45, OID_id_ansip384r1 = 46, OID_sha256 = 47, OID_sha384 = 48, OID_sha512 = 49, OID_sha224 = 50, OID_commonName = 51, OID_surname = 52, OID_countryName = 53, OID_locality = 54, OID_stateOrProvinceName = 55, OID_organizationName = 56, OID_organizationUnitName = 57, OID_title = 58, OID_description = 59, OID_name = 60, OID_givenName = 61, OID_initials = 62, OID_generationalQualifier = 63, OID_subjectKeyIdentifier = 64, OID_keyUsage = 65, OID_subjectAltName = 66, OID_issuerAltName = 67, OID_basicConstraints = 68, OID_crlDistributionPoints = 69, OID_certPolicies = 70, OID_authorityKeyIdentifier = 71, OID_extKeyUsage = 72, OID_NetlogonMechanism = 73, OID_appleLocalKdcSupported = 74, OID_gostCPSignA = 75, OID_gostCPSignB = 76, OID_gostCPSignC = 77, OID_gost2012PKey256 = 78, OID_gost2012PKey512 = 79, OID_gost2012Digest256 = 80, OID_gost2012Digest512 = 81, OID_gost2012Signature256 = 82, OID_gost2012Signature512 = 83, OID_gostTC26Sign256A = 84, OID_gostTC26Sign256B = 85, OID_gostTC26Sign256C = 86, OID_gostTC26Sign256D = 87, OID_gostTC26Sign512A = 88, OID_gostTC26Sign512B = 89, OID_gostTC26Sign512C = 90, OID_sm2 = 91, OID_sm3 = 92, OID_SM2_with_SM3 = 93, OID_sm3WithRSAEncryption = 94, OID_TPMLoadableKey = 95, OID_TPMImportableKey = 96, OID_TPMSealedData = 97, OID__NR = 98, }; 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__LAST = 20, }; 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 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 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 public_key; struct public_key_signature; struct asymmetric_key_id; 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 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; }; 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; const void *data; unsigned int data_size; }; struct asymmetric_key_id { unsigned short len; unsigned char data[0]; }; 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; }; enum blkg_iostat_type { BLKG_IOSTAT_READ = 0, BLKG_IOSTAT_WRITE = 1, BLKG_IOSTAT_DISCARD = 2, BLKG_IOSTAT_NR = 3, }; enum stat_group { STAT_READ = 0, STAT_WRITE = 1, STAT_DISCARD = 2, STAT_FLUSH = 3, NR_STAT_GROUPS = 4, }; enum cgroup_subsys_id { cpu_cgrp_id = 0, cpuacct_cgrp_id = 1, io_cgrp_id = 2, devices_cgrp_id = 3, freezer_cgrp_id = 4, net_cls_cgrp_id = 5, perf_event_cgrp_id = 6, net_prio_cgrp_id = 7, hugetlb_cgrp_id = 8, pids_cgrp_id = 9, rdma_cgrp_id = 10, misc_cgrp_id = 11, debug_cgrp_id = 12, CGROUP_SUBSYS_COUNT = 13, }; struct klist_iter { struct klist *i_klist; struct klist_node *i_cur; }; struct class_dev_iter { struct klist_iter ki; const struct device_type *type; }; enum string_size_units { STRING_UNITS_10 = 0, STRING_UNITS_2 = 1, }; struct strarray { char **array; size_t n; }; enum { pci_channel_io_normal = 1, pci_channel_io_frozen = 2, pci_channel_io_perm_failure = 3, }; 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 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 acpi_pci_id { u16 segment; u16 bus; u16 device; u16 function; }; struct acpi_data_table_space_context { void *pointer; }; 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; }; enum acpi_video_level_idx { ACPI_VIDEO_AC_LEVEL = 0, ACPI_VIDEO_BATTERY_LEVEL = 1, ACPI_VIDEO_FIRST_LEVEL = 2, }; enum acpi_backlight_type { acpi_backlight_undef = -1, acpi_backlight_none = 0, acpi_backlight_video = 1, acpi_backlight_vendor = 2, acpi_backlight_native = 3, acpi_backlight_nvidia_wmi_ec = 4, acpi_backlight_apple_gmux = 5, }; struct acpi_video_bus_cap { u8 _DOS: 1; u8 _DOD: 1; u8 _ROM: 1; u8 _GPD: 1; u8 _SPD: 1; u8 _VPO: 1; u8 reserved: 2; }; struct acpi_video_bus_flags { u8 multihead: 1; u8 rom: 1; u8 post: 1; u8 reserved: 5; }; struct acpi_video_enumerated_device; struct acpi_video_bus { struct acpi_device *device; bool backlight_registered; u8 dos_setting; struct acpi_video_enumerated_device *attached_array; u8 attached_count; u8 child_count; struct acpi_video_bus_cap cap; struct acpi_video_bus_flags flags; struct list_head video_device_list; struct mutex device_list_lock; struct list_head entry; struct input_dev *input; char phys[32]; struct notifier_block pm_nb; }; struct acpi_video_device_attrib { u32 display_index: 4; u32 display_port_attachment: 4; u32 display_type: 4; u32 vendor_specific: 4; u32 bios_can_detect: 1; u32 depend_on_vga: 1; u32 pipe_id: 3; u32 reserved: 10; u32 device_id_scheme: 1; }; struct acpi_video_device; struct acpi_video_enumerated_device { union { u32 int_val; struct acpi_video_device_attrib attrib; } value; struct acpi_video_device *bind_info; }; struct acpi_video_device_flags { u8 crt: 1; u8 lcd: 1; u8 tvout: 1; u8 dvi: 1; u8 bios: 1; u8 unknown: 1; u8 notify: 1; u8 reserved: 1; }; struct acpi_video_device_cap { u8 _ADR: 1; u8 _BCL: 1; u8 _BCM: 1; u8 _BQC: 1; u8 _BCQ: 1; u8 _DDC: 1; }; struct acpi_video_device_brightness; struct acpi_video_device { unsigned long device_id; struct acpi_video_device_flags flags; struct acpi_video_device_cap cap; struct list_head entry; struct delayed_work switch_brightness_work; int switch_brightness_event; struct acpi_video_bus *video; struct acpi_device *dev; struct acpi_video_device_brightness *brightness; struct backlight_device *backlight; struct thermal_cooling_device *cooling_dev; }; struct acpi_video_brightness_flags { u8 _BCL_no_ac_battery_levels: 1; u8 _BCL_reversed: 1; u8 _BQC_use_index: 1; }; struct acpi_video_device_brightness { int curr; int count; int *levels; struct acpi_video_brightness_flags flags; }; struct vcs_poll_data { struct notifier_block notifier; unsigned int cons_num; int event; wait_queue_head_t waitq; struct fasync_struct *fasync; }; struct vt_notifier_param { struct vc_data *vc; unsigned int c; }; 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, }; enum tcpa_pc_event_ids { SMBIOS = 1, BIS_CERT = 2, POST_BIOS_ROM = 3, ESCD = 4, CMOS = 5, NVRAM = 6, OPTION_ROM_EXEC = 7, OPTION_ROM_CONFIG = 8, OPTION_ROM_MICROCODE = 10, S_CRTM_VERSION = 11, S_CRTM_CONTENTS = 12, POST_CONTENTS = 13, HOST_TABLE_OF_DEVICES = 14, }; struct tcpa_pc_event { u32 event_id; u32 event_size; u8 event_data[0]; }; struct tcpa_event { u32 pcr_index; u32 event_type; u8 pcr_value[20]; u32 event_size; u8 event_data[0]; }; struct drm_conn_prop_enum_list { int type; const char *name; struct ida ida; }; struct drm_mode_modeinfo { __u32 clock; __u16 hdisplay; __u16 hsync_start; __u16 hsync_end; __u16 htotal; __u16 hskew; __u16 vdisplay; __u16 vsync_start; __u16 vsync_end; __u16 vtotal; __u16 vscan; __u32 vrefresh; __u32 flags; __u32 type; char name[32]; }; struct drm_mode_obj_set_property { __u64 value; __u32 prop_id; __u32 obj_id; __u32 obj_type; }; struct drm_mode_connector_set_property { __u64 value; __u32 prop_id; __u32 connector_id; }; struct drm_mode_get_connector { __u64 encoders_ptr; __u64 modes_ptr; __u64 props_ptr; __u64 prop_values_ptr; __u32 count_modes; __u32 count_props; __u32 count_encoders; __u32 encoder_id; __u32 connector_id; __u32 connector_type; __u32 connector_type_id; __u32 connection; __u32 mm_width; __u32 mm_height; __u32 subpixel; __u32 pad; }; struct reg_whitelist { i915_reg_t offset_ldw; i915_reg_t offset_udw; u8 min_graphics_ver; u8 max_graphics_ver; u8 size; }; struct drm_i915_reg_read { __u64 offset; __u64 val; }; struct ia_constants { unsigned int min_gpu_freq; unsigned int max_gpu_freq; unsigned int min_ring_freq; unsigned int max_ia_freq; }; struct i915_user_extension { __u64 next_extension; __u32 name; __u32 flags; __u32 rsvd[4]; }; typedef int (*i915_user_extension_fn)(struct i915_user_extension __attribute__((btf_type_tag("user"))) *, void *); struct drm_i915_gem_mmap { __u32 handle; __u32 pad; __u64 offset; __u64 size; __u64 addr_ptr; __u64 flags; }; struct drm_i915_gem_mmap_offset { __u32 handle; __u32 pad; __u64 offset; __u64 flags; __u64 extensions; }; enum intel_guc_action { INTEL_GUC_ACTION_DEFAULT = 0, INTEL_GUC_ACTION_REQUEST_PREEMPTION = 2, INTEL_GUC_ACTION_REQUEST_ENGINE_RESET = 3, INTEL_GUC_ACTION_ALLOCATE_DOORBELL = 16, INTEL_GUC_ACTION_DEALLOCATE_DOORBELL = 32, INTEL_GUC_ACTION_LOG_BUFFER_FILE_FLUSH_COMPLETE = 48, INTEL_GUC_ACTION_UK_LOG_ENABLE_LOGGING = 64, INTEL_GUC_ACTION_FORCE_LOG_BUFFER_FLUSH = 770, INTEL_GUC_ACTION_ENTER_S_STATE = 1281, INTEL_GUC_ACTION_EXIT_S_STATE = 1282, INTEL_GUC_ACTION_GLOBAL_SCHED_POLICY_CHANGE = 1286, INTEL_GUC_ACTION_UPDATE_SCHEDULING_POLICIES_KLV = 1289, INTEL_GUC_ACTION_SCHED_CONTEXT = 4096, INTEL_GUC_ACTION_SCHED_CONTEXT_MODE_SET = 4097, INTEL_GUC_ACTION_SCHED_CONTEXT_MODE_DONE = 4098, INTEL_GUC_ACTION_SCHED_ENGINE_MODE_SET = 4099, INTEL_GUC_ACTION_SCHED_ENGINE_MODE_DONE = 4100, INTEL_GUC_ACTION_V69_SET_CONTEXT_PRIORITY = 4101, INTEL_GUC_ACTION_V69_SET_CONTEXT_EXECUTION_QUANTUM = 4102, INTEL_GUC_ACTION_V69_SET_CONTEXT_PREEMPTION_TIMEOUT = 4103, INTEL_GUC_ACTION_CONTEXT_RESET_NOTIFICATION = 4104, INTEL_GUC_ACTION_ENGINE_FAILURE_NOTIFICATION = 4105, INTEL_GUC_ACTION_HOST2GUC_UPDATE_CONTEXT_POLICIES = 4107, INTEL_GUC_ACTION_SETUP_PC_GUCRC = 12292, INTEL_GUC_ACTION_AUTHENTICATE_HUC = 16384, INTEL_GUC_ACTION_GET_HWCONFIG = 16640, INTEL_GUC_ACTION_REGISTER_CONTEXT = 17666, INTEL_GUC_ACTION_DEREGISTER_CONTEXT = 17667, INTEL_GUC_ACTION_DEREGISTER_CONTEXT_DONE = 17920, INTEL_GUC_ACTION_REGISTER_CONTEXT_MULTI_LRC = 17921, INTEL_GUC_ACTION_CLIENT_SOFT_RESET = 21767, INTEL_GUC_ACTION_SET_ENG_UTIL_BUFF = 21770, INTEL_GUC_ACTION_STATE_CAPTURE_NOTIFICATION = 32770, INTEL_GUC_ACTION_NOTIFY_FLUSH_LOG_BUFFER_TO_FILE = 32771, INTEL_GUC_ACTION_NOTIFY_CRASH_DUMP_POSTED = 32772, INTEL_GUC_ACTION_NOTIFY_EXCEPTION = 32773, INTEL_GUC_ACTION_LIMIT = 32774, }; struct ct_incoming_msg { struct list_head link; u32 size; u32 msg[0]; }; struct ct_request { struct list_head link; u32 fence; u32 status; u32 response_len; u32 *response_buf; }; typedef __kernel_long_t __kernel_ptrdiff_t; typedef __kernel_ptrdiff_t ptrdiff_t; enum { DMC_FW_MAIN = 0, DMC_FW_PIPEA = 1, DMC_FW_PIPEB = 2, DMC_FW_PIPEC = 3, DMC_FW_PIPED = 4, DMC_FW_MAX = 5, }; struct intel_css_header { u32 module_type; u32 header_len; u32 header_ver; u32 module_id; u32 module_vendor; u32 date; u32 size; u32 key_size; u32 modulus_size; u32 exponent_size; u32 reserved1[12]; u32 version; u32 reserved2[8]; u32 kernel_header_info; }; struct intel_package_header { u8 header_len; u8 header_ver; u8 reserved[10]; u32 num_entries; }; struct intel_dmc_header_base { u32 signature; u8 header_len; u8 header_ver; u16 dmcc_ver; u32 project; u32 fw_size; u32 fw_version; }; struct intel_fw_info { u8 reserved1; u8 dmc_id; char stepping; char substepping; u32 offset; u32 reserved2; }; struct intel_dmc_header_v3 { struct intel_dmc_header_base base; u32 start_mmioaddr; u32 reserved[9]; char dfile[32]; u32 mmio_count; u32 mmioaddr[20]; u32 mmiodata[20]; }; struct intel_dmc_header_v1 { struct intel_dmc_header_base base; u32 mmio_count; u32 mmioaddr[8]; u32 mmiodata[8]; char dfile[32]; u32 reserved1[2]; }; struct stepping_info { char stepping; char substepping; }; struct drm_i915_error_state_buf { struct drm_i915_private___3 *i915; struct scatterlist *sgl; struct scatterlist *cur; struct scatterlist *end; char *buf; size_t bytes; size_t size; loff_t iter; int err; }; typedef u64 gen8_pte_t; 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; }; 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; }; 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; }; 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); void (*phy_reset)(struct ata_port *); void (*eng_timeout)(struct ata_port *); 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[14]; 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: 16; 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; 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; 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; }; 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; long: 32; long: 64; long: 64; 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 work_struct 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; long: 32; long: 64; u8 sector_buf[512]; }; struct cdrom_device_ops; struct cdrom_device_info { const struct cdrom_device_ops *ops; struct list_head list; struct gendisk *disk; void *handle; int mask; int speed; int capacity; unsigned int options: 30; unsigned int mc_flags: 2; unsigned int vfs_events; unsigned int ioctl_events; int use_count; char name[20]; __u8 sanyo_slot: 2; __u8 keeplocked: 1; __u8 reserved: 5; int cdda_method; __u8 last_sense; __u8 media_written; unsigned short mmc3_profile; int for_data; int (*exit)(struct cdrom_device_info *); int mrw_mode_page; __s64 last_media_change_ms; }; struct cdrom_multisession; struct cdrom_mcn; struct packet_command; struct cdrom_device_ops { int (*open)(struct cdrom_device_info *, int); void (*release)(struct cdrom_device_info *); int (*drive_status)(struct cdrom_device_info *, int); unsigned int (*check_events)(struct cdrom_device_info *, unsigned int, int); int (*tray_move)(struct cdrom_device_info *, int); int (*lock_door)(struct cdrom_device_info *, int); int (*select_speed)(struct cdrom_device_info *, int); int (*get_last_session)(struct cdrom_device_info *, struct cdrom_multisession *); int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *); int (*reset)(struct cdrom_device_info *); int (*audio_ioctl)(struct cdrom_device_info *, unsigned int, void *); int (*generic_packet)(struct cdrom_device_info *, struct packet_command *); int (*read_cdda_bpc)(struct cdrom_device_info *, void __attribute__((btf_type_tag("user"))) *, u32, u32, u8 *); const int capability; }; struct cdrom_msf0 { __u8 minute; __u8 second; __u8 frame; }; union cdrom_addr { struct cdrom_msf0 msf; int lba; }; struct cdrom_multisession { union cdrom_addr addr; __u8 xa_flag; __u8 addr_format; }; struct cdrom_mcn { __u8 medium_catalog_number[14]; }; struct packet_command { unsigned char cmd[12]; unsigned char *buffer; unsigned int buflen; int stat; struct scsi_sense_hdr *sshdr; unsigned char data_direction; int quiet; int timeout; void *reserved[1]; }; 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_IDENTIFY_DEVICE = 48, ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, 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, 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, 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_CFG_MASK = 8191, ATA_DFLAG_PIO = 8192, ATA_DFLAG_NCQ_OFF = 16384, ATA_DFLAG_SLEEPING = 32768, ATA_DFLAG_DUBIOUS_XFER = 65536, ATA_DFLAG_NO_UNLOAD = 131072, ATA_DFLAG_UNLOCK_HPA = 262144, ATA_DFLAG_INIT_MASK = 524287, ATA_DFLAG_NCQ_PRIO_ENABLED = 524288, 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 = 201333504, 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_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_EH = 65536, ATA_QCFLAG_SENSE_VALID = 131072, ATA_QCFLAG_EH_SCHEDULED = 262144, ATA_HOST_SIMPLEX = 1, ATA_HOST_STARTED = 2, ATA_HOST_PARALLEL_SCAN = 4, ATA_HOST_IGNORE_ATA = 8, 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 = 5000, 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_PERDEV_MASK = 33, 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_PROBE_MAX_TRIES = 3, 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 = 7, 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, }; 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; }; enum e1000_mac_type { 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, }; 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_bm = 8, e1000_phy_82578 = 9, e1000_phy_82577 = 10, e1000_phy_82579 = 11, e1000_phy_i217 = 12, }; 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_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_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_nvm_type { e1000_nvm_unknown = 0, e1000_nvm_none = 1, e1000_nvm_eeprom_spi = 2, e1000_nvm_flash_hw = 3, e1000_nvm_flash_sw = 4, }; enum e1000_nvm_override { e1000_nvm_override_none = 0, e1000_nvm_override_spi_small = 1, e1000_nvm_override_spi_large = 2, }; 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, }; enum e1000_ulp_state { e1000_ulp_state_unknown = 0, e1000_ulp_state_off = 1, e1000_ulp_state_on = 2, }; 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_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; struct e1000_mac_operations { s32 (*id_led_init)(struct e1000_hw *); s32 (*blink_led)(struct e1000_hw *); bool (*check_mng_mode)(struct e1000_hw *); s32 (*check_for_link)(struct e1000_hw *); s32 (*cleanup_led)(struct e1000_hw *); void (*clear_hw_cntrs)(struct e1000_hw *); void (*clear_vfta)(struct e1000_hw *); s32 (*get_bus_info)(struct e1000_hw *); void (*set_lan_id)(struct e1000_hw *); s32 (*get_link_up_info)(struct e1000_hw *, u16 *, u16 *); s32 (*led_on)(struct e1000_hw *); s32 (*led_off)(struct e1000_hw *); void (*update_mc_addr_list)(struct e1000_hw *, u8 *, u32); s32 (*reset_hw)(struct e1000_hw *); s32 (*init_hw)(struct e1000_hw *); s32 (*setup_link)(struct e1000_hw *); s32 (*setup_physical_interface)(struct e1000_hw *); s32 (*setup_led)(struct e1000_hw *); void (*write_vfta)(struct e1000_hw *, u32, u32); void (*config_collision_dist)(struct e1000_hw *); int (*rar_set)(struct e1000_hw *, u8 *, u32); s32 (*read_mac_addr)(struct e1000_hw *); u32 (*rar_get_count)(struct e1000_hw *); }; struct e1000_mac_info { struct e1000_mac_operations ops; u8 addr[6]; u8 perm_addr[6]; enum e1000_mac_type 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 { 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 { s32 (*acquire)(struct e1000_hw *); s32 (*cfg_on_link_up)(struct e1000_hw *); s32 (*check_polarity)(struct e1000_hw *); s32 (*check_reset_block)(struct e1000_hw *); s32 (*commit)(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_info)(struct e1000_hw *); s32 (*set_page)(struct e1000_hw *, u16); s32 (*read_reg)(struct e1000_hw *, u32, u16 *); s32 (*read_reg_locked)(struct e1000_hw *, u32, u16 *); s32 (*read_reg_page)(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 (*write_reg_locked)(struct e1000_hw *, u32, u16); s32 (*write_reg_page)(struct e1000_hw *, u32, u16); void (*power_up)(struct e1000_hw *); void (*power_down)(struct e1000_hw *); }; 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; u8 mdix; bool disable_polarity_correction; bool is_mdix; bool polarity_correction; 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 *); void (*reload)(struct e1000_hw *); s32 (*update)(struct e1000_hw *); s32 (*valid_led_default)(struct e1000_hw *, u16 *); s32 (*validate)(struct e1000_hw *); s32 (*write)(struct e1000_hw *, u16, u16, 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_width width; u16 func; }; 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_adapter; struct e1000_hw { struct e1000_adapter *adapter; void *hw_addr; void *flash_address; 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_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 { 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 hwtstamp_config { int flags; int tx_type; int rx_filter; }; struct ptp_clock; struct e1000_info; 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 *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: 32; long: 64; 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: 32; 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 hw; spinlock_t stats64_lock; struct e1000_hw_stats stats; struct e1000_phy_info 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; long: 48; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct e1000_info { enum e1000_mac_type 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 *mac_ops; const struct e1000_phy_operations *phy_ops; const struct e1000_nvm_operations *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; }; struct e1000_host_mng_command_header { u8 command_id; u8 checksum; u16 reserved1; u16 reserved2; u16 command_length; }; struct ohci { void *registers; }; struct usb_dynids { spinlock_t lock; struct list_head list; }; struct usbdrv_wrap { struct device_driver driver; int for_devices; }; 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 usbdrv_wrap drvwrap; 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 ignore_entry { u16 vid; u16 pid; u16 bcdmin; u16 bcdmax; }; 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; }; enum thermal_device_mode { THERMAL_DEVICE_DISABLED = 0, THERMAL_DEVICE_ENABLED = 1, }; enum thermal_trip_type { THERMAL_TRIP_ACTIVE = 0, THERMAL_TRIP_PASSIVE = 1, THERMAL_TRIP_HOT = 2, THERMAL_TRIP_CRITICAL = 3, }; 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, }; struct thermal_attr; struct thermal_trip; struct thermal_zone_device_ops; struct thermal_zone_params; struct thermal_governor; struct thermal_zone_device { int id; char type[20]; struct device device; 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; struct thermal_trip *trips; int num_trips; unsigned long trips_disabled; 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; }; struct thermal_attr { struct device_attribute attr; char name[20]; }; struct thermal_trip { int temperature; int hysteresis; enum thermal_trip_type type; }; 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 (*get_trip_type)(struct thermal_zone_device *, int, enum thermal_trip_type *); int (*get_trip_temp)(struct thermal_zone_device *, int, int *); int (*set_trip_temp)(struct thermal_zone_device *, int, int); int (*get_trip_hyst)(struct thermal_zone_device *, int, int *); int (*set_trip_hyst)(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 *, int, enum thermal_trend *); void (*hot)(struct thermal_zone_device *); void (*critical)(struct thermal_zone_device *); }; struct thermal_bind_params; struct thermal_zone_params { char governor_name[20]; bool no_hwmon; int num_tbps; struct thermal_bind_params *tbp; u32 sustainable_power; s32 k_po; s32 k_pu; s32 k_i; s32 k_d; s32 integral_cutoff; int slope; int offset; }; struct thermal_bind_params { struct thermal_cooling_device *cdev; int weight; int trip_mask; unsigned long *binding_limits; int (*match)(struct thermal_zone_device *, struct thermal_cooling_device *); }; struct thermal_governor { char name[20]; int (*bind_to_tz)(struct thermal_zone_device *); void (*unbind_from_tz)(struct thermal_zone_device *); int (*throttle)(struct thermal_zone_device *, int); struct list_head governor_list; }; struct dm_ioctl; typedef int (*ioctl_fn)(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_dev_internal { struct list_head list; refcount_t count; struct dm_dev *dm_dev; }; struct dm_target_msg { __u64 sector; char message[0]; }; typedef unsigned long ulong; 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 apple_key_translation { u16 from; u16 to; u8 flags; }; struct apple_non_apple_keyboard { char *name; }; struct apple_sc_backlight; struct apple_sc { struct hid_device *hdev; unsigned long quirks; unsigned int fn_on; unsigned int fn_found; unsigned long pressed_numlock[12]; struct timer_list battery_timer; struct apple_sc_backlight *backlight; }; struct apple_sc_backlight { struct led_classdev cdev; struct hid_device *hdev; unsigned short backlight_off; unsigned short backlight_on_min; unsigned short backlight_on_max; }; struct apple_backlight_config_report { u8 report_id; u8 version; u16 backlight_off; u16 backlight_on_min; u16 backlight_on_max; }; struct apple_backlight_set_report { u8 report_id; u8 version; u16 backlight; u16 rate; }; struct led_init_data { struct fwnode_handle *fwnode; const char *default_label; const char *devicename; bool devname_mandatory; }; enum nvmem_type { NVMEM_TYPE_UNKNOWN = 0, NVMEM_TYPE_EEPROM = 1, NVMEM_TYPE_OTP = 2, NVMEM_TYPE_BATTERY_BACKED = 3, NVMEM_TYPE_FRAM = 4, }; enum { NVMEM_ADD = 1, NVMEM_REMOVE = 2, NVMEM_CELL_ADD = 3, NVMEM_CELL_REMOVE = 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); typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); struct nvmem_keepout; struct nvmem_device { struct module *owner; struct device dev; 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; const struct nvmem_keepout *keepout; unsigned int nkeepout; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; nvmem_cell_post_process_t cell_post_process; struct gpio_desc *wp_gpio; void *priv; }; struct nvmem_keepout { unsigned int start; unsigned int end; unsigned char value; }; struct nvmem_cell_info; struct nvmem_cell_table { const char *nvmem_name; const struct nvmem_cell_info *cells; size_t ncells; struct list_head node; }; struct nvmem_cell_info { const char *name; unsigned int offset; unsigned int bytes; unsigned int bit_offset; unsigned int nbits; struct device_node *np; }; struct nvmem_cell_entry { const char *name; int offset; int bytes; int bit_offset; int nbits; struct device_node *np; struct nvmem_device *nvmem; 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; }; struct nvmem_config { struct device *dev; const char *name; int id; struct module *owner; const struct nvmem_cell_info *cells; int ncells; const struct nvmem_keepout *keepout; unsigned int nkeepout; enum nvmem_type type; bool read_only; bool root_only; bool ignore_wp; struct device_node *of_node; bool no_of_node; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; nvmem_cell_post_process_t cell_post_process; int size; int word_size; int stride; void *priv; bool compat; struct device *base_dev; }; struct azx; struct azx_dev; typedef void (*btf_trace_azx_pcm_trigger)(void *, struct azx *, struct azx_dev *, int); struct hda_bus { struct hdac_bus core; struct snd_card *card; struct pci_dev *pci; const char *modelname; struct mutex prepare_mutex; unsigned long pcm_dev_bits[1]; unsigned int allow_bus_reset: 1; unsigned int shutdown: 1; unsigned int response_reset: 1; unsigned int in_reset: 1; unsigned int no_response_fallback: 1; unsigned int bus_probing: 1; unsigned int keep_power: 1; unsigned int jackpoll_in_suspend: 1; int primary_dig_out_type; unsigned int mixer_assigned; }; typedef unsigned int (*azx_get_pos_callback_t)(struct azx *, struct azx_dev *); typedef int (*azx_get_delay_callback_t)(struct azx *, struct azx_dev *, unsigned int); struct hda_controller_ops; struct azx { struct hda_bus bus; struct snd_card *card; struct pci_dev *pci; int dev_index; int driver_type; unsigned int driver_caps; int playback_streams; int playback_index_offset; int capture_streams; int capture_index_offset; int num_streams; int jackpoll_interval; const struct hda_controller_ops *ops; azx_get_pos_callback_t get_position[2]; azx_get_delay_callback_t get_delay[2]; struct mutex open_mutex; struct list_head pcm_list; int codec_probe_mask; unsigned int beep_mode; bool ctl_dev_id; int bdl_pos_adj; unsigned int running: 1; unsigned int fallback_to_single_cmd: 1; unsigned int single_cmd: 1; unsigned int msi: 1; unsigned int probing: 1; unsigned int snoop: 1; unsigned int uc_buffer: 1; unsigned int align_buffer_size: 1; unsigned int disabled: 1; unsigned int pm_prepared: 1; unsigned int gts_present: 1; }; struct hda_controller_ops { int (*disable_msi_reset_irq)(struct azx *); int (*position_check)(struct azx *, struct azx_dev *); int (*link_power)(struct azx *, bool); }; struct snd_compr_stream; struct hdac_stream { struct hdac_bus *bus; struct snd_dma_buffer bdl; __le32 *posbuf; int direction; unsigned int bufsize; unsigned int period_bytes; unsigned int frags; unsigned int fifo_size; void *sd_addr; void *spib_addr; void *fifo_addr; void *dpibr_addr; u32 dpib; u32 lpib; u32 sd_int_sta_mask; struct snd_pcm_substream *substream; struct snd_compr_stream *cstream; unsigned int format_val; unsigned char stream_tag; unsigned char index; int assigned_key; bool opened: 1; bool running: 1; bool prepared: 1; bool no_period_wakeup: 1; bool locked: 1; bool stripe: 1; u64 curr_pos; unsigned long start_wallclk; unsigned long period_wallclk; struct timecounter tc; struct cyclecounter cc; int delay_negative_threshold; struct list_head list; }; struct azx_dev { struct hdac_stream core; unsigned int irq_pending: 1; unsigned int insufficient: 1; }; typedef void (*btf_trace_azx_get_position)(void *, struct azx *, struct azx_dev *, unsigned int, unsigned int); typedef void (*btf_trace_azx_pcm_open)(void *, struct azx *, struct azx_dev *); typedef void (*btf_trace_azx_pcm_close)(void *, struct azx *, struct azx_dev *); typedef void (*btf_trace_azx_pcm_hw_params)(void *, struct azx *, struct azx_dev *); typedef void (*btf_trace_azx_pcm_prepare)(void *, struct azx *, struct azx_dev *); enum { HDA_PCM_TYPE_AUDIO = 0, HDA_PCM_TYPE_SPDIF = 1, HDA_PCM_TYPE_HDMI = 2, HDA_PCM_TYPE_MODEM = 3, HDA_PCM_NTYPES = 4, }; enum { SNDRV_PCM_CLASS_GENERIC = 0, SNDRV_PCM_CLASS_MULTI = 1, SNDRV_PCM_CLASS_MODEM = 2, SNDRV_PCM_CLASS_DIGITIZER = 3, SNDRV_PCM_CLASS_LAST = 3, }; struct hda_codec; struct hda_pcm; struct azx_pcm { struct azx *chip; struct snd_pcm *pcm; struct hda_codec *codec; struct hda_pcm *info; struct list_head list; }; struct hda_codec_ops { int (*build_controls)(struct hda_codec *); int (*build_pcms)(struct hda_codec *); int (*init)(struct hda_codec *); void (*free)(struct hda_codec *); void (*unsol_event)(struct hda_codec *, unsigned int); void (*set_power_state)(struct hda_codec *, hda_nid_t, unsigned int); int (*suspend)(struct hda_codec *); int (*resume)(struct hda_codec *); int (*check_power_status)(struct hda_codec *, hda_nid_t); void (*stream_pm)(struct hda_codec *, hda_nid_t, bool); }; struct hda_beep; struct snd_hwdep; struct hda_fixup; struct hda_codec { struct hdac_device core; struct hda_bus *bus; struct snd_card *card; unsigned int addr; u32 probe_id; const struct hda_device_id *preset; const char *modelname; struct hda_codec_ops patch_ops; struct list_head pcm_list_head; refcount_t pcm_ref; wait_queue_head_t remove_sleep; void *spec; struct hda_beep *beep; unsigned int beep_mode; u32 *wcaps; struct snd_array mixers; struct snd_array nids; struct list_head conn_list; struct mutex spdif_mutex; struct mutex control_mutex; struct snd_array spdif_out; unsigned int spdif_in_enable; const hda_nid_t *follower_dig_outs; struct snd_array init_pins; struct snd_array driver_pins; struct snd_array cvt_setups; struct mutex user_mutex; struct snd_hwdep *hwdep; unsigned int configured: 1; unsigned int in_freeing: 1; unsigned int display_power_control: 1; unsigned int spdif_status_reset: 1; unsigned int pin_amp_workaround: 1; unsigned int single_adc_amp: 1; unsigned int no_sticky_stream: 1; unsigned int pins_shutup: 1; unsigned int no_trigger_sense: 1; unsigned int no_jack_detect: 1; unsigned int inv_eapd: 1; unsigned int inv_jack_detect: 1; unsigned int pcm_format_first: 1; unsigned int cached_write: 1; unsigned int dp_mst: 1; unsigned int dump_coef: 1; unsigned int power_save_node: 1; unsigned int auto_runtime_pm: 1; unsigned int force_pin_prefix: 1; unsigned int link_down_at_suspend: 1; unsigned int relaxed_resume: 1; unsigned int forced_resume: 1; unsigned int no_stream_clean_at_suspend: 1; unsigned int ctl_dev_id: 1; unsigned long power_on_acct; unsigned long power_off_acct; unsigned long power_jiffies; unsigned int (*power_filter)(struct hda_codec *, hda_nid_t, unsigned int); void (*proc_widget_hook)(struct snd_info_buffer *, struct hda_codec *, hda_nid_t); struct snd_array jacktbl; unsigned long jackpoll_interval; struct delayed_work jackpoll_work; int depop_delay; int fixup_id; const struct hda_fixup *fixup_list; const char *fixup_name; struct snd_array verbs; }; struct snd_hwdep_dsp_status; struct snd_hwdep_dsp_image; struct snd_hwdep_ops { long long (*llseek)(struct snd_hwdep *, struct file *, long long, int); long (*read)(struct snd_hwdep *, char __attribute__((btf_type_tag("user"))) *, long, loff_t *); long (*write)(struct snd_hwdep *, const char __attribute__((btf_type_tag("user"))) *, long, loff_t *); int (*open)(struct snd_hwdep *, struct file *); int (*release)(struct snd_hwdep *, struct file *); __poll_t (*poll)(struct snd_hwdep *, struct file *, poll_table *); int (*ioctl)(struct snd_hwdep *, struct file *, unsigned int, unsigned long); int (*ioctl_compat)(struct snd_hwdep *, struct file *, unsigned int, unsigned long); int (*mmap)(struct snd_hwdep *, struct file *, struct vm_area_struct *); int (*dsp_status)(struct snd_hwdep *, struct snd_hwdep_dsp_status *); int (*dsp_load)(struct snd_hwdep *, struct snd_hwdep_dsp_image *); }; struct snd_hwdep { struct snd_card *card; struct list_head list; int device; char id[32]; char name[80]; int iface; struct snd_hwdep_ops ops; wait_queue_head_t open_wait; void *private_data; void (*private_free)(struct snd_hwdep *); struct device dev; struct mutex open_mutex; int used; unsigned int dsp_loaded; unsigned int exclusive: 1; }; struct snd_hwdep_dsp_status { unsigned int version; unsigned char id[32]; unsigned int num_dsps; unsigned int dsp_loaded; unsigned int chip_ready; unsigned char reserved[16]; }; struct snd_hwdep_dsp_image { unsigned int index; unsigned char name[64]; unsigned char __attribute__((btf_type_tag("user"))) *image; size_t length; unsigned long driver_data; }; struct hda_pintbl; struct hda_verb; struct hda_fixup { int type; bool chained: 1; bool chained_before: 1; int chain_id; union { const struct hda_pintbl *pins; const struct hda_verb *verbs; void (*func)(struct hda_codec *, const struct hda_fixup *, int); } v; }; struct hda_pintbl { hda_nid_t nid; u32 val; }; struct hda_verb { hda_nid_t nid; u32 verb; u32 param; }; struct hda_pcm_stream; struct hda_pcm_ops { int (*open)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *); int (*close)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *); int (*prepare)(struct hda_pcm_stream *, struct hda_codec *, unsigned int, unsigned int, struct snd_pcm_substream *); int (*cleanup)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *); unsigned int (*get_delay)(struct hda_pcm_stream *, struct hda_codec *, struct snd_pcm_substream *); }; struct hda_pcm_stream { unsigned int substreams; unsigned int channels_min; unsigned int channels_max; hda_nid_t nid; u32 rates; u64 formats; unsigned int maxbps; const struct snd_pcm_chmap_elem *chmap; struct hda_pcm_ops ops; }; struct hda_pcm { char *name; struct hda_pcm_stream stream[2]; unsigned int pcm_type; int device; struct snd_pcm *pcm; bool own_chmap; struct hda_codec *codec; struct list_head list; unsigned int disconnected: 1; }; struct trace_event_raw_azx_pcm_trigger { struct trace_entry ent; int card; int idx; int cmd; char __data[0]; }; struct trace_event_raw_azx_get_position { struct trace_entry ent; int card; int idx; unsigned int pos; unsigned int delay; char __data[0]; }; struct trace_event_raw_azx_pcm { struct trace_entry ent; unsigned char stream_tag; char __data[0]; }; struct hda_spdif_out { hda_nid_t nid; unsigned int status; unsigned short ctls; }; struct system_counterval_t { u64 cycles; struct clocksource *cs; }; 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 trace_event_data_offsets_azx_pcm_trigger {}; struct trace_event_data_offsets_azx_get_position {}; struct trace_event_data_offsets_azx_pcm {}; struct cgroup_cls_state { struct cgroup_subsys_state css; u32 classid; }; struct update_classid_context { u32 classid; unsigned int batch; }; 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); bool (*compare)(struct net *, struct sock *); int registered; }; struct listeners { struct callback_head rcu; unsigned long masks[0]; }; enum netlink_skb_flags { NETLINK_SKB_DST = 8, }; 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 socket_alloc { struct socket socket; struct inode vfs_inode; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct netlink_sock { struct sock sk; u32 portid; u32 dst_portid; u32 dst_group; u32 flags; 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 *cb_mutex; struct mutex cb_def_mutex; void (*netlink_rcv)(struct sk_buff *); int (*netlink_bind)(struct net *, int); void (*netlink_unbind)(struct net *, int); 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; }; 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; }; 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 scm_cookie { struct pid *pid; struct scm_fp_list *fp; struct scm_creds creds; u32 secid; }; struct nl_pktinfo { __u32 group; }; struct ucred { __u32 pid; __u32 uid; __u32 gid; }; 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 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); bool (*compare)(struct net *, struct sock *); }; struct netlink_dump_control { int (*start)(struct netlink_callback *); int (*dump)(struct sk_buff *, struct netlink_callback *); int (*done)(struct netlink_callback *); void *data; struct module *module; u32 min_dump_alloc; }; struct nlmsgerr { int error; struct nlmsghdr msg; }; struct netlink_notify { struct net *net; u32 portid; int protocol; }; 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_EVENTS = 7, NF_SYSCTL_CT_TIMESTAMP = 8, NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 9, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 10, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 11, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 12, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 13, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 14, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 15, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 16, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 17, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 18, NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 19, NF_SYSCTL_CT_PROTO_TCP_LOOSE = 20, NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 21, NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 22, NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 23, NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 24, NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 25, NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 26, NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 27, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_CLOSED = 28, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_WAIT = 29, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_COOKIE_ECHOED = 30, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_ESTABLISHED = 31, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_SENT = 32, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_RECD = 33, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT = 34, NF_SYSCTL_CT_PROTO_TIMEOUT_SCTP_HEARTBEAT_SENT = 35, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_REQUEST = 36, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_RESPOND = 37, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_PARTOPEN = 38, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_OPEN = 39, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSEREQ = 40, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_CLOSING = 41, NF_SYSCTL_CT_PROTO_TIMEOUT_DCCP_TIMEWAIT = 42, NF_SYSCTL_CT_PROTO_DCCP_LOOSE = 43, NF_SYSCTL_CT_LWTUNNEL = 44, __NF_SYSCTL_CT_LAST_SYSCTL = 45, }; enum udp_conntrack { UDP_CT_UNREPLIED = 0, UDP_CT_REPLIED = 1, UDP_CT_MAX = 2, }; 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, }; enum ct_dccp_states { CT_DCCP_NONE = 0, CT_DCCP_REQUEST = 1, CT_DCCP_RESPOND = 2, CT_DCCP_PARTOPEN = 3, CT_DCCP_OPEN = 4, CT_DCCP_CLOSEREQ = 5, CT_DCCP_CLOSING = 6, CT_DCCP_TIMEWAIT = 7, CT_DCCP_IGNORE = 8, CT_DCCP_INVALID = 9, __CT_DCCP_MAX = 10, }; struct nf_conntrack_net_ecache { struct delayed_work dwork; spinlock_t dying_lock; struct hlist_nulls_head dying_list; }; 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_net_ecache ecache; }; 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 { 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 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, }; enum tcp_tw_status { TCP_TW_SUCCESS = 0, TCP_TW_RST = 1, TCP_TW_ACK = 2, TCP_TW_SYN = 3, }; enum tcp_seq_states { TCP_SEQ_STATE_LISTENING = 0, TCP_SEQ_STATE_ESTABLISHED = 1, }; 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 tcp_md5sig_key *tw_md5_key; }; struct tcp_md5sig_pool { struct ahash_request *md5_req; void *scratch; }; struct tcp4_pseudohdr { __be32 saddr; __be32 daddr; __u8 pad; __u8 protocol; __be16 len; }; struct ip_reply_arg { struct kvec iov[1]; int flags; __wsum csum; int csumoffset; int bound_dev_if; u8 tos; kuid_t uid; }; 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; }; struct tcp_md5sig { struct __kernel_sockaddr_storage tcpm_addr; __u8 tcpm_flags; __u8 tcpm_prefixlen; __u16 tcpm_keylen; int tcpm_ifindex; __u8 tcpm_key[80]; }; struct xfrm4_protocol { int (*handler)(struct sk_buff *); int (*input_handler)(struct sk_buff *, int, __be32, int); int (*cb_handler)(struct sk_buff *, int); int (*err_handler)(struct sk_buff *, u32); struct xfrm4_protocol __attribute__((btf_type_tag("rcu"))) *next; int priority; }; 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 sk_psock_work_state { struct sk_buff *skb; 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 strparser strp; 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 work_struct work; 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; }; enum { CRYPTO_AUTHENC_KEYA_UNSPEC = 0, CRYPTO_AUTHENC_KEYA_PARAM = 1, }; struct ip_esp_hdr { __be32 spi; __be32 seq_no; __u8 enc_data[0]; }; struct esp_skb_cb { struct xfrm_skb_cb xfrm; void *tmp; }; 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 esp_info { struct ip_esp_hdr *esph; __be64 seqno; int tfclen; int tailen; int plen; int clen; int len; int nfrags; __u8 proto; bool inplace; }; struct esp_output_extra { __be32 seqhi; u32 esphoff; }; struct crypto_authenc_key_param { __be32 enckeylen; }; struct xfrm_algo_aead_info { char *geniv; u16 icv_truncbits; }; struct xfrm_algo_auth_info { u16 icv_truncbits; u16 icv_fullbits; }; struct xfrm_algo_encr_info { char *geniv; u16 blockbits; u16 defkeybits; }; struct xfrm_algo_comp_info { u16 threshold; }; struct sadb_alg { __u8 sadb_alg_id; __u8 sadb_alg_ivlen; __u16 sadb_alg_minbits; __u16 sadb_alg_maxbits; __u16 sadb_alg_reserved; }; struct xfrm_algo_desc { char *name; char *compat; u8 available: 1; u8 pfkey_supported: 1; union { struct xfrm_algo_aead_info aead; struct xfrm_algo_auth_info auth; struct xfrm_algo_encr_info encr; struct xfrm_algo_comp_info comp; } uinfo; struct sadb_alg desc; }; 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 rtnl_link_flags { RTNL_FLAG_DOIT_UNLOCKED = 1, RTNL_FLAG_BULK_DEL_SUPPORTED = 2, }; 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_MAX = 58, }; 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, }; 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, }; 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, }; 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 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 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 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 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 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; }; enum sock_shutdown_cmd { SHUT_RD = 0, SHUT_WR = 1, SHUT_RDWR = 2, }; struct udp_sock { struct inet_sock inet; int pending; unsigned int corkflag; __u8 encap_type; unsigned char no_check6_tx: 1; unsigned char no_check6_rx: 1; unsigned char encap_enabled: 1; unsigned char gro_enabled: 1; unsigned char accept_udp_l4: 1; unsigned char accept_udp_fraglist: 1; __u16 len; __u16 gso_size; __u16 pcslen; __u16 pcrlen; __u8 pcflag; __u8 unused[3]; 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; long: 64; long: 64; long: 64; struct sk_buff_head reader_queue; int forward_deficit; int forward_threshold; long: 64; long: 64; long: 64; long: 64; }; struct udp_port_cfg { u8 family; union { struct in_addr local_ip; struct in6_addr local_ip6; }; union { struct in_addr peer_ip; struct in6_addr peer_ip6; }; __be16 local_udp_port; __be16 peer_udp_port; int bind_ifindex; unsigned int use_udp_checksums: 1; unsigned int use_udp6_tx_checksums: 1; unsigned int use_udp6_rx_checksums: 1; unsigned int ipv6_v6only: 1; }; struct cfg80211_per_bw_puncturing_values { u8 len; const u16 *valid_values; }; 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 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, }; typedef void (*btf_trace_9p_client_req)(void *, struct p9_client *, int8_t, int); typedef void (*btf_trace_9p_client_res)(void *, struct p9_client *, int8_t, int, int); typedef void (*btf_trace_9p_protocol_dump)(void *, struct p9_client *, struct p9_fcall *); typedef void (*btf_trace_9p_fid_ref)(void *, struct p9_fid *, __u8); struct match_token { int token; const char *pattern; }; enum p9_fid_reftype { P9_FID_REF_CREATE = 0, P9_FID_REF_GET = 1, P9_FID_REF_PUT = 2, P9_FID_REF_DESTROY = 3, }; enum { Opt_msize = 0, Opt_trans = 1, Opt_legacy = 2, Opt_version = 3, Opt_err = 4, }; struct trace_event_raw_9p_client_req { struct trace_entry ent; void *clnt; __u8 type; __u32 tag; char __data[0]; }; struct trace_event_raw_9p_client_res { struct trace_entry ent; void *clnt; __u8 type; __u32 tag; __u32 err; char __data[0]; }; struct trace_event_raw_9p_protocol_dump { struct trace_entry ent; void *clnt; __u8 type; __u16 tag; unsigned char line[32]; char __data[0]; }; struct trace_event_raw_9p_fid_ref { struct trace_entry ent; int fid; int refcount; __u8 type; char __data[0]; }; typedef struct { char *from; char *to; } substring_t; struct trace_event_data_offsets_9p_client_req {}; struct trace_event_data_offsets_9p_client_res {}; struct trace_event_data_offsets_9p_protocol_dump {}; struct trace_event_data_offsets_9p_fid_ref {}; struct p9_flock { u8 type; u32 flags; u64 start; u64 length; u32 proc_id; char *client_id; }; struct p9_getlock { u8 type; u64 start; u64 length; u32 proc_id; char *client_id; }; enum mptcp_addr_signal_status { MPTCP_ADD_ADDR_SIGNAL = 0, MPTCP_ADD_ADDR_ECHO = 1, MPTCP_RM_ADDR_SIGNAL = 2, }; enum mptcp_event_type { MPTCP_EVENT_UNSPEC = 0, MPTCP_EVENT_CREATED = 1, MPTCP_EVENT_ESTABLISHED = 2, MPTCP_EVENT_CLOSED = 3, MPTCP_EVENT_ANNOUNCED = 6, MPTCP_EVENT_REMOVED = 7, MPTCP_EVENT_SUB_ESTABLISHED = 10, MPTCP_EVENT_SUB_CLOSED = 11, MPTCP_EVENT_SUB_PRIORITY = 13, MPTCP_EVENT_LISTENER_CREATED = 15, MPTCP_EVENT_LISTENER_CLOSED = 16, }; enum mptcp_pm_status { MPTCP_PM_ADD_ADDR_RECEIVED = 0, MPTCP_PM_ADD_ADDR_SEND_ACK = 1, MPTCP_PM_RM_ADDR_RECEIVED = 2, MPTCP_PM_ESTABLISHED = 3, MPTCP_PM_SUBFLOW_ESTABLISHED = 4, MPTCP_PM_ALREADY_ESTABLISHED = 5, MPTCP_PM_MPC_ENDPOINT_ACCOUNTED = 6, }; enum mptcp_data_avail { MPTCP_SUBFLOW_NODATA = 0, MPTCP_SUBFLOW_DATA_AVAIL = 1, }; enum linux_mptcp_mib_field { MPTCP_MIB_NUM = 0, MPTCP_MIB_MPCAPABLEPASSIVE = 1, MPTCP_MIB_MPCAPABLEACTIVE = 2, MPTCP_MIB_MPCAPABLEACTIVEACK = 3, MPTCP_MIB_MPCAPABLEPASSIVEACK = 4, MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK = 5, MPTCP_MIB_MPCAPABLEACTIVEFALLBACK = 6, MPTCP_MIB_TOKENFALLBACKINIT = 7, MPTCP_MIB_RETRANSSEGS = 8, MPTCP_MIB_JOINNOTOKEN = 9, MPTCP_MIB_JOINSYNRX = 10, MPTCP_MIB_JOINSYNACKRX = 11, MPTCP_MIB_JOINSYNACKMAC = 12, MPTCP_MIB_JOINACKRX = 13, MPTCP_MIB_JOINACKMAC = 14, MPTCP_MIB_DSSNOMATCH = 15, MPTCP_MIB_INFINITEMAPTX = 16, MPTCP_MIB_INFINITEMAPRX = 17, MPTCP_MIB_DSSTCPMISMATCH = 18, MPTCP_MIB_DATACSUMERR = 19, MPTCP_MIB_OFOQUEUETAIL = 20, MPTCP_MIB_OFOQUEUE = 21, MPTCP_MIB_OFOMERGE = 22, MPTCP_MIB_NODSSWINDOW = 23, MPTCP_MIB_DUPDATA = 24, MPTCP_MIB_ADDADDR = 25, MPTCP_MIB_ECHOADD = 26, MPTCP_MIB_PORTADD = 27, MPTCP_MIB_ADDADDRDROP = 28, MPTCP_MIB_JOINPORTSYNRX = 29, MPTCP_MIB_JOINPORTSYNACKRX = 30, MPTCP_MIB_JOINPORTACKRX = 31, MPTCP_MIB_MISMATCHPORTSYNRX = 32, MPTCP_MIB_MISMATCHPORTACKRX = 33, MPTCP_MIB_RMADDR = 34, MPTCP_MIB_RMADDRDROP = 35, MPTCP_MIB_RMSUBFLOW = 36, MPTCP_MIB_MPPRIOTX = 37, MPTCP_MIB_MPPRIORX = 38, MPTCP_MIB_MPFAILTX = 39, MPTCP_MIB_MPFAILRX = 40, MPTCP_MIB_MPFASTCLOSETX = 41, MPTCP_MIB_MPFASTCLOSERX = 42, MPTCP_MIB_MPRSTTX = 43, MPTCP_MIB_MPRSTRX = 44, MPTCP_MIB_RCVPRUNED = 45, MPTCP_MIB_SUBFLOWSTALE = 46, MPTCP_MIB_SUBFLOWRECOVER = 47, MPTCP_MIB_SNDWNDSHARED = 48, MPTCP_MIB_RCVWNDSHARED = 49, MPTCP_MIB_RCVWNDCONFLICTUPDATE = 50, MPTCP_MIB_RCVWNDCONFLICT = 51, __MPTCP_MIB_MAX = 52, }; enum mptcp_pm_type { MPTCP_PM_TYPE_KERNEL = 0, MPTCP_PM_TYPE_USERSPACE = 1, __MPTCP_PM_TYPE_NR = 2, __MPTCP_PM_TYPE_MAX = 1, }; struct mptcp_subflow_context { struct list_head node; union { struct { unsigned long avg_pacing_rate; u64 local_key; u64 remote_key; u64 idsn; u64 map_seq; u32 snd_isn; u32 token; u32 rel_write_seq; u32 map_subflow_seq; u32 ssn_offset; u32 map_data_len; __wsum map_data_csum; u32 map_csum_len; u32 request_mptcp: 1; u32 request_join: 1; u32 request_bkup: 1; u32 mp_capable: 1; u32 mp_join: 1; u32 fully_established: 1; u32 pm_notified: 1; u32 conn_finished: 1; u32 map_valid: 1; u32 map_csum_reqd: 1; u32 map_data_fin: 1; u32 mpc_map: 1; u32 backup: 1; u32 send_mp_prio: 1; u32 send_mp_fail: 1; u32 send_fastclose: 1; u32 send_infinite_map: 1; u32 rx_eof: 1; u32 remote_key_valid: 1; u32 disposable: 1; u32 stale: 1; u32 local_id_valid: 1; u32 valid_csum_seen: 1; u32 is_mptfo: 1; u32 __unused: 8; enum mptcp_data_avail data_avail; u32 remote_nonce; u64 thmac; u32 local_nonce; u32 remote_token; union { u8 hmac[20]; u64 iasn; }; u8 local_id; u8 remote_id; u8 reset_seen: 1; u8 reset_transient: 1; u8 reset_reason: 4; u8 stale_count; long delegated_status; unsigned long fail_tout; }; struct { unsigned long avg_pacing_rate; u64 local_key; u64 remote_key; u64 idsn; u64 map_seq; u32 snd_isn; u32 token; u32 rel_write_seq; u32 map_subflow_seq; u32 ssn_offset; u32 map_data_len; __wsum map_data_csum; u32 map_csum_len; u32 request_mptcp: 1; u32 request_join: 1; u32 request_bkup: 1; u32 mp_capable: 1; u32 mp_join: 1; u32 fully_established: 1; u32 pm_notified: 1; u32 conn_finished: 1; u32 map_valid: 1; u32 map_csum_reqd: 1; u32 map_data_fin: 1; u32 mpc_map: 1; u32 backup: 1; u32 send_mp_prio: 1; u32 send_mp_fail: 1; u32 send_fastclose: 1; u32 send_infinite_map: 1; u32 rx_eof: 1; u32 remote_key_valid: 1; u32 disposable: 1; u32 stale: 1; u32 local_id_valid: 1; u32 valid_csum_seen: 1; u32 is_mptfo: 1; u32 __unused: 8; enum mptcp_data_avail data_avail; u32 remote_nonce; u64 thmac; u32 local_nonce; u32 remote_token; union { u8 hmac[20]; u64 iasn; }; u8 local_id; u8 remote_id; u8 reset_seen: 1; u8 reset_transient: 1; u8 reset_reason: 4; u8 stale_count; long delegated_status; unsigned long fail_tout; } reset; }; struct list_head delegated_node; u32 setsockopt_seq; u32 stale_rcv_tstamp; struct sock *tcp_sock; struct sock *conn; const struct inet_connection_sock_af_ops *icsk_af_ops; void (*tcp_state_change)(struct sock *); void (*tcp_error_report)(struct sock *); struct callback_head rcu; }; struct mptcp_addr_info { u8 id; sa_family_t family; __be16 port; union { struct in_addr addr; struct in6_addr addr6; }; }; struct mptcp_rm_list { u8 ids[8]; u8 nr; }; struct mptcp_pm_data { struct mptcp_addr_info local; struct mptcp_addr_info remote; struct list_head anno_list; struct list_head userspace_pm_local_addr_list; spinlock_t lock; u8 addr_signal; bool server_side; bool work_pending; bool accept_addr; bool accept_subflow; bool remote_deny_join_id0; u8 add_addr_signaled; u8 add_addr_accepted; u8 local_addr_used; u8 pm_type; u8 subflows; u8 status; unsigned long id_avail_bitmap[4]; struct mptcp_rm_list rm_list_tx; struct mptcp_rm_list rm_list_rx; }; struct mptcp_data_frag; struct mptcp_sock { struct inet_connection_sock sk; u64 local_key; u64 remote_key; u64 write_seq; u64 snd_nxt; u64 ack_seq; atomic64_t rcv_wnd_sent; u64 rcv_data_fin_seq; int rmem_fwd_alloc; struct sock *last_snd; int snd_burst; int old_wspace; u64 recovery_snd_nxt; u64 snd_una; u64 wnd_end; unsigned long timer_ival; u32 token; int rmem_released; unsigned long flags; unsigned long cb_flags; unsigned long push_pending; bool recovery; bool can_ack; bool fully_established; bool rcv_data_fin; bool snd_data_fin_enable; bool rcv_fastclose; bool use_64bit_ack; bool csum_enabled; bool allow_infinite_fallback; u8 mpc_endpoint_id; u8 recvmsg_inq: 1; u8 cork: 1; u8 nodelay: 1; u8 fastopening: 1; int connect_flags; struct work_struct work; struct sk_buff *ooo_last_skb; struct rb_root out_of_order_queue; struct sk_buff_head receive_queue; struct list_head conn_list; struct list_head rtx_queue; struct mptcp_data_frag *first_pending; struct list_head join_list; struct socket *subflow; struct sock *first; struct mptcp_pm_data pm; struct { u32 space; u32 copied; u64 time; u64 rtt_us; } rcvq_space; u32 setsockopt_seq; char ca_name[16]; struct mptcp_sock *dl_next; }; struct mptcp_data_frag { struct list_head list; u64 data_seq; u16 data_len; u16 offset; u16 overhead; u16 already_sent; struct page *page; }; struct mptcp_pm_add_entry; struct async_domain { struct list_head pending; unsigned int registered: 1; }; enum state { Start = 0, Collect = 1, GotHeader = 2, SkipIt = 3, GotName = 4, CopyFile = 5, GotSymlink = 6, Reset = 7, }; struct hash { int ino; int minor; int major; umode_t mode; struct hash *next; char name[4098]; }; struct dir_entry { struct list_head list; time64_t mtime; char name[0]; }; typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); struct estack_pages { u32 offs; u16 size; u16 type; }; 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, }; struct stack_info { enum stack_type type; unsigned long *begin; unsigned long *end; unsigned long *next_sp; }; struct cpu { int node_id; int hotpluggable; struct device dev; }; struct x86_cpu { struct cpu cpu; }; 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, }; 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; }; 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; }; enum { NMI_LOCAL = 0, NMI_UNKNOWN = 1, NMI_SERR = 2, NMI_IO_CHECK = 3, NMI_MAX = 4, }; enum apic_delivery_modes { APIC_DELIVERY_MODE_FIXED = 0, APIC_DELIVERY_MODE_LOWESTPRIO = 1, APIC_DELIVERY_MODE_SMI = 2, APIC_DELIVERY_MODE_NMI = 4, APIC_DELIVERY_MODE_INIT = 5, APIC_DELIVERY_MODE_EXTINT = 7, }; struct physid_mask; typedef struct physid_mask physid_mask_t; struct apic { void (*eoi_write)(u32, u32); void (*native_eoi_write)(u32, u32); 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; enum apic_delivery_modes delivery_mode; bool dest_mode_logical; u32 (*calc_dest_apicid)(unsigned int); u64 (*icr_read)(); void (*icr_write)(u32, u32); int (*probe)(); int (*acpi_madt_oem_check)(char *, char *); int (*apic_id_valid)(u32); int (*apic_id_registered)(); bool (*check_apicid_used)(physid_mask_t *, int); void (*init_apic_ldr)(); void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *); void (*setup_apic_routing)(); int (*cpu_present_to_apicid)(int); void (*apicid_to_cpu_present)(int, physid_mask_t *); int (*check_phys_apicid_present)(int); int (*phys_pkg_id)(int, int); u32 (*get_apic_id)(unsigned long); u32 (*set_apic_id)(unsigned int); int (*wakeup_secondary_cpu)(int, unsigned long); int (*wakeup_secondary_cpu_64)(int, unsigned long); void (*inquire_remote_apic)(int); char *name; }; struct physid_mask { unsigned long mask[512]; }; 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, }; 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 init_pgtable_data { struct x86_mapping_info *info; pgd_t *level4p; }; typedef guid_t efi_guid_t; typedef struct { efi_guid_t guid; unsigned long *ptr; const char name[16]; } efi_config_table_type_t; typedef struct { u64 signature; u32 revision; u32 headersize; u32 crc32; u32 reserved; } efi_table_hdr_t; typedef unsigned long efi_status_t; 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 { u32 type; u32 pad; u64 phys_addr; u64 virt_addr; u64 num_pages; u64 attribute; } efi_memory_desc_t; typedef u16 efi_char16_t; typedef struct { efi_guid_t guid; u32 headersize; u32 flags; u32 imagesize; } efi_capsule_header_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; 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 e820_entry { u64 addr; u64 size; enum e820_type type; } __attribute__((packed)); struct e820_table { __u32 nr_entries; struct e820_entry entries[131]; } __attribute__((packed)); 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; 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 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 efi_setup_data { u64 fw_vendor; u64 __unused; u64 tables; u64 smbios; u64 reserved[8]; }; 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; unsigned int current_color; 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; int sleeping; char desc[24]; struct workqueue_struct *rescue_wq; work_func_t last_func; }; 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; }; 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_id; }; 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; }; typedef void (*btf_trace_timer_init)(void *, struct timer_list *); typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); 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_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; }; 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 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_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_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 audit_fsnotify_mark { dev_t dev; unsigned long ino; char *path; struct fsnotify_mark mark; struct audit_krule *rule; }; 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_MODE = 0, }; struct map_iter { void *key; bool done; }; struct bpf_mount_opts { umode_t mode; }; 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 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, }; 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, }; 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_direct_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, isolate_mode_t, 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 vmscan_throttle_state { VMSCAN_THROTTLE_WRITEBACK = 0, VMSCAN_THROTTLE_ISOLATED = 1, VMSCAN_THROTTLE_NOPROGRESS = 2, VMSCAN_THROTTLE_CONGESTED = 3, NR_VMSCAN_THROTTLE = 4, }; enum folio_references { FOLIOREF_RECLAIM = 0, FOLIOREF_RECLAIM_CLEAN = 1, FOLIOREF_KEEP = 2, FOLIOREF_ACTIVATE = 3, }; enum pgdat_flags { PGDAT_DIRTY = 0, PGDAT_WRITEBACK = 1, PGDAT_RECLAIM_LOCKED = 2, }; 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 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, }; enum lruvec_flags { LRUVEC_CONGESTED = 0, }; 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 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 { ZONELIST_FALLBACK = 0, MAX_ZONELISTS = 1, }; enum zone_flags { ZONE_BOOSTED_WATERMARK = 0, ZONE_RECLAIM_ACTIVE = 1, }; 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; unsigned int isolate_mode; 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 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 folio_batch { unsigned char nr; bool percpu_pvec_drained; struct folio *folios[15]; }; 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 {}; 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 ctl_path { const char *procname; }; struct sysctl_alias { const char *kernel_param; const char *sysctl_param; }; 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 = 0, Opt_min_size = 1, Opt_mode = 2, Opt_nr_inodes = 3, Opt_pagesize = 4, Opt_size = 5, Opt_uid = 6, }; typedef unsigned int zap_flags_t; struct page_counter; 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 page_counter *reservation_counter; unsigned long pages_per_hpage; struct cgroup_subsys_state *css; }; 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 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 nfs_netns_client { struct kobject kobject; struct net *net; const char __attribute__((btf_type_tag("rcu"))) *identifier; }; struct bl_dev_msg { int32_t status; uint32_t major; uint32_t minor; }; struct cache_detail; struct rpc_pipe; struct nfs_net { struct cache_detail *nfs_dns_resolve; struct rpc_pipe *bl_device_pipe; struct bl_dev_msg bl_mount_reply; wait_queue_head_t bl_wq; struct mutex bl_mutex; struct list_head nfs_client_list; struct list_head nfs_volume_list; struct idr cb_ident_idr; unsigned short nfs_callback_tcpport; unsigned short nfs_callback_tcpport6; int cb_users[1]; struct nfs_netns_client *nfs_client; spinlock_t nfs_client_lock; ktime_t boot_time; struct proc_dir_entry *proc_nfsfs; }; struct rpc_pipe_ops; struct rpc_pipe { struct list_head pipe; struct list_head in_upcall; struct list_head in_downcall; int pipelen; int nreaders; int nwriters; int flags; struct delayed_work queue_timeout; const struct rpc_pipe_ops *ops; spinlock_t lock; struct dentry *dentry; }; struct rpc_pipe_msg; struct rpc_pipe_ops { ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __attribute__((btf_type_tag("user"))) *, size_t); ssize_t (*downcall)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t); void (*release_pipe)(struct inode *); int (*open_pipe)(struct inode *); void (*destroy_msg)(struct rpc_pipe_msg *); }; struct rpc_pipe_msg { struct list_head list; void *data; size_t len; size_t copied; int errno; }; struct rpc_pipe_dir_object_ops; struct rpc_pipe_dir_object { struct list_head pdo_head; const struct rpc_pipe_dir_object_ops *pdo_ops; void *pdo_data; }; struct idmap_legacy_upcalldata; struct idmap { struct rpc_pipe_dir_object idmap_pdo; struct rpc_pipe *idmap_pipe; struct idmap_legacy_upcalldata *idmap_upcall_data; struct mutex idmap_mutex; struct user_namespace *user_ns; }; struct rpc_pipe_dir_object_ops { int (*create)(struct dentry *, struct rpc_pipe_dir_object *); void (*destroy)(struct dentry *, struct rpc_pipe_dir_object *); }; struct idmap_msg { __u8 im_type; __u8 im_conv; char im_name[128]; __u32 im_id; __u8 im_status; }; struct idmap_legacy_upcalldata { struct rpc_pipe_msg pipe_msg; struct idmap_msg idmap_msg; struct key *authkey; struct idmap *idmap; }; enum { Opt_find_uid = 0, Opt_find_gid = 1, Opt_find_user = 2, Opt_find_group = 3, Opt_find_err = 4, }; struct rpc_inode { struct inode vfs_inode; void *private; struct rpc_pipe *pipe; wait_queue_head_t waitq; }; struct user_key_payload { struct callback_head rcu; unsigned short datalen; long: 48; char data[0]; }; struct sembuf { unsigned short sem_num; short sem_op; short sem_flg; }; struct compat_ipc_kludge { compat_uptr_t msgp; compat_long_t msgtyp; }; struct netlbl_lsm_catmap { u32 startbit; u64 bitmap[4]; struct netlbl_lsm_catmap *next; }; enum { POLICYDB_CAP_NETPEER = 0, POLICYDB_CAP_OPENPERM = 1, POLICYDB_CAP_EXTSOCKCLASS = 2, POLICYDB_CAP_ALWAYSNETWORK = 3, POLICYDB_CAP_CGROUPSECLABEL = 4, POLICYDB_CAP_NNP_NOSUID_TRANSITION = 5, POLICYDB_CAP_GENFS_SECLABEL_SYMLINKS = 6, POLICYDB_CAP_IOCTL_SKIP_CLOEXEC = 7, __POLICYDB_CAP_MAX = 8, }; struct crypto_report_akcipher { char type[64]; }; typedef struct { __be64 a; __be64 b; } be128; struct gf128mul_4k { be128 t[256]; }; struct ghash_ctx { struct gf128mul_4k *gf128; }; struct ghash_desc_ctx { u8 buffer[16]; u32 bytes; }; struct asn1_decoder; 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 queue_sysfs_entry { struct attribute attr; ssize_t (*show)(struct request_queue *, char *); ssize_t (*store)(struct request_queue *, const char *, size_t); }; 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; }; typedef void (*swap_r_func_t)(void *, void *, int, const void *); struct wrapper { cmp_func_t cmp; swap_func_t swap; }; typedef int (*cmp_r_func_t)(const void *, const void *, const void *); struct rnd_state { __u32 s1; __u32 s2; __u32 s3; __u32 s4; }; typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); typedef unsigned int iov_iter_extraction_t; struct iov_iter_state { size_t iov_offset; size_t count; unsigned long nr_segs; }; 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_RESERVED = 24, ACPI_MADT_TYPE_OEM_RESERVED = 128, }; 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, }; enum acpi_subtable_type { ACPI_SUBTABLE_COMMON = 0, ACPI_SUBTABLE_HMAT = 1, ACPI_SUBTABLE_PRMT = 2, ACPI_SUBTABLE_CEDT = 3, }; struct acpi_subtable_header { u8 type; u8 length; }; 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_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_local_apic_nmi { struct acpi_subtable_header header; u8 processor_id; u16 inti_flags; u8 lint; } __attribute__((packed)); 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_override { struct acpi_subtable_header header; u16 reserved; u64 address; } __attribute__((packed)); struct acpi_madt_io_sapic { struct acpi_subtable_header header; u8 id; u8 reserved; u32 global_irq_base; u64 address; }; 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[1]; } __attribute__((packed)); 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; } __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_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; }; 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_subtable_entry { union acpi_subtable_headers *hdr; enum acpi_subtable_type type; }; typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); 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; }; typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); 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; }; enum utf16_endian { UTF16_HOST_ENDIAN = 0, UTF16_LITTLE_ENDIAN = 1, UTF16_BIG_ENDIAN = 2, }; 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; }; typedef u32 (*acpi_sci_handler)(void *); struct acpi_sci_handler_info { struct acpi_sci_handler_info *next; acpi_sci_handler address; void *context; }; typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); 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 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; }; enum idle_boot_override { IDLE_NO_OVERRIDE = 0, IDLE_HALT = 1, IDLE_NOMWAIT = 2, IDLE_POLL = 3, }; 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 pnp_device_id; struct pnp_dev; 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_protocol; struct pnp_card; 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_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 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_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]; }; enum drm_minor_type { DRM_MINOR_PRIMARY = 0, DRM_MINOR_CONTROL = 1, DRM_MINOR_RENDER = 2, DRM_MINOR_ACCEL = 32, }; struct drm_stats { unsigned long count; struct { unsigned long value; enum drm_stat_type type; } data[15]; }; struct drm_set_version { int drm_di_major; int drm_di_minor; int drm_dd_major; int drm_dd_minor; }; struct drm_get_cap { __u64 capability; __u64 value; }; struct drm_set_client_cap { __u64 capability; __u64 value; }; struct drm_flip_work; typedef void (*drm_flip_func_t)(struct drm_flip_work *, void *); struct drm_flip_work { const char *name; drm_flip_func_t func; struct work_struct worker; struct list_head queued; struct list_head commited; spinlock_t lock; }; struct drm_flip_task { struct list_head node; void *data; }; struct drm_afbc_framebuffer { struct drm_framebuffer base; u32 block_width; u32 block_height; u32 aligned_width; u32 aligned_height; u32 offset; u32 afbc_size; }; enum drm_i915_gem_engine_class { I915_ENGINE_CLASS_RENDER = 0, I915_ENGINE_CLASS_COPY = 1, I915_ENGINE_CLASS_VIDEO = 2, I915_ENGINE_CLASS_VIDEO_ENHANCE = 3, I915_ENGINE_CLASS_COMPUTE = 4, I915_ENGINE_CLASS_INVALID = -1, }; typedef struct drm_i915_getparam drm_i915_getparam_t; struct kobj_engine { struct kobject base; struct intel_engine_cs *engine; }; 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 drm_i915_gem_wait { __u32 bo_handle; __u32 flags; __s64 timeout_ns; }; enum intel_guc_load_status { INTEL_GUC_LOAD_STATUS_DEFAULT = 0, INTEL_GUC_LOAD_STATUS_START = 1, INTEL_GUC_LOAD_STATUS_ERROR_DEVID_BUILD_MISMATCH = 2, INTEL_GUC_LOAD_STATUS_GUC_PREPROD_BUILD_MISMATCH = 3, INTEL_GUC_LOAD_STATUS_ERROR_DEVID_INVALID_GUCTYPE = 4, INTEL_GUC_LOAD_STATUS_GDT_DONE = 16, INTEL_GUC_LOAD_STATUS_IDT_DONE = 32, INTEL_GUC_LOAD_STATUS_LAPIC_DONE = 48, INTEL_GUC_LOAD_STATUS_GUCINT_DONE = 64, INTEL_GUC_LOAD_STATUS_DPC_READY = 80, INTEL_GUC_LOAD_STATUS_DPC_ERROR = 96, INTEL_GUC_LOAD_STATUS_EXCEPTION = 112, INTEL_GUC_LOAD_STATUS_INIT_DATA_INVALID = 113, INTEL_GUC_LOAD_STATUS_PXP_TEARDOWN_CTRL_ENABLED = 114, INTEL_GUC_LOAD_STATUS_INVALID_INIT_DATA_RANGE_START = 115, INTEL_GUC_LOAD_STATUS_MPU_DATA_INVALID = 115, INTEL_GUC_LOAD_STATUS_INIT_MMIO_SAVE_RESTORE_INVALID = 116, INTEL_GUC_LOAD_STATUS_INVALID_INIT_DATA_RANGE_END = 117, INTEL_GUC_LOAD_STATUS_READY = 240, }; enum hdmi_force_audio { HDMI_AUDIO_OFF_DVI = -2, HDMI_AUDIO_OFF = -1, HDMI_AUDIO_AUTO = 0, HDMI_AUDIO_ON = 1, }; struct intel_digital_connector_state { struct drm_connector_state base; enum hdmi_force_audio force_audio; int broadcast_rgb; }; struct hsw_ddi_buf_trans { u32 trans1; u32 trans2; u8 i_boost; }; struct bxt_ddi_buf_trans { u8 margin; u8 scale; u8 enable; u8 deemphasis; }; struct icl_ddi_buf_trans { u8 dw2_swing_sel; u8 dw7_n_scalar; u8 dw4_cursor_coeff; u8 dw4_post_cursor_2; u8 dw4_post_cursor_1; }; struct icl_mg_phy_ddi_buf_trans { u8 cri_txdeemph_override_11_6; u8 cri_txdeemph_override_5_0; u8 cri_txdeemph_override_17_12; }; struct tgl_dkl_phy_ddi_buf_trans { u8 vswing; u8 preshoot; u8 de_emphasis; }; struct dg2_snps_phy_buf_trans { u8 vswing; u8 pre_cursor; u8 post_cursor; }; union intel_ddi_buf_trans_entry { struct hsw_ddi_buf_trans hsw; struct bxt_ddi_buf_trans bxt; struct icl_ddi_buf_trans icl; struct icl_mg_phy_ddi_buf_trans mg; struct tgl_dkl_phy_ddi_buf_trans dkl; struct dg2_snps_phy_buf_trans snps; }; struct class_attribute { struct attribute attr; ssize_t (*show)(struct class *, struct class_attribute *, char *); ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t); }; struct class_attribute_string { struct class_attribute attr; char *str; }; struct class_compat { struct kobject *kobj; }; 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, }; 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_exec_args { unsigned char *sense; unsigned int sense_len; struct scsi_sense_hdr *sshdr; blk_mq_req_flags_t req_flags; int *resid; }; 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; }; struct compat_cdrom_generic_command { unsigned char cmd[12]; compat_caddr_t buffer; compat_uint_t buflen; compat_int_t stat; compat_caddr_t sense; unsigned char data_direction; unsigned char pad[3]; compat_int_t quiet; compat_int_t timeout; compat_caddr_t unused; }; struct scsi_idlun { __u32 dev_id; __u32 host_unique_id; }; struct scsi_ioctl_command { unsigned int inlen; unsigned int outlen; unsigned char data[0]; }; 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 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 pci_bits { unsigned int reg; unsigned int width; unsigned long mask; unsigned long val; }; enum ata_dev_iter_mode { ATA_DITER_ENABLED = 0, ATA_DITER_ENABLED_REVERSE = 1, ATA_DITER_ALL = 2, ATA_DITER_ALL_REVERSE = 3, }; enum ata_xfer_mask { ATA_MASK_PIO = 127, ATA_MASK_MWDMA = 3968, ATA_MASK_UDMA = 1044480, }; 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; }; struct driver_attribute { struct attribute attr; ssize_t (*show)(struct device_driver *, char *); ssize_t (*store)(struct device_driver *, const char *, size_t); }; enum { PCMCIA_IOPORT_0 = 0, PCMCIA_IOPORT_1 = 1, PCMCIA_IOMEM_0 = 2, PCMCIA_IOMEM_1 = 3, PCMCIA_IOMEM_2 = 4, PCMCIA_IOMEM_3 = 5, PCMCIA_NUM_RESOURCES = 6, }; struct pcmcia_dynids { struct mutex lock; struct list_head list; }; struct pcmcia_device; struct pcmcia_device_id; struct pcmcia_driver { const char *name; int (*probe)(struct pcmcia_device *); void (*remove)(struct pcmcia_device *); int (*suspend)(struct pcmcia_device *); int (*resume)(struct pcmcia_device *); struct module *owner; const struct pcmcia_device_id *id_table; struct device_driver drv; struct pcmcia_dynids dynids; }; struct config_t; struct pcmcia_device { struct pcmcia_socket *socket; char *devname; u8 device_no; u8 func; struct config_t *function_config; struct list_head socket_device_list; unsigned int irq; struct resource *resource[6]; resource_size_t card_addr; unsigned int vpp; unsigned int config_flags; unsigned int config_base; unsigned int config_index; unsigned int config_regs; unsigned int io_lines; u16 suspended: 1; u16 _irq: 1; u16 _io: 1; u16 _win: 4; u16 _locked: 1; u16 allow_func_id_match: 1; u16 has_manf_id: 1; u16 has_card_id: 1; u16 has_func_id: 1; u16 reserved: 4; u8 func_id; u16 manf_id; u16 card_id; char *prod_id[4]; u64 dma_mask; struct device dev; void *priv; unsigned int open; }; struct config_t { struct kref ref; unsigned int state; struct resource io[2]; struct resource mem[4]; }; struct pcmcia_device_id { __u16 match_flags; __u16 manf_id; __u16 card_id; __u8 func_id; __u8 function; __u8 device_no; __u32 prod_id_hash[4]; const char *prod_id[4]; kernel_ulong_t driver_info; char *cisfile; }; struct pcmcia_dynid { struct list_head node; struct pcmcia_device_id id; }; typedef unsigned char cisdata_t; struct cistpl_config_t { u_char last_idx; u_int base; u_int rmask[4]; u_char subtuples; }; typedef struct cistpl_config_t cistpl_config_t; struct cistpl_longlink_mfc_t { u_char nfn; struct { u_char space; u_int addr; } fn[8]; }; typedef struct cistpl_longlink_mfc_t cistpl_longlink_mfc_t; struct cistpl_manfid_t { u_short manf; u_short card; }; typedef struct cistpl_manfid_t cistpl_manfid_t; struct cistpl_funcid_t { u_char func; u_char sysinit; }; typedef struct cistpl_funcid_t cistpl_funcid_t; struct cistpl_vers_1_t { u_char major; u_char minor; u_char ns; u_char ofs[4]; char str[254]; }; typedef struct cistpl_vers_1_t cistpl_vers_1_t; struct cistpl_device_geo_t { u_char ngeo; struct { u_char buswidth; u_int erase_block; u_int read_block; u_int write_block; u_int partition; u_int interleave; } geo[4]; }; typedef struct cistpl_device_geo_t cistpl_device_geo_t; typedef struct config_t config_t; struct component_ops { int (*bind)(struct device *, struct device *, void *); void (*unbind)(struct device *, struct device *, void *); }; 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 pm_qos_flags_status { PM_QOS_FLAGS_UNDEFINED = -1, PM_QOS_FLAGS_NONE = 0, PM_QOS_FLAGS_SOME = 1, PM_QOS_FLAGS_ALL = 2, }; struct usb_dev_state; typedef u32 usb_port_location_t; struct usb_port { struct usb_device *child; struct device dev; struct usb_dev_state *port_owner; struct usb_port *peer; struct dev_pm_qos_request *req; enum usb_port_connect_type connect_type; 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 usb_hub_status { __le16 wHubStatus; __le16 wHubChange; }; struct usb_port_status { __le16 wPortStatus; __le16 wPortChange; __le32 dwExtPortStatus; }; 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 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_dev { u32 bus; u32 slot; u32 func; }; typedef void (*set_debug_port_t)(int); struct usb_hcd; struct usb_debug_descriptor { __u8 bLength; __u8 bDescriptorType; __u8 bDebugInEndpoint; __u8 bDebugOutEndpoint; }; 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_client; struct psmouse_smbus_dev { struct i2c_board_info board; struct psmouse *psmouse; struct i2c_client *client; struct list_head node; bool dead; bool need_deactivate; }; 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 psmouse_smbus_removal_work { struct work_struct work; struct i2c_client *client; }; 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 thermal_instance { int id; char name[20]; struct thermal_zone_device *tz; struct thermal_cooling_device *cdev; int 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; }; 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; }; struct trace_event_data_offsets_cdev_update { u32 type; }; struct trace_event_data_offsets_thermal_zone_trip { u32 thermal_zone; }; struct led_lookup_data { struct list_head list; const char *provider; const char *dev_id; const char *con_id; }; struct snd_ctl_layer_ops { struct snd_ctl_layer_ops *next; const char *module_name; void (*lregister)(struct snd_card *); void (*ldisconnect)(struct snd_card *); void (*lnotify)(struct snd_card *, unsigned int, struct snd_kcontrol *, unsigned int); }; enum snd_ctl_add_mode { CTL_ADD_EXCLUSIVE = 0, CTL_REPLACE = 1, CTL_ADD_ON_REPLACE = 2, }; enum sndrv_ctl_event_type { SNDRV_CTL_EVENT_ELEM = 0, SNDRV_CTL_EVENT_LAST = 0, }; enum { SNDRV_CTL_TLV_OP_READ = 0, SNDRV_CTL_TLV_OP_WRITE = 1, SNDRV_CTL_TLV_OP_CMD = -1, }; enum { SNDRV_CTL_IOCTL_ELEM_LIST32 = 3225965840, SNDRV_CTL_IOCTL_ELEM_INFO32 = 3239073041, SNDRV_CTL_IOCTL_ELEM_READ32 = 3267646738, SNDRV_CTL_IOCTL_ELEM_WRITE32 = 3267646739, SNDRV_CTL_IOCTL_ELEM_ADD32 = 3239073047, SNDRV_CTL_IOCTL_ELEM_REPLACE32 = 3239073048, }; enum { SND_CTL_SUBDEV_PCM = 0, SND_CTL_SUBDEV_RAWMIDI = 1, SND_CTL_SUBDEV_ITEMS = 2, }; struct snd_kctl_event { struct list_head list; struct snd_ctl_elem_id id; unsigned int mask; }; typedef int (*snd_kctl_ioctl_func_t)(struct snd_card *, struct snd_ctl_file *, unsigned int, unsigned long); struct snd_kctl_ioctl { struct list_head list; snd_kctl_ioctl_func_t fioctl; }; struct snd_ctl_elem_list { unsigned int offset; unsigned int space; unsigned int used; unsigned int count; struct snd_ctl_elem_id __attribute__((btf_type_tag("user"))) *pids; unsigned char reserved[50]; }; struct snd_ctl_card_info { int card; int pad; unsigned char id[16]; unsigned char driver[16]; unsigned char name[32]; unsigned char longname[80]; unsigned char reserved_[16]; unsigned char mixername[80]; unsigned char components[128]; }; struct snd_ctl_elem_info32 { struct snd_ctl_elem_id id; s32 type; u32 access; u32 count; s32 owner; union { struct { s32 min; s32 max; s32 step; } integer; struct { u64 min; u64 max; u64 step; } integer64; struct { u32 items; u32 item; char name[64]; u64 names_ptr; u32 names_length; } enumerated; unsigned char reserved[128]; } value; unsigned char reserved[64]; }; struct snd_ctl_elem_value32 { struct snd_ctl_elem_id id; unsigned int indirect; union { s32 integer[128]; unsigned char data[512]; } value; unsigned char reserved[128]; }; struct snd_ctl_elem_list32 { u32 offset; u32 space; u32 used; u32 count; u32 pids; unsigned char reserved[50]; }; struct user_element { struct snd_ctl_elem_info info; struct snd_card *card; char *elem_data; unsigned long elem_data_size; void *tlv_data; unsigned long tlv_data_size; void *priv_data; }; struct snd_ctl_event { int type; union { struct { unsigned int mask; struct snd_ctl_elem_id id; } elem; unsigned char data8[60]; } data; }; struct snd_ctl_tlv { unsigned int numid; unsigned int length; unsigned int tlv[0]; }; struct net_bridge; 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 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; }; 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 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 ifconf { int ifc_len; union { char __attribute__((btf_type_tag("user"))) *ifcu_buf; struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req; } ifc_ifcu; }; struct used_address { struct __kernel_sockaddr_storage name; unsigned int name_len; }; 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, }; struct mini_Qdisc_pair { struct mini_Qdisc miniq1; struct mini_Qdisc miniq2; struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; }; typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); struct tcf_block_ext_info { enum flow_block_binder_type binder_type; tcf_chain_head_change_t *chain_head_change; void *chain_head_change_priv; u32 block_index; }; struct ingress_sched_data { struct tcf_block *block; struct tcf_block_ext_info block_info; struct mini_Qdisc_pair miniqp; }; struct clsact_sched_data { struct tcf_block *ingress_block; struct tcf_block *egress_block; struct tcf_block_ext_info ingress_block_info; struct tcf_block_ext_info egress_block_info; struct mini_Qdisc_pair miniqp_ingress; struct mini_Qdisc_pair miniqp_egress; }; struct xdp_umem; struct xsk_queue; 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; u32 heads_cnt; u16 queue_id; long: 16; 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 cached_need_wakeup; bool uses_need_wakeup; bool dma_need_sync; bool unaligned; 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; 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 xdp_desc { __u64 addr; __u32 len; __u32 options; }; 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 { __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 ctattr_timeout_icmpv6 { CTA_TIMEOUT_ICMPV6_UNSPEC = 0, CTA_TIMEOUT_ICMPV6_TIMEOUT = 1, __CTA_TIMEOUT_ICMPV6_MAX = 2, }; struct rd_msg { struct icmp6hdr icmph; struct in6_addr target; struct in6_addr dest; __u8 opt[0]; }; struct mr_table_ops { const struct rhashtable_params *rht_params; void *cmparg_any; }; struct vif_device { struct net_device __attribute__((btf_type_tag("rcu"))) *dev; netdevice_tracker dev_tracker; unsigned long bytes_in; unsigned long bytes_out; unsigned long pkt_in; unsigned long pkt_out; unsigned long rate_limit; unsigned char threshold; unsigned short flags; int link; struct netdev_phys_item_id dev_parent_id; __be32 local; __be32 remote; }; struct mr_table { struct list_head list; possible_net_t net; struct mr_table_ops ops; u32 id; struct sock __attribute__((btf_type_tag("rcu"))) *mroute_sk; struct timer_list ipmr_expire_timer; struct list_head mfc_unres_queue; struct vif_device vif_table[32]; struct rhltable mfc_hash; struct list_head mfc_cache_list; int maxvif; atomic_t cache_resolve_queue_len; bool mroute_do_assert; bool mroute_do_pim; bool mroute_do_wrvifwhole; int mroute_reg_vif_num; }; 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]; }; 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 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 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; 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 uncached_list { spinlock_t lock; struct list_head head; struct list_head quarantine; }; struct fib6_result; typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); struct fib6_result { struct fib6_nh *nh; struct fib6_info *f6i; u32 fib6_flags; u8 fib6_type; struct rt6_info *rt6; }; 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_MAX = 31, }; 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 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 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 ip6rd_flowi { struct flowi6 fl6; struct in6_addr gateway; }; struct rt6_rtnl_dump_arg { struct sk_buff *skb; struct netlink_callback *cb; struct net *net; struct fib_dump_filter filter; }; 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 arg_dev_net_ip { struct net_device *dev; 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 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; int: 32; }; struct fib6_nh_dm_arg { struct net *net; const struct in6_addr *saddr; int oif; int flags; struct fib6_nh *nh; }; typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); struct fib6_gc_args { int timeout; int more; }; struct fib6_nh_match_arg { const struct net_device *dev; const struct in6_addr *gw; struct fib6_nh *match; }; 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; }; 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 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 trace_event_data_offsets_fib6_table_lookup {}; struct fib6_nh_age_excptn_arg { struct fib6_gc_args *gc_args; unsigned long now; }; struct fib6_nh_rd_arg { struct fib6_result *res; struct flowi6 *fl6; const struct in6_addr *gw; struct rt6_info **ret; }; 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_excptn_arg { struct rt6_info *rt; int plen; }; struct devlink_dpipe_header; struct devlink_dpipe_headers { struct devlink_dpipe_header **headers; unsigned int headers_count; }; struct devlink_dpipe_field; struct devlink_dpipe_header { const char *name; unsigned int id; struct devlink_dpipe_field *fields; unsigned int fields_count; bool global; }; enum devlink_dpipe_field_mapping_type { DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, }; struct devlink_dpipe_field { const char *name; unsigned int id; unsigned int bitwidth; enum devlink_dpipe_field_mapping_type mapping_type; }; enum devlink_reload_action { DEVLINK_RELOAD_ACTION_UNSPEC = 0, DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 1, DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 2, __DEVLINK_RELOAD_ACTION_MAX = 3, DEVLINK_RELOAD_ACTION_MAX = 2, }; enum devlink_reload_limit { DEVLINK_RELOAD_LIMIT_UNSPEC = 0, DEVLINK_RELOAD_LIMIT_NO_RESET = 1, __DEVLINK_RELOAD_LIMIT_MAX = 2, DEVLINK_RELOAD_LIMIT_MAX = 1, }; enum devlink_sb_threshold_type { DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, }; enum devlink_sb_pool_type { DEVLINK_SB_POOL_TYPE_INGRESS = 0, DEVLINK_SB_POOL_TYPE_EGRESS = 1, }; enum devlink_eswitch_encap_mode { DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, }; enum devlink_trap_action { DEVLINK_TRAP_ACTION_DROP = 0, DEVLINK_TRAP_ACTION_TRAP = 1, DEVLINK_TRAP_ACTION_MIRROR = 2, }; 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, }; enum devlink_selftest_status { DEVLINK_SELFTEST_STATUS_SKIP = 0, DEVLINK_SELFTEST_STATUS_PASS = 1, DEVLINK_SELFTEST_STATUS_FAIL = 2, }; struct devlink_sb_pool_info; struct devlink_info_req; struct devlink_flash_update_params; struct devlink_trap; struct devlink_trap_group; struct devlink_trap_policer; struct devlink_port_new_attrs; struct devlink_ops { u32 supported_flash_update_params; unsigned long reload_actions; unsigned long reload_limits; int (*reload_down)(struct devlink *, bool, enum devlink_reload_action, enum devlink_reload_limit, struct netlink_ext_ack *); int (*reload_up)(struct devlink *, enum devlink_reload_action, enum devlink_reload_limit, u32 *, struct netlink_ext_ack *); int (*port_type_set)(struct devlink_port *, enum devlink_port_type); 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 (*sb_pool_get)(struct devlink *, unsigned int, u16, struct devlink_sb_pool_info *); int (*sb_pool_set)(struct devlink *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); int (*sb_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *); int (*sb_port_pool_set)(struct devlink_port *, unsigned int, u16, u32, struct netlink_ext_ack *); int (*sb_tc_pool_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); int (*sb_tc_pool_bind_set)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); int (*sb_occ_snapshot)(struct devlink *, unsigned int); int (*sb_occ_max_clear)(struct devlink *, unsigned int); int (*sb_occ_port_pool_get)(struct devlink_port *, unsigned int, u16, u32 *, u32 *); int (*sb_occ_tc_port_bind_get)(struct devlink_port *, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); int (*eswitch_mode_get)(struct devlink *, u16 *); int (*eswitch_mode_set)(struct devlink *, u16, struct netlink_ext_ack *); int (*eswitch_inline_mode_get)(struct devlink *, u8 *); int (*eswitch_inline_mode_set)(struct devlink *, u8, struct netlink_ext_ack *); int (*eswitch_encap_mode_get)(struct devlink *, enum devlink_eswitch_encap_mode *); int (*eswitch_encap_mode_set)(struct devlink *, enum devlink_eswitch_encap_mode, struct netlink_ext_ack *); int (*info_get)(struct devlink *, struct devlink_info_req *, struct netlink_ext_ack *); int (*flash_update)(struct devlink *, struct devlink_flash_update_params *, struct netlink_ext_ack *); int (*trap_init)(struct devlink *, const struct devlink_trap *, void *); void (*trap_fini)(struct devlink *, const struct devlink_trap *, void *); int (*trap_action_set)(struct devlink *, const struct devlink_trap *, enum devlink_trap_action, struct netlink_ext_ack *); int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *); int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *); int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *); int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *); int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *); void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *); int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *); int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *); int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); int (*port_function_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_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *); int (*port_del)(struct devlink *, unsigned int, 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 (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); int (*rate_leaf_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); int (*rate_leaf_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); int (*rate_node_tx_priority_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); int (*rate_node_tx_weight_set)(struct devlink_rate *, void *, u32, struct netlink_ext_ack *); int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *); int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *); int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); bool (*selftest_check)(struct devlink *, unsigned int, struct netlink_ext_ack *); enum devlink_selftest_status (*selftest_run)(struct devlink *, unsigned int, struct netlink_ext_ack *); }; struct devlink_sb_pool_info { enum devlink_sb_pool_type pool_type; u32 size; enum devlink_sb_threshold_type threshold_type; u32 cell_size; }; struct devlink_flash_update_params { const struct firmware *fw; const char *component; u32 overwrite_mask; }; enum devlink_trap_type { DEVLINK_TRAP_TYPE_DROP = 0, DEVLINK_TRAP_TYPE_EXCEPTION = 1, DEVLINK_TRAP_TYPE_CONTROL = 2, }; struct devlink_trap { enum devlink_trap_type type; enum devlink_trap_action init_action; bool generic; u16 id; const char *name; u16 init_group_id; u32 metadata_cap; }; struct devlink_trap_group { const char *name; u16 id; bool generic; u32 init_policer_id; }; struct devlink_trap_policer { u32 id; u64 init_rate; u64 init_burst; u64 max_rate; u64 min_rate; u64 max_burst; u64 min_burst; }; struct devlink_port_new_attrs { enum devlink_port_flavour flavour; unsigned int port_index; u32 controller; u32 sfnum; u16 pfnum; u8 port_index_valid: 1; u8 controller_valid: 1; u8 sfnum_valid: 1; }; struct xa_limit { u32 max; u32 min; }; struct rpc_sysfs_xprt_switch { struct kobject kobject; struct net *net; struct rpc_xprt_switch *xprt_switch; struct rpc_xprt *xprt; }; struct rpc_sysfs_xprt { struct kobject kobject; struct rpc_xprt *xprt; struct rpc_xprt_switch *xprt_switch; }; enum rpc_display_format_t { RPC_DISPLAY_ADDR = 0, RPC_DISPLAY_PORT = 1, RPC_DISPLAY_PROTO = 2, RPC_DISPLAY_HEX_ADDR = 3, RPC_DISPLAY_HEX_PORT = 4, RPC_DISPLAY_NETID = 5, RPC_DISPLAY_MAX = 6, }; typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); struct radix_tree_preload { local_lock_t lock; unsigned int nr; struct xa_node *nodes; }; struct uuidcmp { const char *uuid; int len; }; struct audit_rule_data { __u32 flags; __u32 action; __u32 field_count; __u32 mask[64]; __u32 fields[64]; __u32 values[64]; __u32 fieldflags[64]; __u32 buflen; char buf[0]; }; struct audit_netlink_list { __u32 portid; struct net *net; struct sk_buff_head q; }; 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); 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_data_offsets_rpm_internal { u32 name; }; struct trace_event_data_offsets_rpm_return_int { u32 name; }; 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, }; struct btf_array { __u32 type; __u32 index_type; __u32 nelems; }; struct btf_param { __u32 name_off; __u32 type; }; struct btf_enum { __u32 name_off; __s32 val; }; struct btf_enum64 { __u32 name_off; __u32 val_lo32; __u32 val_hi32; }; 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 { __u32 insn_off; __u32 type_id; __u32 access_str_off; enum bpf_core_relo_kind kind; }; 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_cand; struct bpf_core_cand_list { struct bpf_core_cand *cands; int len; }; struct bpf_core_cand { const struct btf *btf; __u32 id; }; struct static_call_tramp_key { s32 tramp; s32 key; }; 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_callchain_entry_ctx { struct perf_callchain_entry *entry; u32 max_stack; u32 nr; short contexts; bool contexts_maxed; }; 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 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; }; struct trace_event_data_offsets_mmap_lock_acquire_returned { u32 memcg_path; }; enum { MM_FILEPAGES = 0, MM_ANONPAGES = 1, MM_SWAPENTS = 2, MM_SHMEMPAGES = 3, NR_MM_COUNTERS = 4, }; enum { PERCPU_REF_INIT_ATOMIC = 1, PERCPU_REF_INIT_DEAD = 2, PERCPU_REF_ALLOW_REINIT = 4, }; 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 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]; }; struct prepend_buffer { char *buf; int len; }; 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]; }; enum { PROC_ENTRY_PERMANENT = 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; }; 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, }; 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 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 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 fsmap { __u32 fmr_device; __u32 fmr_flags; __u64 fmr_physical; __u64 fmr_owner; __u64 fmr_offset; __u64 fmr_length; __u64 fmr_reserved[3]; }; 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 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; }; 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 fsuuid { __u32 fsu_len; __u32 fsu_flags; __u8 fsu_uuid[0]; }; typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); struct compat_ext4_new_group_input { u32 group; compat_u64 block_bitmap; compat_u64 inode_bitmap; compat_u64 inode_table; u32 blocks_count; u16 reserved_blocks; u16 unused; } __attribute__((packed)); enum isofs_file_format { isofs_file_normal = 0, isofs_file_sparse = 1, isofs_file_compressed = 2, }; 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 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 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 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 { NFSPROC4_CLNT_NULL = 0, NFSPROC4_CLNT_READ = 1, NFSPROC4_CLNT_WRITE = 2, NFSPROC4_CLNT_COMMIT = 3, NFSPROC4_CLNT_OPEN = 4, NFSPROC4_CLNT_OPEN_CONFIRM = 5, NFSPROC4_CLNT_OPEN_NOATTR = 6, NFSPROC4_CLNT_OPEN_DOWNGRADE = 7, NFSPROC4_CLNT_CLOSE = 8, NFSPROC4_CLNT_SETATTR = 9, NFSPROC4_CLNT_FSINFO = 10, NFSPROC4_CLNT_RENEW = 11, NFSPROC4_CLNT_SETCLIENTID = 12, NFSPROC4_CLNT_SETCLIENTID_CONFIRM = 13, NFSPROC4_CLNT_LOCK = 14, NFSPROC4_CLNT_LOCKT = 15, NFSPROC4_CLNT_LOCKU = 16, NFSPROC4_CLNT_ACCESS = 17, NFSPROC4_CLNT_GETATTR = 18, NFSPROC4_CLNT_LOOKUP = 19, NFSPROC4_CLNT_LOOKUP_ROOT = 20, NFSPROC4_CLNT_REMOVE = 21, NFSPROC4_CLNT_RENAME = 22, NFSPROC4_CLNT_LINK = 23, NFSPROC4_CLNT_SYMLINK = 24, NFSPROC4_CLNT_CREATE = 25, NFSPROC4_CLNT_PATHCONF = 26, NFSPROC4_CLNT_STATFS = 27, NFSPROC4_CLNT_READLINK = 28, NFSPROC4_CLNT_READDIR = 29, NFSPROC4_CLNT_SERVER_CAPS = 30, NFSPROC4_CLNT_DELEGRETURN = 31, NFSPROC4_CLNT_GETACL = 32, NFSPROC4_CLNT_SETACL = 33, NFSPROC4_CLNT_FS_LOCATIONS = 34, NFSPROC4_CLNT_RELEASE_LOCKOWNER = 35, NFSPROC4_CLNT_SECINFO = 36, NFSPROC4_CLNT_FSID_PRESENT = 37, NFSPROC4_CLNT_EXCHANGE_ID = 38, NFSPROC4_CLNT_CREATE_SESSION = 39, NFSPROC4_CLNT_DESTROY_SESSION = 40, NFSPROC4_CLNT_SEQUENCE = 41, NFSPROC4_CLNT_GET_LEASE_TIME = 42, NFSPROC4_CLNT_RECLAIM_COMPLETE = 43, NFSPROC4_CLNT_LAYOUTGET = 44, NFSPROC4_CLNT_GETDEVICEINFO = 45, NFSPROC4_CLNT_LAYOUTCOMMIT = 46, NFSPROC4_CLNT_LAYOUTRETURN = 47, NFSPROC4_CLNT_SECINFO_NO_NAME = 48, NFSPROC4_CLNT_TEST_STATEID = 49, NFSPROC4_CLNT_FREE_STATEID = 50, NFSPROC4_CLNT_GETDEVICELIST = 51, NFSPROC4_CLNT_BIND_CONN_TO_SESSION = 52, NFSPROC4_CLNT_DESTROY_CLIENTID = 53, NFSPROC4_CLNT_SEEK = 54, NFSPROC4_CLNT_ALLOCATE = 55, NFSPROC4_CLNT_DEALLOCATE = 56, NFSPROC4_CLNT_LAYOUTSTATS = 57, NFSPROC4_CLNT_CLONE = 58, NFSPROC4_CLNT_COPY = 59, NFSPROC4_CLNT_OFFLOAD_CANCEL = 60, NFSPROC4_CLNT_LOOKUPP = 61, NFSPROC4_CLNT_LAYOUTERROR = 62, NFSPROC4_CLNT_COPY_NOTIFY = 63, NFSPROC4_CLNT_GETXATTR = 64, NFSPROC4_CLNT_SETXATTR = 65, NFSPROC4_CLNT_LISTXATTRS = 66, NFSPROC4_CLNT_REMOVEXATTR = 67, NFSPROC4_CLNT_READ_PLUS = 68, }; enum nfs4_slot_tbl_state { NFS4_SLOT_TBL_DRAINING = 0, }; struct nfs4_cached_acl { enum nfs4_acl_type type; int cached; size_t len; char data[0]; }; struct nfs4_layoutget; struct nfs4_opendata { struct kref kref; struct nfs_openargs o_arg; struct nfs_openres o_res; struct nfs_open_confirmargs c_arg; struct nfs_open_confirmres c_res; struct nfs4_string owner_name; struct nfs4_string group_name; struct nfs4_label *a_label; struct nfs_fattr f_attr; struct dentry *dir; struct dentry *dentry; struct nfs4_state_owner *owner; struct nfs4_state *state; struct iattr attrs; struct nfs4_layoutget *lgp; unsigned long timestamp; bool rpc_done; bool file_created; bool is_recover; bool cancelled; int rpc_status; }; struct nfs4_layoutget { struct nfs4_layoutget_args args; struct nfs4_layoutget_res res; const struct cred *cred; struct pnfs_layout_hdr *lo; gfp_t gfp_flags; }; struct nfs4_get_lease_time_data { struct nfs4_get_lease_time_args *args; struct nfs4_get_lease_time_res *res; struct nfs_client *clp; }; typedef void (*rpc_action)(struct rpc_task *); struct nfs4_call_sync_data { const struct nfs_server *seq_server; struct nfs4_sequence_args *seq_args; struct nfs4_sequence_res *seq_res; }; struct cache_detail { struct module *owner; int hash_size; struct hlist_head *hash_table; spinlock_t hash_lock; char *name; void (*cache_put)(struct kref *); int (*cache_upcall)(struct cache_detail *, struct cache_head *); void (*cache_request)(struct cache_detail *, struct cache_head *, char **, int *); int (*cache_parse)(struct cache_detail *, char *, int); int (*cache_show)(struct seq_file *, struct cache_detail *, struct cache_head *); void (*warn_no_listener)(struct cache_detail *, int); struct cache_head * (*alloc)(); void (*flush)(); int (*match)(struct cache_head *, struct cache_head *); void (*init)(struct cache_head *, struct cache_head *); void (*update)(struct cache_head *, struct cache_head *); time64_t flush_time; struct list_head others; time64_t nextcheck; int entries; struct list_head queue; atomic_t writers; time64_t last_close; time64_t last_warn; union { struct proc_dir_entry *procfs; struct dentry *pipefs; }; struct net *net; }; struct nfs4_delegreturndata { struct nfs4_delegreturnargs args; struct nfs4_delegreturnres res; struct nfs_fh fh; nfs4_stateid stateid; unsigned long timestamp; struct { struct nfs4_layoutreturn_args arg; struct nfs4_layoutreturn_res res; struct nfs4_xdr_opaque_data ld_private; u32 roc_barrier; bool roc; } lr; struct nfs_fattr fattr; int rpc_status; struct inode *inode; }; struct nfs4_lockdata { struct nfs_lock_args arg; struct nfs_lock_res res; struct nfs4_lock_state *lsp; struct nfs_open_context *ctx; struct file_lock fl; unsigned long timestamp; int rpc_status; int cancelled; struct nfs_server *server; }; struct nfs4_exception { struct nfs4_state *state; struct inode *inode; nfs4_stateid *stateid; long timeout; unsigned char task_is_privileged: 1; unsigned char delay: 1; unsigned char recovering: 1; unsigned char retry: 1; bool interruptible; }; struct nfs4_createdata { struct rpc_message msg; struct nfs4_create_arg arg; struct nfs4_create_res res; struct nfs_fh fh; struct nfs_fattr fattr; }; struct nfs4_unlockdata { struct nfs_locku_args arg; struct nfs_locku_res res; struct nfs4_lock_state *lsp; struct nfs_open_context *ctx; struct nfs_lock_context *l_ctx; struct file_lock fl; struct nfs_server *server; unsigned long timestamp; }; struct nfs4_open_createattrs { struct nfs4_label *label; struct iattr *sattr; const __u32 verf[2]; }; struct nfs4_closedata { struct inode *inode; struct nfs4_state *state; struct nfs_closeargs arg; struct nfs_closeres res; struct { struct nfs4_layoutreturn_args arg; struct nfs4_layoutreturn_res res; struct nfs4_xdr_opaque_data ld_private; u32 roc_barrier; bool roc; } lr; struct nfs_fattr fattr; unsigned long timestamp; }; struct nfs_release_lockowner_res { struct nfs4_sequence_res seq_res; }; struct nfs_release_lockowner_data { struct nfs4_lock_state *lsp; struct nfs_server *server; struct nfs_release_lockowner_args args; struct nfs_release_lockowner_res res; unsigned long timestamp; }; struct nfs4_renewdata { struct nfs_client *client; unsigned long timestamp; }; 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; }; typedef enum { ACPI_TRACE_AML_METHOD = 0, ACPI_TRACE_AML_OPCODE = 1, ACPI_TRACE_AML_REGION = 2, } acpi_trace_event_type; 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; 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; char read_buf[4096]; unsigned long read_flags[64]; unsigned char 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; }; struct pci1xxxx_8250 { unsigned int nr; void *membase; int line[0]; }; struct drm_mm_scan { struct drm_mm *mm; u64 size; u64 alignment; u64 remainder_mask; u64 range_start; u64 range_end; u64 hit_start; u64 hit_end; unsigned long color; enum drm_mm_insert_mode mode; }; struct panel_bridge { struct drm_bridge bridge; struct drm_connector connector; struct drm_panel *panel; u32 connector_type; }; struct drm_i915_gem_caching { __u32 handle; __u32 caching; }; struct drm_i915_gem_set_domain { __u32 handle; __u32 read_domains; __u32 write_domain; }; struct drm_i915_query_item { __u64 query_id; __s32 length; __u32 flags; __u64 data_ptr; }; struct i915_engine_class_instance { __u16 engine_class; __u16 engine_instance; }; struct drm_i915_query_perf_config { union { __u64 n_configs; __u64 config; char uuid[36]; }; __u32 flags; __u8 data[0]; }; struct drm_i915_query { __u32 num_items; __u32 flags; __u64 items_ptr; }; struct drm_i915_engine_info { struct i915_engine_class_instance engine; __u32 rsvd0; __u64 flags; __u64 capabilities; __u16 logical_instance; __u16 rsvd1[3]; __u64 rsvd2[3]; }; struct drm_i915_query_engine_info { __u32 num_engines; __u32 rsvd[3]; struct drm_i915_engine_info engines[0]; }; struct drm_i915_gem_memory_class_instance { __u16 memory_class; __u16 memory_instance; }; struct drm_i915_memory_region_info { struct drm_i915_gem_memory_class_instance region; __u32 rsvd0; __u64 probed_size; __u64 unallocated_size; union { __u64 rsvd1[8]; struct { __u64 probed_cpu_visible_size; __u64 unallocated_cpu_visible_size; }; }; }; struct drm_i915_query_memory_regions { __u32 num_regions; __u32 rsvd[3]; struct drm_i915_memory_region_info regions[0]; }; struct drm_i915_query_topology_info { __u16 flags; __u16 max_slices; __u16 max_subslices; __u16 max_eus_per_subslice; __u16 subslice_offset; __u16 subslice_stride; __u16 eu_offset; __u16 eu_stride; __u8 data[0]; }; struct drm_i915_perf_oa_config { char uuid[36]; __u32 n_mux_regs; __u32 n_boolean_regs; __u32 n_flex_regs; __u64 mux_regs_ptr; __u64 boolean_regs_ptr; __u64 flex_regs_ptr; }; struct hwmon_ops; struct hwmon_channel_info; struct hwmon_chip_info { const struct hwmon_ops *ops; const struct hwmon_channel_info **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 sensor_device_attribute { struct device_attribute dev_attr; int index; }; struct hwm_energy_info { u32 reg_val_prev; long accum_energy; }; struct hwm_drvdata { struct i915_hwmon *hwmon; struct intel_uncore *uncore; struct device *hwmon_dev; struct hwm_energy_info ei; char name[12]; int gt_n; }; struct hwm_reg { i915_reg_t gt_perf_status; i915_reg_t pkg_power_sku_unit; i915_reg_t pkg_power_sku; i915_reg_t pkg_rapl_limit; i915_reg_t energy_status_all; i915_reg_t energy_status_tile; }; struct i915_hwmon { struct hwm_drvdata ddat; struct hwm_drvdata ddat_gt[4]; struct mutex hwmon_lock; struct hwm_reg rg; int scl_shift_power; int scl_shift_energy; int scl_shift_time; }; enum hwmon_energy_attributes { hwmon_energy_enable = 0, hwmon_energy_input = 1, hwmon_energy_label = 2, }; 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, }; 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_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, }; struct intel_fbc_funcs { void (*activate)(struct intel_fbc *); void (*deactivate)(struct intel_fbc *); bool (*is_active)(struct intel_fbc *); bool (*is_compressing)(struct intel_fbc *); void (*nuke)(struct intel_fbc *); void (*program_cfb)(struct intel_fbc *); void (*set_false_color)(struct intel_fbc *, bool); }; struct intel_fbc_state { struct intel_plane *plane; unsigned int cfb_stride; unsigned int cfb_size; unsigned int fence_y_offset; u16 override_cfb_stride; u16 interval; s8 fence_id; }; struct intel_fbc { struct drm_i915_private *i915; const struct intel_fbc_funcs *funcs; struct mutex lock; unsigned int busy_bits; struct drm_mm_node compressed_fb; struct drm_mm_node compressed_llb; enum intel_fbc_id id; u8 limit; bool false_color; bool active; bool activated; bool flip_pending; bool underrun_detected; struct work_struct underrun_work; struct intel_fbc_state state; const char *no_fbc_reason; }; struct ns2501_reg { u8 offset; u8 value; }; struct ns2501_configuration { u8 sync; u8 conf; u8 syncb; u8 dither; u8 pll_a; u16 pll_b; u16 hstart; u16 hstop; u16 vstart; u16 vstop; u16 vsync; u16 vtotal; u16 hpos; u16 vpos; u16 voffs; u16 hscale; u16 vscale; }; enum { MODE_640x480 = 0, MODE_800x600 = 1, MODE_1024x768 = 2, }; struct ns2501_priv { bool quiet; const struct ns2501_configuration *conf; }; enum intel_dp_aux_backlight_modparam { INTEL_DP_AUX_BACKLIGHT_AUTO = -1, INTEL_DP_AUX_BACKLIGHT_OFF = 0, INTEL_DP_AUX_BACKLIGHT_ON = 1, INTEL_DP_AUX_BACKLIGHT_FORCE_VESA = 2, INTEL_DP_AUX_BACKLIGHT_FORCE_INTEL = 3, }; struct virtio_gpu_fpriv { uint32_t ctx_id; uint32_t context_init; bool context_created; uint32_t num_rings; uint64_t base_fence_ctx; uint64_t ring_idx_mask; struct mutex context_lock; }; struct subsys_dev_iter { struct klist_iter ki; const struct device_type *type; }; enum nsim_resource_id { NSIM_RESOURCE_NONE = 0, NSIM_RESOURCE_IPV4 = 1, NSIM_RESOURCE_IPV4_FIB = 2, NSIM_RESOURCE_IPV4_FIB_RULES = 3, NSIM_RESOURCE_IPV6 = 4, NSIM_RESOURCE_IPV6_FIB = 5, NSIM_RESOURCE_IPV6_FIB_RULES = 6, NSIM_RESOURCE_NEXTHOPS = 7, }; struct nsim_fib_entry { u64 max; atomic64_t num; }; struct nsim_per_fib_data { struct nsim_fib_entry fib; struct nsim_fib_entry rules; }; struct nsim_fib_data { struct notifier_block fib_nb; struct nsim_per_fib_data ipv4; struct nsim_per_fib_data ipv6; struct nsim_fib_entry nexthops; struct rhashtable fib_rt_ht; struct list_head fib_rt_list; struct mutex fib_lock; struct notifier_block nexthop_nb; struct rhashtable nexthop_ht; struct devlink *devlink; struct work_struct fib_event_work; struct work_struct fib_flush_work; struct list_head fib_event_queue; spinlock_t fib_event_queue_lock; struct mutex nh_lock; struct dentry *ddir; bool fail_route_offload; bool fail_res_nexthop_group_replace; bool fail_nexthop_bucket_replace; bool fail_route_delete; }; struct nsim_fib6_event { struct fib6_info **rt_arr; unsigned int nrt6; }; struct nsim_fib_event { struct list_head list; union { struct fib_entry_notifier_info fen_info; struct nsim_fib6_event fib6_event; }; struct nsim_fib_data *data; unsigned long event; int family; }; struct nsim_fib_rt_key { unsigned char addr[16]; unsigned char prefix_len; int family; u32 tb_id; }; struct nsim_fib_rt { struct nsim_fib_rt_key key; struct rhash_head ht_node; struct list_head list; }; struct nsim_fib4_rt { struct nsim_fib_rt common; struct fib_info *fi; dscp_t dscp; u8 type; }; struct nsim_fib6_rt_nh { struct list_head list; struct fib6_info *rt; }; struct nsim_fib6_rt { struct nsim_fib_rt common; struct list_head nh_list; unsigned int nhs; }; struct fib6_entry_notifier_info { struct fib_notifier_info info; struct fib6_info *rt; unsigned int nsiblings; }; typedef u64 devlink_resource_occ_get_t(void *); struct nsim_nexthop { struct rhash_head ht_node; u64 occ; u32 id; bool is_resilient; }; 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_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 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; u8 bandwidth[64]; u8 tt_budget[64]; struct list_head tt_list; unsigned long priv[0]; }; 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: 32; 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; }; struct touchscreen_properties { unsigned int max_x; unsigned int max_y; bool invert_x; bool invert_y; bool swap_x_y; }; struct input_mt_pos { s16 x; s16 y; }; 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 i2c_smbus_alert_setup { int irq; }; 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 {}; struct dmi_device_attribute { struct device_attribute dev_attr; int field; }; struct mafield { const char *prefix; int field; }; 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 acpi_generic_address; 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; }; 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 acpi_generic_address { u8 space_id; u8 bit_width; u8 bit_offset; u8 access_width; u64 address; } __attribute__((packed)); 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)); struct action_ops { int (*pre_action)(struct snd_pcm_substream *, snd_pcm_state_t); int (*do_action)(struct snd_pcm_substream *, snd_pcm_state_t); void (*undo_action)(struct snd_pcm_substream *, snd_pcm_state_t); void (*post_action)(struct snd_pcm_substream *, snd_pcm_state_t); }; enum { SNDRV_TIMER_EVENT_RESOLUTION = 0, SNDRV_TIMER_EVENT_TICK = 1, SNDRV_TIMER_EVENT_START = 2, SNDRV_TIMER_EVENT_STOP = 3, SNDRV_TIMER_EVENT_CONTINUE = 4, SNDRV_TIMER_EVENT_PAUSE = 5, SNDRV_TIMER_EVENT_EARLY = 6, SNDRV_TIMER_EVENT_SUSPEND = 7, SNDRV_TIMER_EVENT_RESUME = 8, SNDRV_TIMER_EVENT_MSTART = 12, SNDRV_TIMER_EVENT_MSTOP = 13, SNDRV_TIMER_EVENT_MCONTINUE = 14, SNDRV_TIMER_EVENT_MPAUSE = 15, SNDRV_TIMER_EVENT_MSUSPEND = 17, SNDRV_TIMER_EVENT_MRESUME = 18, }; enum { SNDRV_PCM_IOCTL_HW_REFINE32 = 3260825872, SNDRV_PCM_IOCTL_HW_PARAMS32 = 3260825873, SNDRV_PCM_IOCTL_SW_PARAMS32 = 3228057875, SNDRV_PCM_IOCTL_STATUS_COMPAT32 = 2154578208, SNDRV_PCM_IOCTL_STATUS_EXT_COMPAT32 = 3228320036, SNDRV_PCM_IOCTL_DELAY32 = 2147762465, SNDRV_PCM_IOCTL_CHANNEL_INFO32 = 2148548914, SNDRV_PCM_IOCTL_REWIND32 = 1074020678, SNDRV_PCM_IOCTL_FORWARD32 = 1074020681, SNDRV_PCM_IOCTL_WRITEI_FRAMES32 = 1074544976, SNDRV_PCM_IOCTL_READI_FRAMES32 = 2148286801, SNDRV_PCM_IOCTL_WRITEN_FRAMES32 = 1074544978, SNDRV_PCM_IOCTL_READN_FRAMES32 = 2148286803, SNDRV_PCM_IOCTL_STATUS_COMPAT64 = 2155888928, SNDRV_PCM_IOCTL_STATUS_EXT_COMPAT64 = 3229630756, }; enum { SNDRV_PCM_MMAP_OFFSET_DATA = 0, SNDRV_PCM_MMAP_OFFSET_STATUS_OLD = 2147483648, SNDRV_PCM_MMAP_OFFSET_CONTROL_OLD = 2164260864, SNDRV_PCM_MMAP_OFFSET_STATUS_NEW = 2181038080, SNDRV_PCM_MMAP_OFFSET_CONTROL_NEW = 2197815296, SNDRV_PCM_MMAP_OFFSET_STATUS = 2181038080, SNDRV_PCM_MMAP_OFFSET_CONTROL = 2197815296, }; typedef char __pad_before_u32[0]; struct __snd_pcm_mmap_control64_buggy { __pad_before_u32 __pad1; __u32 appl_ptr; __pad_before_u32 __pad2; __pad_before_u32 __pad3; __u32 avail_min; __pad_after_uframe __pad4; }; struct snd_pcm_info { unsigned int device; unsigned int subdevice; int stream; int card; unsigned char id[64]; unsigned char name[80]; unsigned char subname[32]; int dev_class; int dev_subclass; unsigned int subdevices_count; unsigned int subdevices_avail; union snd_pcm_sync_id sync; unsigned char reserved[64]; }; struct snd_pcm_file { struct snd_pcm_substream *substream; int no_compat_mmap; unsigned int user_pversion; }; struct snd_pcm_hw_params_old { unsigned int flags; unsigned int masks[3]; struct snd_interval intervals[12]; unsigned int rmask; unsigned int cmask; unsigned int info; unsigned int msbits; unsigned int rate_num; unsigned int rate_den; snd_pcm_uframes_t fifo_size; unsigned char reserved[64]; }; struct snd_pcm_status64 { snd_pcm_state_t state; u8 rsvd[4]; s64 trigger_tstamp_sec; s64 trigger_tstamp_nsec; s64 tstamp_sec; s64 tstamp_nsec; snd_pcm_uframes_t appl_ptr; snd_pcm_uframes_t hw_ptr; snd_pcm_sframes_t delay; snd_pcm_uframes_t avail; snd_pcm_uframes_t avail_max; snd_pcm_uframes_t overrange; snd_pcm_state_t suspended_state; __u32 audio_tstamp_data; s64 audio_tstamp_sec; s64 audio_tstamp_nsec; s64 driver_tstamp_sec; s64 driver_tstamp_nsec; __u32 audio_tstamp_accuracy; unsigned char reserved[20]; }; struct snd_pcm_sw_params { int tstamp_mode; unsigned int period_step; unsigned int sleep_min; snd_pcm_uframes_t avail_min; snd_pcm_uframes_t xfer_align; snd_pcm_uframes_t start_threshold; snd_pcm_uframes_t stop_threshold; snd_pcm_uframes_t silence_threshold; snd_pcm_uframes_t silence_size; snd_pcm_uframes_t boundary; unsigned int proto; unsigned int tstamp_type; unsigned char reserved[56]; }; struct snd_pcm_status32 { snd_pcm_state_t state; s32 trigger_tstamp_sec; s32 trigger_tstamp_nsec; s32 tstamp_sec; s32 tstamp_nsec; u32 appl_ptr; u32 hw_ptr; s32 delay; u32 avail; u32 avail_max; u32 overrange; snd_pcm_state_t suspended_state; u32 audio_tstamp_data; s32 audio_tstamp_sec; s32 audio_tstamp_nsec; s32 driver_tstamp_sec; s32 driver_tstamp_nsec; u32 audio_tstamp_accuracy; unsigned char reserved[36]; }; struct snd_pcm_mmap_status32 { snd_pcm_state_t state; s32 pad1; u32 hw_ptr; s32 tstamp_sec; s32 tstamp_nsec; snd_pcm_state_t suspended_state; s32 audio_tstamp_sec; s32 audio_tstamp_nsec; }; struct snd_pcm_mmap_control32 { u32 appl_ptr; u32 avail_min; }; struct snd_pcm_sync_ptr32 { u32 flags; union { struct snd_pcm_mmap_status32 status; unsigned char reserved[64]; } s; union { struct snd_pcm_mmap_control32 control; unsigned char reserved[64]; } c; }; struct snd_pcm_sync_ptr { __u32 flags; __u32 pad1; union { struct snd_pcm_mmap_status status; unsigned char reserved[64]; } s; union { struct snd_pcm_mmap_control control; unsigned char reserved[64]; } c; }; struct snd_xferi { snd_pcm_sframes_t result; void __attribute__((btf_type_tag("user"))) *buf; snd_pcm_uframes_t frames; }; struct snd_xfern { snd_pcm_sframes_t result; void __attribute__((btf_type_tag("user"))) * __attribute__((btf_type_tag("user"))) *bufs; snd_pcm_uframes_t frames; }; struct snd_pcm_hw_params32 { u32 flags; struct snd_mask masks[3]; struct snd_mask mres[5]; struct snd_interval intervals[12]; struct snd_interval ires[9]; u32 rmask; u32 cmask; u32 info; u32 msbits; u32 rate_num; u32 rate_den; u32 fifo_size; unsigned char reserved[64]; }; struct snd_pcm_sw_params32 { s32 tstamp_mode; u32 period_step; u32 sleep_min; u32 avail_min; u32 xfer_align; u32 start_threshold; u32 stop_threshold; u32 silence_threshold; u32 silence_size; u32 boundary; u32 proto; u32 tstamp_type; unsigned char reserved[56]; }; struct snd_pcm_channel_info32 { u32 channel; u32 offset; u32 first; u32 step; }; struct snd_xferi32 { s32 result; u32 buf; u32 frames; }; struct snd_xfern32 { s32 result; u32 bufs; u32 frames; }; struct compat_snd_pcm_status64 { snd_pcm_state_t state; u8 rsvd[4]; s64 trigger_tstamp_sec; s64 trigger_tstamp_nsec; s64 tstamp_sec; s64 tstamp_nsec; u32 appl_ptr; u32 hw_ptr; s32 delay; u32 avail; u32 avail_max; u32 overrange; snd_pcm_state_t suspended_state; u32 audio_tstamp_data; s64 audio_tstamp_sec; s64 audio_tstamp_nsec; s64 driver_tstamp_sec; s64 driver_tstamp_nsec; u32 audio_tstamp_accuracy; unsigned char reserved[20]; }; struct netdev_name_node { struct hlist_node hlist; struct list_head list; struct net_device *dev; const char *name; }; 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 { 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; }; enum { NF_BPF_CT_OPTS_SZ = 12, }; enum { BPF_F_CURRENT_NETNS = -1, }; struct nf_conn___init { struct nf_conn ct; }; 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; }; }; struct bpf_ct_opts { s32 netns_id; s32 error; u8 l4proto; u8 dir; u8 reserved[2]; }; enum sk_action { SK_DROP = 0, SK_PASS = 1, }; 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; }; enum { INET_FRAG_FIRST_IN = 1, INET_FRAG_LAST_IN = 2, INET_FRAG_COMPLETE = 4, INET_FRAG_HASH_DEAD = 8, INET_FRAG_DROP = 16, }; struct ipfrag_skb_cb { union { struct inet_skb_parm h4; struct inet6_skb_parm h6; }; struct sk_buff *next_frag; int frag_run_len; }; 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; }; 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 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 frag_hdr { __u8 nexthdr; __u8 reserved; __be16 frag_off; __be32 identification; }; 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 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; }; 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 ip6_fraglist_iter { struct ipv6hdr *tmp_hdr; struct sk_buff *frag; int offset; unsigned int hlen; __be32 frag_id; u8 nexthdr; }; struct hop_jumbo_hdr { u8 nexthdr; u8 hdrlen; u8 tlv_type; u8 tlv_len; __be32 jumbo_payload_len; }; struct ip6_ra_chain { struct ip6_ra_chain *next; struct sock *sk; int sel; void (*destructor)(struct sock *); }; 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 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; }; 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 ip6t_error { struct ip6t_entry entry; struct xt_error_target target; }; struct compat_ip6t_entry { struct ip6t_ip6 ipv6; compat_uint_t nfcache; __u16 target_offset; __u16 next_offset; compat_uint_t comefrom; struct compat_xt_counters counters; unsigned char elems[0]; } __attribute__((packed)); struct ip6t_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 ip6t_entry entries[0]; }; struct ip6t_standard { struct ip6t_entry entry; struct xt_standard_target target; }; struct compat_ip6t_replace { char name[32]; u32 valid_hooks; u32 num_entries; u32 size; u32 hook_entry[5]; u32 underflow[5]; u32 num_counters; compat_uptr_t counters; struct compat_ip6t_entry entries[0]; } __attribute__((packed)); struct ip6t_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 ip6t_get_entries { char name[32]; unsigned int size; struct ip6t_entry entrytable[0]; }; struct compat_ip6t_get_entries { char name[32]; compat_uint_t size; struct compat_ip6t_entry entrytable[0]; } __attribute__((packed)); struct xt_get_revision { char name[29]; __u8 revision; }; struct ip6t_icmp { __u8 type; __u8 code[2]; __u8 invflags; }; enum rpc_msg_type { RPC_CALL = 0, RPC_REPLY = 1, }; 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 sock_xprt { struct rpc_xprt xprt; struct socket *sock; struct sock *inet; struct file *file; struct { struct { __be32 fraghdr; __be32 xid; __be32 calldir; }; u32 offset; u32 len; unsigned long copied; } recv; struct { u32 offset; } xmit; unsigned long sock_state; struct delayed_work connect_worker; struct work_struct error_worker; struct work_struct recv_worker; struct mutex recv_mutex; struct __kernel_sockaddr_storage srcaddr; unsigned short srcport; int xprt_err; size_t rcvsize; size_t sndsize; struct rpc_timeout tcp_timeout; void (*old_data_ready)(struct sock *); void (*old_state_change)(struct sock *); void (*old_write_space)(struct sock *); void (*old_error_report)(struct sock *); }; struct svc_sock { struct svc_xprt sk_xprt; struct socket *sk_sock; struct sock *sk_sk; void (*sk_ostate)(struct sock *); void (*sk_odata)(struct sock *); void (*sk_owspace)(struct sock *); __be32 sk_marker; u32 sk_tcplen; u32 sk_datalen; atomic_t sk_sendqlen; struct page *sk_pages[259]; }; struct rpc_buffer { size_t len; char data[0]; }; typedef __be32 rpc_fraghdr; 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, }; 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_timeout_reason { NL80211_TIMEOUT_UNSPECIFIED = 0, NL80211_TIMEOUT_SCAN = 1, NL80211_TIMEOUT_AUTH = 2, NL80211_TIMEOUT_ASSOC = 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, }; 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 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, }; 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 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 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, }; 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 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 bssid[6]; const u8 *td_bitmap; u8 td_bitmap_len; } pa; }; }; struct ieee80211s_hdr { u8 flags; u8 ttl; __le32 seqnum; u8 eaddr1[6]; u8 eaddr2[6]; } __attribute__((packed)); struct mpls_label { __be32 entry; }; struct iface_combination_params { int num_different_channels; u8 radar_detect; int iftype_num[13]; u32 new_beacon_int; }; struct iapp_layer2_update { u8 da[6]; u8 sa[6]; __be16 len; u8 dsap; u8 ssap; u8 control; u8 xid_info[3]; }; 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 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 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_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 txq_info_flags { IEEE80211_TXQ_STOP = 0, IEEE80211_TXQ_AMPDU = 1, IEEE80211_TXQ_NO_AMSDU = 2, IEEE80211_TXQ_DIRTY = 3, }; 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 { USE_NONE = 0, USE_MGMT_KEY = 1, USE_MCAST_KEY = 2, }; 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; 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; }; 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_mutable_offsets { u16 tim_offset; u16 tim_length; u16 cntdwn_counter_offs[2]; u16 mbssid_off; }; 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; bool is_root; bool is_gate; u32 path_change_count; }; 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 ieee80211_rts { __le16 frame_control; __le16 duration; u8 ra[6]; u8 ta[6]; }; struct ieee80211_cts { __le16 frame_control; __le16 duration; u8 ra[6]; }; struct mptcp_skb_cb { u64 map_seq; u64 end_seq; u32 offset; u8 has_rxtstamp: 1; }; struct mptcp_options_received { u64 sndr_key; u64 rcvr_key; u64 data_ack; u64 data_seq; u32 subflow_seq; u16 data_len; __sum16 csum; u16 suboptions; u32 token; u32 nonce; u16 use_map: 1; u16 dsn64: 1; u16 data_fin: 1; u16 use_ack: 1; u16 ack64: 1; u16 mpc_map: 1; u16 reset_reason: 4; u16 reset_transient: 1; u16 echo: 1; u16 backup: 1; u16 deny_join_id0: 1; u16 __unused: 2; u8 join_id; u64 thmac; u8 hmac[20]; struct mptcp_addr_info addr; struct mptcp_rm_list rm_list; u64 ahmac; u64 fail_seq; }; struct idt_data { unsigned int vector; unsigned int segment; struct idt_bits bits; const void *addr; }; enum { GATE_INTERRUPT = 14, GATE_TRAP = 15, GATE_CALL = 12, GATE_TASK = 5, }; 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_threshold_apic_entry)(void *, int); typedef void (*btf_trace_threshold_apic_exit)(void *, int); typedef void (*btf_trace_deferred_error_apic_entry)(void *, int); typedef void (*btf_trace_deferred_error_apic_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 kvm_posted_intr_ipis; unsigned int kvm_posted_intr_wakeup_ipis; unsigned int kvm_posted_intr_nested_ipis; 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; unsigned int irq_threshold_count; unsigned int irq_deferred_error_count; unsigned int irq_hv_callback_count; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; 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 {}; struct syscore_ops { struct list_head node; int (*suspend)(); void (*resume)(); void (*shutdown)(); }; 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 pcpu_hot { union { struct { struct task_struct *current_task; int preempt_count; int cpu_number; u64 call_depth; 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; }; enum { DESC_TSS = 9, DESC_LDT = 2, DESCTYPE_S = 16, }; 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 struct ldttss_desc tss_desc; enum auditsc_class_t { AUDITSC_NATIVE = 0, AUDITSC_COMPAT = 1, AUDITSC_OPEN = 2, AUDITSC_OPENAT = 3, AUDITSC_SOCKETCALL = 4, AUDITSC_EXECVE = 5, AUDITSC_OPENAT2 = 6, AUDITSC_NVALS = 7, }; 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 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_SGX = 32768, }; 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 trace_event_data_offsets_x86_exceptions {}; 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 optimistic_spin_node { struct optimistic_spin_node *next; struct optimistic_spin_node *prev; int locked; int cpu; }; 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)(); }; enum { HIBERNATION_INVALID = 0, HIBERNATION_PLATFORM = 1, HIBERNATION_SHUTDOWN = 2, HIBERNATION_REBOOT = 3, HIBERNATION_SUSPEND = 4, HIBERNATION_TEST_RESUME = 5, __HIBERNATION_AFTER_LAST = 6, }; 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_mem { phys_addr_t start; phys_addr_t end; void *vaddr; unsigned long nslabs; unsigned long used; struct dentry *debugfs; bool late_alloc; bool force_bounce; bool for_alloc; unsigned int nareas; unsigned int area_nslabs; struct io_tlb_area *areas; struct io_tlb_slot *slots; }; struct pci_p2pdma_map_state { struct dev_pagemap *pgmap; int map; u64 bus_off; }; enum tick_nohz_mode { NOHZ_MODE_INACTIVE = 0, NOHZ_MODE_LOWRES = 1, NOHZ_MODE_HIGHRES = 2, }; struct tick_sched { struct hrtimer sched_timer; unsigned long check_clocks; enum tick_nohz_mode nohz_mode; unsigned int inidle: 1; unsigned int tick_stopped: 1; unsigned int idle_active: 1; unsigned int do_timer_last: 1; unsigned int got_idle_tick: 1; ktime_t last_tick; ktime_t next_tick; unsigned long idle_jiffies; unsigned long idle_calls; unsigned long idle_sleeps; ktime_t idle_entrytime; ktime_t idle_waketime; ktime_t idle_exittime; ktime_t idle_sleeptime; ktime_t iowait_sleeptime; unsigned long last_jiffies; u64 timer_expires; u64 timer_expires_base; u64 next_timer; ktime_t idle_expires; atomic_t tick_dep_mask; unsigned long last_tick_jiffies; unsigned int stalled_jiffies; }; struct timer_list_iter { int cpu; bool second_pass; u64 now; }; 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 ftrace_dump_mode { DUMP_NONE = 0, DUMP_ALL = 1, DUMP_ORIG = 2, }; struct trace_export { struct trace_export __attribute__((btf_type_tag("rcu"))) *next; void (*write)(struct trace_export *, const void *, unsigned int); int flags; }; 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; }; 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_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 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, }; enum trace_iter_flags { TRACE_FILE_LAT_FMT = 1, TRACE_FILE_ANNOTATE = 2, TRACE_FILE_TIME_IN_NS = 4, }; enum ring_buffer_flags { RB_FL_OVERWRITE = 1, }; 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, }; 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 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[8]; }; 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 read; }; 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 {}; struct mmu_table_batch { struct callback_head rcu; unsigned int nr; void *tables[0]; }; 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; struct mmu_table_batch *batch; 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 swap_iocb { struct kiocb iocb; struct bio_vec bvec[32]; int pages; int len; }; struct space_resv_32 { __s16 l_type; __s16 l_whence; __s64 l_start; __s64 l_len; __s32 l_sysid; __u32 l_pid; __s32 l_pad[4]; } __attribute__((packed)); struct file_clone_range { __s64 src_fd; __u64 src_offset; __u64 src_length; __u64 dest_offset; }; struct fsxattr { __u32 fsx_xflags; __u32 fsx_extsize; __u32 fsx_nextents; __u32 fsx_projid; __u32 fsx_cowextsize; unsigned char fsx_pad[8]; }; 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 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 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; unsigned int napi_id; }; struct epoll_filefd { struct file *file; int fd; } __attribute__((packed)); struct epoll_event { __poll_t events; __u64 data; } __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; 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; }; typedef u32 compat_sigset_word; typedef struct { compat_sigset_word sig[2]; } compat_sigset_t; enum netfs_failure { netfs_fail_check_write_begin = 0, netfs_fail_copy_to_cache = 1, netfs_fail_read = 2, netfs_fail_short_read = 3, netfs_fail_prepare_write = 4, }; struct fat_boot_fsinfo { __le32 signature1; __le32 reserved1[120]; __le32 signature2; __le32 free_clusters; __le32 next_cluster; __le32 reserved2[4]; }; enum { MOUNTPROC3_NULL = 0, MOUNTPROC3_MNT = 1, MOUNTPROC3_DUMP = 2, MOUNTPROC3_UMNT = 3, MOUNTPROC3_UMNTALL = 4, MOUNTPROC3_EXPORT = 5, }; enum { MOUNTPROC_NULL = 0, MOUNTPROC_MNT = 1, MOUNTPROC_DUMP = 2, MOUNTPROC_UMNT = 3, MOUNTPROC_UMNTALL = 4, MOUNTPROC_EXPORT = 5, }; struct rpc_create_args { struct net *net; int protocol; struct sockaddr *address; size_t addrsize; struct sockaddr *saddress; const struct rpc_timeout *timeout; const char *servername; const char *nodename; const struct rpc_program *program; u32 prognumber; u32 version; rpc_authflavor_t authflavor; u32 nconnect; unsigned long flags; char *client_name; struct svc_xprt *bc_xprt; const struct cred *cred; unsigned int max_connect; }; struct mountres { int errno; struct nfs_fh *fh; unsigned int *auth_count; rpc_authflavor_t *auth_flavors; }; struct nfs_mount_request { struct __kernel_sockaddr_storage *sap; size_t salen; char *hostname; char *dirpath; u32 version; unsigned short protocol; struct nfs_fh *fh; int noresvport; unsigned int *auth_flav_len; rpc_authflavor_t *auth_flavs; struct net *net; }; struct utf8_table { int cmask; int cval; int shift; long lmask; long lval; }; typedef u32 unicode_t; enum { SELNL_MSG_SETENFORCE = 16, SELNL_MSG_POLICYLOAD = 17, SELNL_MSG_MAX = 18, }; enum selinux_nlgroups { SELNLGRP_NONE = 0, SELNLGRP_AVC = 1, __SELNLGRP_MAX = 2, }; struct selnl_msg_setenforce { __s32 val; }; struct selnl_msg_policyload { __u32 seqno; }; struct ima_rule_opt_list; struct ima_template_desc; struct ima_rule_entry { struct list_head list; int action; unsigned int flags; enum ima_hooks func; int mask; unsigned long fsmagic; uuid_t fsuuid; kuid_t uid; kgid_t gid; kuid_t fowner; kgid_t fgroup; bool (*uid_op)(kuid_t, kuid_t); bool (*gid_op)(kgid_t, kgid_t); bool (*fowner_op)(vfsuid_t, kuid_t); bool (*fgroup_op)(vfsgid_t, kgid_t); int pcr; unsigned int allowed_algos; struct { void *rule; char *args_p; int type; } lsm[6]; char *fsname; struct ima_rule_opt_list *keyrings; struct ima_rule_opt_list *label; struct ima_template_desc *template; }; struct ima_rule_opt_list { size_t count; char *items[0]; }; struct ima_template_field; struct ima_template_desc { struct list_head list; char *name; char *fmt; int num_fields; const struct ima_template_field **fields; }; enum ima_show_type { IMA_SHOW_BINARY = 0, IMA_SHOW_BINARY_NO_FIELD_LEN = 1, IMA_SHOW_BINARY_OLD_STRING_FMT = 2, IMA_SHOW_ASCII = 3, }; struct ima_event_data; struct ima_field_data; struct ima_template_field { const char field_id[16]; int (*field_init)(struct ima_event_data *, struct ima_field_data *); void (*field_show)(struct seq_file *, enum ima_show_type, struct ima_field_data *); }; struct modsig; struct integrity_iint_cache; struct evm_ima_xattr_data; struct ima_event_data { struct integrity_iint_cache *iint; struct file *file; const unsigned char *filename; struct evm_ima_xattr_data *xattr_value; int xattr_len; const struct modsig *modsig; const char *violation; const void *buf; int buf_len; }; enum integrity_status { INTEGRITY_PASS = 0, INTEGRITY_PASS_IMMUTABLE = 1, INTEGRITY_FAIL = 2, INTEGRITY_FAIL_IMMUTABLE = 3, INTEGRITY_NOLABEL = 4, INTEGRITY_NOXATTRS = 5, INTEGRITY_UNKNOWN = 6, }; struct ima_digest_data; struct integrity_iint_cache { struct rb_node rb_node; struct mutex mutex; struct inode *inode; u64 version; unsigned long flags; unsigned long measured_pcrs; unsigned long atomic_flags; enum integrity_status ima_file_status: 4; enum integrity_status ima_mmap_status: 4; enum integrity_status ima_bprm_status: 4; enum integrity_status ima_read_status: 4; enum integrity_status ima_creds_status: 4; enum integrity_status evm_status: 4; struct ima_digest_data *ima_hash; }; struct ima_digest_data { u8 algo; u8 length; union { struct { u8 unused; u8 type; } sha1; struct { u8 type; u8 algo; } ng; u8 data[2]; } xattr; u8 digest[0]; }; struct evm_ima_xattr_data { u8 type; u8 data[0]; }; struct ima_field_data { u8 *data; u32 len; }; enum lsm_event { LSM_POLICY_CHANGE = 0, }; enum policy_rule_list { IMA_DEFAULT_POLICY = 1, IMA_CUSTOM_POLICY = 2, }; enum policy_types { ORIGINAL_TCB = 1, DEFAULT_TCB = 2, }; enum policy_opt { Opt_measure = 0, Opt_dont_measure = 1, Opt_appraise = 2, Opt_dont_appraise = 3, Opt_audit = 4, Opt_hash = 5, Opt_dont_hash = 6, Opt_obj_user = 7, Opt_obj_role = 8, Opt_obj_type = 9, Opt_subj_user = 10, Opt_subj_role = 11, Opt_subj_type = 12, Opt_func = 13, Opt_mask = 14, Opt_fsmagic = 15, Opt_fsname = 16, Opt_fsuuid = 17, Opt_uid_eq = 18, Opt_euid_eq = 19, Opt_gid_eq = 20, Opt_egid_eq = 21, Opt_fowner_eq = 22, Opt_fgroup_eq = 23, Opt_uid_gt = 24, Opt_euid_gt = 25, Opt_gid_gt = 26, Opt_egid_gt = 27, Opt_fowner_gt = 28, Opt_fgroup_gt = 29, Opt_uid_lt = 30, Opt_euid_lt = 31, Opt_gid_lt = 32, Opt_egid_lt = 33, Opt_fowner_lt = 34, Opt_fgroup_lt = 35, Opt_digest_type = 36, Opt_appraise_type = 37, Opt_appraise_flag = 38, Opt_appraise_algos = 39, Opt_permit_directio = 40, Opt_pcr = 41, Opt_template = 42, Opt_keyrings = 43, Opt_label = 44, Opt_err___2 = 45, }; enum { mask_exec = 0, mask_write = 1, mask_read = 2, mask_append = 3, }; enum lsm_rule_types { LSM_OBJ_USER = 0, LSM_OBJ_ROLE = 1, LSM_OBJ_TYPE = 2, LSM_SUBJ_USER = 3, LSM_SUBJ_ROLE = 4, LSM_SUBJ_TYPE = 5, }; struct aead_instance { void (*free)(struct aead_instance *); union { struct { char head[64]; struct crypto_instance base; } s; struct aead_alg alg; }; }; struct crypto_aead_spawn { struct crypto_spawn base; }; struct aead_geniv_ctx { spinlock_t lock; struct crypto_aead *child; struct crypto_sync_skcipher *sknull; u8 salt[0]; }; struct io_epoll { struct file *file; int epfd; int op; int fd; struct epoll_event event; } __attribute__((packed)); enum pci_mmap_api { PCI_MMAP_SYSFS = 0, PCI_MMAP_PROCFS = 1, }; enum pci_mmap_state { pci_mmap_io = 0, pci_mmap_mem = 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, }; typedef u32 acpi_name; 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, }; struct acpi_exception_info { char *name; }; 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 file_priv { struct tpm_chip *chip; struct tpm_space *space; struct mutex buffer_mutex; struct timer_list user_read_timer; struct work_struct timeout_work; struct work_struct async_work; wait_queue_head_t async_wait; ssize_t response_length; bool response_read; bool command_enqueued; u8 data_buffer[4096]; }; struct drmres_node { struct list_head entry; drmres_release_t release; const char *name; size_t size; }; struct drmres { struct drmres_node node; u8 data[0]; }; struct drm_bridge_connector { struct drm_connector base; struct drm_encoder *encoder; struct drm_bridge *bridge_edid; struct drm_bridge *bridge_hpd; struct drm_bridge *bridge_detect; struct drm_bridge *bridge_modes; }; enum intel_gt_scratch_field { INTEL_GT_SCRATCH_FIELD_DEFAULT = 0, INTEL_GT_SCRATCH_FIELD_RENDER_FLUSH = 128, INTEL_GT_SCRATCH_FIELD_COHERENTL3_WA = 256, }; struct intel_gt_bool_throttle_attr { struct attribute attr; ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *); i915_reg_t (*reg32)(struct intel_gt *); u32 mask; }; enum intel_gt_sysfs_op { INTEL_GT_SYSFS_MIN = 0, INTEL_GT_SYSFS_MAX = 1, }; enum slpc_media_ratio_mode { SLPC_MEDIA_RATIO_MODE_DYNAMIC_CONTROL = 0, SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_ONE = 1, SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_TWO = 2, }; struct i915_lut_handle { struct list_head obj_link; struct i915_gem_context *ctx; u32 handle; }; struct dma_fence_work; struct dma_fence_work_ops { const char *name; void (*work)(struct dma_fence_work *); void (*release)(struct dma_fence_work *); }; struct dma_fence_work { struct dma_fence dma; spinlock_t lock; struct i915_sw_fence chain; struct i915_sw_dma_fence_cb cb; struct work_struct work; const struct dma_fence_work_ops *ops; }; enum { DMA_FENCE_WORK_IMM = 3, }; struct i915_vma_work { struct dma_fence_work base; struct i915_address_space *vm; struct i915_vm_pt_stash stash; struct i915_vma_resource *vma_res; struct drm_i915_gem_object *obj; struct i915_sw_dma_fence_cb cb; enum i915_cache_level cache_level; unsigned int flags; }; enum bdb_block_id { BDB_GENERAL_FEATURES = 1, BDB_GENERAL_DEFINITIONS = 2, BDB_OLD_TOGGLE_LIST = 3, BDB_MODE_SUPPORT_LIST = 4, BDB_GENERIC_MODE_TABLE = 5, BDB_EXT_MMIO_REGS = 6, BDB_SWF_IO = 7, BDB_SWF_MMIO = 8, BDB_PSR = 9, BDB_MODE_REMOVAL_TABLE = 10, BDB_CHILD_DEVICE_TABLE = 11, BDB_DRIVER_FEATURES = 12, BDB_DRIVER_PERSISTENCE = 13, BDB_EXT_TABLE_PTRS = 14, BDB_DOT_CLOCK_OVERRIDE = 15, BDB_DISPLAY_SELECT = 16, BDB_DRIVER_ROTATION = 18, BDB_DISPLAY_REMOVE = 19, BDB_OEM_CUSTOM = 20, BDB_EFP_LIST = 21, BDB_SDVO_LVDS_OPTIONS = 22, BDB_SDVO_PANEL_DTDS = 23, BDB_SDVO_LVDS_PNP_IDS = 24, BDB_SDVO_LVDS_POWER_SEQ = 25, BDB_TV_OPTIONS = 26, BDB_EDP = 27, BDB_LVDS_OPTIONS = 40, BDB_LVDS_LFP_DATA_PTRS = 41, BDB_LVDS_LFP_DATA = 42, BDB_LVDS_BACKLIGHT = 43, BDB_LFP_POWER = 44, BDB_MIPI_CONFIG = 52, BDB_MIPI_SEQUENCE = 53, BDB_COMPRESSION_PARAMETERS = 56, BDB_GENERIC_DTD = 58, BDB_SKIP = 254, }; struct dsc_compression_parameters_entry { u8 version_major: 4; u8 version_minor: 4; u8 rc_buffer_block_size: 2; u8 reserved1: 6; u8 rc_buffer_size; u32 slices_per_line; u8 line_buffer_depth: 4; u8 reserved2: 4; u8 block_prediction_enable: 1; u8 reserved3: 7; u8 max_bpp; u8 reserved4: 1; u8 support_8bpc: 1; u8 support_10bpc: 1; u8 support_12bpc: 1; u8 reserved5: 4; u16 slice_height; } __attribute__((packed)); enum panel_type { PANEL_TYPE_OPREGION = 0, PANEL_TYPE_VBT = 1, PANEL_TYPE_PNPID = 2, PANEL_TYPE_FALLBACK = 3, }; enum mipi_seq { MIPI_SEQ_END = 0, MIPI_SEQ_DEASSERT_RESET = 1, MIPI_SEQ_INIT_OTP = 2, MIPI_SEQ_DISPLAY_ON = 3, MIPI_SEQ_DISPLAY_OFF = 4, MIPI_SEQ_ASSERT_RESET = 5, MIPI_SEQ_BACKLIGHT_ON = 6, MIPI_SEQ_BACKLIGHT_OFF = 7, MIPI_SEQ_TEAR_ON = 8, MIPI_SEQ_TEAR_OFF = 9, MIPI_SEQ_POWER_ON = 10, MIPI_SEQ_POWER_OFF = 11, MIPI_SEQ_MAX = 12, }; enum mipi_seq_element { MIPI_SEQ_ELEM_END = 0, MIPI_SEQ_ELEM_SEND_PKT = 1, MIPI_SEQ_ELEM_DELAY = 2, MIPI_SEQ_ELEM_GPIO = 3, MIPI_SEQ_ELEM_I2C = 4, MIPI_SEQ_ELEM_SPI = 5, MIPI_SEQ_ELEM_PMIC = 6, MIPI_SEQ_ELEM_MAX = 7, }; struct bdb_block_entry { struct list_head node; enum bdb_block_id section_id; u8 data[0]; }; struct vbt_header { u8 signature[20]; u16 version; u16 header_size; u16 vbt_size; u8 vbt_checksum; u8 reserved0; u32 bdb_offset; u32 aim_offset[4]; }; struct bdb_header { u8 signature[16]; u16 version; u16 header_size; u16 bdb_size; }; struct lvds_lfp_data_ptr_table { u16 offset; u8 table_size; } __attribute__((packed)); struct lvds_lfp_data_ptr { struct lvds_lfp_data_ptr_table fp_timing; struct lvds_lfp_data_ptr_table dvo_timing; struct lvds_lfp_data_ptr_table panel_pnp_id; } __attribute__((packed)); struct bdb_lvds_lfp_data_ptrs { u8 lvds_entries; struct lvds_lfp_data_ptr ptr[16]; struct lvds_lfp_data_ptr_table panel_name; } __attribute__((packed)); struct bdb_general_features { u8 panel_fitting: 2; u8 flexaim: 1; u8 msg_enable: 1; u8 clear_screen: 3; u8 color_flip: 1; u8 download_ext_vbt: 1; u8 enable_ssc: 1; u8 ssc_freq: 1; u8 enable_lfp_on_override: 1; u8 disable_ssc_ddt: 1; u8 underscan_vga_timings: 1; u8 display_clock_mode: 1; u8 vbios_hotplug_support: 1; u8 disable_smooth_vision: 1; u8 single_dvi: 1; u8 rotate_180: 1; u8 fdi_rx_polarity_inverted: 1; u8 vbios_extended_mode: 1; u8 copy_ilfp_dtd_to_sdvo_lvds_dtd: 1; u8 panel_best_fit_timing: 1; u8 ignore_strap_state: 1; u8 legacy_monitor_detect; u8 int_crt_support: 1; u8 int_tv_support: 1; u8 int_efp_support: 1; u8 dp_ssc_enable: 1; u8 dp_ssc_freq: 1; u8 dp_ssc_dongle_supported: 1; u8 rsvd11: 2; u8 tc_hpd_retry_timeout: 7; u8 rsvd12: 1; u8 afc_startup_config: 2; u8 rsvd13: 6; }; struct bdb_general_definitions { u8 crt_ddc_gmbus_pin; u8 dpms_non_acpi: 1; u8 skip_boot_crt_detect: 1; u8 dpms_aim: 1; u8 rsvd1: 5; u8 boot_display[2]; u8 child_dev_size; u8 devices[0]; }; struct bdb_driver_features { u8 boot_dev_algorithm: 1; u8 allow_display_switch_dvd: 1; u8 allow_display_switch_dos: 1; u8 hotplug_dvo: 1; u8 dual_view_zoom: 1; u8 int15h_hook: 1; u8 sprite_in_clone: 1; u8 primary_lfp_id: 1; u16 boot_mode_x; u16 boot_mode_y; u8 boot_mode_bpp; u8 boot_mode_refresh; u16 enable_lfp_primary: 1; u16 selective_mode_pruning: 1; u16 dual_frequency: 1; u16 render_clock_freq: 1; u16 nt_clone_support: 1; u16 power_scheme_ui: 1; u16 sprite_display_assign: 1; u16 cui_aspect_scaling: 1; u16 preserve_aspect_ratio: 1; u16 sdvo_device_power_down: 1; u16 crt_hotplug: 1; u16 lvds_config: 2; u16 tv_hotplug: 1; u16 hdmi_config: 2; u8 static_display: 1; u8 embedded_platform: 1; u8 display_subsystem_enable: 1; u8 reserved0: 5; u16 legacy_crt_max_x; u16 legacy_crt_max_y; u8 legacy_crt_max_refresh; u8 hdmi_termination: 1; u8 cea861d_hdmi_support: 1; u8 self_refresh_enable: 1; u8 reserved1: 5; u8 custom_vbt_version; u16 rmpm_enabled: 1; u16 s2ddt_enabled: 1; u16 dpst_enabled: 1; u16 bltclt_enabled: 1; u16 adb_enabled: 1; u16 drrs_enabled: 1; u16 grs_enabled: 1; u16 gpmt_enabled: 1; u16 tbt_enabled: 1; u16 psr_enabled: 1; u16 ips_enabled: 1; u16 dpfs_enabled: 1; u16 dmrrs_enabled: 1; u16 adt_enabled: 1; u16 hpd_wake: 1; u16 pc_feature_valid: 1; } __attribute__((packed)); struct bdb_compression_parameters { u16 entry_size; struct dsc_compression_parameters_entry data[16]; } __attribute__((packed)); struct bdb_lvds_options { u8 panel_type; u8 panel_type2; u8 pfit_mode: 2; u8 pfit_text_mode_enhanced: 1; u8 pfit_gfx_mode_enhanced: 1; u8 pfit_ratio_auto: 1; u8 pixel_dither: 1; u8 lvds_edid: 1; u8 rsvd2: 1; u8 rsvd4; u32 lvds_panel_channel_bits; u16 ssc_bits; u16 ssc_freq; u16 ssc_ddt; u16 panel_color_depth; u32 dps_panel_type_bits; u32 blt_control_type_bits; u16 lcdvcc_s0_enable; u32 rotation; u32 position; } __attribute__((packed)); struct generic_dtd_entry { u32 pixel_clock; u16 hactive; u16 hblank; u16 hfront_porch; u16 hsync; u16 vactive; u16 vblank; u16 vfront_porch; u16 vsync; u16 width_mm; u16 height_mm; u8 rsvd_flags: 6; u8 vsync_positive_polarity: 1; u8 hsync_positive_polarity: 1; u8 rsvd[3]; }; struct bdb_generic_dtd { u16 gdtd_size; struct generic_dtd_entry dtd[0]; } __attribute__((packed)); struct lvds_fp_timing { u16 x_res; u16 y_res; u32 lvds_reg; u32 lvds_reg_val; u32 pp_on_reg; u32 pp_on_reg_val; u32 pp_off_reg; u32 pp_off_reg_val; u32 pp_cycle_reg; u32 pp_cycle_reg_val; u32 pfit_reg; u32 pfit_reg_val; u16 terminator; } __attribute__((packed)); struct lvds_dvo_timing { u16 clock; u8 hactive_lo; u8 hblank_lo; u8 hblank_hi: 4; u8 hactive_hi: 4; u8 vactive_lo; u8 vblank_lo; u8 vblank_hi: 4; u8 vactive_hi: 4; u8 hsync_off_lo; u8 hsync_pulse_width_lo; u8 vsync_pulse_width_lo: 4; u8 vsync_off_lo: 4; u8 vsync_pulse_width_hi: 2; u8 vsync_off_hi: 2; u8 hsync_pulse_width_hi: 2; u8 hsync_off_hi: 2; u8 himage_lo; u8 vimage_lo; u8 vimage_hi: 4; u8 himage_hi: 4; u8 h_border; u8 v_border; u8 rsvd1: 3; u8 digital: 2; u8 vsync_positive: 1; u8 hsync_positive: 1; u8 non_interlaced: 1; }; struct lvds_pnp_id { u16 mfg_name; u16 product_code; u32 serial; u8 mfg_week; u8 mfg_year; } __attribute__((packed)); struct lvds_lfp_data_entry { struct lvds_fp_timing fp_timing; struct lvds_dvo_timing dvo_timing; struct lvds_pnp_id pnp_id; } __attribute__((packed)); struct bdb_lvds_lfp_data { struct lvds_lfp_data_entry data[16]; }; struct lvds_lfp_panel_name { u8 name[13]; }; struct lvds_lfp_black_border { u8 top; u8 bottom; u8 left; u8 right; }; struct bdb_lvds_lfp_data_tail { struct lvds_lfp_panel_name panel_name[16]; u16 scaling_enable; u8 seamless_drrs_min_refresh_rate[16]; u8 pixel_overlap_count[16]; struct lvds_lfp_black_border black_border[16]; u16 dual_lfp_port_sync_enable; u16 gpu_dithering_for_banding_artifacts; }; struct lfp_backlight_data_entry { u8 type: 2; u8 active_low_pwm: 1; u8 obsolete1: 5; u16 pwm_freq_hz; u8 min_brightness; u8 obsolete2; u8 obsolete3; } __attribute__((packed)); struct lfp_backlight_control_method { u8 type: 4; u8 controller: 4; }; struct lfp_brightness_level { u16 level; u16 reserved; }; struct bdb_lfp_backlight_data { u8 entry_size; struct lfp_backlight_data_entry data[16]; u8 level[16]; struct lfp_backlight_control_method backlight_control[16]; struct lfp_brightness_level brightness_level[16]; struct lfp_brightness_level brightness_min_level[16]; u8 brightness_precision_bits[16]; u16 hdr_dpcd_refresh_timeout[16]; } __attribute__((packed)); struct bdb_sdvo_panel_dtds { struct lvds_dvo_timing dtds[4]; }; struct bdb_sdvo_lvds_options { u8 panel_backlight; u8 h40_set_panel_type; u8 panel_type; u8 ssc_clk_freq; u16 als_low_trip; u16 als_high_trip; u8 sclalarcoeff_tab_row_num; u8 sclalarcoeff_tab_row_size; u8 coefficient[8]; u8 panel_misc_bits_1; u8 panel_misc_bits_2; u8 panel_misc_bits_3; u8 panel_misc_bits_4; }; struct lfp_power_features { u8 reserved1: 1; u8 power_conservation_pref: 3; u8 reserved2: 1; u8 lace_enabled_status: 1; u8 lace_support: 1; u8 als_enable: 1; }; struct als_data_entry { u16 backlight_adjust; u16 lux; }; struct aggressiveness_profile_entry { u8 dpst_aggressiveness: 4; u8 lace_aggressiveness: 4; }; struct aggressiveness_profile2_entry { u8 opst_aggressiveness: 4; u8 elp_aggressiveness: 4; }; struct bdb_lfp_power { struct lfp_power_features features; struct als_data_entry als[5]; u8 lace_aggressiveness_profile: 3; u8 reserved1: 5; u16 dpst; u16 psr; u16 drrs; u16 lace_support; u16 adt; u16 dmrrs; u16 adb; u16 lace_enabled_status; struct aggressiveness_profile_entry aggressiveness[16]; u16 hobl; u16 vrr_feature_enabled; u16 elp; u16 opst; struct aggressiveness_profile2_entry aggressiveness2[16]; } __attribute__((packed)); struct edp_fast_link_params { u8 rate: 4; u8 lanes: 4; u8 preemphasis: 4; u8 vswing: 4; }; struct edp_pwm_delays { u16 pwm_on_to_backlight_enable; u16 backlight_disable_to_pwm_off; }; struct edp_full_link_params { u8 preemphasis: 4; u8 vswing: 4; }; struct edp_apical_params { u32 panel_oui; u32 dpcd_base_address; u32 dpcd_idridix_control_0; u32 dpcd_option_select; u32 dpcd_backlight; u32 ambient_light; u32 backlight_scale; }; struct bdb_edp { struct edp_power_seq power_seqs[16]; u32 color_depth; struct edp_fast_link_params fast_link_params[16]; u32 sdrrs_msa_timing_delay; u16 edp_s3d_feature; u16 edp_t3_optimization; u64 edp_vswing_preemph; u16 fast_link_training; u16 dpcd_600h_write_required; struct edp_pwm_delays pwm_delays[16]; u16 full_link_params_provided; struct edp_full_link_params full_link_params[16]; u16 apical_enable; struct edp_apical_params apical_params[16]; u16 edp_fast_link_training_rate[16]; u16 edp_max_port_link_rate[16]; } __attribute__((packed)); struct psr_table { u8 full_link: 1; u8 require_aux_to_wakeup: 1; u8 feature_bits_rsvd: 6; u8 idle_frames: 4; u8 lines_to_wait: 3; u8 wait_times_rsvd: 1; u16 tp1_wakeup_time; u16 tp2_tp3_wakeup_time; }; struct bdb_psr { struct psr_table psr_table[16]; u32 psr2_tp2_tp3_wakeup_time; }; struct bdb_mipi_config { struct mipi_config config[6]; struct mipi_pps_data pps[6]; struct edp_pwm_delays pwm_delays[6]; u8 pmic_i2c_bus_number[6]; } __attribute__((packed)); struct bdb_mipi_sequence { u8 version; u8 data[0]; }; enum intel_sbi_destination { SBI_ICLK = 0, SBI_MPHY = 1, }; struct iclkip_params { u32 iclk_virtual_root_freq; u32 iclk_pi_range; u32 divsel; u32 phaseinc; u32 auxdiv; u32 phasedir; u32 desired_divisor; }; enum intel_quirk_id { QUIRK_BACKLIGHT_PRESENT = 0, QUIRK_INCREASE_DDI_DISABLED_TIME = 1, QUIRK_INCREASE_T12_DELAY = 2, QUIRK_INVERT_BRIGHTNESS = 3, QUIRK_LVDS_SSC_DISABLE = 4, QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK = 5, }; enum icl_port_dpll_id { ICL_PORT_DPLL_DEFAULT = 0, ICL_PORT_DPLL_MG_PHY = 1, ICL_PORT_DPLL_COUNT = 2, }; struct intel_dkl_phy_reg { u32 reg: 24; u32 bank_idx: 4; }; struct container_dev { struct device dev; int (*offline)(struct container_dev *); }; typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); struct e1000_reg_info { u32 ofs; char *name; }; enum e1000_state_t { __E1000_TESTING = 0, __E1000_RESETTING = 1, __E1000_ACCESS_SHARED_RESOURCE = 2, __E1000_DOWN = 3, }; 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 gro_result { GRO_MERGED = 0, GRO_MERGED_FREE = 1, GRO_HELD = 2, GRO_NORMAL = 3, GRO_CONSUMED = 4, }; 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 { 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 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 trace_event_raw_e1000e_trace_mac_register { struct trace_entry ent; uint32_t reg; char __data[0]; }; 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; }; 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 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_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_u0 { __le64 a; __le64 b; }; struct my_u1 { __le64 a; __le64 b; __le64 c; __le64 d; }; typedef enum gro_result gro_result_t; struct trace_event_data_offsets_e1000e_trace_mac_register {}; struct input_led { struct led_classdev cdev; struct input_handle *handle; unsigned int code; }; struct input_leds { struct input_handle handle; unsigned int num_leds; struct input_led leds[0]; }; struct lirc_scancode { __u64 timestamp; __u16 flags; __u16 rc_proto; __u32 keycode; __u64 scancode; }; struct lirc_fh { struct list_head list; struct rc_dev *rc; int carrier_low; struct { union { struct __kfifo kfifo; unsigned int *type; const unsigned int *const_type; char (*rectype)[0]; unsigned int *ptr; const unsigned int *ptr_const; }; unsigned int buf[0]; } rawir; struct { union { struct __kfifo kfifo; struct lirc_scancode *type; const struct lirc_scancode *const_type; char (*rectype)[0]; struct lirc_scancode *ptr; const struct lirc_scancode *ptr_const; }; struct lirc_scancode buf[0]; } scancodes; wait_queue_head_t wait_poll; u8 send_mode; u8 rec_mode; }; 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; }; 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; u32 bpf_sample; struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *progs; }; 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 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]; }; 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, }; struct efi_runtime_work { void *arg1; void *arg2; void *arg3; void *arg4; void *arg5; efi_status_t status; struct work_struct work; enum efi_rts_ids efi_rts_id; struct completion efi_rts_comp; }; struct snd_minor { int type; int card; int device; const struct file_operations *f_ops; void *private_data; struct device *dev; struct snd_card *card_ptr; }; typedef int (*hda_codec_patch_t)(struct hda_codec *); struct hda_codec_driver { struct hdac_driver core; const struct hda_device_id *id; }; struct cmsghdr { __kernel_size_t cmsg_len; int cmsg_level; int cmsg_type; }; struct scm_timestamping64 { struct __kernel_timespec ts[3]; }; struct scm_timestamping { struct __kernel_old_timespec ts[3]; }; 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; }; 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_CNT = 6, ETHTOOL_A_RSS_MAX = 5, }; 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 *indir_table; u8 *hkey; }; 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 nf_hook_state state; u16 size; }; struct ip_rt_info { __be32 daddr; __be32 saddr; u_int8_t tos; u_int32_t mark; }; 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); }; 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, }; 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, }; struct geneve_opt { __be16 opt_class; u8 type; u8 length: 5; u8 r3: 1; u8 r2: 1; u8 r1: 1; u8 opt_data[0]; }; struct vxlan_metadata { u32 gbp; }; struct seg6_pernet_data { struct mutex lock; struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; }; 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 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 compat_group_req { __u32 gr_interface; struct __kernel_sockaddr_storage gr_group; } __attribute__((packed)); struct group_req { __u32 gr_interface; struct __kernel_sockaddr_storage gr_group; }; struct compat_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]; } __attribute__((packed)); struct { __u32 gf_interface; struct __kernel_sockaddr_storage gf_group; __u32 gf_fmode; __u32 gf_numsrc; struct __kernel_sockaddr_storage gf_slist_flex[0]; } __attribute__((packed)); }; } __attribute__((packed)); struct ip6_mtuinfo { struct sockaddr_in6 ip6m_addr; __u32 ip6m_mtu; }; struct xdr_skb_reader { struct sk_buff *skb; unsigned int offset; size_t count; __wsum csum; }; typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); struct gss_cred; typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); enum rpc_gss_svc { RPC_GSS_SVC_NONE = 1, RPC_GSS_SVC_INTEGRITY = 2, RPC_GSS_SVC_PRIVACY = 3, }; struct gss_cl_ctx; struct gss_upcall_msg; struct gss_cred { struct rpc_cred gc_base; enum rpc_gss_svc gc_service; struct gss_cl_ctx __attribute__((btf_type_tag("rcu"))) *gc_ctx; struct gss_upcall_msg *gc_upcall; const char *gc_principal; unsigned long gc_upcall_timestamp; }; enum rpc_gss_proc { RPC_GSS_PROC_DATA = 0, RPC_GSS_PROC_INIT = 1, RPC_GSS_PROC_CONTINUE_INIT = 2, RPC_GSS_PROC_DESTROY = 3, }; struct gss_cl_ctx { refcount_t count; enum rpc_gss_proc gc_proc; u32 gc_seq; u32 gc_seq_xmit; spinlock_t gc_seq_lock; struct gss_ctx *gc_gss_ctx; struct xdr_netobj gc_wire_ctx; struct xdr_netobj gc_acceptor; u32 gc_win; unsigned long gc_expiry; struct callback_head gc_rcu; }; typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); struct rpc_gss_wire_cred; typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); struct rpc_gss_wire_cred { u32 gc_v; u32 gc_proc; u32 gc_seq; u32 gc_svc; struct xdr_netobj gc_ctx; }; typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int); typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); struct trace_event_raw_rpcgss_import_ctx { struct trace_entry ent; int status; char __data[0]; }; struct trace_event_raw_rpcgss_gssapi_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 maj_stat; char __data[0]; }; struct trace_event_raw_rpcgss_ctx_class { struct trace_entry ent; const void *cred; unsigned long service; u32 __data_loc_principal; char __data[0]; }; struct trace_event_raw_rpcgss_svc_gssapi_class { struct trace_entry ent; u32 xid; u32 maj_stat; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_svc_wrap_failed { struct trace_entry ent; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_svc_unwrap_failed { struct trace_entry ent; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_svc_seqno_bad { struct trace_entry ent; u32 expected; u32 received; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_svc_accept_upcall { struct trace_entry ent; u32 minor_status; unsigned long major_status; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_svc_authenticate { struct trace_entry ent; u32 seqno; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_rpcgss_unwrap_failed { struct trace_entry ent; unsigned int task_id; unsigned int client_id; char __data[0]; }; struct trace_event_raw_rpcgss_bad_seqno { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 expected; u32 received; char __data[0]; }; struct trace_event_raw_rpcgss_seqno { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 seqno; char __data[0]; }; struct trace_event_raw_rpcgss_need_reencode { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 seq_xmit; u32 seqno; bool ret; char __data[0]; }; struct trace_event_raw_rpcgss_update_slack { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; const void *auth; unsigned int rslack; unsigned int ralign; unsigned int verfsize; char __data[0]; }; struct trace_event_raw_rpcgss_svc_seqno_class { struct trace_entry ent; u32 xid; u32 seqno; char __data[0]; }; struct trace_event_raw_rpcgss_svc_seqno_low { struct trace_entry ent; u32 xid; u32 seqno; u32 min; u32 max; char __data[0]; }; struct trace_event_raw_rpcgss_upcall_msg { struct trace_entry ent; u32 __data_loc_msg; char __data[0]; }; struct trace_event_raw_rpcgss_upcall_result { struct trace_entry ent; u32 uid; int result; char __data[0]; }; struct trace_event_raw_rpcgss_context { struct trace_entry ent; unsigned long expiry; unsigned long now; unsigned int timeout; u32 window_size; int len; u32 __data_loc_acceptor; char __data[0]; }; struct trace_event_raw_rpcgss_createauth { struct trace_entry ent; unsigned int flavor; int error; char __data[0]; }; struct trace_event_raw_rpcgss_oid_to_mech { struct trace_entry ent; u32 __data_loc_oid; char __data[0]; }; struct trace_event_data_offsets_rpcgss_ctx_class { u32 principal; }; struct trace_event_data_offsets_rpcgss_svc_gssapi_class { u32 addr; }; struct trace_event_data_offsets_rpcgss_svc_wrap_failed { u32 addr; }; struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { u32 addr; }; struct trace_event_data_offsets_rpcgss_svc_seqno_bad { u32 addr; }; struct trace_event_data_offsets_rpcgss_svc_accept_upcall { u32 addr; }; struct trace_event_data_offsets_rpcgss_svc_authenticate { u32 addr; }; struct trace_event_data_offsets_rpcgss_upcall_msg { u32 msg; }; struct trace_event_data_offsets_rpcgss_context { u32 acceptor; }; struct trace_event_data_offsets_rpcgss_oid_to_mech { u32 oid; }; struct trace_event_data_offsets_rpcgss_gssapi_event {}; struct trace_event_data_offsets_rpcgss_import_ctx {}; struct trace_event_data_offsets_rpcgss_unwrap_failed {}; struct trace_event_data_offsets_rpcgss_bad_seqno {}; struct trace_event_data_offsets_rpcgss_seqno {}; struct trace_event_data_offsets_rpcgss_need_reencode {}; struct trace_event_data_offsets_rpcgss_update_slack {}; struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; struct trace_event_data_offsets_rpcgss_upcall_result {}; struct trace_event_data_offsets_rpcgss_createauth {}; 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 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_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 xdp_ring; struct xsk_queue { u32 ring_mask; u32 nentries; u32 cached_prod; u32 cached_cons; struct xdp_ring *ring; u64 invalid_descs; u64 queue_empty_descs; size_t ring_vmalloc_size; }; struct xdp_ring { u32 producer; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 pad1; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 consumer; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 pad2; u32 flags; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 pad3; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct xdp_umem_ring { struct xdp_ring ptrs; u64 desc[0]; }; struct xdp_rxtx_ring { struct xdp_ring ptrs; struct xdp_desc desc[0]; }; typedef void (*btf_trace_mptcp_subflow_get_send)(void *, struct mptcp_subflow_context *); typedef void (*btf_trace_mptcp_sendmsg_frag)(void *, struct mptcp_ext *); typedef void (*btf_trace_get_mapping_status)(void *, struct mptcp_ext *); typedef void (*btf_trace_ack_update_msk)(void *, u64, u64, u64, u64, u64); typedef void (*btf_trace_subflow_check_data_avail)(void *, __u8, struct sk_buff *); struct mptcp_delegated_action { struct napi_struct napi; struct list_head head; }; struct inet_protosw { struct list_head list; unsigned short type; unsigned short protocol; struct proto *prot; const struct proto_ops *ops; unsigned char flags; }; enum { MPTCP_CMSG_TS = 1, MPTCP_CMSG_INQ = 2, }; struct trace_event_raw_mptcp_subflow_get_send { struct trace_entry ent; bool active; bool free; u32 snd_wnd; u32 pace; u8 backup; u64 ratio; char __data[0]; }; struct trace_event_raw_mptcp_dump_mpext { struct trace_entry ent; u64 data_ack; u64 data_seq; u32 subflow_seq; u16 data_len; u16 csum; u8 use_map; u8 dsn64; u8 data_fin; u8 use_ack; u8 ack64; u8 mpc_map; u8 frozen; u8 reset_transient; u8 reset_reason; u8 csum_reqd; u8 infinite_map; char __data[0]; }; struct trace_event_raw_ack_update_msk { struct trace_entry ent; u64 data_ack; u64 old_snd_una; u64 new_snd_una; u64 new_wnd_end; u64 msk_wnd_end; char __data[0]; }; struct trace_event_raw_subflow_check_data_avail { struct trace_entry ent; u8 status; const void *skb; char __data[0]; }; struct mptcp_subflow_request_sock { struct tcp_request_sock sk; u16 mp_capable: 1; u16 mp_join: 1; u16 backup: 1; u16 csum_reqd: 1; u16 allow_join_id0: 1; u8 local_id; u8 remote_id; u64 local_key; u64 idsn; u32 token; u32 ssn_offset; u64 thmac; u32 local_nonce; u32 remote_nonce; struct mptcp_sock *msk; struct hlist_nulls_node token_node; }; struct mptcp_sendmsg_info { int mss_now; int size_goal; u16 limit; u16 sent; unsigned int flags; bool data_lock_held; }; struct trace_event_data_offsets_mptcp_subflow_get_send {}; struct trace_event_data_offsets_mptcp_dump_mpext {}; struct trace_event_data_offsets_ack_update_msk {}; struct trace_event_data_offsets_subflow_check_data_avail {}; struct subflow_send_info { struct sock *ssk; u64 linger_time; }; enum x86_legacy_i8042_state { X86_LEGACY_I8042_PLATFORM_ABSENT = 0, X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, X86_LEGACY_I8042_EXPECTED_PRESENT = 2, }; enum show_regs_mode { SHOW_REGS_SHORT = 0, SHOW_REGS_USER = 1, SHOW_REGS_ALL = 2, }; enum which_selector { FS = 0, GS = 1, }; typedef void (*btf_trace_mce_record)(void *, struct mce *); struct mca_config { __u64 lmce_disabled: 1; __u64 disabled: 1; __u64 ser: 1; __u64 recovery: 1; __u64 bios_cmci_threshold: 1; __u64 initialized: 1; __u64 __reserved: 58; bool dont_log_ce; bool cmci_disabled; bool ignore_ce; bool print_all; int monarch_timeout; int panic_timeout; u32 rip_msr; s8 bootlog; }; struct mce_vendor_flags { __u64 overflow_recov: 1; __u64 succor: 1; __u64 smca: 1; __u64 amd_threshold: 1; __u64 p5: 1; __u64 winchip: 1; __u64 snb_ifu_quirk: 1; __u64 skx_repmov_quirk: 1; __u64 __reserved_0: 56; }; struct mce_bank_dev { struct device_attribute attr; char attrname[16]; u8 bank; }; enum mce_notifier_prios { MCE_PRIO_LOWEST = 0, MCE_PRIO_MCELOG = 1, MCE_PRIO_EDAC = 2, MCE_PRIO_NFIT = 3, MCE_PRIO_EXTLOG = 4, MCE_PRIO_UC = 5, MCE_PRIO_EARLY = 6, MCE_PRIO_CEC = 7, MCE_PRIO_HIGHEST = 7, }; enum mf_flags { MF_COUNT_INCREASED = 1, MF_ACTION_REQUIRED = 2, MF_MUST_KILL = 4, MF_SOFT_OFFLINE = 8, MF_UNPOISON = 16, MF_SW_SIMULATED = 32, MF_NO_RETRY = 64, }; struct trace_event_raw_mce_record { struct trace_entry ent; u64 mcgcap; u64 mcgstatus; u64 status; u64 addr; u64 misc; u64 synd; u64 ipid; u64 ip; u64 tsc; u64 walltime; u32 cpu; u32 cpuid; u32 apicid; u32 socketid; u8 cs; u8 bank; u8 cpuvendor; char __data[0]; }; struct mce_evt_llist { struct llist_node llnode; struct mce mce; }; struct trace_event_data_offsets_mce_record {}; enum bpf_text_poke_type { BPF_MOD_CALL = 0, BPF_MOD_JUMP = 1, }; 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 bpf_jit_poke_reason { BPF_POKE_REASON_TAIL_CALL = 0, }; struct jit_context { int cleanup_addr; int tail_call_direct_label; int tail_call_indirect_label; }; struct bpf_binary_header { u32 size; int: 32; u8 image[0]; }; typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); 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 kallsym_iter { loff_t pos; loff_t pos_arch_end; 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; }; }; 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); enum pm_qos_req_action { PM_QOS_ADD_REQ = 0, PM_QOS_UPDATE_REQ = 1, PM_QOS_REMOVE_REQ = 2, }; 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; }; struct trace_event_data_offsets_device_pm_callback_end { u32 device; u32 driver; }; struct trace_event_data_offsets_wakeup_source { u32 name; }; struct trace_event_data_offsets_clock { u32 name; }; struct trace_event_data_offsets_power_domain { u32 name; }; struct trace_event_data_offsets_dev_pm_qos_request { u32 name; }; 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; u32 driver; u32 parent; u32 pm_ops; }; 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 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; }; enum { REGION_INTERSECTS = 0, REGION_DISJOINT = 1, REGION_MIXED = 2, }; enum sgp_type { SGP_READ = 0, SGP_NOALLOC = 1, SGP_CACHE = 2, SGP_WRITE = 3, SGP_FALLOC = 4, }; enum shmem_param { Opt_gid___2 = 0, Opt_huge = 1, Opt_mode___2 = 2, Opt_mpol = 3, Opt_nr_blocks = 4, Opt_nr_inodes___2 = 5, Opt_size___2 = 6, Opt_uid___2 = 7, Opt_inode32 = 8, Opt_inode64 = 9, }; struct mempolicy; struct shmem_sb_info { unsigned long max_blocks; struct percpu_counter used_blocks; unsigned long max_inodes; unsigned long free_inodes; raw_spinlock_t stat_lock; umode_t mode; unsigned char huge; kuid_t uid; kgid_t gid; bool full_inums; 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 mempolicy {}; struct xattr; typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); struct xattr { const char *name; void *value; size_t value_len; }; struct simple_xattr { struct rb_node rb_node; char *name; size_t size; char value[0]; }; struct shmem_falloc { wait_queue_head_t *waitq; unsigned long start; unsigned long next; unsigned long nr_falloced; unsigned long nr_unswapped; }; 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; }; struct mmu_notifier_ops; struct mmu_notifier { struct hlist_node hlist; const struct mmu_notifier_ops *ops; struct mm_struct *mm; struct callback_head rcu; unsigned int users; }; struct mmu_notifier_ops { void (*release)(struct mmu_notifier *, struct mm_struct *); int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long); int (*clear_young)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long); int (*test_young)(struct mmu_notifier *, struct mm_struct *, unsigned long); void (*change_pte)(struct mmu_notifier *, struct mm_struct *, unsigned long, pte_t); int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *); void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *); void (*invalidate_range)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long); struct mmu_notifier * (*alloc_notifier)(struct mm_struct *); void (*free_notifier)(struct mmu_notifier *); }; struct mmu_notifier_subscriptions { struct hlist_head list; bool has_itree; spinlock_t lock; unsigned long invalidate_seq; unsigned long active_invalidate_ranges; struct rb_root_cached itree; wait_queue_head_t wq; struct hlist_head deferred_list; }; 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; }; typedef unsigned short __kernel_old_uid_t; typedef __kernel_old_uid_t old_uid_t; typedef unsigned short __kernel_old_gid_t; typedef __kernel_old_gid_t old_gid_t; 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]; }; typedef u16 compat_nlink_t; struct compat_stat { u32 st_dev; compat_ino_t st_ino; compat_mode_t st_mode; compat_nlink_t st_nlink; __compat_uid_t st_uid; __compat_gid_t st_gid; u32 st_rdev; u32 st_size; u32 st_blksize; u32 st_blocks; u32 st_atime; u32 st_atime_nsec; u32 st_mtime; u32 st_mtime_nsec; u32 st_ctime; u32 st_ctime_nsec; u32 __unused4; u32 __unused5; }; 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 inotify_event { __s32 wd; __u32 mask; __u32 cookie; __u32 len; char name[0]; }; struct vmcore { struct list_head list; unsigned long long paddr; unsigned long long size; loff_t offset; }; struct vmcore_cb { bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long); struct list_head next; }; 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; }; typedef struct elf64_phdr Elf64_Phdr; typedef struct elf64_note Elf64_Nhdr; 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 elf32_note Elf32_Nhdr; struct partial_cluster { ext4_fsblk_t pclu; ext4_lblk_t lblk; enum { initial = 0, tofree = 1, nofree = 2, } state; }; 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 SHIFT_DIRECTION { SHIFT_LEFT = 0, SHIFT_RIGHT = 1, }; struct ext4_io_end_vec { struct list_head list; loff_t offset; ssize_t size; }; struct ext4_extent_tail { __le32 et_checksum; }; 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; }; 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 nfs_page_iter_page { const struct nfs_page *req; size_t count; }; struct nlm_cookie { unsigned char data[32]; unsigned int len; }; struct nlm_lock { char *caller; unsigned int len; struct nfs_fh fh; struct xdr_netobj oh; u32 svid; u64 lock_start; u64 lock_len; struct file_lock fl; }; struct nlm_res { struct nlm_cookie cookie; __be32 status; struct nlm_lock lock; }; struct nlm_args { struct nlm_cookie cookie; struct nlm_lock lock; u32 block; u32 reclaim; u32 state; u32 monitor; u32 fsm_access; u32 fsm_mode; }; struct nlm_block; struct nlm_rqst { refcount_t a_count; unsigned int a_flags; struct nlm_host *a_host; struct nlm_args a_args; struct nlm_res a_res; struct nlm_block *a_block; unsigned int a_retries; u8 a_owner[74]; void *a_callback_data; }; struct nlm_file; struct nlm_block { struct kref b_count; struct list_head b_list; struct list_head b_flist; struct nlm_rqst *b_call; struct svc_serv *b_daemon; struct nlm_host *b_host; unsigned long b_when; unsigned int b_id; unsigned char b_granted; struct nlm_file *b_file; struct cache_req *b_cache_req; struct cache_deferred_req *b_deferred_req; unsigned int b_flags; }; struct nlm_share; struct nlm_file { struct hlist_node f_list; struct nfs_fh f_handle; struct file *f_file[2]; struct nlm_share *f_shares; struct list_head f_blocks; unsigned int f_locks; unsigned int f_count; struct mutex f_mutex; }; struct nlm_share { struct nlm_share *s_next; struct nlm_host *s_host; struct nlm_file *s_file; struct xdr_netobj s_owner; u32 s_access; u32 s_mode; }; struct nlm_reboot { char *mon; unsigned int len; u32 state; struct nsm_private priv; }; struct ima_template_entry { int pcr; struct tpm_digest *digests; struct ima_template_desc *template_desc; u32 template_data_len; struct ima_field_data template_data[0]; }; struct ima_max_digest_data { struct ima_digest_data hdr; u8 digest[64]; }; struct skcipher_request { unsigned int cryptlen; u8 *iv; struct scatterlist *src; struct scatterlist *dst; struct crypto_async_request base; void *__ctx[0]; }; struct skcipher_alg { int (*setkey)(struct crypto_skcipher *, const u8 *, unsigned int); int (*encrypt)(struct skcipher_request *); int (*decrypt)(struct skcipher_request *); int (*init)(struct crypto_skcipher *); void (*exit)(struct crypto_skcipher *); unsigned int min_keysize; unsigned int max_keysize; unsigned int ivsize; unsigned int chunksize; unsigned int walksize; struct crypto_alg base; }; struct skcipher_instance { void (*free)(struct skcipher_instance *); union { struct { char head[64]; struct crypto_instance base; } s; struct skcipher_alg alg; }; }; struct crypto_cipher_spawn { struct crypto_spawn base; }; struct crypto_skcipher_spawn { struct crypto_spawn base; }; struct crypto_cipher { struct crypto_tfm base; }; struct skcipher_ctx_simple { struct crypto_cipher *cipher; }; struct scatter_walk { struct scatterlist *sg; unsigned int offset; }; 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_rfc3686_ctx { struct crypto_skcipher *child; u8 nonce[4]; }; struct crypto_rfc3686_req_ctx { u8 iv[16]; struct skcipher_request subreq; }; 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_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); enum { BLK_MQ_REQ_NOWAIT = 1, BLK_MQ_REQ_RESERVED = 2, BLK_MQ_REQ_PM = 4, }; enum { sysctl_hung_task_timeout_secs = 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 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; }; struct trace_event_data_offsets_block_rq_completion { u32 cmd; }; struct trace_event_data_offsets_block_rq { u32 cmd; }; 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 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 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; }; enum pci_irq_reroute_variant { INTEL_IRQ_REROUTE_VARIANT = 1, MAX_IRQ_REROUTE_VARIANTS = 3, }; struct acpi_pci_routing_table { u32 length; u32 pin; u64 address; u32 source_index; char source[4]; }; struct acpi_prt_entry { struct acpi_pci_id id; u8 pin; acpi_handle link; u32 index; }; typedef u32 acpi_event_status; typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); struct acpi_gpe_block_status_context { struct acpi_gpe_register_info *gpe_skip_register_info; u8 gpe_skip_mask; u8 retval; }; 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; u32 interrupts[1]; } __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_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_address address; u32 dword_item; u16 word_item; u8 byte_item; }; typedef u16 acpi_rs_length; typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); struct virt_dma_desc { struct dma_async_tx_descriptor tx; struct dmaengine_result tx_result; struct list_head node; }; struct virt_dma_chan { struct dma_chan chan; struct tasklet_struct task; void (*desc_free)(struct virt_dma_desc *); spinlock_t lock; struct list_head desc_allocated; struct list_head desc_submitted; struct list_head desc_issued; struct list_head desc_completed; struct list_head desc_terminated; struct virt_dma_desc *cyclic; }; struct dmaengine_desc_callback { dma_async_tx_callback callback; dma_async_tx_callback_result callback_result; void *callback_param; }; 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 execute_work { struct work_struct work; }; struct blake2s_state { u32 h[8]; u32 t[2]; u32 f[2]; u8 buf[64]; unsigned int buflen; unsigned int outlen; }; 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 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, }; 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; }; struct dram_dimm_info { u16 size; u8 width; u8 ranks; }; struct dram_channel_info { struct dram_dimm_info dimm_l; struct dram_dimm_info dimm_s; u8 ranks; bool is_16gb_dimm; }; struct intel_gt_buffer_pool_node { struct i915_active active; struct drm_i915_gem_object *obj; struct list_head link; union { struct intel_gt_buffer_pool *pool; struct intel_gt_buffer_pool_node *free; struct callback_head rcu; }; unsigned long age; enum i915_map_type type; u32 pinned; }; struct ttm_kmap_iter_ops; struct ttm_kmap_iter { const struct ttm_kmap_iter_ops *ops; }; struct ttm_kmap_iter_tt { struct ttm_kmap_iter base; struct ttm_tt *tt; pgprot_t prot; }; struct ttm_kmap_iter_iomap { struct ttm_kmap_iter base; struct io_mapping *iomap; struct sg_table *st; resource_size_t start; struct { struct scatterlist *sg; unsigned long i; unsigned long end; unsigned long offs; } cache; }; struct i915_ttm_memcpy_arg { union { struct ttm_kmap_iter_tt tt; struct ttm_kmap_iter_iomap io; } _dst_iter; union { struct ttm_kmap_iter_tt tt; struct ttm_kmap_iter_iomap io; } _src_iter; struct ttm_kmap_iter *dst_iter; struct ttm_kmap_iter *src_iter; unsigned long num_pages; bool clear; struct i915_refct_sgt *src_rsgt; struct i915_refct_sgt *dst_rsgt; }; struct i915_ttm_memcpy_work { struct dma_fence fence; struct work_struct work; spinlock_t lock; struct irq_work irq_work; struct dma_fence_cb cb; struct i915_ttm_memcpy_arg arg; struct drm_i915_private___3 *i915; struct drm_i915_gem_object *obj; bool memcpy_allowed; }; struct ttm_kmap_iter_ops { void (*map_local)(struct ttm_kmap_iter *, struct iosys_map *, unsigned long); void (*unmap_local)(struct ttm_kmap_iter *, struct iosys_map *); bool maps_tt; }; struct i915_deps { struct dma_fence *single; struct dma_fence **fences; unsigned int num_deps; unsigned int fences_size; gfp_t gfp; }; enum intel_guc_state_capture_event_status { INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_SUCCESS = 0, INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_NOSPACE = 1, }; enum i915_request_state { I915_REQUEST_UNKNOWN = 0, I915_REQUEST_COMPLETE = 1, I915_REQUEST_PENDING = 2, I915_REQUEST_QUEUED = 3, I915_REQUEST_ACTIVE = 4, }; enum { GUC_CONTEXT_POLICIES_KLV_ID_EXECUTION_QUANTUM = 8193, GUC_CONTEXT_POLICIES_KLV_ID_PREEMPTION_TIMEOUT = 8194, GUC_CONTEXT_POLICIES_KLV_ID_SCHEDULING_PRIORITY = 8195, GUC_CONTEXT_POLICIES_KLV_ID_PREEMPT_TO_IDLE_ON_QUANTUM_EXPIRY = 8196, GUC_CONTEXT_POLICIES_KLV_ID_SLPM_GT_FREQUENCY = 8197, GUC_CONTEXT_POLICIES_KLV_NUM_IDS = 5, }; enum { GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD = 4097, }; struct guc_sched_wq_desc { u32 head; u32 tail; u32 error_offset; u32 wq_status; u32 reserved[28]; }; struct guc_process_desc_v69 { u32 stage_id; u64 db_base_addr; u32 head; u32 tail; u32 error_offset; u64 wq_base_addr; u32 wq_size_bytes; u32 wq_status; u32 engine_presence; u32 priority; u32 reserved[36]; } __attribute__((packed)); union guc_descs { struct guc_sched_wq_desc wq_desc; struct guc_process_desc_v69 pdesc; }; struct sync_semaphore { u32 semaphore; u8 unused[60]; }; struct parent_scratch { union guc_descs descs; struct sync_semaphore go; struct sync_semaphore join[9]; u8 unused[1216]; u32 wq[512]; }; struct guc_virtual_engine { struct intel_engine_cs base; struct intel_context context; }; struct guc_update_scheduling_policy_header { u32 action; }; struct guc_update_scheduling_policy { struct guc_update_scheduling_policy_header header; u32 data[3]; }; struct scheduling_policy { u32 max_words; u32 num_words; u32 count; struct guc_update_scheduling_policy h2g; }; struct guc_ctxt_registration_info { u32 flags; u32 context_idx; u32 engine_class; u32 engine_submit_mask; u32 wq_desc_lo; u32 wq_desc_hi; u32 wq_base_lo; u32 wq_base_hi; u32 wq_size; u32 hwlrca_lo; u32 hwlrca_hi; }; struct guc_lrc_desc_v69 { u32 hw_context_desc; u32 slpm_perf_mode_hint; u32 slpm_freq_hint; u32 engine_submit_mask; u8 engine_class; u8 reserved0[3]; u32 priority; u32 process_desc; u32 wq_addr; u32 wq_size; u32 context_flags; u32 execution_quantum; u32 preemption_timeout; u32 policy_flags; u32 reserved1[19]; }; struct guc_engine_usage_record { u32 current_context_index; u32 last_switch_in_stamp; u32 reserved0; u32 total_runtime; u32 reserved1[4]; }; struct guc_update_context_policy_header { u32 action; u32 ctx_id; }; struct guc_klv_generic_dw_t { u32 kl; u32 value; }; struct guc_update_context_policy { struct guc_update_context_policy_header header; struct guc_klv_generic_dw_t klv[5]; }; struct context_policy { u32 count; struct guc_update_context_policy h2g; }; struct intel_dbuf_state { struct intel_global_state base; struct skl_ddb_entry ddb[4]; unsigned int weight[4]; u8 slices[4]; u8 enabled_slices; u8 active_pipes; bool joined_mbus; }; typedef void (*btf_trace_intel_pipe_enable)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_pipe_disable)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_pipe_crc)(void *, struct intel_crtc *, const u32 *); typedef void (*btf_trace_intel_cpu_fifo_underrun)(void *, struct drm_i915_private *, enum pipe); typedef void (*btf_trace_intel_pch_fifo_underrun)(void *, struct drm_i915_private *, enum pipe); typedef void (*btf_trace_intel_memory_cxsr)(void *, struct drm_i915_private *, bool, bool); typedef void (*btf_trace_g4x_wm)(void *, struct intel_crtc *, const struct g4x_wm_values *); typedef void (*btf_trace_vlv_wm)(void *, struct intel_crtc *, const struct vlv_wm_values *); typedef void (*btf_trace_vlv_fifo_size)(void *, struct intel_crtc *, u32, u32, u32); typedef void (*btf_trace_intel_plane_update_noarm)(void *, struct intel_plane *, struct intel_crtc *); typedef void (*btf_trace_intel_plane_update_arm)(void *, struct intel_plane *, struct intel_crtc *); typedef void (*btf_trace_intel_plane_disable_arm)(void *, struct intel_plane *, struct intel_crtc *); typedef void (*btf_trace_intel_fbc_activate)(void *, struct intel_plane *); typedef void (*btf_trace_intel_fbc_deactivate)(void *, struct intel_plane *); typedef void (*btf_trace_intel_fbc_nuke)(void *, struct intel_plane *); typedef void (*btf_trace_intel_crtc_vblank_work_start)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_crtc_vblank_work_end)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_pipe_update_start)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_pipe_update_vblank_evaded)(void *, struct intel_crtc *); typedef void (*btf_trace_intel_pipe_update_end)(void *, struct intel_crtc *, u32, int); typedef void (*btf_trace_intel_frontbuffer_invalidate)(void *, struct drm_i915_private *, unsigned int, unsigned int); typedef void (*btf_trace_intel_frontbuffer_flush)(void *, struct drm_i915_private *, unsigned int, unsigned int); struct trace_event_raw_intel_pipe_enable { struct trace_entry ent; u32 __data_loc_dev; u32 frame[3]; u32 scanline[3]; enum pipe pipe; char __data[0]; }; struct trace_event_raw_intel_pipe_disable { struct trace_entry ent; u32 __data_loc_dev; u32 frame[3]; u32 scanline[3]; enum pipe pipe; char __data[0]; }; struct trace_event_raw_intel_pipe_crc { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 crcs[5]; char __data[0]; }; struct trace_event_raw_intel_cpu_fifo_underrun { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_pch_fifo_underrun { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_memory_cxsr { struct trace_entry ent; u32 __data_loc_dev; u32 frame[3]; u32 scanline[3]; bool old; bool new; char __data[0]; }; struct trace_event_raw_g4x_wm { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u16 primary; u16 sprite; u16 cursor; u16 sr_plane; u16 sr_cursor; u16 sr_fbc; u16 hpll_plane; u16 hpll_cursor; u16 hpll_fbc; bool cxsr; bool hpll; bool fbc; char __data[0]; }; struct trace_event_raw_vlv_wm { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 level; u32 cxsr; u32 primary; u32 sprite0; u32 sprite1; u32 cursor; u32 sr_plane; u32 sr_cursor; char __data[0]; }; struct trace_event_raw_vlv_fifo_size { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 sprite0_start; u32 sprite1_start; u32 fifo_size; char __data[0]; }; struct trace_event_raw_intel_plane_update_noarm { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; int src[4]; int dst[4]; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_intel_plane_update_arm { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; int src[4]; int dst[4]; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_intel_plane_disable_arm { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_intel_fbc_activate { struct trace_entry ent; u32 __data_loc_dev; u32 __data_loc_name; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_fbc_deactivate { struct trace_entry ent; u32 __data_loc_dev; u32 __data_loc_name; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_fbc_nuke { struct trace_entry ent; u32 __data_loc_dev; u32 __data_loc_name; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_crtc_vblank_work_start { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_crtc_vblank_work_end { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_pipe_update_start { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 min; u32 max; char __data[0]; }; struct trace_event_raw_intel_pipe_update_vblank_evaded { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; u32 min; u32 max; char __data[0]; }; struct trace_event_raw_intel_pipe_update_end { struct trace_entry ent; u32 __data_loc_dev; enum pipe pipe; u32 frame; u32 scanline; char __data[0]; }; struct trace_event_raw_intel_frontbuffer_invalidate { struct trace_entry ent; u32 __data_loc_dev; unsigned int frontbuffer_bits; unsigned int origin; char __data[0]; }; struct trace_event_raw_intel_frontbuffer_flush { struct trace_entry ent; u32 __data_loc_dev; unsigned int frontbuffer_bits; unsigned int origin; char __data[0]; }; struct trace_event_data_offsets_intel_pipe_enable { u32 dev; }; struct trace_event_data_offsets_intel_pipe_disable { u32 dev; }; struct trace_event_data_offsets_intel_pipe_crc { u32 dev; }; struct trace_event_data_offsets_intel_cpu_fifo_underrun { u32 dev; }; struct trace_event_data_offsets_intel_pch_fifo_underrun { u32 dev; }; struct trace_event_data_offsets_intel_memory_cxsr { u32 dev; }; struct trace_event_data_offsets_g4x_wm { u32 dev; }; struct trace_event_data_offsets_vlv_wm { u32 dev; }; struct trace_event_data_offsets_vlv_fifo_size { u32 dev; }; struct trace_event_data_offsets_intel_plane_update_noarm { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_plane_update_arm { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_plane_disable_arm { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_fbc_activate { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_fbc_deactivate { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_fbc_nuke { u32 dev; u32 name; }; struct trace_event_data_offsets_intel_crtc_vblank_work_start { u32 dev; }; struct trace_event_data_offsets_intel_crtc_vblank_work_end { u32 dev; }; struct trace_event_data_offsets_intel_pipe_update_start { u32 dev; }; struct trace_event_data_offsets_intel_pipe_update_vblank_evaded { u32 dev; }; struct trace_event_data_offsets_intel_pipe_update_end { u32 dev; }; struct trace_event_data_offsets_intel_frontbuffer_invalidate { u32 dev; }; struct trace_event_data_offsets_intel_frontbuffer_flush { u32 dev; }; typedef void (*btf_trace_virtio_gpu_cmd_queue)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32); typedef void (*btf_trace_virtio_gpu_cmd_response)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32); struct trace_event_raw_virtio_gpu_cmd { struct trace_entry ent; int dev; unsigned int vq; u32 __data_loc_name; u32 type; u32 flags; u64 fence_id; u32 ctx_id; u32 num_free; u32 seqno; char __data[0]; }; struct trace_event_data_offsets_virtio_gpu_cmd { u32 name; }; struct dma_fence_array_cb { struct dma_fence_cb cb; struct dma_fence_array *array; }; enum { ACTION_FAIL = 0, ACTION_REPREP = 1, ACTION_DELAYED_REPREP = 2, ACTION_RETRY = 3, ACTION_DELAYED_RETRY = 4, }; 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 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, }; enum hctx_type { HCTX_TYPE_DEFAULT = 0, HCTX_TYPE_READ = 1, HCTX_TYPE_POLL = 2, HCTX_MAX_TYPES = 3, }; struct scsi_mode_data { __u32 length; __u16 block_descriptor_length; __u8 medium_type; __u8 device_specific; __u8 header_length; __u8 longlba: 1; }; typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); enum i2c_alert_protocol { I2C_PROTOCOL_SMBUS_ALERT = 0, I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, }; 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_device_id; struct i2c_driver { unsigned int class; int (*probe)(struct i2c_client *, const struct i2c_device_id *); void (*remove)(struct i2c_client *); int (*probe_new)(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 gsb_buffer { u8 status; u8 len; union { u16 wdata; u8 bdata; struct { struct { } __empty_data; u8 data[0]; }; }; }; 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; }; struct acpi_connection_info { u8 *connection; u16 length; u8 access_length; }; struct i2c_acpi_handler_data { struct acpi_connection_info info; struct i2c_adapter *adapter; }; struct linear_c { struct dm_dev *dev; sector_t start; }; 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_attr { struct attribute attr; ssize_t (*show)(struct cpuidle_device *, char *); ssize_t (*store)(struct cpuidle_device *, const char *, size_t); }; struct usage_priority { __u32 usage; bool global; unsigned int slot_overwrite; }; typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); struct snd_hrtimer { struct snd_timer *timer; struct hrtimer hrt; bool in_callback; }; typedef atomic_t snd_use_lock_t; struct snd_seq_prioq; struct snd_seq_timer; struct snd_seq_queue { int queue; char name[64]; struct snd_seq_prioq *tickq; struct snd_seq_prioq *timeq; struct snd_seq_timer *timer; int owner; bool locked; bool klocked; bool check_again; bool check_blocked; unsigned int flags; unsigned int info_flags; spinlock_t owner_lock; spinlock_t check_lock; unsigned long clients_bitmap[3]; unsigned int clients; struct mutex timer_mutex; snd_use_lock_t use_lock; }; struct snd_seq_event_cell; struct snd_seq_prioq { struct snd_seq_event_cell *head; struct snd_seq_event_cell *tail; int cells; spinlock_t lock; }; typedef unsigned char snd_seq_event_type_t; typedef unsigned int snd_seq_tick_time_t; struct snd_seq_real_time { unsigned int tv_sec; unsigned int tv_nsec; }; union snd_seq_timestamp { snd_seq_tick_time_t tick; struct snd_seq_real_time time; }; struct snd_seq_addr { unsigned char client; unsigned char port; }; struct snd_seq_ev_note { unsigned char channel; unsigned char note; unsigned char velocity; unsigned char off_velocity; unsigned int duration; }; struct snd_seq_ev_ctrl { unsigned char channel; unsigned char unused1; unsigned char unused2; unsigned char unused3; unsigned int param; int value; }; struct snd_seq_ev_raw8 { unsigned char d[12]; }; struct snd_seq_ev_raw32 { unsigned int d[3]; }; struct snd_seq_ev_ext { unsigned int len; void *ptr; } __attribute__((packed)); struct snd_seq_queue_skew { unsigned int value; unsigned int base; }; struct snd_seq_ev_queue_control { unsigned char queue; unsigned char pad[3]; union { int value; union snd_seq_timestamp time; unsigned int position; struct snd_seq_queue_skew skew; unsigned int d32[2]; unsigned char d8[8]; } param; }; struct snd_seq_connect { struct snd_seq_addr sender; struct snd_seq_addr dest; }; struct snd_seq_result { int event; int result; }; struct snd_seq_event; struct snd_seq_ev_quote { struct snd_seq_addr origin; unsigned short value; struct snd_seq_event *event; } __attribute__((packed)); struct snd_seq_event { snd_seq_event_type_t type; unsigned char flags; char tag; unsigned char queue; union snd_seq_timestamp time; struct snd_seq_addr source; struct snd_seq_addr dest; union { struct snd_seq_ev_note note; struct snd_seq_ev_ctrl control; struct snd_seq_ev_raw8 raw8; struct snd_seq_ev_raw32 raw32; struct snd_seq_ev_ext ext; struct snd_seq_ev_queue_control queue; union snd_seq_timestamp time; struct snd_seq_addr addr; struct snd_seq_connect connect; struct snd_seq_result result; struct snd_seq_ev_quote quote; } data; } __attribute__((packed)); struct snd_seq_pool; struct snd_seq_event_cell { struct snd_seq_event event; struct snd_seq_pool *pool; struct snd_seq_event_cell *next; }; struct snd_seq_pool { struct snd_seq_event_cell *ptr; struct snd_seq_event_cell *free; int total_elements; atomic_t counter; int size; int room; int closing; int max_used; int event_alloc_nopool; int event_alloc_failures; int event_alloc_success; wait_queue_head_t output_sleep; spinlock_t lock; }; typedef struct snd_seq_real_time snd_seq_real_time_t; struct snd_seq_timer_tick { snd_seq_tick_time_t cur_tick; unsigned long resolution; unsigned long fraction; }; struct snd_timer_id { int dev_class; int dev_sclass; int card; int device; int subdevice; }; struct snd_timer_instance; struct snd_seq_timer { unsigned int running: 1; unsigned int initialized: 1; unsigned int tempo; int ppq; snd_seq_real_time_t cur_time; struct snd_seq_timer_tick tick; int tick_updated; int type; struct snd_timer_id alsa_id; struct snd_timer_instance *timeri; unsigned int ticks; unsigned long preferred_resolution; unsigned int skew; unsigned int skew_base; struct timespec64 last_update; spinlock_t lock; }; struct snd_timer_instance { struct snd_timer *timer; char *owner; unsigned int flags; void *private_data; void (*private_free)(struct snd_timer_instance *); void (*callback)(struct snd_timer_instance *, unsigned long, unsigned long); void (*ccallback)(struct snd_timer_instance *, int, struct timespec64 *, unsigned long); void (*disconnect)(struct snd_timer_instance *); void *callback_data; unsigned long ticks; unsigned long cticks; unsigned long pticks; unsigned long resolution; unsigned long lost; int slave_class; unsigned int slave_id; struct list_head open_list; struct list_head active_list; struct list_head ack_list; struct list_head slave_list_head; struct list_head slave_active_head; struct snd_timer_instance *master; }; struct snd_seq_remove_events { unsigned int remove_mode; union snd_seq_timestamp time; unsigned char queue; struct snd_seq_addr dest; unsigned char channel; int type; char tag; int reserved[10]; }; struct snd_seq_queue_tempo { int queue; unsigned int tempo; int ppq; unsigned int skew_value; unsigned int skew_base; char reserved[24]; }; struct net_device_devres { struct net_device *ndev; }; struct page_pool_stats { struct page_pool_alloc_stats alloc_stats; struct page_pool_recycle_stats recycle_stats; }; enum { LWT_BPF_UNSPEC = 0, LWT_BPF_IN = 1, LWT_BPF_OUT = 2, LWT_BPF_XMIT = 3, LWT_BPF_XMIT_HEADROOM = 4, __LWT_BPF_MAX = 5, }; enum { LWT_BPF_PROG_UNSPEC = 0, LWT_BPF_PROG_FD = 1, LWT_BPF_PROG_NAME = 2, __LWT_BPF_PROG_MAX = 3, }; enum bpf_ret_code { BPF_OK = 0, BPF_DROP = 2, BPF_REDIRECT = 7, BPF_LWT_REROUTE = 128, BPF_FLOW_DISSECTOR_CONTINUE = 129, }; struct bpf_skb_data_end { struct qdisc_skb_cb qdisc_cb; void *data_meta; void *data_end; }; struct bpf_lwt_prog { struct bpf_prog *prog; char *name; }; struct bpf_lwt { struct bpf_lwt_prog in; struct bpf_lwt_prog out; struct bpf_lwt_prog xmit; int family; }; 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; }; 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); }; 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 *); }; struct nf_hook_entries_rcu_head { struct callback_head head; void *allocation; }; enum nf_ct_ftp_type { NF_CT_FTP_PORT = 0, NF_CT_FTP_PASV = 1, NF_CT_FTP_EPRT = 2, NF_CT_FTP_EPSV = 3, }; typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32); struct in_pktinfo { int ipi_ifindex; struct in_addr ipi_spec_dst; struct in_addr ipi_addr; }; 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; }; 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; }; struct ip_tunnel_prl { __be32 addr; __u16 flags; __u16 __reserved; __u32 datalen; __u32 __reserved2; }; struct metadata_dst; struct sunrpc_net { struct proc_dir_entry *proc_net_rpc; struct cache_detail *ip_map_cache; struct cache_detail *unix_gid_cache; struct cache_detail *rsc_cache; struct cache_detail *rsi_cache; struct super_block *pipefs_sb; struct rpc_pipe *gssd_dummy; struct mutex pipefs_sb_lock; struct list_head all_clients; spinlock_t rpc_client_lock; struct rpc_clnt *rpcb_local_clnt; struct rpc_clnt *rpcb_local_clnt4; spinlock_t rpcb_clnt_lock; unsigned int rpcb_users; unsigned int rpcb_is_af_local: 1; struct mutex gssp_lock; struct rpc_clnt *gssp_clnt; int use_gss_proxy; int pipe_version; atomic_t pipe_users; struct proc_dir_entry *use_gssp_proc; struct proc_dir_entry *gss_krb5_enctypes; }; struct rpc_sysfs_client { struct kobject kobject; struct net *net; struct rpc_clnt *clnt; struct rpc_xprt_switch *xprt_switch; }; enum nl80211_key_type { NL80211_KEYTYPE_GROUP = 0, NL80211_KEYTYPE_PAIRWISE = 1, NL80211_KEYTYPE_PEERKEY = 2, NUM_NL80211_KEYTYPES = 3, }; 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 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; }; 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 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; }; enum xz_mode { XZ_SINGLE = 0, XZ_PREALLOC = 1, XZ_DYNALLOC = 2, }; struct xz_dec; 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 trampoline_header { u64 start; u64 efer; u32 cr4; u32 flags; }; 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_RSRVD_COMP_11 = 11, XFEATURE_RSRVD_COMP_12 = 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, }; enum rseq_event_mask_bits { RSEQ_EVENT_PREEMPT_BIT = 0, RSEQ_EVENT_SIGNAL_BIT = 1, RSEQ_EVENT_MIGRATE_BIT = 2, }; 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; }; struct debugfs_blob_wrapper { void *data; unsigned long size; }; struct setup_indirect { __u32 type; __u32 reserved; __u64 len; __u64 addr; }; struct setup_data_node { u64 paddr; u32 type; u32 len; }; 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 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 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 mpc_intsrc { unsigned char type; unsigned char irqtype; unsigned short irqflag; unsigned char srcbus; unsigned char srcbusirq; unsigned char dstapic; unsigned char dstirq; }; enum ioapic_domain_type { IOAPIC_DOMAIN_INVALID = 0, IOAPIC_DOMAIN_LEGACY = 1, IOAPIC_DOMAIN_STRICT = 2, IOAPIC_DOMAIN_DYNAMIC = 3, }; enum mp_irq_source_types { mp_INT = 0, mp_NMI = 1, mp_SMI = 2, mp_ExtINT = 3, }; struct mpc_cpu { unsigned char type; unsigned char apicid; unsigned char apicver; unsigned char cpuflag; unsigned int cpufeature; unsigned int featureflag; unsigned int reserved[2]; }; struct mpc_bus { unsigned char type; unsigned char busid; unsigned char bustype[6]; }; struct mpc_ioapic { unsigned char type; unsigned char apicid; unsigned char apicver; unsigned char flags; unsigned int apicaddr; }; struct mpc_lintsrc { unsigned char type; unsigned char irqtype; unsigned short irqflag; unsigned char srcbusid; unsigned char srcbusirq; unsigned char destapic; unsigned char destapiclint; }; struct mpf_intel { char signature[4]; unsigned int physptr; unsigned char length; unsigned char specification; unsigned char checksum; unsigned char feature1; unsigned char feature2; unsigned char feature3; unsigned char feature4; unsigned char feature5; }; struct ioapic_domain_cfg { enum ioapic_domain_type type; const struct irq_domain_ops *ops; struct device_node *dev; }; struct mpc_table { char signature[4]; unsigned short length; char spec; char checksum; char oem[8]; char productid[12]; unsigned int oemptr; unsigned short oemsize; unsigned short oemcount; unsigned int lapic; unsigned int reserved; }; 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 (*task_work_func_t)(struct callback_head *); enum rtmutex_chainwalk { RT_MUTEX_MIN_CHAINWALK = 0, RT_MUTEX_FULL_CHAINWALK = 1, }; struct rt_mutex_waiter { struct rb_node tree_entry; struct rb_node pi_tree_entry; struct task_struct *task; struct rt_mutex_base *lock; unsigned int wake_state; int prio; u64 deadline; struct ww_acquire_ctx *ww_ctx; }; struct rt_wake_q_head { struct wake_q_head head; struct task_struct *rtlock_task; }; enum { IRQTF_RUNTHREAD = 0, IRQTF_WARNED = 1, IRQTF_AFFINITY = 2, IRQTF_FORCED_THREAD = 3, IRQTF_READY = 4, }; 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; }; struct audit_parent { struct list_head watches; struct fsnotify_mark mark; }; struct audit_watch { refcount_t count; dev_t dev; char *path; unsigned long ino; struct audit_parent *parent; struct list_head wlist; struct list_head rules; }; 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; }; 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 bpf_stack_slot_type { STACK_INVALID = 0, STACK_SPILL = 1, STACK_MISC = 2, STACK_ZERO = 3, STACK_DYNPTR = 4, STACK_ITER = 5, }; enum bpf_access_src { ACCESS_DIRECT = 1, ACCESS_HELPER = 2, }; enum { DISCOVERED = 16, EXPLORED = 32, FALLTHROUGH = 1, BRANCH = 2, }; enum { DONE_EXPLORING = 0, KEEP_EXPLORING = 1, }; enum btf_func_linkage { BTF_FUNC_STATIC = 0, BTF_FUNC_GLOBAL = 1, BTF_FUNC_EXTERN = 2, }; enum reg_arg_type { SRC_OP = 0, DST_OP = 1, DST_OP_NO_MARK = 2, }; enum { REASON_BOUNDS = -1, REASON_TYPE = -2, REASON_PATHS = -3, REASON_LIMIT = -4, REASON_STACK = -5, }; enum special_kfunc_type { KF_bpf_obj_new_impl = 0, KF_bpf_obj_drop_impl = 1, KF_bpf_list_push_front = 2, KF_bpf_list_push_back = 3, KF_bpf_list_pop_front = 4, KF_bpf_list_pop_back = 5, KF_bpf_cast_to_kern_ctx = 6, KF_bpf_rdonly_cast = 7, KF_bpf_rcu_read_lock = 8, KF_bpf_rcu_read_unlock = 9, KF_bpf_rbtree_remove = 10, KF_bpf_rbtree_add = 11, KF_bpf_rbtree_first = 12, KF_bpf_dynptr_from_skb = 13, KF_bpf_dynptr_from_xdp = 14, KF_bpf_dynptr_slice = 15, KF_bpf_dynptr_slice_rdwr = 16, }; enum kfunc_ptr_arg_type { KF_ARG_PTR_TO_CTX = 0, KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, KF_ARG_PTR_TO_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, }; 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, }; 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, }; enum { BPF_MAX_LOOPS = 8388608, }; struct bpf_iter_meta__safe_trusted { union { struct seq_file *seq; }; }; struct bpf_iter__task__safe_trusted { union { struct bpf_iter_meta *meta; }; union { 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 css_set__safe_rcu { struct cgroup *dfl_cgrp; }; struct btf_var_secinfo { __u32 type; __u32 offset; __u32 size; }; 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; }; struct btf_id_set { u32 cnt; u32 ids[0]; }; typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); 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_core_ctx { struct bpf_verifier_log *log; const struct btf *btf; }; struct bpf_attach_target_info { struct btf_func_model fmodel; long tgt_addr; const char *tgt_name; const struct btf_type *tgt_type; }; 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 { struct btf *btf; u32 btf_id; } arg_obj_drop; struct { struct btf_field *field; } arg_list_head; struct { struct btf_field *field; } arg_rbtree_root; struct { enum bpf_dynptr_type type; u32 id; } initialized_dynptr; struct { u8 spi; u8 frameno; } iter; u64 mem_size; }; struct bpf_bprintf_data { u32 *bin_args; char *buf; bool get_bin_args; bool get_buf; }; 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 assoc_array_edit; struct crypto_report_aead { char type[64]; char geniv[64]; unsigned int blocksize; unsigned int maxauthsize; unsigned int ivsize; }; 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]; }; struct af_alg_type; struct alg_type_list { const struct af_alg_type *type; struct list_head list; }; struct af_alg_type { void * (*bind)(const char *, u32, u32); void (*release)(void *); int (*setkey)(void *, const u8 *, unsigned int); int (*setentropy)(void *, sockptr_t, unsigned int); int (*accept)(void *, struct sock *); int (*accept_nokey)(void *, struct sock *); int (*setauthsize)(void *, unsigned int); struct proto_ops *ops; struct proto_ops *ops_nokey; struct module *owner; char name[14]; }; struct af_alg_tsgl { struct list_head list; unsigned int cur; struct scatterlist sg[0]; }; struct alg_sock { struct sock sk; struct sock *parent; atomic_t refcnt; atomic_t nokey_refcnt; const struct af_alg_type *type; void *private; }; struct af_alg_sgl { struct scatterlist sg[17]; struct page *pages[16]; unsigned int npages; }; struct af_alg_rsgl { struct af_alg_sgl sgl; struct list_head list; size_t sg_num_bytes; }; struct crypto_wait { struct completion completion; int err; }; struct af_alg_ctx { struct list_head tsgl_list; void *iv; size_t aead_assoclen; struct crypto_wait wait; size_t used; atomic_t rcvused; bool more; bool merge; bool enc; bool init; unsigned int len; }; struct af_alg_iv; struct af_alg_control { struct af_alg_iv *iv; int op; unsigned int aead_assoclen; }; struct af_alg_iv { __u32 ivlen; __u8 iv[0]; }; struct af_alg_async_req { struct kiocb *iocb; struct sock *sk; struct af_alg_rsgl first_rsgl; struct af_alg_rsgl *last_rsgl; struct list_head rsgl_list; struct scatterlist *tsgl; unsigned int tsgl_entries; unsigned int outlen; unsigned int areqlen; union { struct aead_request aead_req; struct skcipher_request skcipher_req; } cra_u; }; struct sockaddr_alg_new { __u16 salg_family; __u8 salg_type[14]; __u32 salg_feat; __u32 salg_mask; __u8 salg_name[0]; }; struct xattr_name; 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 io_xattr { struct file *file; struct xattr_ctx ctx; struct filename *filename; }; struct xattr_name { char name[256]; }; enum { REG_OP_ISFREE = 0, REG_OP_ALLOC = 1, REG_OP_RELEASE = 2, }; struct region { unsigned int start; unsigned int off; unsigned int group_len; unsigned int end; unsigned int nbits; }; typedef unsigned long mpi_limb_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 *mpi_ptr_t; typedef int mpi_size_t; typedef long mpi_limb_signed_t; 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; }; 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, }; struct msr { union { struct { u32 l; u32 h; }; u64 q; }; }; struct msr_info { u32 msr_no; struct msr reg; struct msr *msrs; int err; }; struct msr_info_completion { struct msr_info msr; struct completion done; }; typedef struct __call_single_data call_single_data_t; struct msr_regs_info { u32 *regs; int err; }; 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, }; struct pci_slot_attribute { struct attribute attr; ssize_t (*show)(struct pci_slot *, char *); ssize_t (*store)(struct pci_slot *, const char *, size_t); }; 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); }; 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; }; 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 virtio_dma_buf_ops { struct dma_buf_ops ops; int (*device_attach)(struct dma_buf *, struct dma_buf_attachment *); int (*get_uuid)(struct dma_buf *, uuid_t *); }; 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 tpm2_return_codes { TPM2_RC_SUCCESS = 0, TPM2_RC_HASH = 131, TPM2_RC_HANDLE = 139, TPM2_RC_INITIALIZE = 256, TPM2_RC_FAILURE = 257, TPM2_RC_DISABLED = 288, TPM2_RC_UPGRADE = 301, TPM2_RC_COMMAND_CODE = 323, TPM2_RC_TESTING = 2314, TPM2_RC_REFERENCE_H0 = 2320, TPM2_RC_RETRY = 2338, }; enum tpm2_command_codes { TPM2_CC_FIRST = 287, TPM2_CC_HIERARCHY_CONTROL = 289, TPM2_CC_HIERARCHY_CHANGE_AUTH = 297, TPM2_CC_CREATE_PRIMARY = 305, TPM2_CC_SEQUENCE_COMPLETE = 318, TPM2_CC_SELF_TEST = 323, TPM2_CC_STARTUP = 324, TPM2_CC_SHUTDOWN = 325, TPM2_CC_NV_READ = 334, TPM2_CC_CREATE = 339, TPM2_CC_LOAD = 343, TPM2_CC_SEQUENCE_UPDATE = 348, TPM2_CC_UNSEAL = 350, TPM2_CC_CONTEXT_LOAD = 353, TPM2_CC_CONTEXT_SAVE = 354, TPM2_CC_FLUSH_CONTEXT = 357, TPM2_CC_VERIFY_SIGNATURE = 375, TPM2_CC_GET_CAPABILITY = 378, TPM2_CC_GET_RANDOM = 379, TPM2_CC_PCR_READ = 382, TPM2_CC_PCR_EXTEND = 386, TPM2_CC_EVENT_SEQUENCE_COMPLETE = 389, TPM2_CC_HASH_SEQUENCE_START = 390, TPM2_CC_CREATE_LOADED = 401, TPM2_CC_LAST = 403, }; enum TPM_OPS_FLAGS { TPM_OPS_AUTO_STARTUP = 1, }; enum tpm2_startup_types { TPM2_SU_CLEAR = 0, TPM2_SU_STATE = 1, }; enum tpm_timeout { TPM_TIMEOUT = 5, TPM_TIMEOUT_RETRY = 100, TPM_TIMEOUT_RANGE_US = 300, TPM_TIMEOUT_POLL = 1, TPM_TIMEOUT_USECS_MIN = 100, TPM_TIMEOUT_USECS_MAX = 500, }; typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); struct drm_modeset_ctl { __u32 crtc; __u32 cmd; }; struct drm_crtc_get_sequence { __u32 crtc_id; __u32 active; __u64 sequence; __s64 sequence_ns; }; struct drm_crtc_queue_sequence { __u32 crtc_id; __u32 flags; __u64 sequence; __u64 user_data; }; struct ttm_pool_dma { dma_addr_t addr; unsigned long vaddr; }; 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, }; enum intel_steering_type { L3BANK = 0, MSLICE = 1, LNCF = 2, GAM = 3, DSS = 4, OADDRM = 5, INSTANCE0 = 6, NUM_STEERING_TYPES = 7, }; struct drm_syncobj { struct kref refcount; struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence; struct list_head cb_list; spinlock_t lock; struct file *file; }; enum i915_gem_engine_type { I915_GEM_ENGINE_TYPE_INVALID = 0, I915_GEM_ENGINE_TYPE_PHYSICAL = 1, I915_GEM_ENGINE_TYPE_BALANCED = 2, I915_GEM_ENGINE_TYPE_PARALLEL = 3, }; struct i915_context_engines_load_balance { struct i915_user_extension base; __u16 engine_index; __u16 num_siblings; __u32 flags; __u64 mbz64; struct i915_engine_class_instance engines[0]; }; struct i915_context_engines_bond { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[0]; }; struct i915_context_engines_parallel_submit { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[0]; }; struct i915_gem_proto_engine; struct i915_gem_proto_context { struct i915_address_space *vm; unsigned long user_flags; struct i915_sched_attr sched; int num_user_engines; struct i915_gem_proto_engine *user_engines; struct intel_sseu legacy_rcs_sseu; bool single_timeline; bool uses_protected_content; intel_wakeref_t pxp_wakeref; }; struct i915_gem_proto_engine { enum i915_gem_engine_type type; struct intel_engine_cs *engine; unsigned int num_siblings; unsigned int width; struct intel_engine_cs **siblings; struct intel_sseu sseu; }; struct i915_gem_engines_iter { unsigned int idx; const struct i915_gem_engines *engines; }; struct drm_i915_gem_context_param { __u32 ctx_id; __u32 size; __u64 param; __u64 value; }; struct drm_i915_gem_context_param_sseu { struct i915_engine_class_instance engine; __u32 flags; __u64 slice_mask; __u64 subslice_mask; __u16 min_eus_per_subslice; __u16 max_eus_per_subslice; __u32 rsvd; }; struct set_proto_ctx_engines { struct drm_i915_private___3 *i915; unsigned int num_engines; struct i915_gem_proto_engine *engines; }; struct i915_context_param_engines { __u64 extensions; struct i915_engine_class_instance engines[0]; }; struct i915_pxp_component; struct intel_pxp { struct intel_gt *ctrl_gt; struct i915_pxp_component *pxp_component; bool pxp_component_added; struct intel_context *ce; struct mutex arb_mutex; bool arb_is_valid; u32 key_instance; struct mutex tee_mutex; struct { struct drm_i915_gem_object *obj; void *vaddr; } stream_cmd; bool hw_state_invalidated; bool irq_enabled; struct completion termination; struct work_struct session_work; u32 session_events; }; struct drm_i915_gem_vm_control { __u64 extensions; __u32 flags; __u32 vm_id; }; struct create_ext { struct i915_gem_proto_context *pc; struct drm_i915_file_private *fpriv; }; struct drm_i915_gem_context_create_ext { __u32 ctx_id; __u32 flags; __u64 extensions; }; struct drm_i915_gem_context_destroy { __u32 ctx_id; __u32 pad; }; struct drm_i915_reset_stats { __u32 ctx_id; __u32 flags; __u32 reset_count; __u32 batch_active; __u32 batch_pending; __u32 pad; }; struct drm_i915_gem_context_create_ext_setparam { struct i915_user_extension base; struct drm_i915_gem_context_param param; }; struct execute_cb { struct irq_work work; struct i915_sw_fence *fence; struct i915_request *signal; }; struct request_wait { struct dma_fence_cb cb; struct task_struct *tsk; }; struct drm_color_ctm { __u64 matrix[9]; }; enum virtio_gpu_shm_id { VIRTIO_GPU_SHM_ID_UNDEFINED = 0, VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1, }; struct virtio_gpu_drv_cap_cache { struct list_head head; void *caps_cache; uint32_t id; uint32_t version; uint32_t size; atomic_t is_valid; }; struct cb_id { __u32 idx; __u32 val; }; struct cn_callback_id { unsigned char name[32]; struct cb_id id; }; struct cn_queue_dev; struct cn_msg; struct cn_callback_entry { struct list_head callback_entry; refcount_t refcnt; struct cn_queue_dev *pdev; struct cn_callback_id id; void (*callback)(struct cn_msg *, struct netlink_skb_parms *); u32 seq; u32 group; }; struct cn_queue_dev { atomic_t refcnt; unsigned char name[32]; struct list_head queue_list; spinlock_t queue_lock; struct sock *nls; }; struct cn_msg { struct cb_id id; __u32 seq; __u32 ack; __u16 len; __u16 flags; __u8 data[0]; }; 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_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 media_event_desc { __u8 media_event_code: 4; __u8 reserved1: 4; __u8 door_open: 1; __u8 media_present: 1; __u8 reserved2: 6; __u8 start_slot; __u8 end_slot; }; struct cdrom_tochdr { __u8 cdth_trk0; __u8 cdth_trk1; }; struct scsi_cd { unsigned int capacity; struct scsi_device *device; unsigned int vendor; unsigned long ms_offset; unsigned int writeable: 1; unsigned int use: 1; unsigned int xa_flag: 1; unsigned int readcd_known: 1; unsigned int readcd_cdda: 1; unsigned int media_present: 1; int tur_mismatch; bool tur_changed: 1; bool get_event_changed: 1; bool ignore_get_event: 1; struct cdrom_device_info cdi; struct mutex lock; struct gendisk *disk; }; struct cdrom_ti { __u8 cdti_trk0; __u8 cdti_ind0; __u8 cdti_trk1; __u8 cdti_ind1; }; struct cdrom_tocentry { __u8 cdte_track; __u8 cdte_adr: 4; __u8 cdte_ctrl: 4; __u8 cdte_format; union cdrom_addr cdte_addr; __u8 cdte_datamode; }; typedef struct scsi_cd Scsi_CD; struct fixed_mdio_bus { struct mii_bus *mii_bus; struct list_head phys; }; struct fixed_phy_status { int link; int speed; int duplex; int pause; int asym_pause; }; 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; }; enum devlink_param_type { DEVLINK_PARAM_TYPE_U8 = 0, DEVLINK_PARAM_TYPE_U16 = 1, DEVLINK_PARAM_TYPE_U32 = 2, DEVLINK_PARAM_TYPE_STRING = 3, DEVLINK_PARAM_TYPE_BOOL = 4, }; struct devlink_param_gset_ctx; union devlink_param_value; struct devlink_param { u32 id; const char *name; bool generic; enum devlink_param_type type; unsigned long supported_cmodes; int (*get)(struct devlink *, u32, struct devlink_param_gset_ctx *); int (*set)(struct devlink *, u32, struct devlink_param_gset_ctx *); int (*validate)(struct devlink *, u32, union devlink_param_value, struct netlink_ext_ack *); }; union devlink_param_value { u8 vu8; u16 vu16; u32 vu32; char vstr[32]; bool vbool; }; enum devlink_param_cmode { DEVLINK_PARAM_CMODE_RUNTIME = 0, DEVLINK_PARAM_CMODE_DRIVERINIT = 1, DEVLINK_PARAM_CMODE_PERMANENT = 2, __DEVLINK_PARAM_CMODE_MAX = 3, DEVLINK_PARAM_CMODE_MAX = 2, }; struct devlink_param_gset_ctx { union devlink_param_value val; enum devlink_param_cmode cmode; }; struct devlink_region_ops { const char *name; void (*destructor)(const void *); int (*snapshot)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u8 **); int (*read)(struct devlink *, const struct devlink_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *); void *priv; }; enum devlink_param_generic_id { DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET = 0, DEVLINK_PARAM_GENERIC_ID_MAX_MACS = 1, DEVLINK_PARAM_GENERIC_ID_ENABLE_SRIOV = 2, DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT = 3, DEVLINK_PARAM_GENERIC_ID_IGNORE_ARI = 4, DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX = 5, DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN = 6, DEVLINK_PARAM_GENERIC_ID_FW_LOAD_POLICY = 7, DEVLINK_PARAM_GENERIC_ID_RESET_DEV_ON_DRV_PROBE = 8, DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE = 9, DEVLINK_PARAM_GENERIC_ID_ENABLE_REMOTE_DEV_RESET = 10, DEVLINK_PARAM_GENERIC_ID_ENABLE_ETH = 11, DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA = 12, DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET = 13, DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP = 14, DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE = 15, DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE = 16, __DEVLINK_PARAM_GENERIC_ID_MAX = 17, DEVLINK_PARAM_GENERIC_ID_MAX = 16, }; enum nsim_devlink_param_id { NSIM_DEVLINK_PARAM_ID_BASE = 16, NSIM_DEVLINK_PARAM_ID_TEST1 = 17, }; enum devlink_info_version_type { DEVLINK_INFO_VERSION_TYPE_NONE = 0, DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, }; enum devlink_resource_unit { DEVLINK_RESOURCE_UNIT_ENTRY = 0, }; struct nsim_trap_item; struct nsim_trap_data { struct delayed_work trap_report_dw; struct nsim_trap_item *trap_items_arr; u64 *trap_policers_cnt_arr; u64 trap_pkt_cnt; struct nsim_dev *nsim_dev; spinlock_t trap_lock; }; struct nsim_trap_item { void *trap_ctx; enum devlink_trap_action action; }; struct devlink_resource_size_params { u64 size_min; u64 size_max; u64 size_granularity; enum devlink_resource_unit unit; }; struct nsim_rate_node { struct dentry *ddir; struct dentry *rate_parent; char *parent_name; u16 tx_share; u16 tx_max; }; enum xhci_overhead_type { LS_OVERHEAD_TYPE = 0, FS_OVERHEAD_TYPE = 1, HS_OVERHEAD_TYPE = 2, }; enum xhci_setup_dev { SETUP_CONTEXT_ONLY = 0, SETUP_CONTEXT_ADDRESS = 1, }; 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 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[64]; struct dm_stat_shared stat_shared[0]; }; struct dm_arg_set { unsigned int argc; char **argv; }; struct a4tech_sc { unsigned long quirks; unsigned int hw_wheel; __s32 delayed_value; }; struct key_entry { int type; u32 code; union { u16 keycode; struct { u8 code; u8 value; } sw; }; }; enum { DISABLE_ASL_WLAN = 1, DISABLE_ASL_BLUETOOTH = 2, DISABLE_ASL_IRDA = 4, DISABLE_ASL_CAMERA = 8, DISABLE_ASL_TV = 16, DISABLE_ASL_GPS = 32, DISABLE_ASL_DISPLAYSWITCH = 64, DISABLE_ASL_MODEM = 128, DISABLE_ASL_CARDREADER = 256, DISABLE_ASL_3G = 512, DISABLE_ASL_WIMAX = 1024, DISABLE_ASL_HWCF = 2048, }; enum { CM_ASL_WLAN = 0, CM_ASL_BLUETOOTH = 1, CM_ASL_IRDA = 2, CM_ASL_1394 = 3, CM_ASL_CAMERA = 4, CM_ASL_TV = 5, CM_ASL_GPS = 6, CM_ASL_DVDROM = 7, CM_ASL_DISPLAYSWITCH = 8, CM_ASL_PANELBRIGHT = 9, CM_ASL_BIOSFLASH = 10, CM_ASL_ACPIFLASH = 11, CM_ASL_CPUFV = 12, CM_ASL_CPUTEMPERATURE = 13, CM_ASL_FANCPU = 14, CM_ASL_FANCHASSIS = 15, CM_ASL_USBPORT1 = 16, CM_ASL_USBPORT2 = 17, CM_ASL_USBPORT3 = 18, CM_ASL_MODEM = 19, CM_ASL_CARDREADER = 20, CM_ASL_3G = 21, CM_ASL_WIMAX = 22, CM_ASL_HWCF = 23, CM_ASL_LID = 24, CM_ASL_TYPE = 25, CM_ASL_PANELPOWER = 26, CM_ASL_TPD = 27, }; 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 eeepc_laptop { acpi_handle handle; u32 cm_supported; bool cpufv_disabled; bool hotplug_disabled; u16 event_count[128]; struct platform_device *platform_device; struct acpi_device *device; struct backlight_device *backlight_device; struct input_dev *inputdev; struct rfkill *wlan_rfkill; struct rfkill *bluetooth_rfkill; struct rfkill *wwan3g_rfkill; struct rfkill *wimax_rfkill; struct hotplug_slot hotplug_slot; struct mutex hotplug_lock; struct led_classdev tpd_led; int tpd_led_wk; struct workqueue_struct *led_workqueue; struct work_struct tpd_led_work; }; struct eeepc_cpufv { int num; int cur; }; 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, }; enum xdp_buff_flags { XDP_FLAGS_HAS_FRAGS = 1, XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, }; 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; }; 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 xdp_frame_bulk { int count; void *xa; void *q[16]; }; enum net_xmit_qdisc_t { __NET_XMIT_STOLEN = 65536, __NET_XMIT_BYPASS = 131072, }; 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 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; }; struct ftp_search { const char *pattern; size_t plen; char skip; char term; enum nf_ct_ftp_type ftptype; int (*getnum)(const char *, size_t, struct nf_conntrack_man *, char, unsigned int *); }; struct nf_ct_ftp_master { u_int32_t seq_aft_nl[4]; u_int16_t seq_aft_nl_num[2]; u_int16_t flags[2]; }; 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 ipcm_cookie { struct sockcm_cookie sockc; __be32 addr; int oif; struct ip_options_rcu *opt; __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]; }; struct ipt_standard { struct ipt_entry entry; struct xt_standard_target target; }; 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 ipv6_params { __s32 disable_ipv6; __s32 autoconf; }; 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); void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32); int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *); int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int); 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 *); }; 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); }; enum flowlabel_reflect { FLOWLABEL_REFLECT_ESTABLISHED = 1, FLOWLABEL_REFLECT_TCP_RESET = 2, FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, }; struct rps_sock_flow_table { u32 mask; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; u32 ents[0]; }; struct compat_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; u32 rtmsg_info; u32 rtmsg_flags; s32 rtmsg_ifindex; }; struct snmp_mib { const char *name; int entry; }; struct devlink_cmd { int (*dump_one)(struct sk_buff *, struct devlink *, struct netlink_callback *); }; enum devlink_attr { DEVLINK_ATTR_UNSPEC = 0, DEVLINK_ATTR_BUS_NAME = 1, DEVLINK_ATTR_DEV_NAME = 2, DEVLINK_ATTR_PORT_INDEX = 3, DEVLINK_ATTR_PORT_TYPE = 4, DEVLINK_ATTR_PORT_DESIRED_TYPE = 5, DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 6, DEVLINK_ATTR_PORT_NETDEV_NAME = 7, DEVLINK_ATTR_PORT_IBDEV_NAME = 8, DEVLINK_ATTR_PORT_SPLIT_COUNT = 9, DEVLINK_ATTR_PORT_SPLIT_GROUP = 10, DEVLINK_ATTR_SB_INDEX = 11, DEVLINK_ATTR_SB_SIZE = 12, DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 13, DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 14, DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 15, DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 16, DEVLINK_ATTR_SB_POOL_INDEX = 17, DEVLINK_ATTR_SB_POOL_TYPE = 18, DEVLINK_ATTR_SB_POOL_SIZE = 19, DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 20, DEVLINK_ATTR_SB_THRESHOLD = 21, DEVLINK_ATTR_SB_TC_INDEX = 22, DEVLINK_ATTR_SB_OCC_CUR = 23, DEVLINK_ATTR_SB_OCC_MAX = 24, DEVLINK_ATTR_ESWITCH_MODE = 25, DEVLINK_ATTR_ESWITCH_INLINE_MODE = 26, DEVLINK_ATTR_DPIPE_TABLES = 27, DEVLINK_ATTR_DPIPE_TABLE = 28, DEVLINK_ATTR_DPIPE_TABLE_NAME = 29, DEVLINK_ATTR_DPIPE_TABLE_SIZE = 30, DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 31, DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 32, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 33, DEVLINK_ATTR_DPIPE_ENTRIES = 34, DEVLINK_ATTR_DPIPE_ENTRY = 35, DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 36, DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 37, DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 38, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 39, DEVLINK_ATTR_DPIPE_MATCH = 40, DEVLINK_ATTR_DPIPE_MATCH_VALUE = 41, DEVLINK_ATTR_DPIPE_MATCH_TYPE = 42, DEVLINK_ATTR_DPIPE_ACTION = 43, DEVLINK_ATTR_DPIPE_ACTION_VALUE = 44, DEVLINK_ATTR_DPIPE_ACTION_TYPE = 45, DEVLINK_ATTR_DPIPE_VALUE = 46, DEVLINK_ATTR_DPIPE_VALUE_MASK = 47, DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 48, DEVLINK_ATTR_DPIPE_HEADERS = 49, DEVLINK_ATTR_DPIPE_HEADER = 50, DEVLINK_ATTR_DPIPE_HEADER_NAME = 51, DEVLINK_ATTR_DPIPE_HEADER_ID = 52, DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 53, DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 54, DEVLINK_ATTR_DPIPE_HEADER_INDEX = 55, DEVLINK_ATTR_DPIPE_FIELD = 56, DEVLINK_ATTR_DPIPE_FIELD_NAME = 57, DEVLINK_ATTR_DPIPE_FIELD_ID = 58, DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 59, DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 60, DEVLINK_ATTR_PAD = 61, DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 62, DEVLINK_ATTR_RESOURCE_LIST = 63, DEVLINK_ATTR_RESOURCE = 64, DEVLINK_ATTR_RESOURCE_NAME = 65, DEVLINK_ATTR_RESOURCE_ID = 66, DEVLINK_ATTR_RESOURCE_SIZE = 67, DEVLINK_ATTR_RESOURCE_SIZE_NEW = 68, DEVLINK_ATTR_RESOURCE_SIZE_VALID = 69, DEVLINK_ATTR_RESOURCE_SIZE_MIN = 70, DEVLINK_ATTR_RESOURCE_SIZE_MAX = 71, DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 72, DEVLINK_ATTR_RESOURCE_UNIT = 73, DEVLINK_ATTR_RESOURCE_OCC = 74, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 75, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 76, DEVLINK_ATTR_PORT_FLAVOUR = 77, DEVLINK_ATTR_PORT_NUMBER = 78, DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 79, DEVLINK_ATTR_PARAM = 80, DEVLINK_ATTR_PARAM_NAME = 81, DEVLINK_ATTR_PARAM_GENERIC = 82, DEVLINK_ATTR_PARAM_TYPE = 83, DEVLINK_ATTR_PARAM_VALUES_LIST = 84, DEVLINK_ATTR_PARAM_VALUE = 85, DEVLINK_ATTR_PARAM_VALUE_DATA = 86, DEVLINK_ATTR_PARAM_VALUE_CMODE = 87, DEVLINK_ATTR_REGION_NAME = 88, DEVLINK_ATTR_REGION_SIZE = 89, DEVLINK_ATTR_REGION_SNAPSHOTS = 90, DEVLINK_ATTR_REGION_SNAPSHOT = 91, DEVLINK_ATTR_REGION_SNAPSHOT_ID = 92, DEVLINK_ATTR_REGION_CHUNKS = 93, DEVLINK_ATTR_REGION_CHUNK = 94, DEVLINK_ATTR_REGION_CHUNK_DATA = 95, DEVLINK_ATTR_REGION_CHUNK_ADDR = 96, DEVLINK_ATTR_REGION_CHUNK_LEN = 97, DEVLINK_ATTR_INFO_DRIVER_NAME = 98, DEVLINK_ATTR_INFO_SERIAL_NUMBER = 99, DEVLINK_ATTR_INFO_VERSION_FIXED = 100, DEVLINK_ATTR_INFO_VERSION_RUNNING = 101, DEVLINK_ATTR_INFO_VERSION_STORED = 102, DEVLINK_ATTR_INFO_VERSION_NAME = 103, DEVLINK_ATTR_INFO_VERSION_VALUE = 104, DEVLINK_ATTR_SB_POOL_CELL_SIZE = 105, DEVLINK_ATTR_FMSG = 106, DEVLINK_ATTR_FMSG_OBJ_NEST_START = 107, DEVLINK_ATTR_FMSG_PAIR_NEST_START = 108, DEVLINK_ATTR_FMSG_ARR_NEST_START = 109, DEVLINK_ATTR_FMSG_NEST_END = 110, DEVLINK_ATTR_FMSG_OBJ_NAME = 111, DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 112, DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 113, DEVLINK_ATTR_HEALTH_REPORTER = 114, DEVLINK_ATTR_HEALTH_REPORTER_NAME = 115, DEVLINK_ATTR_HEALTH_REPORTER_STATE = 116, DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 117, DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 118, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 119, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 120, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 121, DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 122, DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 123, DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 124, DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 125, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 126, DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 127, DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 128, DEVLINK_ATTR_STATS = 129, DEVLINK_ATTR_TRAP_NAME = 130, DEVLINK_ATTR_TRAP_ACTION = 131, DEVLINK_ATTR_TRAP_TYPE = 132, DEVLINK_ATTR_TRAP_GENERIC = 133, DEVLINK_ATTR_TRAP_METADATA = 134, DEVLINK_ATTR_TRAP_GROUP_NAME = 135, DEVLINK_ATTR_RELOAD_FAILED = 136, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 137, DEVLINK_ATTR_NETNS_FD = 138, DEVLINK_ATTR_NETNS_PID = 139, DEVLINK_ATTR_NETNS_ID = 140, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 141, DEVLINK_ATTR_TRAP_POLICER_ID = 142, DEVLINK_ATTR_TRAP_POLICER_RATE = 143, DEVLINK_ATTR_TRAP_POLICER_BURST = 144, DEVLINK_ATTR_PORT_FUNCTION = 145, DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 146, DEVLINK_ATTR_PORT_LANES = 147, DEVLINK_ATTR_PORT_SPLITTABLE = 148, DEVLINK_ATTR_PORT_EXTERNAL = 149, DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 150, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 151, DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 152, DEVLINK_ATTR_RELOAD_ACTION = 153, DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 154, DEVLINK_ATTR_RELOAD_LIMITS = 155, DEVLINK_ATTR_DEV_STATS = 156, DEVLINK_ATTR_RELOAD_STATS = 157, DEVLINK_ATTR_RELOAD_STATS_ENTRY = 158, DEVLINK_ATTR_RELOAD_STATS_LIMIT = 159, DEVLINK_ATTR_RELOAD_STATS_VALUE = 160, DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161, DEVLINK_ATTR_RELOAD_ACTION_INFO = 162, DEVLINK_ATTR_RELOAD_ACTION_STATS = 163, DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164, DEVLINK_ATTR_RATE_TYPE = 165, DEVLINK_ATTR_RATE_TX_SHARE = 166, DEVLINK_ATTR_RATE_TX_MAX = 167, DEVLINK_ATTR_RATE_NODE_NAME = 168, DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169, DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 170, DEVLINK_ATTR_LINECARD_INDEX = 171, DEVLINK_ATTR_LINECARD_STATE = 172, DEVLINK_ATTR_LINECARD_TYPE = 173, DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 174, DEVLINK_ATTR_NESTED_DEVLINK = 175, DEVLINK_ATTR_SELFTESTS = 176, DEVLINK_ATTR_RATE_TX_PRIORITY = 177, DEVLINK_ATTR_RATE_TX_WEIGHT = 178, DEVLINK_ATTR_REGION_DIRECT = 179, __DEVLINK_ATTR_MAX = 180, DEVLINK_ATTR_MAX = 179, }; struct devlink_nl_dump_state { unsigned long instance; int idx; union { struct { u64 start_offset; }; struct { u64 dump_ts; }; }; }; struct gss_domain { struct auth_domain h; u32 pseudoflavor; }; struct rsi { struct cache_head h; struct xdr_netobj in_handle; struct xdr_netobj in_token; struct xdr_netobj out_handle; struct xdr_netobj out_token; int major_status; int minor_status; struct callback_head callback_head; }; typedef unsigned int OM_uint32; struct gss_svc_seq_data { u32 sd_max; unsigned long sd_win[2]; spinlock_t sd_lock; }; struct rsc { struct cache_head h; struct xdr_netobj handle; struct svc_cred cred; struct gss_svc_seq_data seqdata; struct gss_ctx *mechctx; struct callback_head callback_head; }; struct gss_svc_data { struct rpc_gss_wire_cred clcred; u32 gsd_databody_offset; struct rsc *rsci; __be32 gsd_seq_num; u8 gsd_scratch[40]; }; struct gssp_in_token { struct page **pages; unsigned int page_base; unsigned int page_len; }; struct gssp_upcall_data { struct xdr_netobj in_handle; struct gssp_in_token in_token; struct xdr_netobj out_handle; struct xdr_netobj out_token; struct rpcsec_gss_oid mech_oid; struct svc_cred creds; int found_creds; int major_status; int minor_status; }; enum ieee80211_back_parties { WLAN_BACK_RECIPIENT = 0, WLAN_BACK_INITIATOR = 1, }; enum ieee80211_back_actioncode { WLAN_ACTION_ADDBA_REQ = 0, WLAN_ACTION_ADDBA_RESP = 1, WLAN_ACTION_DELBA = 2, }; 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_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 = 33, WLAN_PUB_ACTION_FILS_DISCOVERY = 34, }; 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; } __attribute__((packed)); 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]; }; 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 { INET_ULP_INFO_UNSPEC = 0, INET_ULP_INFO_NAME = 1, INET_ULP_INFO_TLS = 2, INET_ULP_INFO_MPTCP = 3, __INET_ULP_INFO_MAX = 4, }; enum { MPTCP_SUBFLOW_ATTR_UNSPEC = 0, MPTCP_SUBFLOW_ATTR_TOKEN_REM = 1, MPTCP_SUBFLOW_ATTR_TOKEN_LOC = 2, MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ = 3, MPTCP_SUBFLOW_ATTR_MAP_SEQ = 4, MPTCP_SUBFLOW_ATTR_MAP_SFSEQ = 5, MPTCP_SUBFLOW_ATTR_SSN_OFFSET = 6, MPTCP_SUBFLOW_ATTR_MAP_DATALEN = 7, MPTCP_SUBFLOW_ATTR_FLAGS = 8, MPTCP_SUBFLOW_ATTR_ID_REM = 9, MPTCP_SUBFLOW_ATTR_ID_LOC = 10, MPTCP_SUBFLOW_ATTR_PAD = 11, __MPTCP_SUBFLOW_ATTR_MAX = 12, }; enum efi_secureboot_mode { efi_secureboot_mode_unset = 0, efi_secureboot_mode_unknown = 1, efi_secureboot_mode_disabled = 2, efi_secureboot_mode_enabled = 3, }; struct ima_setup_data { __u64 addr; __u64 size; }; struct change_member { struct e820_entry *entry; unsigned long long addr; }; struct mcs_spinlock { struct mcs_spinlock *next; int locked; int count; }; struct qnode { struct mcs_spinlock mcs; }; struct module_use { struct list_head source_list; struct list_head target_list; struct module *source; struct module *target; }; struct k_itimer; 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; }; 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 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; }; union compat_sigval { compat_int_t sival_int; compat_uptr_t sival_ptr; }; typedef union compat_sigval compat_sigval_t; struct compat_sigevent { compat_sigval_t sigev_value; compat_int_t sigev_signo; compat_int_t sigev_notify; union { compat_int_t _pad[13]; compat_int_t _tid; struct { compat_uptr_t _function; compat_uptr_t _attribute; } _sigev_thread; } _sigev_un; }; 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; }; struct old_timex32 { u32 modes; s32 offset; s32 freq; s32 maxerror; s32 esterror; s32 status; s32 constant; s32 precision; s32 tolerance; struct old_timeval32 time; s32 tick; s32 ppsfreq; s32 jitter; s32 shift; s32 stabil; s32 jitcnt; s32 calcnt; s32 errcnt; s32 stbcnt; s32 tai; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; }; typedef struct sigevent sigevent_t; struct timezone { int tz_minuteswest; int tz_dsttime; }; 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; }; struct fprobe { struct ftrace_ops ops; unsigned long nmissed; unsigned int flags; struct rethook *rethook; void (*entry_handler)(struct fprobe *, unsigned long, struct pt_regs *); void (*exit_handler)(struct fprobe *, unsigned long, struct pt_regs *); }; struct fprobe_rethook_node { struct rethook_node node; unsigned long entry_ip; }; enum { BPF_MAX_TRAMP_LINKS = 38, }; struct bpf_shim_tramp_link { struct bpf_tramp_link link; struct bpf_trampoline *trampoline; }; enum { FOLL_TOUCH = 65536, FOLL_TRIED = 131072, FOLL_REMOTE = 262144, FOLL_PIN = 524288, FOLL_FAST_ONLY = 1048576, FOLL_UNLOCKABLE = 2097152, }; struct follow_page_context { struct dev_pagemap *pgmap; unsigned int page_mask; }; enum mcopy_atomic_mode { MCOPY_ATOMIC_NORMAL = 0, MCOPY_ATOMIC_ZEROPAGE = 1, MCOPY_ATOMIC_CONTINUE = 2, }; 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 iomap_dio_ops; 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; struct bio *poll_bio; } submit; struct { struct work_struct work; } aio; }; }; 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 ext4_system_zone { struct rb_node node; ext4_fsblk_t start_blk; unsigned int count; u32 ino; }; struct ext4_orphan_block_tail { __le32 ob_magic; __le32 ob_checksum; }; enum p9_open_mode_t { P9_OREAD = 0, P9_OWRITE = 1, P9_ORDWR = 2, P9_OEXEC = 3, P9_OTRUNC = 16, P9_OREXEC = 32, P9_ORCLOSE = 64, P9_OAPPEND = 128, P9_OEXCL = 4096, }; enum label_initialized { LABEL_INVALID = 0, LABEL_INITIALIZED = 1, LABEL_PENDING = 2, }; enum sel_inos { SEL_ROOT_INO = 2, SEL_LOAD = 3, SEL_ENFORCE = 4, SEL_CONTEXT = 5, SEL_ACCESS = 6, SEL_CREATE = 7, SEL_RELABEL = 8, SEL_USER = 9, SEL_POLICYVERS = 10, SEL_COMMIT_BOOLS = 11, SEL_MLS = 12, SEL_DISABLE = 13, SEL_MEMBER = 14, SEL_CHECKREQPROT = 15, SEL_COMPAT_NET = 16, SEL_REJECT_UNKNOWN = 17, SEL_DENY_UNKNOWN = 18, SEL_STATUS = 19, SEL_POLICY = 20, SEL_VALIDATE_TRANS = 21, SEL_INO_NEXT = 22, }; struct avc_cache_stats { unsigned int lookups; unsigned int misses; unsigned int allocations; unsigned int reclaims; unsigned int frees; }; struct selinux_fs_info { struct dentry *bool_dir; unsigned int bool_num; char **bool_pending_names; int *bool_pending_values; struct dentry *class_dir; unsigned long last_class_ino; bool policy_opened; struct dentry *policycap_dir; unsigned long last_ino; struct selinux_state *state; struct super_block *sb; }; struct inode_security_struct { struct inode *inode; struct list_head list; u32 task_sid; u32 sid; u16 sclass; unsigned char initialized; spinlock_t lock; }; struct task_security_struct { u32 osid; u32 sid; u32 exec_sid; u32 create_sid; u32 keycreate_sid; u32 sockcreate_sid; }; struct lsm_network_audit; struct lsm_ioctlop_audit; struct lsm_ibpkey_audit; struct lsm_ibendport_audit; struct selinux_audit_data; struct common_audit_data { char type; union { struct path path; struct dentry *dentry; struct inode *inode; struct lsm_network_audit *net; int cap; int ipc_id; struct task_struct *tsk; struct { key_serial_t key; char *key_desc; } key_struct; char *kmod_name; struct lsm_ioctlop_audit *op; struct file *file; struct lsm_ibpkey_audit *ibpkey; struct lsm_ibendport_audit *ibendport; int reason; const char *anonclass; } u; union { struct selinux_audit_data *selinux_audit_data; }; }; struct lsm_network_audit { int netif; const struct sock *sk; u16 family; __be16 dport; __be16 sport; union { struct { __be32 daddr; __be32 saddr; } v4; struct { struct in6_addr daddr; struct in6_addr saddr; } v6; } fam; }; struct lsm_ioctlop_audit { struct path path; u16 cmd; }; struct lsm_ibpkey_audit { u64 subnet_prefix; u16 pkey; }; struct lsm_ibendport_audit { const char *dev_name; u8 port; }; struct selinux_audit_data { u32 ssid; u32 tsid; u16 tclass; u32 requested; u32 audited; u32 denied; int result; struct selinux_state *state; }; struct selinux_policy_convert_data; struct selinux_load_state { struct selinux_policy *policy; struct selinux_policy_convert_data *convert_data; }; struct av_decision { u32 allowed; u32 auditallow; u32 auditdeny; u32 seqno; u32 flags; }; struct policy_load_memory { size_t len; void *data; }; struct rsa_mpi_key { MPI n; MPI e; MPI d; MPI p; MPI q; MPI dp; MPI dq; MPI qinv; }; 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 chksum_ctx { u32 key; }; struct chksum_desc_ctx { u32 crc; }; 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 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; }; enum { MAX_OPT_ARGS = 3, }; 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; }; 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; struct ZSTD_DCtx_s; typedef struct ZSTD_DCtx_s ZSTD_DCtx; typedef ZSTD_DCtx ZSTD_DStream; struct ZSTD_outBuffer_s { void *dst; size_t size; size_t pos; }; typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; struct ZSTD_inBuffer_s { const void *src; size_t size; size_t pos; }; typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; 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 ZSTD_ErrorCode zstd_error_code; typedef ZSTD_DCtx zstd_dctx; typedef ZSTD_DStream zstd_dstream; typedef ZSTD_outBuffer zstd_out_buffer; typedef ZSTD_inBuffer zstd_in_buffer; typedef ZSTD_frameHeader zstd_frame_header; typedef mpi_limb_t UWtype; typedef unsigned int UHWtype; 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 pcie_device; struct pcie_port_service_driver { const char *name; int (*probe)(struct pcie_device *); void (*remove)(struct pcie_device *); int (*suspend)(struct pcie_device *); int (*resume_noirq)(struct pcie_device *); int (*resume)(struct pcie_device *); int (*runtime_suspend)(struct pcie_device *); int (*runtime_resume)(struct pcie_device *); int (*slot_reset)(struct pcie_device *); int port_type; u32 service; struct device_driver driver; }; struct pcie_device { int irq; struct pci_dev *port; u32 service; void *priv_data; struct device device; }; struct pcie_pme_service_data { spinlock_t lock; struct pcie_device *srv; struct work_struct work; bool noirq; }; 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 res_proc_context { struct list_head *list; int (*preproc)(struct acpi_resource *, void *); void *preproc_data; int count; int error; }; 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_rsconvert_info { u8 opcode; u8 resource_offset; u8 aml_offset; u8 value; }; struct acpi_vendor_uuid { u8 subtype; u8 data[16]; }; struct pnp_resource { struct list_head list; struct resource res; }; typedef struct { unsigned long bits[4]; } pnp_irq_mask_t; struct acpipnp_parse_option_s { struct pnp_dev *dev; unsigned int option_flags; }; struct pts_fs_info; enum { VIA_STRFILT_CNT_SHIFT = 16, VIA_STRFILT_FAIL = 32768, VIA_STRFILT_ENABLE = 16384, VIA_RAWBITS_ENABLE = 8192, VIA_RNG_ENABLE = 64, VIA_NOISESRC1 = 256, VIA_NOISESRC2 = 512, VIA_XSTORE_CNT_MASK = 15, VIA_RNG_CHUNK_8 = 0, VIA_RNG_CHUNK_4 = 1, VIA_RNG_CHUNK_4_MASK = 4294967295, VIA_RNG_CHUNK_2 = 2, VIA_RNG_CHUNK_2_MASK = 65535, VIA_RNG_CHUNK_1 = 3, VIA_RNG_CHUNK_1_MASK = 255, }; struct aper_size_info_16 { int size; int num_entries; int page_order; u16 size_value; }; enum aper_size_type { U8_APER_SIZE = 0, U16_APER_SIZE = 1, U32_APER_SIZE = 2, LVL2_APER_SIZE = 3, FIXED_APER_SIZE = 4, }; enum chipset_type { NOT_SUPPORTED = 0, SUPPORTED = 1, }; struct aper_size_info_8 { int size; int num_entries; int page_order; u8 size_value; }; struct aper_size_info_32 { int size; int num_entries; int page_order; u32 size_value; }; struct aper_size_info_lvl2 { int size; int num_entries; u32 size_value; }; struct aper_size_info_fixed { int size; int num_entries; int page_order; }; struct agp_bridge_data; struct agp_memory { struct agp_memory *next; struct agp_memory *prev; struct agp_bridge_data *bridge; struct page **pages; size_t page_count; int key; int num_scratch_pages; off_t pg_start; u32 type; u32 physical; bool is_bound; bool is_flushed; struct list_head mapped_list; struct scatterlist *sg_list; int num_sg; }; struct agp_version; struct agp_bridge_driver; struct agp_bridge_data { const struct agp_version *version; const struct agp_bridge_driver *driver; const struct vm_operations_struct *vm_ops; void *previous_size; void *current_size; void *dev_private_data; struct pci_dev *dev; u32 *gatt_table; u32 *gatt_table_real; unsigned long scratch_page; struct page *scratch_page_page; dma_addr_t scratch_page_dma; unsigned long gart_bus_addr; unsigned long gatt_bus_addr; u32 mode; enum chipset_type type; unsigned long *key_list; atomic_t current_memory_agp; atomic_t agp_in_use; int max_memory_agp; int aperture_size_idx; int capndx; int flags; char major_version; char minor_version; struct list_head list; u32 apbase_config; struct list_head mapped_list; spinlock_t mapped_lock; }; struct agp_version { u16 major; u16 minor; }; struct gatt_mask; struct agp_bridge_driver { struct module *owner; const void *aperture_sizes; int num_aperture_sizes; enum aper_size_type size_type; bool cant_use_aperture; bool needs_scratch_page; const struct gatt_mask *masks; int (*fetch_size)(); int (*configure)(); void (*agp_enable)(struct agp_bridge_data *, u32); void (*cleanup)(); void (*tlb_flush)(struct agp_memory *); unsigned long (*mask_memory)(struct agp_bridge_data *, dma_addr_t, int); void (*cache_flush)(); int (*create_gatt_table)(struct agp_bridge_data *); int (*free_gatt_table)(struct agp_bridge_data *); int (*insert_memory)(struct agp_memory *, off_t, int); int (*remove_memory)(struct agp_memory *, off_t, int); struct agp_memory * (*alloc_by_type)(size_t, int); void (*free_by_type)(struct agp_memory *); struct page * (*agp_alloc_page)(struct agp_bridge_data *); int (*agp_alloc_pages)(struct agp_bridge_data *, struct agp_memory *, size_t); void (*agp_destroy_page)(struct page *, int); void (*agp_destroy_pages)(struct agp_memory *); int (*agp_type_to_mask_type)(struct agp_bridge_data *, int); }; struct gatt_mask { unsigned long mask; u32 type; }; struct agp_kern_info { struct agp_version version; struct pci_dev *device; enum chipset_type chipset; unsigned long mode; unsigned long aper_base; size_t aper_size; int max_memory; int current_memory; bool cant_use_aperture; unsigned long page_mask; const struct vm_operations_struct *vm_ops; }; struct ivrs_quirk_entry { u8 id; u32 devid; }; enum acpi_dmar_scope_type { ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1, ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, ACPI_DMAR_SCOPE_TYPE_HPET = 4, ACPI_DMAR_SCOPE_TYPE_NAMESPACE = 5, ACPI_DMAR_SCOPE_TYPE_RESERVED = 6, }; enum latency_type { DMAR_LATENCY_INV_IOTLB = 0, DMAR_LATENCY_INV_DEVTLB = 1, DMAR_LATENCY_INV_IEC = 2, DMAR_LATENCY_PRQ = 3, DMAR_LATENCY_NUM = 4, }; enum { QI_FREE = 0, QI_IN_USE = 1, QI_DONE = 2, QI_ABORT = 3, }; enum acpi_dmar_type { ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, ACPI_DMAR_TYPE_ROOT_ATS = 2, ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3, ACPI_DMAR_TYPE_NAMESPACE = 4, ACPI_DMAR_TYPE_SATC = 5, ACPI_DMAR_TYPE_RESERVED = 6, }; enum faulttype { DMA_REMAP = 0, INTR_REMAP = 1, UNKNOWN = 2, }; struct acpi_dmar_pci_path { u8 device; u8 function; }; struct acpi_dmar_header; struct dmar_dev_scope; struct intel_iommu; struct dmar_drhd_unit { struct list_head list; struct acpi_dmar_header *hdr; u64 reg_base_addr; unsigned long reg_size; struct dmar_dev_scope *devices; int devices_cnt; u16 segment; u8 ignored: 1; u8 include_all: 1; u8 gfx_dedicated: 1; struct intel_iommu *iommu; }; struct acpi_dmar_header { u16 type; u16 length; }; struct dmar_dev_scope { struct device __attribute__((btf_type_tag("rcu"))) *dev; u8 bus; u8 devfn; }; struct iommu_flush { void (*flush_context)(struct intel_iommu *, u16, u16, u8, u64); void (*flush_iotlb)(struct intel_iommu *, u16, u64, unsigned int, u64); }; struct iopf_queue; struct root_entry; struct q_inval; struct iommu_pmu; struct intel_iommu { void *reg; u64 reg_phys; u64 reg_size; u64 cap; u64 ecap; u64 vccap; u64 ecmdcap[4]; u32 gcmd; raw_spinlock_t register_lock; int seq_id; int agaw; int msagaw; unsigned int irq; unsigned int pr_irq; unsigned int perf_irq; u16 segment; unsigned char name[13]; unsigned long *domain_ids; unsigned long *copied_tables; spinlock_t lock; struct root_entry *root_entry; struct iommu_flush flush; struct iopf_queue *iopf_queue; unsigned char iopfq_name[16]; struct q_inval *qi; u32 *iommu_state; struct iommu_device iommu; int node; u32 flags; struct dmar_drhd_unit *drhd; void *perf_statistic; struct iommu_pmu *pmu; }; struct root_entry { u64 lo; u64 hi; }; struct q_inval { raw_spinlock_t q_lock; void *desc; int *desc_status; int free_head; int free_tail; int free_cnt; }; struct iommu_pmu { struct intel_iommu *iommu; u32 num_cntr; u32 num_eg; u32 cntr_width; u32 cntr_stride; u32 filter; void *base; void *cfg_reg; void *cntr_reg; void *overflow; u64 *evcap; u32 **cntr_evcap; struct pmu pmu; unsigned long used_mask[1]; struct perf_event *event_list[64]; unsigned char irq_name[16]; }; struct acpi_dmar_hardware_unit { struct acpi_dmar_header header; u8 flags; u8 size; u16 segment; u64 address; }; struct acpi_table_dmar { struct acpi_table_header header; u8 width; u8 flags; u8 reserved[10]; }; typedef unsigned long long cycles_t; struct dmar_pci_path { u8 bus; u8 device; u8 function; }; struct dmar_pci_notify_info { struct pci_dev *dev; unsigned long event; int bus; u16 seg; u16 level; struct dmar_pci_path path[0]; }; struct acpi_dmar_reserved_memory { struct acpi_dmar_header header; u16 reserved; u16 segment; u64 base_address; u64 end_address; }; struct acpi_dmar_atsr { struct acpi_dmar_header header; u8 flags; u8 reserved; u16 segment; }; struct acpi_dmar_rhsa { struct acpi_dmar_header header; u32 reserved; u64 base_address; u32 proximity_domain; } __attribute__((packed)); struct acpi_dmar_satc { struct acpi_dmar_header header; u8 flags; u8 reserved; u16 segment; }; typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *); struct dmar_res_callback { dmar_res_handler_t cb[6]; void *arg[6]; bool ignore_unhandled; bool print_entry; }; struct qi_desc { u64 qw0; u64 qw1; u64 qw2; u64 qw3; }; struct acpi_dmar_device_scope { u8 entry_type; u8 length; u16 reserved; u8 enumeration_id; u8 bus; }; struct acpi_dmar_andd { struct acpi_dmar_header header; u8 reserved[3]; u8 device_number; char device_name[1]; } __attribute__((packed)); typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool); typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file___3 *, int, unsigned int); typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file___3 *, int, unsigned int); struct trace_event_raw_drm_vblank_event { struct trace_entry ent; int crtc; unsigned int seq; ktime_t time; bool high_prec; char __data[0]; }; struct trace_event_raw_drm_vblank_event_queued { struct trace_entry ent; struct drm_file___3 *file; int crtc; unsigned int seq; char __data[0]; }; struct trace_event_raw_drm_vblank_event_delivered { struct trace_entry ent; struct drm_file___3 *file; int crtc; unsigned int seq; char __data[0]; }; struct trace_event_data_offsets_drm_vblank_event {}; struct trace_event_data_offsets_drm_vblank_event_queued {}; struct trace_event_data_offsets_drm_vblank_event_delivered {}; typedef u32 gen6_pte_t; struct insert_entries { struct i915_address_space *vm; struct i915_vma_resource *vma_res; enum i915_cache_level level; u32 flags; }; struct insert_page { struct i915_address_space *vm; dma_addr_t addr; u64 offset; enum i915_cache_level level; }; struct ch7xxx_id_struct { u8 vid; char *name; }; struct ch7xxx_did_struct { u8 did; char *name; }; struct ch7xxx_priv { bool quiet; }; enum intel_broadcast_rgb { INTEL_BROADCAST_RGB_AUTO = 0, INTEL_BROADCAST_RGB_FULL = 1, INTEL_BROADCAST_RGB_LIMITED = 2, }; struct dp_sdp_header { u8 HB0; u8 HB1; u8 HB2; u8 HB3; }; struct dp_sdp { struct dp_sdp_header sdp_header; u8 db[32]; }; struct link_config_limits { int min_rate; int max_rate; int min_lane_count; int max_lane_count; int min_bpp; int max_bpp; }; struct suspend_stats { int success; int fail; int failed_freeze; int failed_prepare; int failed_suspend; int failed_suspend_late; int failed_suspend_noirq; int failed_resume; int failed_resume_early; int failed_resume_noirq; int last_failed_dev; char failed_devs[80]; int last_failed_errno; int errno[2]; int last_failed_step; enum suspend_stat_step failed_steps[2]; }; 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 *); }; 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 ifla_vxlan_df { VXLAN_DF_UNSET = 0, VXLAN_DF_SET = 1, VXLAN_DF_INHERIT = 2, __VXLAN_DF_END = 3, VXLAN_DF_MAX = 2, }; struct vxlan_sock { struct hlist_node hlist; struct socket *sock; struct hlist_head vni_list[1024]; refcount_t refcnt; u32 flags; }; struct vxlan_dev; struct vxlan_dev_node { struct hlist_node hlist; struct vxlan_dev *vxlan; }; union vxlan_addr { struct sockaddr_in sin; struct sockaddr_in6 sin6; struct sockaddr sa; }; struct vxlan_rdst { union vxlan_addr remote_ip; __be16 remote_port; u8 offloaded: 1; __be32 remote_vni; u32 remote_ifindex; struct net_device *remote_dev; struct list_head list; struct callback_head rcu; struct dst_cache dst_cache; }; struct vxlan_config { union vxlan_addr remote_ip; union vxlan_addr saddr; __be32 vni; int remote_ifindex; int mtu; __be16 dst_port; u16 port_min; u16 port_max; u8 tos; u8 ttl; __be32 label; u32 flags; unsigned long age_interval; unsigned int addrmax; bool no_share; enum ifla_vxlan_df df; }; struct vxlan_vni_group; struct vxlan_dev { struct vxlan_dev_node hlist4; struct vxlan_dev_node hlist6; struct list_head next; struct vxlan_sock __attribute__((btf_type_tag("rcu"))) *vn4_sock; struct vxlan_sock __attribute__((btf_type_tag("rcu"))) *vn6_sock; struct net_device *dev; struct net *net; struct vxlan_rdst default_dst; struct timer_list age_timer; spinlock_t hash_lock[256]; unsigned int addrcnt; struct gro_cells gro_cells; struct vxlan_config cfg; struct vxlan_vni_group __attribute__((btf_type_tag("rcu"))) *vnigrp; struct hlist_head fdb_head[256]; }; struct vxlan_vni_group { struct rhashtable vni_hash; struct list_head vni_list; u32 num_vnis; }; struct vxlan_vni_stats_pcpu; struct vxlan_vni_node { struct rhash_head vnode; struct vxlan_dev_node hlist4; struct vxlan_dev_node hlist6; struct list_head vlist; __be32 vni; union vxlan_addr remote_ip; struct vxlan_vni_stats_pcpu __attribute__((btf_type_tag("percpu"))) *stats; struct callback_head rcu; }; struct vxlan_vni_stats { u64 rx_packets; u64 rx_bytes; u64 rx_drops; u64 rx_errors; u64 tx_packets; u64 tx_bytes; u64 tx_drops; u64 tx_errors; }; struct vxlan_vni_stats_pcpu { struct vxlan_vni_stats stats; struct u64_stats_sync syncp; }; struct vxlan_net { struct list_head vxlan_list; struct hlist_head sock_list[256]; spinlock_t sock_lock; struct notifier_block nexthop_notifier_block; }; 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, }; struct snap { int slen; char str[80]; }; struct mon_bus { struct list_head bus_link; spinlock_t lock; struct usb_bus *u_bus; int text_inited; int bin_inited; struct dentry *dent_s; struct dentry *dent_t; struct dentry *dent_u; struct device *classdev; int nreaders; struct list_head r_list; struct kref ref; unsigned int cnt_events; unsigned int cnt_text_lost; }; 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 xfer_buf_dir { TO_XFER_BUF = 0, FROM_XFER_BUF = 1, }; 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; }; 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 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 us_data { struct mutex dev_mutex; struct usb_device *pusb_dev; struct usb_interface *pusb_intf; const struct us_unusual_dev *unusual_dev; unsigned long 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 us_unusual_dev { const char *vendorName; const char *productName; __u8 useProtocol; __u8 useTransport; int (*initFunction)(struct us_data *); }; struct opal_dev; 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; u8 media_present; u8 write_prot; u8 protection_type; u8 provisioning_mode; u8 zeroing_mode; u8 nr_actuators; 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; }; struct rtc_wkalrm { unsigned char enabled; unsigned char pending; struct rtc_time time; }; struct rtc_device; 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 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; time64_t start_secs; time64_t offset_secs; bool set_start_time; }; 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_param { __u64 param; union { __u64 uvalue; __s64 svalue; __u64 ptr; }; __u32 index; __u32 __pad; }; 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 irqreturn_t (*rtc_irq_handler)(int, 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; }; 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 *); 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 { DISK_EVENT_MEDIA_CHANGE = 1, DISK_EVENT_EJECT_REQUEST = 2, }; enum md_ro_state { MD_RDWR = 0, MD_RDONLY = 1, MD_AUTO_READ = 2, MD_MAX_STATE = 3, }; enum { BIOSET_NEED_BVECS = 1, BIOSET_NEED_RESCUER = 2, BIOSET_PERCPU_CACHE = 4, }; 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 md_io_acct { struct mddev *mddev; struct bio *orig_bio; unsigned long start_time; struct bio bio_clone; }; struct detected_devices_node { struct list_head list; dev_t dev; }; 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 mdu_version_s { int major; int minor; int patchlevel; }; typedef struct mdu_version_s mdu_version_t; struct mdu_bitmap_file_s { char pathname[4096]; }; typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; struct mdu_disk_info_s { int number; int major; int minor; int raid_disk; int state; }; typedef struct mdu_disk_info_s mdu_disk_info_t; 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; }; typedef struct mdu_array_info_s mdu_array_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 blk_integrity_profile; struct blk_integrity { const struct blk_integrity_profile *profile; unsigned char flags; unsigned char tuple_size; 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; const char *disk_name; }; 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 widget_attribute { struct attribute attr; ssize_t (*show)(struct hdac_device *, hda_nid_t, struct widget_attribute *, char *); ssize_t (*store)(struct hdac_device *, hda_nid_t, struct widget_attribute *, const char *, size_t); }; struct hdac_widget_tree { struct kobject *root; struct kobject *afg; struct kobject **nodes; }; struct bpf_scratchpad { union { __be32 diff[128]; u8 buff[512]; }; }; enum { BPF_F_NEIGH = 2, BPF_F_PEER = 4, BPF_F_NEXTHOP = 8, }; enum xdp_action { XDP_ABORTED = 0, XDP_DROP = 1, XDP_PASS = 2, XDP_TX = 3, XDP_REDIRECT = 4, }; 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; 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; enum { XSK_READY = 0, XSK_BOUND = 1, XSK_UNBOUND = 2, } state; long: 64; struct xsk_queue *tx; struct list_head tx_list; spinlock_t rx_lock; u64 rx_dropped; u64 rx_queue_full; 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; }; enum { BPF_F_BROADCAST = 8, BPF_F_EXCLUDE_INGRESS = 16, }; 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, }; 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, }; 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_lwt_encap_mode { BPF_LWT_ENCAP_SEG6 = 0, BPF_LWT_ENCAP_SEG6_INLINE = 1, BPF_LWT_ENCAP_IP = 2, }; 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); struct bpf_flow_dissector; typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); struct bpf_flow_dissector { struct bpf_flow_keys *flow_keys; const struct sk_buff *skb; const void *data; const void *data_end; }; 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 *); struct bpf_sock_addr_kern; typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); struct bpf_sock_addr_kern { struct sock *sk; struct sockaddr *uaddr; u64 tmp_reg; void *t_ctx; }; 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_xfrm_state; typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); struct bpf_xfrm_state { __u32 reqid; __u32 spi; __u16 family; __u16 ext; union { __u32 remote_ipv4; __u32 remote_ipv6[4]; }; }; 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]; }; __be16 h_vlan_proto; __be16 h_vlan_TCI; __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); typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); 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_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); 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 *); struct sk_reuseport_kern; typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); 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; }; 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 tls_strparser { struct sock *sk; u32 mark: 8; u32 stopped: 1; u32 copy_mode: 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; spinlock_t decrypt_compl_lock; struct sk_buff_head async_hold; struct wait_queue_head wq; }; struct tcp6_sock { struct tcp_sock tcp; struct ipv6_pinfo inet6; }; struct udp6_sock { struct udp_sock udp; struct ipv6_pinfo inet6; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct unix_sock; struct mptcp_sock; 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; char *rec_seq; }; 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 in_tcp_sendpages; 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; }; struct bpf_dtab_netdev; struct bpf_cpu_map_entry; typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); struct compat_sock_fprog { u16 len; compat_uptr_t filter; }; struct nf_ct_timeout_hooks { struct nf_ct_timeout * (*timeout_find_get)(struct net *, const char *); void (*timeout_put)(struct nf_ct_timeout *); }; struct nf_ct_iter_data { struct net *net; void *data; u32 portid; int report; }; enum { XT_CONNTRACK_STATE = 1, XT_CONNTRACK_PROTO = 2, XT_CONNTRACK_ORIGSRC = 4, XT_CONNTRACK_ORIGDST = 8, XT_CONNTRACK_REPLSRC = 16, XT_CONNTRACK_REPLDST = 32, XT_CONNTRACK_STATUS = 64, XT_CONNTRACK_EXPIRES = 128, XT_CONNTRACK_ORIGSRC_PORT = 256, XT_CONNTRACK_ORIGDST_PORT = 512, XT_CONNTRACK_REPLSRC_PORT = 1024, XT_CONNTRACK_REPLDST_PORT = 2048, XT_CONNTRACK_DIRECTION = 4096, XT_CONNTRACK_STATE_ALIAS = 8192, }; struct xt_conntrack_mtinfo2 { union nf_inet_addr origsrc_addr; union nf_inet_addr origsrc_mask; union nf_inet_addr origdst_addr; union nf_inet_addr origdst_mask; union nf_inet_addr replsrc_addr; union nf_inet_addr replsrc_mask; union nf_inet_addr repldst_addr; union nf_inet_addr repldst_mask; __u32 expires_min; __u32 expires_max; __u16 l4proto; __be16 origsrc_port; __be16 origdst_port; __be16 replsrc_port; __be16 repldst_port; __u16 match_flags; __u16 invert_flags; __u16 state_mask; __u16 status_mask; }; struct xt_conntrack_mtinfo3 { union nf_inet_addr origsrc_addr; union nf_inet_addr origsrc_mask; union nf_inet_addr origdst_addr; union nf_inet_addr origdst_mask; union nf_inet_addr replsrc_addr; union nf_inet_addr replsrc_mask; union nf_inet_addr repldst_addr; union nf_inet_addr repldst_mask; __u32 expires_min; __u32 expires_max; __u16 l4proto; __u16 origsrc_port; __u16 origdst_port; __u16 replsrc_port; __u16 repldst_port; __u16 match_flags; __u16 invert_flags; __u16 state_mask; __u16 status_mask; __u16 origsrc_port_high; __u16 origdst_port_high; __u16 replsrc_port_high; __u16 repldst_port_high; }; struct xt_conntrack_mtinfo1 { union nf_inet_addr origsrc_addr; union nf_inet_addr origsrc_mask; union nf_inet_addr origdst_addr; union nf_inet_addr origdst_mask; union nf_inet_addr replsrc_addr; union nf_inet_addr replsrc_mask; union nf_inet_addr repldst_addr; union nf_inet_addr repldst_mask; __u32 expires_min; __u32 expires_max; __u16 l4proto; __be16 origsrc_port; __be16 origdst_port; __be16 replsrc_port; __be16 repldst_port; __u16 match_flags; __u16 invert_flags; __u8 state_mask; __u8 status_mask; }; struct neighbour_cb { unsigned long sched_next; unsigned int flags; }; 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 xfrm6_protocol { int (*handler)(struct sk_buff *); int (*input_handler)(struct sk_buff *, int, __be32, int); int (*cb_handler)(struct sk_buff *, int); int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); struct xfrm6_protocol __attribute__((btf_type_tag("rcu"))) *next; int priority; }; 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; }; struct svc_xpt_user { struct list_head list; void (*callback)(struct svc_xpt_user *); }; enum { TKIP_DECRYPT_OK = 0, TKIP_DECRYPT_NO_EXT_IV = -1, TKIP_DECRYPT_INVALID_KEYIDX = -2, TKIP_DECRYPT_REPLAY = -3, }; typedef unsigned int ieee80211_rx_result; 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 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 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)); struct zap_details { struct folio *single_folio; bool even_cows; zap_flags_t zap_flags; }; 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]; }; struct pvclock_vsyscall_time_info { struct pvclock_vcpu_time_info pvti; long: 64; long: 64; long: 64; long: 64; }; 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 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 bpf_iter__bpf_prog { union { struct bpf_iter_meta *meta; }; union { struct bpf_prog *prog; }; }; struct bpf_iter_seq_prog_info { u32 prog_id; }; struct obj_cgroup; 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; struct callback_head rcu; struct llist_head free_by_rcu; struct llist_head waiting_for_gp; atomic_t call_rcu_in_progress; }; struct bpf_mem_caches { struct bpf_mem_cache cache[11]; }; 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 work_struct work; }; 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 { BPF_F_BPRM_SECUREEXEC = 1, }; typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64); typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32); typedef u64 (*btf_bpf_ima_file_hash)(struct file *, void *, u32); typedef u64 (*btf_bpf_get_attach_cookie)(void *); struct bpf_trace_run_ctx { struct bpf_run_ctx run_ctx; u64 bpf_cookie; }; struct anon_vma_name { struct kref kref; char name[0]; }; struct madvise_walk_private { struct mmu_gather *tlb; bool pageout; }; struct qt_disk_dqdbheader { __le32 dqdh_next_free; __le32 dqdh_prev_free; __le16 dqdh_entries; __le16 dqdh_pad1; __le32 dqdh_pad2; }; struct qtree_fmt_operations; struct qtree_mem_dqinfo { struct super_block *dqi_sb; int dqi_type; unsigned int dqi_blocks; unsigned int dqi_free_blk; unsigned int dqi_free_entry; unsigned int dqi_blocksize_bits; unsigned int dqi_entry_size; unsigned int dqi_usable_bs; unsigned int dqi_qtree_depth; const struct qtree_fmt_operations *dqi_ops; }; struct qtree_fmt_operations { void (*mem2disk_dqblk)(void *, struct dquot *); void (*disk2mem_dqblk)(struct dquot *, void *); int (*is_id)(void *, struct dquot *); }; struct kernel_stat { unsigned long irqs_sum; unsigned int softirqs[10]; }; struct ext4_io_submit { struct writeback_control *io_wbc; struct bio *io_bio; ext4_io_end_t *io_end; sector_t io_next_block; }; 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; }; typedef s32 compat_off_t; struct compat_dirent { u32 d_ino; compat_off_t d_off; u16 d_reclen; char d_name[256]; }; enum { FILEID_HIGH_OFF = 0, FILEID_LOW_OFF = 1, FILE_I_TYPE_OFF = 2, EMBED_FH_OFF = 3, }; enum { NLM_LCK_GRANTED = 0, NLM_LCK_DENIED = 1, NLM_LCK_DENIED_NOLOCKS = 2, NLM_LCK_BLOCKED = 3, NLM_LCK_DENIED_GRACE_PERIOD = 4, NLM_DEADLCK = 5, NLM_ROFS = 6, NLM_STALE_FH = 7, NLM_FBIG = 8, NLM_FAILED = 9, }; struct nlm_wait; enum autofs_notify { NFY_NONE = 0, NFY_MOUNT = 1, NFY_EXPIRE = 2, }; 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, }; 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; }; 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 tracefs_dir_ops { int (*mkdir)(const char *); int (*rmdir)(const char *); }; enum { Opt_uid___3 = 0, Opt_gid___3 = 1, Opt_mode___3 = 2, Opt_err___3 = 3, }; 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; }; enum ima_fs_flags { IMA_FS_BUSY = 0, }; struct ima_queue_entry { struct hlist_node hnext; struct list_head later; struct ima_template_entry *entry; }; struct genradix_node { union { struct genradix_node *children[512]; u8 data[4096]; }; }; struct genradix_iter { size_t offset; size_t pos; }; 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; }; 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; }; 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; typedef unsigned long ulg; 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; }; 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; 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, }; 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_TYPE_MAX = 20, }; struct nla_bitfield32 { __u32 value; __u32 selector; }; 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_type1 { u32 revision; u8 max_mem_read; u8 avg_max_split; u16 tot_max_split; }; 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_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 acpi_gpio_params { unsigned int crs_entry_index; unsigned int line_index; bool active_low; }; 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 cpc_reg { u8 descriptor; u16 length; u8 space_id; u8 bit_width; u8 bit_offset; u8 access_width; u64 address; } __attribute__((packed)); 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, }; 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 virtio_pci_legacy_device { struct pci_dev *pci_dev; u8 *isr; void *ioaddr; struct virtio_device_id id; }; struct dma_pte; struct dmar_domain { int nid; struct xarray iommu_array; u8 has_iotlb_device: 1; u8 iommu_coherency: 1; u8 force_snooping: 1; u8 set_pte_snp: 1; u8 use_first_level: 1; spinlock_t lock; struct list_head devices; struct dma_pte *pgd; int gaw; int agaw; int iommu_superpage; u64 max_addr; struct iommu_domain domain; }; struct dma_pte { u64 val; }; enum cap_audit_type { CAP_AUDIT_STATIC_DMAR = 0, CAP_AUDIT_STATIC_IRQR = 1, CAP_AUDIT_HOTPLUG_DMAR = 2, CAP_AUDIT_HOTPLUG_IRQR = 3, }; enum { SR_DMAR_FECTL_REG = 0, SR_DMAR_FEDATA_REG = 1, SR_DMAR_FEADDR_REG = 2, SR_DMAR_FEUADDR_REG = 3, MAX_SR_DMAR_REGS = 4, }; enum iommu_resv_type { IOMMU_RESV_DIRECT = 0, IOMMU_RESV_DIRECT_RELAXABLE = 1, IOMMU_RESV_RESERVED = 2, IOMMU_RESV_MSI = 3, IOMMU_RESV_SW_MSI = 4, }; struct dmar_rmrr_unit { struct list_head list; struct acpi_dmar_header *hdr; u64 base_address; u64 end_address; struct dmar_dev_scope *devices; int devices_cnt; }; struct dmar_atsr_unit { struct list_head list; struct acpi_dmar_header *hdr; struct dmar_dev_scope *devices; int devices_cnt; u8 include_all: 1; }; struct dmar_satc_unit { struct list_head list; struct acpi_dmar_header *hdr; struct dmar_dev_scope *devices; struct intel_iommu *iommu; int devices_cnt; u8 atc_required: 1; }; struct pasid_table; struct device_domain_info { struct list_head link; u32 segment; u8 bus; u8 devfn; u16 pfsid; u8 pasid_supported: 3; u8 pasid_enabled: 1; u8 pri_supported: 1; u8 pri_enabled: 1; u8 ats_supported: 1; u8 ats_enabled: 1; u8 dtlb_extra_inval: 1; u8 ats_qdep; struct device *dev; struct intel_iommu *iommu; struct dmar_domain *domain; struct pasid_table *pasid_table; }; struct pasid_table { void *table; int order; u32 max_pasid; }; struct context_entry { u64 lo; u64 hi; }; struct iommu_resv_region { struct list_head list; phys_addr_t start; size_t length; int prot; enum iommu_resv_type type; void (*free)(struct device *, struct iommu_resv_region *); }; struct iommu_domain_info { struct intel_iommu *iommu; unsigned int refcnt; u16 did; }; struct domain_context_mapping_data { struct dmar_domain *domain; struct intel_iommu *iommu; struct pasid_table *table; }; struct drm_device___4; struct drm_framebuffer_funcs___2; struct drm_framebuffer___2 { struct drm_device___4 *dev; struct list_head head; struct drm_mode_object base; char comm[16]; const struct drm_format_info *format; const struct drm_framebuffer_funcs___2 *funcs; unsigned int pitches[4]; unsigned int offsets[4]; uint64_t modifier; unsigned int width; unsigned int height; int flags; int hot_x; int hot_y; struct list_head filp_head; struct drm_gem_object *obj[4]; }; struct drm_mode_config_funcs___4; struct drm_mode_config___4 { struct mutex mutex; struct drm_modeset_lock connection_mutex; struct drm_modeset_acquire_ctx *acquire_ctx; struct mutex idr_mutex; struct idr object_idr; struct idr tile_idr; struct mutex fb_lock; int num_fb; struct list_head fb_list; spinlock_t connector_list_lock; int num_connector; struct ida connector_ida; struct list_head connector_list; struct llist_head connector_free_list; struct work_struct connector_free_work; int num_encoder; struct list_head encoder_list; int num_total_plane; struct list_head plane_list; int num_crtc; struct list_head crtc_list; struct list_head property_list; struct list_head privobj_list; int min_width; int min_height; int max_width; int max_height; const struct drm_mode_config_funcs___4 *funcs; bool poll_enabled; bool poll_running; bool delayed_event; struct delayed_work output_poll_work; struct mutex blob_lock; struct list_head property_blob_list; struct drm_property *edid_property; struct drm_property *dpms_property; struct drm_property *path_property; struct drm_property *tile_property; struct drm_property *link_status_property; struct drm_property *plane_type_property; struct drm_property *prop_src_x; struct drm_property *prop_src_y; struct drm_property *prop_src_w; struct drm_property *prop_src_h; struct drm_property *prop_crtc_x; struct drm_property *prop_crtc_y; struct drm_property *prop_crtc_w; struct drm_property *prop_crtc_h; struct drm_property *prop_fb_id; struct drm_property *prop_in_fence_fd; struct drm_property *prop_out_fence_ptr; struct drm_property *prop_crtc_id; struct drm_property *prop_fb_damage_clips; struct drm_property *prop_active; struct drm_property *prop_mode_id; struct drm_property *prop_vrr_enabled; struct drm_property *dvi_i_subconnector_property; struct drm_property *dvi_i_select_subconnector_property; struct drm_property *dp_subconnector_property; struct drm_property *tv_subconnector_property; struct drm_property *tv_select_subconnector_property; struct drm_property *legacy_tv_mode_property; struct drm_property *tv_mode_property; struct drm_property *tv_left_margin_property; struct drm_property *tv_right_margin_property; struct drm_property *tv_top_margin_property; struct drm_property *tv_bottom_margin_property; struct drm_property *tv_brightness_property; struct drm_property *tv_contrast_property; struct drm_property *tv_flicker_reduction_property; struct drm_property *tv_overscan_property; struct drm_property *tv_saturation_property; struct drm_property *tv_hue_property; struct drm_property *scaling_mode_property; struct drm_property *aspect_ratio_property; struct drm_property *content_type_property; struct drm_property *degamma_lut_property; struct drm_property *degamma_lut_size_property; struct drm_property *ctm_property; struct drm_property *gamma_lut_property; struct drm_property *gamma_lut_size_property; struct drm_property *suggested_x_property; struct drm_property *suggested_y_property; struct drm_property *non_desktop_property; struct drm_property *panel_orientation_property; struct drm_property *writeback_fb_id_property; struct drm_property *writeback_pixel_formats_property; struct drm_property *writeback_out_fence_ptr_property; struct drm_property *hdr_output_metadata_property; struct drm_property *content_protection_property; struct drm_property *hdcp_content_type_property; uint32_t preferred_depth; uint32_t prefer_shadow; bool prefer_shadow_fbdev; bool quirk_addfb_prefer_xbgr_30bpp; bool quirk_addfb_prefer_host_byte_order; bool async_page_flip; bool fb_modifiers_not_supported; bool normalize_zpos; struct drm_property *modifiers_property; uint32_t cursor_width; uint32_t cursor_height; struct drm_atomic_state *suspend_state; const struct drm_mode_config_helper_funcs *helper_private; }; struct drm_master___4; struct drm_device___4 { int if_version; struct kref ref; struct device *dev; struct { struct list_head resources; void *final_kfree; spinlock_t lock; } managed; const struct drm_driver *driver; void *dev_private; struct drm_minor *primary; struct drm_minor *render; struct drm_minor *accel; bool registered; struct drm_master___4 *master; u32 driver_features; bool unplugged; struct inode *anon_inode; char *unique; struct mutex struct_mutex; struct mutex master_mutex; atomic_t open_count; struct mutex filelist_mutex; struct list_head filelist; struct list_head filelist_internal; struct mutex clientlist_mutex; struct list_head clientlist; bool vblank_disable_immediate; struct drm_vblank_crtc *vblank; spinlock_t vblank_time_lock; spinlock_t vbl_lock; u32 max_vblank_count; struct list_head vblank_event_list; spinlock_t event_lock; unsigned int num_crtcs; struct drm_mode_config___4 mode_config; struct mutex object_name_lock; struct idr object_name_idr; struct drm_vma_offset_manager *vma_offset_manager; struct drm_vram_mm *vram_mm; enum switch_power_state switch_power_state; struct drm_fb_helper *fb_helper; struct mutex debugfs_mutex; struct list_head debugfs_list; }; struct drm_master___4 { struct kref refcount; struct drm_device___4 *dev; char *unique; int unique_len; struct idr magic_map; void *driver_priv; struct drm_master___4 *lessor; int lessee_id; struct list_head lessee_list; struct list_head lessees; struct idr leases; struct idr lessee_idr; }; struct drm_mode_config_funcs___4 { struct drm_framebuffer___2 * (*fb_create)(struct drm_device___4 *, struct drm_file *, const struct drm_mode_fb_cmd2 *); const struct drm_format_info * (*get_format_info)(const struct drm_mode_fb_cmd2 *); void (*output_poll_changed)(struct drm_device___4 *); enum drm_mode_status (*mode_valid)(struct drm_device___4 *, const struct drm_display_mode *); int (*atomic_check)(struct drm_device___4 *, struct drm_atomic_state *); int (*atomic_commit)(struct drm_device___4 *, struct drm_atomic_state *, bool); struct drm_atomic_state * (*atomic_state_alloc)(struct drm_device___4 *); void (*atomic_state_clear)(struct drm_atomic_state *); void (*atomic_state_free)(struct drm_atomic_state *); }; struct drm_framebuffer_funcs___2 { void (*destroy)(struct drm_framebuffer___2 *); int (*create_handle)(struct drm_framebuffer___2 *, struct drm_file *, unsigned int *); int (*dirty)(struct drm_framebuffer___2 *, struct drm_file *, unsigned int, unsigned int, struct drm_clip_rect *, unsigned int); }; struct i915_address_space___3; struct intel_memory_region___3; struct i915_vma_ops___3; struct i915_vma_resource___3 { struct dma_fence unbind_fence; spinlock_t lock; refcount_t hold_count; struct work_struct work; struct i915_sw_fence chain; struct rb_node rb; u64 __subtree_last; struct i915_address_space___3 *vm; intel_wakeref_t wakeref; struct i915_vma_bindinfo bi; struct intel_memory_region___3 *mr; const struct i915_vma_ops___3 *ops; void *private; u64 start; u64 node_size; u64 vma_size; u32 guard; u32 page_sizes_gtt; u32 bound_flags; bool allocated: 1; bool immediate_unbind: 1; bool needs_wakeref: 1; bool skip_pte_rewrite: 1; u32 *tlb; }; struct drm_i915_gem_object___3; struct i915_vma___3; struct intel_uc_fw___3 { enum intel_uc_fw_type type; union { const enum intel_uc_fw_status status; enum intel_uc_fw_status __status; }; struct intel_uc_fw_file file_wanted; struct intel_uc_fw_file file_selected; bool user_overridden; size_t size; struct drm_i915_gem_object___3 *obj; struct i915_vma_resource___3 dummy; struct i915_vma___3 *rsa_data; u32 rsa_size; u32 ucode_size; u32 private_data_size; bool loaded_via_gsc; }; struct intel_guc_log___3 { u32 level; struct { s32 bytes; s32 units; s32 count; u32 flag; } sizes[3]; bool sizes_initialised; struct i915_vma___3 *vma; void *buf_addr; struct { bool buf_in_use; bool started; struct work_struct flush_work; struct rchan *channel; struct mutex lock; u32 full_count; } relay; struct { u32 sampled_overflow; u32 overflow; u32 flush; } stats[3]; }; struct intel_guc_ct___3 { struct i915_vma___3 *vma; bool enabled; struct { struct intel_guc_ct_buffer send; struct intel_guc_ct_buffer recv; } ctbs; struct tasklet_struct receive_tasklet; wait_queue_head_t wq; struct { u16 last_fence; spinlock_t lock; struct list_head pending; struct list_head incoming; struct work_struct worker; } requests; ktime_t stall_time; }; struct intel_guc_slpc___3 { struct i915_vma___3 *vma; struct slpc_shared_data *vaddr; bool supported; bool selected; bool min_is_rpmax; u32 min_freq; u32 rp0_freq; u32 rp1_freq; u32 boost_freq; u32 min_freq_softlimit; u32 max_freq_softlimit; u32 media_ratio_mode; struct mutex lock; struct work_struct boost_work; atomic_t num_waiters; u32 num_boosts; }; struct i915_sched_engine___3; struct i915_request___3; struct intel_guc___3 { struct intel_uc_fw___3 fw; struct intel_guc_log___3 log; struct intel_guc_ct___3 ct; struct intel_guc_slpc___3 slpc; struct intel_guc_state_capture *capture; struct i915_sched_engine___3 *sched_engine; struct i915_request___3 *stalled_request; enum { STALL_NONE___3 = 0, STALL_REGISTER_CONTEXT___3 = 1, STALL_MOVE_LRC_TAIL___3 = 2, STALL_ADD_REQUEST___3 = 3, } submission_stall_reason; spinlock_t irq_lock; unsigned int msg_enabled_mask; atomic_t outstanding_submission_g2h; struct { bool enabled; void (*reset)(struct intel_guc___3 *); void (*enable)(struct intel_guc___3 *); void (*disable)(struct intel_guc___3 *); } interrupts; struct { spinlock_t lock; struct ida guc_ids; int num_guc_ids; unsigned long *guc_ids_bitmap; struct list_head guc_id_list; unsigned int guc_ids_in_use; struct list_head destroyed_contexts; struct work_struct destroyed_worker; struct work_struct reset_fail_worker; intel_engine_mask_t reset_fail_mask; unsigned int sched_disable_delay_ms; unsigned int sched_disable_gucid_threshold; } submission_state; bool submission_supported; bool submission_selected; bool submission_initialized; struct intel_uc_fw_ver submission_version; bool rc_supported; bool rc_selected; struct i915_vma___3 *ads_vma; struct iosys_map ads_map; u32 ads_regset_size; u32 ads_regset_count[27]; struct guc_mmio_reg *ads_regset; u32 ads_golden_ctxt_size; u32 ads_capture_size; u32 ads_engine_usage_size; struct i915_vma___3 *lrc_desc_pool_v69; void *lrc_desc_pool_vaddr_v69; struct xarray context_lookup; u32 params[14]; struct { u32 base; unsigned int count; enum forcewake_domains fw_domains; } send_regs; i915_reg_t notify_reg; u32 mmio_msg; struct mutex send_mutex; struct { spinlock_t lock; u64 gt_stamp; unsigned long ping_delay; struct delayed_work work; u32 shift; unsigned long last_stat_jiffies; } timestamp; }; struct drm_i915_gem_object_ops___3; struct intel_frontbuffer___3; struct drm_i915_gem_object___3 { union { struct drm_gem_object base; struct ttm_buffer_object___2 __do_not_access; }; const struct drm_i915_gem_object_ops___3 *ops; struct { spinlock_t lock; struct list_head list; struct rb_root tree; } vma; struct list_head lut_list; spinlock_t lut_lock; struct list_head obj_link; struct i915_address_space___3 *shares_resv_from; union { struct callback_head rcu; struct llist_node freed; }; unsigned int userfault_count; struct list_head userfault_link; struct { spinlock_t lock; struct rb_root offsets; } mmo; unsigned long flags; unsigned int mem_flags; unsigned int cache_level: 3; unsigned int cache_coherent: 2; unsigned int cache_dirty: 1; u16 read_domains; u16 write_domain; struct intel_frontbuffer___3 __attribute__((btf_type_tag("rcu"))) *frontbuffer; unsigned int tiling_and_stride; struct { atomic_t pages_pin_count; atomic_t shrink_pin; bool ttm_shrinkable; bool unknown_state; struct intel_memory_region___3 **placements; int n_placements; struct intel_memory_region___3 *region; struct ttm_resource___2 *res; struct list_head region_link; struct i915_refct_sgt *rsgt; struct sg_table *pages; void *mapping; struct i915_page_sizes page_sizes; struct i915_gem_object_page_iter get_page; struct i915_gem_object_page_iter get_dma_page; struct list_head link; unsigned int madv: 2; bool dirty: 1; u32 tlb; } mm; struct { struct i915_refct_sgt *cached_io_rsgt; struct i915_gem_object_page_iter get_io_page; struct drm_i915_gem_object___3 *backup; bool created: 1; } ttm; u32 pxp_key_instance; unsigned long *bit_17; union { struct i915_gem_userptr userptr; struct drm_mm_node *stolen; resource_size_t bo_offset; unsigned long scratch; u64 encode; void *gvt_info; }; }; struct drm_i915_gem_object_ops___3 { unsigned int flags; int (*get_pages)(struct drm_i915_gem_object___3 *); void (*put_pages)(struct drm_i915_gem_object___3 *, struct sg_table *); int (*truncate)(struct drm_i915_gem_object___3 *); int (*shrink)(struct drm_i915_gem_object___3 *, unsigned int); int (*pread)(struct drm_i915_gem_object___3 *, const struct drm_i915_gem_pread *); int (*pwrite)(struct drm_i915_gem_object___3 *, const struct drm_i915_gem_pwrite *); u64 (*mmap_offset)(struct drm_i915_gem_object___3 *); void (*unmap_virtual)(struct drm_i915_gem_object___3 *); int (*dmabuf_export)(struct drm_i915_gem_object___3 *); void (*adjust_lru)(struct drm_i915_gem_object___3 *); void (*delayed_free)(struct drm_i915_gem_object___3 *); int (*migrate)(struct drm_i915_gem_object___3 *, struct intel_memory_region___3 *, unsigned int); void (*release)(struct drm_i915_gem_object___3 *); const struct vm_operations_struct *mmap_ops; const char *name; }; struct drm_i915_private___4; struct intel_memory_region_ops___3; struct intel_memory_region___3 { struct drm_i915_private___4 *i915; const struct intel_memory_region_ops___3 *ops; struct io_mapping iomap; struct resource region; resource_size_t io_start; resource_size_t io_size; resource_size_t min_page_size; resource_size_t total; u16 type; u16 instance; enum intel_region_id id; char name[16]; bool private; struct { struct mutex lock; struct list_head list; } objects; bool is_range_manager; void *region_private; }; struct intel_display_funcs___2; struct intel_wm_funcs___3; struct intel_display___3 { struct { const struct intel_display_funcs___2 *display; const struct intel_cdclk_funcs *cdclk; const struct intel_dpll_funcs *dpll; const struct intel_hotplug_funcs *hotplug; const struct intel_wm_funcs___3 *wm; const struct intel_fdi_funcs *fdi; const struct intel_color_funcs *color; const struct intel_audio_funcs *audio; } funcs; struct intel_atomic_helper atomic_helper; struct { struct mutex lock; } backlight; struct { struct intel_global_obj obj; struct intel_bw_info max[6]; } bw; struct { struct intel_cdclk_config hw; const struct intel_cdclk_vals *table; struct intel_global_obj obj; unsigned int max_cdclk_freq; } cdclk; struct { struct drm_property_blob *glk_linear_degamma_lut; } color; struct { u8 enabled_slices; struct intel_global_obj obj; } dbuf; struct { spinlock_t phy_lock; } dkl; struct { u32 mmio_base; } dsi; struct { struct intel_fbdev *fbdev; struct work_struct suspend_work; } fbdev; struct { unsigned int pll_freq; u32 rx_config; } fdi; struct { struct list_head obj_list; } global; struct { u32 mmio_base; struct mutex mutex; struct intel_gmbus *bus[15]; wait_queue_head_t wait_queue; } gmbus; struct { struct i915_hdcp_comp_master *master; bool comp_added; struct mutex comp_mutex; } hdcp; struct { u32 state; } hti; struct { struct i915_power_domains domains; u32 chv_phy_control; bool chv_phy_assert[2]; } power; struct { u32 mmio_base; struct mutex mutex; } pps; struct { struct drm_property *broadcast_rgb; struct drm_property *force_audio; } properties; struct { unsigned long mask; } quirks; struct { struct drm_atomic_state *modeset_state; struct drm_modeset_acquire_ctx reset_ctx; } restore; struct { enum { I915_SAGV_UNKNOWN___3 = 0, I915_SAGV_DISABLED___3 = 1, I915_SAGV_ENABLED___3 = 2, I915_SAGV_NOT_CONTROLLED___3 = 3, } status; u32 block_time_us; } sagv; struct { u8 phy_failed_calibration; } snps; struct { u32 chv_dpll_md[4]; u32 bxt_phy_grc; } state; struct { struct workqueue_struct *modeset; struct workqueue_struct *flip; } wq; struct intel_audio audio; struct intel_dmc dmc; struct intel_dpll dpll; struct intel_fbc *fbc[2]; struct intel_frontbuffer_tracking fb_tracking; struct intel_hotplug hotplug; struct intel_opregion opregion; struct intel_overlay *overlay; struct intel_vbt_data vbt; struct intel_wm wm; }; struct intel_uncore___3; struct intel_uncore_funcs___3 { enum forcewake_domains (*read_fw_domains)(struct intel_uncore___3 *, i915_reg_t); enum forcewake_domains (*write_fw_domains)(struct intel_uncore___3 *, i915_reg_t); u8 (*mmio_readb)(struct intel_uncore___3 *, i915_reg_t, bool); u16 (*mmio_readw)(struct intel_uncore___3 *, i915_reg_t, bool); u32 (*mmio_readl)(struct intel_uncore___3 *, i915_reg_t, bool); u64 (*mmio_readq)(struct intel_uncore___3 *, i915_reg_t, bool); void (*mmio_writeb)(struct intel_uncore___3 *, i915_reg_t, u8, bool); void (*mmio_writew)(struct intel_uncore___3 *, i915_reg_t, u16, bool); void (*mmio_writel)(struct intel_uncore___3 *, i915_reg_t, u32, bool); }; struct intel_gt___3; struct intel_uncore_fw_get___3; struct intel_uncore_forcewake_domain___3; struct intel_uncore___3 { void *regs; struct drm_i915_private___4 *i915; struct intel_gt___3 *gt; struct intel_runtime_pm *rpm; spinlock_t lock; u32 gsi_offset; unsigned int flags; const struct intel_forcewake_range *fw_domains_table; unsigned int fw_domains_table_entries; const struct i915_range *shadowed_reg_table; unsigned int shadowed_reg_table_entries; struct notifier_block pmic_bus_access_nb; const struct intel_uncore_fw_get___3 *fw_get_funcs; struct intel_uncore_funcs___3 funcs; unsigned int fifo_count; enum forcewake_domains fw_domains; enum forcewake_domains fw_domains_active; enum forcewake_domains fw_domains_timer; enum forcewake_domains fw_domains_saved; struct intel_uncore_forcewake_domain___3 *fw_domain[16]; unsigned int user_forcewake_count; struct intel_uncore_mmio_debug *debug; }; struct i915_gem_mm___3 { struct intel_memory_region___3 *stolen_region; struct drm_mm stolen; struct mutex stolen_lock; spinlock_t obj_lock; struct list_head purge_list; struct list_head shrink_list; struct llist_head free_list; struct work_struct free_work; atomic_t free_count; struct vfsmount *gemfs; struct intel_memory_region___3 *regions[7]; struct notifier_block oom_notifier; struct notifier_block vmap_notifier; struct shrinker shrinker; rwlock_t notifier_lock; u64 shrink_memory; u32 shrink_count; }; struct i915_gpu_coredump___3; struct i915_gpu_error___3 { spinlock_t lock; struct i915_gpu_coredump___3 *first_error; atomic_t pending_fb_pin; atomic_t reset_count; atomic_t reset_engine_count[27]; }; struct i915_perf___3; struct i915_perf_stream___3; struct i915_oa_ops___3 { bool (*is_valid_b_counter_reg)(struct i915_perf___3 *, u32); bool (*is_valid_mux_reg)(struct i915_perf___3 *, u32); bool (*is_valid_flex_reg)(struct i915_perf___3 *, u32); int (*enable_metric_set)(struct i915_perf_stream___3 *, struct i915_active *); void (*disable_metric_set)(struct i915_perf_stream___3 *); void (*oa_enable)(struct i915_perf_stream___3 *); void (*oa_disable)(struct i915_perf_stream___3 *); int (*read)(struct i915_perf_stream___3 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); u32 (*oa_hw_tail_read)(struct i915_perf_stream___3 *); }; struct i915_perf___3 { struct drm_i915_private___4 *i915; struct kobject *metrics_kobj; struct mutex metrics_lock; struct idr metrics_idr; struct ratelimit_state spurious_report_rs; struct ratelimit_state tail_pointer_race; u32 gen7_latched_oastatus1; u32 ctx_oactxctrl_offset; u32 ctx_flexeu0_offset; u32 gen8_valid_ctx_bit; struct i915_oa_ops___3 ops; const struct i915_oa_format *oa_formats; unsigned long format_mask[1]; atomic64_t noa_programming_delay; }; struct intel_context___3; struct intel_gsc_uc___3 { struct intel_uc_fw___3 fw; struct i915_vma___3 *local; struct intel_context___3 *ce; struct work_struct work; }; struct intel_huc___3 { struct intel_uc_fw___3 fw; struct { i915_reg_t reg; u32 mask; u32 value; } status; struct { struct i915_sw_fence fence; struct hrtimer timer; struct notifier_block nb; enum intel_huc_delayed_load_status status; } delayed_load; }; struct intel_uc_ops___3; struct intel_uc___3 { const struct intel_uc_ops___3 *ops; struct intel_gsc_uc___3 gsc; struct intel_guc___3 guc; struct intel_huc___3 huc; struct drm_i915_gem_object___3 *load_err_log; bool reset_in_progress; }; struct intel_gsc_intf___3 { struct mei_aux_device *adev; struct drm_i915_gem_object___3 *gem_obj; int irq; unsigned int id; }; struct intel_gsc___3 { struct intel_gsc_intf___3 intf[2]; }; struct i915_wa_list___3 { struct intel_gt___3 *gt; const char *name; const char *engine_name; struct i915_wa *list; unsigned int count; unsigned int wa_count; }; struct intel_rc6___3 { i915_reg_t res_reg[4]; u64 prev_hw_residency[4]; u64 cur_residency[4]; u32 ctl_enable; struct drm_i915_gem_object___3 *pctx; bool supported: 1; bool enabled: 1; bool manual: 1; bool wakeref: 1; }; struct intel_migrate___3 { struct intel_context___3 *context; }; struct i915_perf_gt___3 { struct mutex lock; struct intel_sseu sseu; struct i915_perf_stream___3 *exclusive_stream; }; struct i915_ggtt___3; struct intel_engine_cs___3; struct intel_gt___3 { struct drm_i915_private___4 *i915; const char *name; enum intel_gt_type type; struct intel_uncore___3 *uncore; struct i915_ggtt___3 *ggtt; struct intel_uc___3 uc; struct intel_gsc___3 gsc; struct intel_wopcm wopcm; struct { struct mutex invalidate_lock; seqcount_mutex_t seqno; } tlb; struct i915_wa_list___3 wa_list; struct intel_gt_timelines timelines; struct intel_gt_requests requests; struct { struct llist_head list; struct work_struct work; } watchdog; struct intel_wakeref wakeref; atomic_t user_wakeref; struct list_head closed_vma; spinlock_t closed_lock; ktime_t last_init_time; struct intel_reset reset; intel_wakeref_t awake; u32 clock_frequency; u32 clock_period_ns; struct intel_llc llc; struct intel_rc6___3 rc6; struct intel_rps rps; spinlock_t *irq_lock; u32 gt_imr; u32 pm_ier; u32 pm_imr; u32 pm_guc_events; struct { bool active; seqcount_mutex_t lock; ktime_t total; ktime_t start; } stats; struct intel_engine_cs___3 *engine[27]; struct intel_engine_cs___3 *engine_class[54]; enum intel_submission_method submission_method; struct i915_address_space___3 *vm; struct intel_gt_buffer_pool buffer_pool; struct i915_vma___3 *scratch; struct intel_migrate___3 migrate; const struct intel_mmio_range *steering_table[7]; struct { u8 groupid; u8 instanceid; } default_steering; spinlock_t mcr_lock; phys_addr_t phys_addr; struct intel_gt_info info; struct { u8 uc_index; u8 wb_index; } mocs; struct kobject sysfs_gt; struct gt_defaults defaults; struct kobject *sysfs_defaults; struct i915_perf_gt___3 perf; struct list_head ggtt_link; }; struct i915_drm_clients___3 { struct drm_i915_private___4 *i915; struct xarray xarray; u32 next_id; }; struct drm_i915_private___4 { struct drm_device drm; struct intel_display___3 display; bool do_release; struct i915_params params; const struct intel_device_info __info; struct intel_runtime_info __runtime; struct intel_driver_caps caps; struct i915_dsm dsm; struct intel_uncore___3 uncore; struct intel_uncore_mmio_debug mmio_debug; struct i915_virtual_gpu vgpu; struct intel_gvt *gvt; struct { struct pci_dev *pdev; struct resource mch_res; bool mchbar_need_disable; } gmch; struct rb_root uabi_engines; unsigned int engine_uabi_class_count[5]; spinlock_t irq_lock; bool display_irqs_enabled; struct mutex sb_lock; struct pm_qos_request sb_qos; union { u32 irq_mask; u32 de_irq_mask[4]; }; u32 pipestat_irq_mask[4]; bool preserve_bios_swizzle; unsigned int fsb_freq; unsigned int mem_freq; unsigned int is_ddr3; unsigned int skl_preferred_vco_freq; unsigned int max_dotclk_freq; unsigned int hpll_freq; unsigned int czclk_freq; struct workqueue_struct *wq; const struct drm_i915_clock_gating_funcs *clock_gating_funcs; enum intel_pch pch_type; unsigned short pch_id; unsigned long gem_quirks; struct i915_gem_mm___3 mm; struct intel_l3_parity l3_parity; u32 edram_size_mb; struct i915_gpu_error___3 gpu_error; u32 suspend_count; struct i915_suspend_saved_registers regfile; struct vlv_s0ix_state *vlv_s0ix_state; struct dram_info dram_info; struct intel_runtime_pm runtime_pm; struct i915_perf___3 perf; struct i915_hwmon *hwmon; struct intel_gt___3 gt0; struct intel_gt___3 *gt[4]; struct kobject *sysfs_gt; struct intel_gt___3 *media_gt; struct { struct i915_gem_contexts contexts; struct file *mmap_singleton; } gem; struct intel_pxp *pxp; u8 vblank_enabled; bool irq_enabled; struct i915_pmu pmu; struct i915_drm_clients___3 clients; struct ttm_device___2 bdev; }; struct intel_initial_plane_config___2; struct intel_display_funcs___2 { bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *); void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config___2 *); void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *); void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *); void (*commit_modeset_enables)(struct intel_atomic_state *); }; struct intel_framebuffer___2; struct intel_initial_plane_config___2 { struct intel_framebuffer___2 *fb; struct i915_vma___3 *vma; unsigned int tiling; int size; u32 base; u8 rotation; }; struct intel_framebuffer___2 { struct drm_framebuffer base; struct intel_frontbuffer___3 *frontbuffer; struct intel_fb_view normal_view; union { struct intel_fb_view rotated_view; struct intel_fb_view remapped_view; }; struct i915_address_space___3 *dpt_vm; }; struct intel_frontbuffer___3 { struct kref ref; atomic_t bits; struct i915_active write; struct drm_i915_gem_object___3 *obj; struct callback_head rcu; }; struct i915_vm_pt_stash___3; struct i915_vma_ops___3 { void (*bind_vma)(struct i915_address_space___3 *, struct i915_vm_pt_stash___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32); void (*unbind_vma)(struct i915_address_space___3 *, struct i915_vma_resource___3 *); }; struct i915_page_table___3; struct i915_address_space___3 { struct kref ref; struct work_struct release_work; struct drm_mm mm; struct intel_gt___3 *gt; struct drm_i915_private___4 *i915; struct device *dma; u64 total; u64 reserved; u64 min_alignment[4]; unsigned int bind_async_flags; struct mutex mutex; struct kref resv_ref; struct dma_resv _resv; struct drm_i915_gem_object___3 *scratch[4]; struct list_head bound_list; struct list_head unbound_list; bool is_ggtt: 1; bool is_dpt: 1; bool has_read_only: 1; bool skip_pte_rewrite: 1; u8 top; u8 pd_shift; u8 scratch_order; unsigned long lmem_pt_obj_flags; struct rb_root_cached pending_unbind; struct drm_i915_gem_object___3 * (*alloc_pt_dma)(struct i915_address_space___3 *, int); struct drm_i915_gem_object___3 * (*alloc_scratch_dma)(struct i915_address_space___3 *, int); u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32); void (*allocate_va_range)(struct i915_address_space___3 *, struct i915_vm_pt_stash___3 *, u64, u64); void (*clear_range)(struct i915_address_space___3 *, u64, u64); void (*insert_page)(struct i915_address_space___3 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*insert_entries)(struct i915_address_space___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32); void (*raw_insert_page)(struct i915_address_space___3 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*raw_insert_entries)(struct i915_address_space___3 *, struct i915_vma_resource___3 *, enum i915_cache_level, u32); void (*cleanup)(struct i915_address_space___3 *); void (*foreach)(struct i915_address_space___3 *, u64, u64, void (*)(struct i915_address_space___3 *, struct i915_page_table___3 *, void *), void *); struct i915_vma_ops___3 vma_ops; }; struct intel_uncore_fw_get___3 { void (*force_wake_get)(struct intel_uncore___3 *, enum forcewake_domains); }; struct intel_uncore_forcewake_domain___3 { struct intel_uncore___3 *uncore; enum forcewake_domain_id id; enum forcewake_domains mask; unsigned int wake_count; bool active; struct hrtimer timer; u32 *reg_set; u32 *reg_ack; }; struct i915_ppgtt___3; struct i915_fence_reg___3; struct i915_ggtt___3 { struct i915_address_space___3 vm; struct io_mapping iomap; struct resource gmadr; resource_size_t mappable_end; void *gsm; void (*invalidate)(struct i915_ggtt___3 *); struct i915_ppgtt___3 *alias; bool do_idle_maps; int mtrr; u32 bit_6_swizzle_x; u32 bit_6_swizzle_y; u32 pin_bias; unsigned int num_fences; struct i915_fence_reg___3 *fence_regs; struct list_head fence_list; struct list_head userfault_list; struct mutex error_mutex; struct drm_mm_node error_capture; struct drm_mm_node uc_fw; struct list_head gt_list; }; struct i915_page_directory___3; struct i915_ppgtt___3 { struct i915_address_space___3 vm; struct i915_page_directory___3 *pd; }; struct i915_page_table___3 { struct drm_i915_gem_object___3 *base; union { atomic_t used; struct i915_page_table___3 *stash; }; bool is_compact; }; struct i915_page_directory___3 { struct i915_page_table___3 pt; spinlock_t lock; void **entry; }; struct i915_fence_reg___3 { struct list_head link; struct i915_ggtt___3 *ggtt; struct i915_vma___3 *vma; atomic_t pin_count; struct i915_active active; int id; bool dirty; u32 start; u32 size; u32 tiling; u32 stride; }; struct i915_mmap_offset___3; struct i915_vma___3 { struct drm_mm_node node; struct i915_address_space___3 *vm; const struct i915_vma_ops___3 *ops; struct drm_i915_gem_object___3 *obj; struct sg_table *pages; void *iomap; void *private; struct i915_fence_reg___3 *fence; u64 size; struct i915_page_sizes page_sizes; struct i915_mmap_offset___3 *mmo; u32 guard; u32 fence_size; u32 fence_alignment; u32 display_alignment; atomic_t open_count; atomic_t flags; struct i915_active active; atomic_t pages_count; bool vm_ddestroy; struct i915_gtt_view gtt_view; struct list_head vm_link; struct list_head obj_link; struct rb_node obj_node; struct hlist_node obj_hash; struct list_head evict_link; struct list_head closed_link; struct i915_vma_resource___3 *resource; }; struct i915_vm_pt_stash___3 { struct i915_page_table___3 *pt[2]; int pt_sz; }; struct i915_mmap_offset___3 { struct drm_vma_offset_node vma_node; struct drm_i915_gem_object___3 *obj; enum i915_mmap_type mmap_type; struct rb_node offset; }; struct intel_uc_ops___3 { int (*sanitize)(struct intel_uc___3 *); void (*init_fw)(struct intel_uc___3 *); void (*fini_fw)(struct intel_uc___3 *); int (*init)(struct intel_uc___3 *); void (*fini)(struct intel_uc___3 *); int (*init_hw)(struct intel_uc___3 *); void (*fini_hw)(struct intel_uc___3 *); }; struct i915_gem_context___3; struct intel_ring___2; struct intel_timeline___3; struct intel_context_ops___3; struct intel_context___3 { union { struct kref ref; struct callback_head rcu; }; struct intel_engine_cs___3 *engine; struct intel_engine_cs___3 *inflight; struct i915_address_space___3 *vm; struct i915_gem_context___3 __attribute__((btf_type_tag("rcu"))) *gem_context; struct list_head signal_link; struct list_head signals; spinlock_t signal_lock; struct i915_vma___3 *state; u32 ring_size; struct intel_ring___2 *ring; struct intel_timeline___3 *timeline; unsigned long flags; struct { u64 timeout_us; } watchdog; u32 *lrc_reg_state; union { struct { u32 lrca; u32 ccid; }; u64 desc; } lrc; u32 tag; struct intel_context_stats stats; unsigned int active_count; atomic_t pin_count; struct mutex pin_mutex; struct i915_active active; const struct intel_context_ops___3 *ops; struct intel_sseu sseu; struct list_head pinned_contexts_link; u8 wa_bb_page; struct { spinlock_t lock; u32 sched_state; struct list_head fences; struct i915_sw_fence blocked; struct list_head requests; u8 prio; u32 prio_count[4]; struct delayed_work sched_disable_delay_work; } guc_state; struct { u16 id; atomic_t ref; struct list_head link; } guc_id; struct list_head destroyed_link; struct { union { struct list_head child_list; struct list_head child_link; }; struct intel_context___3 *parent; struct i915_request___3 *last_rq; u64 fence_context; u32 seqno; u8 number_children; u8 child_index; struct { u16 wqi_head; u16 wqi_tail; u32 *wq_head; u32 *wq_tail; u32 *wq_status; u8 parent_page; } guc; } parallel; }; struct intel_hw_status_page___3 { struct list_head timelines; struct i915_vma___3 *vma; u32 *addr; }; struct i915_ctx_workarounds___3 { struct i915_wa_ctx_bb indirect_ctx; struct i915_wa_ctx_bb per_ctx; struct i915_vma___3 *vma; }; struct intel_engine_execlists___3 { struct timer_list timer; struct timer_list preempt; const struct i915_request___3 *preempt_target; u32 ccid; u32 yield; u32 error_interrupt; u32 reset_ccid; u32 *submit_reg; u32 *ctrl_reg; struct i915_request___3 * const *active; struct i915_request___3 *inflight[3]; struct i915_request___3 *pending[3]; unsigned int port_mask; struct rb_root_cached virtual; u32 *csb_write; u64 *csb_status; u8 csb_size; u8 csb_head; }; struct intel_engine_cs___3 { struct drm_i915_private___4 *i915; struct intel_gt___3 *gt; struct intel_uncore___3 *uncore; char name[8]; enum intel_engine_id id; enum intel_engine_id legacy_idx; unsigned int guc_id; intel_engine_mask_t mask; u32 reset_domain; intel_engine_mask_t logical_mask; u8 class; u8 instance; u16 uabi_class; u16 uabi_instance; u32 uabi_capabilities; u32 context_size; u32 mmio_base; enum forcewake_domains fw_domain; unsigned int fw_active; unsigned long context_tag; struct rb_node uabi_node; struct intel_sseu sseu; struct i915_sched_engine___3 *sched_engine; struct i915_request___3 *request_pool; struct intel_context___3 *hung_ce; struct llist_head barrier_tasks; struct intel_context___3 *kernel_context; struct list_head pinned_contexts_list; intel_engine_mask_t saturated; struct { struct delayed_work work; struct i915_request___3 *systole; unsigned long blocked; } heartbeat; unsigned long serial; unsigned long wakeref_serial; struct intel_wakeref wakeref; struct file *default_state; struct { struct intel_ring___2 *ring; struct intel_timeline___3 *timeline; } legacy; struct ewma__engine_latency latency; struct intel_breadcrumbs *breadcrumbs; struct intel_engine_pmu pmu; struct intel_hw_status_page___3 status_page; struct i915_ctx_workarounds___3 wa_ctx; struct i915_wa_list___3 ctx_wa_list; struct i915_wa_list___3 wa_list; struct i915_wa_list___3 whitelist; u32 irq_keep_mask; u32 irq_enable_mask; void (*irq_enable)(struct intel_engine_cs___3 *); void (*irq_disable)(struct intel_engine_cs___3 *); void (*irq_handler)(struct intel_engine_cs___3 *, u16); void (*sanitize)(struct intel_engine_cs___3 *); int (*resume)(struct intel_engine_cs___3 *); struct { void (*prepare)(struct intel_engine_cs___3 *); void (*rewind)(struct intel_engine_cs___3 *, bool); void (*cancel)(struct intel_engine_cs___3 *); void (*finish)(struct intel_engine_cs___3 *); } reset; void (*park)(struct intel_engine_cs___3 *); void (*unpark)(struct intel_engine_cs___3 *); void (*bump_serial)(struct intel_engine_cs___3 *); void (*set_default_submission)(struct intel_engine_cs___3 *); const struct intel_context_ops___3 *cops; int (*request_alloc)(struct i915_request___3 *); int (*emit_flush)(struct i915_request___3 *, u32); int (*emit_bb_start)(struct i915_request___3 *, u64, u32, unsigned int); int (*emit_init_breadcrumb)(struct i915_request___3 *); u32 * (*emit_fini_breadcrumb)(struct i915_request___3 *, u32 *); unsigned int emit_fini_breadcrumb_dw; void (*submit_request)(struct i915_request___3 *); void (*release)(struct intel_engine_cs___3 *); void (*add_active_request)(struct i915_request___3 *); void (*remove_active_request)(struct i915_request___3 *); ktime_t (*busyness)(struct intel_engine_cs___3 *, ktime_t *); struct intel_engine_execlists___3 execlists; struct intel_timeline___3 *retire; struct work_struct retire_work; struct atomic_notifier_head context_status_notifier; unsigned int flags; struct hlist_head cmd_hash[512]; const struct drm_i915_reg_table *reg_tables; int reg_table_count; u32 (*get_cmd_length_mask)(u32); struct { union { struct intel_engine_execlists_stats execlists; struct intel_engine_guc_stats guc; }; ktime_t rps; } stats; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } props; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } defaults; }; struct i915_sched_engine___3 { struct kref ref; spinlock_t lock; struct list_head requests; struct list_head hold; struct tasklet_struct tasklet; struct i915_priolist default_priolist; int queue_priority_hint; struct rb_root_cached queue; bool no_priolist; void *private_data; void (*destroy)(struct kref *); bool (*disabled)(struct i915_sched_engine___3 *); void (*kick_backend)(const struct i915_request___3 *, int); void (*bump_inflight_request_prio)(struct i915_request___3 *, int); void (*retire_inflight_request_prio)(struct i915_request___3 *); void (*schedule)(struct i915_request___3 *, const struct i915_sched_attr *); }; struct i915_capture_list___3; struct i915_request___3 { struct dma_fence fence; spinlock_t lock; struct drm_i915_private___4 *i915; struct intel_engine_cs___3 *engine; struct intel_context___3 *context; struct intel_ring___2 *ring; struct intel_timeline___3 __attribute__((btf_type_tag("rcu"))) *timeline; struct list_head signal_link; struct llist_node signal_node; unsigned long rcustate; struct pin_cookie cookie; struct i915_sw_fence submit; union { wait_queue_entry_t submitq; struct i915_sw_dma_fence_cb dmaq; struct i915_request_duration_cb duration; }; struct llist_head execute_cb; struct i915_sw_fence semaphore; struct irq_work submit_work; struct i915_sched_node sched; struct i915_dependency dep; intel_engine_mask_t execution_mask; const u32 *hwsp_seqno; u32 head; u32 infix; u32 postfix; u32 tail; u32 wa_tail; u32 reserved_space; struct i915_vma_resource___3 *batch_res; struct i915_capture_list___3 *capture_list; unsigned long emitted_jiffies; struct list_head link; struct i915_request_watchdog watchdog; struct list_head guc_fence_link; u8 guc_prio; wait_queue_entry_t hucq; }; struct intel_ring___2 { struct kref ref; struct i915_vma___3 *vma; void *vaddr; atomic_t pin_count; u32 head; u32 tail; u32 emit; u32 space; u32 size; u32 wrap; u32 effective_size; }; struct intel_timeline___3 { u64 fence_context; u32 seqno; struct mutex mutex; atomic_t pin_count; atomic_t active_count; void *hwsp_map; const u32 *hwsp_seqno; struct i915_vma___3 *hwsp_ggtt; u32 hwsp_offset; bool has_initial_breadcrumb; struct list_head requests; struct i915_active_fence last_request; struct i915_active active; struct intel_timeline___3 *retire; struct i915_syncmap *sync; struct list_head link; struct intel_gt___3 *gt; struct list_head engine_link; struct kref kref; struct callback_head rcu; }; struct i915_capture_list___3 { struct i915_vma_resource___3 *vma_res; struct i915_capture_list___3 *next; }; struct i915_gem_ww_ctx___3; struct intel_context_ops___3 { unsigned long flags; int (*alloc)(struct intel_context___3 *); void (*revoke)(struct intel_context___3 *, struct i915_request___3 *, unsigned int); void (*close)(struct intel_context___3 *); int (*pre_pin)(struct intel_context___3 *, struct i915_gem_ww_ctx___3 *, void **); int (*pin)(struct intel_context___3 *, void *); void (*unpin)(struct intel_context___3 *); void (*post_unpin)(struct intel_context___3 *); void (*cancel_request)(struct intel_context___3 *, struct i915_request___3 *); void (*enter)(struct intel_context___3 *); void (*exit)(struct intel_context___3 *); void (*sched_disable)(struct intel_context___3 *); void (*reset)(struct intel_context___3 *); void (*destroy)(struct kref *); struct intel_context___3 * (*create_virtual)(struct intel_engine_cs___3 **, unsigned int, unsigned long); struct intel_context___3 * (*create_parallel)(struct intel_engine_cs___3 **, unsigned int, unsigned int); struct intel_engine_cs___3 * (*get_sibling)(struct intel_engine_cs___3 *, unsigned int); }; struct i915_gem_ww_ctx___3 { struct ww_acquire_ctx ctx; struct list_head obj_list; struct drm_i915_gem_object___3 *contended; bool intr; }; struct drm_i915_file_private___2; struct i915_gem_engines___3; struct i915_drm_client___3; struct i915_gem_context___3 { struct drm_i915_private___4 *i915; struct drm_i915_file_private___2 *file_priv; struct i915_gem_engines___3 __attribute__((btf_type_tag("rcu"))) *engines; struct mutex engines_mutex; struct drm_syncobj *syncobj; struct i915_address_space___3 *vm; struct pid *pid; struct list_head link; struct i915_drm_client___3 *client; struct list_head client_link; struct kref ref; struct work_struct release_work; struct callback_head rcu; unsigned long user_flags; unsigned long flags; bool uses_protected_content; intel_wakeref_t pxp_wakeref; struct mutex mutex; struct i915_sched_attr sched; atomic_t guilty_count; atomic_t active_count; unsigned long hang_timestamp[2]; u8 remap_slice; struct xarray handles_vma; struct mutex lut_mutex; char name[24]; struct { spinlock_t lock; struct list_head engines; } stale; }; struct drm_i915_file_private___2 { struct drm_i915_private___4 *dev_priv; union { struct drm_file *file; struct callback_head rcu; }; struct mutex proto_context_lock; struct xarray proto_context_xa; struct xarray context_xa; struct xarray vm_xa; unsigned int bsd_engine; atomic_t ban_score; unsigned long hang_timestamp; struct i915_drm_client___3 *client; }; struct i915_drm_client___3 { struct kref kref; unsigned int id; spinlock_t ctx_lock; struct list_head ctx_list; struct i915_drm_clients___3 *clients; atomic64_t past_runtime[5]; }; struct i915_gem_engines___3 { union { struct list_head link; struct callback_head rcu; }; struct i915_sw_fence fence; struct i915_gem_context___3 *ctx; unsigned int num_engines; struct intel_context___3 *engines[0]; }; struct i915_perf_stream_ops___3; struct i915_oa_config___3; struct i915_perf_stream___3 { struct i915_perf___3 *perf; struct intel_uncore___3 *uncore; struct intel_engine_cs___3 *engine; struct mutex lock; u32 sample_flags; int sample_size; struct i915_gem_context___3 *ctx; bool enabled; bool hold_preemption; const struct i915_perf_stream_ops___3 *ops; struct i915_oa_config___3 *oa_config; struct llist_head oa_config_bos; struct intel_context___3 *pinned_ctx; u32 specific_ctx_id; u32 specific_ctx_id_mask; struct hrtimer poll_check_timer; wait_queue_head_t poll_wq; bool pollin; bool periodic; int period_exponent; struct { const struct i915_oa_format *format; struct i915_vma___3 *vma; u8 *vaddr; u32 last_ctx_id; int size_exponent; spinlock_t ptr_lock; u32 aging_tail; u64 aging_timestamp; u32 head; u32 tail; } oa_buffer; struct i915_vma___3 *noa_wait; u64 poll_oa_period; }; struct i915_perf_stream_ops___3 { void (*enable)(struct i915_perf_stream___3 *); void (*disable)(struct i915_perf_stream___3 *); void (*poll_wait)(struct i915_perf_stream___3 *, struct file *, poll_table *); int (*wait_unlocked)(struct i915_perf_stream___3 *); int (*read)(struct i915_perf_stream___3 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); void (*destroy)(struct i915_perf_stream___3 *); }; struct i915_oa_config___3 { struct i915_perf___3 *perf; char uuid[37]; int id; const struct i915_oa_reg *mux_regs; u32 mux_regs_len; const struct i915_oa_reg *b_counter_regs; u32 b_counter_regs_len; const struct i915_oa_reg *flex_regs; u32 flex_regs_len; struct attribute_group sysfs_metric; struct attribute *attrs[2]; struct kobj_attribute sysfs_metric_id; struct kref ref; struct callback_head rcu; }; struct intel_wm_funcs___3 { void (*update_wm)(struct drm_i915_private___4 *); int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *); void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_global_watermarks)(struct intel_atomic_state *); }; struct intel_gt_coredump___3; struct i915_gpu_coredump___3 { struct kref ref; ktime_t time; ktime_t boottime; ktime_t uptime; unsigned long capture; struct drm_i915_private___4 *i915; struct intel_gt_coredump___3 *gt; char error_msg[128]; bool simulated; bool wakelock; bool suspended; int iommu; u32 reset_count; u32 suspend_count; struct intel_device_info device_info; struct intel_runtime_info runtime_info; struct intel_driver_caps driver_caps; struct i915_params params; struct intel_overlay_error_state *overlay; struct scatterlist *sgl; struct scatterlist *fit; }; struct intel_engine_coredump___3; struct intel_uc_coredump___3; struct intel_gt_coredump___3 { const struct intel_gt___3 *_gt; bool awake; bool simulated; struct intel_gt_info info; u32 eir; u32 pgtbl_er; u32 ier; u32 gtier[6]; u32 ngtier; u32 forcewake; u32 error; u32 err_int; u32 fault_data0; u32 fault_data1; u32 done_reg; u32 gac_eco; u32 gam_ecochk; u32 gab_ctl; u32 gfx_mode; u32 gtt_cache; u32 aux_err; u32 gam_done; u32 clock_frequency; u32 clock_period_ns; u32 derrmr; u32 sfc_done[4]; u32 nfence; u64 fence[32]; struct intel_engine_coredump___3 *engine; struct intel_uc_coredump___3 *uc; struct intel_gt_coredump___3 *next; }; struct intel_engine_coredump___3 { const struct intel_engine_cs___3 *engine; bool hung; bool simulated; u32 reset_count; u32 rq_head; u32 rq_post; u32 rq_tail; u32 ccid; u32 start; u32 tail; u32 head; u32 ctl; u32 mode; u32 hws; u32 ipeir; u32 ipehr; u32 esr; u32 bbstate; u32 instpm; u32 instps; u64 bbaddr; u64 acthd; u32 fault_reg; u64 faddr; u32 rc_psmi; u32 nopid; u32 excc; u32 cmd_cctl; u32 cscmdop; u32 ctx_sr_ctl; u32 dma_faddr_hi; u32 dma_faddr_lo; struct intel_instdone instdone; struct intel_guc_state_capture *guc_capture; struct __guc_capture_parsed_output *guc_capture_node; struct i915_gem_context_coredump context; struct i915_vma_coredump *vma; struct i915_request_coredump execlist[2]; unsigned int num_ports; struct { u32 gfx_mode; union { u64 pdp[4]; u32 pp_dir_base; }; } vm_info; struct intel_engine_coredump___3 *next; }; struct intel_uc_coredump___3 { struct intel_uc_fw___3 guc_fw; struct intel_uc_fw___3 huc_fw; struct guc_info guc; }; struct intel_memory_region_ops___3 { unsigned int flags; int (*init)(struct intel_memory_region___3 *); int (*release)(struct intel_memory_region___3 *); int (*init_object)(struct intel_memory_region___3 *, struct drm_i915_gem_object___3 *, resource_size_t, resource_size_t, resource_size_t, unsigned int); }; struct ivch_priv { bool quiet; u16 width; u16 height; u16 reg_backup[24]; }; struct i915_pxp_component_ops; struct i915_pxp_component { struct device *tee_dev; const struct i915_pxp_component_ops *ops; struct mutex mutex; }; struct i915_pxp_component_ops { struct module *owner; int (*send)(struct device *, const void *, size_t); int (*recv)(struct device *, void *, size_t); ssize_t (*gsc_command)(struct device *, u8, u32, struct scatterlist *, size_t, struct scatterlist *); }; struct i915_audio_component { struct drm_audio_component base; int aud_sample_rate[9]; }; enum i915_component_type { I915_COMPONENT_AUDIO = 1, I915_COMPONENT_HDCP = 2, I915_COMPONENT_PXP = 3, }; enum pxp_status { PXP_STATUS_SUCCESS = 0, PXP_STATUS_ERROR_API_VERSION = 4098, PXP_STATUS_OP_NOT_PERMITTED = 16403, }; struct pxp_cmd_header { u32 api_version; u32 command_id; union { u32 status; u32 stream_id; }; u32 buffer_len; }; struct pxp42_create_arb_in { struct pxp_cmd_header header; u32 protection_mode; u32 session_id; }; struct pxp42_create_arb_out { struct pxp_cmd_header header; }; struct mdiobus_devres { struct mii_bus *mii; }; enum ifla_geneve_df { GENEVE_DF_UNSET = 0, GENEVE_DF_SET = 1, GENEVE_DF_INHERIT = 2, __GENEVE_DF_END = 3, GENEVE_DF_MAX = 2, }; enum udp_parsable_tunnel_type { UDP_TUNNEL_TYPE_VXLAN = 1, UDP_TUNNEL_TYPE_GENEVE = 2, UDP_TUNNEL_TYPE_VXLAN_GPE = 4, }; enum { IFLA_GENEVE_UNSPEC = 0, IFLA_GENEVE_ID = 1, IFLA_GENEVE_REMOTE = 2, IFLA_GENEVE_TTL = 3, IFLA_GENEVE_TOS = 4, IFLA_GENEVE_PORT = 5, IFLA_GENEVE_COLLECT_METADATA = 6, IFLA_GENEVE_REMOTE6 = 7, IFLA_GENEVE_UDP_CSUM = 8, IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 9, IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 10, IFLA_GENEVE_LABEL = 11, IFLA_GENEVE_TTL_INHERIT = 12, IFLA_GENEVE_DF = 13, IFLA_GENEVE_INNER_PROTO_INHERIT = 14, __IFLA_GENEVE_MAX = 15, }; struct geneve_sock { bool collect_md; struct list_head list; struct socket *sock; struct callback_head rcu; int refcnt; struct hlist_head vni_list[1024]; }; struct napi_gro_cb { void *frag0; unsigned int frag0_len; int data_offset; u16 flush; u16 flush_id; u16 count; u16 proto; unsigned long age; 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; struct sk_buff *last; }; 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 geneve_dev; struct geneve_dev_node { struct hlist_node hlist; struct geneve_dev *geneve; }; struct geneve_config { struct ip_tunnel_info info; bool collect_md; bool use_udp6_rx_checksums; bool ttl_inherit; enum ifla_geneve_df df; bool inner_proto_inherit; }; struct geneve_dev { struct geneve_dev_node hlist4; struct geneve_dev_node hlist6; struct net *net; struct net_device *dev; struct geneve_sock __attribute__((btf_type_tag("rcu"))) *sock4; struct geneve_sock __attribute__((btf_type_tag("rcu"))) *sock6; struct list_head next; struct gro_cells gro_cells; struct geneve_config cfg; }; struct geneve_net { struct list_head geneve_list; struct list_head sock_list; }; typedef int (*udp_tunnel_encap_rcv_t)(struct sock *, struct sk_buff *); typedef int (*udp_tunnel_encap_err_lookup_t)(struct sock *, struct sk_buff *); typedef void (*udp_tunnel_encap_err_rcv_t)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); typedef void (*udp_tunnel_encap_destroy_t)(struct sock *); typedef struct sk_buff * (*udp_tunnel_gro_receive_t)(struct sock *, struct list_head *, struct sk_buff *); typedef int (*udp_tunnel_gro_complete_t)(struct sock *, struct sk_buff *, int); struct udp_tunnel_sock_cfg { void *sk_user_data; __u8 encap_type; udp_tunnel_encap_rcv_t encap_rcv; udp_tunnel_encap_err_lookup_t encap_err_lookup; udp_tunnel_encap_err_rcv_t encap_err_rcv; udp_tunnel_encap_destroy_t encap_destroy; udp_tunnel_gro_receive_t gro_receive; udp_tunnel_gro_complete_t gro_complete; }; 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; }; 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 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 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; }; 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_event { enum serio_event_type type; void *object; struct module *owner; struct list_head node; }; 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 class_compat; 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 i2c_devinfo { struct list_head list; int busnum; struct i2c_board_info board_info; }; struct trace_event_data_offsets_i2c_write { u32 buf; }; struct trace_event_data_offsets_i2c_reply { u32 buf; }; 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 od_ops { unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); }; 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 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 lg_g15_model { LG_G15 = 0, LG_G15_V2 = 1, LG_G510 = 2, LG_G510_USB_AUDIO = 3, LG_Z10 = 4, }; enum lg_g15_led_type { LG_G15_KBD_BRIGHTNESS = 0, LG_G15_LCD_BRIGHTNESS = 1, LG_G15_BRIGHTNESS_MAX = 2, LG_G15_MACRO_PRESET1 = 2, LG_G15_MACRO_PRESET2 = 3, LG_G15_MACRO_PRESET3 = 4, LG_G15_MACRO_RECORD = 5, LG_G15_LED_MAX = 6, }; struct lg_g15_led { struct led_classdev cdev; enum led_brightness brightness; enum lg_g15_led_type led; u8 red; u8 green; u8 blue; }; struct lg_g15_data { u8 transfer_buf[20]; struct mutex mutex; struct work_struct work; struct input_dev *input; struct hid_device *hdev; enum lg_g15_model model; struct lg_g15_led leds[6]; bool game_mode_enabled; }; struct pcm_format_data { unsigned char width; unsigned char phys; signed char le; signed char signd; unsigned char silence[8]; }; typedef void (*btf_trace_hda_send_cmd)(void *, struct hdac_bus *, unsigned int); typedef void (*btf_trace_hda_get_response)(void *, struct hdac_bus *, unsigned int, unsigned int); typedef void (*btf_trace_hda_unsol_event)(void *, struct hdac_bus *, u32, u32); typedef void (*btf_trace_snd_hdac_stream_start)(void *, struct hdac_bus *, struct hdac_stream *); typedef void (*btf_trace_snd_hdac_stream_stop)(void *, struct hdac_bus *, struct hdac_stream *); struct trace_event_raw_hda_send_cmd { struct trace_entry ent; u32 __data_loc_name; u32 cmd; char __data[0]; }; struct trace_event_raw_hda_get_response { struct trace_entry ent; u32 __data_loc_name; u32 addr; u32 res; char __data[0]; }; struct trace_event_raw_hda_unsol_event { struct trace_entry ent; u32 __data_loc_name; u32 res; u32 res_ex; char __data[0]; }; struct trace_event_raw_hdac_stream { struct trace_entry ent; unsigned char stream_tag; char __data[0]; }; struct trace_event_data_offsets_hda_send_cmd { u32 name; }; struct trace_event_data_offsets_hda_get_response { u32 name; }; struct trace_event_data_offsets_hda_unsol_event { u32 name; }; struct trace_event_data_offsets_hdac_stream {}; 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 xps_map_type { XPS_CPUS = 0, XPS_RXQS = 1, XPS_MAPS_MAX = 2, }; enum { TCA_CGROUP_UNSPEC = 0, TCA_CGROUP_ACT = 1, TCA_CGROUP_POLICE = 2, TCA_CGROUP_EMATCHES = 3, __TCA_CGROUP_MAX = 4, }; struct tcf_ematch_tree_hdr { __u16 nmatches; __u16 progid; }; struct tcf_ematch; struct tcf_ematch_tree { struct tcf_ematch_tree_hdr hdr; struct tcf_ematch *matches; }; struct cls_cgroup_head { u32 handle; struct tcf_exts exts; struct tcf_ematch_tree ematches; struct tcf_proto *tp; struct rcu_work rwork; }; struct tcf_ematch_ops; struct tcf_ematch { struct tcf_ematch_ops *ops; unsigned long data; unsigned int datalen; u16 matchid; u16 flags; struct net *net; }; struct tcf_pkt_info; struct tcf_ematch_ops { int kind; int datalen; int (*change)(struct net *, void *, int, struct tcf_ematch *); int (*match)(struct sk_buff *, struct tcf_ematch *, struct tcf_pkt_info *); void (*destroy)(struct tcf_ematch *); int (*dump)(struct sk_buff *, struct tcf_ematch *); struct module *owner; struct list_head link; }; struct tcf_pkt_info { unsigned char *ptr; int nexthdr; }; 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, }; 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; }; enum xt_policy_flags { XT_POLICY_MATCH_IN = 1, XT_POLICY_MATCH_OUT = 2, XT_POLICY_MATCH_NONE = 4, XT_POLICY_MATCH_STRICT = 8, }; struct xt_policy_spec { __u8 saddr: 1; __u8 daddr: 1; __u8 proto: 1; __u8 mode: 1; __u8 spi: 1; __u8 reqid: 1; }; struct xt_policy_elem { union { struct { union nf_inet_addr saddr; union nf_inet_addr smask; union nf_inet_addr daddr; union nf_inet_addr dmask; }; }; __be32 spi; __u32 reqid; __u8 proto; __u8 mode; struct xt_policy_spec match; struct xt_policy_spec invert; }; struct xt_policy_info { struct xt_policy_elem pol[4]; __u16 flags; __u16 len; }; struct udp_seq_afinfo { sa_family_t family; struct udp_table *udp_table; }; struct skb_gso_cb { union { int mac_offset; int data_offset; }; int encap_level; __wsum csum; __u16 csum_start; }; 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 frag_queue { struct inet_frag_queue q; int iif; __u16 nhoffset; u8 ecn; }; struct nft_ct_frag6_pernet { struct ctl_table_header *nf_frag_frags_hdr; struct fqdir *fqdir; }; struct rpc_iostats { spinlock_t om_lock; unsigned long om_ops; unsigned long om_ntrans; unsigned long om_timeouts; unsigned long long om_bytes_sent; unsigned long long om_bytes_recv; ktime_t om_queue; ktime_t om_rtt; ktime_t om_execute; unsigned long om_error_status; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; enum { RPC_PIPEFS_MOUNT = 0, RPC_PIPEFS_UMOUNT = 1, }; struct rpc_cb_add_xprt_calldata { struct rpc_xprt_switch *xps; struct rpc_xprt *xprt; }; struct rpc_add_xprt_test { void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); void *data; }; struct connect_timeout_data { unsigned long connect_timeout; unsigned long reconnect_timeout; }; 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 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_IGNORE_STALE_KICKOFF = 64, REGULATORY_WIPHY_SELF_MANAGED = 128, }; enum rfkill_hard_block_reasons { RFKILL_HARD_BLOCK_SIGNAL = 1, RFKILL_HARD_BLOCK_NOT_OWNER = 2, }; struct cfg80211_beacon_registration { struct list_head list; u32 nlportid; }; struct mcs_group { u8 shift; u16 duration[12]; }; 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 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, }; struct compress_format { unsigned char magic[2]; const char *name; decompress_fn decompressor; }; struct in6_addr; struct vdso_exception_table_entry { int insn; int fixup; }; struct aperfmperf { seqcount_t seq; unsigned long last_update; u64 acnt; u64 mcnt; u64 aperf; u64 mperf; }; struct pv_info { const char *name; }; struct pv_cpu_ops { void (*io_delay)(); }; struct pv_irq_ops {}; struct pv_mmu_ops { void (*flush_tlb_user)(); void (*flush_tlb_kernel)(); void (*flush_tlb_one_user)(unsigned long); void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *); void (*tlb_remove_table)(struct mmu_gather *, void *); void (*exit_mmap)(struct mm_struct *); void (*notify_page_enc_status_changed)(unsigned long, int, bool); }; struct paravirt_callee_save { void *func; }; struct pv_lock_ops { void (*queued_spin_lock_slowpath)(struct qspinlock *, u32); struct paravirt_callee_save queued_spin_unlock; void (*wait)(u8 *, u8); void (*kick)(int); struct paravirt_callee_save vcpu_is_preempted; }; struct paravirt_patch_template { struct pv_cpu_ops cpu; struct pv_irq_ops irq; struct pv_mmu_ops mmu; struct pv_lock_ops lock; }; enum paravirt_lazy_mode { PARAVIRT_LAZY_NONE = 0, PARAVIRT_LAZY_MMU = 1, PARAVIRT_LAZY_CPU = 2, }; union text_poke_insn { u8 text[5]; struct { u8 opcode; s32 disp; } __attribute__((packed)); }; 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 dev_printk_info; enum { IRQ_SET_MASK_OK = 0, IRQ_SET_MASK_OK_NOCOPY = 1, IRQ_SET_MASK_OK_DONE = 2, }; enum { IRQC_IS_HARDIRQ = 0, IRQC_IS_NESTED = 1, }; typedef __kernel_long_t __kernel_suseconds_t; typedef __kernel_suseconds_t suseconds_t; 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 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; }; 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, }; 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_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_raw_tp_link { struct bpf_link link; struct bpf_raw_event_map *btp; }; 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_btf_info { __u64 btf; __u32 btf_size; __u32 id; __u64 name; __u32 name_len; __u32 kernel_btf; }; struct if_dqblk { __u64 dqb_bhardlimit; __u64 dqb_bsoftlimit; __u64 dqb_curspace; __u64 dqb_ihardlimit; __u64 dqb_isoftlimit; __u64 dqb_curinodes; __u64 dqb_btime; __u64 dqb_itime; __u32 dqb_valid; }; struct fs_qfilestat { __u64 qfs_ino; __u64 qfs_nblks; __u32 qfs_nextents; }; typedef struct fs_qfilestat fs_qfilestat_t; struct fs_quota_stat { __s8 qs_version; __u16 qs_flags; __s8 qs_pad; fs_qfilestat_t qs_uquota; fs_qfilestat_t qs_gquota; __u32 qs_incoredqs; __s32 qs_btimelimit; __s32 qs_itimelimit; __s32 qs_rtbtimelimit; __u16 qs_bwarnlimit; __u16 qs_iwarnlimit; }; struct compat_fs_qfilestat { compat_u64 dqb_bhardlimit; compat_u64 qfs_nblks; compat_uint_t qfs_nextents; } __attribute__((packed)); struct compat_fs_quota_stat { __s8 qs_version; char: 8; __u16 qs_flags; __s8 qs_pad; int: 24; struct compat_fs_qfilestat qs_uquota; struct compat_fs_qfilestat qs_gquota; compat_uint_t qs_incoredqs; compat_int_t qs_btimelimit; compat_int_t qs_itimelimit; compat_int_t qs_rtbtimelimit; __u16 qs_bwarnlimit; __u16 qs_iwarnlimit; } __attribute__((packed)); struct fs_qfilestatv { __u64 qfs_ino; __u64 qfs_nblks; __u32 qfs_nextents; __u32 qfs_pad; }; struct fs_quota_statv { __s8 qs_version; __u8 qs_pad1; __u16 qs_flags; __u32 qs_incoredqs; struct fs_qfilestatv qs_uquota; struct fs_qfilestatv qs_gquota; struct fs_qfilestatv qs_pquota; __s32 qs_btimelimit; __s32 qs_itimelimit; __s32 qs_rtbtimelimit; __u16 qs_bwarnlimit; __u16 qs_iwarnlimit; __u16 qs_rtbwarnlimit; __u16 qs_pad3; __u32 qs_pad4; __u64 qs_pad2[7]; }; struct fs_disk_quota { __s8 d_version; __s8 d_flags; __u16 d_fieldmask; __u32 d_id; __u64 d_blk_hardlimit; __u64 d_blk_softlimit; __u64 d_ino_hardlimit; __u64 d_ino_softlimit; __u64 d_bcount; __u64 d_icount; __s32 d_itimer; __s32 d_btimer; __u16 d_iwarns; __u16 d_bwarns; __s8 d_itimer_hi; __s8 d_btimer_hi; __s8 d_rtbtimer_hi; __s8 d_padding2; __u64 d_rtb_hardlimit; __u64 d_rtb_softlimit; __u64 d_rtbcount; __s32 d_rtbtimer; __u16 d_rtbwarns; __s16 d_padding3; char d_padding4[8]; }; struct if_dqinfo { __u64 dqi_bgrace; __u64 dqi_igrace; __u32 dqi_flags; __u32 dqi_valid; }; struct compat_if_dqblk { compat_u64 dqb_bhardlimit; compat_u64 dqb_bsoftlimit; compat_u64 dqb_curspace; compat_u64 dqb_ihardlimit; compat_u64 dqb_isoftlimit; compat_u64 dqb_curinodes; compat_u64 dqb_btime; compat_u64 dqb_itime; compat_uint_t dqb_valid; } __attribute__((packed)); struct if_nextdqblk { __u64 dqb_bhardlimit; __u64 dqb_bsoftlimit; __u64 dqb_curspace; __u64 dqb_ihardlimit; __u64 dqb_isoftlimit; __u64 dqb_curinodes; __u64 dqb_btime; __u64 dqb_itime; __u32 dqb_valid; __u32 dqb_id; }; enum { EXT4_MF_MNTDIR_SAMPLED = 0, EXT4_MF_FS_ABORTED = 1, EXT4_MF_FC_INELIGIBLE = 2, }; 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 ext4_xattr_ibody_header { __le32 h_magic; }; struct ext4_xattr_inode_array { unsigned int count; struct inode *inodes[0]; }; 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; }; 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 ipc_proc_iface { const char *path; const char *header; int ids; int (*show)(struct seq_file *, void *); }; struct ipc_proc_iter { struct ipc_namespace *ns; struct pid_namespace *pid_ns; struct ipc_proc_iface *iface; }; struct hashtab_info { u32 slots_used; u32 max_chain_len; }; struct netlbl_lsm_cache; struct netlbl_lsm_secattr { u32 flags; u32 type; char *domain; struct netlbl_lsm_cache *cache; struct { struct { struct netlbl_lsm_catmap *cat; u32 lvl; } mls; u32 secid; } attr; }; struct netlbl_lsm_cache { refcount_t refcount; void (*free)(const void *); void *data; }; struct sha1_state; typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); struct sha1_state { u32 state[5]; u64 count; u8 buffer[64]; }; 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 *); }; enum asymmetric_payload_bits { asym_crypto = 0, asym_subtype = 1, asym_key_ids = 2, asym_auth = 3, }; 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 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 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; }; }; typedef struct { struct folio *v; } Sector; 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 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 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 *); }; struct barrett_ctx_s; typedef struct barrett_ctx_s *mpi_barrett_t; 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 { 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, }; struct acpi_genl_event { acpi_device_class device_class; char bus_id[15]; u32 type; u32 data; }; struct acpi_interface_info { char *name; struct acpi_interface_info *next; u8 flags; u8 value; }; typedef u32 (*acpi_interface_handler)(acpi_string, u32); struct pnp_port { resource_size_t min; resource_size_t max; resource_size_t align; resource_size_t size; unsigned char flags; }; 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 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; struct tty_audit_buf { struct mutex mutex; dev_t dev; unsigned int icanon: 1; size_t valid; unsigned char *data; }; enum perf_event_task_context { perf_invalid_context = -1, perf_hw_context = 0, perf_sw_context = 1, perf_nr_task_contexts = 2, }; enum ack_type { ACK_CLEAR = 0, ACK_SET = 1, }; typedef void (*drmres_release_t___2)(struct drm_device___2 *, void *); struct cpu_attr { struct device_attribute attr; const struct cpumask * const map; }; typedef u32 note_buf_t[92]; 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, }; 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; 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; }; struct trace_event_data_offsets_scsi_dispatch_cmd_error { u32 cmnd; }; struct trace_event_data_offsets_scsi_cmd_done_timeout_template { u32 cmnd; }; struct trace_event_data_offsets_scsi_eh_wakeup {}; 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 nsim_dev_hwstats_do { NSIM_DEV_HWSTATS_DO_DISABLE = 0, NSIM_DEV_HWSTATS_DO_ENABLE = 1, NSIM_DEV_HWSTATS_DO_FAIL = 2, }; enum netdev_offload_xstats_type { NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, }; struct nsim_dev_hwstats_fops { const struct file_operations fops; enum nsim_dev_hwstats_do action; enum netdev_offload_xstats_type type; }; struct nsim_dev_hwstats_netdev { struct list_head list; struct net_device *netdev; struct rtnl_hw_stats64 stats; bool enabled; bool fail_enable; }; 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 quirk_entry { u16 vid; u16 pid; u32 flags; }; struct kvm_clock_pairing { __s64 sec; __s64 nsec; __u64 tsc; __u32 flags; __u32 pad[9]; }; 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; }; struct snd_monitor_file { struct file *file; const struct file_operations *disconnected_f_op; struct list_head shutdown_list; struct list_head list; }; enum { AC_JACK_PORT_COMPLEX = 0, AC_JACK_PORT_NONE = 1, AC_JACK_PORT_FIXED = 2, AC_JACK_PORT_BOTH = 3, }; enum { AC_JACK_LINE_OUT = 0, AC_JACK_SPEAKER = 1, AC_JACK_HP_OUT = 2, AC_JACK_CD = 3, AC_JACK_SPDIF_OUT = 4, AC_JACK_DIG_OTHER_OUT = 5, AC_JACK_MODEM_LINE_SIDE = 6, AC_JACK_MODEM_HAND_SIDE = 7, AC_JACK_LINE_IN = 8, AC_JACK_AUX = 9, AC_JACK_MIC_IN = 10, AC_JACK_TELEPHONY = 11, AC_JACK_SPDIF_IN = 12, AC_JACK_DIG_OTHER_IN = 13, AC_JACK_OTHER = 15, }; enum { AUTO_PIN_MIC = 0, AUTO_PIN_LINE_IN = 1, AUTO_PIN_CD = 2, AUTO_PIN_AUX = 3, AUTO_PIN_LAST = 4, }; enum { AC_JACK_LOC_REAR_PANEL = 7, AC_JACK_LOC_DRIVE_BAY = 8, AC_JACK_LOC_RISER = 23, AC_JACK_LOC_HDMI = 24, AC_JACK_LOC_ATAPI = 25, AC_JACK_LOC_MOBILE_IN = 55, AC_JACK_LOC_MOBILE_OUT = 56, }; enum { AUTO_PIN_LINE_OUT = 0, AUTO_PIN_SPEAKER_OUT = 1, AUTO_PIN_HP_OUT = 2, }; enum { INPUT_PIN_ATTR_UNUSED = 0, INPUT_PIN_ATTR_INT = 1, INPUT_PIN_ATTR_DOCK = 2, INPUT_PIN_ATTR_NORMAL = 3, INPUT_PIN_ATTR_REAR = 4, INPUT_PIN_ATTR_FRONT = 5, INPUT_PIN_ATTR_LAST = 5, }; enum { AC_JACK_LOC_EXTERNAL = 0, AC_JACK_LOC_INTERNAL = 16, AC_JACK_LOC_SEPARATE = 32, AC_JACK_LOC_OTHER = 48, }; enum { AC_JACK_LOC_NONE = 0, AC_JACK_LOC_REAR = 1, AC_JACK_LOC_FRONT = 2, AC_JACK_LOC_LEFT = 3, AC_JACK_LOC_RIGHT = 4, AC_JACK_LOC_TOP = 5, AC_JACK_LOC_BOTTOM = 6, }; enum { HDA_FIXUP_INVALID = 0, HDA_FIXUP_PINS = 1, HDA_FIXUP_VERBS = 2, HDA_FIXUP_FUNC = 3, HDA_FIXUP_PINCTLS = 4, }; enum { HDA_FIXUP_ACT_PRE_PROBE = 0, HDA_FIXUP_ACT_PROBE = 1, HDA_FIXUP_ACT_INIT = 2, HDA_FIXUP_ACT_BUILD = 3, HDA_FIXUP_ACT_FREE = 4, }; enum { HDA_INPUT = 0, HDA_OUTPUT = 1, }; struct auto_pin_cfg_item { hda_nid_t pin; int type; unsigned int is_headset_mic: 1; unsigned int is_headphone_mic: 1; unsigned int has_boost_on_pin: 1; }; struct auto_pin_cfg { int line_outs; hda_nid_t line_out_pins[5]; int speaker_outs; hda_nid_t speaker_pins[5]; int hp_outs; int line_out_type; hda_nid_t hp_pins[5]; int num_inputs; struct auto_pin_cfg_item inputs[18]; int dig_outs; hda_nid_t dig_out_pins[2]; hda_nid_t dig_in_pin; hda_nid_t mono_out_pin; int dig_out_type[2]; int dig_in_type; }; struct auto_out_pin { hda_nid_t pin; short seq; }; struct hda_pincfg { hda_nid_t nid; unsigned char ctrl; unsigned char target; unsigned int cfg; }; struct snd_pci_quirk { unsigned short subvendor; unsigned short subdevice; unsigned short subdevice_mask; int value; }; struct snd_hda_pin_quirk { unsigned int codec; unsigned short subvendor; const struct hda_pintbl *pins; int value; }; struct hda_model_fixup { const int id; const char *name; }; struct percpu_free_defer { struct callback_head rcu; void __attribute__((btf_type_tag("percpu"))) *ptr; }; 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; }; struct compat_rtentry { u32 rt_pad1; struct sockaddr rt_dst; struct sockaddr rt_gateway; struct sockaddr rt_genmask; unsigned short rt_flags; short rt_pad2; u32 rt_pad3; unsigned char rt_tos; unsigned char rt_class; short rt_pad4; short rt_metric; compat_uptr_t rt_dev; u32 rt_mtu; u32 rt_window; unsigned short rt_irtt; }; struct ipt_error { struct ipt_entry entry; struct xt_error_target target; }; struct compat_ipt_entry { struct ipt_ip ip; compat_uint_t nfcache; __u16 target_offset; __u16 next_offset; compat_uint_t comefrom; struct compat_xt_counters counters; unsigned char elems[0]; }; struct compat_ipt_replace { char name[32]; u32 valid_hooks; u32 num_entries; u32 size; u32 hook_entry[5]; u32 underflow[5]; u32 num_counters; compat_uptr_t counters; struct compat_ipt_entry entries[0]; } __attribute__((packed)); 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 compat_ipt_get_entries { char name[32]; compat_uint_t size; struct compat_ipt_entry entrytable[0]; } __attribute__((packed)); struct ipt_icmp { __u8 type; __u8 code[2]; __u8 invflags; }; 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 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 ieee80211_tpt_led_trigger_flags { IEEE80211_TPT_LEDTRIG_FL_RADIO = 1, IEEE80211_TPT_LEDTRIG_FL_WORK = 2, IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4, }; 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, }; 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, }; 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]; }; 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); 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); }; 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, }; 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, }; struct pci2phy_map { struct list_head list; int segment; int pbus_to_dieid[256]; }; 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 { IRQCHIP_FWNODE_REAL = 0, IRQCHIP_FWNODE_NAMED = 1, IRQCHIP_FWNODE_NAMED_ID = 2, }; struct irq_cfg { unsigned int dest_apicid; unsigned int vector; }; 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; }; struct efi_mem_range { struct range range; u64 attribute; }; enum rlimit_type { UCOUNT_RLIMIT_NPROC = 0, UCOUNT_RLIMIT_MSGQUEUE = 1, UCOUNT_RLIMIT_SIGPENDING = 2, UCOUNT_RLIMIT_MEMLOCK = 3, UCOUNT_RLIMIT_COUNTS = 4, }; enum what { 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_COREDUMP = 1073741824, PROC_EVENT_EXIT = 2147483648, }; 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 scratch_map[4]; unsigned long system_map[4]; }; struct cpumap { unsigned int available; unsigned int allocated; unsigned int managed; unsigned int managed_allocated; bool initialized; bool online; unsigned long alloc_map[4]; unsigned long managed_map[4]; }; 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 {}; struct posix_clock_desc { struct file *fp; struct posix_clock *clk; }; 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; }; struct action_cache { unsigned long allow_native[8]; unsigned long allow_compat[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 { struct semaphore request; 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_resp { __u64 id; __s64 val; __s32 error; __u32 flags; }; struct seccomp_notif { __u64 id; __u32 pid; __u32 flags; struct seccomp_data data; }; struct seccomp_notif_addfd { __u64 id; __u32 flags; __u32 srcfd; __u32 newfd; __u32 newfd_flags; }; enum wb_state { WB_registered = 0, WB_writeback_running = 1, WB_has_dirty_io = 2, WB_start_all = 3, }; 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 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 memcg_stat_item { MEMCG_SWAP = 41, MEMCG_SOCK = 42, MEMCG_PERCPU_B = 43, MEMCG_VMALLOC = 44, MEMCG_KMEM = 45, MEMCG_ZSWAP_B = 46, MEMCG_ZSWAPPED = 47, MEMCG_NR_STAT = 48, }; 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[16]; 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; typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); 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 vmap_pfn_data { unsigned long *pfns; pgprot_t prot; unsigned int idx; }; struct fs_error_report { int error; struct inode *inode; struct super_block *sb; }; 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_prealloc_space { struct list_head pa_inode_list; 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; spinlock_t *pa_obj_lock; struct inode *pa_inode; }; 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]; }; 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; __u32 ac_groups_considered; __u32 ac_flags; __u16 ac_groups_scanned; __u16 ac_groups_linear_remaining; __u16 ac_found; __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; }; typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); enum { NSMPROC_NULL = 0, NSMPROC_STAT = 1, NSMPROC_MON = 2, NSMPROC_UNMON = 3, NSMPROC_UNMON_ALL = 4, NSMPROC_SIMU_CRASH = 5, NSMPROC_NOTIFY = 6, }; enum xprt_transports { XPRT_TRANSPORT_UDP = 17, XPRT_TRANSPORT_TCP = 6, XPRT_TRANSPORT_BC_TCP = -2147483642, XPRT_TRANSPORT_RDMA = 256, XPRT_TRANSPORT_BC_RDMA = -2147483392, XPRT_TRANSPORT_LOCAL = 257, }; struct nsm_args { struct nsm_private *priv; u32 prog; u32 vers; u32 proc; char *mon_name; const char *nodename; }; struct nsm_res { u32 status; u32 state; }; 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]; }; enum evm_ima_xattr_type { IMA_XATTR_DIGEST = 1, EVM_XATTR_HMAC = 2, EVM_IMA_XATTR_DIGSIG = 3, IMA_XATTR_DIGEST_NG = 4, EVM_XATTR_PORTABLE_DIGSIG = 5, IMA_VERITY_DIGSIG = 6, IMA_XATTR_LAST = 7, }; struct asymmetric_key_parser { struct list_head link; struct module *owner; const char *name; int (*parse)(struct key_preparsed_payload *); }; enum blacklist_hash_type { BLACKLIST_HASH_X509_TBS = 1, BLACKLIST_HASH_BINARY = 2, }; struct asymmetric_key_ids { void *id[3]; }; struct io_uring_file_index_range { __u32 off; __u32 len; __u64 resv; }; union handle_parts { depot_stack_handle_t handle; struct { u32 pool_index: 16; u32 offset: 10; u32 valid: 1; u32 extra: 5; }; }; struct stack_record { struct stack_record *next; u32 hash; u32 size; union handle_parts handle; unsigned long entries[0]; }; struct pci_filp_private { enum pci_mmap_state mmap_state; int write_combine; }; struct acpi_table_madt { struct acpi_table_header header; u32 address; u32 flags; }; 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 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; }; struct pnp_fixup { char id[7]; void (*quirk_function)(struct pnp_dev *); }; struct mid8250; struct mid8250_board { unsigned int flags; unsigned long freq; unsigned int base_baud; 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 drm_client_funcs; struct drm_client_dev { struct drm_device *dev; const char *name; struct list_head list; const struct drm_client_funcs *funcs; struct drm_file *file; struct mutex modeset_mutex; struct drm_mode_set *modesets; bool hotplug_failed; }; struct drm_client_funcs { struct module *owner; void (*unregister)(struct drm_client_dev *); int (*restore)(struct drm_client_dev *); int (*hotplug)(struct drm_client_dev *); }; struct drm_client_buffer { struct drm_client_dev *client; u32 pitch; struct drm_gem_object *gem; struct iosys_map map; struct drm_framebuffer *fb; }; struct ttm_validate_buffer { struct list_head head; struct ttm_buffer_object *bo; unsigned int num_shared; }; struct ttm_range_mgr_node { struct ttm_resource base; struct drm_mm_node mm_nodes[0]; }; struct legacy_ring { struct intel_gt *gt; u8 class; u8 instance; }; struct cparams { u16 i; u16 t; u16 m; u16 c; }; struct intel_rps_freq_caps { u8 rp0_freq; u8 rp1_freq; u8 min_freq; }; struct i915_dpt { struct i915_address_space___3 vm; struct drm_i915_gem_object___3 *obj; struct i915_vma___3 *vma; void *iomem; }; struct dma_buf_list { struct list_head head; struct mutex lock; }; struct dma_buf_import_sync_file { __u32 flags; __s32 fd; }; struct dma_buf_export_sync_file { __u32 flags; __s32 fd; }; struct dma_buf_sync { __u64 flags; }; enum ata_link_iter_mode { ATA_LITER_EDGE = 0, ATA_LITER_HOST_FIRST = 1, ATA_LITER_PMP_FIRST = 2, }; enum { VXLAN_VNI_STATS_RX = 0, VXLAN_VNI_STATS_RX_DROPS = 1, VXLAN_VNI_STATS_RX_ERRORS = 2, VXLAN_VNI_STATS_TX = 3, VXLAN_VNI_STATS_TX_DROPS = 4, VXLAN_VNI_STATS_TX_ERRORS = 5, }; enum { VXLAN_VNIFILTER_UNSPEC = 0, VXLAN_VNIFILTER_ENTRY = 1, __VXLAN_VNIFILTER_MAX = 2, }; enum { VXLAN_VNIFILTER_ENTRY_UNSPEC = 0, VXLAN_VNIFILTER_ENTRY_START = 1, VXLAN_VNIFILTER_ENTRY_END = 2, VXLAN_VNIFILTER_ENTRY_GROUP = 3, VXLAN_VNIFILTER_ENTRY_GROUP6 = 4, VXLAN_VNIFILTER_ENTRY_STATS = 5, __VXLAN_VNIFILTER_ENTRY_MAX = 6, }; enum { VNIFILTER_ENTRY_STATS_UNSPEC = 0, VNIFILTER_ENTRY_STATS_RX_BYTES = 1, VNIFILTER_ENTRY_STATS_RX_PKTS = 2, VNIFILTER_ENTRY_STATS_RX_DROPS = 3, VNIFILTER_ENTRY_STATS_RX_ERRORS = 4, VNIFILTER_ENTRY_STATS_TX_BYTES = 5, VNIFILTER_ENTRY_STATS_TX_PKTS = 6, VNIFILTER_ENTRY_STATS_TX_DROPS = 7, VNIFILTER_ENTRY_STATS_TX_ERRORS = 8, VNIFILTER_ENTRY_STATS_PAD = 9, __VNIFILTER_ENTRY_STATS_MAX = 10, }; struct tunnel_msg { __u8 family; __u8 flags; __u16 reserved2; __u32 ifindex; }; enum { SNDRV_TIMER_CLASS_NONE = -1, SNDRV_TIMER_CLASS_SLAVE = 0, SNDRV_TIMER_CLASS_GLOBAL = 1, SNDRV_TIMER_CLASS_CARD = 2, SNDRV_TIMER_CLASS_PCM = 3, SNDRV_TIMER_CLASS_LAST = 3, }; enum { SNDRV_TIMER_SCLASS_NONE = 0, SNDRV_TIMER_SCLASS_APPLICATION = 1, SNDRV_TIMER_SCLASS_SEQUENCER = 2, SNDRV_TIMER_SCLASS_OSS_SEQUENCER = 3, SNDRV_TIMER_SCLASS_LAST = 3, }; enum timer_tread_format { TREAD_FORMAT_NONE = 0, TREAD_FORMAT_TIME64 = 1, TREAD_FORMAT_TIME32 = 2, }; enum { SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492, SNDRV_TIMER_IOCTL_INFO32 = 2162185233, SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516, SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804, }; struct snd_timer_system_private { struct timer_list tlist; struct snd_timer *snd_timer; unsigned long last_expires; unsigned long last_jiffies; unsigned long correction; }; struct snd_timer_gparams32 { struct snd_timer_id tid; u32 period_num; u32 period_den; unsigned char reserved[32]; }; struct snd_timer_gparams { struct snd_timer_id tid; unsigned long period_num; unsigned long period_den; unsigned char reserved[32]; }; struct snd_timer_info32 { u32 flags; s32 card; unsigned char id[64]; unsigned char name[80]; u32 reserved0; u32 resolution; unsigned char reserved[64]; }; struct snd_timer_read; struct snd_timer_tread64; struct snd_timer_user { struct snd_timer_instance *timeri; int tread; unsigned long ticks; unsigned long overrun; int qhead; int qtail; int qused; int queue_size; bool disconnected; struct snd_timer_read *queue; struct snd_timer_tread64 *tqueue; spinlock_t qlock; unsigned long last_resolution; unsigned int filter; struct timespec64 tstamp; wait_queue_head_t qchange_sleep; struct snd_fasync *fasync; struct mutex ioctl_lock; }; struct snd_timer_read { unsigned int resolution; unsigned int ticks; }; struct snd_timer_tread64 { int event; u8 pad1[4]; s64 tstamp_sec; s64 tstamp_nsec; unsigned int val; u8 pad2[4]; }; struct snd_timer_params { unsigned int flags; unsigned int ticks; unsigned int queue_size; unsigned int reserved0; unsigned int filter; unsigned char reserved[60]; }; struct snd_timer_ginfo { struct snd_timer_id tid; unsigned int flags; int card; unsigned char id[64]; unsigned char name[80]; unsigned long reserved0; unsigned long resolution; unsigned long resolution_min; unsigned long resolution_max; unsigned int clients; unsigned char reserved[32]; }; struct snd_timer_info { unsigned int flags; int card; unsigned char id[64]; unsigned char name[80]; unsigned long reserved0; unsigned long resolution; unsigned char reserved[64]; }; struct snd_timer_select { struct snd_timer_id id; unsigned char reserved[32]; }; struct snd_timer_gstatus { struct snd_timer_id tid; unsigned long resolution; unsigned long resolution_num; unsigned long resolution_den; unsigned char reserved[32]; }; struct snd_timer_tread32 { int event; s32 tstamp_sec; s32 tstamp_nsec; unsigned int val; }; struct snd_timer_status32 { s32 tstamp_sec; s32 tstamp_nsec; unsigned int resolution; unsigned int lost; unsigned int overrun; unsigned int queue; unsigned char reserved[64]; }; struct snd_timer_status64 { s64 tstamp_sec; s64 tstamp_nsec; unsigned int resolution; unsigned int lost; unsigned int overrun; unsigned int queue; unsigned char reserved[64]; }; 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 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]; }; 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 sdp_header_types { SDP_HDR_UNSPEC = 0, SDP_HDR_VERSION = 1, SDP_HDR_OWNER = 2, SDP_HDR_CONNECTION = 3, SDP_HDR_MEDIA = 4, }; struct nf_nat_sip_hooks { unsigned int (*msg)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *); void (*seq_adjust)(struct sk_buff *, unsigned int, s16); unsigned int (*expect)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, struct nf_conntrack_expect *, unsigned int, unsigned int); unsigned int (*sdp_addr)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, enum sdp_header_types, enum sdp_header_types, const union nf_inet_addr *); unsigned int (*sdp_port)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, unsigned int, u_int16_t); unsigned int (*sdp_session)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, const union nf_inet_addr *); unsigned int (*sdp_media)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, struct nf_conntrack_expect *, struct nf_conntrack_expect *, unsigned int, unsigned int, union nf_inet_addr *); }; struct sip_header { const char *name; const char *cname; const char *search; unsigned int len; unsigned int clen; unsigned int slen; int (*match_len)(const struct nf_conn *, const char *, const char *, int *); }; struct sip_handler { const char *method; unsigned int len; int (*request)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int); int (*response)(struct sk_buff *, unsigned int, unsigned int, const char **, unsigned int *, unsigned int, unsigned int); }; enum sip_expectation_classes { SIP_EXPECT_SIGNALLING = 0, SIP_EXPECT_AUDIO = 1, SIP_EXPECT_VIDEO = 2, SIP_EXPECT_IMAGE = 3, __SIP_EXPECT_MAX = 4, }; struct sdp_media_type { const char *name; unsigned int len; enum sip_expectation_classes class; }; enum sip_header_types { SIP_HDR_CSEQ = 0, SIP_HDR_FROM = 1, SIP_HDR_TO = 2, SIP_HDR_CONTACT = 3, SIP_HDR_VIA_UDP = 4, SIP_HDR_VIA_TCP = 5, SIP_HDR_EXPIRES = 6, SIP_HDR_CONTENT_LENGTH = 7, SIP_HDR_CALL_ID = 8, }; struct nf_ct_sip_master { unsigned int register_cseq; unsigned int invite_cseq; __be16 forced_dport; }; enum { FOU_CMD_UNSPEC = 0, FOU_CMD_ADD = 1, FOU_CMD_DEL = 2, FOU_CMD_GET = 3, __FOU_CMD_MAX = 4, }; enum { FOU_ATTR_UNSPEC = 0, FOU_ATTR_PORT = 1, FOU_ATTR_AF = 2, FOU_ATTR_IPPROTO = 3, FOU_ATTR_TYPE = 4, FOU_ATTR_REMCSUM_NOPARTIAL = 5, FOU_ATTR_LOCAL_V4 = 6, FOU_ATTR_LOCAL_V6 = 7, FOU_ATTR_PEER_V4 = 8, FOU_ATTR_PEER_V6 = 9, FOU_ATTR_PEER_PORT = 10, FOU_ATTR_IFINDEX = 11, __FOU_ATTR_MAX = 12, }; enum { FOU_ENCAP_UNSPEC = 0, FOU_ENCAP_DIRECT = 1, FOU_ENCAP_GUE = 2, }; struct fou { struct socket *sock; u8 protocol; u8 flags; __be16 port; u8 family; u16 type; struct list_head list; struct callback_head rcu; }; struct fou_cfg { u16 type; u8 protocol; u8 flags; struct udp_port_cfg udp_config; }; struct fou_net { struct list_head fou_list; struct mutex fou_lock; }; struct gro_remcsum { int offset; __wsum delta; }; enum xfrm_ae_ftype_t { XFRM_AE_UNSPEC = 0, XFRM_AE_RTHR = 1, XFRM_AE_RVAL = 2, XFRM_AE_LVAL = 4, XFRM_AE_ETHR = 8, XFRM_AE_CR = 16, XFRM_AE_CE = 32, XFRM_AE_CU = 64, __XFRM_AE_MAX = 65, }; enum { XFRM_MSG_BASE = 16, XFRM_MSG_NEWSA = 16, XFRM_MSG_DELSA = 17, XFRM_MSG_GETSA = 18, XFRM_MSG_NEWPOLICY = 19, XFRM_MSG_DELPOLICY = 20, XFRM_MSG_GETPOLICY = 21, XFRM_MSG_ALLOCSPI = 22, XFRM_MSG_ACQUIRE = 23, XFRM_MSG_EXPIRE = 24, XFRM_MSG_UPDPOLICY = 25, XFRM_MSG_UPDSA = 26, XFRM_MSG_POLEXPIRE = 27, XFRM_MSG_FLUSHSA = 28, XFRM_MSG_FLUSHPOLICY = 29, XFRM_MSG_NEWAE = 30, XFRM_MSG_GETAE = 31, XFRM_MSG_REPORT = 32, XFRM_MSG_MIGRATE = 33, XFRM_MSG_NEWSADINFO = 34, XFRM_MSG_GETSADINFO = 35, XFRM_MSG_NEWSPDINFO = 36, XFRM_MSG_GETSPDINFO = 37, XFRM_MSG_MAPPING = 38, XFRM_MSG_SETDEFAULT = 39, XFRM_MSG_GETDEFAULT = 40, __XFRM_MSG_MAX = 41, }; enum xfrm_nlgroups { XFRMNLGRP_NONE = 0, XFRMNLGRP_ACQUIRE = 1, XFRMNLGRP_EXPIRE = 2, XFRMNLGRP_SA = 3, XFRMNLGRP_POLICY = 4, XFRMNLGRP_AEVENTS = 5, XFRMNLGRP_REPORT = 6, XFRMNLGRP_MIGRATE = 7, XFRMNLGRP_MAPPING = 8, __XFRMNLGRP_MAX = 9, }; struct km_event { union { u32 hard; u32 proto; u32 byid; u32 aevent; u32 type; } data; u32 seq; u32 portid; u32 event; struct net *net; }; 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 ip_auth_hdr { __u8 nexthdr; __u8 hdrlen; __be16 reserved; __be32 spi; __be32 seq_no; __u8 auth_data[0]; }; struct hash_alg_common { unsigned int digestsize; unsigned int statesize; struct crypto_alg base; }; struct ah_skb_cb { struct xfrm_skb_cb xfrm; void *tmp; }; struct rt0_hdr { struct ipv6_rt_hdr rt_hdr; __u32 reserved; struct in6_addr addr[0]; }; struct tmp_ext { struct in6_addr daddr; char hdrs[0]; }; struct ah_data { int icv_full_len; int icv_trunc_len; struct crypto_ahash *ahash; }; enum devlink_command { DEVLINK_CMD_UNSPEC = 0, DEVLINK_CMD_GET = 1, DEVLINK_CMD_SET = 2, DEVLINK_CMD_NEW = 3, DEVLINK_CMD_DEL = 4, DEVLINK_CMD_PORT_GET = 5, DEVLINK_CMD_PORT_SET = 6, DEVLINK_CMD_PORT_NEW = 7, DEVLINK_CMD_PORT_DEL = 8, DEVLINK_CMD_PORT_SPLIT = 9, DEVLINK_CMD_PORT_UNSPLIT = 10, DEVLINK_CMD_SB_GET = 11, DEVLINK_CMD_SB_SET = 12, DEVLINK_CMD_SB_NEW = 13, DEVLINK_CMD_SB_DEL = 14, DEVLINK_CMD_SB_POOL_GET = 15, DEVLINK_CMD_SB_POOL_SET = 16, DEVLINK_CMD_SB_POOL_NEW = 17, DEVLINK_CMD_SB_POOL_DEL = 18, DEVLINK_CMD_SB_PORT_POOL_GET = 19, DEVLINK_CMD_SB_PORT_POOL_SET = 20, DEVLINK_CMD_SB_PORT_POOL_NEW = 21, DEVLINK_CMD_SB_PORT_POOL_DEL = 22, DEVLINK_CMD_SB_TC_POOL_BIND_GET = 23, DEVLINK_CMD_SB_TC_POOL_BIND_SET = 24, DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 25, DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 26, DEVLINK_CMD_SB_OCC_SNAPSHOT = 27, DEVLINK_CMD_SB_OCC_MAX_CLEAR = 28, DEVLINK_CMD_ESWITCH_GET = 29, DEVLINK_CMD_ESWITCH_SET = 30, DEVLINK_CMD_DPIPE_TABLE_GET = 31, DEVLINK_CMD_DPIPE_ENTRIES_GET = 32, DEVLINK_CMD_DPIPE_HEADERS_GET = 33, DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 34, DEVLINK_CMD_RESOURCE_SET = 35, DEVLINK_CMD_RESOURCE_DUMP = 36, DEVLINK_CMD_RELOAD = 37, DEVLINK_CMD_PARAM_GET = 38, DEVLINK_CMD_PARAM_SET = 39, DEVLINK_CMD_PARAM_NEW = 40, DEVLINK_CMD_PARAM_DEL = 41, DEVLINK_CMD_REGION_GET = 42, DEVLINK_CMD_REGION_SET = 43, DEVLINK_CMD_REGION_NEW = 44, DEVLINK_CMD_REGION_DEL = 45, DEVLINK_CMD_REGION_READ = 46, DEVLINK_CMD_PORT_PARAM_GET = 47, DEVLINK_CMD_PORT_PARAM_SET = 48, DEVLINK_CMD_PORT_PARAM_NEW = 49, DEVLINK_CMD_PORT_PARAM_DEL = 50, DEVLINK_CMD_INFO_GET = 51, DEVLINK_CMD_HEALTH_REPORTER_GET = 52, DEVLINK_CMD_HEALTH_REPORTER_SET = 53, DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 54, DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 55, DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 56, DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 57, DEVLINK_CMD_FLASH_UPDATE = 58, DEVLINK_CMD_FLASH_UPDATE_END = 59, DEVLINK_CMD_FLASH_UPDATE_STATUS = 60, DEVLINK_CMD_TRAP_GET = 61, DEVLINK_CMD_TRAP_SET = 62, DEVLINK_CMD_TRAP_NEW = 63, DEVLINK_CMD_TRAP_DEL = 64, DEVLINK_CMD_TRAP_GROUP_GET = 65, DEVLINK_CMD_TRAP_GROUP_SET = 66, DEVLINK_CMD_TRAP_GROUP_NEW = 67, DEVLINK_CMD_TRAP_GROUP_DEL = 68, DEVLINK_CMD_TRAP_POLICER_GET = 69, DEVLINK_CMD_TRAP_POLICER_SET = 70, DEVLINK_CMD_TRAP_POLICER_NEW = 71, DEVLINK_CMD_TRAP_POLICER_DEL = 72, DEVLINK_CMD_HEALTH_REPORTER_TEST = 73, DEVLINK_CMD_RATE_GET = 74, DEVLINK_CMD_RATE_SET = 75, DEVLINK_CMD_RATE_NEW = 76, DEVLINK_CMD_RATE_DEL = 77, DEVLINK_CMD_LINECARD_GET = 78, DEVLINK_CMD_LINECARD_SET = 79, DEVLINK_CMD_LINECARD_NEW = 80, DEVLINK_CMD_LINECARD_DEL = 81, DEVLINK_CMD_SELFTESTS_GET = 82, DEVLINK_CMD_SELFTESTS_RUN = 83, __DEVLINK_CMD_MAX = 84, DEVLINK_CMD_MAX = 83, }; enum devlink_health_reporter_state { DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, }; enum devlink_multicast_groups { DEVLINK_MCGRP_CONFIG = 0, }; struct devlink_health_reporter { struct list_head list; void *priv; const struct devlink_health_reporter_ops *ops; struct devlink *devlink; struct devlink_port *devlink_port; struct devlink_fmsg *dump_fmsg; struct mutex dump_lock; u64 graceful_period; bool auto_recover; bool auto_dump; u8 health_state; u64 dump_ts; u64 dump_real_ts; u64 error_count; u64 recovery_count; u64 last_recovery_ts; }; struct devlink_fmsg { struct list_head item_list; bool putting_binary; }; struct devlink_fmsg_item { struct list_head list; int attrtype; u8 nla_type; u16 len; int value[0]; }; enum mac80211_tx_status_flags { IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1, }; 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 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 ieee80211_unprotected_wnm_actioncode { WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1, }; enum ieee80211_public_actioncode { WLAN_PUBLIC_ACTION_FTM_RESPONSE = 33, }; struct ieee80211_radiotap_he { __le16 data1; __le16 data2; __le16 data3; __le16 data4; __le16 data5; __le16 data6; }; struct ieee80211_bar { __le16 frame_control; __le16 duration; __u8 ra[6]; __u8 ta[6]; __le16 control; __le16 start_seq_num; }; struct cfg80211_tx_status { u64 cookie; u64 tx_tstamp; u64 ack_tstamp; const u8 *buf; size_t len; bool ack; }; struct xdp_umem_reg { __u64 addr; __u64 len; __u32 chunk_size; __u32 headroom; __u32 flags; }; 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 { 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, }; 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; }; 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; }; 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; }; typedef u8 retpoline_thunk_t[32]; typedef struct { struct mm_struct *mm; } temp_mm_state_t; struct paravirt_patch_site { u8 *instr; u8 type; u8 len; }; typedef void text_poke_f(void *, const void *, size_t); struct die_args { struct pt_regs *regs; const char *str; long err; int trapnr; int signr; }; typedef const struct cpumask * (*sched_domain_mask_f)(int); typedef int (*sched_domain_flags_f)(); struct sched_domain; struct sched_domain_shared; struct sched_group; struct sched_group_capacity; 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; }; 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; u64 avg_scan_cost; unsigned int lb_count[3]; unsigned int lb_failed[3]; unsigned int lb_balanced[3]; unsigned int lb_imbalance[3]; unsigned int lb_gained[3]; unsigned int lb_hot_gained[3]; unsigned int lb_nobusyg[3]; unsigned int lb_nobusyq[3]; unsigned int alb_count; unsigned int alb_failed; unsigned int alb_pushed; unsigned int sbe_count; unsigned int sbe_balanced; unsigned int sbe_pushed; unsigned int sbf_count; unsigned int sbf_balanced; unsigned int sbf_pushed; unsigned int ttwu_wake_remote; unsigned int ttwu_move_affine; unsigned int ttwu_move_balance; union { void *private; struct callback_head rcu; }; struct sched_domain_shared *shared; unsigned int span_weight; unsigned long span[0]; }; struct sched_domain_shared { atomic_t ref; atomic_t nr_busy_cpus; int has_idle_cores; int nr_idle_scan; }; 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, }; 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_SHARE_PKG_RESOURCES = 256, SD_SERIALIZE = 512, SD_ASYM_PACKING = 1024, SD_PREFER_SIBLING = 2048, SD_OVERLAP = 4096, SD_NUMA = 8192, }; enum { PAT_UC = 0, PAT_WC = 1, PAT_WT = 4, PAT_WP = 5, PAT_WB = 6, PAT_UC_MINUS = 7, }; 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; }; 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 *cap_user_data_t; struct __user_cap_data_struct { __u32 effective; __u32 permitted; __u32 inheritable; }; 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 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 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; 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]; unsigned char wrk[16384]; }; 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; 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 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 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; }; 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, }; 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; }; 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 track_item { TRACK_ALLOC = 0, TRACK_FREE = 1, }; 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 slab_modes { M_NONE = 0, M_PARTIAL = 1, M_FREE = 2, M_FULL_NOLIST = 3, }; enum slab_stat_type { SL_ALL = 0, SL_PARTIAL = 1, SL_CPU = 2, SL_OBJECTS = 3, SL_TOTAL = 4, }; struct location { depot_stack_handle_t handle; unsigned long count; unsigned long addr; unsigned long waste; long long sum_time; long min_time; long max_time; long min_pid; long max_pid; unsigned long cpus[1]; nodemask_t nodes; }; struct track { unsigned long addr; depot_stack_handle_t handle; int cpu; int pid; unsigned long when; }; struct detached_freelist { struct slab *slab; void *tail; void *freelist; int cnt; struct kmem_cache *s; }; struct partial_context { struct slab **slab; gfp_t flags; unsigned int orig_size; }; struct loc_track { unsigned long max; unsigned long count; struct location *loc; loff_t idx; }; struct ns_get_path_task_args { const struct proc_ns_operations *ns_ops; struct task_struct *task; }; struct posix_acl_xattr_header { __le32 a_version; }; struct posix_acl_xattr_entry { __le16 e_tag; __le16 e_perm; __le32 e_id; }; struct dx_hash_info { u32 hash; u32 minor_hash; int hash_version; u32 *seed; }; struct cb_process_state; struct callback_op { __be32 (*process_op)(void *, void *, struct cb_process_state *); __be32 (*decode_args)(struct svc_rqst *, struct xdr_stream *, void *); __be32 (*encode_res)(struct svc_rqst *, struct xdr_stream *, const void *); long res_maxsize; }; struct cb_process_state { __be32 drc_status; struct nfs_client *clp; struct nfs4_slot *slot; u32 minorversion; struct net *net; }; enum nfs4_callback_opnum { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_LAYOUTRECALL = 5, OP_CB_NOTIFY = 6, OP_CB_PUSH_DELEG = 7, OP_CB_RECALL_ANY = 8, OP_CB_RECALLABLE_OBJ_AVAIL = 9, OP_CB_RECALL_SLOT = 10, OP_CB_SEQUENCE = 11, OP_CB_WANTS_CANCELLED = 12, OP_CB_NOTIFY_LOCK = 13, OP_CB_NOTIFY_DEVICEID = 14, OP_CB_OFFLOAD = 15, OP_CB_ILLEGAL = 10044, }; struct cb_compound_hdr_arg { unsigned int taglen; const char *tag; unsigned int minorversion; unsigned int cb_ident; unsigned int nops; }; struct cb_compound_hdr_res { __be32 *status; unsigned int taglen; const char *tag; __be32 *nops; }; struct cb_getattrargs { struct nfs_fh fh; uint32_t bitmap[2]; }; struct cb_getattrres { __be32 status; uint32_t bitmap[2]; uint64_t size; uint64_t change_attr; struct timespec64 ctime; struct timespec64 mtime; }; struct cb_recallargs { struct nfs_fh fh; nfs4_stateid stateid; uint32_t truncate; }; struct selinux_audit_rule { u32 au_seqno; struct context au_ctxt; }; struct extended_perms_decision { u8 used; u8 driver; struct extended_perms_data *allowed; struct extended_perms_data *auditallow; struct extended_perms_data *dontaudit; }; struct extended_perms { u16 len; struct extended_perms_data drivers; }; struct security_class_mapping { const char *name; const char *perms[33]; }; struct superblock_security_struct { u32 sid; u32 def_sid; u32 mntpoint_sid; unsigned short behavior; unsigned short flags; struct mutex lock; struct list_head isec_head; spinlock_t isec_lock; }; struct selinux_policy_convert_data { struct convert_context_args args; struct sidtab_convert_params sidtab_params; }; struct crypto_ahash_spawn { struct crypto_spawn base; }; struct authenc_instance_ctx { struct crypto_ahash_spawn auth; struct crypto_skcipher_spawn enc; unsigned int reqoff; }; struct crypto_authenc_keys { const u8 *authkey; const u8 *enckey; unsigned int authkeylen; unsigned int enckeylen; }; 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]; }; 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; }; enum { DISK_EVENT_FLAG_POLL = 1, DISK_EVENT_FLAG_UEVENT = 2, DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, }; 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; }; typedef unsigned int FSE_DTable; typedef uint16_t U16; typedef struct { U16 tableLog; U16 fastMode; } FSE_DTableHeader; typedef struct { unsigned short newState; unsigned char symbol; unsigned char nbBits; } FSE_decode_t; typedef int16_t S16; typedef struct { short ncount[256]; FSE_DTable dtable[1]; } FSE_DecompressWksp; typedef struct { size_t bitContainer; unsigned int bitsConsumed; const char *ptr; const char *start; const char *limitPtr; } BIT_DStream_t; typedef struct { size_t state; const void *table; } FSE_DState_t; typedef enum { BIT_DStream_unfinished = 0, BIT_DStream_endOfBuffer = 1, BIT_DStream_completed = 2, BIT_DStream_overflow = 3, } BIT_DStream_status; struct barrett_ctx_s; typedef struct barrett_ctx_s *mpi_barrett_t___2; struct barrett_ctx_s { MPI m; int m_copied; int k; MPI y; MPI r1; MPI r2; MPI r3; }; struct sg_pool { size_t size; char *name; struct kmem_cache *slab; mempool_t *pool; }; 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 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_device_bus_id { const char *bus_id; struct ida instance_ida; struct list_head node; }; struct acpi_dev_match_info { struct acpi_device_id hid[2]; const char *uid; s64 hrv; }; struct acpi_handle_list { u32 count; acpi_handle handles[10]; }; struct pci_osc_bit_struct { u32 bit; char *desc; }; enum acpi_bridge_type { ACPI_BRIDGE_TYPE_PCIE = 1, ACPI_BRIDGE_TYPE_CXL = 2, }; struct acpi_bit_register_info { u8 parent_register; u8 bit_position; u16 access_bit_mask; }; 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; }; 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; }; struct pericom8250 { void *virt; unsigned int nr; int line[0]; }; struct amd_iommu_pci_seg; struct amd_iommu { struct list_head list; int index; raw_spinlock_t lock; struct pci_dev *dev; struct pci_dev *root_pdev; u64 mmio_phys; u64 mmio_phys_end; u8 *mmio_base; u32 cap; u8 acpi_flags; u64 features; u64 features2; bool is_iommu_v2; u16 devid; u16 cap_ptr; struct amd_iommu_pci_seg *pci_seg; u64 exclusion_start; u64 exclusion_length; u8 *cmd_buf; u32 cmd_buf_head; u32 cmd_buf_tail; u8 *evt_buf; u8 *ppr_log; u8 *ga_log; u8 *ga_log_tail; bool int_enabled; bool need_sync; struct iommu_device iommu; u32 stored_addr_lo; u32 stored_addr_hi; u32 stored_l1[108]; u32 stored_l2[131]; u8 max_banks; u8 max_counters; u32 flags; volatile u64 *cmd_sem; u64 cmd_sem_val; }; struct dev_table_entry; struct irq_remap_table; struct amd_iommu_pci_seg { struct list_head list; struct llist_head dev_data_list; u16 id; u16 last_bdf; u32 dev_table_size; u32 alias_table_size; u32 rlookup_table_size; struct dev_table_entry *dev_table; struct amd_iommu **rlookup_table; struct irq_remap_table **irq_lookup_table; struct dev_table_entry *old_dev_tbl_cpy; u16 *alias_table; struct list_head unity_map; }; struct dev_table_entry { u64 data[4]; }; struct irq_remap_table { raw_spinlock_t lock; unsigned int min_index; u32 *table; }; struct iommu_dev_data { spinlock_t lock; struct list_head list; struct llist_node dev_data_list; struct protection_domain *domain; struct device *dev; u16 devid; bool iommu_v2; struct { bool enabled; int qdep; } ats; bool pri_tlp; bool use_vapic; bool defer_attach; struct ratelimit_state rs; }; struct acpihid_map_entry { struct list_head list; u8 uid[256]; u8 hid[9]; u32 devid; u32 root_devid; bool cmd_line; struct iommu_group *group; }; struct unity_map_entry { struct list_head list; u16 devid_start; u16 devid_end; u64 address_start; u64 address_end; int prot; }; struct iommu_cmd { u32 data[4]; }; struct amd_iommu_fault { u64 address; u32 pasid; u32 sbdf; u16 tag; u16 flags; }; struct amd_iommu_device_info { int max_pasids; u32 flags; }; struct drm_format_modifier { __u64 formats; __u32 offset; __u32 pad; __u64 modifier; }; struct drm_format_modifier_blob { __u32 version; __u32 flags; __u32 count_formats; __u32 formats_offset; __u32 count_modifiers; __u32 modifiers_offset; }; struct drm_mode_cursor2 { __u32 flags; __u32 crtc_id; __s32 x; __s32 y; __u32 width; __u32 height; __u32 handle; __s32 hot_x; __s32 hot_y; }; struct drm_mode_get_plane_res { __u64 plane_id_ptr; __u32 count_planes; }; struct drm_mode_get_plane { __u32 plane_id; __u32 crtc_id; __u32 fb_id; __u32 possible_crtcs; __u32 gamma_size; __u32 count_format_types; __u64 format_type_ptr; }; struct drm_mode_set_plane { __u32 plane_id; __u32 crtc_id; __u32 fb_id; __u32 flags; __s32 crtc_x; __s32 crtc_y; __u32 crtc_w; __u32 crtc_h; __u32 src_x; __u32 src_y; __u32 src_h; __u32 src_w; }; struct drm_mode_cursor { __u32 flags; __u32 crtc_id; __s32 x; __s32 y; __u32 width; __u32 height; __u32 handle; }; struct drm_mode_crtc_page_flip_target { __u32 crtc_id; __u32 fb_id; __u32 flags; __u32 sequence; __u64 user_data; }; struct intel_wakeref_lockclass { struct lock_class_key mutex; struct lock_class_key work; }; struct intel_wedge_me { struct delayed_work work; struct intel_gt *gt; const char *name; }; typedef int (*reset_func)(struct intel_gt *, intel_engine_mask_t, unsigned int); struct sfc_lock_data { i915_reg_t lock_reg; i915_reg_t ack_reg; i915_reg_t usage_reg; u32 lock_bit; u32 ack_bit; u32 usage_bit; u32 reset_bit; }; enum dsb_id { INVALID_DSB = -1, DSB1 = 0, DSB2 = 1, DSB3 = 2, MAX_DSB_PER_PIPE = 3, }; struct intel_dsb { enum dsb_id id; u32 *cmd_buf; struct i915_vma___3 *vma; struct intel_crtc *crtc; unsigned int size; unsigned int free_pos; unsigned int ins_start_offset; }; struct internal_container { struct klist_node node; struct attribute_container *cont; struct device classdev; }; struct builtin_fw { char *name; void *data; unsigned long size; }; 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; u32 timeline; }; 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___3 { 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; 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: 32; long: 64; long: 64; spinlock_t cb_lock; spinlock_t cmd_lock; struct csr *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: 48; 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___3 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; long: 64; }; struct rx { struct rx *next; struct rx *prev; struct sk_buff *skb; dma_addr_t dma_addr; }; struct csr { 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___2 { 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 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 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, }; enum tc_clsbpf_command { TC_CLSBPF_OFFLOAD = 0, TC_CLSBPF_STATS = 1, }; struct flow_cls_common_offload { u32 chain_index; __be16 protocol; u32 prio; struct netlink_ext_ack *extack; }; struct nsim_bpf_bound_prog { struct nsim_dev *nsim_dev; struct bpf_prog *prog; struct dentry *ddir; const char *state; bool is_loaded; struct list_head l; }; struct nsim_map_entry { void *key; void *value; }; struct nsim_bpf_bound_map { struct netdevsim *ns; struct bpf_offloaded_map *map; struct mutex mutex; struct nsim_map_entry entry[2]; struct list_head l; }; struct tc_cls_bpf_offload { struct flow_cls_common_offload common; enum tc_clsbpf_command command; struct tcf_exts *exts; struct bpf_prog *prog; struct bpf_prog *oldprog; const char *name; bool exts_integrated; }; 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 nvmem_device; struct kvm_ptp_clock { struct ptp_clock *ptp_clock; struct ptp_clock_info caps; }; 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 { MAGNITUDE_STRONG = 2, MAGNITUDE_WEAK = 3, MAGNITUDE_NUM = 4, }; struct ms_data { unsigned long quirks; struct hid_device *hdev; struct work_struct ff_worker; __u8 strong; __u8 weak; void *output_report_dmabuf; }; struct xb1s_ff_report { __u8 report_id; __u8 enable; __u8 magnitude[4]; __u8 duration_10ms; __u8 start_delay_10ms; __u8 loop_count; }; struct snd_malloc_ops { void * (*alloc)(struct snd_dma_buffer *, size_t); void (*free)(struct snd_dma_buffer *); dma_addr_t (*get_addr)(struct snd_dma_buffer *, size_t); struct page * (*get_page)(struct snd_dma_buffer *, size_t); unsigned int (*get_chunk_size)(struct snd_dma_buffer *, unsigned int, unsigned int); int (*mmap)(struct snd_dma_buffer *, struct vm_area_struct *); void (*sync)(struct snd_dma_buffer *, enum snd_dma_sync_mode); }; struct snd_dma_sg_fallback { bool use_dma_alloc_coherent; size_t count; struct page **pages; dma_addr_t *addrs; }; 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; 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: 32; long: 64; long: 64; long: 64; long: 64; unsigned int input_queue_head; long: 32; 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; call_single_data_t defer_csd; }; struct sd_flow_limit { u64 count; unsigned int num_buckets; unsigned int history_head; u16 history[128]; u8 buckets[0]; }; struct nf_queue_handler { int (*outfn)(struct nf_queue_entry *, unsigned int); void (*nf_hook_drop)(struct net *); }; struct ip6_rt_info { struct in6_addr daddr; struct in6_addr saddr; u_int32_t mark; }; 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; }; enum { UDP_BPF_IPV4 = 0, UDP_BPF_IPV6 = 1, UDP_BPF_NUM_PROTS = 2, }; 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, }; typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const char *, const char *); typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int); typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *); typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); typedef void (*btf_trace_svc_wake_up)(void *, int); typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); typedef void (*btf_trace_svcsock_new_socket)(void *, const struct socket *); typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); struct trace_event_raw_rpc_xdr_buf_class { struct trace_entry ent; unsigned int task_id; unsigned int client_id; const void *head_base; size_t head_len; const void *tail_base; size_t tail_len; unsigned int page_base; unsigned int page_len; unsigned int msg_len; char __data[0]; }; struct trace_event_raw_rpc_clnt_class { struct trace_entry ent; unsigned int client_id; char __data[0]; }; struct trace_event_raw_rpc_clnt_new { struct trace_entry ent; unsigned int client_id; u32 __data_loc_addr; u32 __data_loc_port; u32 __data_loc_program; u32 __data_loc_server; char __data[0]; }; struct trace_event_raw_rpc_clnt_new_err { struct trace_entry ent; int error; u32 __data_loc_program; u32 __data_loc_server; char __data[0]; }; struct trace_event_raw_rpc_clnt_clone_err { struct trace_entry ent; unsigned int client_id; int error; char __data[0]; }; struct trace_event_raw_rpc_task_status { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int status; char __data[0]; }; struct trace_event_raw_rpc_request { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int version; bool async; u32 __data_loc_progname; u32 __data_loc_procname; char __data[0]; }; struct trace_event_raw_rpc_task_running { struct trace_entry ent; unsigned int task_id; unsigned int client_id; const void *action; unsigned long runstate; int status; unsigned short flags; char __data[0]; }; struct trace_event_raw_rpc_task_queued { struct trace_entry ent; unsigned int task_id; unsigned int client_id; unsigned long timeout; unsigned long runstate; int status; unsigned short flags; u32 __data_loc_q_name; char __data[0]; }; struct trace_event_raw_rpc_failure { struct trace_entry ent; unsigned int task_id; unsigned int client_id; char __data[0]; }; struct trace_event_raw_rpc_reply_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 __data_loc_progname; u32 version; u32 __data_loc_procname; u32 __data_loc_servername; char __data[0]; }; struct trace_event_raw_rpc_buf_alloc { struct trace_entry ent; unsigned int task_id; unsigned int client_id; size_t callsize; size_t recvsize; int status; char __data[0]; }; struct trace_event_raw_rpc_call_rpcerror { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int tk_status; int rpc_status; char __data[0]; }; struct trace_event_raw_rpc_stats_latency { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; int version; u32 __data_loc_progname; u32 __data_loc_procname; unsigned long backlog; unsigned long rtt; unsigned long execute; char __data[0]; }; struct trace_event_raw_rpc_xdr_overflow { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int version; size_t requested; const void *end; const void *p; const void *head_base; size_t head_len; const void *tail_base; size_t tail_len; unsigned int page_len; unsigned int len; u32 __data_loc_progname; u32 __data_loc_procedure; char __data[0]; }; struct trace_event_raw_rpc_xdr_alignment { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int version; size_t offset; unsigned int copied; const void *head_base; size_t head_len; const void *tail_base; size_t tail_len; unsigned int page_len; unsigned int len; u32 __data_loc_progname; u32 __data_loc_procedure; char __data[0]; }; struct trace_event_raw_xs_socket_event { struct trace_entry ent; unsigned int socket_state; unsigned int sock_state; unsigned long long ino; __u8 saddr[28]; __u8 daddr[28]; char __data[0]; }; struct trace_event_raw_xs_socket_event_done { struct trace_entry ent; int error; unsigned int socket_state; unsigned int sock_state; unsigned long long ino; __u8 saddr[28]; __u8 daddr[28]; char __data[0]; }; struct trace_event_raw_rpc_socket_nospace { struct trace_entry ent; unsigned int task_id; unsigned int client_id; unsigned int total; unsigned int remaining; char __data[0]; }; struct trace_event_raw_rpc_xprt_lifetime_class { struct trace_entry ent; unsigned long state; u32 __data_loc_addr; u32 __data_loc_port; char __data[0]; }; struct trace_event_raw_rpc_xprt_event { struct trace_entry ent; u32 xid; int status; u32 __data_loc_addr; u32 __data_loc_port; char __data[0]; }; struct trace_event_raw_xprt_transmit { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 seqno; int status; char __data[0]; }; struct trace_event_raw_xprt_retransmit { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; int ntrans; int version; unsigned long timeout; u32 __data_loc_progname; u32 __data_loc_procname; char __data[0]; }; struct trace_event_raw_xprt_ping { struct trace_entry ent; int status; u32 __data_loc_addr; u32 __data_loc_port; char __data[0]; }; struct trace_event_raw_xprt_writelock_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; unsigned int snd_task_id; char __data[0]; }; struct trace_event_raw_xprt_cong_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; unsigned int snd_task_id; unsigned long cong; unsigned long cwnd; bool wait; char __data[0]; }; struct trace_event_raw_xprt_reserve { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; char __data[0]; }; struct trace_event_raw_xs_data_ready { struct trace_entry ent; u32 __data_loc_addr; u32 __data_loc_port; char __data[0]; }; struct trace_event_raw_xs_stream_read_data { struct trace_entry ent; ssize_t err; size_t total; u32 __data_loc_addr; u32 __data_loc_port; char __data[0]; }; struct trace_event_raw_xs_stream_read_request { struct trace_entry ent; u32 __data_loc_addr; u32 __data_loc_port; u32 xid; unsigned long copied; unsigned int reclen; unsigned int offset; char __data[0]; }; struct trace_event_raw_rpcb_getport { struct trace_entry ent; unsigned int task_id; unsigned int client_id; unsigned int program; unsigned int version; int protocol; unsigned int bind_version; u32 __data_loc_servername; char __data[0]; }; struct trace_event_raw_rpcb_setport { struct trace_entry ent; unsigned int task_id; unsigned int client_id; int status; unsigned short port; char __data[0]; }; struct trace_event_raw_pmap_register { struct trace_entry ent; unsigned int program; unsigned int version; int protocol; unsigned int port; char __data[0]; }; struct trace_event_raw_rpcb_register { struct trace_entry ent; unsigned int program; unsigned int version; u32 __data_loc_addr; u32 __data_loc_netid; char __data[0]; }; struct trace_event_raw_rpcb_unregister { struct trace_entry ent; unsigned int program; unsigned int version; u32 __data_loc_netid; char __data[0]; }; struct trace_event_raw_svc_xdr_msg_class { struct trace_entry ent; u32 xid; const void *head_base; size_t head_len; const void *tail_base; size_t tail_len; unsigned int page_len; unsigned int msg_len; char __data[0]; }; struct trace_event_raw_svc_xdr_buf_class { struct trace_entry ent; u32 xid; const void *head_base; size_t head_len; const void *tail_base; size_t tail_len; unsigned int page_base; unsigned int page_len; unsigned int msg_len; char __data[0]; }; struct trace_event_raw_svc_authenticate { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned int netns_ino; u32 xid; unsigned long svc_status; unsigned long auth_stat; char __data[0]; }; struct trace_event_raw_svc_process { struct trace_entry ent; u32 xid; u32 vers; u32 proc; u32 __data_loc_service; u32 __data_loc_procedure; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svc_rqst_event { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned int netns_ino; u32 xid; unsigned long flags; char __data[0]; }; struct trace_event_raw_svc_rqst_status { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned int netns_ino; u32 xid; int status; unsigned long flags; char __data[0]; }; struct trace_event_raw_svc_stats_latency { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned int netns_ino; u32 xid; unsigned long execute; u32 __data_loc_procedure; char __data[0]; }; struct trace_event_raw_svc_xprt_create_err { struct trace_entry ent; long error; u32 __data_loc_program; u32 __data_loc_protocol; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svc_xprt_enqueue { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned long flags; unsigned int netns_ino; int pid; char __data[0]; }; struct trace_event_raw_svc_xprt_dequeue { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned long flags; unsigned int netns_ino; unsigned long wakeup; char __data[0]; }; struct trace_event_raw_svc_xprt_event { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned long flags; unsigned int netns_ino; char __data[0]; }; struct trace_event_raw_svc_xprt_accept { struct trace_entry ent; u32 __data_loc_server; u32 __data_loc_client; unsigned long flags; unsigned int netns_ino; u32 __data_loc_protocol; u32 __data_loc_service; char __data[0]; }; struct trace_event_raw_svc_wake_up { struct trace_entry ent; int pid; char __data[0]; }; struct trace_event_raw_svc_alloc_arg_err { struct trace_entry ent; unsigned int requested; unsigned int allocated; char __data[0]; }; struct trace_event_raw_svc_deferred_event { struct trace_entry ent; const void *dr; u32 xid; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svcsock_new_socket { struct trace_entry ent; unsigned long type; unsigned long family; bool listener; char __data[0]; }; struct trace_event_raw_svcsock_marker { struct trace_entry ent; unsigned int length; bool last; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svcsock_class { struct trace_entry ent; ssize_t result; unsigned long flags; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svcsock_tcp_recv_short { struct trace_entry ent; u32 expected; u32 received; unsigned long flags; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svcsock_tcp_state { struct trace_entry ent; unsigned long socket_state; unsigned long sock_state; unsigned long flags; u32 __data_loc_addr; char __data[0]; }; struct trace_event_raw_svcsock_accept_class { struct trace_entry ent; long status; u32 __data_loc_service; unsigned int netns_ino; char __data[0]; }; struct trace_event_raw_cache_event { struct trace_entry ent; const struct cache_head *h; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_register_class { struct trace_entry ent; u32 version; unsigned long family; unsigned short protocol; unsigned short port; int error; u32 __data_loc_program; char __data[0]; }; struct trace_event_raw_svc_unregister { struct trace_entry ent; u32 version; int error; u32 __data_loc_program; char __data[0]; }; struct trace_event_data_offsets_rpc_clnt_new { u32 addr; u32 port; u32 program; u32 server; }; struct trace_event_data_offsets_rpc_clnt_new_err { u32 program; u32 server; }; struct trace_event_data_offsets_rpc_request { u32 progname; u32 procname; }; struct trace_event_data_offsets_rpc_task_queued { u32 q_name; }; struct trace_event_data_offsets_rpc_reply_event { u32 progname; u32 procname; u32 servername; }; struct trace_event_data_offsets_rpc_stats_latency { u32 progname; u32 procname; }; struct trace_event_data_offsets_rpc_xdr_overflow { u32 progname; u32 procedure; }; struct trace_event_data_offsets_rpc_xdr_alignment { u32 progname; u32 procedure; }; struct trace_event_data_offsets_rpc_xprt_lifetime_class { u32 addr; u32 port; }; struct trace_event_data_offsets_rpc_xprt_event { u32 addr; u32 port; }; struct trace_event_data_offsets_xprt_retransmit { u32 progname; u32 procname; }; struct trace_event_data_offsets_xprt_ping { u32 addr; u32 port; }; struct trace_event_data_offsets_xs_data_ready { u32 addr; u32 port; }; struct trace_event_data_offsets_xs_stream_read_data { u32 addr; u32 port; }; struct trace_event_data_offsets_xs_stream_read_request { u32 addr; u32 port; }; struct trace_event_data_offsets_rpcb_getport { u32 servername; }; struct trace_event_data_offsets_rpcb_register { u32 addr; u32 netid; }; struct trace_event_data_offsets_rpcb_unregister { u32 netid; }; struct trace_event_data_offsets_svc_authenticate { u32 server; u32 client; }; struct trace_event_data_offsets_svc_process { u32 service; u32 procedure; u32 addr; }; struct trace_event_data_offsets_svc_rqst_event { u32 server; u32 client; }; struct trace_event_data_offsets_svc_rqst_status { u32 server; u32 client; }; struct trace_event_data_offsets_svc_stats_latency { u32 server; u32 client; u32 procedure; }; struct trace_event_data_offsets_svc_xprt_create_err { u32 program; u32 protocol; u32 addr; }; struct trace_event_data_offsets_svc_xprt_enqueue { u32 server; u32 client; }; struct trace_event_data_offsets_svc_xprt_dequeue { u32 server; u32 client; }; struct trace_event_data_offsets_svc_xprt_event { u32 server; u32 client; }; struct trace_event_data_offsets_svc_xprt_accept { u32 server; u32 client; u32 protocol; u32 service; }; struct trace_event_data_offsets_svc_deferred_event { u32 addr; }; struct trace_event_data_offsets_svcsock_marker { u32 addr; }; struct trace_event_data_offsets_svcsock_class { u32 addr; }; struct trace_event_data_offsets_svcsock_tcp_recv_short { u32 addr; }; struct trace_event_data_offsets_svcsock_tcp_state { u32 addr; }; struct trace_event_data_offsets_svcsock_accept_class { u32 service; }; struct trace_event_data_offsets_cache_event { u32 name; }; struct trace_event_data_offsets_register_class { u32 program; }; struct trace_event_data_offsets_svc_unregister { u32 program; }; struct trace_event_data_offsets_rpc_xdr_buf_class {}; struct trace_event_data_offsets_rpc_clnt_class {}; struct trace_event_data_offsets_rpc_clnt_clone_err {}; struct trace_event_data_offsets_rpc_task_status {}; struct trace_event_data_offsets_rpc_task_running {}; struct trace_event_data_offsets_rpc_failure {}; struct trace_event_data_offsets_rpc_buf_alloc {}; struct trace_event_data_offsets_rpc_call_rpcerror {}; struct trace_event_data_offsets_xs_socket_event {}; struct trace_event_data_offsets_xs_socket_event_done {}; struct trace_event_data_offsets_rpc_socket_nospace {}; struct trace_event_data_offsets_xprt_transmit {}; struct trace_event_data_offsets_xprt_writelock_event {}; struct trace_event_data_offsets_xprt_cong_event {}; struct trace_event_data_offsets_xprt_reserve {}; struct trace_event_data_offsets_rpcb_setport {}; struct trace_event_data_offsets_pmap_register {}; struct trace_event_data_offsets_svc_xdr_msg_class {}; struct trace_event_data_offsets_svc_xdr_buf_class {}; struct trace_event_data_offsets_svc_wake_up {}; struct trace_event_data_offsets_svc_alloc_arg_err {}; struct trace_event_data_offsets_svcsock_new_socket {}; 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_AFTER_LAST = 8, NL80211_STA_FLAG_MAX = 7, }; 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 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 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; }; 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 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 pvclock_wall_clock { u32 version; u32 sec; u32 nsec; }; 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 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 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; }; 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, }; 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 s32 compat_timer_t; typedef s32 compat_clock_t; struct compat_siginfo { int si_signo; int si_errno; int si_code; union { int _pad[29]; struct { compat_pid_t _pid; __compat_uid32_t _uid; } _kill; struct { compat_timer_t _tid; int _overrun; compat_sigval_t _sigval; } _timer; struct { compat_pid_t _pid; __compat_uid32_t _uid; compat_sigval_t _sigval; } _rt; struct { compat_pid_t _pid; __compat_uid32_t _uid; int _status; compat_clock_t _utime; compat_clock_t _stime; } _sigchld; struct { compat_uptr_t _addr; union { int _trapno; short _addr_lsb; struct { char _dummy_bnd[4]; compat_uptr_t _lower; compat_uptr_t _upper; } _addr_bnd; struct { char _dummy_pkey[4]; u32 _pkey; } _addr_pkey; struct { compat_ulong_t _data; u32 _type; u32 _flags; } _perf; }; } _sigfault; struct { compat_long_t _band; int _fd; } _sigpoll; struct { compat_uptr_t _call_addr; int _syscall; unsigned int _arch; } _sigsys; } _sifields; }; struct compat_sigaltstack { compat_uptr_t ss_sp; int ss_flags; compat_size_t ss_size; }; typedef struct compat_sigaltstack compat_stack_t; typedef unsigned long old_sigset_t; typedef u32 compat_old_sigset_t; struct compat_sigaction { compat_uptr_t sa_handler; compat_ulong_t sa_flags; compat_uptr_t sa_restorer; compat_sigset_t sa_mask; }; struct compat_old_sigaction { compat_uptr_t sa_handler; compat_old_sigset_t sa_mask; compat_ulong_t sa_flags; compat_uptr_t sa_restorer; }; struct trace_event_data_offsets_signal_generate {}; struct trace_event_data_offsets_signal_deliver {}; struct bpf_hrtimer { struct hrtimer timer; struct bpf_map *map; struct bpf_prog *prog; void __attribute__((btf_type_tag("rcu"))) *callback_fn; void *value; }; struct bpf_bprintf_buffers { char bin_args[512]; char buf[1024]; }; enum { BPF_F_TIMER_ABS = 1, }; 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_timer_kern; typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); struct bpf_timer_kern { struct bpf_hrtimer *timer; struct bpf_spin_lock lock; }; typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); 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_rb_node { long: 64; long: 64; long: 64;}; struct bpf_timer { long: 64; long: 64;}; struct bpf_dynptr { long: 64; long: 64;}; struct bpf_list_node { long: 64; long: 64;}; struct bpf_list_head { long: 64; long: 64;}; struct bpf_rb_root { long: 64; long: 64;}; struct btf_id_dtor_kfunc { u32 btf_id; u32 kfunc_btf_id; }; 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 *, int); 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); 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, }; typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); enum oom_constraint { CONSTRAINT_NONE = 0, CONSTRAINT_CPUSET = 1, CONSTRAINT_MEMORY_POLICY = 2, CONSTRAINT_MEMCG = 3, }; 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; 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 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 trace_event_data_offsets_oom_score_adj_update {}; struct trace_event_data_offsets_reclaim_retry_zone {}; struct trace_event_data_offsets_mark_victim {}; 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 {}; struct mlock_fbatch { local_lock_t lock; struct folio_batch fbatch; }; typedef union { struct page **pages; struct folio **folios; struct encoded_page **encoded_pages; } release_pages_arg; struct utimbuf { __kernel_old_time_t actime; __kernel_old_time_t modtime; }; struct old_utimbuf32 { old_time32_t actime; old_time32_t modtime; }; 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_param { Opt_gid___4 = 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 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 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 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_getfsmap_dev { int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); u32 gfd_dev; }; enum nfs_ftype { NFNON = 0, NFREG = 1, NFDIR = 2, NFBLK = 3, NFCHR = 4, NFLNK = 5, NFSOCK = 6, NFBAD = 7, NFFIFO = 8, }; enum nfs2_ftype { NF2NON = 0, NF2REG = 1, NF2DIR = 2, NF2BLK = 3, NF2CHR = 4, NF2LNK = 5, NF2SOCK = 6, NF2BAD = 7, NF2FIFO = 8, }; typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int); typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); struct trace_event_raw_nfs4_clientid_event { struct trace_entry ent; u32 __data_loc_dstaddr; unsigned long error; char __data[0]; }; struct trace_event_raw_nfs4_setup_sequence { struct trace_entry ent; unsigned int session; unsigned int slot_nr; unsigned int seq_nr; unsigned int highest_used_slotid; char __data[0]; }; struct trace_event_raw_nfs4_state_mgr { struct trace_entry ent; unsigned long state; u32 __data_loc_hostname; char __data[0]; }; struct trace_event_raw_nfs4_state_mgr_failed { struct trace_entry ent; unsigned long error; unsigned long state; u32 __data_loc_hostname; u32 __data_loc_section; char __data[0]; }; struct trace_event_raw_nfs4_xdr_bad_operation { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 op; u32 expected; char __data[0]; }; struct trace_event_raw_nfs4_xdr_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; u32 op; unsigned long error; char __data[0]; }; struct trace_event_raw_nfs4_cb_error_class { struct trace_entry ent; u32 xid; u32 cbident; char __data[0]; }; struct trace_event_raw_nfs4_open_event { struct trace_entry ent; unsigned long error; unsigned long flags; unsigned long fmode; dev_t dev; u32 fhandle; u64 fileid; u64 dir; u32 __data_loc_name; int stateid_seq; u32 stateid_hash; int openstateid_seq; u32 openstateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_cached_open { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned int fmode; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_close { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned int fmode; unsigned long error; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_lock_event { struct trace_entry ent; unsigned long error; unsigned long cmd; unsigned long type; loff_t start; loff_t end; dev_t dev; u32 fhandle; u64 fileid; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_set_lock { struct trace_entry ent; unsigned long error; unsigned long cmd; unsigned long type; loff_t start; loff_t end; dev_t dev; u32 fhandle; u64 fileid; int stateid_seq; u32 stateid_hash; int lockstateid_seq; u32 lockstateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_state_lock_reclaim { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned long state_flags; unsigned long lock_flags; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_set_delegation_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned int fmode; char __data[0]; }; struct trace_event_raw_nfs4_delegreturn_exit { struct trace_entry ent; dev_t dev; u32 fhandle; unsigned long error; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_lookup_event { struct trace_entry ent; dev_t dev; unsigned long error; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs4_lookupp { struct trace_entry ent; dev_t dev; u64 ino; unsigned long error; char __data[0]; }; struct trace_event_raw_nfs4_rename { struct trace_entry ent; dev_t dev; unsigned long error; u64 olddir; u32 __data_loc_oldname; u64 newdir; u32 __data_loc_newname; char __data[0]; }; struct trace_event_raw_nfs4_inode_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned long error; char __data[0]; }; struct trace_event_raw_nfs4_inode_stateid_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned long error; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_getattr_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned int valid; unsigned long error; char __data[0]; }; struct trace_event_raw_nfs4_inode_callback_event { struct trace_entry ent; unsigned long error; dev_t dev; u32 fhandle; u64 fileid; u32 __data_loc_dstaddr; char __data[0]; }; struct trace_event_raw_nfs4_inode_stateid_callback_event { struct trace_entry ent; unsigned long error; dev_t dev; u32 fhandle; u64 fileid; u32 __data_loc_dstaddr; int stateid_seq; u32 stateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_idmap_event { struct trace_entry ent; unsigned long error; u32 id; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs4_read_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; unsigned long error; int stateid_seq; u32 stateid_hash; int layoutstateid_seq; u32 layoutstateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_write_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; unsigned long error; int stateid_seq; u32 stateid_hash; int layoutstateid_seq; u32 layoutstateid_hash; char __data[0]; }; struct trace_event_raw_nfs4_commit_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; unsigned long error; loff_t offset; u32 count; int layoutstateid_seq; u32 layoutstateid_hash; char __data[0]; }; struct trace_event_data_offsets_nfs4_clientid_event { u32 dstaddr; }; struct trace_event_data_offsets_nfs4_state_mgr { u32 hostname; }; struct trace_event_data_offsets_nfs4_state_mgr_failed { u32 hostname; u32 section; }; struct trace_event_data_offsets_nfs4_open_event { u32 name; }; struct trace_event_data_offsets_nfs4_lookup_event { u32 name; }; struct trace_event_data_offsets_nfs4_rename { u32 oldname; u32 newname; }; struct trace_event_data_offsets_nfs4_inode_callback_event { u32 dstaddr; }; struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { u32 dstaddr; }; struct trace_event_data_offsets_nfs4_idmap_event { u32 name; }; struct trace_event_data_offsets_nfs4_setup_sequence {}; struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; struct trace_event_data_offsets_nfs4_xdr_event {}; struct trace_event_data_offsets_nfs4_cb_error_class {}; struct trace_event_data_offsets_nfs4_cached_open {}; struct trace_event_data_offsets_nfs4_close {}; struct trace_event_data_offsets_nfs4_lock_event {}; struct trace_event_data_offsets_nfs4_set_lock {}; struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; struct trace_event_data_offsets_nfs4_set_delegation_event {}; struct trace_event_data_offsets_nfs4_delegreturn_exit {}; struct trace_event_data_offsets_nfs4_lookupp {}; struct trace_event_data_offsets_nfs4_inode_event {}; struct trace_event_data_offsets_nfs4_inode_stateid_event {}; struct trace_event_data_offsets_nfs4_getattr_event {}; struct trace_event_data_offsets_nfs4_read_event {}; struct trace_event_data_offsets_nfs4_write_event {}; struct trace_event_data_offsets_nfs4_commit_event {}; struct ima_h_table { atomic_long_t len; atomic_long_t violations; struct hlist_head queue[1024]; }; struct md5_state { u32 hash[4]; u32 block[16]; u64 byte_count; }; 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; }; enum { BLK_MQ_NO_TAG = 4294967295, BLK_MQ_TAG_MIN = 1, BLK_MQ_TAG_MAX = 4294967294, }; enum { BLK_MQ_UNIQUE_TAG_BITS = 16, BLK_MQ_UNIQUE_TAG_MASK = 65535, }; struct sbq_wait { struct sbitmap_queue *sbq; struct wait_queue_entry wait; }; typedef bool busy_tag_iter_fn(struct request *, void *); typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); 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; }; 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; u16 flags; u16 addr_len; u16 buf_group; void __attribute__((btf_type_tag("user"))) *addr; 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; }; 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_notif_data { struct file *file; struct ubuf_info uarg; unsigned long account_pages; bool zc_report; bool zc_used; bool zc_copied; }; 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 acpi_port_info { char *name; u16 start; u16 end; u8 osi_dependency; }; 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 drm_mode_create_lease { __u64 object_ids; __u32 object_count; __u32 flags; __u32 lessee_id; __u32 fd; }; struct drm_mode_list_lessees { __u32 count_lessees; __u32 pad; __u64 lessees_ptr; }; struct drm_mode_get_lease { __u32 count_objects; __u32 pad; __u64 objects_ptr; }; struct drm_mode_revoke_lease { __u32 lessee_id; }; struct drm_shadow_plane_state { struct drm_plane_state base; struct iosys_map map[4]; struct iosys_map data[4]; }; struct drm_simple_display_pipe_funcs; struct drm_simple_display_pipe { struct drm_crtc crtc; struct drm_plane plane; struct drm_encoder encoder; struct drm_connector *connector; const struct drm_simple_display_pipe_funcs *funcs; }; struct drm_simple_display_pipe_funcs { enum drm_mode_status (*mode_valid)(struct drm_simple_display_pipe *, const struct drm_display_mode *); void (*enable)(struct drm_simple_display_pipe *, struct drm_crtc_state *, struct drm_plane_state *); void (*disable)(struct drm_simple_display_pipe *); int (*check)(struct drm_simple_display_pipe *, struct drm_plane_state *, struct drm_crtc_state *); void (*update)(struct drm_simple_display_pipe *, struct drm_plane_state *); int (*prepare_fb)(struct drm_simple_display_pipe *, struct drm_plane_state *); void (*cleanup_fb)(struct drm_simple_display_pipe *, struct drm_plane_state *); int (*begin_fb_access)(struct drm_simple_display_pipe *, struct drm_plane_state *); void (*end_fb_access)(struct drm_simple_display_pipe *, struct drm_plane_state *); int (*enable_vblank)(struct drm_simple_display_pipe *); void (*disable_vblank)(struct drm_simple_display_pipe *); void (*reset_crtc)(struct drm_simple_display_pipe *); struct drm_crtc_state * (*duplicate_crtc_state)(struct drm_simple_display_pipe *); void (*destroy_crtc_state)(struct drm_simple_display_pipe *, struct drm_crtc_state *); void (*reset_plane)(struct drm_simple_display_pipe *); struct drm_plane_state * (*duplicate_plane_state)(struct drm_simple_display_pipe *); void (*destroy_plane_state)(struct drm_simple_display_pipe *, struct drm_plane_state *); }; struct intel_display_funcs___3; struct intel_wm_funcs___4; struct intel_display___4 { struct { const struct intel_display_funcs___3 *display; const struct intel_cdclk_funcs *cdclk; const struct intel_dpll_funcs *dpll; const struct intel_hotplug_funcs *hotplug; const struct intel_wm_funcs___4 *wm; const struct intel_fdi_funcs *fdi; const struct intel_color_funcs *color; const struct intel_audio_funcs *audio; } funcs; struct intel_atomic_helper atomic_helper; struct { struct mutex lock; } backlight; struct { struct intel_global_obj obj; struct intel_bw_info max[6]; } bw; struct { struct intel_cdclk_config hw; const struct intel_cdclk_vals *table; struct intel_global_obj obj; unsigned int max_cdclk_freq; } cdclk; struct { struct drm_property_blob *glk_linear_degamma_lut; } color; struct { u8 enabled_slices; struct intel_global_obj obj; } dbuf; struct { spinlock_t phy_lock; } dkl; struct { u32 mmio_base; } dsi; struct { struct intel_fbdev *fbdev; struct work_struct suspend_work; } fbdev; struct { unsigned int pll_freq; u32 rx_config; } fdi; struct { struct list_head obj_list; } global; struct { u32 mmio_base; struct mutex mutex; struct intel_gmbus *bus[15]; wait_queue_head_t wait_queue; } gmbus; struct { struct i915_hdcp_comp_master *master; bool comp_added; struct mutex comp_mutex; } hdcp; struct { u32 state; } hti; struct { struct i915_power_domains domains; u32 chv_phy_control; bool chv_phy_assert[2]; } power; struct { u32 mmio_base; struct mutex mutex; } pps; struct { struct drm_property *broadcast_rgb; struct drm_property *force_audio; } properties; struct { unsigned long mask; } quirks; struct { struct drm_atomic_state *modeset_state; struct drm_modeset_acquire_ctx reset_ctx; } restore; struct { enum { I915_SAGV_UNKNOWN___4 = 0, I915_SAGV_DISABLED___4 = 1, I915_SAGV_ENABLED___4 = 2, I915_SAGV_NOT_CONTROLLED___4 = 3, } status; u32 block_time_us; } sagv; struct { u8 phy_failed_calibration; } snps; struct { u32 chv_dpll_md[4]; u32 bxt_phy_grc; } state; struct { struct workqueue_struct *modeset; struct workqueue_struct *flip; } wq; struct intel_audio audio; struct intel_dmc dmc; struct intel_dpll dpll; struct intel_fbc *fbc[2]; struct intel_frontbuffer_tracking fb_tracking; struct intel_hotplug hotplug; struct intel_opregion opregion; struct intel_overlay *overlay; struct intel_vbt_data vbt; struct intel_wm wm; }; struct intel_uncore___4; struct intel_uncore_funcs___4 { enum forcewake_domains (*read_fw_domains)(struct intel_uncore___4 *, i915_reg_t); enum forcewake_domains (*write_fw_domains)(struct intel_uncore___4 *, i915_reg_t); u8 (*mmio_readb)(struct intel_uncore___4 *, i915_reg_t, bool); u16 (*mmio_readw)(struct intel_uncore___4 *, i915_reg_t, bool); u32 (*mmio_readl)(struct intel_uncore___4 *, i915_reg_t, bool); u64 (*mmio_readq)(struct intel_uncore___4 *, i915_reg_t, bool); void (*mmio_writeb)(struct intel_uncore___4 *, i915_reg_t, u8, bool); void (*mmio_writew)(struct intel_uncore___4 *, i915_reg_t, u16, bool); void (*mmio_writel)(struct intel_uncore___4 *, i915_reg_t, u32, bool); }; struct intel_gt___4; struct intel_uncore_fw_get___4; struct intel_uncore_forcewake_domain___4; struct intel_uncore___4 { void *regs; struct drm_i915_private___2 *i915; struct intel_gt___4 *gt; struct intel_runtime_pm *rpm; spinlock_t lock; u32 gsi_offset; unsigned int flags; const struct intel_forcewake_range *fw_domains_table; unsigned int fw_domains_table_entries; const struct i915_range *shadowed_reg_table; unsigned int shadowed_reg_table_entries; struct notifier_block pmic_bus_access_nb; const struct intel_uncore_fw_get___4 *fw_get_funcs; struct intel_uncore_funcs___4 funcs; unsigned int fifo_count; enum forcewake_domains fw_domains; enum forcewake_domains fw_domains_active; enum forcewake_domains fw_domains_timer; enum forcewake_domains fw_domains_saved; struct intel_uncore_forcewake_domain___4 *fw_domain[16]; unsigned int user_forcewake_count; struct intel_uncore_mmio_debug *debug; }; struct intel_memory_region___4; struct i915_gem_mm___4 { struct intel_memory_region___4 *stolen_region; struct drm_mm stolen; struct mutex stolen_lock; spinlock_t obj_lock; struct list_head purge_list; struct list_head shrink_list; struct llist_head free_list; struct work_struct free_work; atomic_t free_count; struct vfsmount *gemfs; struct intel_memory_region___4 *regions[7]; struct notifier_block oom_notifier; struct notifier_block vmap_notifier; struct shrinker shrinker; rwlock_t notifier_lock; u64 shrink_memory; u32 shrink_count; }; struct i915_gpu_coredump___4; struct i915_gpu_error___4 { spinlock_t lock; struct i915_gpu_coredump___4 *first_error; atomic_t pending_fb_pin; atomic_t reset_count; atomic_t reset_engine_count[27]; }; struct i915_perf___4; struct i915_perf_stream___4; struct i915_oa_ops___4 { bool (*is_valid_b_counter_reg)(struct i915_perf___4 *, u32); bool (*is_valid_mux_reg)(struct i915_perf___4 *, u32); bool (*is_valid_flex_reg)(struct i915_perf___4 *, u32); int (*enable_metric_set)(struct i915_perf_stream___4 *, struct i915_active *); void (*disable_metric_set)(struct i915_perf_stream___4 *); void (*oa_enable)(struct i915_perf_stream___4 *); void (*oa_disable)(struct i915_perf_stream___4 *); int (*read)(struct i915_perf_stream___4 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); u32 (*oa_hw_tail_read)(struct i915_perf_stream___4 *); }; struct i915_perf___4 { struct drm_i915_private___2 *i915; struct kobject *metrics_kobj; struct mutex metrics_lock; struct idr metrics_idr; struct ratelimit_state spurious_report_rs; struct ratelimit_state tail_pointer_race; u32 gen7_latched_oastatus1; u32 ctx_oactxctrl_offset; u32 ctx_flexeu0_offset; u32 gen8_valid_ctx_bit; struct i915_oa_ops___4 ops; const struct i915_oa_format *oa_formats; unsigned long format_mask[1]; atomic64_t noa_programming_delay; }; struct i915_address_space___4; struct i915_vma_ops___4; struct i915_vma_resource___4 { struct dma_fence unbind_fence; spinlock_t lock; refcount_t hold_count; struct work_struct work; struct i915_sw_fence chain; struct rb_node rb; u64 __subtree_last; struct i915_address_space___4 *vm; intel_wakeref_t wakeref; struct i915_vma_bindinfo bi; struct intel_memory_region___4 *mr; const struct i915_vma_ops___4 *ops; void *private; u64 start; u64 node_size; u64 vma_size; u32 guard; u32 page_sizes_gtt; u32 bound_flags; bool allocated: 1; bool immediate_unbind: 1; bool needs_wakeref: 1; bool skip_pte_rewrite: 1; u32 *tlb; }; struct drm_i915_gem_object___4; struct i915_vma___4; struct intel_uc_fw___4 { enum intel_uc_fw_type type; union { const enum intel_uc_fw_status status; enum intel_uc_fw_status __status; }; struct intel_uc_fw_file file_wanted; struct intel_uc_fw_file file_selected; bool user_overridden; size_t size; struct drm_i915_gem_object___4 *obj; struct i915_vma_resource___4 dummy; struct i915_vma___4 *rsa_data; u32 rsa_size; u32 ucode_size; u32 private_data_size; bool loaded_via_gsc; }; struct intel_context___4; struct intel_gsc_uc___4 { struct intel_uc_fw___4 fw; struct i915_vma___4 *local; struct intel_context___4 *ce; struct work_struct work; }; struct intel_guc_log___4 { u32 level; struct { s32 bytes; s32 units; s32 count; u32 flag; } sizes[3]; bool sizes_initialised; struct i915_vma___4 *vma; void *buf_addr; struct { bool buf_in_use; bool started; struct work_struct flush_work; struct rchan *channel; struct mutex lock; u32 full_count; } relay; struct { u32 sampled_overflow; u32 overflow; u32 flush; } stats[3]; }; struct intel_guc_ct___4 { struct i915_vma___4 *vma; bool enabled; struct { struct intel_guc_ct_buffer send; struct intel_guc_ct_buffer recv; } ctbs; struct tasklet_struct receive_tasklet; wait_queue_head_t wq; struct { u16 last_fence; spinlock_t lock; struct list_head pending; struct list_head incoming; struct work_struct worker; } requests; ktime_t stall_time; }; struct intel_guc_slpc___4 { struct i915_vma___4 *vma; struct slpc_shared_data *vaddr; bool supported; bool selected; bool min_is_rpmax; u32 min_freq; u32 rp0_freq; u32 rp1_freq; u32 boost_freq; u32 min_freq_softlimit; u32 max_freq_softlimit; u32 media_ratio_mode; struct mutex lock; struct work_struct boost_work; atomic_t num_waiters; u32 num_boosts; }; struct i915_sched_engine___4; struct i915_request___4; struct intel_guc___4 { struct intel_uc_fw___4 fw; struct intel_guc_log___4 log; struct intel_guc_ct___4 ct; struct intel_guc_slpc___4 slpc; struct intel_guc_state_capture *capture; struct i915_sched_engine___4 *sched_engine; struct i915_request___4 *stalled_request; enum { STALL_NONE___4 = 0, STALL_REGISTER_CONTEXT___4 = 1, STALL_MOVE_LRC_TAIL___4 = 2, STALL_ADD_REQUEST___4 = 3, } submission_stall_reason; spinlock_t irq_lock; unsigned int msg_enabled_mask; atomic_t outstanding_submission_g2h; struct { bool enabled; void (*reset)(struct intel_guc___4 *); void (*enable)(struct intel_guc___4 *); void (*disable)(struct intel_guc___4 *); } interrupts; struct { spinlock_t lock; struct ida guc_ids; int num_guc_ids; unsigned long *guc_ids_bitmap; struct list_head guc_id_list; unsigned int guc_ids_in_use; struct list_head destroyed_contexts; struct work_struct destroyed_worker; struct work_struct reset_fail_worker; intel_engine_mask_t reset_fail_mask; unsigned int sched_disable_delay_ms; unsigned int sched_disable_gucid_threshold; } submission_state; bool submission_supported; bool submission_selected; bool submission_initialized; struct intel_uc_fw_ver submission_version; bool rc_supported; bool rc_selected; struct i915_vma___4 *ads_vma; struct iosys_map ads_map; u32 ads_regset_size; u32 ads_regset_count[27]; struct guc_mmio_reg *ads_regset; u32 ads_golden_ctxt_size; u32 ads_capture_size; u32 ads_engine_usage_size; struct i915_vma___4 *lrc_desc_pool_v69; void *lrc_desc_pool_vaddr_v69; struct xarray context_lookup; u32 params[14]; struct { u32 base; unsigned int count; enum forcewake_domains fw_domains; } send_regs; i915_reg_t notify_reg; u32 mmio_msg; struct mutex send_mutex; struct { spinlock_t lock; u64 gt_stamp; unsigned long ping_delay; struct delayed_work work; u32 shift; unsigned long last_stat_jiffies; } timestamp; }; struct intel_huc___4 { struct intel_uc_fw___4 fw; struct { i915_reg_t reg; u32 mask; u32 value; } status; struct { struct i915_sw_fence fence; struct hrtimer timer; struct notifier_block nb; enum intel_huc_delayed_load_status status; } delayed_load; }; struct intel_uc_ops___4; struct intel_uc___4 { const struct intel_uc_ops___4 *ops; struct intel_gsc_uc___4 gsc; struct intel_guc___4 guc; struct intel_huc___4 huc; struct drm_i915_gem_object___4 *load_err_log; bool reset_in_progress; }; struct intel_gsc_intf___4 { struct mei_aux_device *adev; struct drm_i915_gem_object___4 *gem_obj; int irq; unsigned int id; }; struct intel_gsc___4 { struct intel_gsc_intf___4 intf[2]; }; struct i915_wa_list___4 { struct intel_gt___4 *gt; const char *name; const char *engine_name; struct i915_wa *list; unsigned int count; unsigned int wa_count; }; struct intel_rc6___4 { i915_reg_t res_reg[4]; u64 prev_hw_residency[4]; u64 cur_residency[4]; u32 ctl_enable; struct drm_i915_gem_object___4 *pctx; bool supported: 1; bool enabled: 1; bool manual: 1; bool wakeref: 1; }; struct intel_migrate___4 { struct intel_context___4 *context; }; struct i915_perf_gt___4 { struct mutex lock; struct intel_sseu sseu; struct i915_perf_stream___4 *exclusive_stream; }; struct i915_ggtt___4; struct intel_engine_cs___4; struct intel_gt___4 { struct drm_i915_private___2 *i915; const char *name; enum intel_gt_type type; struct intel_uncore___4 *uncore; struct i915_ggtt___4 *ggtt; struct intel_uc___4 uc; struct intel_gsc___4 gsc; struct intel_wopcm wopcm; struct { struct mutex invalidate_lock; seqcount_mutex_t seqno; } tlb; struct i915_wa_list___4 wa_list; struct intel_gt_timelines timelines; struct intel_gt_requests requests; struct { struct llist_head list; struct work_struct work; } watchdog; struct intel_wakeref wakeref; atomic_t user_wakeref; struct list_head closed_vma; spinlock_t closed_lock; ktime_t last_init_time; struct intel_reset reset; intel_wakeref_t awake; u32 clock_frequency; u32 clock_period_ns; struct intel_llc llc; struct intel_rc6___4 rc6; struct intel_rps rps; spinlock_t *irq_lock; u32 gt_imr; u32 pm_ier; u32 pm_imr; u32 pm_guc_events; struct { bool active; seqcount_mutex_t lock; ktime_t total; ktime_t start; } stats; struct intel_engine_cs___4 *engine[27]; struct intel_engine_cs___4 *engine_class[54]; enum intel_submission_method submission_method; struct i915_address_space___4 *vm; struct intel_gt_buffer_pool buffer_pool; struct i915_vma___4 *scratch; struct intel_migrate___4 migrate; const struct intel_mmio_range *steering_table[7]; struct { u8 groupid; u8 instanceid; } default_steering; spinlock_t mcr_lock; phys_addr_t phys_addr; struct intel_gt_info info; struct { u8 uc_index; u8 wb_index; } mocs; struct kobject sysfs_gt; struct gt_defaults defaults; struct kobject *sysfs_defaults; struct i915_perf_gt___4 perf; struct list_head ggtt_link; }; struct i915_drm_clients___4 { struct drm_i915_private___2 *i915; struct xarray xarray; u32 next_id; }; struct drm_i915_private___2 { struct drm_device drm; struct intel_display___4 display; bool do_release; struct i915_params params; const struct intel_device_info __info; struct intel_runtime_info __runtime; struct intel_driver_caps caps; struct i915_dsm dsm; struct intel_uncore___4 uncore; struct intel_uncore_mmio_debug mmio_debug; struct i915_virtual_gpu vgpu; struct intel_gvt *gvt; struct { struct pci_dev *pdev; struct resource mch_res; bool mchbar_need_disable; } gmch; struct rb_root uabi_engines; unsigned int engine_uabi_class_count[5]; spinlock_t irq_lock; bool display_irqs_enabled; struct mutex sb_lock; struct pm_qos_request sb_qos; union { u32 irq_mask; u32 de_irq_mask[4]; }; u32 pipestat_irq_mask[4]; bool preserve_bios_swizzle; unsigned int fsb_freq; unsigned int mem_freq; unsigned int is_ddr3; unsigned int skl_preferred_vco_freq; unsigned int max_dotclk_freq; unsigned int hpll_freq; unsigned int czclk_freq; struct workqueue_struct *wq; const struct drm_i915_clock_gating_funcs *clock_gating_funcs; enum intel_pch pch_type; unsigned short pch_id; unsigned long gem_quirks; struct i915_gem_mm___4 mm; struct intel_l3_parity l3_parity; u32 edram_size_mb; struct i915_gpu_error___4 gpu_error; u32 suspend_count; struct i915_suspend_saved_registers regfile; struct vlv_s0ix_state *vlv_s0ix_state; struct dram_info dram_info; struct intel_runtime_pm runtime_pm; struct i915_perf___4 perf; struct i915_hwmon *hwmon; struct intel_gt___4 gt0; struct intel_gt___4 *gt[4]; struct kobject *sysfs_gt; struct intel_gt___4 *media_gt; struct { struct i915_gem_contexts contexts; struct file *mmap_singleton; } gem; struct intel_pxp *pxp; u8 vblank_enabled; bool irq_enabled; struct i915_pmu pmu; struct i915_drm_clients___4 clients; struct ttm_device___2 bdev; }; struct intel_initial_plane_config___3; struct intel_display_funcs___3 { bool (*get_pipe_config)(struct intel_crtc *, struct intel_crtc_state *); void (*get_initial_plane_config)(struct intel_crtc *, struct intel_initial_plane_config___3 *); void (*crtc_enable)(struct intel_atomic_state *, struct intel_crtc *); void (*crtc_disable)(struct intel_atomic_state *, struct intel_crtc *); void (*commit_modeset_enables)(struct intel_atomic_state *); }; struct intel_framebuffer___3; struct intel_initial_plane_config___3 { struct intel_framebuffer___3 *fb; struct i915_vma___4 *vma; unsigned int tiling; int size; u32 base; u8 rotation; }; struct intel_frontbuffer___4; struct intel_framebuffer___3 { struct drm_framebuffer base; struct intel_frontbuffer___4 *frontbuffer; struct intel_fb_view normal_view; union { struct intel_fb_view rotated_view; struct intel_fb_view remapped_view; }; struct i915_address_space___4 *dpt_vm; }; struct intel_frontbuffer___4 { struct kref ref; atomic_t bits; struct i915_active write; struct drm_i915_gem_object___4 *obj; struct callback_head rcu; }; struct drm_i915_gem_object_ops___4; struct drm_i915_gem_object___4 { union { struct drm_gem_object base; struct ttm_buffer_object___2 __do_not_access; }; const struct drm_i915_gem_object_ops___4 *ops; struct { spinlock_t lock; struct list_head list; struct rb_root tree; } vma; struct list_head lut_list; spinlock_t lut_lock; struct list_head obj_link; struct i915_address_space___4 *shares_resv_from; union { struct callback_head rcu; struct llist_node freed; }; unsigned int userfault_count; struct list_head userfault_link; struct { spinlock_t lock; struct rb_root offsets; } mmo; unsigned long flags; unsigned int mem_flags; unsigned int cache_level: 3; unsigned int cache_coherent: 2; unsigned int cache_dirty: 1; u16 read_domains; u16 write_domain; struct intel_frontbuffer___4 __attribute__((btf_type_tag("rcu"))) *frontbuffer; unsigned int tiling_and_stride; struct { atomic_t pages_pin_count; atomic_t shrink_pin; bool ttm_shrinkable; bool unknown_state; struct intel_memory_region___4 **placements; int n_placements; struct intel_memory_region___4 *region; struct ttm_resource___2 *res; struct list_head region_link; struct i915_refct_sgt *rsgt; struct sg_table *pages; void *mapping; struct i915_page_sizes page_sizes; struct i915_gem_object_page_iter get_page; struct i915_gem_object_page_iter get_dma_page; struct list_head link; unsigned int madv: 2; bool dirty: 1; u32 tlb; } mm; struct { struct i915_refct_sgt *cached_io_rsgt; struct i915_gem_object_page_iter get_io_page; struct drm_i915_gem_object___4 *backup; bool created: 1; } ttm; u32 pxp_key_instance; unsigned long *bit_17; union { struct i915_gem_userptr userptr; struct drm_mm_node *stolen; resource_size_t bo_offset; unsigned long scratch; u64 encode; void *gvt_info; }; }; struct drm_i915_gem_object_ops___4 { unsigned int flags; int (*get_pages)(struct drm_i915_gem_object___4 *); void (*put_pages)(struct drm_i915_gem_object___4 *, struct sg_table *); int (*truncate)(struct drm_i915_gem_object___4 *); int (*shrink)(struct drm_i915_gem_object___4 *, unsigned int); int (*pread)(struct drm_i915_gem_object___4 *, const struct drm_i915_gem_pread *); int (*pwrite)(struct drm_i915_gem_object___4 *, const struct drm_i915_gem_pwrite *); u64 (*mmap_offset)(struct drm_i915_gem_object___4 *); void (*unmap_virtual)(struct drm_i915_gem_object___4 *); int (*dmabuf_export)(struct drm_i915_gem_object___4 *); void (*adjust_lru)(struct drm_i915_gem_object___4 *); void (*delayed_free)(struct drm_i915_gem_object___4 *); int (*migrate)(struct drm_i915_gem_object___4 *, struct intel_memory_region___4 *, unsigned int); void (*release)(struct drm_i915_gem_object___4 *); const struct vm_operations_struct *mmap_ops; const char *name; }; struct intel_memory_region_ops___4; struct intel_memory_region___4 { struct drm_i915_private___2 *i915; const struct intel_memory_region_ops___4 *ops; struct io_mapping iomap; struct resource region; resource_size_t io_start; resource_size_t io_size; resource_size_t min_page_size; resource_size_t total; u16 type; u16 instance; enum intel_region_id id; char name[16]; bool private; struct { struct mutex lock; struct list_head list; } objects; bool is_range_manager; void *region_private; }; struct intel_memory_region_ops___4 { unsigned int flags; int (*init)(struct intel_memory_region___4 *); int (*release)(struct intel_memory_region___4 *); int (*init_object)(struct intel_memory_region___4 *, struct drm_i915_gem_object___4 *, resource_size_t, resource_size_t, resource_size_t, unsigned int); }; struct i915_vm_pt_stash___4; struct i915_vma_ops___4 { void (*bind_vma)(struct i915_address_space___4 *, struct i915_vm_pt_stash___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32); void (*unbind_vma)(struct i915_address_space___4 *, struct i915_vma_resource___4 *); }; struct i915_page_table___4; struct i915_address_space___4 { struct kref ref; struct work_struct release_work; struct drm_mm mm; struct intel_gt___4 *gt; struct drm_i915_private___2 *i915; struct device *dma; u64 total; u64 reserved; u64 min_alignment[4]; unsigned int bind_async_flags; struct mutex mutex; struct kref resv_ref; struct dma_resv _resv; struct drm_i915_gem_object___4 *scratch[4]; struct list_head bound_list; struct list_head unbound_list; bool is_ggtt: 1; bool is_dpt: 1; bool has_read_only: 1; bool skip_pte_rewrite: 1; u8 top; u8 pd_shift; u8 scratch_order; unsigned long lmem_pt_obj_flags; struct rb_root_cached pending_unbind; struct drm_i915_gem_object___4 * (*alloc_pt_dma)(struct i915_address_space___4 *, int); struct drm_i915_gem_object___4 * (*alloc_scratch_dma)(struct i915_address_space___4 *, int); u64 (*pte_encode)(dma_addr_t, enum i915_cache_level, u32); void (*allocate_va_range)(struct i915_address_space___4 *, struct i915_vm_pt_stash___4 *, u64, u64); void (*clear_range)(struct i915_address_space___4 *, u64, u64); void (*insert_page)(struct i915_address_space___4 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*insert_entries)(struct i915_address_space___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32); void (*raw_insert_page)(struct i915_address_space___4 *, dma_addr_t, u64, enum i915_cache_level, u32); void (*raw_insert_entries)(struct i915_address_space___4 *, struct i915_vma_resource___4 *, enum i915_cache_level, u32); void (*cleanup)(struct i915_address_space___4 *); void (*foreach)(struct i915_address_space___4 *, u64, u64, void (*)(struct i915_address_space___4 *, struct i915_page_table___4 *, void *), void *); struct i915_vma_ops___4 vma_ops; }; struct intel_uncore_fw_get___4 { void (*force_wake_get)(struct intel_uncore___4 *, enum forcewake_domains); }; struct intel_uncore_forcewake_domain___4 { struct intel_uncore___4 *uncore; enum forcewake_domain_id id; enum forcewake_domains mask; unsigned int wake_count; bool active; struct hrtimer timer; u32 *reg_set; u32 *reg_ack; }; struct i915_ppgtt___4; struct i915_fence_reg___4; struct i915_ggtt___4 { struct i915_address_space___4 vm; struct io_mapping iomap; struct resource gmadr; resource_size_t mappable_end; void *gsm; void (*invalidate)(struct i915_ggtt___4 *); struct i915_ppgtt___4 *alias; bool do_idle_maps; int mtrr; u32 bit_6_swizzle_x; u32 bit_6_swizzle_y; u32 pin_bias; unsigned int num_fences; struct i915_fence_reg___4 *fence_regs; struct list_head fence_list; struct list_head userfault_list; struct mutex error_mutex; struct drm_mm_node error_capture; struct drm_mm_node uc_fw; struct list_head gt_list; }; struct i915_page_directory___4; struct i915_ppgtt___4 { struct i915_address_space___4 vm; struct i915_page_directory___4 *pd; }; struct i915_page_table___4 { struct drm_i915_gem_object___4 *base; union { atomic_t used; struct i915_page_table___4 *stash; }; bool is_compact; }; struct i915_page_directory___4 { struct i915_page_table___4 pt; spinlock_t lock; void **entry; }; struct i915_fence_reg___4 { struct list_head link; struct i915_ggtt___4 *ggtt; struct i915_vma___4 *vma; atomic_t pin_count; struct i915_active active; int id; bool dirty; u32 start; u32 size; u32 tiling; u32 stride; }; struct i915_mmap_offset___4; struct i915_vma___4 { struct drm_mm_node node; struct i915_address_space___4 *vm; const struct i915_vma_ops___4 *ops; struct drm_i915_gem_object___4 *obj; struct sg_table *pages; void *iomap; void *private; struct i915_fence_reg___4 *fence; u64 size; struct i915_page_sizes page_sizes; struct i915_mmap_offset___4 *mmo; u32 guard; u32 fence_size; u32 fence_alignment; u32 display_alignment; atomic_t open_count; atomic_t flags; struct i915_active active; atomic_t pages_count; bool vm_ddestroy; struct i915_gtt_view gtt_view; struct list_head vm_link; struct list_head obj_link; struct rb_node obj_node; struct hlist_node obj_hash; struct list_head evict_link; struct list_head closed_link; struct i915_vma_resource___4 *resource; }; struct i915_vm_pt_stash___4 { struct i915_page_table___4 *pt[2]; int pt_sz; }; struct i915_mmap_offset___4 { struct drm_vma_offset_node vma_node; struct drm_i915_gem_object___4 *obj; enum i915_mmap_type mmap_type; struct rb_node offset; }; struct intel_uc_ops___4 { int (*sanitize)(struct intel_uc___4 *); void (*init_fw)(struct intel_uc___4 *); void (*fini_fw)(struct intel_uc___4 *); int (*init)(struct intel_uc___4 *); void (*fini)(struct intel_uc___4 *); int (*init_hw)(struct intel_uc___4 *); void (*fini_hw)(struct intel_uc___4 *); }; struct i915_gem_context___4; struct intel_timeline___4; struct intel_context_ops___4; struct intel_context___4 { union { struct kref ref; struct callback_head rcu; }; struct intel_engine_cs___4 *engine; struct intel_engine_cs___4 *inflight; struct i915_address_space___4 *vm; struct i915_gem_context___4 __attribute__((btf_type_tag("rcu"))) *gem_context; struct list_head signal_link; struct list_head signals; spinlock_t signal_lock; struct i915_vma___4 *state; u32 ring_size; struct intel_ring *ring; struct intel_timeline___4 *timeline; unsigned long flags; struct { u64 timeout_us; } watchdog; u32 *lrc_reg_state; union { struct { u32 lrca; u32 ccid; }; u64 desc; } lrc; u32 tag; struct intel_context_stats stats; unsigned int active_count; atomic_t pin_count; struct mutex pin_mutex; struct i915_active active; const struct intel_context_ops___4 *ops; struct intel_sseu sseu; struct list_head pinned_contexts_link; u8 wa_bb_page; struct { spinlock_t lock; u32 sched_state; struct list_head fences; struct i915_sw_fence blocked; struct list_head requests; u8 prio; u32 prio_count[4]; struct delayed_work sched_disable_delay_work; } guc_state; struct { u16 id; atomic_t ref; struct list_head link; } guc_id; struct list_head destroyed_link; struct { union { struct list_head child_list; struct list_head child_link; }; struct intel_context___4 *parent; struct i915_request___4 *last_rq; u64 fence_context; u32 seqno; u8 number_children; u8 child_index; struct { u16 wqi_head; u16 wqi_tail; u32 *wq_head; u32 *wq_tail; u32 *wq_status; u8 parent_page; } guc; } parallel; }; struct intel_hw_status_page___4 { struct list_head timelines; struct i915_vma___4 *vma; u32 *addr; }; struct i915_ctx_workarounds___4 { struct i915_wa_ctx_bb indirect_ctx; struct i915_wa_ctx_bb per_ctx; struct i915_vma___4 *vma; }; struct intel_engine_execlists___4 { struct timer_list timer; struct timer_list preempt; const struct i915_request___4 *preempt_target; u32 ccid; u32 yield; u32 error_interrupt; u32 reset_ccid; u32 *submit_reg; u32 *ctrl_reg; struct i915_request___4 * const *active; struct i915_request___4 *inflight[3]; struct i915_request___4 *pending[3]; unsigned int port_mask; struct rb_root_cached virtual; u32 *csb_write; u64 *csb_status; u8 csb_size; u8 csb_head; }; struct intel_breadcrumbs___2; struct intel_engine_cs___4 { struct drm_i915_private___2 *i915; struct intel_gt___4 *gt; struct intel_uncore___4 *uncore; char name[8]; enum intel_engine_id id; enum intel_engine_id legacy_idx; unsigned int guc_id; intel_engine_mask_t mask; u32 reset_domain; intel_engine_mask_t logical_mask; u8 class; u8 instance; u16 uabi_class; u16 uabi_instance; u32 uabi_capabilities; u32 context_size; u32 mmio_base; enum forcewake_domains fw_domain; unsigned int fw_active; unsigned long context_tag; struct rb_node uabi_node; struct intel_sseu sseu; struct i915_sched_engine___4 *sched_engine; struct i915_request___4 *request_pool; struct intel_context___4 *hung_ce; struct llist_head barrier_tasks; struct intel_context___4 *kernel_context; struct list_head pinned_contexts_list; intel_engine_mask_t saturated; struct { struct delayed_work work; struct i915_request___4 *systole; unsigned long blocked; } heartbeat; unsigned long serial; unsigned long wakeref_serial; struct intel_wakeref wakeref; struct file *default_state; struct { struct intel_ring *ring; struct intel_timeline___4 *timeline; } legacy; struct ewma__engine_latency latency; struct intel_breadcrumbs___2 *breadcrumbs; struct intel_engine_pmu pmu; struct intel_hw_status_page___4 status_page; struct i915_ctx_workarounds___4 wa_ctx; struct i915_wa_list___4 ctx_wa_list; struct i915_wa_list___4 wa_list; struct i915_wa_list___4 whitelist; u32 irq_keep_mask; u32 irq_enable_mask; void (*irq_enable)(struct intel_engine_cs___4 *); void (*irq_disable)(struct intel_engine_cs___4 *); void (*irq_handler)(struct intel_engine_cs___4 *, u16); void (*sanitize)(struct intel_engine_cs___4 *); int (*resume)(struct intel_engine_cs___4 *); struct { void (*prepare)(struct intel_engine_cs___4 *); void (*rewind)(struct intel_engine_cs___4 *, bool); void (*cancel)(struct intel_engine_cs___4 *); void (*finish)(struct intel_engine_cs___4 *); } reset; void (*park)(struct intel_engine_cs___4 *); void (*unpark)(struct intel_engine_cs___4 *); void (*bump_serial)(struct intel_engine_cs___4 *); void (*set_default_submission)(struct intel_engine_cs___4 *); const struct intel_context_ops___4 *cops; int (*request_alloc)(struct i915_request___4 *); int (*emit_flush)(struct i915_request___4 *, u32); int (*emit_bb_start)(struct i915_request___4 *, u64, u32, unsigned int); int (*emit_init_breadcrumb)(struct i915_request___4 *); u32 * (*emit_fini_breadcrumb)(struct i915_request___4 *, u32 *); unsigned int emit_fini_breadcrumb_dw; void (*submit_request)(struct i915_request___4 *); void (*release)(struct intel_engine_cs___4 *); void (*add_active_request)(struct i915_request___4 *); void (*remove_active_request)(struct i915_request___4 *); ktime_t (*busyness)(struct intel_engine_cs___4 *, ktime_t *); struct intel_engine_execlists___4 execlists; struct intel_timeline___4 *retire; struct work_struct retire_work; struct atomic_notifier_head context_status_notifier; unsigned int flags; struct hlist_head cmd_hash[512]; const struct drm_i915_reg_table *reg_tables; int reg_table_count; u32 (*get_cmd_length_mask)(u32); struct { union { struct intel_engine_execlists_stats execlists; struct intel_engine_guc_stats guc; }; ktime_t rps; } stats; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } props; struct { unsigned long heartbeat_interval_ms; unsigned long max_busywait_duration_ns; unsigned long preempt_timeout_ms; unsigned long stop_timeout_ms; unsigned long timeslice_duration_ms; } defaults; }; struct i915_sched_engine___4 { struct kref ref; spinlock_t lock; struct list_head requests; struct list_head hold; struct tasklet_struct tasklet; struct i915_priolist default_priolist; int queue_priority_hint; struct rb_root_cached queue; bool no_priolist; void *private_data; void (*destroy)(struct kref *); bool (*disabled)(struct i915_sched_engine___4 *); void (*kick_backend)(const struct i915_request___4 *, int); void (*bump_inflight_request_prio)(struct i915_request___4 *, int); void (*retire_inflight_request_prio)(struct i915_request___4 *); void (*schedule)(struct i915_request___4 *, const struct i915_sched_attr *); }; struct i915_capture_list___4; struct i915_request___4 { struct dma_fence fence; spinlock_t lock; struct drm_i915_private___2 *i915; struct intel_engine_cs___4 *engine; struct intel_context___4 *context; struct intel_ring *ring; struct intel_timeline___4 __attribute__((btf_type_tag("rcu"))) *timeline; struct list_head signal_link; struct llist_node signal_node; unsigned long rcustate; struct pin_cookie cookie; struct i915_sw_fence submit; union { wait_queue_entry_t submitq; struct i915_sw_dma_fence_cb dmaq; struct i915_request_duration_cb duration; }; struct llist_head execute_cb; struct i915_sw_fence semaphore; struct irq_work submit_work; struct i915_sched_node sched; struct i915_dependency dep; intel_engine_mask_t execution_mask; const u32 *hwsp_seqno; u32 head; u32 infix; u32 postfix; u32 tail; u32 wa_tail; u32 reserved_space; struct i915_vma_resource___4 *batch_res; struct i915_capture_list___4 *capture_list; unsigned long emitted_jiffies; struct list_head link; struct i915_request_watchdog watchdog; struct list_head guc_fence_link; u8 guc_prio; wait_queue_entry_t hucq; }; struct intel_timeline___4 { u64 fence_context; u32 seqno; struct mutex mutex; atomic_t pin_count; atomic_t active_count; void *hwsp_map; const u32 *hwsp_seqno; struct i915_vma___4 *hwsp_ggtt; u32 hwsp_offset; bool has_initial_breadcrumb; struct list_head requests; struct i915_active_fence last_request; struct i915_active active; struct intel_timeline___4 *retire; struct i915_syncmap *sync; struct list_head link; struct intel_gt___4 *gt; struct list_head engine_link; struct kref kref; struct callback_head rcu; }; struct i915_capture_list___4 { struct i915_vma_resource___4 *vma_res; struct i915_capture_list___4 *next; }; struct intel_breadcrumbs___2 { struct kref ref; atomic_t active; spinlock_t signalers_lock; struct list_head signalers; struct llist_head signaled_requests; atomic_t signaler_active; spinlock_t irq_lock; struct irq_work irq_work; unsigned int irq_enabled; bool irq_armed; intel_engine_mask_t engine_mask; struct intel_engine_cs___4 *irq_engine; bool (*irq_enable)(struct intel_breadcrumbs___2 *); void (*irq_disable)(struct intel_breadcrumbs___2 *); }; struct i915_gem_ww_ctx___4; struct intel_context_ops___4 { unsigned long flags; int (*alloc)(struct intel_context___4 *); void (*revoke)(struct intel_context___4 *, struct i915_request___4 *, unsigned int); void (*close)(struct intel_context___4 *); int (*pre_pin)(struct intel_context___4 *, struct i915_gem_ww_ctx___4 *, void **); int (*pin)(struct intel_context___4 *, void *); void (*unpin)(struct intel_context___4 *); void (*post_unpin)(struct intel_context___4 *); void (*cancel_request)(struct intel_context___4 *, struct i915_request___4 *); void (*enter)(struct intel_context___4 *); void (*exit)(struct intel_context___4 *); void (*sched_disable)(struct intel_context___4 *); void (*reset)(struct intel_context___4 *); void (*destroy)(struct kref *); struct intel_context___4 * (*create_virtual)(struct intel_engine_cs___4 **, unsigned int, unsigned long); struct intel_context___4 * (*create_parallel)(struct intel_engine_cs___4 **, unsigned int, unsigned int); struct intel_engine_cs___4 * (*get_sibling)(struct intel_engine_cs___4 *, unsigned int); }; struct i915_gem_ww_ctx___4 { struct ww_acquire_ctx ctx; struct list_head obj_list; struct drm_i915_gem_object___4 *contended; bool intr; }; struct i915_gem_engines___4; struct i915_drm_client___4; struct i915_gem_context___4 { struct drm_i915_private___2 *i915; struct drm_i915_file_private *file_priv; struct i915_gem_engines___4 __attribute__((btf_type_tag("rcu"))) *engines; struct mutex engines_mutex; struct drm_syncobj *syncobj; struct i915_address_space___4 *vm; struct pid *pid; struct list_head link; struct i915_drm_client___4 *client; struct list_head client_link; struct kref ref; struct work_struct release_work; struct callback_head rcu; unsigned long user_flags; unsigned long flags; bool uses_protected_content; intel_wakeref_t pxp_wakeref; struct mutex mutex; struct i915_sched_attr sched; atomic_t guilty_count; atomic_t active_count; unsigned long hang_timestamp[2]; u8 remap_slice; struct xarray handles_vma; struct mutex lut_mutex; char name[24]; struct { spinlock_t lock; struct list_head engines; } stale; }; struct i915_gem_engines___4 { union { struct list_head link; struct callback_head rcu; }; struct i915_sw_fence fence; struct i915_gem_context___4 *ctx; unsigned int num_engines; struct intel_context___4 *engines[0]; }; struct i915_drm_client___4 { struct kref kref; unsigned int id; spinlock_t ctx_lock; struct list_head ctx_list; struct i915_drm_clients___4 *clients; atomic64_t past_runtime[5]; }; struct i915_perf_stream_ops___4; struct i915_oa_config___4; struct i915_perf_stream___4 { struct i915_perf___4 *perf; struct intel_uncore___4 *uncore; struct intel_engine_cs___4 *engine; struct mutex lock; u32 sample_flags; int sample_size; struct i915_gem_context___4 *ctx; bool enabled; bool hold_preemption; const struct i915_perf_stream_ops___4 *ops; struct i915_oa_config___4 *oa_config; struct llist_head oa_config_bos; struct intel_context___4 *pinned_ctx; u32 specific_ctx_id; u32 specific_ctx_id_mask; struct hrtimer poll_check_timer; wait_queue_head_t poll_wq; bool pollin; bool periodic; int period_exponent; struct { const struct i915_oa_format *format; struct i915_vma___4 *vma; u8 *vaddr; u32 last_ctx_id; int size_exponent; spinlock_t ptr_lock; u32 aging_tail; u64 aging_timestamp; u32 head; u32 tail; } oa_buffer; struct i915_vma___4 *noa_wait; u64 poll_oa_period; }; struct i915_perf_stream_ops___4 { void (*enable)(struct i915_perf_stream___4 *); void (*disable)(struct i915_perf_stream___4 *); void (*poll_wait)(struct i915_perf_stream___4 *, struct file *, poll_table *); int (*wait_unlocked)(struct i915_perf_stream___4 *); int (*read)(struct i915_perf_stream___4 *, char __attribute__((btf_type_tag("user"))) *, size_t, size_t *); void (*destroy)(struct i915_perf_stream___4 *); }; struct i915_oa_config___4 { struct i915_perf___4 *perf; char uuid[37]; int id; const struct i915_oa_reg *mux_regs; u32 mux_regs_len; const struct i915_oa_reg *b_counter_regs; u32 b_counter_regs_len; const struct i915_oa_reg *flex_regs; u32 flex_regs_len; struct attribute_group sysfs_metric; struct attribute *attrs[2]; struct kobj_attribute sysfs_metric_id; struct kref ref; struct callback_head rcu; }; struct intel_wm_funcs___4 { void (*update_wm)(struct drm_i915_private___2 *); int (*compute_pipe_wm)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_intermediate_wm)(struct intel_atomic_state *, struct intel_crtc *); void (*initial_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*atomic_update_watermarks)(struct intel_atomic_state *, struct intel_crtc *); void (*optimize_watermarks)(struct intel_atomic_state *, struct intel_crtc *); int (*compute_global_watermarks)(struct intel_atomic_state *); }; struct intel_gt_coredump___4; struct i915_gpu_coredump___4 { struct kref ref; ktime_t time; ktime_t boottime; ktime_t uptime; unsigned long capture; struct drm_i915_private___2 *i915; struct intel_gt_coredump___4 *gt; char error_msg[128]; bool simulated; bool wakelock; bool suspended; int iommu; u32 reset_count; u32 suspend_count; struct intel_device_info device_info; struct intel_runtime_info runtime_info; struct intel_driver_caps driver_caps; struct i915_params params; struct intel_overlay_error_state *overlay; struct scatterlist *sgl; struct scatterlist *fit; }; struct intel_engine_coredump___4; struct intel_uc_coredump___4; struct intel_gt_coredump___4 { const struct intel_gt___4 *_gt; bool awake; bool simulated; struct intel_gt_info info; u32 eir; u32 pgtbl_er; u32 ier; u32 gtier[6]; u32 ngtier; u32 forcewake; u32 error; u32 err_int; u32 fault_data0; u32 fault_data1; u32 done_reg; u32 gac_eco; u32 gam_ecochk; u32 gab_ctl; u32 gfx_mode; u32 gtt_cache; u32 aux_err; u32 gam_done; u32 clock_frequency; u32 clock_period_ns; u32 derrmr; u32 sfc_done[4]; u32 nfence; u64 fence[32]; struct intel_engine_coredump___4 *engine; struct intel_uc_coredump___4 *uc; struct intel_gt_coredump___4 *next; }; struct intel_engine_coredump___4 { const struct intel_engine_cs___4 *engine; bool hung; bool simulated; u32 reset_count; u32 rq_head; u32 rq_post; u32 rq_tail; u32 ccid; u32 start; u32 tail; u32 head; u32 ctl; u32 mode; u32 hws; u32 ipeir; u32 ipehr; u32 esr; u32 bbstate; u32 instpm; u32 instps; u64 bbaddr; u64 acthd; u32 fault_reg; u64 faddr; u32 rc_psmi; u32 nopid; u32 excc; u32 cmd_cctl; u32 cscmdop; u32 ctx_sr_ctl; u32 dma_faddr_hi; u32 dma_faddr_lo; struct intel_instdone instdone; struct intel_guc_state_capture *guc_capture; struct __guc_capture_parsed_output *guc_capture_node; struct i915_gem_context_coredump context; struct i915_vma_coredump *vma; struct i915_request_coredump execlist[2]; unsigned int num_ports; struct { u32 gfx_mode; union { u64 pdp[4]; u32 pp_dir_base; }; } vm_info; struct intel_engine_coredump___4 *next; }; struct intel_uc_coredump___4 { struct intel_uc_fw___4 guc_fw; struct intel_uc_fw___4 huc_fw; struct guc_info guc; }; typedef u32 (*hotplug_enables_func)(struct drm_i915_private___2 *, enum hpd_pin); struct i915_gem_apply_to_region_ops; struct i915_gem_apply_to_region { const struct i915_gem_apply_to_region_ops *ops; struct i915_gem_ww_ctx *ww; u32 interruptible: 1; }; struct i915_gem_apply_to_region_ops { int (*process_obj)(struct i915_gem_apply_to_region *, struct drm_i915_gem_object *); }; struct __ext_steer_reg { const char *name; i915_mcr_reg_t reg; }; struct __guc_mmio_reg_descr; struct __guc_mmio_reg_descr_group { const struct __guc_mmio_reg_descr *list; u32 num_regs; u32 owner; u32 type; u32 engine; struct __guc_mmio_reg_descr *extlist; }; struct __guc_mmio_reg_descr { i915_reg_t reg; u32 flags; u32 mask; const char *regname; }; struct __guc_capture_ads_cache { bool is_valid; void *ptr; size_t size; int status; }; struct intel_guc_state_capture { const struct __guc_mmio_reg_descr_group *reglists; struct __guc_mmio_reg_descr_group *extlists; struct __guc_capture_ads_cache ads_cache[96]; void *ads_null_cache; struct list_head cachelist; int max_mmio_per_node; struct list_head outlist; }; struct gcap_reg_list_info { u32 vfid; u32 num_regs; struct guc_mmio_reg *regs; }; struct __guc_capture_parsed_output { struct list_head link; bool is_partial; u32 eng_class; u32 eng_inst; u32 guc_id; u32 lrca; struct gcap_reg_list_info reginfo[3]; }; enum guc_capture_type { GUC_CAPTURE_LIST_TYPE_GLOBAL = 0, GUC_CAPTURE_LIST_TYPE_ENGINE_CLASS = 1, GUC_CAPTURE_LIST_TYPE_ENGINE_INSTANCE = 2, GUC_CAPTURE_LIST_TYPE_MAX = 3, }; enum { GUC_CAPTURE_LIST_INDEX_PF = 0, GUC_CAPTURE_LIST_INDEX_VF = 1, GUC_CAPTURE_LIST_INDEX_MAX = 2, }; enum guc_log_buffer_type { GUC_DEBUG_LOG_BUFFER = 0, GUC_CRASH_DUMP_LOG_BUFFER = 1, GUC_CAPTURE_LOG_BUFFER = 2, GUC_MAX_LOG_BUFFER = 3, }; struct guc_debug_capture_list_header { u32 info; }; struct guc_debug_capture_list { struct guc_debug_capture_list_header header; struct guc_mmio_reg regs[0]; }; struct __guc_capture_bufstate { u32 size; void *data; u32 rd; u32 wr; }; struct guc_log_buffer_state { u32 marker[2]; u32 read_ptr; u32 write_ptr; u32 size; u32 sampled_write_ptr; u32 wrap_offset; union { struct { u32 flush_to_file: 1; u32 buffer_full_cnt: 4; u32 reserved: 27; }; u32 flags; }; u32 version; }; struct guc_state_capture_header_t { u32 owner; u32 info; u32 lrca; u32 guc_id; u32 num_mmios; }; struct guc_state_capture_group_header_t { u32 owner; u32 info; }; struct intel_quirk { int device; int subsystem_vendor; int subsystem_device; void (*hook)(struct drm_i915_private___2 *); }; struct intel_dmi_quirk { void (*hook)(struct drm_i915_private___2 *); const struct dmi_system_id (*dmi_id_list)[0]; }; struct intel_crt { struct intel_encoder base; struct intel_connector *connector; bool force_hotplug_required; i915_reg_t adpa_reg; }; struct _balloon_info_ { struct drm_mm_node space[4]; }; enum { mechtype_caddy = 0, mechtype_tray = 1, mechtype_popup = 2, mechtype_individual_changer = 4, mechtype_cartridge_changer = 5, }; struct event_header { __be16 data_len; __u8 notification_class: 3; __u8 reserved1: 4; __u8 nea: 1; __u8 supp_event_class; }; struct e1000_stats { char stat_string[32]; int type; int sizeof_stat; int stat_offset; }; enum e1000_state_t___2 { __E1000_TESTING___2 = 0, __E1000_RESETTING___2 = 1, __E1000_DOWN___2 = 2, __E1000_DISABLED = 3, }; enum { NETDEV_STATS = 0, E1000_STATS = 1, }; struct e1000_rx_desc { __le64 buffer_addr; __le16 length; __le16 csum; u8 status; u8 errors; __le16 special; }; typedef enum { e1000_undefined = 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 = 15, } e1000_mac_type; typedef enum { e1000_phy_m88___2 = 0, e1000_phy_igp___2 = 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 = 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_reserved = 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 = 0, e1000_bus_type_pci = 1, e1000_bus_type_pcix = 2, e1000_bus_type_reserved = 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___2 { 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___2 { 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___2 { 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___2 hw; struct e1000_hw_stats___2 stats; struct e1000_phy_info___2 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; }; struct tuple_t { u_int Attributes; cisdata_t DesiredTuple; u_int Flags; u_int LinkOffset; u_int CISOffset; cisdata_t TupleCode; cisdata_t TupleLink; cisdata_t TupleOffset; cisdata_t TupleDataMax; cisdata_t TupleDataLen; cisdata_t *TupleData; }; typedef struct tuple_t tuple_t; struct cistpl_device_t { u_char ndev; struct { u_char type; u_char wp; u_int speed; u_int size; } dev[4]; }; typedef struct cistpl_device_t cistpl_device_t; struct cistpl_checksum_t { u_short addr; u_short len; u_char sum; }; typedef struct cistpl_checksum_t cistpl_checksum_t; struct cistpl_longlink_t { u_int addr; }; typedef struct cistpl_longlink_t cistpl_longlink_t; struct cistpl_altstr_t { u_char ns; u_char ofs[4]; char str[254]; }; typedef struct cistpl_altstr_t cistpl_altstr_t; struct cistpl_jedec_t { u_char nid; struct { u_char mfr; u_char info; } id[4]; }; typedef struct cistpl_jedec_t cistpl_jedec_t; struct cistpl_funce_t { u_char type; u_char data[0]; }; typedef struct cistpl_funce_t cistpl_funce_t; struct cistpl_bar_t { u_char attr; u_int size; }; typedef struct cistpl_bar_t cistpl_bar_t; struct cistpl_power_t { u_char present; u_char flags; u_int param[7]; }; typedef struct cistpl_power_t cistpl_power_t; struct cistpl_timing_t { u_int wait; u_int waitscale; u_int ready; u_int rdyscale; u_int reserved; u_int rsvscale; }; typedef struct cistpl_timing_t cistpl_timing_t; struct cistpl_io_t { u_char flags; u_char nwin; struct { u_int base; u_int len; } win[16]; }; typedef struct cistpl_io_t cistpl_io_t; struct cistpl_irq_t { u_int IRQInfo1; u_int IRQInfo2; }; typedef struct cistpl_irq_t cistpl_irq_t; struct cistpl_mem_t { u_char flags; u_char nwin; struct { u_int len; u_int card_addr; u_int host_addr; } win[8]; }; typedef struct cistpl_mem_t cistpl_mem_t; struct cistpl_cftable_entry_t { u_char index; u_short flags; u_char interface; cistpl_power_t vcc; cistpl_power_t vpp1; cistpl_power_t vpp2; cistpl_timing_t timing; cistpl_io_t io; cistpl_irq_t irq; cistpl_mem_t mem; u_char subtuples; }; typedef struct cistpl_cftable_entry_t cistpl_cftable_entry_t; struct cistpl_cftable_entry_cb_t { u_char index; u_int flags; cistpl_power_t vcc; cistpl_power_t vpp1; cistpl_power_t vpp2; u_char io; cistpl_irq_t irq; u_char mem; u_char subtuples; }; typedef struct cistpl_cftable_entry_cb_t cistpl_cftable_entry_cb_t; struct cistpl_vers_2_t { u_char vers; u_char comply; u_short dindex; u_char vspec8; u_char vspec9; u_char nhdr; u_char vendor; u_char info; char str[244]; }; typedef struct cistpl_vers_2_t cistpl_vers_2_t; struct cistpl_org_t { u_char data_org; char desc[30]; }; typedef struct cistpl_org_t cistpl_org_t; struct cistpl_format_t { u_char type; u_char edc; u_int offset; u_int length; }; typedef struct cistpl_format_t cistpl_format_t; union cisparse_t { cistpl_device_t device; cistpl_checksum_t checksum; cistpl_longlink_t longlink; cistpl_longlink_mfc_t longlink_mfc; cistpl_vers_1_t version_1; cistpl_altstr_t altstr; cistpl_jedec_t jedec; cistpl_manfid_t manfid; cistpl_funcid_t funcid; cistpl_funce_t funce; cistpl_bar_t bar; cistpl_config_t config; cistpl_cftable_entry_t cftable_entry; cistpl_cftable_entry_cb_t cftable_entry_cb; cistpl_device_geo_t device_geo; cistpl_vers_2_t vers_2; cistpl_org_t org; cistpl_format_t format; }; typedef union cisparse_t cisparse_t; struct pcmcia_loop_mem { struct pcmcia_device *p_dev; void *priv_data; int (*loop_tuple)(struct pcmcia_device *, tuple_t *, void *); }; struct pcmcia_cfg_mem { struct pcmcia_device *p_dev; int (*conf_check)(struct pcmcia_device *, void *); void *priv_data; cisparse_t parse; cistpl_cftable_entry_t dflt; }; struct pcmcia_loop_get { size_t len; cisdata_t **buf; }; 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; }; struct ff_periodic_effect_compat { __u16 waveform; __u16 period; __s16 magnitude; __s16 offset; __u16 phase; struct ff_envelope envelope; __u32 custom_len; compat_uptr_t custom_data; }; struct ff_effect_compat { __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_compat periodic; struct ff_condition_effect condition[2]; struct ff_rumble_effect rumble; } u; }; struct input_event_compat { compat_ulong_t sec; compat_ulong_t usec; __u16 type; __u16 code; __s32 value; }; struct input_event { __kernel_ulong_t __sec; __kernel_ulong_t __usec; __u16 type; __u16 code; __s32 value; }; struct cytp_data { int fw_version; int pkt_size; int mode; int tp_min_pressure; int tp_max_pressure; int tp_width; int tp_high; int tp_max_abs_x; int tp_max_abs_y; int tp_res_x; int tp_res_y; int tp_metrics_supported; }; struct cytp_contact { int x; int y; int z; }; struct cytp_report_data { int contact_cnt; struct cytp_contact contacts[2]; unsigned int left: 1; unsigned int right: 1; unsigned int middle: 1; unsigned int tap: 1; }; struct pps_event_time { struct timespec64 ts_real; }; struct dm_kcopyd_throttle { unsigned int throttle; unsigned int num_io_jobs; unsigned int io_period; unsigned int total_period; unsigned int last_jiffies; }; enum dm_io_mem_type { DM_IO_PAGE_LIST = 0, DM_IO_BIO = 1, DM_IO_VMA = 2, DM_IO_KMEM = 3, }; enum dm_raid1_error { DM_RAID1_WRITE_ERROR = 0, DM_RAID1_FLUSH_ERROR = 1, DM_RAID1_SYNC_ERROR = 2, DM_RAID1_READ_ERROR = 3, }; enum dm_rh_region_states { DM_RH_CLEAN = 1, DM_RH_DIRTY = 2, DM_RH_NOSYNC = 4, DM_RH_RECOVERING = 8, }; struct dm_region_hash; struct dm_kcopyd_client; typedef sector_t region_t; struct mirror_set; struct mirror { struct mirror_set *ms; atomic_t error_count; unsigned long error_type; struct dm_dev *dev; sector_t offset; }; struct dm_io_client; struct mirror_set { struct dm_target *ti; struct list_head list; uint64_t features; spinlock_t lock; struct bio_list reads; struct bio_list writes; struct bio_list failures; struct bio_list holds; struct dm_region_hash *rh; struct dm_kcopyd_client *kcopyd_client; struct dm_io_client *io_client; region_t nr_regions; int in_sync; int log_failure; int leg_failure; atomic_t suspend; atomic_t default_mirror; struct workqueue_struct *kmirrord_wq; struct work_struct kmirrord_work; struct timer_list timer; unsigned long timer_pending; struct work_struct trigger_event; unsigned int nr_mirrors; struct mirror mirror[0]; }; struct dm_dirty_log_type; struct dm_dirty_log { struct dm_dirty_log_type *type; int (*flush_callback_fn)(struct dm_target *); void *context; }; struct dm_dirty_log_type { const char *name; struct module *module; struct list_head list; int (*ctr)(struct dm_dirty_log *, struct dm_target *, unsigned int, char **); void (*dtr)(struct dm_dirty_log *); int (*presuspend)(struct dm_dirty_log *); int (*postsuspend)(struct dm_dirty_log *); int (*resume)(struct dm_dirty_log *); uint32_t (*get_region_size)(struct dm_dirty_log *); int (*is_clean)(struct dm_dirty_log *, region_t); int (*in_sync)(struct dm_dirty_log *, region_t, int); int (*flush)(struct dm_dirty_log *); void (*mark_region)(struct dm_dirty_log *, region_t); void (*clear_region)(struct dm_dirty_log *, region_t); int (*get_resync_work)(struct dm_dirty_log *, region_t *); void (*set_region_sync)(struct dm_dirty_log *, region_t, int); region_t (*get_sync_count)(struct dm_dirty_log *); int (*status)(struct dm_dirty_log *, status_type_t, char *, unsigned int); int (*is_remote_recovering)(struct dm_dirty_log *, region_t); }; struct dm_bio_details { struct block_device *bi_bdev; int __bi_remaining; unsigned long bi_flags; struct bvec_iter bi_iter; bio_end_io_t *bi_end_io; }; struct dm_region; struct dm_io_region { struct block_device *bdev; sector_t sector; sector_t count; }; 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_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; }; typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *); struct dm_raid1_bio_record { struct mirror *m; struct dm_bio_details details; region_t write_region; }; enum { WMI_READ_TAKES_NO_ARGS = 0, WMI_PROBED = 1, }; struct wmi_device { struct device dev; bool setable; }; struct guid_block { guid_t guid; union { char object_id[2]; struct { unsigned char notify_id; unsigned char reserved; }; }; u8 instance_count; u8 flags; }; typedef void (*wmi_notify_handler)(u32, void *); struct wmi_block { struct wmi_device dev; struct list_head list; struct guid_block gblock; struct miscdevice char_dev; struct mutex char_mutex; struct acpi_device *acpi_device; wmi_notify_handler handler; void *handler_data; u64 req_buf_size; unsigned long flags; }; struct wmi_device_id; struct wmi_ioctl_buffer; struct wmi_driver { struct device_driver driver; const struct wmi_device_id *id_table; bool no_notify_data; int (*probe)(struct wmi_device *, const void *); void (*remove)(struct wmi_device *); void (*notify)(struct wmi_device *, union acpi_object *); long (*filter_callback)(struct wmi_device *, unsigned int, struct wmi_ioctl_buffer *); }; struct wmi_device_id { const char guid_string[37]; const void *context; }; struct wmi_ioctl_buffer { __u64 length; __u8 data[0]; }; enum { HDA_JACK_NOT_PRESENT = 0, HDA_JACK_PRESENT = 1, HDA_JACK_PHANTOM = 2, }; enum snd_jack_types { SND_JACK_HEADPHONE = 1, SND_JACK_MICROPHONE = 2, SND_JACK_HEADSET = 3, SND_JACK_LINEOUT = 4, SND_JACK_MECHANICAL = 8, SND_JACK_VIDEOOUT = 16, SND_JACK_AVOUT = 20, SND_JACK_LINEIN = 32, SND_JACK_BTN_0 = 16384, SND_JACK_BTN_1 = 8192, SND_JACK_BTN_2 = 4096, SND_JACK_BTN_3 = 2048, SND_JACK_BTN_4 = 1024, SND_JACK_BTN_5 = 512, }; struct hda_jack_callback; struct snd_jack; struct hda_jack_tbl { hda_nid_t nid; int dev_id; unsigned char tag; struct hda_jack_callback *callback; unsigned int pin_sense; unsigned int jack_detect: 1; unsigned int jack_dirty: 1; unsigned int phantom_jack: 1; unsigned int block_report: 1; hda_nid_t gating_jack; hda_nid_t gated_jack; hda_nid_t key_report_jack; int type; int button_state; struct snd_jack *jack; }; typedef void (*hda_jack_callback_fn)(struct hda_codec *, struct hda_jack_callback *); struct hda_jack_callback { hda_nid_t nid; int dev_id; hda_jack_callback_fn func; unsigned int private_data; unsigned int unsol_res; struct hda_jack_tbl *jack; struct hda_jack_callback *next; }; struct snd_jack { struct list_head kctl_list; struct snd_card *card; const char *id; struct input_dev *input_dev; struct mutex input_dev_lock; int registered; int type; char name[100]; unsigned int key[6]; int hw_status_cache; void *private_data; void (*private_free)(struct snd_jack *); }; struct hda_jack_keymap { enum snd_jack_types type; int key; }; struct cpu_rmap { struct kref refcount; u16 size; u16 used; void **obj; struct { u16 index; u16 dist; } near[0]; }; struct bpf_xdp_link { struct bpf_link link; struct net_device *dev; int flags; }; enum qdisc_state_t { __QDISC_STATE_SCHED = 0, __QDISC_STATE_DEACTIVATED = 1, __QDISC_STATE_MISSED = 2, __QDISC_STATE_DRAINING = 3, }; 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 bpf_xdp_mode { XDP_MODE_SKB = 0, XDP_MODE_DRV = 1, XDP_MODE_HW = 2, __MAX_XDP_MODE = 3, }; enum qdisc_state2_t { __QDISC_STATE2_RUNNING = 0, }; enum { SKB_FCLONE_UNAVAILABLE = 0, SKB_FCLONE_ORIG = 1, SKB_FCLONE_CLONE = 2, }; 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 dev_kfree_skb_cb { enum skb_drop_reason reason; }; 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 netdev_nested_priv { unsigned char flags; void *data; }; struct netdev_notifier_offload_xstats_rd { struct rtnl_hw_stats64 stats; bool used; }; struct netdev_notifier_offload_xstats_ru { bool used; }; typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); 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 netdev_notifier_pre_changeaddr_info { struct netdev_notifier_info info; const unsigned char *dev_addr; }; struct xfrm_policy_afinfo { struct dst_ops *dst_ops; struct dst_entry * (*dst_lookup)(struct net *, int, int, const xfrm_address_t *, const xfrm_address_t *, u32); int (*get_saddr)(struct net *, int, xfrm_address_t *, xfrm_address_t *, u32); int (*fill_dst)(struct xfrm_dst *, struct net_device *, const struct flowi *); struct dst_entry * (*blackhole_route)(struct net *, struct dst_entry *); }; 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; }; struct rtgenmsg { unsigned char rtgen_family; }; struct fib6_dump_arg { struct net *net; struct notifier_block *nb; struct netlink_ext_ack *extack; }; struct lookup_args { int offset; const struct in6_addr *addr; }; 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 calipso_map_cache_bkt { spinlock_t lock; u32 size; struct list_head list; }; struct calipso_doi; struct netlbl_calipso_ops { int (*doi_add)(struct calipso_doi *, struct netlbl_audit *); void (*doi_free)(struct calipso_doi *); int (*doi_remove)(u32, struct netlbl_audit *); struct calipso_doi * (*doi_getdef)(u32); void (*doi_putdef)(struct calipso_doi *); int (*doi_walk)(u32 *, int (*)(struct calipso_doi *, void *), void *); int (*sock_getattr)(struct sock *, struct netlbl_lsm_secattr *); int (*sock_setattr)(struct sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *); void (*sock_delattr)(struct sock *); int (*req_setattr)(struct request_sock *, const struct calipso_doi *, const struct netlbl_lsm_secattr *); void (*req_delattr)(struct request_sock *); int (*opt_getattr)(const unsigned char *, struct netlbl_lsm_secattr *); unsigned char * (*skbuff_optptr)(const struct sk_buff *); int (*skbuff_setattr)(struct sk_buff *, const struct calipso_doi *, const struct netlbl_lsm_secattr *); int (*skbuff_delattr)(struct sk_buff *); void (*cache_invalidate)(); int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *); }; struct calipso_doi { u32 doi; u32 type; refcount_t refcount; struct list_head list; struct callback_head rcu; }; struct calipso_map_cache_entry { u32 hash; unsigned char *key; size_t key_len; struct netlbl_lsm_cache *lsm_data; u32 activity; struct list_head list; }; enum { NLBL_CALIPSO_A_UNSPEC = 0, NLBL_CALIPSO_A_DOI = 1, NLBL_CALIPSO_A_MTYPE = 2, __NLBL_CALIPSO_A_MAX = 3, }; enum { NLBL_CALIPSO_C_UNSPEC = 0, NLBL_CALIPSO_C_ADD = 1, NLBL_CALIPSO_C_REMOVE = 2, NLBL_CALIPSO_C_LIST = 3, NLBL_CALIPSO_C_LISTALL = 4, __NLBL_CALIPSO_C_MAX = 5, }; struct netlbl_domaddr_map; struct cipso_v4_doi; struct netlbl_dommap_def { u32 type; union { struct netlbl_domaddr_map *addrsel; struct cipso_v4_doi *cipso; struct calipso_doi *calipso; }; }; struct netlbl_dom_map { char *domain; u16 family; struct netlbl_dommap_def def; u32 valid; struct list_head list; struct callback_head rcu; }; struct netlbl_domaddr_map { struct list_head list4; struct list_head list6; }; struct netlbl_domhsh_walk_arg { struct netlbl_audit *audit_info; u32 doi; }; struct netlbl_calipso_doiwalk_arg { struct netlink_callback *nl_cb; struct sk_buff *skb; u32 seq; }; enum ctx_state { CONTEXT_DISABLED = -1, CONTEXT_KERNEL = 0, CONTEXT_IDLE = 1, CONTEXT_USER = 2, CONTEXT_GUEST = 3, CONTEXT_MAX = 4, }; struct warn_args; typedef void (*btf_trace_emulate_vsyscall)(void *, int); enum { EMULATE = 0, XONLY = 1, NONE___2 = 2, }; struct trace_event_raw_emulate_vsyscall { struct trace_entry ent; int nr; char __data[0]; }; struct trace_event_data_offsets_emulate_vsyscall {}; 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_regs_done { struct cpuid_regs regs; struct completion done; }; 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 compat_tms { compat_clock_t tms_utime; compat_clock_t tms_stime; compat_clock_t tms_cutime; compat_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 compat_rlimit { compat_ulong_t rlim_cur; compat_ulong_t rlim_max; }; struct rlimit64 { __u64 rlim_cur; __u64 rlim_max; }; 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 compat_rusage { struct old_timeval32 ru_utime; struct old_timeval32 ru_stime; compat_long_t ru_maxrss; compat_long_t ru_ixrss; compat_long_t ru_idrss; compat_long_t ru_isrss; compat_long_t ru_minflt; compat_long_t ru_majflt; compat_long_t ru_nswap; compat_long_t ru_inblock; compat_long_t ru_oublock; compat_long_t ru_msgsnd; compat_long_t ru_msgrcv; compat_long_t ru_nsignals; compat_long_t ru_nvcsw; compat_long_t ru_nivcsw; }; struct getcpu_cache { unsigned long blob[16]; }; struct compat_sysinfo { s32 uptime; u32 loads[3]; u32 totalram; u32 freeram; u32 sharedram; u32 bufferram; u32 totalswap; u32 freeswap; u16 procs; u16 pad; u32 totalhigh; u32 freehigh; u32 mem_unit; char _f[8]; }; 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; }; typedef int (*proc_visitor)(struct task_struct *, void *); struct cfd_percpu; struct call_function_data { struct cfd_percpu __attribute__((btf_type_tag("percpu"))) *pcpu; cpumask_var_t cpumask; cpumask_var_t cpumask_ipi; }; struct cfd_percpu { call_single_data_t csd; }; struct smp_call_on_cpu_struct { struct work_struct work; struct completion done; int (*func)(void *); void *data; int ret; int cpu; }; 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)); struct fgraph_ops { trace_func_graph_ent_t entryfunc; trace_func_graph_ret_t retfunc; }; struct bpf_bloom_filter { struct bpf_map map; u32 bitset_mask; u32 hash_seed; u32 aligned_u32_count; u32 nr_hash_funcs; unsigned long bitset[0]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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); struct bpf_perf_event_data_kern; typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); typedef struct pt_regs bpf_user_pt_regs_t; struct bpf_perf_event_data_kern { bpf_user_pt_regs_t *regs; struct perf_sample_data *data; struct perf_event *event; }; 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 pcpu_freelist_node; struct pcpu_freelist_head { struct pcpu_freelist_node *first; raw_spinlock_t lock; }; struct pcpu_freelist { struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; struct pcpu_freelist_head extralist; }; 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]; long: 64; long: 64; long: 64; }; struct pcpu_freelist_node { struct pcpu_freelist_node *next; }; 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; }; 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 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 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 fat_floppy_defaults { unsigned int nr_sectors; unsigned int sec_per_clus; unsigned int dir_entries; unsigned int media; unsigned int fat_length; }; enum { DIO_LOCKING = 1, DIO_SKIP_HOLES = 2, }; enum { Opt_check_n = 0, Opt_check_r = 1, Opt_check_s = 2, Opt_uid___4 = 3, Opt_gid___5 = 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___4 = 41, Opt_dos1xfloppy = 42, }; 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 *); typedef void dio_submit_t(struct bio *, struct inode *, loff_t); enum nfs3_ftype { NF3NON = 0, NF3REG = 1, NF3DIR = 2, NF3BLK = 3, NF3CHR = 4, NF3LNK = 5, NF3SOCK = 6, NF3FIFO = 7, NF3BAD = 8, }; enum nfs3_createmode { NFS3_CREATE_UNCHECKED = 0, NFS3_CREATE_GUARDED = 1, NFS3_CREATE_EXCLUSIVE = 2, }; struct nfs3_sattrargs { struct nfs_fh *fh; struct iattr *sattr; unsigned int guard; struct timespec64 guardtime; }; struct nfs3_accessargs { struct nfs_fh *fh; __u32 access; }; struct nfs3_createargs { struct nfs_fh *fh; const char *name; unsigned int len; struct iattr *sattr; enum nfs3_createmode createmode; __be32 verifier[2]; }; struct nfs3_diropres { struct nfs_fattr *dir_attr; struct nfs_fh *fh; struct nfs_fattr *fattr; }; struct nfs3_symlinkargs { struct nfs_fh *fromfh; const char *fromname; unsigned int fromlen; struct page **pages; unsigned int pathlen; struct iattr *sattr; }; struct nfs3_mknodargs { struct nfs_fh *fh; const char *name; unsigned int len; enum nfs3_ftype type; struct iattr *sattr; dev_t rdev; }; struct nfs3_readdirargs { struct nfs_fh *fh; __u64 cookie; __be32 verf[2]; bool plus; unsigned int count; struct page **pages; }; struct nfs3_readdirres { struct nfs_fattr *dir_attr; __be32 *verf; bool plus; }; struct nfs3_diropargs { struct nfs_fh *fh; const char *name; unsigned int len; }; struct nfs3_accessres { struct nfs_fattr *fattr; __u32 access; }; struct nfs3_readlinkargs { struct nfs_fh *fh; unsigned int pgbase; unsigned int pglen; struct page **pages; }; struct nfs3_mkdirargs { struct nfs_fh *fh; const char *name; unsigned int len; struct iattr *sattr; }; struct nfs3_linkargs { struct nfs_fh *fromfh; struct nfs_fh *tofh; const char *toname; unsigned int tolen; }; struct nfs3_linkres { struct nfs_fattr *dir_attr; struct nfs_fattr *fattr; }; struct getdents_callback { struct dir_context ctx; char *name; u64 ino; int found; int sequence; }; struct security_hook_heads { struct hlist_head binder_set_context_mgr; struct hlist_head binder_transaction; struct hlist_head binder_transfer_binder; struct hlist_head binder_transfer_file; struct hlist_head ptrace_access_check; struct hlist_head ptrace_traceme; struct hlist_head capget; struct hlist_head capset; struct hlist_head capable; struct hlist_head quotactl; struct hlist_head quota_on; struct hlist_head syslog; struct hlist_head settime; struct hlist_head vm_enough_memory; struct hlist_head bprm_creds_for_exec; struct hlist_head bprm_creds_from_file; struct hlist_head bprm_check_security; struct hlist_head bprm_committing_creds; struct hlist_head bprm_committed_creds; struct hlist_head fs_context_dup; struct hlist_head fs_context_parse_param; struct hlist_head sb_alloc_security; struct hlist_head sb_delete; struct hlist_head sb_free_security; struct hlist_head sb_free_mnt_opts; struct hlist_head sb_eat_lsm_opts; struct hlist_head sb_mnt_opts_compat; struct hlist_head sb_remount; struct hlist_head sb_kern_mount; struct hlist_head sb_show_options; struct hlist_head sb_statfs; struct hlist_head sb_mount; struct hlist_head sb_umount; struct hlist_head sb_pivotroot; struct hlist_head sb_set_mnt_opts; struct hlist_head sb_clone_mnt_opts; struct hlist_head move_mount; struct hlist_head dentry_init_security; struct hlist_head dentry_create_files_as; struct hlist_head path_notify; struct hlist_head inode_alloc_security; struct hlist_head inode_free_security; struct hlist_head inode_init_security; struct hlist_head inode_init_security_anon; struct hlist_head inode_create; struct hlist_head inode_link; struct hlist_head inode_unlink; struct hlist_head inode_symlink; struct hlist_head inode_mkdir; struct hlist_head inode_rmdir; struct hlist_head inode_mknod; struct hlist_head inode_rename; struct hlist_head inode_readlink; struct hlist_head inode_follow_link; struct hlist_head inode_permission; struct hlist_head inode_setattr; struct hlist_head inode_getattr; struct hlist_head inode_setxattr; struct hlist_head inode_post_setxattr; struct hlist_head inode_getxattr; struct hlist_head inode_listxattr; struct hlist_head inode_removexattr; struct hlist_head inode_set_acl; struct hlist_head inode_get_acl; struct hlist_head inode_remove_acl; struct hlist_head inode_need_killpriv; struct hlist_head inode_killpriv; struct hlist_head inode_getsecurity; struct hlist_head inode_setsecurity; struct hlist_head inode_listsecurity; struct hlist_head inode_getsecid; struct hlist_head inode_copy_up; struct hlist_head inode_copy_up_xattr; struct hlist_head kernfs_init_security; struct hlist_head file_permission; struct hlist_head file_alloc_security; struct hlist_head file_free_security; struct hlist_head file_ioctl; struct hlist_head mmap_addr; struct hlist_head mmap_file; struct hlist_head file_mprotect; struct hlist_head file_lock; struct hlist_head file_fcntl; struct hlist_head file_set_fowner; struct hlist_head file_send_sigiotask; struct hlist_head file_receive; struct hlist_head file_open; struct hlist_head file_truncate; struct hlist_head task_alloc; struct hlist_head task_free; struct hlist_head cred_alloc_blank; struct hlist_head cred_free; struct hlist_head cred_prepare; struct hlist_head cred_transfer; struct hlist_head cred_getsecid; struct hlist_head kernel_act_as; struct hlist_head kernel_create_files_as; struct hlist_head kernel_module_request; struct hlist_head kernel_load_data; struct hlist_head kernel_post_load_data; struct hlist_head kernel_read_file; struct hlist_head kernel_post_read_file; struct hlist_head task_fix_setuid; struct hlist_head task_fix_setgid; struct hlist_head task_fix_setgroups; struct hlist_head task_setpgid; struct hlist_head task_getpgid; struct hlist_head task_getsid; struct hlist_head current_getsecid_subj; struct hlist_head task_getsecid_obj; struct hlist_head task_setnice; struct hlist_head task_setioprio; struct hlist_head task_getioprio; struct hlist_head task_prlimit; struct hlist_head task_setrlimit; struct hlist_head task_setscheduler; struct hlist_head task_getscheduler; struct hlist_head task_movememory; struct hlist_head task_kill; struct hlist_head task_prctl; struct hlist_head task_to_inode; struct hlist_head userns_create; struct hlist_head ipc_permission; struct hlist_head ipc_getsecid; struct hlist_head msg_msg_alloc_security; struct hlist_head msg_msg_free_security; struct hlist_head msg_queue_alloc_security; struct hlist_head msg_queue_free_security; struct hlist_head msg_queue_associate; struct hlist_head msg_queue_msgctl; struct hlist_head msg_queue_msgsnd; struct hlist_head msg_queue_msgrcv; struct hlist_head shm_alloc_security; struct hlist_head shm_free_security; struct hlist_head shm_associate; struct hlist_head shm_shmctl; struct hlist_head shm_shmat; struct hlist_head sem_alloc_security; struct hlist_head sem_free_security; struct hlist_head sem_associate; struct hlist_head sem_semctl; struct hlist_head sem_semop; struct hlist_head netlink_send; struct hlist_head d_instantiate; struct hlist_head getprocattr; struct hlist_head setprocattr; struct hlist_head ismaclabel; struct hlist_head secid_to_secctx; struct hlist_head secctx_to_secid; struct hlist_head release_secctx; struct hlist_head inode_invalidate_secctx; struct hlist_head inode_notifysecctx; struct hlist_head inode_setsecctx; struct hlist_head inode_getsecctx; struct hlist_head unix_stream_connect; struct hlist_head unix_may_send; struct hlist_head socket_create; struct hlist_head socket_post_create; struct hlist_head socket_socketpair; struct hlist_head socket_bind; struct hlist_head socket_connect; struct hlist_head socket_listen; struct hlist_head socket_accept; struct hlist_head socket_sendmsg; struct hlist_head socket_recvmsg; struct hlist_head socket_getsockname; struct hlist_head socket_getpeername; struct hlist_head socket_getsockopt; struct hlist_head socket_setsockopt; struct hlist_head socket_shutdown; struct hlist_head socket_sock_rcv_skb; struct hlist_head socket_getpeersec_stream; struct hlist_head socket_getpeersec_dgram; struct hlist_head sk_alloc_security; struct hlist_head sk_free_security; struct hlist_head sk_clone_security; struct hlist_head sk_getsecid; struct hlist_head sock_graft; struct hlist_head inet_conn_request; struct hlist_head inet_csk_clone; struct hlist_head inet_conn_established; struct hlist_head secmark_relabel_packet; struct hlist_head secmark_refcount_inc; struct hlist_head secmark_refcount_dec; struct hlist_head req_classify_flow; struct hlist_head tun_dev_alloc_security; struct hlist_head tun_dev_free_security; struct hlist_head tun_dev_create; struct hlist_head tun_dev_attach_queue; struct hlist_head tun_dev_attach; struct hlist_head tun_dev_open; struct hlist_head sctp_assoc_request; struct hlist_head sctp_bind_connect; struct hlist_head sctp_sk_clone; struct hlist_head sctp_assoc_established; struct hlist_head key_alloc; struct hlist_head key_free; struct hlist_head key_permission; struct hlist_head key_getsecurity; struct hlist_head audit_rule_init; struct hlist_head audit_rule_known; struct hlist_head audit_rule_match; struct hlist_head audit_rule_free; struct hlist_head bpf; struct hlist_head bpf_map; struct hlist_head bpf_prog; struct hlist_head bpf_map_alloc_security; struct hlist_head bpf_map_free_security; struct hlist_head bpf_prog_alloc_security; struct hlist_head bpf_prog_free_security; struct hlist_head locked_down; struct hlist_head perf_event_open; struct hlist_head perf_event_alloc; struct hlist_head perf_event_free; struct hlist_head perf_event_read; struct hlist_head perf_event_write; struct hlist_head uring_override_creds; struct hlist_head uring_sqpoll; struct hlist_head uring_cmd; }; enum lsm_order { LSM_ORDER_FIRST = -1, LSM_ORDER_MUTABLE = 0, }; struct lsm_blob_sizes; struct lsm_info { const char *name; enum lsm_order order; unsigned long flags; int *enabled; int (*init)(); struct lsm_blob_sizes *blobs; }; struct lsm_blob_sizes { int lbs_cred; int lbs_file; int lbs_inode; int lbs_superblock; int lbs_ipc; int lbs_msg_msg; int lbs_task; }; struct sctp_association; union security_list_options { int (*binder_set_context_mgr)(const struct cred *); int (*binder_transaction)(const struct cred *, const struct cred *); int (*binder_transfer_binder)(const struct cred *, const struct cred *); int (*binder_transfer_file)(const struct cred *, const struct cred *, struct file *); int (*ptrace_access_check)(struct task_struct *, unsigned int); int (*ptrace_traceme)(struct task_struct *); int (*capget)(struct task_struct *, kernel_cap_t *, kernel_cap_t *, kernel_cap_t *); int (*capset)(struct cred *, const struct cred *, const kernel_cap_t *, const kernel_cap_t *, const kernel_cap_t *); int (*capable)(const struct cred *, struct user_namespace *, int, unsigned int); int (*quotactl)(int, int, int, struct super_block *); int (*quota_on)(struct dentry *); int (*syslog)(int); int (*settime)(const struct timespec64 *, const struct timezone *); int (*vm_enough_memory)(struct mm_struct *, long); int (*bprm_creds_for_exec)(struct linux_binprm *); int (*bprm_creds_from_file)(struct linux_binprm *, struct file *); int (*bprm_check_security)(struct linux_binprm *); void (*bprm_committing_creds)(struct linux_binprm *); void (*bprm_committed_creds)(struct linux_binprm *); int (*fs_context_dup)(struct fs_context *, struct fs_context *); int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *); int (*sb_alloc_security)(struct super_block *); void (*sb_delete)(struct super_block *); void (*sb_free_security)(struct super_block *); void (*sb_free_mnt_opts)(void *); int (*sb_eat_lsm_opts)(char *, void **); int (*sb_mnt_opts_compat)(struct super_block *, void *); int (*sb_remount)(struct super_block *, void *); int (*sb_kern_mount)(struct super_block *); int (*sb_show_options)(struct seq_file *, struct super_block *); int (*sb_statfs)(struct dentry *); int (*sb_mount)(const char *, const struct path *, const char *, unsigned long, void *); int (*sb_umount)(struct vfsmount *, int); int (*sb_pivotroot)(const struct path *, const struct path *); int (*sb_set_mnt_opts)(struct super_block *, void *, unsigned long, unsigned long *); int (*sb_clone_mnt_opts)(const struct super_block *, struct super_block *, unsigned long, unsigned long *); int (*move_mount)(const struct path *, const struct path *); int (*dentry_init_security)(struct dentry *, int, const struct qstr *, const char **, void **, u32 *); int (*dentry_create_files_as)(struct dentry *, int, struct qstr *, const struct cred *, struct cred *); int (*path_notify)(const struct path *, u64, unsigned int); int (*inode_alloc_security)(struct inode *); void (*inode_free_security)(struct inode *); int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, const char **, void **, size_t *); int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *); int (*inode_create)(struct inode *, struct dentry *, umode_t); int (*inode_link)(struct dentry *, struct inode *, struct dentry *); int (*inode_unlink)(struct inode *, struct dentry *); int (*inode_symlink)(struct inode *, struct dentry *, const char *); int (*inode_mkdir)(struct inode *, struct dentry *, umode_t); int (*inode_rmdir)(struct inode *, struct dentry *); int (*inode_mknod)(struct inode *, struct dentry *, umode_t, dev_t); int (*inode_rename)(struct inode *, struct dentry *, struct inode *, struct dentry *); int (*inode_readlink)(struct dentry *); int (*inode_follow_link)(struct dentry *, struct inode *, bool); int (*inode_permission)(struct inode *, int); int (*inode_setattr)(struct dentry *, struct iattr *); int (*inode_getattr)(const struct path *); int (*inode_setxattr)(struct mnt_idmap *, struct dentry *, const char *, const void *, size_t, int); void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int); int (*inode_getxattr)(struct dentry *, const char *); int (*inode_listxattr)(struct dentry *); int (*inode_removexattr)(struct mnt_idmap *, struct dentry *, const char *); int (*inode_set_acl)(struct mnt_idmap *, struct dentry *, const char *, struct posix_acl *); int (*inode_get_acl)(struct mnt_idmap *, struct dentry *, const char *); int (*inode_remove_acl)(struct mnt_idmap *, struct dentry *, const char *); int (*inode_need_killpriv)(struct dentry *); int (*inode_killpriv)(struct mnt_idmap *, struct dentry *); int (*inode_getsecurity)(struct mnt_idmap *, struct inode *, const char *, void **, bool); int (*inode_setsecurity)(struct inode *, const char *, const void *, size_t, int); int (*inode_listsecurity)(struct inode *, char *, size_t); void (*inode_getsecid)(struct inode *, u32 *); int (*inode_copy_up)(struct dentry *, struct cred **); int (*inode_copy_up_xattr)(const char *); int (*kernfs_init_security)(struct kernfs_node *, struct kernfs_node *); int (*file_permission)(struct file *, int); int (*file_alloc_security)(struct file *); void (*file_free_security)(struct file *); int (*file_ioctl)(struct file *, unsigned int, unsigned long); int (*mmap_addr)(unsigned long); int (*mmap_file)(struct file *, unsigned long, unsigned long, unsigned long); int (*file_mprotect)(struct vm_area_struct *, unsigned long, unsigned long); int (*file_lock)(struct file *, unsigned int); int (*file_fcntl)(struct file *, unsigned int, unsigned long); void (*file_set_fowner)(struct file *); int (*file_send_sigiotask)(struct task_struct *, struct fown_struct *, int); int (*file_receive)(struct file *); int (*file_open)(struct file *); int (*file_truncate)(struct file *); int (*task_alloc)(struct task_struct *, unsigned long); void (*task_free)(struct task_struct *); int (*cred_alloc_blank)(struct cred *, gfp_t); void (*cred_free)(struct cred *); int (*cred_prepare)(struct cred *, const struct cred *, gfp_t); void (*cred_transfer)(struct cred *, const struct cred *); void (*cred_getsecid)(const struct cred *, u32 *); int (*kernel_act_as)(struct cred *, u32); int (*kernel_create_files_as)(struct cred *, struct inode *); int (*kernel_module_request)(char *); int (*kernel_load_data)(enum kernel_load_data_id, bool); int (*kernel_post_load_data)(char *, loff_t, enum kernel_load_data_id, char *); int (*kernel_read_file)(struct file *, enum kernel_read_file_id, bool); int (*kernel_post_read_file)(struct file *, char *, loff_t, enum kernel_read_file_id); int (*task_fix_setuid)(struct cred *, const struct cred *, int); int (*task_fix_setgid)(struct cred *, const struct cred *, int); int (*task_fix_setgroups)(struct cred *, const struct cred *); int (*task_setpgid)(struct task_struct *, pid_t); int (*task_getpgid)(struct task_struct *); int (*task_getsid)(struct task_struct *); void (*current_getsecid_subj)(u32 *); void (*task_getsecid_obj)(struct task_struct *, u32 *); int (*task_setnice)(struct task_struct *, int); int (*task_setioprio)(struct task_struct *, int); int (*task_getioprio)(struct task_struct *); int (*task_prlimit)(const struct cred *, const struct cred *, unsigned int); int (*task_setrlimit)(struct task_struct *, unsigned int, struct rlimit *); int (*task_setscheduler)(struct task_struct *); int (*task_getscheduler)(struct task_struct *); int (*task_movememory)(struct task_struct *); int (*task_kill)(struct task_struct *, struct kernel_siginfo *, int, const struct cred *); int (*task_prctl)(int, unsigned long, unsigned long, unsigned long, unsigned long); void (*task_to_inode)(struct task_struct *, struct inode *); int (*userns_create)(const struct cred *); int (*ipc_permission)(struct kern_ipc_perm *, short); void (*ipc_getsecid)(struct kern_ipc_perm *, u32 *); int (*msg_msg_alloc_security)(struct msg_msg *); void (*msg_msg_free_security)(struct msg_msg *); int (*msg_queue_alloc_security)(struct kern_ipc_perm *); void (*msg_queue_free_security)(struct kern_ipc_perm *); int (*msg_queue_associate)(struct kern_ipc_perm *, int); int (*msg_queue_msgctl)(struct kern_ipc_perm *, int); int (*msg_queue_msgsnd)(struct kern_ipc_perm *, struct msg_msg *, int); int (*msg_queue_msgrcv)(struct kern_ipc_perm *, struct msg_msg *, struct task_struct *, long, int); int (*shm_alloc_security)(struct kern_ipc_perm *); void (*shm_free_security)(struct kern_ipc_perm *); int (*shm_associate)(struct kern_ipc_perm *, int); int (*shm_shmctl)(struct kern_ipc_perm *, int); int (*shm_shmat)(struct kern_ipc_perm *, char __attribute__((btf_type_tag("user"))) *, int); int (*sem_alloc_security)(struct kern_ipc_perm *); void (*sem_free_security)(struct kern_ipc_perm *); int (*sem_associate)(struct kern_ipc_perm *, int); int (*sem_semctl)(struct kern_ipc_perm *, int); int (*sem_semop)(struct kern_ipc_perm *, struct sembuf *, unsigned int, int); int (*netlink_send)(struct sock *, struct sk_buff *); void (*d_instantiate)(struct dentry *, struct inode *); int (*getprocattr)(struct task_struct *, const char *, char **); int (*setprocattr)(const char *, void *, size_t); int (*ismaclabel)(const char *); int (*secid_to_secctx)(u32, char **, u32 *); int (*secctx_to_secid)(const char *, u32, u32 *); void (*release_secctx)(char *, u32); void (*inode_invalidate_secctx)(struct inode *); int (*inode_notifysecctx)(struct inode *, void *, u32); int (*inode_setsecctx)(struct dentry *, void *, u32); int (*inode_getsecctx)(struct inode *, void **, u32 *); int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *); int (*unix_may_send)(struct socket *, struct socket *); int (*socket_create)(int, int, int, int); int (*socket_post_create)(struct socket *, int, int, int, int); int (*socket_socketpair)(struct socket *, struct socket *); int (*socket_bind)(struct socket *, struct sockaddr *, int); int (*socket_connect)(struct socket *, struct sockaddr *, int); int (*socket_listen)(struct socket *, int); int (*socket_accept)(struct socket *, struct socket *); int (*socket_sendmsg)(struct socket *, struct msghdr *, int); int (*socket_recvmsg)(struct socket *, struct msghdr *, int, int); int (*socket_getsockname)(struct socket *); int (*socket_getpeername)(struct socket *); int (*socket_getsockopt)(struct socket *, int, int); int (*socket_setsockopt)(struct socket *, int, int); int (*socket_shutdown)(struct socket *, int); int (*socket_sock_rcv_skb)(struct sock *, struct sk_buff *); int (*socket_getpeersec_stream)(struct socket *, sockptr_t, sockptr_t, unsigned int); int (*socket_getpeersec_dgram)(struct socket *, struct sk_buff *, u32 *); int (*sk_alloc_security)(struct sock *, int, gfp_t); void (*sk_free_security)(struct sock *); void (*sk_clone_security)(const struct sock *, struct sock *); void (*sk_getsecid)(struct sock *, u32 *); void (*sock_graft)(struct sock *, struct socket *); int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *); void (*inet_csk_clone)(struct sock *, const struct request_sock *); void (*inet_conn_established)(struct sock *, struct sk_buff *); int (*secmark_relabel_packet)(u32); void (*secmark_refcount_inc)(); void (*secmark_refcount_dec)(); void (*req_classify_flow)(const struct request_sock *, struct flowi_common *); int (*tun_dev_alloc_security)(void **); void (*tun_dev_free_security)(void *); int (*tun_dev_create)(); int (*tun_dev_attach_queue)(void *); int (*tun_dev_attach)(struct sock *, void *); int (*tun_dev_open)(void *); int (*sctp_assoc_request)(struct sctp_association *, struct sk_buff *); int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int); void (*sctp_sk_clone)(struct sctp_association *, struct sock *, struct sock *); int (*sctp_assoc_established)(struct sctp_association *, struct sk_buff *); int (*key_alloc)(struct key *, const struct cred *, unsigned long); void (*key_free)(struct key *); int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm); int (*key_getsecurity)(struct key *, char **); int (*audit_rule_init)(u32, u32, char *, void **); int (*audit_rule_known)(struct audit_krule *); int (*audit_rule_match)(u32, u32, u32, void *); void (*audit_rule_free)(void *); int (*bpf)(int, union bpf_attr *, unsigned int); int (*bpf_map)(struct bpf_map *, fmode_t); int (*bpf_prog)(struct bpf_prog *); int (*bpf_map_alloc_security)(struct bpf_map *); void (*bpf_map_free_security)(struct bpf_map *); int (*bpf_prog_alloc_security)(struct bpf_prog_aux *); void (*bpf_prog_free_security)(struct bpf_prog_aux *); int (*locked_down)(enum lockdown_reason); int (*perf_event_open)(struct perf_event_attr *, int); int (*perf_event_alloc)(struct perf_event *); void (*perf_event_free)(struct perf_event *); int (*perf_event_read)(struct perf_event *); int (*perf_event_write)(struct perf_event *); int (*uring_override_creds)(const struct cred *); int (*uring_sqpoll)(); int (*uring_cmd)(struct io_uring_cmd *); }; struct security_hook_list { struct hlist_node list; struct hlist_head *head; union security_list_options hook; const char *lsm; }; struct crypto_comp { struct crypto_tfm base; }; 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 crypto_report_blkcipher { char type[64]; char geniv[64]; unsigned int blocksize; unsigned int min_keysize; unsigned int max_keysize; unsigned int ivsize; }; 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 io_sync { struct file *file; loff_t len; loff_t off; int flags; int mode; }; 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_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, }; enum { IO_WQ_BIT_EXIT = 0, }; enum { IO_ACCT_STALLED_BIT = 0, }; struct io_wqe; 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_wqe *wqe; 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 struct io_wq_work *free_work_fn(struct io_wq_work *); typedef void io_wq_work_fn(struct io_wq_work *); 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_wqe *wqes[0]; }; struct io_wqe_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_wqe { raw_spinlock_t lock; struct io_wqe_acct acct[2]; int node; struct hlist_nulls_head free_list; struct list_head all_list; struct wait_queue_entry wait; struct io_wq *wq; struct io_wq_work *hash_tail[64]; cpumask_var_t cpu_mask; }; 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; }; enum pci_bar_type { pci_bar_unknown = 0, pci_bar_io = 1, pci_bar_mem32 = 2, pci_bar_mem64 = 3, }; 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 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, }; struct pci_domain_busn_res { struct list_head list; struct resource res; int domain_nr; }; struct acpi_processor_errata { u8 smp; struct { u8 throttle: 1; u8 fdma: 1; u8 reserved: 6; u32 bmisx; } piix4; }; 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 memdev { const char *name; umode_t mode; const struct file_operations *fops; fmode_t fmode; }; 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; loff_t pos; loff_t *opos; size_t num_spliced; bool need_wakeup; }; struct tis_vendor_timeout_override { u32 did_vid; unsigned long timeout_us[4]; }; struct tis_vendor_durations_override { u32 did_vid; struct tpm1_version version; unsigned long durations[3]; }; enum tpm_tis_io_mode { TPM_TIS_PHYS_8 = 0, TPM_TIS_PHYS_16 = 1, TPM_TIS_PHYS_32 = 2, }; enum tis_int_flags { TPM_GLOBAL_INT_ENABLE = 2147483648, TPM_INTF_BURST_COUNT_STATIC = 256, TPM_INTF_CMD_READY_INT = 128, TPM_INTF_INT_EDGE_FALLING = 64, TPM_INTF_INT_EDGE_RISING = 32, TPM_INTF_INT_LEVEL_LOW = 16, TPM_INTF_INT_LEVEL_HIGH = 8, TPM_INTF_LOCALITY_CHANGE_INT = 4, TPM_INTF_STS_VALID_INT = 2, TPM_INTF_DATA_AVAIL_INT = 1, }; enum tis_defaults { TIS_MEM_LEN = 20480, TIS_SHORT_TIMEOUT = 750, TIS_LONG_TIMEOUT = 2000, TIS_TIMEOUT_MIN_ATML = 14700, TIS_TIMEOUT_MAX_ATML = 15000, }; enum tpm_tis_flags { TPM_TIS_ITPM_WORKAROUND = 1, TPM_TIS_INVALID_STATUS = 2, TPM_TIS_DEFAULT_CANCELLATION = 4, }; enum tis_status { TPM_STS_VALID = 128, TPM_STS_COMMAND_READY = 64, TPM_STS_GO = 32, TPM_STS_DATA_AVAIL = 16, TPM_STS_DATA_EXPECT = 8, TPM_STS_READ_ZERO = 35, }; enum tis_access { TPM_ACCESS_VALID = 128, TPM_ACCESS_ACTIVE_LOCALITY = 32, TPM_ACCESS_REQUEST_PENDING = 4, TPM_ACCESS_REQUEST_USE = 2, }; struct tpm_tis_phy_ops; struct tpm_tis_data { u16 manufacturer_id; int locality; int irq; bool irq_tested; unsigned long flags; void *ilb_base_addr; u16 clkrun_enabled; wait_queue_head_t int_queue; wait_queue_head_t read_queue; const struct tpm_tis_phy_ops *phy_ops; unsigned short rng_quality; unsigned int timeout_min; unsigned int timeout_max; }; struct tpm_tis_phy_ops { int (*read_bytes)(struct tpm_tis_data *, u32, u16, u8 *, enum tpm_tis_io_mode); int (*write_bytes)(struct tpm_tis_data *, u32, u16, const u8 *, enum tpm_tis_io_mode); int (*verify_crc)(struct tpm_tis_data *, size_t, const u8 *); }; struct drm_out_fence_state { s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; struct sync_file *sync_file; int fd; }; struct drm_mode_atomic { __u32 flags; __u32 count_objs; __u64 objs_ptr; __u64 count_props_ptr; __u64 props_ptr; __u64 prop_values_ptr; __u64 reserved; __u64 user_data; }; struct drm_dp_mst_atomic_payload { struct drm_dp_mst_port *port; s8 vc_start_slot; u8 vcpi; int time_slots; int pbn; bool delete: 1; bool dsc_enabled: 1; struct list_head next; }; struct drm_dp_mst_topology_state { struct drm_private_state base; struct drm_dp_mst_topology_mgr *mgr; u32 pending_crtc_mask; struct drm_crtc_commit **commit_deps; size_t num_commit_deps; u32 payload_mask; struct list_head payloads; u8 total_avail_slots; u8 start_slot; int pbn_div; }; struct drm_dp_nak_reply { u8 guid[16]; u8 reason; u8 nak_data; }; struct drm_dp_link_addr_reply_port { bool input_port; u8 peer_device_type; u8 port_number; bool mcs; bool ddps; bool legacy_device_plug_status; u8 dpcd_revision; u8 peer_guid[16]; u8 num_sdp_streams; u8 num_sdp_stream_sinks; }; struct drm_dp_link_address_ack_reply { u8 guid[16]; u8 nports; struct drm_dp_link_addr_reply_port ports[16]; }; struct drm_dp_port_number_rep { u8 port_number; }; struct drm_dp_enum_path_resources_ack_reply { u8 port_number; bool fec_capable; u16 full_payload_bw_number; u16 avail_payload_bw_number; }; struct drm_dp_allocate_payload_ack_reply { u8 port_number; u8 vcpi; u16 allocated_pbn; }; struct drm_dp_query_payload_ack_reply { u8 port_number; u16 allocated_pbn; }; struct drm_dp_remote_dpcd_read_ack_reply { u8 port_number; u8 num_bytes; u8 bytes[255]; }; struct drm_dp_remote_dpcd_write_ack_reply { u8 port_number; }; struct drm_dp_remote_dpcd_write_nak_reply { u8 port_number; u8 reason; u8 bytes_written_before_failure; }; struct drm_dp_remote_i2c_read_ack_reply { u8 port_number; u8 num_bytes; u8 bytes[255]; }; struct drm_dp_remote_i2c_read_nak_reply { u8 port_number; u8 nak_reason; u8 i2c_nak_transaction; }; struct drm_dp_remote_i2c_write_ack_reply { u8 port_number; }; struct drm_dp_query_stream_enc_status_ack_reply { u8 stream_id; bool reply_signed; bool unauthorizable_device_present; bool legacy_device_present; bool query_capable_device_present; bool hdcp_1x_device_present; bool hdcp_2x_device_present; bool auth_completed; bool encryption_enabled; bool repeater_present; u8 state; }; union ack_replies { struct drm_dp_nak_reply nak; struct drm_dp_link_address_ack_reply link_addr; struct drm_dp_port_number_rep port_number; struct drm_dp_enum_path_resources_ack_reply path_resources; struct drm_dp_allocate_payload_ack_reply allocate_payload; struct drm_dp_query_payload_ack_reply query_payload; struct drm_dp_remote_dpcd_read_ack_reply remote_dpcd_read_ack; struct drm_dp_remote_dpcd_write_ack_reply remote_dpcd_write_ack; struct drm_dp_remote_dpcd_write_nak_reply remote_dpcd_write_nack; struct drm_dp_remote_i2c_read_ack_reply remote_i2c_read_ack; struct drm_dp_remote_i2c_read_nak_reply remote_i2c_read_nack; struct drm_dp_remote_i2c_write_ack_reply remote_i2c_write_ack; struct drm_dp_query_stream_enc_status_ack_reply enc_status; }; struct drm_dp_sideband_msg_reply_body { u8 reply_type; u8 req_type; union ack_replies u; }; struct drm_dp_sideband_msg_tx { u8 msg[256]; u8 chunk[48]; u8 cur_offset; u8 cur_len; struct drm_dp_mst_branch *dst; struct list_head next; int seqno; int state; bool path_msg; struct drm_dp_sideband_msg_reply_body reply; }; struct drm_dp_connection_status_notify { u8 guid[16]; u8 port_number; bool legacy_device_plug_status; bool displayport_device_plug_status; bool message_capability_status; bool input_port; u8 peer_device_type; }; struct drm_dp_port_number_req { u8 port_number; }; struct drm_dp_resource_status_notify { u8 port_number; u8 guid[16]; u16 available_pbn; }; struct drm_dp_query_payload { u8 port_number; u8 vcpi; }; struct drm_dp_allocate_payload { u8 port_number; u8 number_sdp_streams; u8 vcpi; u16 pbn; u8 sdp_stream_sink[16]; }; struct drm_dp_remote_dpcd_read { u8 port_number; u32 dpcd_address; u8 num_bytes; }; struct drm_dp_remote_dpcd_write { u8 port_number; u32 dpcd_address; u8 num_bytes; u8 *bytes; }; struct drm_dp_remote_i2c_read_tx { u8 i2c_dev_id; u8 num_bytes; u8 *bytes; u8 no_stop_bit; u8 i2c_transaction_delay; }; struct drm_dp_remote_i2c_read { u8 num_transactions; u8 port_number; struct drm_dp_remote_i2c_read_tx transactions[4]; u8 read_i2c_device_id; u8 num_bytes_read; }; struct drm_dp_remote_i2c_write { u8 port_number; u8 write_i2c_device_id; u8 num_bytes; u8 *bytes; }; struct drm_dp_query_stream_enc_status { u8 stream_id; u8 client_id[7]; u8 stream_event; bool valid_stream_event; u8 stream_behavior; u8 valid_stream_behavior; }; union ack_req { struct drm_dp_connection_status_notify conn_stat; struct drm_dp_port_number_req port_num; struct drm_dp_resource_status_notify resource_stat; struct drm_dp_query_payload query_payload; struct drm_dp_allocate_payload allocate_payload; struct drm_dp_remote_dpcd_read dpcd_read; struct drm_dp_remote_dpcd_write dpcd_write; struct drm_dp_remote_i2c_read i2c_read; struct drm_dp_remote_i2c_write i2c_write; struct drm_dp_query_stream_enc_status enc_status; }; struct drm_dp_sideband_msg_req_body { u8 req_type; union ack_req u; }; struct drm_dp_pending_up_req { struct drm_dp_sideband_msg_hdr hdr; struct drm_dp_sideband_msg_req_body msg; struct list_head next; }; enum drm_i915_pmu_engine_sample { I915_SAMPLE_BUSY = 0, I915_SAMPLE_WAIT = 1, I915_SAMPLE_SEMA = 2, }; enum { __I915_SAMPLE_FREQ_ACT = 0, __I915_SAMPLE_FREQ_REQ = 1, __I915_SAMPLE_RC6 = 2, __I915_SAMPLE_RC6_LAST_REPORTED = 3, __I915_NUM_PMU_SAMPLERS = 4, }; enum i915_pmu_tracked_events { __I915_PMU_ACTUAL_FREQUENCY_ENABLED = 0, __I915_PMU_REQUESTED_FREQUENCY_ENABLED = 1, __I915_PMU_RC6_RESIDENCY_ENABLED = 2, __I915_PMU_TRACKED_EVENT_COUNT = 3, }; struct i915_str_attribute { struct device_attribute attr; const char *str; }; struct i915_ext_attribute { struct device_attribute attr; unsigned long val; }; struct i915_gem_ttm_pm_apply { struct i915_gem_apply_to_region base; bool allow_gpu: 1; bool backup_pinned: 1; }; struct gsc_def { const char *name; unsigned long bar; size_t bar_size; bool use_polling; bool slow_firmware; size_t lmem_size; }; struct auxiliary_device { struct device dev; const char *name; u32 id; }; struct mei_aux_device { struct auxiliary_device aux_dev; int irq; struct resource bar; struct resource ext_op_mem; bool slow_firmware; }; struct cn_dev { struct cb_id id; u32 seq; u32 groups; struct sock *nls; struct cn_queue_dev *cbdev; }; struct scsi_proc_entry { struct list_head entry; const struct scsi_host_template *sht; struct proc_dir_entry *proc_dir; unsigned int present; }; 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_NONE = 44, }; 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; u32 irq_mask; int irq; struct clk *clk; struct { unsigned long flags[1]; struct work_struct work; } wk; spinlock_t config25_lock; spinlock_t mac_ocp_lock; spinlock_t cfg9346_usage_lock; int cfg9346_usage_count; unsigned int supports_gmii: 1; dma_addr_t counters_phys_addr; struct rtl8169_counters *counters; struct rtl8169_tc_offsets tc_offset; u32 saved_wolopts; int eee_adv; const char *fw_name; struct rtl_fw *rtl_fw; u32 ocp_base; }; 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_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 rtl8168_registers { 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 rtl_registers { MAC0___2 = 0, MAC4 = 4, MAR0___2 = 8, CounterAddrLow = 16, CounterAddrHigh = 20, TxDescStartAddrLow = 32, TxDescStartAddrHigh = 36, TxHDescStartAddrLow = 40, TxHDescStartAddrHigh = 44, FLASH = 48, ERSR = 54, ChipCmd___2 = 55, TxPoll = 56, IntrMask___2 = 60, IntrStatus___2 = 62, TxConfig___2 = 64, RxConfig___2 = 68, Cfg9346___2 = 80, Config0___2 = 81, Config1___2 = 82, Config2 = 83, Config3___2 = 84, Config4___2 = 85, Config5___2 = 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___2 = 16384, SWInt = 256, TxDescUnavail = 128, RxFIFOOver___2 = 64, LinkChg = 32, RxOverflow___2 = 16, TxErr___2 = 8, TxOK___2 = 4, RxErr___2 = 2, RxOK___2 = 1, RxRWT = 4194304, RxRES = 2097152, RxRUNT = 1048576, RxCRC = 524288, StopReq = 128, CmdReset___2 = 16, CmdRxEnb___2 = 8, CmdTxEnb___2 = 4, RxBufEmpty___2 = 1, HPQ = 128, NPQ = 64, FSWInt = 1, Cfg9346_Lock___2 = 0, Cfg9346_Unlock___2 = 192, AcceptErr___2 = 32, AcceptRunt___2 = 16, AcceptBroadcast___2 = 8, AcceptMulticast___2 = 4, AcceptMyPhys___2 = 2, AcceptAllPhys___2 = 1, TxInterFrameGapShift = 24, TxDMAShift___2 = 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_TX_TIMEOUT = 2, RTL_FLAG_MAX = 3, }; enum rtl8125_registers { IntrMask_8125 = 56, IntrStatus_8125 = 60, TxPoll_8125 = 144, 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 swoc_info { __u8 rev; __u8 reserved[8]; __u16 LinuxSKU; __u16 LinuxVer; __u8 reserved2[47]; } __attribute__((packed)); 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 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 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 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_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 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 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, }; 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; int: 32; 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 nf_flowtable; struct action_gate_entry; 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 ethtool_link_usettings { struct ethtool_link_settings base; struct { __u32 supported[4]; __u32 advertising[4]; __u32 lp_advertising[4]; } link_modes; }; struct compat_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; compat_u64 ring_cookie; u32 location; } __attribute__((packed)); struct compat_ethtool_rxnfc { u32 cmd; u32 flow_type; compat_u64 data; struct compat_ethtool_rx_flow_spec fs; u32 rule_cnt; u32 rule_locs[0]; } __attribute__((packed)); 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 rsvd8[3]; __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]; }; struct conntrack_gc_work { struct delayed_work dwork; u32 next_bucket; u32 avg_timeout; u32 count; u32 start_time; bool exiting; bool early_drop; }; 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_conn_tstamp { u_int64_t start; u_int64_t stop; }; struct nf_conn_counter { atomic64_t packets; atomic64_t bytes; }; struct nf_conn_acct { struct nf_conn_counter counter[2]; }; struct nf_conn_labels { unsigned long bits[2]; }; 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); struct mfc_cache_cmp_arg { __be32 mfc_mcastgrp; __be32 mfc_origin; }; enum { IPMRA_CREPORT_UNSPEC = 0, IPMRA_CREPORT_MSGTYPE = 1, IPMRA_CREPORT_VIF_ID = 2, IPMRA_CREPORT_SRC_ADDR = 3, IPMRA_CREPORT_DST_ADDR = 4, IPMRA_CREPORT_PKT = 5, IPMRA_CREPORT_TABLE = 6, __IPMRA_CREPORT_MAX = 7, }; enum { MFC_STATIC = 1, MFC_OFFLOAD = 2, }; 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, }; enum { IPMRA_TABLE_UNSPEC = 0, IPMRA_TABLE_ID = 1, IPMRA_TABLE_CACHE_RES_QUEUE_LEN = 2, IPMRA_TABLE_MROUTE_REG_VIF_NUM = 3, IPMRA_TABLE_MROUTE_DO_ASSERT = 4, IPMRA_TABLE_MROUTE_DO_PIM = 5, IPMRA_TABLE_VIFS = 6, IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE = 7, __IPMRA_TABLE_MAX = 8, }; enum { IPMRA_VIF_UNSPEC = 0, IPMRA_VIF = 1, __IPMRA_VIF_MAX = 2, }; enum { IPMRA_VIFA_UNSPEC = 0, IPMRA_VIFA_IFINDEX = 1, IPMRA_VIFA_VIF_ID = 2, IPMRA_VIFA_FLAGS = 3, IPMRA_VIFA_BYTES_IN = 4, IPMRA_VIFA_BYTES_OUT = 5, IPMRA_VIFA_PACKETS_IN = 6, IPMRA_VIFA_PACKETS_OUT = 7, IPMRA_VIFA_LOCAL_ADDR = 8, IPMRA_VIFA_REMOTE_ADDR = 9, IPMRA_VIFA_PAD = 10, __IPMRA_VIFA_MAX = 11, }; typedef unsigned short vifi_t; struct igmpmsg { __u32 unused1; __u32 unused2; unsigned char im_msgtype; unsigned char im_mbz; unsigned char im_vif; unsigned char im_vif_hi; struct in_addr im_src; struct in_addr im_dst; }; struct mr_mfc { struct rhlist_head mnode; unsigned short mfc_parent; int mfc_flags; union { struct { unsigned long expires; struct sk_buff_head unresolved; } unres; struct { unsigned long last_assert; int minvif; int maxvif; unsigned long bytes; unsigned long pkt; unsigned long wrong_if; unsigned long lastuse; unsigned char ttls[32]; refcount_t refcount; } res; } mfc_un; struct list_head list; struct callback_head rcu; void (*free)(struct callback_head *); }; struct mfc_cache { struct mr_mfc _c; union { struct { __be32 mfc_mcastgrp; __be32 mfc_origin; }; struct mfc_cache_cmp_arg cmparg; }; }; struct igmphdr { __u8 type; __u8 code; __sum16 csum; __be32 group; }; struct pimreghdr { __u8 type; __u8 reserved; __be16 csum; __be32 flags; }; struct vifctl { vifi_t vifc_vifi; unsigned char vifc_flags; unsigned char vifc_threshold; unsigned int vifc_rate_limit; union { struct in_addr vifc_lcl_addr; int vifc_lcl_ifindex; }; struct in_addr vifc_rmt_addr; }; struct vif_entry_notifier_info { struct fib_notifier_info info; struct net_device *dev; unsigned short vif_index; unsigned short vif_flags; u32 tb_id; }; struct mfc_entry_notifier_info { struct fib_notifier_info info; struct mr_mfc *mfc; u32 tb_id; }; struct mfcctl { struct in_addr mfcc_origin; struct in_addr mfcc_mcastgrp; vifi_t mfcc_parent; unsigned char mfcc_ttls[32]; unsigned int mfcc_pkt_cnt; unsigned int mfcc_byte_cnt; unsigned int mfcc_wrong_if; int mfcc_expire; }; struct mr_vif_iter { struct seq_net_private p; struct mr_table *mrt; int ct; }; struct mr_mfc_iter { struct seq_net_private p; struct mr_table *mrt; struct list_head *cache; spinlock_t *lock; }; struct sioc_sg_req { struct in_addr src; struct in_addr grp; unsigned long pktcnt; unsigned long bytecnt; unsigned long wrong_if; }; struct sioc_vif_req { vifi_t vifi; unsigned long icount; unsigned long ocount; unsigned long ibytes; unsigned long obytes; }; struct compat_sioc_sg_req { struct in_addr src; struct in_addr grp; compat_ulong_t pktcnt; compat_ulong_t bytecnt; compat_ulong_t wrong_if; }; struct compat_sioc_vif_req { vifi_t vifi; compat_ulong_t icount; compat_ulong_t ocount; compat_ulong_t ibytes; compat_ulong_t obytes; }; 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; }; enum xprt_xid_rb_cmp { XID_RB_EQUAL = 0, XID_RB_LEFT = 1, XID_RB_RIGHT = 2, }; 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_AFTER_LAST = 323, NUM_NL80211_ATTR = 323, NL80211_ATTR_MAX = 322, }; 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_AFTER_LAST = 23, NL80211_RATE_INFO_MAX = 22, }; 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_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, NUM_NL80211_WOWLAN_TRIG = 20, MAX_NL80211_WOWLAN_TRIG = 19, }; 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_ap_settings_flags { NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1, NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2, }; enum nl80211_wpa_versions { NL80211_WPA_VERSION_1 = 1, NL80211_WPA_VERSION_2 = 2, NL80211_WPA_VERSION_3 = 4, }; 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_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_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_REG_RULE_ATTR_AFTER_LAST = 8, NL80211_REG_RULE_ATTR_MAX = 7, }; enum ieee80211_regd_source { REGD_SOURCE_INTERNAL_DB = 0, REGD_SOURCE_CRDA = 1, REGD_SOURCE_CACHED = 2, }; 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_AFTER_LAST = 23, NL80211_BSS_MAX = 22, }; 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_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 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_AFTER_LAST = 12, NL80211_BAND_ATTR_MAX = 11, }; 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_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_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_AFTER_LAST = 28, NL80211_FREQUENCY_ATTR_MAX = 27, }; 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 bss_param_flags { BSS_PARAM_FLAGS_CTS_PROT = 1, BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2, BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 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_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, }; 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_wowlan_nd_info; 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; s32 pattern_idx; u32 packet_present_len; u32 packet_len; const void *packet; struct cfg80211_wowlan_nd_info *net_detect; }; 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_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 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; }; struct imc_uncore_pci_dev { __u32 pci_id; struct pci_driver *driver; }; typedef __u8 mtrr_type; struct var_mtrr_range_state { unsigned long base_pfn; unsigned long size_pfn; mtrr_type type; }; struct pci_hostbridge_probe { u32 bus; u32 slot; u32 vendor; u32 device; }; enum { IORES_MAP_SYSTEM_RAM = 1, IORES_MAP_ENCRYPTED = 2, }; struct ioremap_desc { unsigned int flags; }; struct bpf_cpumask { cpumask_t cpumask; refcount_t usage; }; struct context_tracking { atomic_t state; long dynticks_nesting; long dynticks_nmi_nesting; }; 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 dirty_throttle_control { 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 hugetlb_cgroup_per_node; struct hugetlb_cgroup { struct cgroup_subsys_state css; long: 64; long: 64; 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]; }; struct hugetlb_cgroup_per_node { unsigned long usage[2]; }; 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, }; 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_ONLY_ON_DFL = 65536, __CFTYPE_NOT_ON_DFL = 131072, __CFTYPE_ADDED = 262144, }; struct file_region { struct list_head link; long from; long to; struct page_counter *reservation_counter; struct cgroup_subsys_state *css; }; 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_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_completion; 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; }; struct wb_completion { atomic_t cnt; wait_queue_head_t *waitq; }; 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_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 trace_event_data_offsets_writeback_folio_template {}; struct trace_event_data_offsets_writeback_dirty_inode_template {}; 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 {}; 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 proc_maps_private { struct inode *inode; struct task_struct *task; struct mm_struct *mm; struct vma_iterator iter; }; 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; 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; }; 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_writepage)(void *, struct page *); typedef void (*btf_trace_ext4_readpage)(void *, struct page *); typedef void (*btf_trace_ext4_releasepage)(void *, struct page *); 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); typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); 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, 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); typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); 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); typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); 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; }; enum { I_DATA_SEM_NORMAL = 0, I_DATA_SEM_OTHER = 1, I_DATA_SEM_QUOTA = 2, }; 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___5 = 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, }; 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__page_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; unsigned int needed; 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 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 long vals_s_mount_flags; unsigned long mask_s_mount_flags; 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; int s_jquota_fmt; char *s_qf_names[3]; }; 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__page_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 {}; struct io_timeout { struct file *file; u32 off; u32 target_seq; 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 io_cancel_data { struct io_ring_ctx *ctx; union { u64 data; struct file *file; }; u32 flags; int seq; }; 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, }; 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[1]; } __attribute__((packed)); struct dw_dma_chan; struct dw_dma_platform_data; struct dw_dma { struct dma_device dma; char name[20]; void *regs; struct dma_pool *desc_pool; struct tasklet_struct tasklet; struct dw_dma_chan *chan; u8 all_chan_mask; u8 in_use; void (*initialize_chan)(struct dw_dma_chan *); void (*suspend_chan)(struct dw_dma_chan *, bool); void (*resume_chan)(struct dw_dma_chan *, bool); u32 (*prepare_ctllo)(struct dw_dma_chan *); void (*encode_maxburst)(struct dw_dma_chan *, u32 *); u32 (*bytes2block)(struct dw_dma_chan *, size_t, unsigned int, size_t *); size_t (*block2bytes)(struct dw_dma_chan *, u32, u32); void (*set_device_name)(struct dw_dma *, int); void (*disable)(struct dw_dma *); void (*enable)(struct dw_dma *); 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 dw_dma_chan { struct dma_chan chan; void *ch_regs; u8 mask; u8 priority; enum dma_transfer_direction direction; struct list_head *tx_node_active; spinlock_t lock; unsigned long flags; struct list_head active_list; struct list_head queue; unsigned int descs_allocated; unsigned int block_size; bool nollp; u32 max_burst; struct dw_dma_slave dws; struct dma_slave_config dma_sconfig; }; 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 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_chan_regs { u32 SAR; u32 __pad_SAR; u32 DAR; u32 __pad_DAR; u32 LLP; u32 __pad_LLP; u32 CTL_LO; u32 CTL_HI; u32 SSTAT; u32 __pad_SSTAT; u32 DSTAT; u32 __pad_DSTAT; u32 SSTATAR; u32 __pad_SSTATAR; u32 DSTATAR; u32 __pad_DSTATAR; u32 CFG_LO; u32 CFG_HI; u32 SGR; u32 __pad_SGR; u32 DSR; u32 __pad_DSR; }; struct sysrq_key_op { void (* const handler)(int); const char * const help_msg; const char * const action_msg; const int enable_mask; }; 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 tpm_tis_tcg_phy { struct tpm_tis_data priv; void *iobase; }; struct tpm_info { struct resource res; int irq; }; struct drm_mode_get_encoder { __u32 encoder_id; __u32 encoder_type; __u32 crtc_id; __u32 possible_crtcs; __u32 possible_clones; }; struct drm_atomic_helper_damage_iter { struct drm_rect plane_src; const struct drm_rect *clips; uint32_t num_clips; uint32_t curr_clip; bool full_update; }; struct cb_kernel { const void *data; u32 size; }; struct batch_vals { u32 max_threads; u32 state_start; u32 surface_start; u32 surface_height; u32 surface_width; u32 size; }; struct batch_chunk { struct i915_vma *vma; u32 offset; u32 *start; u32 *end; u32 max_items; }; struct intel_renderstate_rodata { const u32 *reloc; const u32 *batch; const u32 batch_items; }; struct intel_renderstate { struct i915_gem_ww_ctx ww; const struct intel_renderstate_rodata *rodata; struct i915_vma *vma; u32 batch_offset; u32 batch_size; u32 aux_offset; u32 aux_size; }; struct ch7017_priv { u8 dummy; }; 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 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 ep_device { struct usb_endpoint_descriptor *desc; struct usb_device *udev; struct device dev; }; enum xhci_ep_reset_type { EP_HARD_RESET = 0, EP_SOFT_RESET = 1, }; 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 mutex acpi_lock; }; struct dm_region_hash; struct dm_region { struct dm_region_hash *rh; region_t key; int state; struct list_head hash_list; struct list_head list; atomic_t pending; struct bio_list delayed_bios; }; struct dm_region_hash { uint32_t region_size; unsigned int region_shift; struct dm_dirty_log *log; rwlock_t hash_lock; unsigned int mask; unsigned int nr_buckets; unsigned int prime; unsigned int shift; struct list_head *buckets; int flush_failure; unsigned int max_recovery; spinlock_t region_lock; atomic_t recovery_in_flight; struct list_head clean_regions; struct list_head quiesced_regions; struct list_head recovered_regions; struct list_head failed_recovered_regions; struct semaphore recovery_count; mempool_t region_pool; void *context; sector_t target_begin; void (*dispatch_bios)(void *, struct bio_list *); void (*wakeup_workers)(void *); void (*wakeup_all_recovery_waiters)(void *); }; 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 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 fib_notifier_net { struct list_head fib_notifier_ops; struct atomic_notifier_head fib_chain; }; 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]; }; 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); void (*cleanup)(struct net *); 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; }; 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 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 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 ctattr_tuple { CTA_TUPLE_UNSPEC = 0, CTA_TUPLE_IP = 1, CTA_TUPLE_PROTO = 2, CTA_TUPLE_ZONE = 3, __CTA_TUPLE_MAX = 4, }; 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_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_help { CTA_HELP_UNSPEC = 0, CTA_HELP_NAME = 1, CTA_HELP_INFO = 2, __CTA_HELP_MAX = 3, }; enum ctattr_secctx { CTA_SECCTX_UNSPEC = 0, CTA_SECCTX_NAME = 1, __CTA_SECCTX_MAX = 2, }; 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_synproxy { CTA_SYNPROXY_UNSPEC = 0, CTA_SYNPROXY_ISN = 1, CTA_SYNPROXY_ITS = 2, CTA_SYNPROXY_TSOFF = 3, __CTA_SYNPROXY_MAX = 4, }; enum ip_conntrack_expect_events { IPEXP_NEW = 0, IPEXP_DESTROY = 1, }; 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 { 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_expect_nat { CTA_EXPECT_NAT_UNSPEC = 0, CTA_EXPECT_NAT_DIR = 1, CTA_EXPECT_NAT_TUPLE = 2, __CTA_EXPECT_NAT_MAX = 3, }; 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 ctattr_protoinfo { CTA_PROTOINFO_UNSPEC = 0, CTA_PROTOINFO_TCP = 1, CTA_PROTOINFO_DCCP = 2, CTA_PROTOINFO_SCTP = 3, __CTA_PROTOINFO_MAX = 4, }; enum ctattr_filter { CTA_FILTER_UNSPEC = 0, CTA_FILTER_ORIG_FLAGS = 1, CTA_FILTER_REPLY_FLAGS = 2, __CTA_FILTER_MAX = 3, }; 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 ctnetlink_filter_u32 { u32 val; u32 mask; }; struct ctnetlink_filter { u8 family; 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 ctnetlink_list_dump_ctx { struct nf_conn *last; unsigned int cpu; bool done; }; struct fib_prop { int error; u8 scope; }; struct fib_nh_notifier_info { struct fib_notifier_info info; struct fib_nh *fib_nh; }; struct rtvia { __kernel_sa_family_t rtvia_family; __u8 rtvia_addr[0]; }; struct cipso_v4_map_cache_bkt { spinlock_t lock; u32 size; struct list_head list; }; struct cipso_v4_map_cache_entry { u32 hash; unsigned char *key; size_t key_len; struct netlbl_lsm_cache *lsm_data; u32 activity; struct list_head list; }; struct cipso_v4_std_map_tbl; struct cipso_v4_doi { u32 doi; u32 type; union { struct cipso_v4_std_map_tbl *std; } map; u8 tags[5]; refcount_t refcount; struct list_head list; struct callback_head rcu; }; struct cipso_v4_std_map_tbl { struct { u32 *cipso; u32 *local; u32 cipso_size; u32 local_size; } lvl; struct { u32 *cipso; u32 *local; u32 cipso_size; u32 local_size; } cat; }; struct ioam6_hdr { __u8 opt_type; __u8 opt_len; char: 8; __u8 type; }; enum ieee80211_packet_rx_flags { IEEE80211_RX_AMSDU = 8, IEEE80211_RX_MALFORMED_ACTION_FRM = 16, IEEE80211_RX_DEFERRED_RELEASE = 32, }; enum ieee80211_rx_flags { IEEE80211_RX_CMNTR = 1, IEEE80211_RX_BEACON_REPORTED = 2, }; 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_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, }; struct ieee80211_radiotap_he_mu { __le16 flags1; __le16 flags2; u8 ru_ch1[4]; u8 ru_ch2[4]; }; struct ieee80211_radiotap_lsig { __le16 data1; __le16 data2; }; struct ieee80211_vendor_radiotap { u32 present; u8 align; u8 oui[3]; u8 subns; u8 pad; u16 len; u8 data[0]; }; enum { Rworksched = 1, Rpending = 2, Wworksched = 4, Wpending = 8, }; enum { Opt_port = 0, Opt_rfdno = 1, Opt_wfdno = 2, Opt_err___6 = 3, Opt_privport = 4, }; struct p9_conn; struct p9_poll_wait { struct p9_conn *conn; wait_queue_entry_t wait; wait_queue_head_t *wait_addr; }; struct p9_conn { struct list_head mux_list; struct p9_client *client; int err; spinlock_t req_lock; struct list_head req_list; struct list_head unsent_req_list; struct p9_req_t *rreq; struct p9_req_t *wreq; char tmp_buf[7]; struct p9_fcall rc; int wpos; int wsize; char *wbuf; struct list_head poll_pending_link; struct p9_poll_wait poll_wait[2]; poll_table pt; struct work_struct rq; struct work_struct wq; unsigned long wsched; }; typedef unsigned short ushort; struct p9_trans_fd { struct file *rd; struct file *wr; struct p9_conn conn; }; struct p9_fd_opts { int rfd; int wfd; u16 port; bool privport; }; 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 _cache_table { unsigned char descriptor; char cache_type; short size; }; enum cache_type { CACHE_TYPE_NOCACHE = 0, CACHE_TYPE_INST = 1, CACHE_TYPE_DATA = 2, CACHE_TYPE_SEPARATE = 3, CACHE_TYPE_UNIFIED = 4, }; 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 cacheinfo; struct cpu_cacheinfo { struct cacheinfo *info_list; unsigned int num_levels; unsigned int num_leaves; bool cpu_map_populated; }; 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 _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; }; 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 callthunk_sites { s32 *call_start; s32 *call_end; struct paravirt_patch_site *pv_start; struct paravirt_patch_site *pv_end; }; struct va_alignment { int flags; unsigned long mask; unsigned long bits; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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); 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, }; 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; 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, }; 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 trace_event_data_offsets_cpuhp_enter {}; struct trace_event_data_offsets_cpuhp_multi_enter {}; struct trace_event_data_offsets_cpuhp_exit {}; 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; } __attribute__((packed)); struct ftrace_graph_ret_entry { struct trace_entry ent; struct ftrace_graph_ret ret; }; 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; int: 32; } __attribute__((packed)); 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; }; 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 void compound_page_dtor(struct page *); enum meminit_context { MEMINIT_EARLY = 0, MEMINIT_HOTPLUG = 1, }; typedef int fpi_t; struct alloc_context { struct zonelist *zonelist; nodemask_t *nodemask; struct zoneref *preferred_zoneref; int migratetype; enum zone_type highest_zoneidx; bool spread_dirty_pages; }; struct page_frag_cache { void *va; __u16 offset; __u16 size; unsigned int pagecnt_bias; bool pfmemalloc; }; struct userfaultfd_ctx { wait_queue_head_t fault_pending_wqh; wait_queue_head_t fault_wqh; wait_queue_head_t fd_wqh; wait_queue_head_t event_wqh; seqcount_spinlock_t refile_seq; refcount_t refcount; unsigned int flags; unsigned int features; bool released; atomic_t mmap_changing; struct mm_struct *mm; }; struct userfaultfd_fork_ctx { struct userfaultfd_ctx *orig; struct userfaultfd_ctx *new; struct list_head list; }; struct userfaultfd_unmap_ctx { struct userfaultfd_ctx *ctx; unsigned long start; unsigned long end; struct list_head list; }; struct uffd_msg { __u8 event; __u8 reserved1; __u16 reserved2; __u32 reserved3; union { struct { __u64 flags; __u64 address; union { __u32 ptid; } feat; } pagefault; struct { __u32 ufd; } fork; struct { __u64 from; __u64 to; __u64 len; } remap; struct { __u64 start; __u64 end; } remove; struct { __u64 reserved1; __u64 reserved2; __u64 reserved3; } reserved; } arg; }; struct userfaultfd_wait_queue { struct uffd_msg msg; wait_queue_entry_t wq; struct userfaultfd_ctx *ctx; bool waken; }; struct uffdio_range { __u64 start; __u64 len; }; struct uffdio_register { struct uffdio_range range; __u64 mode; __u64 ioctls; }; struct uffdio_copy { __u64 dst; __u64 src; __u64 len; __u64 mode; __s64 copy; }; struct uffdio_zeropage { struct uffdio_range range; __u64 mode; __s64 zeropage; }; struct uffdio_writeprotect { struct uffdio_range range; __u64 mode; }; struct uffdio_continue { struct uffdio_range range; __u64 mode; __s64 mapped; }; struct uffdio_api { __u64 api; __u64 features; __u64 ioctls; }; struct userfaultfd_wake_range { unsigned long start; unsigned long len; }; 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 nfs_subversion { struct module *owner; struct file_system_type *nfs_fs; const struct rpc_version *rpc_vers; const struct nfs_rpc_ops *rpc_ops; const struct super_operations *sops; const struct xattr_handler **xattr; struct list_head list; }; struct nfs_clone_mount { struct super_block *sb; struct dentry *dentry; struct nfs_fattr *fattr; unsigned int inherited_bsize; }; struct nfs_fs_context { bool internal; bool skip_reconfig_option_check; bool need_mount; bool sloppy; unsigned int flags; unsigned int rsize; unsigned int wsize; unsigned int timeo; unsigned int retrans; unsigned int acregmin; unsigned int acregmax; unsigned int acdirmin; unsigned int acdirmax; unsigned int namlen; unsigned int options; unsigned int bsize; struct nfs_auth_info auth_info; rpc_authflavor_t selected_flavor; char *client_address; unsigned int version; unsigned int minorversion; char *fscache_uniq; unsigned short protofamily; unsigned short mountfamily; bool has_sec_mnt_opts; struct { union { struct sockaddr address; struct __kernel_sockaddr_storage _address; }; size_t addrlen; char *hostname; u32 version; int port; unsigned short protocol; } mount_server; struct { union { struct sockaddr address; struct __kernel_sockaddr_storage _address; }; size_t addrlen; char *hostname; char *export_path; int port; unsigned short protocol; unsigned short nconnect; unsigned short max_connect; unsigned short export_path_len; } nfs_server; struct nfs_fh *mntfh; struct nfs_server *server; struct nfs_subversion *nfs_mod; struct nfs_clone_mount clone_data; }; enum header_fields { HDR_PCR = 0, HDR_DIGEST = 1, HDR_TEMPLATE_NAME = 2, HDR_TEMPLATE_DATA = 3, HDR__LAST = 4, }; struct ima_kexec_hdr { u16 version; u16 _reserved0; u32 _reserved1; u64 buffer_size; u64 count; }; struct scomp_scratch { spinlock_t lock; void *src; void *dst; }; 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 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 *); struct crypto_alg base; }; struct crypto_scomp { struct crypto_tfm base; }; struct crypto_report_comp { char type[64]; }; struct blk_mq_hw_ctx_sysfs_entry { struct attribute attr; ssize_t (*show)(struct blk_mq_hw_ctx *, char *); }; struct bd_holder_disk { struct list_head list; struct kobject *holder_dir; int refcnt; }; enum { IO_SQ_THREAD_SHOULD_STOP = 0, IO_SQ_THREAD_SHOULD_PARK = 1, }; struct io_sqring_offsets { __u32 head; __u32 tail; __u32 ring_mask; __u32 ring_entries; __u32 flags; __u32 dropped; __u32 array; __u32 resv1; __u64 resv2; }; struct io_cqring_offsets { __u32 head; __u32 tail; __u32 ring_mask; __u32 ring_entries; __u32 overflow; __u32 cqes; __u32 flags; __u32 resv1; __u64 resv2; }; 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; }; 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 U32 HUF_DTable; struct acpi_device_properties { const guid_t *guid; union acpi_object *properties; struct list_head list; void **bufs; }; 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_table_cdat { u32 length; u8 revision; u8 checksum; u8 reserved[6]; u32 sequence; }; struct acpi_comment_node { char *comment; struct acpi_comment_node *next; }; struct acpi_predefined_names { const char *name; u8 type; char *val; }; 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; }; struct acpi_rw_lock { void *writer_mutex; void *reader_mutex; u32 num_readers; }; typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); struct acpi_fixed_event_handler { acpi_event_handler handler; void *context; }; 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 vc { struct vc_data *d; struct work_struct SAK_work; }; struct compat_console_font_op { compat_uint_t op; compat_uint_t flags; compat_uint_t width; compat_uint_t height; compat_uint_t charcount; compat_caddr_t data; }; struct kbd_repeat { int delay; int period; }; 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 unipair; struct unimapdesc { unsigned short entry_ct; struct unipair __attribute__((btf_type_tag("user"))) *entries; }; struct unipair { unsigned short unicode; unsigned short fontpos; }; struct kbkeycode { unsigned int scancode; unsigned int keycode; }; struct kbsentry { unsigned char kb_func; unsigned char kb_string[512]; }; struct kbentry { unsigned char kb_table; unsigned char kb_index; unsigned short kb_value; }; struct compat_unimapdesc { unsigned short entry_ct; compat_caddr_t 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 drm_print_iterator { void *data; ssize_t start; ssize_t remain; ssize_t offset; }; struct debugfs_reg32; struct debugfs_regset32 { const struct debugfs_reg32 *regs; int nregs; void *base; struct device *dev; }; struct debugfs_reg32 { char *name; unsigned long offset; }; struct drm_encoder_slave; struct drm_i2c_encoder_driver { struct i2c_driver i2c_driver; int (*encoder_init)(struct i2c_client *, struct drm_device *, struct drm_encoder_slave *); }; struct drm_encoder_slave_funcs; struct drm_encoder_slave { struct drm_encoder base; const struct drm_encoder_slave_funcs *slave_funcs; void *slave_priv; void *bus_priv; }; struct drm_encoder_slave_funcs { void (*set_config)(struct drm_encoder *, void *); void (*destroy)(struct drm_encoder *); void (*dpms)(struct drm_encoder *, int); void (*save)(struct drm_encoder *); void (*restore)(struct drm_encoder *); bool (*mode_fixup)(struct drm_encoder *, const struct drm_display_mode *, struct drm_display_mode *); int (*mode_valid)(struct drm_encoder *, struct drm_display_mode *); void (*mode_set)(struct drm_encoder *, struct drm_display_mode *, struct drm_display_mode *); enum drm_connector_status (*detect)(struct drm_encoder *, struct drm_connector *); int (*get_modes)(struct drm_encoder *, struct drm_connector *); int (*create_resources)(struct drm_encoder *, struct drm_connector *); int (*set_property)(struct drm_encoder *, struct drm_connector *, struct drm_property *, uint64_t); }; enum { CLEAR_RESIDUALS = 0, }; struct clflush { struct dma_fence_work base; struct drm_i915_gem_object *obj; }; typedef void (*btf_trace_i915_gem_object_create)(void *, struct drm_i915_gem_object *); typedef void (*btf_trace_i915_gem_shrink)(void *, struct drm_i915_private___3 *, unsigned long, unsigned int); typedef void (*btf_trace_i915_vma_bind)(void *, struct i915_vma *, unsigned int); typedef void (*btf_trace_i915_vma_unbind)(void *, struct i915_vma *); typedef void (*btf_trace_i915_gem_object_pwrite)(void *, struct drm_i915_gem_object *, u64, u64); typedef void (*btf_trace_i915_gem_object_pread)(void *, struct drm_i915_gem_object *, u64, u64); typedef void (*btf_trace_i915_gem_object_fault)(void *, struct drm_i915_gem_object *, u64, bool, bool); typedef void (*btf_trace_i915_gem_object_clflush)(void *, struct drm_i915_gem_object *); typedef void (*btf_trace_i915_gem_object_destroy)(void *, struct drm_i915_gem_object *); typedef void (*btf_trace_i915_gem_evict)(void *, struct i915_address_space *, u64, u64, unsigned int); typedef void (*btf_trace_i915_gem_evict_node)(void *, struct i915_address_space *, struct drm_mm_node *, unsigned int); typedef void (*btf_trace_i915_gem_evict_vm)(void *, struct i915_address_space *); typedef void (*btf_trace_i915_request_queue)(void *, struct i915_request *, u32); typedef void (*btf_trace_i915_request_add)(void *, struct i915_request *); typedef void (*btf_trace_i915_request_retire)(void *, struct i915_request *); typedef void (*btf_trace_i915_request_wait_begin)(void *, struct i915_request *, unsigned int); typedef void (*btf_trace_i915_request_wait_end)(void *, struct i915_request *); typedef void (*btf_trace_i915_reg_rw)(void *, bool, i915_reg_t, u64, int, bool); typedef void (*btf_trace_i915_ppgtt_create)(void *, struct i915_address_space *); typedef void (*btf_trace_i915_ppgtt_release)(void *, struct i915_address_space *); typedef void (*btf_trace_i915_context_create)(void *, struct i915_gem_context *); typedef void (*btf_trace_i915_context_free)(void *, struct i915_gem_context *); struct trace_event_raw_i915_gem_object_create { struct trace_entry ent; struct drm_i915_gem_object *obj; u64 size; char __data[0]; }; struct trace_event_raw_i915_gem_shrink { struct trace_entry ent; int dev; unsigned long target; unsigned int flags; char __data[0]; }; struct trace_event_raw_i915_vma_bind { struct trace_entry ent; struct drm_i915_gem_object *obj; struct i915_address_space *vm; u64 offset; u64 size; unsigned int flags; char __data[0]; }; struct trace_event_raw_i915_vma_unbind { struct trace_entry ent; struct drm_i915_gem_object *obj; struct i915_address_space *vm; u64 offset; u64 size; char __data[0]; }; struct trace_event_raw_i915_gem_object_pwrite { struct trace_entry ent; struct drm_i915_gem_object *obj; u64 offset; u64 len; char __data[0]; }; struct trace_event_raw_i915_gem_object_pread { struct trace_entry ent; struct drm_i915_gem_object *obj; u64 offset; u64 len; char __data[0]; }; struct trace_event_raw_i915_gem_object_fault { struct trace_entry ent; struct drm_i915_gem_object *obj; u64 index; bool gtt; bool write; char __data[0]; }; struct trace_event_raw_i915_gem_object { struct trace_entry ent; struct drm_i915_gem_object *obj; char __data[0]; }; struct trace_event_raw_i915_gem_evict { struct trace_entry ent; u32 dev; struct i915_address_space *vm; u64 size; u64 align; unsigned int flags; char __data[0]; }; struct trace_event_raw_i915_gem_evict_node { struct trace_entry ent; u32 dev; struct i915_address_space *vm; u64 start; u64 size; unsigned long color; unsigned int flags; char __data[0]; }; struct trace_event_raw_i915_gem_evict_vm { struct trace_entry ent; u32 dev; struct i915_address_space *vm; char __data[0]; }; struct trace_event_raw_i915_request_queue { struct trace_entry ent; u32 dev; u64 ctx; u16 class; u16 instance; u32 seqno; u32 flags; char __data[0]; }; struct trace_event_raw_i915_request { struct trace_entry ent; u32 dev; u64 ctx; u16 class; u16 instance; u32 seqno; u32 tail; char __data[0]; }; struct trace_event_raw_i915_request_wait_begin { struct trace_entry ent; u32 dev; u64 ctx; u16 class; u16 instance; u32 seqno; unsigned int flags; char __data[0]; }; struct trace_event_raw_i915_reg_rw { struct trace_entry ent; u64 val; u32 reg; u16 write; u16 len; char __data[0]; }; struct trace_event_raw_i915_ppgtt { struct trace_entry ent; struct i915_address_space *vm; u32 dev; char __data[0]; }; struct trace_event_raw_i915_context { struct trace_entry ent; u32 dev; struct i915_gem_context *ctx; struct i915_address_space *vm; char __data[0]; }; struct trace_event_data_offsets_i915_gem_object_create {}; struct trace_event_data_offsets_i915_gem_shrink {}; struct trace_event_data_offsets_i915_vma_bind {}; struct trace_event_data_offsets_i915_vma_unbind {}; struct trace_event_data_offsets_i915_gem_object_pwrite {}; struct trace_event_data_offsets_i915_gem_object_pread {}; struct trace_event_data_offsets_i915_gem_object_fault {}; struct trace_event_data_offsets_i915_gem_object {}; struct trace_event_data_offsets_i915_gem_evict {}; struct trace_event_data_offsets_i915_gem_evict_node {}; struct trace_event_data_offsets_i915_gem_evict_vm {}; struct trace_event_data_offsets_i915_request_queue {}; struct trace_event_data_offsets_i915_request {}; struct trace_event_data_offsets_i915_request_wait_begin {}; struct trace_event_data_offsets_i915_reg_rw {}; struct trace_event_data_offsets_i915_ppgtt {}; struct trace_event_data_offsets_i915_context {}; enum hdcp_port_type { HDCP_PORT_TYPE_INVALID = 0, HDCP_PORT_TYPE_INTEGRATED = 1, HDCP_PORT_TYPE_LSPCON = 2, HDCP_PORT_TYPE_CPDP = 3, }; enum check_link_response { HDCP_LINK_PROTECTED = 0, HDCP_TOPOLOGY_CHANGE = 1, HDCP_LINK_INTEGRITY_FAILURE = 2, HDCP_REAUTH_REQUEST = 3, }; struct hdcp2_rep_stream_manage { u8 msg_id; u8 seq_num_m[3]; __be16 k; struct hdcp2_streamid_type streams[4]; }; struct intel_engine_capture_vma { struct intel_engine_capture_vma *next; struct i915_vma_resource *vma_res; char name[16]; bool lockdep_cookie; }; struct i915_vma_compress { struct pagevec pool; struct z_stream_s zstream; void *tmp; }; struct internal_state { int dummy; }; 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 u16 compat_dev_t; struct compat_loop_info { compat_int_t lo_number; compat_dev_t lo_device; compat_ulong_t lo_inode; compat_dev_t lo_rdevice; compat_int_t lo_offset; compat_int_t lo_encrypt_type; compat_int_t lo_encrypt_key_size; compat_int_t lo_flags; char lo_name[64]; unsigned char lo_encrypt_key[32]; compat_ulong_t lo_init[2]; char reserved[4]; }; typedef __kernel_rwf_t rwf_t; 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]; }; 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_config { __u32 fd; __u32 block_size; struct loop_info64 info; __u64 __reserved[8]; }; 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_USE_LPM_POLICY = 33554432, AHCI_HFLAG_SUSPEND_PHYS = 67108864, AHCI_HFLAG_NO_SXS = 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_ign_iferr = 1, board_ahci_low_power = 2, board_ahci_no_debounce_delay = 3, board_ahci_nomsi = 4, board_ahci_noncq = 5, board_ahci_nosntf = 6, board_ahci_yes_fbs = 7, board_ahci_al = 8, board_ahci_avn = 9, board_ahci_mcp65 = 10, board_ahci_mcp77 = 11, board_ahci_mcp89 = 12, board_ahci_mv = 13, board_ahci_sb600 = 14, board_ahci_sb700 = 15, board_ahci_vt8251 = 16, board_ahci_pcs7 = 17, board_ahci_mcp_linux = 10, board_ahci_mcp67 = 10, board_ahci_mcp73 = 10, board_ahci_mcp79 = 11, }; struct clk_bulk_data; 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 clk_bulk_data { const char *id; struct clk *clk; }; 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]; }; 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, }; 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_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 mc146818_get_time_callback_param { struct rtc_time *time; unsigned char ctrl; unsigned char century; }; struct dm_kcopyd_client; 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 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 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; }; struct snd_seq_fifo; struct snd_seq_user_client { struct file *file; struct pid *owner; struct snd_seq_fifo *fifo; int fifo_pool_size; }; struct snd_seq_kernel_client { struct snd_card *card; }; typedef int snd_seq_client_type_t; struct snd_seq_client { snd_seq_client_type_t type; unsigned int accept_input: 1; unsigned int accept_output: 1; char name[64]; int number; unsigned int filter; unsigned long event_filter[4]; snd_use_lock_t use_lock; int event_lost; int num_ports; struct list_head ports_list_head; rwlock_t ports_lock; struct mutex ports_mutex; struct mutex ioctl_mutex; int convert32; struct snd_seq_pool *pool; union { struct snd_seq_user_client user; struct snd_seq_kernel_client kernel; } data; }; struct snd_seq_fifo { struct snd_seq_pool *pool; struct snd_seq_event_cell *head; struct snd_seq_event_cell *tail; int cells; spinlock_t lock; snd_use_lock_t use_lock; wait_queue_head_t input_sleep; atomic_t overflow; }; struct snd_seq_usage { int cur; int peak; }; struct ioctl_handler { unsigned int cmd; int (*func)(struct snd_seq_client *, void *); }; enum { SNDRV_SEQ_IOCTL_CREATE_PORT32 = 3231994656, SNDRV_SEQ_IOCTL_DELETE_PORT32 = 1084511009, SNDRV_SEQ_IOCTL_GET_PORT_INFO32 = 3231994658, SNDRV_SEQ_IOCTL_SET_PORT_INFO32 = 1084511011, SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT32 = 3231994706, }; struct snd_seq_port_subscribe { struct snd_seq_addr sender; struct snd_seq_addr dest; unsigned int voices; unsigned int flags; unsigned char queue; unsigned char pad[3]; char reserved[64]; }; struct snd_seq_subscribers { struct snd_seq_port_subscribe info; struct list_head src_list; struct list_head dest_list; atomic_t ref_count; }; struct snd_seq_port_subs_info { struct list_head list_head; unsigned int count; unsigned int exclusive: 1; struct rw_semaphore list_mutex; rwlock_t list_lock; int (*open)(void *, struct snd_seq_port_subscribe *); int (*close)(void *, struct snd_seq_port_subscribe *); }; struct snd_seq_client_port { struct snd_seq_addr addr; struct module *owner; char name[64]; struct list_head list; snd_use_lock_t use_lock; struct snd_seq_port_subs_info c_src; struct snd_seq_port_subs_info c_dest; int (*event_input)(struct snd_seq_event *, int, void *, int, int); void (*private_free)(void *); void *private_data; unsigned int closing: 1; unsigned int timestamping: 1; unsigned int time_real: 1; int time_queue; unsigned int capability; unsigned int type; int midi_channels; int midi_voices; int synth_voices; }; struct snd_seq_client_info { int client; snd_seq_client_type_t type; char name[64]; unsigned int filter; unsigned char multicast_filter[8]; unsigned char event_filter[32]; int num_ports; int event_lost; int card; int pid; char reserved[56]; }; struct snd_seq_port_info { struct snd_seq_addr addr; char name[64]; unsigned int capability; unsigned int type; int midi_channels; int midi_voices; int synth_voices; int read_use; int write_use; void *kernel; unsigned int flags; unsigned char time_queue; char reserved[59]; }; struct snd_seq_queue_client { int queue; int client; int used; char reserved[64]; }; struct snd_seq_client_pool { int client; int output_pool; int input_pool; int output_room; int output_free; int input_free; char reserved[64]; }; struct snd_seq_system_info { int queues; int clients; int ports; int channels; int cur_clients; int cur_queues; char reserved[24]; }; struct snd_seq_running_info { unsigned char client; unsigned char big_endian; unsigned char cpu_mode; unsigned char pad; unsigned char reserved[12]; }; struct snd_seq_queue_info { int queue; int owner; unsigned int locked: 1; char name[64]; unsigned int flags; char reserved[60]; }; struct snd_seq_queue_status { int queue; int events; snd_seq_tick_time_t tick; struct snd_seq_real_time time; int running; int flags; char reserved[64]; }; struct snd_seq_queue_timer { int queue; int type; union { struct { struct snd_timer_id id; unsigned int resolution; } alsa; } u; char reserved[64]; }; struct snd_seq_query_subs { struct snd_seq_addr root; int type; int index; int num_subs; struct snd_seq_addr addr; unsigned char queue; unsigned int flags; char reserved[64]; }; struct snd_seq_port_callback { struct module *owner; void *private_data; int (*subscribe)(void *, struct snd_seq_port_subscribe *); int (*unsubscribe)(void *, struct snd_seq_port_subscribe *); int (*use)(void *, struct snd_seq_port_subscribe *); int (*unuse)(void *, struct snd_seq_port_subscribe *); int (*event_input)(struct snd_seq_event *, int, void *, int, int); void (*private_free)(void *); }; struct snd_seq_port_info32 { struct snd_seq_addr addr; char name[64]; u32 capability; u32 type; s32 midi_channels; s32 midi_voices; s32 synth_voices; s32 read_use; s32 write_use; u32 kernel; u32 flags; unsigned char time_queue; char reserved[59]; }; 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_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_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_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; 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; __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_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; }; struct trace_event_data_offsets_net_dev_xmit { u32 name; }; struct trace_event_data_offsets_net_dev_xmit_timeout { u32 name; u32 driver; }; struct trace_event_data_offsets_net_dev_template { u32 name; }; struct trace_event_data_offsets_net_dev_rx_verbose_template { u32 name; }; struct trace_event_data_offsets_napi_poll { u32 dev_name; }; struct trace_event_data_offsets_qdisc_reset { u32 dev; u32 kind; }; struct trace_event_data_offsets_qdisc_destroy { u32 dev; u32 kind; }; struct trace_event_data_offsets_qdisc_create { u32 dev; u32 kind; }; struct trace_event_data_offsets_neigh_create { u32 dev; }; struct trace_event_data_offsets_neigh_update { u32 dev; }; struct trace_event_data_offsets_neigh__update { u32 dev; }; 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_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 { 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 sctp_cid { SCTP_CID_DATA = 0, SCTP_CID_INIT = 1, SCTP_CID_INIT_ACK = 2, SCTP_CID_SACK = 3, SCTP_CID_HEARTBEAT = 4, SCTP_CID_HEARTBEAT_ACK = 5, SCTP_CID_ABORT = 6, SCTP_CID_SHUTDOWN = 7, SCTP_CID_SHUTDOWN_ACK = 8, SCTP_CID_ERROR = 9, SCTP_CID_COOKIE_ECHO = 10, SCTP_CID_COOKIE_ACK = 11, SCTP_CID_ECN_ECNE = 12, SCTP_CID_ECN_CWR = 13, SCTP_CID_SHUTDOWN_COMPLETE = 14, SCTP_CID_AUTH = 15, SCTP_CID_I_DATA = 64, SCTP_CID_FWD_TSN = 192, SCTP_CID_ASCONF = 193, SCTP_CID_I_FWD_TSN = 194, SCTP_CID_ASCONF_ACK = 128, SCTP_CID_RECONF = 130, SCTP_CID_PAD = 132, }; enum { SCTP_CHUNK_FLAG_T = 1, }; enum ctattr_protoinfo_sctp { CTA_PROTOINFO_SCTP_UNSPEC = 0, CTA_PROTOINFO_SCTP_STATE = 1, CTA_PROTOINFO_SCTP_VTAG_ORIGINAL = 2, CTA_PROTOINFO_SCTP_VTAG_REPLY = 3, __CTA_PROTOINFO_SCTP_MAX = 4, }; enum ctattr_timeout_sctp { CTA_TIMEOUT_SCTP_UNSPEC = 0, CTA_TIMEOUT_SCTP_CLOSED = 1, CTA_TIMEOUT_SCTP_COOKIE_WAIT = 2, CTA_TIMEOUT_SCTP_COOKIE_ECHOED = 3, CTA_TIMEOUT_SCTP_ESTABLISHED = 4, CTA_TIMEOUT_SCTP_SHUTDOWN_SENT = 5, CTA_TIMEOUT_SCTP_SHUTDOWN_RECD = 6, CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT = 7, CTA_TIMEOUT_SCTP_HEARTBEAT_SENT = 8, CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED = 9, __CTA_TIMEOUT_SCTP_MAX = 10, }; struct sctphdr { __be16 source; __be16 dest; __be32 vtag; __le32 checksum; }; struct sctp_chunkhdr { __u8 type; __u8 flags; __be16 length; }; struct sctp_inithdr { __be32 init_tag; __be32 a_rwnd; __be16 num_outbound_streams; __be16 num_inbound_streams; __be32 initial_tsn; __u8 params[0]; }; 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 br_input_skb_cb { struct net_device *brdev; u16 frag_max_size; u8 proxyarp_replied: 1; u8 src_port_isolated: 1; }; struct nf_bridge_frag_data; struct rpcb_info { u32 rpc_vers; const struct rpc_procinfo *rpc_proc; }; enum { RPCBPROC_NULL = 0, RPCBPROC_SET = 1, RPCBPROC_UNSET = 2, RPCBPROC_GETPORT = 3, RPCBPROC_GETADDR = 3, RPCBPROC_DUMP = 4, RPCBPROC_CALLIT = 5, RPCBPROC_BCAST = 5, RPCBPROC_GETTIME = 6, RPCBPROC_UADDR2TADDR = 7, RPCBPROC_TADDR2UADDR = 8, RPCBPROC_GETVERSADDR = 9, RPCBPROC_INDIRECT = 10, RPCBPROC_GETADDRLIST = 11, RPCBPROC_GETSTAT = 12, }; struct rpcbind_args { struct rpc_xprt *r_xprt; u32 r_prog; u32 r_vers; u32 r_prot; unsigned short r_port; const char *r_netid; const char *r_addr; const char *r_owner; int r_status; }; 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, }; 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, }; 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; char: 8; }; 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 mptcp_pernet { struct ctl_table_header *ctl_table_hdr; unsigned int add_addr_timeout; unsigned int stale_loss_cnt; u8 mptcp_enabled; u8 checksum_enabled; u8 allow_join_initial_addr_port; u8 pm_type; }; struct uevent_sock { struct list_head list; struct sock *sk; }; typedef long (*sys_call_ptr_t)(const struct pt_regs *); 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 { x86_lbr_exclusive_lbr = 0, x86_lbr_exclusive_bts = 1, x86_lbr_exclusive_pt = 2, x86_lbr_exclusive_max = 3, }; 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 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; }; struct jump_label_patch { const void *code; int size; }; struct stat64 { unsigned long long st_dev; unsigned char __pad0[4]; unsigned int __st_ino; unsigned int st_mode; unsigned int st_nlink; unsigned int st_uid; unsigned int st_gid; unsigned long long st_rdev; unsigned char __pad3[4]; long long st_size; unsigned int st_blksize; long long st_blocks; unsigned int st_atime; unsigned int st_atime_nsec; unsigned int st_mtime; unsigned int st_mtime_nsec; unsigned int st_ctime; unsigned int st_ctime_nsec; unsigned long long st_ino; } __attribute__((packed)); struct mmap_arg_struct32 { unsigned int addr; unsigned int len; unsigned int prot; unsigned int flags; unsigned int fd; unsigned int offset; }; 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; int exit_signal; unsigned long stack; unsigned long stack_size; unsigned long tls; pid_t *set_tid; size_t set_tid_size; int cgroup; int io_thread; int kthread; int idle; int (*fn)(void *); void *fn_arg; struct cgroup *cgrp; struct css_set *cset; }; struct tsc_adjust { s64 bootval; s64 adjusted; unsigned long nextcheck; bool warned; }; struct ftrace_rec_iter; union ftrace_op_code_union { char code[7]; struct { char op[3]; int offset; } __attribute__((packed)); }; typedef struct { efi_guid_t guid; u64 table; } efi_config_table_64_t; 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; }; 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]; }; struct pm_vt_switch { struct list_head head; struct device *dev; bool required; }; struct irqchip_fwid { struct fwnode_handle fwnode; unsigned int type; char *name; phys_addr_t *pa; }; 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 kexec_load_limit { struct mutex mutex; int limit; }; 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 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; struct bpf_cpu_map_entry { u32 cpu; int map_id; struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; struct bpf_cpu_map *cmap; struct ptr_ring *queue; struct task_struct *kthread; struct bpf_cpumap_val value; struct bpf_prog *prog; atomic_t refcnt; struct callback_head rcu; struct work_struct kthread_stop_wq; }; struct bpf_cpu_map { struct bpf_map map; struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct xdp_cpumap_stats { unsigned int redirect; unsigned int pass; unsigned int drop; }; enum pgt_entry { NORMAL_PMD = 0, HPAGE_PMD = 1, NORMAL_PUD = 2, HPAGE_PUD = 3, }; struct user_arg_ptr { bool is_compat; union { const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native; const compat_uptr_t __attribute__((btf_type_tag("user"))) *compat; } ptr; }; 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 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 nfs_callback_data { unsigned int users; struct svc_serv *serv; }; enum nfs4_callback_procnum { CB_NULL = 0, CB_COMPOUND = 1, }; 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; }; struct sem { int semval; struct pid *sempid; spinlock_t lock; struct list_head pending_alter; struct list_head pending_const; time64_t sem_otime; }; 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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct sem sems[0]; }; 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 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 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; }; struct compat_semid64_ds { struct compat_ipc64_perm sem_perm; compat_ulong_t sem_otime; compat_ulong_t sem_otime_high; compat_ulong_t sem_ctime; compat_ulong_t sem_ctime_high; compat_ulong_t sem_nsems; compat_ulong_t __unused3; compat_ulong_t __unused4; }; struct compat_semid_ds { struct compat_ipc_perm sem_perm; old_time32_t sem_otime; old_time32_t sem_ctime; compat_uptr_t sem_base; compat_uptr_t sem_pending; compat_uptr_t sem_pending_last; compat_uptr_t undo; unsigned short sem_nsems; }; struct seminfo { int semmap; int semmni; int semmns; int semmnu; int semmsl; int semopm; int semume; int semusz; int semvmx; int semaem; }; 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 rand_data { __u64 data; __u64 old_data; __u64 prev_time; __u64 last_delta; __s64 last_delta2; unsigned int osr; unsigned char *mem; unsigned int memlocation; unsigned int memblocks; unsigned int memblocksize; unsigned int memaccessloops; int rct_count; unsigned int apt_observations; unsigned int apt_count; unsigned int apt_base; unsigned int apt_base_set: 1; unsigned int health_failure: 1; }; struct io_cancel { struct file *file; u64 addr; u32 flags; s32 fd; }; struct io_tctx_node { struct list_head ctx_node; struct task_struct *task; struct io_ring_ctx *ctx; }; struct io_uring_sync_cancel_reg { __u64 addr; __s32 fd; __u32 flags; struct __kernel_timespec timeout; __u64 pad[4]; }; typedef uint8_t U8; typedef struct { U16 nextState; BYTE nbAdditionalBits; BYTE nbBits; U32 baseValue; } ZSTD_seqSymbol; typedef enum { bt_raw = 0, bt_rle = 1, bt_compressed = 2, bt_reserved = 3, } blockType_e; typedef enum { set_basic = 0, set_rle = 1, set_compressed = 2, set_repeat = 3, } symbolEncodingType_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 { 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 { 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_f_zstd1 = 0, ZSTD_f_zstd1_magicless = 1, } ZSTD_format_e; typedef enum { ZSTD_d_validateChecksum = 0, ZSTD_d_ignoreChecksum = 1, } ZSTD_forceIgnoreChecksum_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; 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_bm_buffered = 0, ZSTD_bm_stable = 1, } ZSTD_bufferMode_e; 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___2; struct ZSTD_DDict_s { void *dictBuffer; const void *dictContent; size_t dictSize; ZSTD_entropyDTables_t entropy; U32 dictID; U32 entropyPresent; ZSTD_customMem cMem; }; typedef enum { not_streaming = 0, is_streaming = 1, } streaming_operation; 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; typedef enum { ZSTD_no_overlap = 0, ZSTD_overlap_src_before_dst = 1, } ZSTD_overlap_e; typedef struct { blockType_e blockType; U32 lastBlock; U32 origSize; } blockProperties_t; struct portdrv_service_data { struct pcie_port_service_driver *drv; struct device *dev; u32 service; }; typedef int (*pcie_callback_t)(struct pcie_device *); 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; }; struct acpi_scan_clear_dep_work { struct work_struct work; struct acpi_device *adev; }; struct acpi_table_stao { struct acpi_table_header header; u8 ignore_uart; } __attribute__((packed)); 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 acpi_vendor_walk_info { struct acpi_vendor_uuid *uuid; struct acpi_buffer *buffer; acpi_status status; }; struct kbdiacruc { unsigned int diacr; unsigned int base; unsigned int result; }; 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; }; struct uart_match { struct uart_port *port; struct uart_driver *driver; }; struct tpmrm_priv { struct file_priv priv; struct tpm_space space; }; struct drm_auth { drm_magic_t magic; }; struct ttm_bo_kmap_obj { void *virtual; struct page *page; enum { ttm_bo_map_iomap = 129, ttm_bo_map_vmap = 2, ttm_bo_map_kmap = 3, ttm_bo_map_premapped = 132, } bo_kmap_type; struct ttm_buffer_object___2 *bo; }; struct ttm_transfer_obj { struct ttm_buffer_object___2 base; struct ttm_buffer_object___2 *bo; }; struct ttm_kmap_iter_linear_io { struct ttm_kmap_iter base; struct iosys_map dmap; bool needs_unmap; }; struct active_node { struct rb_node node; struct i915_active_fence base; struct i915_active *ref; u64 timeline; }; struct auto_active { struct i915_active base; struct kref ref; }; struct wait_barrier { struct wait_queue_entry base; struct i915_active *ref; }; struct bxt_ddi_phy_info { bool dual_channel; enum dpio_phy rcomp_phy; int reset_delay; u32 pwron_mask; struct { enum port port; } channel[2]; }; struct regmap_range_cfg; struct regmap_config { const char *name; int reg_bits; int reg_stride; int reg_downshift; unsigned int reg_base; int pad_bits; int val_bits; bool (*writeable_reg)(struct device *, unsigned int); bool (*readable_reg)(struct device *, unsigned int); bool (*volatile_reg)(struct device *, unsigned int); bool (*precious_reg)(struct device *, unsigned int); bool (*writeable_noinc_reg)(struct device *, unsigned int); bool (*readable_noinc_reg)(struct device *, unsigned int); bool disable_locking; regmap_lock lock; regmap_unlock unlock; void *lock_arg; int (*reg_read)(void *, unsigned int, unsigned int *); int (*reg_write)(void *, unsigned int, unsigned int); int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); int (*read)(void *, const void *, size_t, void *, size_t); int (*write)(void *, const void *, size_t); size_t max_raw_read; size_t max_raw_write; bool fast_io; bool io_port; unsigned int max_register; const struct regmap_access_table *wr_table; const struct regmap_access_table *rd_table; const struct regmap_access_table *volatile_table; const struct regmap_access_table *precious_table; const struct regmap_access_table *wr_noinc_table; const struct regmap_access_table *rd_noinc_table; const struct reg_default *reg_defaults; unsigned int num_reg_defaults; enum regcache_type cache_type; const void *reg_defaults_raw; unsigned int num_reg_defaults_raw; unsigned long read_flag_mask; unsigned long write_flag_mask; bool zero_flag_mask; bool use_single_read; bool use_single_write; bool use_relaxed_mmio; bool can_multi_write; enum regmap_endian reg_format_endian; enum regmap_endian val_format_endian; const struct regmap_range_cfg *ranges; unsigned int num_ranges; bool use_hwlock; bool use_raw_spinlock; unsigned int hwlock_id; unsigned int hwlock_mode; bool can_sleep; }; struct regmap_range_cfg { const char *name; unsigned int range_min; unsigned int range_max; unsigned int selector_reg; unsigned int selector_mask; int selector_shift; unsigned int window_start; unsigned int window_len; }; struct scsi_lun { __u8 scsi_lun[8]; }; 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 { 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, }; 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 virtnet_stat_desc { char desc[32]; size_t offset; }; 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, }; struct send_queue; struct receive_queue; struct control_buf; struct failover; 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; bool affinity_hint_set; struct hlist_node node; struct hlist_node node_dead; struct control_buf *ctrl; u8 duplex; u32 speed; u32 tx_usecs; u32 rx_usecs; u32 tx_max_packets; u32 rx_max_packets; unsigned long guest_offloads; unsigned long guest_offloads_capable; struct failover *failover; }; struct virtnet_sq_stats { struct u64_stats_sync syncp; u64 packets; u64 bytes; u64 xdp_tx; u64 xdp_tx_drops; u64 kicks; u64 tx_timeouts; }; struct send_queue { struct virtqueue *vq; struct scatterlist sg[19]; char name[16]; struct virtnet_sq_stats stats; struct napi_struct napi; bool reset; }; struct virtnet_rq_stats { struct u64_stats_sync syncp; u64 packets; u64 bytes; u64 drops; u64 xdp_packets; u64 xdp_tx; u64 xdp_redirects; u64 xdp_drops; u64 kicks; }; struct ewma_pkt_len { unsigned long internal; }; 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; 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: 32; long: 64; struct xdp_rxq_info xdp_rxq; }; 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 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 failover_ops; 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 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 virtio_net_hdr_mrg_rxbuf { struct virtio_net_hdr hdr; __virtio16 num_buffers; }; 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_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_mac { __virtio32 entries; __u8 macs[0]; }; struct usb_mon_operations { void (*urb_submit)(struct usb_bus *, struct urb *); void (*urb_submit_error)(struct usb_bus *, struct urb *, int); void (*urb_complete)(struct usb_bus *, struct urb *, int); }; enum usb_led_event { USB_LED_EVENT_HOST = 0, USB_LED_EVENT_GADGET = 1, }; struct quirk_printer_struct { __u16 vendorId; __u16 productId; unsigned int quirks; }; struct usblp { struct usb_device *dev; struct mutex wmut; struct mutex mut; spinlock_t lock; char *readbuf; char *statusbuf; struct usb_anchor urbs; wait_queue_head_t rwait; wait_queue_head_t wwait; int readcount; int ifnum; struct usb_interface *intf; struct { int alt_setting; struct usb_endpoint_descriptor *epwrite; struct usb_endpoint_descriptor *epread; } protocol[4]; int current_protocol; int minor; int wcomplete; int rcomplete; int wstatus; int rstatus; unsigned int quirks; unsigned int flags; unsigned char used; unsigned char present; unsigned char bidir; unsigned char no_paper; unsigned char *device_id_string; }; enum input_clock_type { INPUT_CLK_REAL = 0, INPUT_CLK_MONO = 1, INPUT_CLK_BOOT = 2, INPUT_CLK_MAX = 3, }; struct evdev; struct evdev_client { unsigned int head; unsigned int tail; unsigned int packet_head; spinlock_t buffer_lock; wait_queue_head_t wait; struct fasync_struct *fasync; struct evdev *evdev; struct list_head node; enum input_clock_type clk_type; bool revoked; unsigned long *evmasks[32]; unsigned int bufsize; struct input_event buffer[0]; }; struct evdev { int open; struct input_handle handle; struct evdev_client __attribute__((btf_type_tag("rcu"))) *grab; struct list_head client_list; spinlock_t client_lock; struct mutex mutex; struct device dev; struct cdev cdev; bool exist; }; struct input_mask { __u32 type; __u32 codes_size; __u64 codes_ptr; }; 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_arg { unsigned int min; unsigned int max; char *error; }; 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; 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 pidff_usage { struct hid_field *field; s32 *value; }; struct pidff_device { struct hid_device *hid; struct hid_report *reports[13]; struct pidff_usage set_effect[7]; struct pidff_usage set_envelope[5]; struct pidff_usage set_condition[8]; struct pidff_usage set_periodic[5]; struct pidff_usage set_constant[2]; struct pidff_usage set_ramp[3]; struct pidff_usage device_gain[1]; struct pidff_usage block_load[2]; struct pidff_usage pool[3]; struct pidff_usage effect_operation[2]; struct pidff_usage block_free[1]; struct hid_field *create_new_effect_type; struct hid_field *set_effect_type; struct hid_field *effect_direction; struct hid_field *device_control; struct hid_field *block_load_status; struct hid_field *effect_operation_status; int control_id[2]; int type_id[11]; int status_id[2]; int operation_id[2]; int pid_id[64]; }; enum { NHLT_CONFIG_TYPE_GENERIC = 0, NHLT_CONFIG_TYPE_MIC_ARRAY = 1, }; enum { NHLT_MIC_ARRAY_2CH_SMALL = 10, NHLT_MIC_ARRAY_2CH_BIG = 11, NHLT_MIC_ARRAY_4CH_1ST_GEOM = 12, NHLT_MIC_ARRAY_4CH_L_SHAPED = 13, NHLT_MIC_ARRAY_4CH_2ND_GEOM = 14, NHLT_MIC_ARRAY_VENDOR_DEFINED = 15, }; enum nhlt_device_type { NHLT_DEVICE_BT = 0, NHLT_DEVICE_DMIC = 1, NHLT_DEVICE_I2S = 4, NHLT_DEVICE_INVALID = 5, }; struct nhlt_device_specific_config { u8 virtual_slot; u8 config_type; }; struct nhlt_dmic_array_config { struct nhlt_device_specific_config device_config; u8 array_type; }; struct wav_fmt { u16 fmt_tag; u16 channels; u32 samples_per_sec; u32 avg_bytes_per_sec; u16 block_align; u16 bits_per_sample; u16 cb_size; } __attribute__((packed)); union samples { u16 valid_bits_per_sample; u16 samples_per_block; u16 reserved; }; struct wav_fmt_ext { struct wav_fmt fmt; union samples sample; u32 channel_mask; u8 sub_fmt[16]; }; struct nhlt_specific_cfg { u32 size; u8 caps[0]; }; struct nhlt_fmt_cfg { struct wav_fmt_ext fmt_ext; struct nhlt_specific_cfg config; }; struct nhlt_fmt { u8 fmt_count; struct nhlt_fmt_cfg fmt_config[0]; } __attribute__((packed)); struct nhlt_vendor_dmic_array_config { struct nhlt_dmic_array_config dmic_config; u8 nb_mics; }; struct nhlt_endpoint { u32 length; u8 linktype; u8 instance_id; u16 vendor_id; u16 device_id; u16 revision_id; u32 subsystem_id; u8 device_type; u8 direction; u8 virtual_bus_id; struct nhlt_specific_cfg config; } __attribute__((packed)); struct nhlt_acpi_table { struct acpi_table_header header; u8 endpoint_count; struct nhlt_endpoint desc[0]; } __attribute__((packed)); 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, }; struct sk_psock_link { struct list_head list; struct bpf_map *map; void *link_raw; }; 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; }; enum ctattr_timeout_udp { CTA_TIMEOUT_UDP_UNSPEC = 0, CTA_TIMEOUT_UDP_UNREPLIED = 1, CTA_TIMEOUT_UDP_REPLIED = 2, __CTA_TIMEOUT_UDP_MAX = 3, }; struct xt_state_info { unsigned int statemask; }; 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; possible_net_t 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 xfrm_migrate; struct xfrm_kmaddress; struct xfrm_mgr { struct list_head list; int (*notify)(struct xfrm_state *, const struct km_event *); int (*acquire)(struct xfrm_state *, struct xfrm_tmpl *, struct xfrm_policy *); struct xfrm_policy * (*compile_policy)(struct sock *, int, u8 *, int, int *); int (*new_mapping)(struct xfrm_state *, xfrm_address_t *, __be16); int (*notify_policy)(struct xfrm_policy *, int, const struct km_event *); int (*report)(struct net *, u8, struct xfrm_selector *, xfrm_address_t *); int (*migrate)(const struct xfrm_selector *, u8, u8, const struct xfrm_migrate *, int, const struct xfrm_kmaddress *, const struct xfrm_encap_tmpl *); bool (*is_alive)(const struct km_event *); }; struct xfrm_migrate { xfrm_address_t old_daddr; xfrm_address_t old_saddr; xfrm_address_t new_daddr; xfrm_address_t new_saddr; u8 proto; u8 mode; u16 reserved; u32 reqid; u16 old_family; u16 new_family; }; struct xfrm_kmaddress { xfrm_address_t local; xfrm_address_t remote; u32 reserved; u16 family; }; struct xfrmk_sadinfo { u32 sadhcnt; u32 sadhmcnt; u32 sadcnt; }; struct xfrm_translator { int (*alloc_compat)(struct sk_buff *, const struct nlmsghdr *); struct nlmsghdr * (*rcv_msg_compat)(const struct nlmsghdr *, int, const struct nla_policy *, struct netlink_ext_ack *); int (*xlate_user_policy_sockptr)(u8 **, int); struct module *owner; }; struct ipv6_tlv_tnl_enc_lim { __u8 type; __u8 length; __u8 encap_limit; }; struct ip6gre_net { struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tunnels[128]; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun_erspan; struct net_device *fb_tunnel_dev; }; struct ip6_tnl_parm2 { char name[16]; int link; __u8 proto; __u8 encap_limit; __u8 hop_limit; __be32 flowinfo; __u32 flags; struct in6_addr laddr; struct in6_addr raddr; __be16 i_flags; __be16 o_flags; __be32 i_key; __be32 o_key; }; struct gss_pipe; struct gss_auth { struct kref kref; struct hlist_node hash; struct rpc_auth rpc_auth; struct gss_api_mech *mech; enum rpc_gss_svc service; struct rpc_clnt *client; struct net *net; netns_tracker ns_tracker; struct gss_pipe *gss_pipe[2]; const char *target_name; }; struct gss_pipe { struct rpc_pipe_dir_object pdo; struct rpc_pipe *pipe; struct rpc_clnt *clnt; const char *name; struct kref kref; }; struct gss_upcall_msg { refcount_t count; kuid_t uid; const char *service_name; struct rpc_pipe_msg msg; struct list_head list; struct gss_auth *auth; struct rpc_pipe *pipe; struct rpc_wait_queue rpc_waitqueue; wait_queue_head_t waitqueue; struct gss_cl_ctx *ctx; char databuf[256]; }; struct gss_alloc_pdo { struct rpc_clnt *clnt; const char *name; const struct rpc_pipe_ops *upcall_ops; }; enum ocb_deferred_task_flags { OCB_WORK_HOUSEKEEPING = 0, }; 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_MAX = 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 hybrid_pmu_type { hybrid_big = 64, hybrid_small = 32, hybrid_big_small = 96, }; enum { X86_PERF_KFREE_SHARED = 0, X86_PERF_KFREE_EXCL = 1, X86_PERF_KFREE_MAX = 2, }; 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 stack_frame_ia32 { u32 next_frame; u32 return_address; }; 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_init_resources { void (*probe_roms)(); void (*reserve_resources)(); char * (*memory_setup)(); }; struct x86_init_mpparse { void (*setup_ioapic_ids)(); void (*find_smp_config)(); void (*get_smp_config)(unsigned int); }; 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); }; 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 *); }; struct x86_guest { void (*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 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); int (*cpu_up)(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); }; enum { MEMTYPE_EXACT_MATCH = 0, MEMTYPE_END_MATCH = 1, }; struct ptrace_rseq_configuration { __u64 rseq_abi_pointer; __u32 rseq_abi_size; __u32 signature; __u32 flags; __u32 pad; }; 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_peeksiginfo_args { __u64 off; __u32 flags; __s32 nr; }; typedef struct compat_siginfo compat_siginfo_t; enum { GP_IDLE = 0, GP_ENTER = 1, GP_PASSED = 2, GP_EXIT = 3, GP_REPLAY = 4, }; struct klp_ops { struct list_head node; struct list_head func_stack; struct ftrace_ops fops; }; struct ce_unbind { struct clock_event_device *ce; int res; }; 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_q { struct plist_node list; struct task_struct *task; spinlock_t *lock_ptr; 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_pi_state { struct list_head list; struct rt_mutex_base pi_mutex; struct task_struct *owner; refcount_t refcount; union futex_key key; }; 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; }; 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 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; }; 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, }; enum cgroup2_param { Opt_nsdelegate = 0, Opt_favordynmods = 1, Opt_memory_localevents = 2, Opt_memory_recursiveprot = 3, nr__cgroup2_params = 4, }; enum cgroup_opt_features { OPT_FEATURE_COUNT = 0, }; struct cgrp_cset_link { struct cgroup *cgrp; struct css_set *cset; struct list_head cset_link; struct list_head cgrp_link; }; 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; }; struct trace_event_data_offsets_cgroup { u32 path; }; struct trace_event_data_offsets_cgroup_migrate { u32 dst_path; u32 comm; }; struct trace_event_data_offsets_cgroup_event { u32 path; }; struct cgroup_mgctx { struct list_head preloaded_src_csets; struct list_head preloaded_dst_csets; struct cgroup_taskset tset; u16 ss_mask; }; 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; }; 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 {}; 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[8]; }; 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; int len; struct pollfd entries[0]; }; struct compat_sel_arg_struct { compat_ulong_t n; compat_uptr_t inp; compat_uptr_t outp; compat_uptr_t exp; compat_uptr_t tvp; }; 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 compat_sigset_argpack { compat_uptr_t p; compat_size_t size; }; 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; } Node; typedef struct { __le32 *p; __le32 key; struct buffer_head *bh; } Indirect; 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 recovery_info { tid_t start_transaction; tid_t end_transaction; int nr_replays; int nr_revokes; int nr_revoke_hits; }; 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 sk_security_struct { enum { NLBL_UNSET = 0, NLBL_REQUIRE = 1, NLBL_LABELED = 2, NLBL_REQSKB = 3, NLBL_CONNLABELED = 4, } nlbl_state; struct netlbl_lsm_secattr *nlbl_secattr; u32 sid; u32 peer_sid; u16 sclass; enum { SCTP_ASSOC_UNSET = 0, SCTP_ASSOC_SET = 1, } sctp_assoc_state; }; enum sctp_endpoint_type { SCTP_EP_TYPE_SOCKET = 0, SCTP_EP_TYPE_ASSOCIATION = 1, }; enum sctp_socket_type { SCTP_SOCKET_UDP = 0, SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, SCTP_SOCKET_TCP = 2, }; enum sctp_scope { SCTP_SCOPE_GLOBAL = 0, SCTP_SCOPE_PRIVATE = 1, SCTP_SCOPE_LINK = 2, SCTP_SCOPE_LOOPBACK = 3, SCTP_SCOPE_UNUSABLE = 4, }; enum sctp_state { SCTP_STATE_CLOSED = 0, SCTP_STATE_COOKIE_WAIT = 1, SCTP_STATE_COOKIE_ECHOED = 2, SCTP_STATE_ESTABLISHED = 3, SCTP_STATE_SHUTDOWN_PENDING = 4, SCTP_STATE_SHUTDOWN_SENT = 5, SCTP_STATE_SHUTDOWN_RECEIVED = 6, SCTP_STATE_SHUTDOWN_ACK_SENT = 7, }; union sctp_addr { struct sockaddr_in v4; struct sockaddr_in6 v6; struct sockaddr sa; }; struct sctp_tsnmap { unsigned long *tsn_map; __u32 base_tsn; __u32 cumulative_tsn_ack_point; __u32 max_tsn_seen; __u16 len; __u16 pending_data; __u16 num_dup_tsns; __be32 dup_tsns[16]; }; struct sctp_inithdr_host { __u32 init_tag; __u32 a_rwnd; __u16 num_outbound_streams; __u16 num_inbound_streams; __u32 initial_tsn; }; struct sctp_chunk; struct sctp_inq { struct list_head in_chunk_list; struct sctp_chunk *in_progress; struct work_struct immediate; }; struct sctp_bind_addr { __u16 port; struct list_head address_list; }; struct sctp_ep_common { enum sctp_endpoint_type type; refcount_t refcnt; bool dead; struct sock *sk; struct net *net; struct sctp_inq inqueue; struct sctp_bind_addr bind_addr; }; typedef __s32 sctp_assoc_t; struct sctp_init_chunk { struct sctp_chunkhdr chunk_hdr; struct sctp_inithdr init_hdr; }; struct sctp_cookie { __u32 my_vtag; __u32 peer_vtag; __u32 my_ttag; __u32 peer_ttag; ktime_t expiration; __u16 sinit_num_ostreams; __u16 sinit_max_instreams; __u32 initial_tsn; union sctp_addr peer_addr; __u16 my_port; __u8 prsctp_capable; __u8 padding; __u32 adaptation_ind; __u8 auth_random[36]; __u8 auth_hmacs[10]; __u8 auth_chunks[20]; __u32 raw_addr_list_len; struct sctp_init_chunk peer_init[0]; }; struct sctp_stream_out_ext; struct sctp_stream_out { union { __u32 mid; __u16 ssn; }; __u32 mid_uo; struct sctp_stream_out_ext *ext; __u8 state; }; struct sctp_stream_in { union { __u32 mid; __u16 ssn; }; __u32 mid_uo; __u32 fsn; __u32 fsn_uo; char pd_mode; char pd_mode_uo; }; struct sctp_stream_interleave; struct sctp_stream { struct { struct __genradix tree; struct sctp_stream_out type[0]; } out; struct { struct __genradix tree; struct sctp_stream_in type[0]; } in; __u16 outcnt; __u16 incnt; struct sctp_stream_out *out_curr; union { struct { struct list_head prio_list; }; struct { struct list_head rr_list; struct sctp_stream_out_ext *rr_next; }; }; struct sctp_stream_interleave *si; }; struct sctp_sched_ops; struct sctp_outq { struct sctp_association *asoc; struct list_head out_chunk_list; struct sctp_sched_ops *sched; unsigned int out_qlen; unsigned int error; struct list_head control_chunk_list; struct list_head sacked; struct list_head retransmit; struct list_head abandoned; __u32 outstanding_bytes; char fast_rtx; char cork; }; struct sctp_ulpq { char pd_mode; struct sctp_association *asoc; struct sk_buff_head reasm; struct sk_buff_head reasm_uo; struct sk_buff_head lobby; }; struct sctp_priv_assoc_stats { struct __kernel_sockaddr_storage obs_rto_ipaddr; __u64 max_obs_rto; __u64 isacks; __u64 osacks; __u64 opackets; __u64 ipackets; __u64 rtxchunks; __u64 outofseqtsns; __u64 idupchunks; __u64 gapcnt; __u64 ouodchunks; __u64 iuodchunks; __u64 oodchunks; __u64 iodchunks; __u64 octrlchunks; __u64 ictrlchunks; }; struct sctp_endpoint; struct sctp_transport; struct sctp_random_param; struct sctp_chunks_param; struct sctp_hmac_algo_param; struct sctp_auth_bytes; struct sctp_shared_key; struct sctp_association { struct sctp_ep_common base; struct list_head asocs; sctp_assoc_t assoc_id; struct sctp_endpoint *ep; struct sctp_cookie c; struct { struct list_head transport_addr_list; __u32 rwnd; __u16 transport_count; __u16 port; struct sctp_transport *primary_path; union sctp_addr primary_addr; struct sctp_transport *active_path; struct sctp_transport *retran_path; struct sctp_transport *last_sent_to; struct sctp_transport *last_data_from; struct sctp_tsnmap tsn_map; __be16 addip_disabled_mask; __u16 ecn_capable: 1; __u16 ipv4_address: 1; __u16 ipv6_address: 1; __u16 hostname_address: 1; __u16 asconf_capable: 1; __u16 prsctp_capable: 1; __u16 reconf_capable: 1; __u16 intl_capable: 1; __u16 auth_capable: 1; __u16 sack_needed: 1; __u16 sack_generation: 1; __u16 zero_window_announced: 1; __u32 sack_cnt; __u32 adaptation_ind; struct sctp_inithdr_host i; void *cookie; int cookie_len; __u32 addip_serial; struct sctp_random_param *peer_random; struct sctp_chunks_param *peer_chunks; struct sctp_hmac_algo_param *peer_hmacs; } peer; enum sctp_state state; int overall_error_count; ktime_t cookie_life; unsigned long rto_initial; unsigned long rto_max; unsigned long rto_min; int max_burst; int max_retrans; __u16 pf_retrans; __u16 ps_retrans; __u16 max_init_attempts; __u16 init_retries; unsigned long max_init_timeo; unsigned long hbinterval; unsigned long probe_interval; __be16 encap_port; __u16 pathmaxrxt; __u32 flowlabel; __u8 dscp; __u8 pmtu_pending; __u32 pathmtu; __u32 param_flags; __u32 sackfreq; unsigned long sackdelay; unsigned long timeouts[12]; struct timer_list timers[12]; struct sctp_transport *shutdown_last_sent_to; struct sctp_transport *init_last_sent_to; int shutdown_retries; __u32 next_tsn; __u32 ctsn_ack_point; __u32 adv_peer_ack_point; __u32 highest_sacked; __u32 fast_recovery_exit; __u8 fast_recovery; __u16 unack_data; __u32 rtx_data_chunks; __u32 rwnd; __u32 a_rwnd; __u32 rwnd_over; __u32 rwnd_press; int sndbuf_used; atomic_t rmem_alloc; wait_queue_head_t wait; __u32 frag_point; __u32 user_frag; int init_err_counter; int init_cycle; __u16 default_stream; __u16 default_flags; __u32 default_ppid; __u32 default_context; __u32 default_timetolive; __u32 default_rcv_context; struct sctp_stream stream; struct sctp_outq outqueue; struct sctp_ulpq ulpq; __u32 last_ecne_tsn; __u32 last_cwr_tsn; int numduptsns; struct sctp_chunk *addip_last_asconf; struct list_head asconf_ack_list; struct list_head addip_chunk_list; __u32 addip_serial; int src_out_of_asoc_ok; union sctp_addr *asconf_addr_del_pending; struct sctp_transport *new_transport; struct list_head endpoint_shared_keys; struct sctp_auth_bytes *asoc_shared_key; struct sctp_shared_key *shkey; __u16 default_hmac_id; __u16 active_key_id; __u8 need_ecne: 1; __u8 temp: 1; __u8 pf_expose: 2; __u8 force_delay: 1; __u8 strreset_enable; __u8 strreset_outstanding; __u32 strreset_outseq; __u32 strreset_inseq; __u32 strreset_result[2]; struct sctp_chunk *strreset_chunk; struct sctp_priv_assoc_stats stats; int sent_cnt_removable; __u16 subscribe; __u64 abandoned_unsent[3]; __u64 abandoned_sent[3]; u32 secid; u32 peer_secid; struct callback_head rcu; }; struct sctp_paramhdr; struct sctp_cookie_preserve_param; struct sctp_hostname_param; struct sctp_cookie_param; struct sctp_supported_addrs_param; struct sctp_ipv4addr_param; struct sctp_ipv6addr_param; union sctp_addr_param; struct sctp_adaptation_ind_param; struct sctp_supported_ext_param; struct sctp_addip_param; union sctp_params { void *v; struct sctp_paramhdr *p; struct sctp_cookie_preserve_param *life; struct sctp_hostname_param *dns; struct sctp_cookie_param *cookie; struct sctp_supported_addrs_param *sat; struct sctp_ipv4addr_param *v4; struct sctp_ipv6addr_param *v6; union sctp_addr_param *addr; struct sctp_adaptation_ind_param *aind; struct sctp_supported_ext_param *ext; struct sctp_random_param *random; struct sctp_chunks_param *chunks; struct sctp_hmac_algo_param *hmac_algo; struct sctp_addip_param *addip; }; struct sctp_sndrcvinfo { __u16 sinfo_stream; __u16 sinfo_ssn; __u16 sinfo_flags; __u32 sinfo_ppid; __u32 sinfo_context; __u32 sinfo_timetolive; __u32 sinfo_tsn; __u32 sinfo_cumtsn; sctp_assoc_t sinfo_assoc_id; }; struct sctp_datahdr; struct sctp_sackhdr; struct sctp_heartbeathdr; struct sctp_sender_hb_info; struct sctp_shutdownhdr; struct sctp_signed_cookie; struct sctp_ecnehdr; struct sctp_cwrhdr; struct sctp_errhdr; struct sctp_addiphdr; struct sctp_fwdtsn_hdr; struct sctp_authhdr; struct sctp_idatahdr; struct sctp_ifwdtsn_hdr; struct sctp_datamsg; struct sctp_chunk { struct list_head list; refcount_t refcnt; int sent_count; union { struct list_head transmitted_list; struct list_head stream_list; }; struct list_head frag_list; struct sk_buff *skb; union { struct sk_buff *head_skb; struct sctp_shared_key *shkey; }; union sctp_params param_hdr; union { __u8 *v; struct sctp_datahdr *data_hdr; struct sctp_inithdr *init_hdr; struct sctp_sackhdr *sack_hdr; struct sctp_heartbeathdr *hb_hdr; struct sctp_sender_hb_info *hbs_hdr; struct sctp_shutdownhdr *shutdown_hdr; struct sctp_signed_cookie *cookie_hdr; struct sctp_ecnehdr *ecne_hdr; struct sctp_cwrhdr *ecn_cwr_hdr; struct sctp_errhdr *err_hdr; struct sctp_addiphdr *addip_hdr; struct sctp_fwdtsn_hdr *fwdtsn_hdr; struct sctp_authhdr *auth_hdr; struct sctp_idatahdr *idata_hdr; struct sctp_ifwdtsn_hdr *ifwdtsn_hdr; } subh; __u8 *chunk_end; struct sctp_chunkhdr *chunk_hdr; struct sctphdr *sctp_hdr; struct sctp_sndrcvinfo sinfo; struct sctp_association *asoc; struct sctp_ep_common *rcvr; unsigned long sent_at; union sctp_addr source; union sctp_addr dest; struct sctp_datamsg *msg; struct sctp_transport *transport; struct sk_buff *auth_chunk; __u16 rtt_in_progress: 1; __u16 has_tsn: 1; __u16 has_ssn: 1; __u16 singleton: 1; __u16 end_of_packet: 1; __u16 ecn_ce_done: 1; __u16 pdiscard: 1; __u16 tsn_gap_acked: 1; __u16 data_accepted: 1; __u16 auth: 1; __u16 has_asconf: 1; __u16 pmtu_probe: 1; __u16 tsn_missing_report: 2; __u16 fast_retransmit: 2; }; struct sctp_shared_key { struct list_head key_list; struct sctp_auth_bytes *key; refcount_t refcnt; __u16 key_id; __u8 deactivated; }; struct sctp_auth_bytes { refcount_t refcnt; __u32 len; __u8 data[0]; }; struct sctp_paramhdr { __be16 type; __be16 length; }; struct sctp_cookie_preserve_param { struct sctp_paramhdr param_hdr; __be32 lifespan_increment; }; struct sctp_hostname_param { struct sctp_paramhdr param_hdr; uint8_t hostname[0]; }; struct sctp_cookie_param { struct sctp_paramhdr p; __u8 body[0]; }; struct sctp_supported_addrs_param { struct sctp_paramhdr param_hdr; __be16 types[0]; }; struct sctp_ipv4addr_param { struct sctp_paramhdr param_hdr; struct in_addr addr; }; struct sctp_ipv6addr_param { struct sctp_paramhdr param_hdr; struct in6_addr addr; }; union sctp_addr_param { struct sctp_paramhdr p; struct sctp_ipv4addr_param v4; struct sctp_ipv6addr_param v6; }; struct sctp_adaptation_ind_param { struct sctp_paramhdr param_hdr; __be32 adaptation_ind; }; struct sctp_supported_ext_param { struct sctp_paramhdr param_hdr; __u8 chunks[0]; }; struct sctp_random_param { struct sctp_paramhdr param_hdr; __u8 random_val[0]; }; struct sctp_chunks_param { struct sctp_paramhdr param_hdr; __u8 chunks[0]; }; struct sctp_hmac_algo_param { struct sctp_paramhdr param_hdr; __be16 hmac_ids[0]; }; struct sctp_addip_param { struct sctp_paramhdr param_hdr; __be32 crr_id; }; struct sctp_datahdr { __be32 tsn; __be16 stream; __be16 ssn; __u32 ppid; __u8 payload[0]; }; struct sctp_gap_ack_block { __be16 start; __be16 end; }; union sctp_sack_variable { struct sctp_gap_ack_block gab; __be32 dup; }; struct sctp_sackhdr { __be32 cum_tsn_ack; __be32 a_rwnd; __be16 num_gap_ack_blocks; __be16 num_dup_tsns; union sctp_sack_variable variable[0]; }; struct sctp_heartbeathdr { struct sctp_paramhdr info; }; struct sctp_sender_hb_info { struct sctp_paramhdr param_hdr; union sctp_addr daddr; unsigned long sent_at; __u64 hb_nonce; __u32 probe_size; }; struct sctp_shutdownhdr { __be32 cum_tsn_ack; }; struct sctp_signed_cookie { __u8 signature[32]; __u32 __pad; struct sctp_cookie c; } __attribute__((packed)); struct sctp_ecnehdr { __be32 lowest_tsn; }; struct sctp_cwrhdr { __be32 lowest_tsn; }; struct sctp_errhdr { __be16 cause; __be16 length; __u8 variable[0]; }; struct sctp_addiphdr { __be32 serial; __u8 params[0]; }; struct sctp_fwdtsn_skip { __be16 stream; __be16 ssn; }; struct sctp_fwdtsn_hdr { __be32 new_cum_tsn; struct sctp_fwdtsn_skip skip[0]; }; struct sctp_authhdr { __be16 shkey_id; __be16 hmac_id; __u8 hmac[0]; }; struct sctp_idatahdr { __be32 tsn; __be16 stream; __be16 reserved; __be32 mid; union { __u32 ppid; __be32 fsn; }; __u8 payload[0]; }; struct sctp_ifwdtsn_skip { __be16 stream; __u8 reserved; __u8 flags; __be32 mid; }; struct sctp_ifwdtsn_hdr { __be32 new_cum_tsn; struct sctp_ifwdtsn_skip skip[0]; }; struct sctp_datamsg { struct list_head chunks; refcount_t refcnt; unsigned long expires_at; int send_error; u8 send_failed: 1; u8 can_delay: 1; u8 abandoned: 1; }; struct sctp_packet { __u16 source_port; __u16 destination_port; __u32 vtag; struct list_head chunk_list; size_t overhead; size_t size; size_t max_size; struct sctp_transport *transport; struct sctp_chunk *auth; u8 has_cookie_echo: 1; u8 has_sack: 1; u8 has_auth: 1; u8 has_data: 1; u8 ipfragok: 1; }; struct sctp_af; struct sctp_transport { struct list_head transports; struct rhlist_head node; refcount_t refcnt; __u32 rto_pending: 1; __u32 hb_sent: 1; __u32 pmtu_pending: 1; __u32 dst_pending_confirm: 1; __u32 sack_generation: 1; u32 dst_cookie; struct flowi fl; union sctp_addr ipaddr; struct sctp_af *af_specific; struct sctp_association *asoc; unsigned long rto; __u32 rtt; __u32 rttvar; __u32 srtt; __u32 cwnd; __u32 ssthresh; __u32 partial_bytes_acked; __u32 flight_size; __u32 burst_limited; struct dst_entry *dst; union sctp_addr saddr; unsigned long hbinterval; unsigned long probe_interval; unsigned long sackdelay; __u32 sackfreq; atomic_t mtu_info; ktime_t last_time_heard; unsigned long last_time_sent; unsigned long last_time_ecne_reduced; __be16 encap_port; __u16 pathmaxrxt; __u32 flowlabel; __u8 dscp; __u16 pf_retrans; __u16 ps_retrans; __u32 pathmtu; __u32 param_flags; int init_sent_count; int state; unsigned short error_count; struct timer_list T3_rtx_timer; struct timer_list hb_timer; struct timer_list proto_unreach_timer; struct timer_list reconf_timer; struct timer_list probe_timer; struct list_head transmitted; struct sctp_packet packet; struct list_head send_ready; struct { __u32 next_tsn_at_change; char changeover_active; char cycling_changeover; char cacc_saw_newack; } cacc; struct { __u16 pmtu; __u16 probe_size; __u16 probe_high; __u8 probe_count; __u8 state; } pl; __u64 hb_nonce; struct callback_head rcu; }; struct sctp_sock; struct sctp_af { int (*sctp_xmit)(struct sk_buff *, struct sctp_transport *); 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 (*get_dst)(struct sctp_transport *, union sctp_addr *, struct flowi *, struct sock *); void (*get_saddr)(struct sctp_sock *, struct sctp_transport *, struct flowi *); void (*copy_addrlist)(struct list_head *, struct net_device *); int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *); void (*addr_copy)(union sctp_addr *, union sctp_addr *); void (*from_skb)(union sctp_addr *, struct sk_buff *, int); void (*from_sk)(union sctp_addr *, struct sock *); bool (*from_addr_param)(union sctp_addr *, union sctp_addr_param *, __be16, int); int (*to_addr_param)(const union sctp_addr *, union sctp_addr_param *); int (*addr_valid)(union sctp_addr *, struct sctp_sock *, const struct sk_buff *); enum sctp_scope (*scope)(union sctp_addr *); void (*inaddr_any)(union sctp_addr *, __be16); int (*is_any)(const union sctp_addr *); int (*available)(union sctp_addr *, struct sctp_sock *); int (*skb_iif)(const struct sk_buff *); int (*skb_sdif)(const struct sk_buff *); int (*is_ce)(const struct sk_buff *); void (*seq_dump_addr)(struct seq_file *, union sctp_addr *); void (*ecn_capable)(struct sock *); __u16 net_header_len; int sockaddr_len; int (*ip_options_len)(struct sock *); sa_family_t sa_family; struct list_head list; }; struct sctp_rtoinfo { sctp_assoc_t srto_assoc_id; __u32 srto_initial; __u32 srto_max; __u32 srto_min; }; struct sctp_paddrparams { sctp_assoc_t spp_assoc_id; struct __kernel_sockaddr_storage spp_address; __u32 spp_hbinterval; __u16 spp_pathmaxrxt; __u32 spp_pathmtu; __u32 spp_sackdelay; __u32 spp_flags; __u32 spp_ipv6_flowlabel; __u8 spp_dscp; char: 8; } __attribute__((packed)); struct sctp_assocparams { sctp_assoc_t sasoc_assoc_id; __u16 sasoc_asocmaxrxt; __u16 sasoc_number_peer_destinations; __u32 sasoc_peer_rwnd; __u32 sasoc_local_rwnd; __u32 sasoc_cookie_life; }; struct sctp_initmsg { __u16 sinit_num_ostreams; __u16 sinit_max_instreams; __u16 sinit_max_attempts; __u16 sinit_max_init_timeo; }; struct sctp_pf; struct sctp_bind_bucket; struct sctp_sock { struct inet_sock inet; enum sctp_socket_type type; int: 32; struct sctp_pf *pf; struct crypto_shash *hmac; char *sctp_hmac_alg; struct sctp_endpoint *ep; struct sctp_bind_bucket *bind_hash; __u16 default_stream; short: 16; __u32 default_ppid; __u16 default_flags; short: 16; __u32 default_context; __u32 default_timetolive; __u32 default_rcv_context; int max_burst; __u32 hbinterval; __u32 probe_interval; __be16 udp_port; __be16 encap_port; __u16 pathmaxrxt; short: 16; __u32 flowlabel; __u8 dscp; char: 8; __u16 pf_retrans; __u16 ps_retrans; short: 16; __u32 pathmtu; __u32 sackdelay; __u32 sackfreq; __u32 param_flags; __u32 default_ss; struct sctp_rtoinfo rtoinfo; struct sctp_paddrparams paddrparam; struct sctp_assocparams assocparams; __u16 subscribe; struct sctp_initmsg initmsg; short: 16; int user_frag; __u32 autoclose; __u32 adaptation_ind; __u32 pd_point; __u16 nodelay: 1; __u16 pf_expose: 2; __u16 reuse: 1; __u16 disable_fragments: 1; __u16 v4mapped: 1; __u16 frag_interleave: 1; __u16 recvrcvinfo: 1; __u16 recvnxtinfo: 1; __u16 data_ready_signalled: 1; int: 22; atomic_t pd_mode; struct sk_buff_head pd_lobby; struct list_head auto_asconf_list; int do_auto_asconf; int: 32; } __attribute__((packed)); struct sctp_ulpevent; struct sctp_pf { void (*event_msgname)(struct sctp_ulpevent *, char *, int *); void (*skb_msgname)(struct sk_buff *, char *, int *); int (*af_supported)(sa_family_t, struct sctp_sock *); int (*cmp_addr)(const union sctp_addr *, const union sctp_addr *, struct sctp_sock *); int (*bind_verify)(struct sctp_sock *, union sctp_addr *); int (*send_verify)(struct sctp_sock *, union sctp_addr *); int (*supported_addrs)(const struct sctp_sock *, __be16 *); struct sock * (*create_accept_sk)(struct sock *, struct sctp_association *, bool); int (*addr_to_user)(struct sctp_sock *, union sctp_addr *); void (*to_sk_saddr)(union sctp_addr *, struct sock *); void (*to_sk_daddr)(union sctp_addr *, struct sock *); void (*copy_ip_options)(struct sock *, struct sock *); struct sctp_af *af; }; struct sctp_ulpevent { struct sctp_association *asoc; struct sctp_chunk *chunk; unsigned int rmem_len; union { __u32 mid; __u16 ssn; }; union { __u32 ppid; __u32 fsn; }; __u32 tsn; __u32 cumtsn; __u16 stream; __u16 flags; __u16 msg_flags; } __attribute__((packed)); struct sctp_endpoint { struct sctp_ep_common base; struct hlist_node node; int hashent; struct list_head asocs; __u8 secret_key[32]; __u8 *digest; __u32 sndbuf_policy; __u32 rcvbuf_policy; struct crypto_shash **auth_hmacs; struct sctp_hmac_algo_param *auth_hmacs_list; struct sctp_chunks_param *auth_chunk_list; struct list_head endpoint_shared_keys; __u16 active_key_id; __u8 ecn_enable: 1; __u8 auth_enable: 1; __u8 intl_enable: 1; __u8 prsctp_enable: 1; __u8 asconf_enable: 1; __u8 reconf_enable: 1; __u8 strreset_enable; struct callback_head rcu; }; struct sctp_bind_bucket { unsigned short port; signed char fastreuse; signed char fastreuseport; kuid_t fastuid; struct hlist_node node; struct hlist_head owner; struct net *net; }; struct sctp_stream_priorities; struct sctp_stream_out_ext { __u64 abandoned_unsent[3]; __u64 abandoned_sent[3]; struct list_head outq; union { struct { struct list_head prio_list; struct sctp_stream_priorities *prio_head; }; struct { struct list_head rr_list; }; }; }; struct sctp_stream_priorities { struct list_head prio_sched; struct list_head active; struct sctp_stream_out_ext *next; __u16 prio; __u16 users; }; struct sctp_stream_interleave { __u16 data_chunk_len; __u16 ftsn_chunk_len; struct sctp_chunk * (*make_datafrag)(const struct sctp_association *, const struct sctp_sndrcvinfo *, int, __u8, gfp_t); void (*assign_number)(struct sctp_chunk *); bool (*validate_data)(struct sctp_chunk *); int (*ulpevent_data)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t); int (*enqueue_event)(struct sctp_ulpq *, struct sctp_ulpevent *); void (*renege_events)(struct sctp_ulpq *, struct sctp_chunk *, gfp_t); void (*start_pd)(struct sctp_ulpq *, gfp_t); void (*abort_pd)(struct sctp_ulpq *, gfp_t); void (*generate_ftsn)(struct sctp_outq *, __u32); bool (*validate_ftsn)(struct sctp_chunk *); void (*report_ftsn)(struct sctp_ulpq *, __u32); void (*handle_ftsn)(struct sctp_ulpq *, struct sctp_chunk *); }; 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; 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_PARTIAL_IO_BIT = 25, REQ_F_CQE32_INIT_BIT = 26, REQ_F_APOLL_MULTISHOT_BIT = 27, REQ_F_CLEAR_POLLIN_BIT = 28, REQ_F_HASH_LOCKED_BIT = 29, REQ_F_SUPPORT_NOWAIT_BIT = 30, REQ_F_ISREG_BIT = 31, __REQ_F_LAST_BIT = 32, }; 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 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 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; }; struct acpi_table_bert { struct acpi_table_header header; u32 region_length; u64 address; }; struct dw_dma_irq_regs { u32 XFER; u32 __pad_XFER; u32 BLOCK; u32 __pad_BLOCK; u32 SRC_TRAN; u32 __pad_SRC_TRAN; u32 DST_TRAN; u32 __pad_DST_TRAN; u32 ERROR; u32 __pad_ERROR; }; struct dw_dma_regs { struct dw_dma_chan_regs CHAN[8]; struct dw_dma_irq_regs RAW; struct dw_dma_irq_regs STATUS; struct dw_dma_irq_regs MASK; struct dw_dma_irq_regs CLEAR; u32 STATUS_INT; u32 __pad_STATUS_INT; u32 REQ_SRC; u32 __pad_REQ_SRC; u32 REQ_DST; u32 __pad_REQ_DST; u32 SGL_REQ_SRC; u32 __pad_SGL_REQ_SRC; u32 SGL_REQ_DST; u32 __pad_SGL_REQ_DST; u32 LAST_SRC; u32 __pad_LAST_SRC; u32 LAST_DST; u32 __pad_LAST_DST; u32 CFG; u32 __pad_CFG; u32 CH_EN; u32 __pad_CH_EN; u32 ID; u32 __pad_ID; u32 TEST; u32 __pad_TEST; u32 CLASS_PRIORITY0; u32 __pad_CLASS_PRIORITY0; u32 CLASS_PRIORITY1; u32 __pad_CLASS_PRIORITY1; u32 __reserved; u32 DWC_PARAMS[8]; u32 MULTI_BLK_TYPE; u32 MAX_BLK_SIZE; u32 DW_PARAMS; u32 COMP_TYPE; u32 COMP_VERSION; u32 FIFO_PARTITION0; u32 __pad_FIFO_PARTITION0; u32 FIFO_PARTITION1; u32 __pad_FIFO_PARTITION1; u32 SAI_ERR; u32 __pad_SAI_ERR; u32 GLOBAL_CFG; u32 __pad_GLOBAL_CFG; }; 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; char: 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 kbd_led_trigger { struct led_trigger trigger; unsigned int mask; }; 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 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 tpm1_get_random_out { __be32 rng_data_len; u8 rng_data[128]; }; struct drm_mode_crtc { __u64 set_connectors_ptr; __u32 count_connectors; __u32 crtc_id; __u32 fb_id; __u32 x; __u32 y; __u32 gamma_size; __u32 mode_valid; struct drm_mode_modeinfo mode; }; struct drm_dmi_panel_orientation_data { int width; int height; const char * const *bios_dates; int orientation; }; struct uc_fw_blob { const char *path; bool legacy; u8 major; u8 minor; u8 patch; bool loaded_via_gsc; } __attribute__((packed)); struct uc_fw_platform_requirement { enum intel_platform p; u8 rev; const struct uc_fw_blob blob; } __attribute__((packed)); struct fw_blobs_by_type { const struct uc_fw_platform_requirement *blobs; u32 count; }; struct uc_css_header { u32 module_type; u32 header_size_dw; u32 header_version; u32 module_id; u32 module_vendor; u32 date; u32 size_dw; u32 key_size_dw; u32 modulus_size_dw; u32 exponent_size_dw; u32 time; char username[8]; char buildnumber[12]; u32 sw_version; u32 vf_version; u32 reserved0[12]; union { u32 private_data_size; u32 reserved1; }; u32 header_info; }; struct dbuf_slice_conf_entry { u8 active_pipes; u8 dbuf_mask[4]; bool join_mbus; }; struct skl_hw_state { struct skl_ddb_entry ddb[8]; struct skl_ddb_entry ddb_y[8]; struct skl_pipe_wm wm; }; typedef struct { u32 val; } uint_fixed_16_16_t; struct skl_wm_params { bool x_tiled; bool y_tiled; bool rc_surface; bool is_planar; u32 width; u8 cpp; u32 plane_pixel_rate; u32 y_min_scanlines; u32 plane_bytes_per_line; uint_fixed_16_16_t plane_blocks_per_line; uint_fixed_16_16_t y_tile_minimum; u32 linetime_us; u32 dbuf_block_size; }; struct skl_plane_ddb_iter { u64 data_rate; u16 start; u16 size; }; enum drm_i915_perf_property_id { DRM_I915_PERF_PROP_CTX_HANDLE = 1, DRM_I915_PERF_PROP_SAMPLE_OA = 2, DRM_I915_PERF_PROP_OA_METRICS_SET = 3, DRM_I915_PERF_PROP_OA_FORMAT = 4, DRM_I915_PERF_PROP_OA_EXPONENT = 5, DRM_I915_PERF_PROP_HOLD_PREEMPTION = 6, DRM_I915_PERF_PROP_GLOBAL_SSEU = 7, DRM_I915_PERF_PROP_POLL_OA_PERIOD = 8, DRM_I915_PERF_PROP_MAX = 9, }; enum drm_i915_oa_format { I915_OA_FORMAT_A13 = 1, I915_OA_FORMAT_A29 = 2, I915_OA_FORMAT_A13_B8_C8 = 3, I915_OA_FORMAT_B4_C8 = 4, I915_OA_FORMAT_A45_B8_C8 = 5, I915_OA_FORMAT_B4_C8_A16 = 6, I915_OA_FORMAT_C4_B8 = 7, I915_OA_FORMAT_A12 = 8, I915_OA_FORMAT_A12_B8_C8 = 9, I915_OA_FORMAT_A32u40_A4u32_B8_C8 = 10, I915_OAR_FORMAT_A32u40_A4u32_B8_C8 = 11, I915_OA_FORMAT_A24u40_A14u32_B8_C8 = 12, I915_OA_FORMAT_MAX = 13, }; enum slpc_gucrc_mode { SLPC_GUCRC_MODE_HW = 0, SLPC_GUCRC_MODE_GUCRC_NO_RC6 = 1, SLPC_GUCRC_MODE_GUCRC_STATIC_TIMEOUT = 2, SLPC_GUCRC_MODE_GUCRC_DYNAMIC_HYSTERESIS = 3, SLPC_GUCRC_MODE_MAX = 4, }; enum { START_TS = 0, NOW_TS = 1, DELTA_TS = 2, JUMP_PREDICATE = 3, DELTA_TARGET = 4, N_CS_GPR = 5, }; enum drm_i915_perf_record_type { DRM_I915_PERF_RECORD_SAMPLE = 1, DRM_I915_PERF_RECORD_OA_REPORT_LOST = 2, DRM_I915_PERF_RECORD_OA_BUFFER_LOST = 3, DRM_I915_PERF_RECORD_MAX = 4, }; struct i915_oa_config_bo { struct llist_node node; struct i915_oa_config *oa_config; struct i915_vma *vma; }; struct perf_open_properties { u32 sample_flags; u64 single_context: 1; u64 hold_preemption: 1; u64 ctx_handle; int metrics_set; int oa_format; bool oa_periodic; int oa_period_exponent; struct intel_engine_cs *engine; bool has_sseu; struct intel_sseu sseu; u64 poll_oa_period; }; struct drm_i915_perf_open_param { __u32 flags; __u32 num_properties; __u64 properties_ptr; }; struct drm_i915_perf_record_header { __u32 type; __u16 pad; __u16 size; }; struct flex { i915_reg_t reg; u32 offset; u32 value; }; typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); enum ata_lpm_hints { ATA_LPM_EMPTY = 1, ATA_LPM_HIPM = 2, ATA_LPM_WAKE_ONLY = 4, }; struct ahci_sg { __le32 addr; __le32 addr_hi; __le32 reserved; __le32 flags_size; }; 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)); typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); struct phy_reg { u16 reg; u16 val; }; 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 ps2pp_info { u8 model; u8 kind; u16 features; }; enum { SNDRV_HWDEP_IOCTL_DSP_LOAD32 = 1079003139, }; struct snd_hwdep_info { unsigned int device; int card; unsigned char id[64]; unsigned char name[80]; int iface; unsigned char reserved[64]; }; struct snd_hwdep_dsp_image32 { u32 index; unsigned char name[64]; u32 image; u32 length; u32 driver_data; }; struct neigh_sysctl_table { struct ctl_table_header *sysctl_header; struct ctl_table neigh_vars[22]; }; 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 { 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; }; struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; }; enum offload_act_command { FLOW_ACT_REPLACE = 0, FLOW_ACT_DESTROY = 1, FLOW_ACT_STATS = 2, }; enum { TCA_ACT_UNSPEC = 0, TCA_ACT_KIND = 1, TCA_ACT_OPTIONS = 2, TCA_ACT_INDEX = 3, TCA_ACT_STATS = 4, TCA_ACT_PAD = 5, TCA_ACT_COOKIE = 6, TCA_ACT_FLAGS = 7, TCA_ACT_HW_STATS = 8, TCA_ACT_USED_HW_STATS = 9, TCA_ACT_IN_HW_COUNT = 10, __TCA_ACT_MAX = 11, }; enum pedit_header_type { TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0, TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1, TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2, TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3, TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4, TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5, __PEDIT_HDR_TYPE_MAX = 6, }; enum pedit_cmd { TCA_PEDIT_KEY_EX_CMD_SET = 0, TCA_PEDIT_KEY_EX_CMD_ADD = 1, __PEDIT_CMD_MAX = 2, }; enum { TCA_ROOT_UNSPEC = 0, TCA_ROOT_TAB = 1, TCA_ROOT_FLAGS = 2, TCA_ROOT_COUNT = 3, TCA_ROOT_TIME_DELTA = 4, __TCA_ROOT_MAX = 5, }; struct tc_act_pernet_id { struct list_head list; unsigned int id; }; struct tc_pedit_key; struct tcf_pedit_key_ex; struct tcf_pedit_parms { struct tc_pedit_key *tcfp_keys; struct tcf_pedit_key_ex *tcfp_keys_ex; u32 tcfp_off_max_hint; unsigned char tcfp_nkeys; unsigned char tcfp_flags; struct callback_head rcu; }; struct tc_pedit_key { __u32 mask; __u32 val; __u32 off; __u32 at; __u32 offmask; __u32 shift; }; struct tcf_pedit_key_ex { enum pedit_header_type htype; enum pedit_cmd cmd; }; struct tcf_pedit { struct tc_action common; struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; long: 64; }; struct tcamsg { unsigned char tca_family; unsigned char tca__pad1; unsigned short tca__pad2; }; 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 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_block_cb; 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_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 tc_action_net { struct tcf_idrinfo *idrinfo; const struct tc_action_ops *ops; }; 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; }; struct xfrm_if_decode_session_result; struct xfrm_if_cb { bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *); }; struct xfrm_if_decode_session_result { struct net *net; u32 if_id; }; enum { XFRM_POLICY_TYPE_MAIN = 0, XFRM_POLICY_TYPE_SUB = 1, XFRM_POLICY_TYPE_MAX = 2, XFRM_POLICY_TYPE_ANY = 255, }; enum { XFRM_LOOKUP_ICMP = 1, XFRM_LOOKUP_QUEUE = 2, XFRM_LOOKUP_KEEP_DST_REF = 4, }; enum xfrm_pol_inexact_candidate_type { XFRM_POL_CAND_BOTH = 0, XFRM_POL_CAND_SADDR = 1, XFRM_POL_CAND_DADDR = 2, XFRM_POL_CAND_ANY = 3, XFRM_POL_CAND_MAX = 4, }; struct xfrm_pol_inexact_node { struct rb_node node; union { xfrm_address_t addr; struct callback_head rcu; }; u8 prefixlen; struct rb_root root; struct hlist_head hhead; }; struct xfrm_pol_inexact_key { possible_net_t net; u32 if_id; u16 family; u8 dir; u8 type; }; struct xfrm_pol_inexact_bin { struct xfrm_pol_inexact_key k; struct rhash_head head; struct hlist_head hhead; seqcount_spinlock_t count; struct rb_root root_d; struct rb_root root_s; struct list_head inexact_bins; struct callback_head rcu; }; struct sk_buff_fclones { struct sk_buff skb1; struct sk_buff skb2; refcount_t fclone_ref; }; struct xfrm_pol_inexact_candidates { struct hlist_head *res[4]; }; struct xfrm_flo { struct dst_entry *dst_orig; u8 flags; }; struct xfrmk_spdinfo { u32 incnt; u32 outcnt; u32 fwdcnt; u32 inscnt; u32 outscnt; u32 fwdscnt; u32 spdhcnt; u32 spdhmcnt; }; struct xfrm_policy_walk { struct xfrm_policy_walk_entry walk; u8 type; u32 seq; }; struct ib_core_device { struct device dev; possible_net_t rdma_net; struct kobject *ports_kobj; struct list_head port_list; struct ib_device *owner; }; enum rdma_driver_id { RDMA_DRIVER_UNKNOWN = 0, RDMA_DRIVER_MLX5 = 1, RDMA_DRIVER_MLX4 = 2, RDMA_DRIVER_CXGB3 = 3, RDMA_DRIVER_CXGB4 = 4, RDMA_DRIVER_MTHCA = 5, RDMA_DRIVER_BNXT_RE = 6, RDMA_DRIVER_OCRDMA = 7, RDMA_DRIVER_NES = 8, RDMA_DRIVER_I40IW = 9, RDMA_DRIVER_IRDMA = 9, RDMA_DRIVER_VMW_PVRDMA = 10, RDMA_DRIVER_QEDR = 11, RDMA_DRIVER_HNS = 12, RDMA_DRIVER_USNIC = 13, RDMA_DRIVER_RXE = 14, RDMA_DRIVER_HFI1 = 15, RDMA_DRIVER_QIB = 16, RDMA_DRIVER_EFA = 17, RDMA_DRIVER_SIW = 18, RDMA_DRIVER_ERDMA = 19, RDMA_DRIVER_MANA = 20, }; enum ib_cq_notify_flags { IB_CQ_SOLICITED = 1, IB_CQ_NEXT_COMP = 2, IB_CQ_SOLICITED_MASK = 3, IB_CQ_REPORT_MISSED_EVENTS = 4, }; struct ib_mad; enum rdma_link_layer { IB_LINK_LAYER_UNSPECIFIED = 0, IB_LINK_LAYER_INFINIBAND = 1, IB_LINK_LAYER_ETHERNET = 2, }; enum rdma_netdev_t { RDMA_NETDEV_OPA_VNIC = 0, RDMA_NETDEV_IPOIB = 1, }; enum ib_srq_attr_mask { IB_SRQ_MAX_WR = 1, IB_SRQ_LIMIT = 2, }; enum ib_mr_type { IB_MR_TYPE_MEM_REG = 0, IB_MR_TYPE_SG_GAPS = 1, IB_MR_TYPE_DM = 2, IB_MR_TYPE_USER = 3, IB_MR_TYPE_DMA = 4, IB_MR_TYPE_INTEGRITY = 5, }; enum ib_uverbs_advise_mr_advice { IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH = 0, IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE = 1, IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_NO_FAULT = 2, }; struct uverbs_attr_bundle; struct rdma_cm_id; struct iw_cm_id; struct iw_cm_conn_param; struct ib_qp; struct ib_send_wr; struct ib_recv_wr; struct ib_cq; struct ib_wc; struct ib_srq; struct ib_grh; struct ib_device_attr; struct ib_udata; struct ib_device_modify; struct ib_port_attr; struct ib_port_modify; struct ib_port_immutable; struct rdma_netdev_alloc_params; union ib_gid; struct ib_gid_attr; struct ib_ucontext; struct rdma_user_mmap_entry; struct ib_pd; struct ib_ah; struct rdma_ah_init_attr; struct rdma_ah_attr; struct ib_srq_init_attr; struct ib_srq_attr; struct ib_qp_init_attr; struct ib_qp_attr; struct ib_cq_init_attr; struct ib_mr; struct ib_sge; struct ib_mr_status; struct ib_mw; struct ib_xrcd; struct ib_flow; struct ib_flow_attr; struct ib_flow_action; struct ib_wq; struct ib_wq_init_attr; struct ib_wq_attr; struct ib_rwq_ind_table; struct ib_rwq_ind_table_init_attr; struct ib_dm; struct ib_dm_alloc_attr; struct ib_dm_mr_attr; struct ib_counters; struct ib_counters_read_attr; struct rdma_hw_stats; struct rdma_counter; struct ib_device_ops { struct module *owner; enum rdma_driver_id driver_id; u32 uverbs_abi_ver; unsigned int uverbs_no_driver_id_binding: 1; const struct attribute_group *device_group; const struct attribute_group **port_groups; int (*post_send)(struct ib_qp *, const struct ib_send_wr *, const struct ib_send_wr **); int (*post_recv)(struct ib_qp *, const struct ib_recv_wr *, const struct ib_recv_wr **); void (*drain_rq)(struct ib_qp *); void (*drain_sq)(struct ib_qp *); int (*poll_cq)(struct ib_cq *, int, struct ib_wc *); int (*peek_cq)(struct ib_cq *, int); int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags); int (*post_srq_recv)(struct ib_srq *, const struct ib_recv_wr *, const struct ib_recv_wr **); int (*process_mad)(struct ib_device *, int, u32, const struct ib_wc *, const struct ib_grh *, const struct ib_mad *, struct ib_mad *, size_t *, u16 *); int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *); int (*modify_device)(struct ib_device *, int, struct ib_device_modify *); void (*get_dev_fw_str)(struct ib_device *, char *); const struct cpumask * (*get_vector_affinity)(struct ib_device *, int); int (*query_port)(struct ib_device *, u32, struct ib_port_attr *); int (*modify_port)(struct ib_device *, u32, int, struct ib_port_modify *); int (*get_port_immutable)(struct ib_device *, u32, struct ib_port_immutable *); enum rdma_link_layer (*get_link_layer)(struct ib_device *, u32); struct net_device * (*get_netdev)(struct ib_device *, u32); struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u32, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *)); int (*rdma_netdev_get_params)(struct ib_device *, u32, enum rdma_netdev_t, struct rdma_netdev_alloc_params *); int (*query_gid)(struct ib_device *, u32, int, union ib_gid *); int (*add_gid)(const struct ib_gid_attr *, void **); int (*del_gid)(const struct ib_gid_attr *, void **); int (*query_pkey)(struct ib_device *, u32, u16, u16 *); int (*alloc_ucontext)(struct ib_ucontext *, struct ib_udata *); void (*dealloc_ucontext)(struct ib_ucontext *); int (*mmap)(struct ib_ucontext *, struct vm_area_struct *); void (*mmap_free)(struct rdma_user_mmap_entry *); void (*disassociate_ucontext)(struct ib_ucontext *); int (*alloc_pd)(struct ib_pd *, struct ib_udata *); int (*dealloc_pd)(struct ib_pd *, struct ib_udata *); int (*create_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *); int (*create_user_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *); int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *); int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *); int (*destroy_ah)(struct ib_ah *, u32); int (*create_srq)(struct ib_srq *, struct ib_srq_init_attr *, struct ib_udata *); int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *); int (*query_srq)(struct ib_srq *, struct ib_srq_attr *); int (*destroy_srq)(struct ib_srq *, struct ib_udata *); int (*create_qp)(struct ib_qp *, struct ib_qp_init_attr *, struct ib_udata *); int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *); int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *); int (*destroy_qp)(struct ib_qp *, struct ib_udata *); int (*create_cq)(struct ib_cq *, const struct ib_cq_init_attr *, struct ib_udata *); int (*modify_cq)(struct ib_cq *, u16, u16); int (*destroy_cq)(struct ib_cq *, struct ib_udata *); int (*resize_cq)(struct ib_cq *, int, struct ib_udata *); struct ib_mr * (*get_dma_mr)(struct ib_pd *, int); struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *); struct ib_mr * (*reg_user_mr_dmabuf)(struct ib_pd *, u64, u64, u64, int, int, struct ib_udata *); struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *); int (*dereg_mr)(struct ib_mr *, struct ib_udata *); struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32); struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32); int (*advise_mr)(struct ib_pd *, enum ib_uverbs_advise_mr_advice, u32, struct ib_sge *, u32, struct uverbs_attr_bundle *); int (*map_mr_sg)(struct ib_mr *, struct scatterlist *, int, unsigned int *); int (*check_mr_status)(struct ib_mr *, u32, struct ib_mr_status *); int (*alloc_mw)(struct ib_mw *, struct ib_udata *); int (*dealloc_mw)(struct ib_mw *); int (*attach_mcast)(struct ib_qp *, union ib_gid *, u16); int (*detach_mcast)(struct ib_qp *, union ib_gid *, u16); int (*alloc_xrcd)(struct ib_xrcd *, struct ib_udata *); int (*dealloc_xrcd)(struct ib_xrcd *, struct ib_udata *); struct ib_flow * (*create_flow)(struct ib_qp *, struct ib_flow_attr *, struct ib_udata *); int (*destroy_flow)(struct ib_flow *); int (*destroy_flow_action)(struct ib_flow_action *); int (*set_vf_link_state)(struct ib_device *, int, u32, int); int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *); int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *); int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *); int (*set_vf_guid)(struct ib_device *, int, u32, u64, int); struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *); int (*destroy_wq)(struct ib_wq *, struct ib_udata *); int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *); int (*create_rwq_ind_table)(struct ib_rwq_ind_table *, struct ib_rwq_ind_table_init_attr *, struct ib_udata *); int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *); struct ib_dm * (*alloc_dm)(struct ib_device *, struct ib_ucontext *, struct ib_dm_alloc_attr *, struct uverbs_attr_bundle *); int (*dealloc_dm)(struct ib_dm *, struct uverbs_attr_bundle *); struct ib_mr * (*reg_dm_mr)(struct ib_pd *, struct ib_dm *, struct ib_dm_mr_attr *, struct uverbs_attr_bundle *); int (*create_counters)(struct ib_counters *, struct uverbs_attr_bundle *); int (*destroy_counters)(struct ib_counters *); int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *); int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *); struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *); struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32); int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int); int (*modify_hw_stat)(struct ib_device *, u32, unsigned int, bool); int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *); int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *); int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *); int (*fill_res_cq_entry_raw)(struct sk_buff *, struct ib_cq *); int (*fill_res_qp_entry)(struct sk_buff *, struct ib_qp *); int (*fill_res_qp_entry_raw)(struct sk_buff *, struct ib_qp *); int (*fill_res_cm_id_entry)(struct sk_buff *, struct rdma_cm_id *); int (*enable_driver)(struct ib_device *); void (*dealloc_driver)(struct ib_device *); void (*iw_add_ref)(struct ib_qp *); void (*iw_rem_ref)(struct ib_qp *); struct ib_qp * (*iw_get_qp)(struct ib_device *, int); int (*iw_connect)(struct iw_cm_id *, struct iw_cm_conn_param *); int (*iw_accept)(struct iw_cm_id *, struct iw_cm_conn_param *); int (*iw_reject)(struct iw_cm_id *, const void *, u8); int (*iw_create_listen)(struct iw_cm_id *, int); int (*iw_destroy_listen)(struct iw_cm_id *); int (*counter_bind_qp)(struct rdma_counter *, struct ib_qp *); int (*counter_unbind_qp)(struct ib_qp *); int (*counter_dealloc)(struct rdma_counter *); struct rdma_hw_stats * (*counter_alloc_stats)(struct rdma_counter *); int (*counter_update_stats)(struct rdma_counter *); int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *); int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *); int (*get_numa_node)(struct ib_device *); size_t size_ib_ah; size_t size_ib_counters; size_t size_ib_cq; size_t size_ib_mw; size_t size_ib_pd; size_t size_ib_qp; size_t size_ib_rwq_ind_table; size_t size_ib_srq; size_t size_ib_ucontext; size_t size_ib_xrcd; }; enum ib_atomic_cap { IB_ATOMIC_NONE = 0, IB_ATOMIC_HCA = 1, IB_ATOMIC_GLOB = 2, }; struct ib_odp_caps { uint64_t general_caps; struct { uint32_t rc_odp_caps; uint32_t uc_odp_caps; uint32_t ud_odp_caps; uint32_t xrc_odp_caps; } per_transport_caps; }; struct ib_rss_caps { u32 supported_qpts; u32 max_rwq_indirection_tables; u32 max_rwq_indirection_table_size; }; struct ib_tm_caps { u32 max_rndv_hdr_size; u32 max_num_tags; u32 flags; u32 max_ops; u32 max_sge; }; struct ib_cq_caps { u16 max_cq_moderation_count; u16 max_cq_moderation_period; }; struct ib_device_attr { u64 fw_ver; __be64 sys_image_guid; u64 max_mr_size; u64 page_size_cap; u32 vendor_id; u32 vendor_part_id; u32 hw_ver; int max_qp; int max_qp_wr; u64 device_cap_flags; u64 kernel_cap_flags; int max_send_sge; int max_recv_sge; int max_sge_rd; int max_cq; int max_cqe; int max_mr; int max_pd; int max_qp_rd_atom; int max_ee_rd_atom; int max_res_rd_atom; int max_qp_init_rd_atom; int max_ee_init_rd_atom; enum ib_atomic_cap atomic_cap; enum ib_atomic_cap masked_atomic_cap; int max_ee; int max_rdd; int max_mw; int max_raw_ipv6_qp; int max_raw_ethy_qp; int max_mcast_grp; int max_mcast_qp_attach; int max_total_mcast_qp_attach; int max_ah; int max_srq; int max_srq_wr; int max_srq_sge; unsigned int max_fast_reg_page_list_len; unsigned int max_pi_fast_reg_page_list_len; u16 max_pkeys; u8 local_ca_ack_delay; int sig_prot_cap; int sig_guard_cap; struct ib_odp_caps odp_caps; uint64_t timestamp_mask; uint64_t hca_core_clock; struct ib_rss_caps rss_caps; u32 max_wq_type_rq; u32 raw_packet_caps; struct ib_tm_caps tm_caps; struct ib_cq_caps cq_caps; u64 max_dm_size; u32 max_sgl_rd; }; struct hw_stats_device_data; struct rdma_restrack_root; struct uapi_definition; struct ib_port_data; struct rdma_link_ops; struct ib_device { struct device *dma_device; struct ib_device_ops ops; char name[64]; struct callback_head callback_head; struct list_head event_handler_list; struct rw_semaphore event_handler_rwsem; spinlock_t qp_open_list_lock; struct rw_semaphore client_data_rwsem; struct xarray client_data; struct mutex unregistration_lock; rwlock_t cache_lock; struct ib_port_data *port_data; int num_comp_vectors; union { struct device dev; struct ib_core_device coredev; }; const struct attribute_group *groups[4]; u64 uverbs_cmd_mask; char node_desc[64]; __be64 node_guid; u32 local_dma_lkey; u16 is_switch: 1; u16 kverbs_provider: 1; u16 use_cq_dim: 1; u8 node_type; u32 phys_port_cnt; struct ib_device_attr attrs; struct hw_stats_device_data *hw_stats_data; struct rdmacg_device cg_device; u32 index; spinlock_t cq_pools_lock; struct list_head cq_pools[3]; struct rdma_restrack_root *res; const struct uapi_definition *driver_def; refcount_t refcount; struct completion unreg_completion; struct work_struct unregistration_work; const struct rdma_link_ops *link_ops; struct mutex compat_devs_mutex; struct xarray compat_devs; char iw_ifname[16]; u32 iw_driver_flags; u32 lag_flags; }; struct ib_uqp_object; enum ib_qp_type { IB_QPT_SMI = 0, IB_QPT_GSI = 1, IB_QPT_RC = 2, IB_QPT_UC = 3, IB_QPT_UD = 4, IB_QPT_RAW_IPV6 = 5, IB_QPT_RAW_ETHERTYPE = 6, IB_QPT_RAW_PACKET = 8, IB_QPT_XRC_INI = 9, IB_QPT_XRC_TGT = 10, IB_QPT_MAX = 11, IB_QPT_DRIVER = 255, IB_QPT_RESERVED1 = 4096, IB_QPT_RESERVED2 = 4097, IB_QPT_RESERVED3 = 4098, IB_QPT_RESERVED4 = 4099, IB_QPT_RESERVED5 = 4100, IB_QPT_RESERVED6 = 4101, IB_QPT_RESERVED7 = 4102, IB_QPT_RESERVED8 = 4103, IB_QPT_RESERVED9 = 4104, IB_QPT_RESERVED10 = 4105, }; enum rdma_restrack_type { RDMA_RESTRACK_PD = 0, RDMA_RESTRACK_CQ = 1, RDMA_RESTRACK_QP = 2, RDMA_RESTRACK_CM_ID = 3, RDMA_RESTRACK_MR = 4, RDMA_RESTRACK_CTX = 5, RDMA_RESTRACK_COUNTER = 6, RDMA_RESTRACK_SRQ = 7, RDMA_RESTRACK_MAX = 8, }; struct rdma_restrack_entry { bool valid; u8 no_track: 1; struct kref kref; struct completion comp; struct task_struct *task; const char *kern_name; enum rdma_restrack_type type; bool user; u32 id; }; struct ib_event; struct ib_qp_security; struct ib_qp { struct ib_device *device; struct ib_pd *pd; struct ib_cq *send_cq; struct ib_cq *recv_cq; spinlock_t mr_lock; int mrs_used; struct list_head rdma_mrs; struct list_head sig_mrs; struct ib_srq *srq; struct ib_xrcd *xrcd; struct list_head xrcd_list; atomic_t usecnt; struct list_head open_list; struct ib_qp *real_qp; struct ib_uqp_object *uobject; void (*event_handler)(struct ib_event *, void *); void *qp_context; const struct ib_gid_attr *av_sgid_attr; const struct ib_gid_attr *alt_path_sgid_attr; u32 qp_num; u32 max_write_sge; u32 max_read_sge; enum ib_qp_type qp_type; struct ib_rwq_ind_table *rwq_ind_tbl; struct ib_qp_security *qp_sec; u32 port; bool integrity_en; struct rdma_restrack_entry res; struct rdma_counter *counter; }; struct ib_uobject; struct ib_pd { u32 local_dma_lkey; u32 flags; struct ib_device *device; struct ib_uobject *uobject; atomic_t usecnt; u32 unsafe_global_rkey; struct ib_mr *__internal_mr; struct rdma_restrack_entry res; }; struct ib_uverbs_file; struct ib_rdmacg_object { struct rdma_cgroup *cg; }; struct uverbs_api_object; struct ib_uobject { u64 user_handle; struct ib_uverbs_file *ufile; struct ib_ucontext *context; void *object; struct list_head list; struct ib_rdmacg_object cg_obj; int id; struct kref ref; atomic_t usecnt; struct callback_head rcu; const struct uverbs_api_object *uapi_object; }; struct ib_ucontext { struct ib_device *device; struct ib_uverbs_file *ufile; struct ib_rdmacg_object cg_obj; struct rdma_restrack_entry res; struct xarray mmap_xa; }; struct ib_sig_attrs; struct ib_mr { struct ib_device *device; struct ib_pd *pd; u32 lkey; u32 rkey; u64 iova; u64 length; unsigned int page_size; enum ib_mr_type type; bool need_inval; union { struct ib_uobject *uobject; struct list_head qp_entry; }; struct ib_dm *dm; struct ib_sig_attrs *sig_attrs; struct rdma_restrack_entry res; }; struct ib_dm { struct ib_device *device; u32 length; u32 flags; struct ib_uobject *uobject; atomic_t usecnt; }; enum ib_signature_type { IB_SIG_TYPE_NONE = 0, IB_SIG_TYPE_T10_DIF = 1, }; enum ib_t10_dif_bg_type { IB_T10DIF_CRC = 0, IB_T10DIF_CSUM = 1, }; struct ib_t10_dif_domain { enum ib_t10_dif_bg_type bg_type; u16 pi_interval; u16 bg; u16 app_tag; u32 ref_tag; bool ref_remap; bool app_escape; bool ref_escape; u16 apptag_check_mask; }; struct ib_sig_domain { enum ib_signature_type sig_type; union { struct ib_t10_dif_domain dif; } sig; }; struct ib_sig_attrs { u8 check_mask; struct ib_sig_domain mem; struct ib_sig_domain wire; int meta_length; }; struct irq_poll; typedef int irq_poll_fn(struct irq_poll *, int); struct irq_poll { struct list_head list; unsigned long state; int weight; irq_poll_fn *poll; }; struct ib_ucq_object; typedef void (*ib_comp_handler)(struct ib_cq *, void *); enum ib_poll_context { IB_POLL_SOFTIRQ = 0, IB_POLL_WORKQUEUE = 1, IB_POLL_UNBOUND_WORKQUEUE = 2, IB_POLL_LAST_POOL_TYPE = 2, IB_POLL_DIRECT = 3, }; struct dim; struct ib_cq { struct ib_device *device; struct ib_ucq_object *uobject; ib_comp_handler comp_handler; void (*event_handler)(struct ib_event *, void *); void *cq_context; int cqe; unsigned int cqe_used; atomic_t usecnt; enum ib_poll_context poll_ctx; struct ib_wc *wc; struct list_head pool_entry; union { struct irq_poll iop; struct work_struct work; }; struct workqueue_struct *comp_wq; struct dim *dim; ktime_t timestamp; u8 interrupt: 1; u8 shared: 1; unsigned int comp_vector; struct rdma_restrack_entry res; }; enum ib_event_type { IB_EVENT_CQ_ERR = 0, IB_EVENT_QP_FATAL = 1, IB_EVENT_QP_REQ_ERR = 2, IB_EVENT_QP_ACCESS_ERR = 3, IB_EVENT_COMM_EST = 4, IB_EVENT_SQ_DRAINED = 5, IB_EVENT_PATH_MIG = 6, IB_EVENT_PATH_MIG_ERR = 7, IB_EVENT_DEVICE_FATAL = 8, IB_EVENT_PORT_ACTIVE = 9, IB_EVENT_PORT_ERR = 10, IB_EVENT_LID_CHANGE = 11, IB_EVENT_PKEY_CHANGE = 12, IB_EVENT_SM_CHANGE = 13, IB_EVENT_SRQ_ERR = 14, IB_EVENT_SRQ_LIMIT_REACHED = 15, IB_EVENT_QP_LAST_WQE_REACHED = 16, IB_EVENT_CLIENT_REREGISTER = 17, IB_EVENT_GID_CHANGE = 18, IB_EVENT_WQ_FATAL = 19, }; struct ib_event { struct ib_device *device; union { struct ib_cq *cq; struct ib_qp *qp; struct ib_srq *srq; struct ib_wq *wq; u32 port_num; } element; enum ib_event_type event; }; struct ib_usrq_object; enum ib_srq_type { IB_SRQT_BASIC = 0, IB_SRQT_XRC = 1, IB_SRQT_TM = 2, }; struct ib_srq { struct ib_device *device; struct ib_pd *pd; struct ib_usrq_object *uobject; void (*event_handler)(struct ib_event *, void *); void *srq_context; enum ib_srq_type srq_type; atomic_t usecnt; struct { struct ib_cq *cq; union { struct { struct ib_xrcd *xrcd; u32 srq_num; } xrc; }; } ext; struct rdma_restrack_entry res; }; struct ib_xrcd { struct ib_device *device; atomic_t usecnt; struct inode *inode; struct rw_semaphore tgt_qps_rwsem; struct xarray tgt_qps; }; struct ib_uwq_object; enum ib_wq_state { IB_WQS_RESET = 0, IB_WQS_RDY = 1, IB_WQS_ERR = 2, }; enum ib_wq_type { IB_WQT_RQ = 0, }; struct ib_wq { struct ib_device *device; struct ib_uwq_object *uobject; void *wq_context; void (*event_handler)(struct ib_event *, void *); struct ib_pd *pd; struct ib_cq *cq; u32 wq_num; enum ib_wq_state state; enum ib_wq_type wq_type; atomic_t usecnt; }; enum ib_wc_status { IB_WC_SUCCESS = 0, IB_WC_LOC_LEN_ERR = 1, IB_WC_LOC_QP_OP_ERR = 2, IB_WC_LOC_EEC_OP_ERR = 3, IB_WC_LOC_PROT_ERR = 4, IB_WC_WR_FLUSH_ERR = 5, IB_WC_MW_BIND_ERR = 6, IB_WC_BAD_RESP_ERR = 7, IB_WC_LOC_ACCESS_ERR = 8, IB_WC_REM_INV_REQ_ERR = 9, IB_WC_REM_ACCESS_ERR = 10, IB_WC_REM_OP_ERR = 11, IB_WC_RETRY_EXC_ERR = 12, IB_WC_RNR_RETRY_EXC_ERR = 13, IB_WC_LOC_RDD_VIOL_ERR = 14, IB_WC_REM_INV_RD_REQ_ERR = 15, IB_WC_REM_ABORT_ERR = 16, IB_WC_INV_EECN_ERR = 17, IB_WC_INV_EEC_STATE_ERR = 18, IB_WC_FATAL_ERR = 19, IB_WC_RESP_TIMEOUT_ERR = 20, IB_WC_GENERAL_ERR = 21, }; enum ib_wc_opcode { IB_WC_SEND = 0, IB_WC_RDMA_WRITE = 1, IB_WC_RDMA_READ = 2, IB_WC_COMP_SWAP = 3, IB_WC_FETCH_ADD = 4, IB_WC_BIND_MW = 5, IB_WC_LOCAL_INV = 6, IB_WC_LSO = 7, IB_WC_ATOMIC_WRITE = 9, IB_WC_REG_MR = 10, IB_WC_MASKED_COMP_SWAP = 11, IB_WC_MASKED_FETCH_ADD = 12, IB_WC_FLUSH = 8, IB_WC_RECV = 128, IB_WC_RECV_RDMA_WITH_IMM = 129, }; struct ib_cqe; struct ib_wc { union { u64 wr_id; struct ib_cqe *wr_cqe; }; enum ib_wc_status status; enum ib_wc_opcode opcode; u32 vendor_err; u32 byte_len; struct ib_qp *qp; union { __be32 imm_data; u32 invalidate_rkey; } ex; u32 src_qp; u32 slid; int wc_flags; u16 pkey_index; u8 sl; u8 dlid_path_bits; u32 port_num; u8 smac[6]; u16 vlan_id; u8 network_hdr_type; }; struct ib_cqe { void (*done)(struct ib_cq *, struct ib_wc *); }; 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; }; union ib_gid { u8 raw[16]; struct { __be64 subnet_prefix; __be64 interface_id; } global; }; enum ib_gid_type { IB_GID_TYPE_IB = 0, IB_GID_TYPE_ROCE = 1, IB_GID_TYPE_ROCE_UDP_ENCAP = 2, IB_GID_TYPE_SIZE = 3, }; struct ib_gid_attr { struct net_device __attribute__((btf_type_tag("rcu"))) *ndev; struct ib_device *device; union ib_gid gid; enum ib_gid_type gid_type; u16 index; u32 port_num; }; struct ib_rwq_ind_table { struct ib_device *device; struct ib_uobject *uobject; atomic_t usecnt; u32 ind_tbl_num; u32 log_ind_tbl_size; struct ib_wq **ind_tbl; }; struct ib_ports_pkeys; struct ib_qp_security { struct ib_qp *qp; struct ib_device *dev; struct mutex mutex; struct ib_ports_pkeys *ports_pkeys; struct list_head shared_qp_list; void *security; bool destroying; atomic_t error_list_count; struct completion error_complete; int error_comps_pending; }; enum port_pkey_state { IB_PORT_PKEY_NOT_VALID = 0, IB_PORT_PKEY_VALID = 1, IB_PORT_PKEY_LISTED = 2, }; struct ib_port_pkey { enum port_pkey_state state; u16 pkey_index; u32 port_num; struct list_head qp_list; struct list_head to_error_list; struct ib_qp_security *sec; }; struct ib_ports_pkeys { struct ib_port_pkey main; struct ib_port_pkey alt; }; enum rdma_nl_counter_mode { RDMA_COUNTER_MODE_NONE = 0, RDMA_COUNTER_MODE_AUTO = 1, RDMA_COUNTER_MODE_MANUAL = 2, RDMA_COUNTER_MODE_MAX = 3, }; enum rdma_nl_counter_mask { RDMA_COUNTER_MASK_QP_TYPE = 1, RDMA_COUNTER_MASK_PID = 2, }; struct auto_mode_param { int qp_type; }; struct rdma_counter_mode { enum rdma_nl_counter_mode mode; enum rdma_nl_counter_mask mask; struct auto_mode_param param; }; struct rdma_counter { struct rdma_restrack_entry res; struct ib_device *device; uint32_t id; struct kref kref; struct rdma_counter_mode mode; struct mutex lock; struct rdma_hw_stats *stats; u32 port; }; struct rdma_stat_desc; struct rdma_hw_stats { struct mutex lock; unsigned long timestamp; unsigned long lifespan; const struct rdma_stat_desc *descs; unsigned long *is_disabled; int num_counters; u64 value[0]; }; struct rdma_stat_desc { const char *name; unsigned int flags; const void *priv; }; enum ib_wr_opcode { IB_WR_RDMA_WRITE = 0, IB_WR_RDMA_WRITE_WITH_IMM = 1, IB_WR_SEND = 2, IB_WR_SEND_WITH_IMM = 3, IB_WR_RDMA_READ = 4, IB_WR_ATOMIC_CMP_AND_SWP = 5, IB_WR_ATOMIC_FETCH_AND_ADD = 6, IB_WR_BIND_MW = 8, IB_WR_LSO = 10, IB_WR_SEND_WITH_INV = 9, IB_WR_RDMA_READ_WITH_INV = 11, IB_WR_LOCAL_INV = 7, IB_WR_MASKED_ATOMIC_CMP_AND_SWP = 12, IB_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13, IB_WR_FLUSH = 14, IB_WR_ATOMIC_WRITE = 15, IB_WR_REG_MR = 32, IB_WR_REG_MR_INTEGRITY = 33, IB_WR_RESERVED1 = 240, IB_WR_RESERVED2 = 241, IB_WR_RESERVED3 = 242, IB_WR_RESERVED4 = 243, IB_WR_RESERVED5 = 244, IB_WR_RESERVED6 = 245, IB_WR_RESERVED7 = 246, IB_WR_RESERVED8 = 247, IB_WR_RESERVED9 = 248, IB_WR_RESERVED10 = 249, }; struct ib_send_wr { struct ib_send_wr *next; union { u64 wr_id; struct ib_cqe *wr_cqe; }; struct ib_sge *sg_list; int num_sge; enum ib_wr_opcode opcode; int send_flags; union { __be32 imm_data; u32 invalidate_rkey; } ex; }; struct ib_sge { u64 addr; u32 length; u32 lkey; }; struct ib_recv_wr { struct ib_recv_wr *next; union { u64 wr_id; struct ib_cqe *wr_cqe; }; struct ib_sge *sg_list; int num_sge; }; struct ib_grh { __be32 version_tclass_flow; __be16 paylen; u8 next_hdr; u8 hop_limit; union ib_gid sgid; union ib_gid dgid; }; struct ib_udata { const void __attribute__((btf_type_tag("user"))) *inbuf; void __attribute__((btf_type_tag("user"))) *outbuf; size_t inlen; size_t outlen; }; struct ib_device_modify { u64 sys_image_guid; char node_desc[64]; }; enum ib_port_state { IB_PORT_NOP = 0, IB_PORT_DOWN = 1, IB_PORT_INIT = 2, IB_PORT_ARMED = 3, IB_PORT_ACTIVE = 4, IB_PORT_ACTIVE_DEFER = 5, }; enum ib_mtu { IB_MTU_256 = 1, IB_MTU_512 = 2, IB_MTU_1024 = 3, IB_MTU_2048 = 4, IB_MTU_4096 = 5, }; struct ib_port_attr { u64 subnet_prefix; enum ib_port_state state; enum ib_mtu max_mtu; enum ib_mtu active_mtu; u32 phys_mtu; int gid_tbl_len; unsigned int ip_gids: 1; u32 port_cap_flags; u32 max_msg_sz; u32 bad_pkey_cntr; u32 qkey_viol_cntr; u16 pkey_tbl_len; u32 sm_lid; u32 lid; u8 lmc; u8 max_vl_num; u8 sm_sl; u8 subnet_timeout; u8 init_type_reply; u8 active_width; u16 active_speed; u8 phys_state; u16 port_cap_flags2; }; struct ib_port_modify { u32 set_port_cap_mask; u32 clr_port_cap_mask; u8 init_type; }; struct ib_port_immutable { int pkey_tbl_len; int gid_tbl_len; u32 core_cap_flags; u32 max_mad_size; }; struct rdma_netdev_alloc_params { size_t sizeof_priv; unsigned int txqs; unsigned int rxqs; void *param; int (*initialize_rdma_netdev)(struct ib_device *, u32, struct net_device *, void *); }; struct rdma_user_mmap_entry { struct kref ref; struct ib_ucontext *ucontext; unsigned long start_pgoff; size_t npages; bool driver_removed; }; enum rdma_ah_attr_type { RDMA_AH_ATTR_TYPE_UNDEFINED = 0, RDMA_AH_ATTR_TYPE_IB = 1, RDMA_AH_ATTR_TYPE_ROCE = 2, RDMA_AH_ATTR_TYPE_OPA = 3, }; struct ib_ah { struct ib_device *device; struct ib_pd *pd; struct ib_uobject *uobject; const struct ib_gid_attr *sgid_attr; enum rdma_ah_attr_type type; }; struct rdma_ah_init_attr { struct rdma_ah_attr *ah_attr; u32 flags; struct net_device *xmit_slave; }; struct ib_ah_attr { u16 dlid; u8 src_path_bits; }; struct roce_ah_attr { u8 dmac[6]; }; struct opa_ah_attr { u32 dlid; u8 src_path_bits; bool make_grd; }; struct ib_global_route { const struct ib_gid_attr *sgid_attr; union ib_gid dgid; u32 flow_label; u8 sgid_index; u8 hop_limit; u8 traffic_class; }; struct rdma_ah_attr { struct ib_global_route grh; u8 sl; u8 static_rate; u32 port_num; u8 ah_flags; enum rdma_ah_attr_type type; union { struct ib_ah_attr ib; struct roce_ah_attr roce; struct opa_ah_attr opa; }; }; struct ib_srq_attr { u32 max_wr; u32 max_sge; u32 srq_limit; }; struct ib_srq_init_attr { void (*event_handler)(struct ib_event *, void *); void *srq_context; struct ib_srq_attr attr; enum ib_srq_type srq_type; struct { struct ib_cq *cq; union { struct { struct ib_xrcd *xrcd; } xrc; struct { u32 max_num_tags; } tag_matching; }; } ext; }; struct ib_qp_cap { u32 max_send_wr; u32 max_recv_wr; u32 max_send_sge; u32 max_recv_sge; u32 max_inline_data; u32 max_rdma_ctxs; }; enum ib_sig_type { IB_SIGNAL_ALL_WR = 0, IB_SIGNAL_REQ_WR = 1, }; struct ib_qp_init_attr { void (*event_handler)(struct ib_event *, void *); void *qp_context; struct ib_cq *send_cq; struct ib_cq *recv_cq; struct ib_srq *srq; struct ib_xrcd *xrcd; struct ib_qp_cap cap; enum ib_sig_type sq_sig_type; enum ib_qp_type qp_type; u32 create_flags; u32 port_num; struct ib_rwq_ind_table *rwq_ind_tbl; u32 source_qpn; }; enum ib_qp_state { IB_QPS_RESET = 0, IB_QPS_INIT = 1, IB_QPS_RTR = 2, IB_QPS_RTS = 3, IB_QPS_SQD = 4, IB_QPS_SQE = 5, IB_QPS_ERR = 6, }; enum ib_mig_state { IB_MIG_MIGRATED = 0, IB_MIG_REARM = 1, IB_MIG_ARMED = 2, }; struct ib_qp_attr { enum ib_qp_state qp_state; enum ib_qp_state cur_qp_state; enum ib_mtu path_mtu; enum ib_mig_state path_mig_state; u32 qkey; u32 rq_psn; u32 sq_psn; u32 dest_qp_num; int qp_access_flags; struct ib_qp_cap cap; struct rdma_ah_attr ah_attr; struct rdma_ah_attr alt_ah_attr; u16 pkey_index; u16 alt_pkey_index; u8 en_sqd_async_notify; u8 sq_draining; u8 max_rd_atomic; u8 max_dest_rd_atomic; u8 min_rnr_timer; u32 port_num; u8 timeout; u8 retry_cnt; u8 rnr_retry; u32 alt_port_num; u8 alt_timeout; u32 rate_limit; struct net_device *xmit_slave; }; struct ib_cq_init_attr { unsigned int cqe; u32 comp_vector; u32 flags; }; enum ib_sig_err_type { IB_SIG_BAD_GUARD = 0, IB_SIG_BAD_REFTAG = 1, IB_SIG_BAD_APPTAG = 2, }; struct ib_sig_err { enum ib_sig_err_type err_type; u32 expected; u32 actual; u64 sig_err_offset; u32 key; }; struct ib_mr_status { u32 fail_status; struct ib_sig_err sig_err; }; enum ib_mw_type { IB_MW_TYPE_1 = 1, IB_MW_TYPE_2 = 2, }; struct ib_mw { struct ib_device *device; struct ib_pd *pd; struct ib_uobject *uobject; u32 rkey; enum ib_mw_type type; }; struct ib_flow { struct ib_qp *qp; struct ib_device *device; struct ib_uobject *uobject; }; enum ib_flow_attr_type { IB_FLOW_ATTR_NORMAL = 0, IB_FLOW_ATTR_ALL_DEFAULT = 1, IB_FLOW_ATTR_MC_DEFAULT = 2, IB_FLOW_ATTR_SNIFFER = 3, }; struct ib_flow_eth_filter { u8 dst_mac[6]; u8 src_mac[6]; __be16 ether_type; __be16 vlan_tag; u8 real_sz[0]; }; struct ib_flow_spec_eth { u32 type; u16 size; struct ib_flow_eth_filter val; struct ib_flow_eth_filter mask; }; struct ib_flow_ib_filter { __be16 dlid; __u8 sl; u8 real_sz[0]; }; struct ib_flow_spec_ib { u32 type; u16 size; struct ib_flow_ib_filter val; struct ib_flow_ib_filter mask; }; struct ib_flow_ipv4_filter { __be32 src_ip; __be32 dst_ip; u8 proto; u8 tos; u8 ttl; u8 flags; u8 real_sz[0]; }; struct ib_flow_spec_ipv4 { u32 type; u16 size; struct ib_flow_ipv4_filter val; struct ib_flow_ipv4_filter mask; }; struct ib_flow_tcp_udp_filter { __be16 dst_port; __be16 src_port; u8 real_sz[0]; }; struct ib_flow_spec_tcp_udp { u32 type; u16 size; struct ib_flow_tcp_udp_filter val; struct ib_flow_tcp_udp_filter mask; }; struct ib_flow_ipv6_filter { u8 src_ip[16]; u8 dst_ip[16]; __be32 flow_label; u8 next_hdr; u8 traffic_class; u8 hop_limit; u8 real_sz[0]; }; struct ib_flow_spec_ipv6 { u32 type; u16 size; struct ib_flow_ipv6_filter val; struct ib_flow_ipv6_filter mask; }; struct ib_flow_tunnel_filter { __be32 tunnel_id; u8 real_sz[0]; }; struct ib_flow_spec_tunnel { u32 type; u16 size; struct ib_flow_tunnel_filter val; struct ib_flow_tunnel_filter mask; }; struct ib_flow_esp_filter { __be32 spi; __be32 seq; u8 real_sz[0]; }; struct ib_flow_spec_esp { u32 type; u16 size; struct ib_flow_esp_filter val; struct ib_flow_esp_filter mask; }; struct ib_flow_gre_filter { __be16 c_ks_res0_ver; __be16 protocol; __be32 key; u8 real_sz[0]; }; struct ib_flow_spec_gre { u32 type; u16 size; struct ib_flow_gre_filter val; struct ib_flow_gre_filter mask; }; struct ib_flow_mpls_filter { __be32 tag; u8 real_sz[0]; }; struct ib_flow_spec_mpls { u32 type; u16 size; struct ib_flow_mpls_filter val; struct ib_flow_mpls_filter mask; }; enum ib_flow_spec_type { IB_FLOW_SPEC_ETH = 32, IB_FLOW_SPEC_IB = 34, IB_FLOW_SPEC_IPV4 = 48, IB_FLOW_SPEC_IPV6 = 49, IB_FLOW_SPEC_ESP = 52, IB_FLOW_SPEC_TCP = 64, IB_FLOW_SPEC_UDP = 65, IB_FLOW_SPEC_VXLAN_TUNNEL = 80, IB_FLOW_SPEC_GRE = 81, IB_FLOW_SPEC_MPLS = 96, IB_FLOW_SPEC_INNER = 256, IB_FLOW_SPEC_ACTION_TAG = 4096, IB_FLOW_SPEC_ACTION_DROP = 4097, IB_FLOW_SPEC_ACTION_HANDLE = 4098, IB_FLOW_SPEC_ACTION_COUNT = 4099, }; struct ib_flow_spec_action_tag { enum ib_flow_spec_type type; u16 size; u32 tag_id; }; struct ib_flow_spec_action_drop { enum ib_flow_spec_type type; u16 size; }; struct ib_flow_spec_action_handle { enum ib_flow_spec_type type; u16 size; struct ib_flow_action *act; }; struct ib_flow_spec_action_count { enum ib_flow_spec_type type; u16 size; struct ib_counters *counters; }; union ib_flow_spec { struct { u32 type; u16 size; }; struct ib_flow_spec_eth eth; struct ib_flow_spec_ib ib; struct ib_flow_spec_ipv4 ipv4; struct ib_flow_spec_tcp_udp tcp_udp; struct ib_flow_spec_ipv6 ipv6; struct ib_flow_spec_tunnel tunnel; struct ib_flow_spec_esp esp; struct ib_flow_spec_gre gre; struct ib_flow_spec_mpls mpls; struct ib_flow_spec_action_tag flow_tag; struct ib_flow_spec_action_drop drop; struct ib_flow_spec_action_handle action; struct ib_flow_spec_action_count flow_count; }; struct ib_flow_attr { enum ib_flow_attr_type type; u16 size; u16 priority; u32 flags; u8 num_of_specs; u32 port; union ib_flow_spec flows[0]; }; enum ib_flow_action_type { IB_FLOW_ACTION_UNSPECIFIED = 0, IB_FLOW_ACTION_ESP = 1, }; struct ib_flow_action { struct ib_device *device; struct ib_uobject *uobject; enum ib_flow_action_type type; atomic_t usecnt; }; struct ib_counters { struct ib_device *device; struct ib_uobject *uobject; atomic_t usecnt; }; struct ib_wq_init_attr { void *wq_context; enum ib_wq_type wq_type; u32 max_wr; u32 max_sge; struct ib_cq *cq; void (*event_handler)(struct ib_event *, void *); u32 create_flags; }; struct ib_wq_attr { enum ib_wq_state wq_state; enum ib_wq_state curr_wq_state; u32 flags; u32 flags_mask; }; struct ib_rwq_ind_table_init_attr { u32 log_ind_tbl_size; struct ib_wq **ind_tbl; }; struct ib_dm_alloc_attr { u64 length; u32 alignment; u32 flags; }; struct ib_dm_mr_attr { u64 length; u64 offset; u32 access_flags; }; struct ib_counters_read_attr { u64 *counters_buff; u32 ncounters; u32 flags; }; struct ib_pkey_cache; struct ib_gid_table; struct ib_port_cache { u64 subnet_prefix; struct ib_pkey_cache *pkey; struct ib_gid_table *gid; u8 lmc; enum ib_port_state port_state; }; struct rdma_port_counter { struct rdma_counter_mode mode; struct rdma_hw_stats *hstats; unsigned int num_counters; struct mutex lock; }; struct ib_port; struct ib_port_data { struct ib_device *ib_dev; struct ib_port_immutable immutable; spinlock_t pkey_list_lock; spinlock_t netdev_lock; struct list_head pkey_list; struct ib_port_cache cache; struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; netdevice_tracker netdev_tracker; struct hlist_node ndev_hash_link; struct rdma_port_counter port_counter; struct ib_port *sysfs; }; struct rdma_link_ops { struct list_head list; const char *type; int (*newlink)(const char *, struct net_device *); }; enum devlink_linecard_state { DEVLINK_LINECARD_STATE_UNSPEC = 0, DEVLINK_LINECARD_STATE_UNPROVISIONED = 1, DEVLINK_LINECARD_STATE_UNPROVISIONING = 2, DEVLINK_LINECARD_STATE_PROVISIONING = 3, DEVLINK_LINECARD_STATE_PROVISIONING_FAILED = 4, DEVLINK_LINECARD_STATE_PROVISIONED = 5, DEVLINK_LINECARD_STATE_ACTIVE = 6, __DEVLINK_LINECARD_STATE_MAX = 7, DEVLINK_LINECARD_STATE_MAX = 6, }; struct devlink_linecard_ops; struct devlink_linecard_type; struct devlink_linecard { struct list_head list; struct devlink *devlink; unsigned int index; const struct devlink_linecard_ops *ops; void *priv; enum devlink_linecard_state state; struct mutex state_lock; const char *type; struct devlink_linecard_type *types; unsigned int types_count; struct devlink *nested_devlink; }; struct devlink_linecard_ops { int (*provision)(struct devlink_linecard *, void *, const char *, const void *, struct netlink_ext_ack *); int (*unprovision)(struct devlink_linecard *, void *, struct netlink_ext_ack *); bool (*same_provision)(struct devlink_linecard *, void *, const char *, const void *); unsigned int (*types_count)(struct devlink_linecard *, void *); void (*types_get)(struct devlink_linecard *, void *, unsigned int, const char **, const void **); }; struct devlink_linecard_type { const char *type; const void *priv; }; typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, unsigned long, const u8 *, size_t); typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *); typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *); typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64); typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); struct devlink_trap_metadata; typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); struct devlink_trap_metadata { const char *trap_name; const char *trap_group_name; struct net_device *input_dev; netdevice_tracker dev_tracker; const struct flow_action_cookie *fa_cookie; enum devlink_trap_type trap_type; }; enum devlink_dpipe_match_type { DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, }; enum devlink_dpipe_action_type { DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, }; enum devlink_port_function_attr { DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0, DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1, DEVLINK_PORT_FN_ATTR_STATE = 2, DEVLINK_PORT_FN_ATTR_OPSTATE = 3, DEVLINK_PORT_FN_ATTR_CAPS = 4, __DEVLINK_PORT_FUNCTION_ATTR_MAX = 5, DEVLINK_PORT_FUNCTION_ATTR_MAX = 4, }; enum devlink_port_fn_attr_cap { DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT = 0, DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT = 1, __DEVLINK_PORT_FN_ATTR_CAPS_MAX = 2, }; enum { DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, }; enum { DEVLINK_ATTR_STATS_RX_PACKETS = 0, DEVLINK_ATTR_STATS_RX_BYTES = 1, DEVLINK_ATTR_STATS_RX_DROPPED = 2, __DEVLINK_ATTR_STATS_MAX = 3, DEVLINK_ATTR_STATS_MAX = 2, }; enum devlink_trap_generic_id { DEVLINK_TRAP_GENERIC_ID_SMAC_MC = 0, DEVLINK_TRAP_GENERIC_ID_VLAN_TAG_MISMATCH = 1, DEVLINK_TRAP_GENERIC_ID_INGRESS_VLAN_FILTER = 2, DEVLINK_TRAP_GENERIC_ID_INGRESS_STP_FILTER = 3, DEVLINK_TRAP_GENERIC_ID_EMPTY_TX_LIST = 4, DEVLINK_TRAP_GENERIC_ID_PORT_LOOPBACK_FILTER = 5, DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_ROUTE = 6, DEVLINK_TRAP_GENERIC_ID_TTL_ERROR = 7, DEVLINK_TRAP_GENERIC_ID_TAIL_DROP = 8, DEVLINK_TRAP_GENERIC_ID_NON_IP_PACKET = 9, DEVLINK_TRAP_GENERIC_ID_UC_DIP_MC_DMAC = 10, DEVLINK_TRAP_GENERIC_ID_DIP_LB = 11, DEVLINK_TRAP_GENERIC_ID_SIP_MC = 12, DEVLINK_TRAP_GENERIC_ID_SIP_LB = 13, DEVLINK_TRAP_GENERIC_ID_CORRUPTED_IP_HDR = 14, DEVLINK_TRAP_GENERIC_ID_IPV4_SIP_BC = 15, DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_RESERVED_SCOPE = 16, DEVLINK_TRAP_GENERIC_ID_IPV6_MC_DIP_INTERFACE_LOCAL_SCOPE = 17, DEVLINK_TRAP_GENERIC_ID_MTU_ERROR = 18, DEVLINK_TRAP_GENERIC_ID_UNRESOLVED_NEIGH = 19, DEVLINK_TRAP_GENERIC_ID_RPF = 20, DEVLINK_TRAP_GENERIC_ID_REJECT_ROUTE = 21, DEVLINK_TRAP_GENERIC_ID_IPV4_LPM_UNICAST_MISS = 22, DEVLINK_TRAP_GENERIC_ID_IPV6_LPM_UNICAST_MISS = 23, DEVLINK_TRAP_GENERIC_ID_NON_ROUTABLE = 24, DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR = 25, DEVLINK_TRAP_GENERIC_ID_OVERLAY_SMAC_MC = 26, DEVLINK_TRAP_GENERIC_ID_INGRESS_FLOW_ACTION_DROP = 27, DEVLINK_TRAP_GENERIC_ID_EGRESS_FLOW_ACTION_DROP = 28, DEVLINK_TRAP_GENERIC_ID_STP = 29, DEVLINK_TRAP_GENERIC_ID_LACP = 30, DEVLINK_TRAP_GENERIC_ID_LLDP = 31, DEVLINK_TRAP_GENERIC_ID_IGMP_QUERY = 32, DEVLINK_TRAP_GENERIC_ID_IGMP_V1_REPORT = 33, DEVLINK_TRAP_GENERIC_ID_IGMP_V2_REPORT = 34, DEVLINK_TRAP_GENERIC_ID_IGMP_V3_REPORT = 35, DEVLINK_TRAP_GENERIC_ID_IGMP_V2_LEAVE = 36, DEVLINK_TRAP_GENERIC_ID_MLD_QUERY = 37, DEVLINK_TRAP_GENERIC_ID_MLD_V1_REPORT = 38, DEVLINK_TRAP_GENERIC_ID_MLD_V2_REPORT = 39, DEVLINK_TRAP_GENERIC_ID_MLD_V1_DONE = 40, DEVLINK_TRAP_GENERIC_ID_IPV4_DHCP = 41, DEVLINK_TRAP_GENERIC_ID_IPV6_DHCP = 42, DEVLINK_TRAP_GENERIC_ID_ARP_REQUEST = 43, DEVLINK_TRAP_GENERIC_ID_ARP_RESPONSE = 44, DEVLINK_TRAP_GENERIC_ID_ARP_OVERLAY = 45, DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_SOLICIT = 46, DEVLINK_TRAP_GENERIC_ID_IPV6_NEIGH_ADVERT = 47, DEVLINK_TRAP_GENERIC_ID_IPV4_BFD = 48, DEVLINK_TRAP_GENERIC_ID_IPV6_BFD = 49, DEVLINK_TRAP_GENERIC_ID_IPV4_OSPF = 50, DEVLINK_TRAP_GENERIC_ID_IPV6_OSPF = 51, DEVLINK_TRAP_GENERIC_ID_IPV4_BGP = 52, DEVLINK_TRAP_GENERIC_ID_IPV6_BGP = 53, DEVLINK_TRAP_GENERIC_ID_IPV4_VRRP = 54, DEVLINK_TRAP_GENERIC_ID_IPV6_VRRP = 55, DEVLINK_TRAP_GENERIC_ID_IPV4_PIM = 56, DEVLINK_TRAP_GENERIC_ID_IPV6_PIM = 57, DEVLINK_TRAP_GENERIC_ID_UC_LB = 58, DEVLINK_TRAP_GENERIC_ID_LOCAL_ROUTE = 59, DEVLINK_TRAP_GENERIC_ID_EXTERNAL_ROUTE = 60, DEVLINK_TRAP_GENERIC_ID_IPV6_UC_DIP_LINK_LOCAL_SCOPE = 61, DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_NODES = 62, DEVLINK_TRAP_GENERIC_ID_IPV6_DIP_ALL_ROUTERS = 63, DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_SOLICIT = 64, DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ADVERT = 65, DEVLINK_TRAP_GENERIC_ID_IPV6_REDIRECT = 66, DEVLINK_TRAP_GENERIC_ID_IPV4_ROUTER_ALERT = 67, DEVLINK_TRAP_GENERIC_ID_IPV6_ROUTER_ALERT = 68, DEVLINK_TRAP_GENERIC_ID_PTP_EVENT = 69, DEVLINK_TRAP_GENERIC_ID_PTP_GENERAL = 70, DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_SAMPLE = 71, DEVLINK_TRAP_GENERIC_ID_FLOW_ACTION_TRAP = 72, DEVLINK_TRAP_GENERIC_ID_EARLY_DROP = 73, DEVLINK_TRAP_GENERIC_ID_VXLAN_PARSING = 74, DEVLINK_TRAP_GENERIC_ID_LLC_SNAP_PARSING = 75, DEVLINK_TRAP_GENERIC_ID_VLAN_PARSING = 76, DEVLINK_TRAP_GENERIC_ID_PPPOE_PPP_PARSING = 77, DEVLINK_TRAP_GENERIC_ID_MPLS_PARSING = 78, DEVLINK_TRAP_GENERIC_ID_ARP_PARSING = 79, DEVLINK_TRAP_GENERIC_ID_IP_1_PARSING = 80, DEVLINK_TRAP_GENERIC_ID_IP_N_PARSING = 81, DEVLINK_TRAP_GENERIC_ID_GRE_PARSING = 82, DEVLINK_TRAP_GENERIC_ID_UDP_PARSING = 83, DEVLINK_TRAP_GENERIC_ID_TCP_PARSING = 84, DEVLINK_TRAP_GENERIC_ID_IPSEC_PARSING = 85, DEVLINK_TRAP_GENERIC_ID_SCTP_PARSING = 86, DEVLINK_TRAP_GENERIC_ID_DCCP_PARSING = 87, DEVLINK_TRAP_GENERIC_ID_GTP_PARSING = 88, DEVLINK_TRAP_GENERIC_ID_ESP_PARSING = 89, DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_NEXTHOP = 90, DEVLINK_TRAP_GENERIC_ID_DMAC_FILTER = 91, DEVLINK_TRAP_GENERIC_ID_EAPOL = 92, DEVLINK_TRAP_GENERIC_ID_LOCKED_PORT = 93, __DEVLINK_TRAP_GENERIC_ID_MAX = 94, DEVLINK_TRAP_GENERIC_ID_MAX = 93, }; enum devlink_trap_group_generic_id { DEVLINK_TRAP_GROUP_GENERIC_ID_L2_DROPS = 0, DEVLINK_TRAP_GROUP_GENERIC_ID_L3_DROPS = 1, DEVLINK_TRAP_GROUP_GENERIC_ID_L3_EXCEPTIONS = 2, DEVLINK_TRAP_GROUP_GENERIC_ID_BUFFER_DROPS = 3, DEVLINK_TRAP_GROUP_GENERIC_ID_TUNNEL_DROPS = 4, DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_DROPS = 5, DEVLINK_TRAP_GROUP_GENERIC_ID_STP = 6, DEVLINK_TRAP_GROUP_GENERIC_ID_LACP = 7, DEVLINK_TRAP_GROUP_GENERIC_ID_LLDP = 8, DEVLINK_TRAP_GROUP_GENERIC_ID_MC_SNOOPING = 9, DEVLINK_TRAP_GROUP_GENERIC_ID_DHCP = 10, DEVLINK_TRAP_GROUP_GENERIC_ID_NEIGH_DISCOVERY = 11, DEVLINK_TRAP_GROUP_GENERIC_ID_BFD = 12, DEVLINK_TRAP_GROUP_GENERIC_ID_OSPF = 13, DEVLINK_TRAP_GROUP_GENERIC_ID_BGP = 14, DEVLINK_TRAP_GROUP_GENERIC_ID_VRRP = 15, DEVLINK_TRAP_GROUP_GENERIC_ID_PIM = 16, DEVLINK_TRAP_GROUP_GENERIC_ID_UC_LB = 17, DEVLINK_TRAP_GROUP_GENERIC_ID_LOCAL_DELIVERY = 18, DEVLINK_TRAP_GROUP_GENERIC_ID_EXTERNAL_DELIVERY = 19, DEVLINK_TRAP_GROUP_GENERIC_ID_IPV6 = 20, DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_EVENT = 21, DEVLINK_TRAP_GROUP_GENERIC_ID_PTP_GENERAL = 22, DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_SAMPLE = 23, DEVLINK_TRAP_GROUP_GENERIC_ID_ACL_TRAP = 24, DEVLINK_TRAP_GROUP_GENERIC_ID_PARSER_ERROR_DROPS = 25, DEVLINK_TRAP_GROUP_GENERIC_ID_EAPOL = 26, __DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 27, DEVLINK_TRAP_GROUP_GENERIC_ID_MAX = 26, }; struct devlink_resource { const char *name; u64 id; u64 size; u64 size_new; bool size_valid; struct devlink_resource *parent; struct devlink_resource_size_params size_params; struct list_head list; struct list_head resource_list; devlink_resource_occ_get_t *occ_get; void *occ_get_priv; }; struct devlink_trap_policer_item { const struct devlink_trap_policer *policer; u64 rate; u64 burst; struct list_head list; }; struct devlink_stats; struct devlink_trap_group_item { const struct devlink_trap_group *group; struct devlink_trap_policer_item *policer_item; struct list_head list; struct devlink_stats __attribute__((btf_type_tag("percpu"))) *stats; }; struct devlink_stats { u64_stats_t rx_bytes; u64_stats_t rx_packets; struct u64_stats_sync syncp; }; struct devlink_trap_item { const struct devlink_trap *trap; struct devlink_trap_group_item *group_item; struct list_head list; enum devlink_trap_action action; struct devlink_stats __attribute__((btf_type_tag("percpu"))) *stats; void *priv; }; struct devlink_port_region_ops; struct devlink_region { struct devlink *devlink; struct devlink_port *port; struct list_head list; union { const struct devlink_region_ops *ops; const struct devlink_port_region_ops *port_ops; }; struct mutex snapshot_lock; struct list_head snapshot_list; u32 max_snapshots; u32 cur_snapshots; u64 size; }; struct devlink_port_region_ops { const char *name; void (*destructor)(const void *); int (*snapshot)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u8 **); int (*read)(struct devlink_port *, const struct devlink_port_region_ops *, struct netlink_ext_ack *, u64, u32, u8 *); void *priv; }; struct devlink_snapshot { struct list_head list; struct devlink_region *region; u8 *data; u32 id; }; struct trace_event_raw_devlink_hwmsg { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; bool incoming; unsigned long type; u32 __data_loc_buf; size_t len; char __data[0]; }; struct trace_event_raw_devlink_hwerr { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; int err; u32 __data_loc_msg; char __data[0]; }; struct trace_event_raw_devlink_health_report { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; u32 __data_loc_reporter_name; u32 __data_loc_msg; char __data[0]; }; struct trace_event_raw_devlink_health_recover_aborted { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; u32 __data_loc_reporter_name; bool health_state; u64 time_since_last_recover; char __data[0]; }; struct trace_event_raw_devlink_health_reporter_state_update { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; u32 __data_loc_reporter_name; u8 new_state; char __data[0]; }; struct trace_event_raw_devlink_trap_report { struct trace_entry ent; u32 __data_loc_bus_name; u32 __data_loc_dev_name; u32 __data_loc_driver_name; u32 __data_loc_trap_name; u32 __data_loc_trap_group_name; char input_dev_name[16]; char __data[0]; }; struct devlink_sb { struct list_head list; unsigned int index; u32 size; u16 ingress_pools_count; u16 egress_pools_count; u16 ingress_tc_count; u16 egress_tc_count; }; struct devlink_dpipe_table_ops; struct devlink_dpipe_table { void *priv; struct list_head list; const char *name; bool counters_enabled; bool counter_control_extern; bool resource_valid; u64 resource_id; u64 resource_units; struct devlink_dpipe_table_ops *table_ops; struct callback_head rcu; }; struct devlink_dpipe_dump_ctx; struct devlink_dpipe_table_ops { int (*actions_dump)(void *, struct sk_buff *); int (*matches_dump)(void *, struct sk_buff *); int (*entries_dump)(void *, bool, struct devlink_dpipe_dump_ctx *); int (*counters_set_update)(void *, bool); u64 (*size_get)(void *); }; struct devlink_dpipe_dump_ctx { struct genl_info *info; enum devlink_command cmd; struct sk_buff *skb; struct nlattr *nest; void *hdr; }; struct devlink_dpipe_value; struct devlink_dpipe_entry { u64 index; struct devlink_dpipe_value *match_values; unsigned int match_values_count; struct devlink_dpipe_value *action_values; unsigned int action_values_count; u64 counter; bool counter_valid; }; struct devlink_dpipe_action; struct devlink_dpipe_match; struct devlink_dpipe_value { union { struct devlink_dpipe_action *action; struct devlink_dpipe_match *match; }; unsigned int mapping_value; bool mapping_valid; unsigned int value_size; void *value; void *mask; }; struct devlink_dpipe_action { enum devlink_dpipe_action_type type; unsigned int header_index; struct devlink_dpipe_header *header; unsigned int field_id; }; struct devlink_dpipe_match { enum devlink_dpipe_match_type type; unsigned int header_index; struct devlink_dpipe_header *header; unsigned int field_id; }; struct devlink_param_item { struct list_head list; const struct devlink_param *param; union devlink_param_value driverinit_value; bool driverinit_value_valid; union devlink_param_value driverinit_value_new; bool driverinit_value_new_valid; }; struct trace_event_data_offsets_devlink_hwmsg { u32 bus_name; u32 dev_name; u32 driver_name; u32 buf; }; struct trace_event_data_offsets_devlink_hwerr { u32 bus_name; u32 dev_name; u32 driver_name; u32 msg; }; struct trace_event_data_offsets_devlink_health_report { u32 bus_name; u32 dev_name; u32 driver_name; u32 reporter_name; u32 msg; }; struct trace_event_data_offsets_devlink_health_recover_aborted { u32 bus_name; u32 dev_name; u32 driver_name; u32 reporter_name; }; struct trace_event_data_offsets_devlink_health_reporter_state_update { u32 bus_name; u32 dev_name; u32 driver_name; u32 reporter_name; }; struct trace_event_data_offsets_devlink_trap_report { u32 bus_name; u32 dev_name; u32 driver_name; u32 trap_name; u32 trap_group_name; }; typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); struct pci_root_res { struct list_head list; struct resource res; }; struct pci_root_info___2 { struct list_head list; char name[12]; struct list_head resources; struct resource busn; int node; int link; }; 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; }; typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); struct msr_enumeration { u32 msr_no; u32 feature; }; 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 psc_op { SNP_PAGE_STATE_PRIVATE = 1, SNP_PAGE_STATE_SHARED = 2, }; enum xstate_copy_mode { XSTATE_COPY_FP = 0, XSTATE_COPY_FX = 1, XSTATE_COPY_XSAVE = 2, }; 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 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, }; enum pcpu_fc { PCPU_FC_AUTO = 0, PCPU_FC_EMBED = 1, PCPU_FC_PAGE = 2, PCPU_FC_NR = 3, }; typedef int pcpu_fc_cpu_to_node_fn_t(int); typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); union apic_ir { unsigned long map[4]; u32 regs[8]; }; typedef int (*wakeup_cpu_handler)(int, unsigned long); 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; u64 exec_clock; u64 min_vruntime; struct rb_root_cached tasks_timeline; struct sched_entity *curr; struct sched_entity *next; struct sched_entity *last; struct sched_entity *skip; long: 64; 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; 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: 32; long: 64; 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; unsigned int rt_nr_migratory; unsigned int rt_nr_total; 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; unsigned int dl_nr_migratory; int overloaded; struct rb_root_cached pushable_dl_tasks_root; u64 running_bw; u64 this_bw; u64 extra_bw; u64 bw_ratio; }; struct root_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: 32; 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 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; int membarrier_state; struct root_domain *rd; struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; unsigned long cpu_capacity; unsigned long cpu_capacity_orig; 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; long: 64; struct sched_avg avg_rt; struct sched_avg avg_dl; u64 idle_stamp; u64 avg_idle; unsigned long wake_stamp; u64 wake_avg_idle; u64 max_idle_balance_cost; struct rcuwait hotplug_wait; u64 prev_steal_time; unsigned long calc_load_update; long calc_load_active; long: 64; long: 64; long: 64; call_single_data_t hrtick_csd; struct hrtimer hrtick_timer; ktime_t hrtick_time; struct sched_info rq_sched_info; unsigned long long rq_cpu_time; unsigned int yld_count; unsigned int sched_count; unsigned int sched_goidle; unsigned int ttwu_count; unsigned int ttwu_local; 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; long: 64; long: 64; long: 64; long: 64; }; 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: 32; long: 64; long: 64; long: 64; atomic_long_t load_avg; 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; 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_state; struct em_perf_domain { struct em_perf_state *table; int nr_perf_states; unsigned long flags; unsigned long cpus[0]; }; struct em_perf_state { unsigned long frequency; unsigned long power; unsigned long cost; unsigned long flags; }; struct sched_group { struct sched_group *next; atomic_t ref; unsigned int group_weight; 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; unsigned long cpumask[0]; }; struct balance_callback { struct balance_callback *next; void (*func)(struct rq *); }; struct rq_flags { unsigned long flags; struct pin_cookie cookie; }; struct affinity_context { const struct cpumask *new_mask; struct cpumask *user_mask; unsigned int flags; }; 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 idle_timer { struct hrtimer timer; int done; }; typedef struct rt_rq *rt_rq_iter_t; struct dl_bandwidth { raw_spinlock_t dl_runtime_lock; u64 dl_runtime; u64 dl_period; }; 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; }; enum bpf_struct_ops_state { BPF_STRUCT_OPS_STATE_INIT = 0, BPF_STRUCT_OPS_STATE_INUSE = 1, BPF_STRUCT_OPS_STATE_TOBEFREE = 2, }; 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_struct_ops_bpf_dummy_ops { refcount_t refcnt; enum bpf_struct_ops_state state; 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_struct_ops_tcp_congestion_ops { refcount_t refcnt; enum bpf_struct_ops_state state; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct tcp_congestion_ops data; }; struct bpf_struct_ops_value { refcount_t refcnt; enum bpf_struct_ops_state state; 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 *st_ops; struct mutex lock; struct bpf_link **links; void *image; struct bpf_struct_ops_value *uvalue; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; struct bpf_struct_ops_value kvalue; }; struct dma_page { struct list_head page_list; void *vaddr; dma_addr_t dma; unsigned int in_use; unsigned int offset; }; struct dma_pool { struct list_head page_list; spinlock_t lock; size_t size; struct device *dev; size_t allocation; size_t boundary; char name[32]; struct list_head pools; }; struct files_stat_struct { unsigned long nr_files; unsigned long nr_free_files; unsigned long max_files; }; struct dio { int flags; blk_opf_t opf; struct gendisk *bio_disk; struct inode *inode; loff_t i_size; dio_iodone_t *end_io; 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; dio_submit_t *submit_io; 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 iomap_ioend { struct list_head io_list; u16 io_type; u16 io_flags; u32 io_folios; struct inode *io_inode; size_t io_size; loff_t io_offset; sector_t io_sector; struct bio *io_bio; struct bio io_inline_bio; }; struct iomap_page { atomic_t read_bytes_pending; atomic_t write_bytes_pending; spinlock_t uptodate_lock; unsigned long uptodate[0]; }; struct iomap_readpage_ctx { struct folio *cur_folio; bool cur_folio_in_bio; struct bio *bio; struct readahead_control *rac; }; struct folio_iter { struct folio *folio; size_t offset; size_t length; struct folio *_next; size_t _seg_count; int _i; }; struct iomap_writeback_ops; struct iomap_writepage_ctx { struct iomap iomap; struct iomap_ioend *ioend; const struct iomap_writeback_ops *ops; }; struct iomap_writeback_ops { int (*map_blocks)(struct iomap_writepage_ctx *, struct inode *, loff_t); int (*prepare_ioend)(struct iomap_ioend *, int); void (*discard_folio)(struct folio *, loff_t); }; typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); typedef void (*btf_trace_nfs_fscache_read_page)(void *, const struct inode *, struct page *); typedef void (*btf_trace_nfs_fscache_read_page_exit)(void *, const struct inode *, struct page *, int); typedef void (*btf_trace_nfs_fscache_write_page)(void *, const struct inode *, struct page *); typedef void (*btf_trace_nfs_fscache_write_page_exit)(void *, const struct inode *, struct page *, int); typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); typedef void (*btf_trace_nfs_mount_path)(void *, const char *); typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); struct trace_event_raw_nfs_inode_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; char __data[0]; }; struct trace_event_raw_nfs_inode_event_done { struct trace_entry ent; unsigned long error; dev_t dev; u32 fhandle; unsigned char type; u64 fileid; u64 version; loff_t size; unsigned long nfsi_flags; unsigned long cache_validity; char __data[0]; }; struct trace_event_raw_nfs_access_exit { struct trace_entry ent; unsigned long error; dev_t dev; u32 fhandle; unsigned char type; u64 fileid; u64 version; loff_t size; unsigned long nfsi_flags; unsigned long cache_validity; unsigned int mask; unsigned int permitted; char __data[0]; }; struct trace_event_raw_nfs_update_size_class { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; loff_t cur_size; loff_t new_size; char __data[0]; }; struct trace_event_raw_nfs_inode_range_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; loff_t range_start; loff_t range_end; char __data[0]; }; struct trace_event_raw_nfs_readdir_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; char verifier[8]; u64 cookie; unsigned long index; unsigned int dtsize; char __data[0]; }; struct trace_event_raw_nfs_lookup_event { struct trace_entry ent; unsigned long flags; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_lookup_event_done { struct trace_entry ent; unsigned long error; unsigned long flags; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_atomic_open_enter { struct trace_entry ent; unsigned long flags; unsigned long fmode; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_atomic_open_exit { struct trace_entry ent; unsigned long error; unsigned long flags; unsigned long fmode; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_create_enter { struct trace_entry ent; unsigned long flags; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_create_exit { struct trace_entry ent; unsigned long error; unsigned long flags; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_directory_event { struct trace_entry ent; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_directory_event_done { struct trace_entry ent; unsigned long error; dev_t dev; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_link_enter { struct trace_entry ent; dev_t dev; u64 fileid; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_link_exit { struct trace_entry ent; unsigned long error; dev_t dev; u64 fileid; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_rename_event { struct trace_entry ent; dev_t dev; u64 old_dir; u64 new_dir; u32 __data_loc_old_name; u32 __data_loc_new_name; char __data[0]; }; struct trace_event_raw_nfs_rename_event_done { struct trace_entry ent; dev_t dev; unsigned long error; u64 old_dir; u32 __data_loc_old_name; u64 new_dir; u32 __data_loc_new_name; char __data[0]; }; struct trace_event_raw_nfs_sillyrename_unlink { struct trace_entry ent; dev_t dev; unsigned long error; u64 dir; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_nfs_folio_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; loff_t offset; u32 count; char __data[0]; }; struct trace_event_raw_nfs_folio_event_done { struct trace_entry ent; dev_t dev; u32 fhandle; int ret; u64 fileid; u64 version; loff_t offset; u32 count; char __data[0]; }; struct trace_event_raw_nfs_aop_readahead { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; u64 version; loff_t offset; unsigned int nr_pages; char __data[0]; }; struct trace_event_raw_nfs_aop_readahead_done { struct trace_entry ent; dev_t dev; u32 fhandle; int ret; u64 fileid; u64 version; loff_t offset; unsigned int nr_pages; char __data[0]; }; struct trace_event_raw_nfs_initiate_read { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 count; char __data[0]; }; struct trace_event_raw_nfs_readpage_done { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; bool eof; int error; char __data[0]; }; struct trace_event_raw_nfs_readpage_short { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; bool eof; int error; char __data[0]; }; struct trace_event_raw_nfs_fscache_page_event { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; char __data[0]; }; struct trace_event_raw_nfs_fscache_page_event_done { struct trace_entry ent; int error; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; char __data[0]; }; struct trace_event_raw_nfs_pgio_error { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; loff_t pos; int error; char __data[0]; }; struct trace_event_raw_nfs_initiate_write { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 count; unsigned long stable; char __data[0]; }; struct trace_event_raw_nfs_writeback_done { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 arg_count; u32 res_count; int error; unsigned long stable; char verifier[8]; char __data[0]; }; struct trace_event_raw_nfs_page_error_class { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; unsigned int count; int error; char __data[0]; }; struct trace_event_raw_nfs_initiate_commit { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; u32 count; char __data[0]; }; struct trace_event_raw_nfs_commit_done { struct trace_entry ent; dev_t dev; u32 fhandle; u64 fileid; loff_t offset; int error; unsigned long stable; char verifier[8]; char __data[0]; }; struct trace_event_raw_nfs_direct_req_class { struct trace_entry ent; dev_t dev; u64 fileid; u32 fhandle; loff_t offset; ssize_t count; ssize_t bytes_left; ssize_t error; int flags; char __data[0]; }; struct trace_event_raw_nfs_fh_to_dentry { struct trace_entry ent; int error; dev_t dev; u32 fhandle; u64 fileid; char __data[0]; }; struct trace_event_raw_nfs_mount_assign { struct trace_entry ent; u32 __data_loc_option; u32 __data_loc_value; char __data[0]; }; struct trace_event_raw_nfs_mount_option { struct trace_entry ent; u32 __data_loc_option; char __data[0]; }; struct trace_event_raw_nfs_mount_path { struct trace_entry ent; u32 __data_loc_path; char __data[0]; }; struct trace_event_raw_nfs_xdr_event { struct trace_entry ent; unsigned int task_id; unsigned int client_id; u32 xid; int version; unsigned long error; u32 __data_loc_program; u32 __data_loc_procedure; char __data[0]; }; struct trace_event_data_offsets_nfs_lookup_event { u32 name; }; struct trace_event_data_offsets_nfs_lookup_event_done { u32 name; }; struct trace_event_data_offsets_nfs_atomic_open_enter { u32 name; }; struct trace_event_data_offsets_nfs_atomic_open_exit { u32 name; }; struct trace_event_data_offsets_nfs_create_enter { u32 name; }; struct trace_event_data_offsets_nfs_create_exit { u32 name; }; struct trace_event_data_offsets_nfs_directory_event { u32 name; }; struct trace_event_data_offsets_nfs_directory_event_done { u32 name; }; struct trace_event_data_offsets_nfs_link_enter { u32 name; }; struct trace_event_data_offsets_nfs_link_exit { u32 name; }; struct trace_event_data_offsets_nfs_rename_event { u32 old_name; u32 new_name; }; struct trace_event_data_offsets_nfs_rename_event_done { u32 old_name; u32 new_name; }; struct trace_event_data_offsets_nfs_sillyrename_unlink { u32 name; }; struct trace_event_data_offsets_nfs_mount_assign { u32 option; u32 value; }; struct trace_event_data_offsets_nfs_mount_option { u32 option; }; struct trace_event_data_offsets_nfs_mount_path { u32 path; }; struct trace_event_data_offsets_nfs_xdr_event { u32 program; u32 procedure; }; struct trace_event_data_offsets_nfs_inode_event {}; struct trace_event_data_offsets_nfs_inode_event_done {}; struct trace_event_data_offsets_nfs_access_exit {}; struct trace_event_data_offsets_nfs_update_size_class {}; struct trace_event_data_offsets_nfs_inode_range_event {}; struct trace_event_data_offsets_nfs_readdir_event {}; struct trace_event_data_offsets_nfs_folio_event {}; struct trace_event_data_offsets_nfs_folio_event_done {}; struct trace_event_data_offsets_nfs_aop_readahead {}; struct trace_event_data_offsets_nfs_aop_readahead_done {}; struct trace_event_data_offsets_nfs_initiate_read {}; struct trace_event_data_offsets_nfs_readpage_done {}; struct trace_event_data_offsets_nfs_readpage_short {}; struct trace_event_data_offsets_nfs_fscache_page_event {}; struct trace_event_data_offsets_nfs_fscache_page_event_done {}; struct trace_event_data_offsets_nfs_pgio_error {}; struct trace_event_data_offsets_nfs_initiate_write {}; struct trace_event_data_offsets_nfs_writeback_done {}; struct trace_event_data_offsets_nfs_page_error_class {}; struct trace_event_data_offsets_nfs_initiate_commit {}; struct trace_event_data_offsets_nfs_commit_done {}; struct trace_event_data_offsets_nfs_direct_req_class {}; struct trace_event_data_offsets_nfs_fh_to_dentry {}; struct walk_rcec_data { struct pci_dev *rcec; int (*user_callback)(struct pci_dev *, void *); void *user_data; }; struct acpi_wakeup_handler { struct list_head list_node; bool (*wakeup)(void *); void *context; }; struct acpi_thermal_flags { u8 cooling_mode: 1; u8 devices: 1; u8 reserved: 6; }; struct acpi_thermal_state { u8 critical: 1; u8 hot: 1; u8 passive: 1; u8 active: 1; u8 reserved: 4; int active_index; }; struct acpi_thermal_state_flags { u8 valid: 1; u8 enabled: 1; u8 reserved: 6; }; struct acpi_thermal_critical { struct acpi_thermal_state_flags flags; unsigned long temperature; }; struct acpi_thermal_hot { struct acpi_thermal_state_flags flags; unsigned long temperature; }; struct acpi_thermal_passive { struct acpi_thermal_state_flags flags; unsigned long temperature; unsigned long tc1; unsigned long tc2; unsigned long tsp; struct acpi_handle_list devices; }; struct acpi_thermal_active { struct acpi_thermal_state_flags flags; unsigned long temperature; struct acpi_handle_list devices; }; struct acpi_thermal_trips { struct acpi_thermal_critical critical; struct acpi_thermal_hot hot; struct acpi_thermal_passive passive; struct acpi_thermal_active active[10]; }; struct acpi_thermal { struct acpi_device *device; acpi_bus_id name; unsigned long temperature; unsigned long last_temperature; unsigned long polling_frequency; volatile u8 zombie; struct acpi_thermal_flags flags; struct acpi_thermal_state state; struct acpi_thermal_trips trips; struct acpi_handle_list devices; 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 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; int notify_map_cap; u32 notify_offset_multiplier; int modern_bars; struct virtio_device_id id; }; struct virtio_pci_vq_info; struct virtio_pci_device { struct virtio_device vdev; struct pci_dev *pci_dev; 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; 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); }; 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 virtio_pci_vq_info { struct virtqueue *vq; struct list_head node; unsigned int msix_vector; }; 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, }; enum tpm2_cc_attrs { TPM2_CC_ATTR_CHANDLES = 25, TPM2_CC_ATTR_RHANDLE = 28, TPM2_CC_ATTR_VENDOR = 29, }; enum tpm2_structures { TPM2_ST_NO_SESSIONS = 32769, TPM2_ST_SESSIONS = 32770, }; enum tpm2_handle_types { TPM2_HT_HMAC_SESSION = 33554432, TPM2_HT_POLICY_SESSION = 50331648, TPM2_HT_TRANSIENT = 2147483648, }; enum tpm2_capabilities { TPM2_CAP_HANDLES = 1, TPM2_CAP_COMMANDS = 2, TPM2_CAP_PCRS = 5, TPM2_CAP_TPM_PROPERTIES = 6, }; struct tpm2_context { __be64 sequence; __be32 saved_handle; __be32 hierarchy; __be16 blob_size; } __attribute__((packed)); struct tpm2_cap_handles { u8 more_data; __be32 capability; __be32 count; __be32 handles[0]; } __attribute__((packed)); struct drm_client_offset { int x; int y; }; struct ttm_agp_backend { struct ttm_tt ttm; struct agp_memory *mem; struct agp_bridge_data *bridge; }; struct engine_mmio_base { u32 graphics_ver: 8; u32 base: 24; }; struct engine_info { u8 class; u8 instance; struct engine_mmio_base mmio_bases[3]; }; struct pmap { size_t offset; const char *name; }; struct measure_breadcrumb { struct i915_request rq; struct intel_ring ring; u32 cs[2048]; }; struct drm_i915_gem_busy { __u32 handle; __u32 busy; }; struct icl_procmon { const char *name; u32 dw1; u32 dw9; u32 dw10; }; enum { PROCMON_0_85V_DOT_0 = 0, PROCMON_0_95V_DOT_0 = 1, PROCMON_0_95V_DOT_1 = 2, PROCMON_1_05V_DOT_0 = 3, PROCMON_1_05V_DOT_1 = 4, }; struct intel_hdmi_lpe_audio_port_pdata { u8 eld[128]; int port; int pipe; int ls_clock; bool dp_output; }; struct intel_hdmi_lpe_audio_pdata { struct intel_hdmi_lpe_audio_port_pdata port[3]; int num_ports; int num_pipes; void (*notify_audio_lpe)(struct platform_device *, int); spinlock_t lpe_audio_slock; }; struct drm_virtgpu_3d_box { __u32 x; __u32 y; __u32 z; __u32 w; __u32 h; __u32 d; }; struct drm_virtgpu_resource_create_blob { __u32 blob_mem; __u32 blob_flags; __u32 bo_handle; __u32 res_handle; __u64 size; __u32 pad; __u32 cmd_size; __u64 cmd; __u64 blob_id; }; struct drm_virtgpu_map { __u64 offset; __u32 handle; __u32 pad; }; struct drm_virtgpu_execbuffer { __u32 flags; __u32 size; __u64 command; __u64 bo_handles; __u32 num_bo_handles; __s32 fence_fd; __u32 ring_idx; __u32 pad; }; struct drm_virtgpu_getparam { __u64 param; __u64 value; }; struct drm_virtgpu_resource_create { __u32 target; __u32 format; __u32 bind; __u32 width; __u32 height; __u32 depth; __u32 array_size; __u32 last_level; __u32 nr_samples; __u32 flags; __u32 bo_handle; __u32 res_handle; __u32 size; __u32 stride; }; struct drm_virtgpu_resource_info { __u32 bo_handle; __u32 res_handle; __u32 size; __u32 blob_mem; }; struct drm_virtgpu_3d_transfer_from_host { __u32 bo_handle; struct drm_virtgpu_3d_box box; __u32 level; __u32 offset; __u32 stride; __u32 layer_stride; }; struct drm_virtgpu_3d_transfer_to_host { __u32 bo_handle; struct drm_virtgpu_3d_box box; __u32 level; __u32 offset; __u32 stride; __u32 layer_stride; }; struct drm_virtgpu_3d_wait { __u32 handle; __u32 flags; }; struct drm_virtgpu_get_caps { __u32 cap_set_id; __u32 cap_set_ver; __u64 addr; __u32 size; __u32 pad; }; struct drm_virtgpu_context_set_param { __u64 param; __u64 value; }; struct drm_virtgpu_context_init { __u32 num_params; __u32 pad; __u64 ctx_set_params; }; typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); struct trace_event_raw_regmap_reg { struct trace_entry ent; u32 __data_loc_name; unsigned int reg; unsigned int val; char __data[0]; }; struct trace_event_raw_regmap_bulk { struct trace_entry ent; u32 __data_loc_name; unsigned int reg; u32 __data_loc_buf; int val_len; char __data[0]; }; struct trace_event_raw_regmap_block { struct trace_entry ent; u32 __data_loc_name; unsigned int reg; int count; char __data[0]; }; struct trace_event_raw_regcache_sync { struct trace_entry ent; u32 __data_loc_name; u32 __data_loc_status; u32 __data_loc_type; char __data[0]; }; struct trace_event_raw_regmap_bool { struct trace_entry ent; u32 __data_loc_name; int flag; char __data[0]; }; struct trace_event_raw_regmap_async { struct trace_entry ent; u32 __data_loc_name; char __data[0]; }; struct trace_event_raw_regcache_drop_region { struct trace_entry ent; u32 __data_loc_name; unsigned int from; unsigned int to; char __data[0]; }; struct regmap_range_node { struct rb_node node; const char *name; struct regmap *map; unsigned int range_min; unsigned int range_max; unsigned int selector_reg; unsigned int selector_mask; int selector_shift; unsigned int window_start; unsigned int window_len; }; struct trace_event_data_offsets_regmap_reg { u32 name; }; struct trace_event_data_offsets_regmap_bulk { u32 name; u32 buf; }; struct trace_event_data_offsets_regmap_block { u32 name; }; struct trace_event_data_offsets_regcache_sync { u32 name; u32 status; u32 type; }; struct trace_event_data_offsets_regmap_bool { u32 name; }; struct trace_event_data_offsets_regmap_async { u32 name; }; struct trace_event_data_offsets_regcache_drop_region { u32 name; }; struct regmap_field { struct regmap *regmap; unsigned int mask; unsigned int shift; unsigned int reg; unsigned int id_size; unsigned int id_offset; }; struct reg_field { unsigned int reg; unsigned int lsb; unsigned int msb; unsigned int id_size; unsigned int id_offset; }; enum { D0TIM = 128, D1TIM = 132, PM = 7, MDM = 768, UDM = 458752, PPE = 1073741824, USD = -2147483648, }; struct yenta_socket; struct cardbus_type { int (*override)(struct yenta_socket *); void (*save_state)(struct yenta_socket *); void (*restore_state)(struct yenta_socket *); int (*sock_init)(struct yenta_socket *); }; struct yenta_socket { struct pci_dev *dev; int cb_irq; int io_irq; void *base; struct timer_list poll_timer; struct pcmcia_socket socket; struct cardbus_type *type; u32 flags; unsigned int probe_status; unsigned int private[8]; u32 saved_state[2]; }; enum { CARDBUS_TYPE_DEFAULT = -1, CARDBUS_TYPE_TI = 0, CARDBUS_TYPE_TI113X = 1, CARDBUS_TYPE_TI12XX = 2, CARDBUS_TYPE_TI1250 = 3, CARDBUS_TYPE_RICOH = 4, CARDBUS_TYPE_TOPIC95 = 5, CARDBUS_TYPE_TOPIC97 = 6, CARDBUS_TYPE_O2MICRO = 7, CARDBUS_TYPE_ENE = 8, }; typedef struct pccard_io_map pccard_io_map; enum { NAMESZ = 10, }; struct mon_iso_desc { int status; unsigned int offset; unsigned int length; }; struct mon_event_text { struct list_head e_link; int type; unsigned long id; unsigned int tstamp; int busnum; char devnum; char epnum; char is_in; char xfertype; int length; int status; int interval; int start_frame; int error_count; char setup_flag; char data_flag; int numdesc; struct mon_iso_desc isodesc[5]; unsigned char setup[8]; unsigned char data[32]; }; struct mon_reader { struct list_head r_link; struct mon_bus *m_bus; void *r_data; void (*rnf_submit)(void *, struct urb *); void (*rnf_error)(void *, struct urb *, int); void (*rnf_complete)(void *, struct urb *, int); }; struct mon_reader_text { struct kmem_cache *e_slab; int nevents; struct list_head e_list; struct mon_reader r; wait_queue_head_t wait; int printf_size; size_t printf_offset; size_t printf_togo; char *printf_buf; struct mutex printf_lock; char slab_name[30]; }; struct mon_text_ptr { int cnt; int limit; char *pbuf; }; typedef u64 (*btf_bpf_rc_repeat)(u32 *); typedef u64 (*btf_bpf_rc_keydown)(u32 *, u32, u64, u32); typedef u64 (*btf_bpf_rc_pointer_rel)(u32 *, s32, s32); typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); struct snd_seq_dummy_port { int client; int port; int duplex; int connect; }; enum sk_pacing { SK_PACING_NONE = 0, SK_PACING_NEEDED = 1, SK_PACING_FQ = 2, }; 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, }; 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 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 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 { TCA_FLOWER_UNSPEC = 0, TCA_FLOWER_CLASSID = 1, TCA_FLOWER_INDEV = 2, TCA_FLOWER_ACT = 3, TCA_FLOWER_KEY_ETH_DST = 4, TCA_FLOWER_KEY_ETH_DST_MASK = 5, TCA_FLOWER_KEY_ETH_SRC = 6, TCA_FLOWER_KEY_ETH_SRC_MASK = 7, TCA_FLOWER_KEY_ETH_TYPE = 8, TCA_FLOWER_KEY_IP_PROTO = 9, TCA_FLOWER_KEY_IPV4_SRC = 10, TCA_FLOWER_KEY_IPV4_SRC_MASK = 11, TCA_FLOWER_KEY_IPV4_DST = 12, TCA_FLOWER_KEY_IPV4_DST_MASK = 13, TCA_FLOWER_KEY_IPV6_SRC = 14, TCA_FLOWER_KEY_IPV6_SRC_MASK = 15, TCA_FLOWER_KEY_IPV6_DST = 16, TCA_FLOWER_KEY_IPV6_DST_MASK = 17, TCA_FLOWER_KEY_TCP_SRC = 18, TCA_FLOWER_KEY_TCP_DST = 19, TCA_FLOWER_KEY_UDP_SRC = 20, TCA_FLOWER_KEY_UDP_DST = 21, TCA_FLOWER_FLAGS = 22, TCA_FLOWER_KEY_VLAN_ID = 23, TCA_FLOWER_KEY_VLAN_PRIO = 24, TCA_FLOWER_KEY_VLAN_ETH_TYPE = 25, TCA_FLOWER_KEY_ENC_KEY_ID = 26, TCA_FLOWER_KEY_ENC_IPV4_SRC = 27, TCA_FLOWER_KEY_ENC_IPV4_SRC_MASK = 28, TCA_FLOWER_KEY_ENC_IPV4_DST = 29, TCA_FLOWER_KEY_ENC_IPV4_DST_MASK = 30, TCA_FLOWER_KEY_ENC_IPV6_SRC = 31, TCA_FLOWER_KEY_ENC_IPV6_SRC_MASK = 32, TCA_FLOWER_KEY_ENC_IPV6_DST = 33, TCA_FLOWER_KEY_ENC_IPV6_DST_MASK = 34, TCA_FLOWER_KEY_TCP_SRC_MASK = 35, TCA_FLOWER_KEY_TCP_DST_MASK = 36, TCA_FLOWER_KEY_UDP_SRC_MASK = 37, TCA_FLOWER_KEY_UDP_DST_MASK = 38, TCA_FLOWER_KEY_SCTP_SRC_MASK = 39, TCA_FLOWER_KEY_SCTP_DST_MASK = 40, TCA_FLOWER_KEY_SCTP_SRC = 41, TCA_FLOWER_KEY_SCTP_DST = 42, TCA_FLOWER_KEY_ENC_UDP_SRC_PORT = 43, TCA_FLOWER_KEY_ENC_UDP_SRC_PORT_MASK = 44, TCA_FLOWER_KEY_ENC_UDP_DST_PORT = 45, TCA_FLOWER_KEY_ENC_UDP_DST_PORT_MASK = 46, TCA_FLOWER_KEY_FLAGS = 47, TCA_FLOWER_KEY_FLAGS_MASK = 48, TCA_FLOWER_KEY_ICMPV4_CODE = 49, TCA_FLOWER_KEY_ICMPV4_CODE_MASK = 50, TCA_FLOWER_KEY_ICMPV4_TYPE = 51, TCA_FLOWER_KEY_ICMPV4_TYPE_MASK = 52, TCA_FLOWER_KEY_ICMPV6_CODE = 53, TCA_FLOWER_KEY_ICMPV6_CODE_MASK = 54, TCA_FLOWER_KEY_ICMPV6_TYPE = 55, TCA_FLOWER_KEY_ICMPV6_TYPE_MASK = 56, TCA_FLOWER_KEY_ARP_SIP = 57, TCA_FLOWER_KEY_ARP_SIP_MASK = 58, TCA_FLOWER_KEY_ARP_TIP = 59, TCA_FLOWER_KEY_ARP_TIP_MASK = 60, TCA_FLOWER_KEY_ARP_OP = 61, TCA_FLOWER_KEY_ARP_OP_MASK = 62, TCA_FLOWER_KEY_ARP_SHA = 63, TCA_FLOWER_KEY_ARP_SHA_MASK = 64, TCA_FLOWER_KEY_ARP_THA = 65, TCA_FLOWER_KEY_ARP_THA_MASK = 66, TCA_FLOWER_KEY_MPLS_TTL = 67, TCA_FLOWER_KEY_MPLS_BOS = 68, TCA_FLOWER_KEY_MPLS_TC = 69, TCA_FLOWER_KEY_MPLS_LABEL = 70, TCA_FLOWER_KEY_TCP_FLAGS = 71, TCA_FLOWER_KEY_TCP_FLAGS_MASK = 72, TCA_FLOWER_KEY_IP_TOS = 73, TCA_FLOWER_KEY_IP_TOS_MASK = 74, TCA_FLOWER_KEY_IP_TTL = 75, TCA_FLOWER_KEY_IP_TTL_MASK = 76, TCA_FLOWER_KEY_CVLAN_ID = 77, TCA_FLOWER_KEY_CVLAN_PRIO = 78, TCA_FLOWER_KEY_CVLAN_ETH_TYPE = 79, TCA_FLOWER_KEY_ENC_IP_TOS = 80, TCA_FLOWER_KEY_ENC_IP_TOS_MASK = 81, TCA_FLOWER_KEY_ENC_IP_TTL = 82, TCA_FLOWER_KEY_ENC_IP_TTL_MASK = 83, TCA_FLOWER_KEY_ENC_OPTS = 84, TCA_FLOWER_KEY_ENC_OPTS_MASK = 85, TCA_FLOWER_IN_HW_COUNT = 86, TCA_FLOWER_KEY_PORT_SRC_MIN = 87, TCA_FLOWER_KEY_PORT_SRC_MAX = 88, TCA_FLOWER_KEY_PORT_DST_MIN = 89, TCA_FLOWER_KEY_PORT_DST_MAX = 90, TCA_FLOWER_KEY_CT_STATE = 91, TCA_FLOWER_KEY_CT_STATE_MASK = 92, TCA_FLOWER_KEY_CT_ZONE = 93, TCA_FLOWER_KEY_CT_ZONE_MASK = 94, TCA_FLOWER_KEY_CT_MARK = 95, TCA_FLOWER_KEY_CT_MARK_MASK = 96, TCA_FLOWER_KEY_CT_LABELS = 97, TCA_FLOWER_KEY_CT_LABELS_MASK = 98, TCA_FLOWER_KEY_MPLS_OPTS = 99, TCA_FLOWER_KEY_HASH = 100, TCA_FLOWER_KEY_HASH_MASK = 101, TCA_FLOWER_KEY_NUM_OF_VLANS = 102, TCA_FLOWER_KEY_PPPOE_SID = 103, TCA_FLOWER_KEY_PPP_PROTO = 104, TCA_FLOWER_KEY_L2TPV3_SID = 105, __TCA_FLOWER_MAX = 106, }; enum { TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC = 0, TCA_FLOWER_KEY_MPLS_OPTS_LSE = 1, __TCA_FLOWER_KEY_MPLS_OPTS_MAX = 2, }; enum { TCA_FLOWER_KEY_MPLS_OPT_LSE_UNSPEC = 0, TCA_FLOWER_KEY_MPLS_OPT_LSE_DEPTH = 1, TCA_FLOWER_KEY_MPLS_OPT_LSE_TTL = 2, TCA_FLOWER_KEY_MPLS_OPT_LSE_BOS = 3, TCA_FLOWER_KEY_MPLS_OPT_LSE_TC = 4, TCA_FLOWER_KEY_MPLS_OPT_LSE_LABEL = 5, __TCA_FLOWER_KEY_MPLS_OPT_LSE_MAX = 6, }; enum { TCA_FLOWER_KEY_ENC_OPTS_UNSPEC = 0, TCA_FLOWER_KEY_ENC_OPTS_GENEVE = 1, TCA_FLOWER_KEY_ENC_OPTS_VXLAN = 2, TCA_FLOWER_KEY_ENC_OPTS_ERSPAN = 3, TCA_FLOWER_KEY_ENC_OPTS_GTP = 4, __TCA_FLOWER_KEY_ENC_OPTS_MAX = 5, }; enum { TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC = 0, TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS = 1, TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE = 2, TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA = 3, __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX = 4, }; enum { TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC = 0, TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP = 1, __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX = 2, }; enum { TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC = 0, TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER = 1, TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX = 2, TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR = 3, TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID = 4, __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX = 5, }; enum { TCA_FLOWER_KEY_ENC_OPT_GTP_UNSPEC = 0, TCA_FLOWER_KEY_ENC_OPT_GTP_PDU_TYPE = 1, TCA_FLOWER_KEY_ENC_OPT_GTP_QFI = 2, __TCA_FLOWER_KEY_ENC_OPT_GTP_MAX = 3, }; 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 { TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = 1, TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = 2, }; struct flow_dissector_key_meta { int ingress_ifindex; u16 ingress_iftype; }; struct flow_dissector_key_arp { __u32 sip; __u32 tip; __u8 op; unsigned char sha[6]; unsigned char tha[6]; }; 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_dissector_key_tcp { __be16 flags; }; struct flow_dissector_key_enc_opts { u8 data[255]; u8 len; __be16 dst_opt_type; }; 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_dissector_key_ct { u16 ct_state; u16 ct_zone; u32 ct_mark; u32 ct_labels[4]; }; struct flow_dissector_key_hash { u32 hash; }; struct flow_dissector_key_num_of_vlans { u8 num_of_vlans; }; struct flow_dissector_key_pppoe { __be16 session_id; __be16 ppp_proto; __be16 type; }; struct flow_dissector_key_l2tpv3 { __be32 session_id; }; struct fl_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_eth_addrs eth; 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_ports tp; struct flow_dissector_key_icmp icmp; struct flow_dissector_key_arp arp; 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_ports enc_tp; struct flow_dissector_key_mpls mpls; struct flow_dissector_key_tcp tcp; struct flow_dissector_key_ip ip; struct flow_dissector_key_ip enc_ip; struct flow_dissector_key_enc_opts enc_opts; struct flow_dissector_key_ports_range tp_range; struct flow_dissector_key_ct ct; struct flow_dissector_key_hash hash; struct flow_dissector_key_num_of_vlans num_of_vlans; struct flow_dissector_key_pppoe pppoe; struct flow_dissector_key_l2tpv3 l2tpv3; }; struct fl_flow_mask_range { unsigned short start; unsigned short end; }; struct fl_flow_mask { struct fl_flow_key key; struct fl_flow_mask_range range; u32 flags; struct rhash_head ht_node; struct rhashtable ht; struct rhashtable_params filter_ht_params; struct flow_dissector dissector; struct list_head filters; struct rcu_work rwork; struct list_head list; refcount_t refcnt; }; struct cls_fl_filter { struct fl_flow_mask *mask; struct rhash_head ht_node; struct fl_flow_key mkey; struct tcf_exts exts; struct tcf_result res; struct fl_flow_key key; struct list_head list; struct list_head hw_list; u32 handle; u32 flags; u32 in_hw_count; struct rcu_work rwork; struct net_device *hw_dev; refcount_t refcnt; bool deleted; }; struct cls_fl_head { struct rhashtable ht; spinlock_t masks_lock; struct list_head masks; struct list_head hw_filters; struct rcu_work rwork; struct idr handle_idr; }; struct gtp_pdu_session_info { u8 pdu_type; u8 qfi; }; struct fl_flow_tmplt { struct fl_flow_key dummy_key; struct fl_flow_key mask; struct flow_dissector dissector; struct tcf_chain *chain; }; 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_dissector_key { enum flow_dissector_key_id key_id; size_t offset; }; 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; }; struct xfrm_algo_list { struct xfrm_algo_desc *algs; int entries; u32 type; u32 mask; }; struct xfrm_aead_name { const char *name; int icvbits; }; struct xfrm_link { int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **, struct netlink_ext_ack *); int (*start)(struct netlink_callback *); int (*dump)(struct sk_buff *, struct netlink_callback *); int (*done)(struct netlink_callback *); const struct nla_policy *nla_pol; int nla_max; }; enum xfrm_attr_type_t { XFRMA_UNSPEC = 0, XFRMA_ALG_AUTH = 1, XFRMA_ALG_CRYPT = 2, XFRMA_ALG_COMP = 3, XFRMA_ENCAP = 4, XFRMA_TMPL = 5, XFRMA_SA = 6, XFRMA_POLICY = 7, XFRMA_SEC_CTX = 8, XFRMA_LTIME_VAL = 9, XFRMA_REPLAY_VAL = 10, XFRMA_REPLAY_THRESH = 11, XFRMA_ETIMER_THRESH = 12, XFRMA_SRCADDR = 13, XFRMA_COADDR = 14, XFRMA_LASTUSED = 15, XFRMA_POLICY_TYPE = 16, XFRMA_MIGRATE = 17, XFRMA_ALG_AEAD = 18, XFRMA_KMADDRESS = 19, XFRMA_ALG_AUTH_TRUNC = 20, XFRMA_MARK = 21, XFRMA_TFCPAD = 22, XFRMA_REPLAY_ESN_VAL = 23, XFRMA_SA_EXTRA_FLAGS = 24, XFRMA_PROTO = 25, XFRMA_ADDRESS_FILTER = 26, XFRMA_PAD = 27, XFRMA_OFFLOAD_DEV = 28, XFRMA_SET_MARK = 29, XFRMA_SET_MARK_MASK = 30, XFRMA_IF_ID = 31, XFRMA_MTIMER_THRESH = 32, __XFRMA_MAX = 33, }; enum { XFRM_DEV_OFFLOAD_IN = 1, XFRM_DEV_OFFLOAD_OUT = 2, XFRM_DEV_OFFLOAD_FWD = 3, }; enum { XFRM_SHARE_ANY = 0, XFRM_SHARE_SESSION = 1, XFRM_SHARE_USER = 2, XFRM_SHARE_UNIQUE = 3, }; enum xfrm_sadattr_type_t { XFRMA_SAD_UNSPEC = 0, XFRMA_SAD_CNT = 1, XFRMA_SAD_HINFO = 2, __XFRMA_SAD_MAX = 3, }; enum xfrm_spdattr_type_t { XFRMA_SPD_UNSPEC = 0, XFRMA_SPD_INFO = 1, XFRMA_SPD_HINFO = 2, XFRMA_SPD_IPV4_HTHRESH = 3, XFRMA_SPD_IPV6_HTHRESH = 4, __XFRMA_SPD_MAX = 5, }; struct xfrm_userpolicy_info { struct xfrm_selector sel; struct xfrm_lifetime_cfg lft; struct xfrm_lifetime_cur curlft; __u32 priority; __u32 index; __u8 dir; __u8 action; __u8 flags; __u8 share; }; struct xfrm_user_tmpl { struct xfrm_id id; __u16 family; xfrm_address_t saddr; __u32 reqid; __u8 mode; __u8 share; __u8 optional; __u32 aalgos; __u32 ealgos; __u32 calgos; }; struct xfrm_usersa_info { struct xfrm_selector sel; struct xfrm_id id; xfrm_address_t saddr; struct xfrm_lifetime_cfg lft; struct xfrm_lifetime_cur curlft; struct xfrm_stats stats; __u32 seq; __u32 reqid; __u16 family; __u8 mode; __u8 replay_window; __u8 flags; }; struct xfrm_user_expire { struct xfrm_usersa_info state; __u8 hard; }; struct xfrm_usersa_id { xfrm_address_t daddr; __be32 spi; __u16 family; __u8 proto; }; struct xfrm_usersa_flush { __u8 proto; }; struct xfrm_user_acquire { struct xfrm_id id; xfrm_address_t saddr; struct xfrm_selector sel; struct xfrm_userpolicy_info policy; __u32 aalgos; __u32 ealgos; __u32 calgos; __u32 seq; }; struct xfrm_user_sec_ctx { __u16 len; __u16 exttype; __u8 ctx_alg; __u8 ctx_doi; __u16 ctx_len; }; struct xfrm_user_offload { int ifindex; __u8 flags; }; struct xfrm_user_mapping { struct xfrm_usersa_id id; __u32 reqid; xfrm_address_t old_saddr; xfrm_address_t new_saddr; __be16 old_sport; __be16 new_sport; }; struct xfrm_userpolicy_id { struct xfrm_selector sel; __u32 index; __u8 dir; }; struct xfrm_user_polexpire { struct xfrm_userpolicy_info pol; __u8 hard; }; struct xfrm_user_report { __u8 proto; struct xfrm_selector sel; }; struct xfrm_dump_info { struct sk_buff *in_skb; struct sk_buff *out_skb; u32 nlmsg_seq; u16 nlmsg_flags; }; struct xfrm_userpolicy_type { __u8 type; __u16 reserved1; __u8 reserved2; }; struct xfrmu_sadhinfo { __u32 sadhcnt; __u32 sadhmcnt; }; struct xfrmu_spdinfo { __u32 incnt; __u32 outcnt; __u32 fwdcnt; __u32 inscnt; __u32 outscnt; __u32 fwdscnt; }; struct xfrmu_spdhinfo { __u32 spdhcnt; __u32 spdhmcnt; }; struct xfrmu_spdhthresh { __u8 lbits; __u8 rbits; }; struct xfrm_userpolicy_default { __u8 in; __u8 fwd; __u8 out; }; struct xfrm_aevent_id { struct xfrm_usersa_id sa_id; xfrm_address_t saddr; __u32 flags; __u32 reqid; }; struct xfrm_userspi_info { struct xfrm_usersa_info info; __u32 min; __u32 max; }; struct mld_msg { struct icmp6hdr mld_hdr; struct in6_addr mld_mca; }; enum rfkill_sched_op { RFKILL_GLOBAL_OP_EPO = 0, RFKILL_GLOBAL_OP_RESTORE = 1, RFKILL_GLOBAL_OP_UNLOCK = 2, RFKILL_GLOBAL_OP_UNBLOCK = 3, }; enum rfkill_input_master_mode { RFKILL_INPUT_MASTER_UNLOCK = 0, RFKILL_INPUT_MASTER_RESTORE = 1, RFKILL_INPUT_MASTER_UNBLOCKALL = 2, NUM_RFKILL_INPUT_MASTER_MODES = 3, }; struct join_entry { u32 token; u32 remote_nonce; u32 local_nonce; u8 join_id; u8 local_id; u8 backup; u8 valid; }; 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 sched_tunable_scaling { SCHED_TUNABLESCALING_NONE = 0, SCHED_TUNABLESCALING_LOG = 1, SCHED_TUNABLESCALING_LINEAR = 2, SCHED_TUNABLESCALING_END = 3, }; 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_asym_packing = 3, group_imbalanced = 4, group_overloaded = 5, }; enum cpu_util_type { FREQUENCY_UTIL = 0, ENERGY_UTIL = 1, }; struct sched_entity_stats { struct sched_entity se; struct sched_statistics stats; }; 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 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 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]; }; 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, }; struct compat_kexec_segment { compat_uptr_t buf; compat_size_t bufsz; compat_ulong_t mem; compat_size_t memsz; }; 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 { BTF_F_COMPACT = 1, BTF_F_NONAME = 2, BTF_F_PTR_RAW = 4, BTF_F_ZERO = 8, }; enum { BPF_F_GET_BRANCH_RECORDS_SIZE = 1, }; 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_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); struct bpf_raw_tracepoint_args; typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); struct bpf_raw_tracepoint_args { __u64 args[0]; }; 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_kprobe_multi_link; struct bpf_kprobe_multi_run_ctx { struct bpf_run_ctx run_ctx; struct bpf_kprobe_multi_link *link; unsigned long entry_ip; }; struct bpf_kprobe_multi_link { struct bpf_link link; struct fprobe fp; unsigned long *addrs; u64 *cookies; u32 cnt; u32 mods_cnt; struct module **mods; }; struct bpf_trace_module { struct module *module; struct list_head list; }; struct trace_event_data_offsets_bpf_trace_printk { u32 bpf_string; }; struct user_syms { const char **syms; char *buf; }; struct modules_array { struct module **mods; int mods_cnt; int mods_cap; }; struct bpf_key { struct key *key; bool has_ref; }; struct perf_event_query_bpf { __u32 ids_len; __u32 prog_cnt; __u32 ids[0]; }; struct multi_symbols_sort { const char **funcs; u64 *cookies; }; struct compat_elf_siginfo { compat_int_t si_signo; compat_int_t si_code; compat_int_t si_errno; }; struct compat_elf_prstatus_common { struct compat_elf_siginfo pr_info; short pr_cursig; compat_ulong_t pr_sigpend; compat_ulong_t pr_sighold; compat_pid_t pr_pid; compat_pid_t pr_ppid; compat_pid_t pr_pgrp; compat_pid_t pr_sid; struct old_timeval32 pr_utime; struct old_timeval32 pr_stime; struct old_timeval32 pr_cutime; struct old_timeval32 pr_cstime; }; struct user_regs_struct32 { __u32 ebx; __u32 ecx; __u32 edx; __u32 esi; __u32 edi; __u32 ebp; __u32 eax; unsigned short ds; unsigned short __ds; unsigned short es; unsigned short __es; unsigned short fs; unsigned short __fs; unsigned short gs; unsigned short __gs; __u32 orig_eax; __u32 eip; unsigned short cs; unsigned short __cs; __u32 eflags; __u32 esp; unsigned short ss; unsigned short __ss; }; struct i386_elf_prstatus { struct compat_elf_prstatus_common common; struct user_regs_struct32 pr_reg; compat_int_t pr_fpvalid; }; 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; compat_siginfo_t csigdata; size_t size; int thread_notes; }; struct user_regs_struct { 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; unsigned long cs; unsigned long flags; unsigned long sp; unsigned long ss; unsigned long fs_base; unsigned long gs_base; unsigned long ds; unsigned long es; unsigned long fs; unsigned long gs; }; typedef struct user_regs_struct compat_elf_gregset_t; struct compat_elf_prstatus { struct compat_elf_prstatus_common common; compat_elf_gregset_t pr_reg; compat_int_t pr_fpvalid; }; struct elf_thread_core_info { struct elf_thread_core_info *next; struct task_struct *task; struct compat_elf_prstatus prstatus; struct memelfnote notes[0]; }; struct compat_elf_prpsinfo { char pr_state; char pr_sname; char pr_zomb; char pr_nice; compat_ulong_t pr_flag; __compat_uid_t pr_uid; __compat_gid_t pr_gid; compat_pid_t pr_pid; compat_pid_t pr_ppid; compat_pid_t pr_pgrp; compat_pid_t pr_sid; char pr_fname[16]; char pr_psargs[80]; }; struct elf32_shdr { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Word sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Word sh_addralign; Elf32_Word sh_entsize; }; struct arch_elf_state {}; enum netfs_read_trace { netfs_read_trace_expanded = 0, netfs_read_trace_readahead = 1, netfs_read_trace_readpage = 2, netfs_read_trace_write_begin = 3, }; typedef void (*btf_trace_netfs_read)(void *, struct netfs_io_request *, loff_t, size_t, enum netfs_read_trace); typedef void (*btf_trace_netfs_rreq)(void *, struct netfs_io_request *, enum netfs_rreq_trace); typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_io_subrequest *, enum netfs_sreq_trace); typedef void (*btf_trace_netfs_failure)(void *, struct netfs_io_request *, struct netfs_io_subrequest *, int, enum netfs_failure); typedef void (*btf_trace_netfs_rreq_ref)(void *, unsigned int, int, enum netfs_rreq_ref_trace); typedef void (*btf_trace_netfs_sreq_ref)(void *, unsigned int, unsigned int, int, enum netfs_sreq_ref_trace); struct trace_event_raw_netfs_read { struct trace_entry ent; unsigned int rreq; unsigned int cookie; loff_t start; size_t len; enum netfs_read_trace what; unsigned int netfs_inode; char __data[0]; }; struct trace_event_raw_netfs_rreq { struct trace_entry ent; unsigned int rreq; unsigned int flags; enum netfs_io_origin origin; enum netfs_rreq_trace what; char __data[0]; }; struct trace_event_raw_netfs_sreq { struct trace_entry ent; unsigned int rreq; unsigned short index; short error; unsigned short flags; enum netfs_io_source source; enum netfs_sreq_trace what; size_t len; size_t transferred; loff_t start; char __data[0]; }; struct trace_event_raw_netfs_failure { struct trace_entry ent; unsigned int rreq; short index; short error; unsigned short flags; enum netfs_io_source source; enum netfs_failure what; size_t len; size_t transferred; loff_t start; char __data[0]; }; struct trace_event_raw_netfs_rreq_ref { struct trace_entry ent; unsigned int rreq; int ref; enum netfs_rreq_ref_trace what; char __data[0]; }; struct trace_event_raw_netfs_sreq_ref { struct trace_entry ent; unsigned int rreq; unsigned int subreq; int ref; enum netfs_sreq_ref_trace what; char __data[0]; }; struct trace_event_data_offsets_netfs_read {}; struct trace_event_data_offsets_netfs_rreq {}; struct trace_event_data_offsets_netfs_sreq {}; struct trace_event_data_offsets_netfs_failure {}; struct trace_event_data_offsets_netfs_rreq_ref {}; struct trace_event_data_offsets_netfs_sreq_ref {}; 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; }; enum nfs_param { Opt_ac = 0, Opt_acdirmax = 1, Opt_acdirmin = 2, Opt_acl___2 = 3, Opt_acregmax = 4, Opt_acregmin = 5, Opt_actimeo = 6, Opt_addr = 7, Opt_bg = 8, Opt_bsize = 9, Opt_clientaddr = 10, Opt_cto = 11, Opt_fg = 12, Opt_fscache = 13, Opt_fscache_flag = 14, Opt_hard = 15, Opt_intr = 16, Opt_local_lock = 17, Opt_lock = 18, Opt_lookupcache = 19, Opt_migration = 20, Opt_minorversion = 21, Opt_mountaddr = 22, Opt_mounthost = 23, Opt_mountport = 24, Opt_mountproto = 25, Opt_mountvers = 26, Opt_namelen = 27, Opt_nconnect = 28, Opt_max_connect = 29, Opt_port___2 = 30, Opt_posix = 31, Opt_proto = 32, Opt_rdirplus = 33, Opt_rdma = 34, Opt_resvport = 35, Opt_retrans = 36, Opt_retry = 37, Opt_rsize = 38, Opt_sec = 39, Opt_sharecache = 40, Opt_sloppy = 41, Opt_soft = 42, Opt_softerr = 43, Opt_softreval = 44, Opt_source = 45, Opt_tcp = 46, Opt_timeo = 47, Opt_trunkdiscovery = 48, Opt_udp = 49, Opt_v = 50, Opt_vers = 51, Opt_wsize = 52, Opt_write = 53, }; enum { Opt_xprt_rdma = 0, Opt_xprt_rdma6 = 1, Opt_xprt_tcp = 2, Opt_xprt_tcp6 = 3, Opt_xprt_udp = 4, Opt_xprt_udp6 = 5, nr__Opt_xprt = 6, }; enum { Opt_lookupcache_all = 0, Opt_lookupcache_none = 1, Opt_lookupcache_positive = 2, }; enum { Opt_local_lock_all = 0, Opt_local_lock_flock = 1, Opt_local_lock_none = 2, Opt_local_lock_posix = 3, }; enum { Opt_write_lazy = 0, Opt_write_eager = 1, Opt_write_wait = 2, }; enum { Opt_vers_2 = 0, Opt_vers_3 = 1, Opt_vers_4 = 2, Opt_vers_4_0 = 3, Opt_vers_4_1 = 4, Opt_vers_4_2 = 5, }; enum { Opt_sec_krb5 = 0, Opt_sec_krb5i = 1, Opt_sec_krb5p = 2, Opt_sec_lkey = 3, Opt_sec_lkeyi = 4, Opt_sec_lkeyp = 5, Opt_sec_none = 6, Opt_sec_spkm = 7, Opt_sec_spkmi = 8, Opt_sec_spkmp = 9, Opt_sec_sys = 10, nr__Opt_sec = 11, }; struct compat_nfs_string { compat_uint_t len; compat_uptr_t data; }; struct compat_nfs4_mount_data_v1 { compat_int_t version; compat_int_t flags; compat_int_t rsize; compat_int_t wsize; compat_int_t timeo; compat_int_t retrans; compat_int_t acregmin; compat_int_t acregmax; compat_int_t acdirmin; compat_int_t acdirmax; struct compat_nfs_string client_addr; struct compat_nfs_string mnt_path; struct compat_nfs_string hostname; compat_uint_t host_addrlen; compat_uptr_t host_addr; compat_int_t proto; compat_int_t auth_flavourlen; compat_uptr_t auth_flavours; }; struct nfs2_fh { char data[32]; }; struct nfs3_fh { unsigned short size; unsigned char data[64]; }; struct nfs_mount_data { int version; int fd; struct nfs2_fh old_root; int flags; int rsize; int wsize; int timeo; int retrans; int acregmin; int acregmax; int acdirmin; int acdirmax; struct sockaddr_in addr; char hostname[256]; int namlen; unsigned int bsize; struct nfs3_fh root; int pseudoflavor; char context[257]; }; struct nfs_string { unsigned int len; const char __attribute__((btf_type_tag("user"))) *data; }; struct nfs4_mount_data { int version; int flags; int rsize; int wsize; int timeo; int retrans; int acregmin; int acregmax; int acdirmin; int acdirmax; struct nfs_string client_addr; struct nfs_string mnt_path; struct nfs_string hostname; unsigned int host_addrlen; struct sockaddr __attribute__((btf_type_tag("user"))) *host_addr; int proto; int auth_flavourlen; int __attribute__((btf_type_tag("user"))) *auth_flavours; }; 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 rand_data; struct jitterentropy { spinlock_t jent_lock; struct rand_data *entropy_collector; unsigned int reset_cnt; }; enum asn1_class { ASN1_UNIV = 0, ASN1_APPL = 1, ASN1_CONT = 2, ASN1_PRIV = 3, }; 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; }; struct sg_io_v4; typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, fmode_t, unsigned int); 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; }; 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; }; struct crypto_aes_ctx { u32 key_enc[60]; u32 key_dec[60]; u32 key_length; }; enum devm_ioremap_type { DEVM_IOREMAP = 0, DEVM_IOREMAP_UC = 1, DEVM_IOREMAP_WC = 2, DEVM_IOREMAP_NP = 3, }; struct pcim_iomap_devres { void *table[6]; }; struct arch_io_reserve_memtype_wc_devres { resource_size_t start; resource_size_t size; }; 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; }; 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 virtio_pci_modern_common_cfg { struct virtio_pci_common_cfg cfg; __le16 queue_notify_data; __le16 queue_reset; }; struct vc_selection { struct mutex lock; struct vc_data *cons; char *buffer; unsigned int buf_len; volatile int start; int end; }; struct tiocl_selection { unsigned short xs; unsigned short ys; unsigned short xe; unsigned short ye; unsigned short sel_mode; }; struct agp_3_5_dev { struct list_head list; u8 capndx; u32 maxbw; struct pci_dev *dev; }; struct isoch_data { u32 maxbw; u32 n; u32 y; u32 l; u32 rq; struct agp_3_5_dev *dev; }; enum iommu_init_state { IOMMU_START_STATE = 0, IOMMU_IVRS_DETECTED = 1, IOMMU_ACPI_FINISHED = 2, IOMMU_ENABLED = 3, IOMMU_PCI_INIT = 4, IOMMU_INTERRUPTS_EN = 5, IOMMU_INITIALIZED = 6, IOMMU_NOT_FOUND = 7, IOMMU_INIT_ERROR = 8, IOMMU_CMDLINE_DISABLED = 9, }; struct devid_map { struct list_head list; u8 id; u32 devid; bool cmd_line; }; enum amd_iommu_intr_mode_type { AMD_IOMMU_GUEST_IR_LEGACY = 0, AMD_IOMMU_GUEST_IR_LEGACY_GA = 1, AMD_IOMMU_GUEST_IR_VAPIC = 2, }; enum { IRQ_REMAP_XAPIC_MODE = 0, IRQ_REMAP_X2APIC_MODE = 1, }; struct ivhd_header { u8 type; u8 flags; u16 length; u16 devid; u16 cap_ptr; u64 mmio_phys; u16 pci_seg; u16 info; u32 efr_attr; u64 efr_reg; u64 efr_reg2; }; struct ivhd_entry { u8 type; u16 devid; u8 flags; union { struct { u32 ext; u32 hidh; }; struct { u32 ext; u32 hidh; } ext_hid; }; u64 cid; u8 uidf; u8 uidl; u8 uid; } __attribute__((packed)); struct ivmd_header { u8 type; u8 flags; u16 length; u16 devid; u16 aux; u16 pci_seg; u8 resv[6]; u64 range_start; u64 range_length; }; union intcapxt { u64 capxt; struct { u64 reserved_0: 2; u64 dest_mode_logical: 1; u64 reserved_1: 5; u64 destid_0_23: 24; u64 vector: 8; u64 reserved_2: 16; u64 destid_24_31: 8; }; }; struct analog_param_range { unsigned int min; unsigned int typ; unsigned int max; }; struct analog_param_field { unsigned int even; unsigned int odd; }; struct analog_parameters { unsigned int num_lines; unsigned int line_duration_ns; struct analog_param_range hact_ns; struct analog_param_range hfp_ns; struct analog_param_range hslen_ns; struct analog_param_range hbp_ns; struct analog_param_range hblk_ns; unsigned int bt601_hfp; struct analog_param_field vfp_lines; struct analog_param_field vslen_lines; struct analog_param_field vbp_lines; }; struct drm_named_mode { const char *name; unsigned int pixel_clock_khz; unsigned int xres; unsigned int yres; unsigned int flags; unsigned int tv_mode; }; enum drm_mode_analog { DRM_MODE_ANALOG_NTSC = 0, DRM_MODE_ANALOG_PAL = 1, }; typedef void (*drmres_release_t___3)(struct drm_device___3 *, void *); struct remap_pfn { struct mm_struct *mm; unsigned long pfn; pgprot_t prot; struct sgt_iter sgt; resource_size_t iobase; }; enum { INTEL_CONTEXT_SCHEDULE_IN = 0, INTEL_CONTEXT_SCHEDULE_OUT = 1, INTEL_CONTEXT_SCHEDULE_PREEMPTED = 2, }; struct ve_node { struct rb_node rb; int prio; }; struct virtual_engine { struct intel_engine_cs base; struct intel_context context; struct rcu_work rcu; struct i915_request *request; struct ve_node nodes[27]; unsigned int num_siblings; struct intel_engine_cs *siblings[0]; }; struct execlists_capture { struct work_struct work; struct i915_request *rq; struct i915_gpu_coredump *error; }; struct intel_engine_capture_vma; struct i915_vma_compress; enum intel_guc_recv_message { INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED = 2, INTEL_GUC_RECV_MSG_EXCEPTION = 1073741824, }; enum { GUC_LOG_SECTIONS_CRASH = 0, GUC_LOG_SECTIONS_DEBUG = 1, GUC_LOG_SECTIONS_CAPTURE = 2, GUC_LOG_SECTIONS_LIMIT = 3, }; struct opregion_header { u8 signature[16]; u32 size; struct { u8 rsvd; u8 revision; u8 minor; u8 major; } over; u8 bios_ver[32]; u8 vbios_ver[16]; u8 driver_ver[16]; u32 mboxes; u32 driver_model; u32 pcon; u8 dver[32]; u8 rsvd[124]; }; struct opregion_acpi { u32 drdy; u32 csts; u32 cevt; u8 rsvd1[20]; u32 didl[8]; u32 cpdl[8]; u32 cadl[8]; u32 nadl[8]; u32 aslp; u32 tidx; u32 chpd; u32 clid; u32 cdck; u32 sxsw; u32 evts; u32 cnot; u32 nrdy; u32 did2[7]; u32 cpd2[7]; u8 rsvd2[4]; }; struct opregion_swsci { u32 scic; u32 parm; u32 dslp; u8 rsvd[244]; }; struct opregion_asle { u32 ardy; u32 aslc; u32 tche; u32 alsi; u32 bclp; u32 pfit; u32 cblv; u16 bclm[20]; u32 cpfm; u32 epfm; u8 plut[74]; u32 pfmb; u32 cddv; u32 pcft; u32 srot; u32 iuer; u64 fdss; u32 fdsp; u32 stat; u64 rvda; u32 rvds; u8 rsvd[58]; } __attribute__((packed)); struct opregion_asle_ext { u32 phed; u8 bddc[256]; u8 rsvd[764]; }; struct video_levels; struct color_conversion; struct tv_mode { const char *name; u32 clock; u16 refresh; u8 oversample; u8 hsync_end; u16 hblank_start; u16 hblank_end; u16 htotal; bool progressive: 1; bool trilevel_sync: 1; bool component_only: 1; u8 vsync_start_f1; u8 vsync_start_f2; u8 vsync_len; bool veq_ena: 1; u8 veq_start_f1; u8 veq_start_f2; u8 veq_len; u8 vi_end_f1; u8 vi_end_f2; u16 nbr_end; bool burst_ena: 1; u8 hburst_start; u8 hburst_len; u8 vburst_start_f1; u16 vburst_end_f1; u8 vburst_start_f2; u16 vburst_end_f2; u8 vburst_start_f3; u16 vburst_end_f3; u8 vburst_start_f4; u16 vburst_end_f4; u16 dda2_size; u16 dda3_size; u8 dda1_inc; u16 dda2_inc; u16 dda3_inc; u32 sc_reset; bool pal_burst: 1; const struct video_levels *composite_levels; const struct video_levels *svideo_levels; const struct color_conversion *composite_color; const struct color_conversion *svideo_color; const u32 *filter_table; }; struct video_levels { u16 blank; u16 black; u8 burst; }; struct color_conversion { u16 ry; u16 gy; u16 by; u16 ay; u16 ru; u16 gu; u16 bu; u16 au; u16 rv; u16 gv; u16 bv; u16 av; }; struct input_res { u16 w; u16 h; }; struct intel_tv_connector_state { struct drm_connector_state base; struct { u16 top; u16 bottom; } margins; bool bypass_vfilter; }; struct intel_tv { struct intel_encoder base; int type; }; struct auxiliary_device_id; struct auxiliary_driver { int (*probe)(struct auxiliary_device *, const struct auxiliary_device_id *); void (*remove)(struct auxiliary_device *); void (*shutdown)(struct auxiliary_device *); int (*suspend)(struct auxiliary_device *, pm_message_t); int (*resume)(struct auxiliary_device *); const char *name; struct device_driver driver; const struct auxiliary_device_id *id_table; }; struct auxiliary_device_id { char name[32]; kernel_ulong_t driver_data; }; struct ml_effect_state { struct ff_effect *effect; unsigned long flags; int count; unsigned long play_at; unsigned long stop_at; unsigned long adj_at; }; struct ml_device { void *private; struct ml_effect_state states[16]; int gain; struct timer_list timer; struct input_dev *dev; int (*play_effect)(struct input_dev *, void *, struct ff_effect *); }; enum power_supply_notifier_events { PSY_EVENT_PROP_CHANGED = 0, }; struct power_supply_battery_ocv_table { int ocv; int capacity; }; struct power_supply_maintenance_charge_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_resistance_temp_table { int temp; int resistance; }; struct power_supply_vbat_ri_table { int vbat_uv; int ri_uohm; }; 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 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]; }; struct sixaxis_rumble { u8 padding; u8 right_duration; u8 right_motor_on; u8 left_duration; u8 left_motor_force; }; struct sixaxis_led { u8 time_enabled; u8 duty_length; u8 enabled; u8 duty_off; u8 duty_on; }; struct sixaxis_output_report { u8 report_id; struct sixaxis_rumble rumble; u8 padding[4]; u8 leds_bitmap; struct sixaxis_led led[4]; struct sixaxis_led _reserved; }; union sixaxis_output_report_01 { struct sixaxis_output_report data; u8 buf[36]; }; enum sony_worker { SONY_WORKER_STATE = 0, }; enum { POWER_SUPPLY_SCOPE_UNKNOWN = 0, POWER_SUPPLY_SCOPE_SYSTEM = 1, POWER_SUPPLY_SCOPE_DEVICE = 2, }; struct sony_sc { spinlock_t lock; struct list_head list_node; struct hid_device *hdev; struct input_dev *touchpad; struct input_dev *sensor_dev; struct led_classdev *leds[4]; unsigned long quirks; struct work_struct state_worker; void (*send_output_report)(struct sony_sc *); struct power_supply *battery; struct power_supply_desc battery_desc; int device_id; u8 *output_report_dmabuf; u8 mac_address[6]; u8 state_worker_initialized; u8 defer_initialization; u8 battery_capacity; int battery_status; u8 led_state[4]; u8 led_delay_on[4]; u8 led_delay_off[4]; u8 led_count; struct urb *ghl_urb; struct timer_list ghl_poke_timer; }; struct motion_output_report_02 { u8 type; u8 zero; u8 r; u8 g; u8 b; u8 zero2; u8 rumble; }; typedef void (*btf_trace_azx_suspend)(void *, struct azx *); typedef void (*btf_trace_azx_resume)(void *, struct azx *); typedef void (*btf_trace_azx_runtime_suspend)(void *, struct azx *); typedef void (*btf_trace_azx_runtime_resume)(void *, struct azx *); enum { AZX_DRIVER_ICH = 0, AZX_DRIVER_PCH = 1, AZX_DRIVER_SCH = 2, AZX_DRIVER_SKL = 3, AZX_DRIVER_HDMI = 4, AZX_DRIVER_ATI = 5, AZX_DRIVER_ATIHDMI = 6, AZX_DRIVER_ATIHDMI_NS = 7, AZX_DRIVER_VIA = 8, AZX_DRIVER_SIS = 9, AZX_DRIVER_ULI = 10, AZX_DRIVER_NVIDIA = 11, AZX_DRIVER_TERA = 12, AZX_DRIVER_CTX = 13, AZX_DRIVER_CTHDA = 14, AZX_DRIVER_CMEDIA = 15, AZX_DRIVER_ZHAOXIN = 16, AZX_DRIVER_GENERIC = 17, AZX_NUM_DRIVERS = 18, }; enum { POS_FIX_AUTO = 0, POS_FIX_LPIB = 1, POS_FIX_POSBUF = 2, POS_FIX_VIACOMBO = 3, POS_FIX_COMBO = 4, POS_FIX_SKL = 5, POS_FIX_FIFO = 6, }; enum { AZX_SNOOP_TYPE_NONE = 0, AZX_SNOOP_TYPE_SCH = 1, AZX_SNOOP_TYPE_ATI = 2, AZX_SNOOP_TYPE_NVIDIA = 3, }; struct trace_event_raw_hda_pm { struct trace_entry ent; int dev_index; char __data[0]; }; struct hda_intel { struct azx chip; struct work_struct irq_pending_work; struct completion probe_wait; struct delayed_work probe_work; struct list_head list; unsigned int irq_pending_warned: 1; unsigned int probe_continued: 1; unsigned int use_vga_switcheroo: 1; unsigned int vga_switcheroo_registered: 1; unsigned int init_failed: 1; unsigned int freed: 1; bool need_i915_power: 1; int probe_retry; }; struct trace_event_data_offsets_hda_pm {}; struct psample_group { struct list_head list; struct net *net; u32 group_num; u32 refcount; u32 seq; struct callback_head rcu; }; struct tcf_exts_miss_cookie_node { const struct tcf_chain *chain; const struct tcf_proto *tp; const struct tcf_exts *exts; u32 chain_index; u32 tp_prio; u32 handle; u32 miss_cookie_base; struct callback_head rcu; }; enum qdisc_class_ops_flags { QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, }; enum tcf_proto_ops_flags { TCF_PROTO_OPS_DOIT_UNLOCKED = 1, }; struct tcf_block_owner_item { struct list_head list; struct Qdisc *q; enum flow_block_binder_type binder_type; }; struct tcf_filter_chain_list_item { struct list_head list; tcf_chain_head_change_t *chain_head_change; void *chain_head_change_priv; }; struct tcf_net { spinlock_t idr_lock; struct idr idr; }; struct action_gate_entry { u8 gate_state; u32 interval; s32 ipv; s32 maxoctets; }; struct tcf_chain_info { struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; }; struct tcf_dump_args { struct tcf_walker w; struct sk_buff *skb; struct netlink_callback *cb; struct tcf_block *block; struct Qdisc *q; u32 parent; bool terse_dump; }; struct tcf_qevent { struct tcf_block *block; struct tcf_block_ext_info info; struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; }; 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 *); }; enum { IP6_FH_F_FRAG = 1, IP6_FH_F_AUTH = 2, IP6_FH_F_SKIP_RH = 4, }; 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_beacon_data *); 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_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 *, 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 *, struct cfg80211_rx_assoc_resp *); 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); 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, u16); typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16); 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 *); 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; 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; 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_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; 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; 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]; 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; 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; bool radar_required; bool block_tx; u8 count; u32 __data_loc_bcn_ofs; u32 __data_loc_pres_ofs; 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; 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; 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; 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; 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; 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; 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; 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; unsigned int link_id; u16 punct_bitmap; 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; unsigned int link_id; u16 punct_bitmap; 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; 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; enum nl80211_bss_scan_width scan_width; 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_data_offsets_rdev_add_virtual_intf { u32 vir_intf_name; }; struct trace_event_data_offsets_rdev_change_beacon { u32 head; u32 tail; u32 beacon_ies; u32 proberesp_ies; u32 assocresp_ies; u32 probe_resp; }; struct trace_event_data_offsets_station_add_change { u32 supported_rates; u32 ext_capab; u32 supported_channels; u32 supported_oper_classes; }; struct trace_event_data_offsets_rdev_assoc { u32 elements; u32 fils_kek; u32 fils_nonces; }; struct trace_event_data_offsets_rdev_tdls_mgmt { u32 buf; }; struct trace_event_data_offsets_rdev_update_ft_ies { u32 ie; }; struct trace_event_data_offsets_rdev_channel_switch { u32 bcn_ofs; u32 pres_ofs; }; struct trace_event_data_offsets_rdev_set_pmk { u32 pmk; u32 pmk_r0_name; }; struct trace_event_data_offsets_rdev_update_owe_info { u32 ie; }; struct trace_event_data_offsets_netdev_frame_event { u32 frame; }; struct trace_event_data_offsets_cfg80211_tx_mlme_mgmt { u32 frame; }; struct trace_event_data_offsets_cfg80211_scan_done { u32 ie; }; struct trace_event_data_offsets_cfg80211_get_bss { u32 ssid; }; struct trace_event_data_offsets_cfg80211_inform_bss_frame { u32 mgmt; }; struct trace_event_data_offsets_cfg80211_report_wowlan_wakeup { u32 packet; }; struct trace_event_data_offsets_cfg80211_ft_event { u32 ies; u32 ric_ies; }; struct trace_event_data_offsets_cfg80211_update_owe_info_event { u32 ie; }; struct trace_event_data_offsets_link_station_add_mod { u32 supported_rates; u32 he_capa; u32 eht_capa; }; 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_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 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 rapl_model { struct perf_msr *rapl_msrs; unsigned long events; unsigned int msr_power_unit; enum rapl_unit_quirk unit_quirk; }; 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, }; struct irq_stack { char stack[16384]; }; struct sigcontext_32 { __u16 gs; __u16 __gsh; __u16 fs; __u16 __fsh; __u16 es; __u16 __esh; __u16 ds; __u16 __dsh; __u32 di; __u32 si; __u32 bp; __u32 sp; __u32 bx; __u32 dx; __u32 cx; __u32 ax; __u32 trapno; __u32 err; __u32 ip; __u16 cs; __u16 __csh; __u32 flags; __u32 sp_at_signal; __u16 ss; __u16 __ssh; __u32 fpstate; __u32 oldmask; __u32 cr2; }; struct _fpreg { __u16 significand[4]; __u16 exponent; }; struct _fpxreg { __u16 significand[4]; __u16 exponent; __u16 padding[3]; }; struct _xmmreg { __u32 element[4]; }; struct _fpx_sw_bytes { __u32 magic1; __u32 extended_size; __u64 xfeatures; __u32 xstate_size; __u32 padding[7]; }; struct _fpstate_32 { __u32 cw; __u32 sw; __u32 tag; __u32 ipoff; __u32 cssel; __u32 dataoff; __u32 datasel; struct _fpreg _st[8]; __u16 status; __u16 magic; __u32 _fxsr_env[6]; __u32 mxcsr; __u32 reserved; struct _fpxreg _fxsr_st[8]; struct _xmmreg _xmm[8]; union { __u32 padding1[44]; __u32 padding[44]; }; union { __u32 padding2[12]; struct _fpx_sw_bytes sw_reserved; }; }; struct sigframe_ia32 { u32 pretcode; int sig; struct sigcontext_32 sc; struct _fpstate_32 fpstate_unused; unsigned int extramask[1]; char retcode[8]; }; struct ucontext_ia32 { unsigned int uc_flags; unsigned int uc_link; compat_stack_t uc_stack; struct sigcontext_32 uc_mcontext; compat_sigset_t uc_sigmask; }; struct rt_sigframe_ia32 { u32 pretcode; int sig; u32 pinfo; u32 puc; compat_siginfo_t info; struct ucontext_ia32 uc; char retcode[8]; }; struct mtrr_ops { u32 vendor; 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 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; unsigned char have_fixed; mtrr_type def_type; }; struct fixed_range_block { int base_msr; int ranges; }; struct hypervisor_x86 { const char *name; uint32_t (*detect)(); enum x86_hypervisor_type type; struct x86_hyper_init init; struct x86_hyper_runtime runtime; bool ignore_nopv; }; struct ghcb_save_area { u8 reserved_0x0[203]; u8 cpl; u8 reserved_0xcc[116]; u64 xss; u8 reserved_0x148[24]; u64 dr7; u8 reserved_0x168[16]; u64 rip; u8 reserved_0x180[88]; u64 rsp; u8 reserved_0x1e0[24]; u64 rax; u8 reserved_0x200[264]; u64 rcx; u64 rdx; u64 rbx; u8 reserved_0x320[8]; u64 rbp; u64 rsi; u64 rdi; u64 r8; u64 r9; u64 r10; u64 r11; u64 r12; u64 r13; u64 r14; u64 r15; u8 reserved_0x380[16]; u64 sw_exit_code; u64 sw_exit_info_1; u64 sw_exit_info_2; u64 sw_scratch; u8 reserved_0x3b0[56]; u64 xcr0; u8 valid_bitmap[16]; u64 x87_state_gpa; }; struct ghcb { struct ghcb_save_area save; u8 reserved_save[1016]; u8 shared_buffer[2032]; u8 reserved_0xff0[10]; u16 protocol_version; u32 ghcb_usage; }; struct vmware_steal_time { union { uint64_t clock; struct { uint32_t clock_low; uint32_t clock_high; }; }; uint64_t reserved[7]; }; struct irq_matrix; enum { X86_IRQ_ALLOC_LEGACY = 1, }; 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; }; struct waitid_info; 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 waitid_info { pid_t pid; uid_t uid; int status; int cause; }; enum { IRQ_STARTUP_NORMAL = 0, IRQ_STARTUP_MANAGED = 1, IRQ_STARTUP_ABORT = 2, }; 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; }; enum timekeeping_adv_mode { TK_ADV_TICK = 0, TK_ADV_FREQ = 1, }; struct ktime_timestamps { u64 mono; u64 boot; u64 real; }; 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; }; 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 uprobe_cpu_buffer { struct mutex mutex; void *buf; }; 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; }; 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]; }; struct uprobe_dispatch_data { struct trace_uprobe *tu; unsigned long bp_addr; }; typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); enum vma_resv_mode { VMA_NEEDS_RESV = 0, VMA_COMMIT_RESV = 1, VMA_END_RESV = 2, VMA_ADD_RESV = 3, VMA_DEL_RESV = 4, }; struct huge_bootmem_page { struct list_head list; struct hstate *hstate; }; struct iomap_ops; enum { BIAS = 2147483648, }; struct pde_opener { struct list_head lh; struct file *file; bool closing; struct completion *c; }; 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, 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; unsigned long nr_scanned; 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; }; struct nlm_wait { struct list_head b_list; wait_queue_head_t b_wait; struct nlm_host *b_host; struct file_lock *b_lock; unsigned short b_reclaim; __be32 b_status; }; struct nlmclnt_initdata { const char *hostname; const struct sockaddr *address; size_t addrlen; unsigned short protocol; u32 nfs_version; int noresvport; struct net *net; const struct nlmclnt_operations *nlmclnt_ops; const struct cred *cred; }; struct dotl_openflag_map { int open_flag; int dotl_flag; }; struct dotl_iattr_map { int iattr_valid; int p9_iattr_valid; }; enum { IOPRIO_WHO_PROCESS = 1, IOPRIO_WHO_PGRP = 2, IOPRIO_WHO_USER = 3, }; enum { IORING_CQE_BUFFER_SHIFT = 16, }; struct io_provide_buf { struct file *file; __u64 addr; __u32 len; __u32 bgid; __u16 nbufs; __u16 bid; }; struct io_uring_buf_reg { __u64 ring_addr; __u32 ring_entries; __u16 bgid; __u16 pad; __u64 resv[3]; }; typedef enum { ZSTD_dlm_byCopy = 0, ZSTD_dlm_byRef = 1, } ZSTD_dictLoadMethod_e; typedef enum { ZSTD_dct_auto = 0, ZSTD_dct_rawContent = 1, ZSTD_dct_fullDict = 2, } ZSTD_dictContentType_e; enum lzma2_seq { SEQ_CONTROL = 0, SEQ_UNCOMPRESSED_1 = 1, SEQ_UNCOMPRESSED_2 = 2, SEQ_COMPRESSED_0 = 3, SEQ_COMPRESSED_1 = 4, SEQ_PROPERTIES = 5, SEQ_LZMA_PREPARE = 6, SEQ_LZMA_RUN = 7, SEQ_COPY = 8, }; enum lzma_state { STATE_LIT_LIT = 0, STATE_MATCH_LIT_LIT = 1, STATE_REP_LIT_LIT = 2, STATE_SHORTREP_LIT_LIT = 3, STATE_MATCH_LIT = 4, STATE_REP_LIT = 5, STATE_SHORTREP_LIT = 6, STATE_LIT_MATCH = 7, STATE_LIT_LONGREP = 8, STATE_LIT_SHORTREP = 9, STATE_NONLIT_MATCH = 10, STATE_NONLIT_REP = 11, }; struct rc_dec { uint32_t range; uint32_t code; uint32_t init_bytes_left; const uint8_t *in; size_t in_pos; size_t in_limit; }; struct dictionary { uint8_t *buf; size_t start; size_t pos; size_t full; size_t limit; size_t end; uint32_t size; uint32_t size_max; uint32_t allocated; enum xz_mode mode; }; struct lzma2_dec { enum lzma2_seq sequence; enum lzma2_seq next_sequence; uint32_t uncompressed; uint32_t compressed; bool need_dict_reset; bool need_props; }; struct lzma_len_dec { uint16_t choice; uint16_t choice2; uint16_t low[128]; uint16_t mid[128]; uint16_t high[256]; }; struct lzma_dec { uint32_t rep0; uint32_t rep1; uint32_t rep2; uint32_t rep3; enum lzma_state state; uint32_t len; uint32_t lc; uint32_t literal_pos_mask; uint32_t pos_mask; uint16_t is_match[192]; uint16_t is_rep[12]; uint16_t is_rep0[12]; uint16_t is_rep1[12]; uint16_t is_rep2[12]; uint16_t is_rep0_long[192]; uint16_t dist_slot[256]; uint16_t dist_special[114]; uint16_t dist_align[16]; struct lzma_len_dec match_len_dec; struct lzma_len_dec rep_len_dec; uint16_t literal[12288]; }; struct xz_dec_lzma2 { struct rc_dec rc; struct dictionary dict; struct lzma2_dec lzma2; struct lzma_dec lzma; struct { uint32_t size; uint8_t buf[63]; } temp; }; struct irq_glue { struct irq_affinity_notify notify; struct cpu_rmap *rmap; u16 index; }; 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; }; 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, }; struct sys_off_handler; struct sys_off_data { int mode; void *cb_data; const char *cmd; }; struct acpi_reg_walk_info { u32 function; u32 reg_run_count; acpi_adr_space_type space_id; }; struct acpi_pcc_info { u8 subspace_id; u16 length; u8 *internal_buffer; }; struct acpi_ffh_info { u64 offset; u64 length; }; struct hsu_dma_sg; struct hsu_dma_desc { struct virt_dma_desc vdesc; enum dma_transfer_direction direction; struct hsu_dma_sg *sg; unsigned int nents; size_t length; unsigned int active; enum dma_status status; }; struct hsu_dma_sg { dma_addr_t addr; unsigned int len; }; struct hsu_dma_chan { struct virt_dma_chan vchan; void *reg; enum dma_transfer_direction direction; struct dma_slave_config config; struct hsu_dma_desc *desc; }; struct hsu_dma { struct dma_device dma; struct hsu_dma_chan *chan; unsigned short nr_channels; }; struct earlycon_device { struct console *con; struct uart_port port; char options[32]; unsigned int baud; }; struct earlycon_id { char name[15]; char name_term; char compatible[128]; int (*setup)(struct earlycon_device *, const char *); }; struct i915_debugfs_files { const char *name; const struct file_operations *fops; }; struct drm_info_node___2 { struct drm_minor___2 *minor; const struct drm_info_list *info_ent; struct list_head list; struct dentry *dent; }; struct drm_i915_gem_exec_object2; struct eb_vma { struct i915_vma *vma; unsigned int flags; struct drm_i915_gem_exec_object2 *exec; struct list_head bind_link; struct list_head reloc_link; struct hlist_node node; u32 handle; }; struct drm_i915_gem_exec_object2 { __u32 handle; __u32 relocation_count; __u64 relocs_ptr; __u64 alignment; __u64 offset; __u64 flags; union { __u64 rsvd1; __u64 pad_to_size; }; __u64 rsvd2; }; struct reloc_cache { struct drm_mm_node node; unsigned long vaddr; unsigned long page; unsigned int graphics_ver; bool use_64bit_reloc: 1; bool has_llc: 1; bool has_fence: 1; bool needs_unfenced: 1; }; struct drm_i915_gem_execbuffer2; struct eb_fence; struct i915_execbuffer { struct drm_i915_private___3 *i915; struct drm_file___2 *file; struct drm_i915_gem_execbuffer2 *args; struct drm_i915_gem_exec_object2 *exec; struct eb_vma *vma; struct intel_gt *gt; struct intel_context *context; struct i915_gem_context *gem_context; struct i915_request *requests[9]; struct eb_vma *batches[9]; struct i915_vma *trampoline; struct dma_fence *composite_fence; unsigned int buffer_count; unsigned int num_batches; struct list_head unbound; struct list_head relocs; struct i915_gem_ww_ctx ww; struct reloc_cache reloc_cache; u64 invalid_flags; u64 batch_len[9]; u32 batch_start_offset; u32 batch_flags; struct intel_gt_buffer_pool_node *batch_pool; int lut_size; struct hlist_head *buckets; struct eb_fence *fences; unsigned long num_fences; struct i915_capture_list *capture_lists[9]; }; struct drm_i915_gem_execbuffer2 { __u64 buffers_ptr; __u32 buffer_count; __u32 batch_start_offset; __u32 batch_len; __u32 DR1; __u32 DR4; __u32 num_cliprects; __u64 cliprects_ptr; __u64 flags; __u64 rsvd1; __u64 rsvd2; }; struct eb_fence { struct drm_syncobj *syncobj; struct dma_fence *dma_fence; u64 value; struct dma_fence_chain *chain_fence; }; struct drm_i915_gem_relocation_entry { __u32 target_handle; __u32 delta; __u64 offset; __u64 presumed_offset; __u32 read_domains; __u32 write_domain; }; struct drm_i915_gem_exec_fence { __u32 handle; __u32 flags; }; struct drm_i915_gem_execbuffer_ext_timeline_fences { struct i915_user_extension base; __u64 fence_count; __u64 handles_ptr; __u64 values_ptr; }; struct i915_vma_work; enum vga_switcheroo_handler_flags_t { VGA_SWITCHEROO_CAN_SWITCH_DDC = 1, VGA_SWITCHEROO_NEEDS_EDP_CONFIG = 2, }; struct intel_lvds_pps { int t1_t2; int t3; int t4; int t5; int tx; int divider; int port; bool powerdown_on_reset; }; struct intel_lvds_encoder { struct intel_encoder base; bool is_dual_link; i915_reg_t reg; u32 a3_power; struct intel_lvds_pps init_pps; u32 init_lvds_val; struct intel_connector *attached_connector; }; struct anon_transport_class { struct transport_class tclass; struct attribute_container container; }; 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; }; 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, }; 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; }; struct ccs_modesel_head { __u8 _r1; __u8 medium; __u8 _r2; __u8 block_desc_length; __u8 density; __u8 number_blocks_hi; __u8 number_blocks_med; __u8 number_blocks_lo; __u8 _r3; __u8 block_length_hi; __u8 block_length_med; __u8 block_length_lo; }; 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 rtl821x_priv { u16 phycr1; u16 phycr2; bool has_phycr2; }; typedef unsigned long u_long; struct resource_map { u_long base; u_long num; struct resource_map *next; }; struct socket_data { struct resource_map mem_db; struct resource_map mem_db_valid; struct resource_map io_db; }; struct pcmcia_align_data { unsigned long mask; unsigned long offset; struct resource_map *map; }; struct class_info { int class; char *class_name; }; struct lifebook_data { struct input_dev *dev2; char phys[32]; }; enum ptp_clock_events { PTP_CLOCK_ALARM = 0, PTP_CLOCK_EXTTS = 1, PTP_CLOCK_PPS = 2, PTP_CLOCK_PPSUSR = 3, }; struct ptp_clock_event { int type; int index; union { u64 timestamp; struct pps_event_time pps_times; }; }; 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; }; struct lg_drv_data { unsigned long quirks; void *device_props; }; typedef int (*snd_seq_dump_func_t)(void *, void *, int); enum snd_compr_direction { SND_COMPRESS_PLAYBACK = 0, SND_COMPRESS_CAPTURE = 1, }; struct snd_compr_ops; struct snd_compr_runtime; struct snd_compr; struct snd_compr_stream { const char *name; struct snd_compr_ops *ops; struct snd_compr_runtime *runtime; struct snd_compr *device; struct delayed_work error_work; enum snd_compr_direction direction; bool metadata_set; bool next_track; bool partial_drain; bool pause_in_draining; void *private_data; struct snd_dma_buffer dma_buffer; }; struct snd_compr_params; struct snd_codec; struct snd_compr_metadata; struct snd_compr_tstamp; struct snd_compr_caps; struct snd_compr_codec_caps; struct snd_compr_ops { int (*open)(struct snd_compr_stream *); int (*free)(struct snd_compr_stream *); int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *); int (*get_params)(struct snd_compr_stream *, struct snd_codec *); int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *); int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *); int (*trigger)(struct snd_compr_stream *, int); int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *); int (*copy)(struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); int (*mmap)(struct snd_compr_stream *, struct vm_area_struct *); int (*ack)(struct snd_compr_stream *, size_t); int (*get_caps)(struct snd_compr_stream *, struct snd_compr_caps *); int (*get_codec_caps)(struct snd_compr_stream *, struct snd_compr_codec_caps *); }; struct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; }; struct snd_enc_wma { __u32 super_block_align; }; struct snd_enc_vorbis { __s32 quality; __u32 managed; __u32 max_bit_rate; __u32 min_bit_rate; __u32 downmix; }; struct snd_enc_real { __u32 quant_bits; __u32 start_region; __u32 num_regions; }; struct snd_enc_flac { __u32 num; __u32 gain; }; struct snd_enc_generic { __u32 bw; __s32 reserved[15]; }; struct snd_dec_flac { __u16 sample_size; __u16 min_blk_size; __u16 max_blk_size; __u16 min_frame_size; __u16 max_frame_size; __u16 reserved; }; struct snd_dec_wma { __u32 encoder_option; __u32 adv_encoder_option; __u32 adv_encoder_option2; __u32 reserved; }; struct snd_dec_alac { __u32 frame_length; __u8 compatible_version; __u8 pb; __u8 mb; __u8 kb; __u32 max_run; __u32 max_frame_bytes; }; struct snd_dec_ape { __u16 compatible_version; __u16 compression_level; __u32 format_flags; __u32 blocks_per_frame; __u32 final_frame_blocks; __u32 total_frames; __u32 seek_table_present; }; union snd_codec_options { struct snd_enc_wma wma; struct snd_enc_vorbis vorbis; struct snd_enc_real real; struct snd_enc_flac flac; struct snd_enc_generic generic; struct snd_dec_flac flac_d; struct snd_dec_wma wma_d; struct snd_dec_alac alac_d; struct snd_dec_ape ape_d; }; struct snd_codec { __u32 id; __u32 ch_in; __u32 ch_out; __u32 sample_rate; __u32 bit_rate; __u32 rate_control; __u32 profile; __u32 level; __u32 ch_mode; __u32 format; __u32 align; union snd_codec_options options; __u32 reserved[3]; }; struct snd_compr_params { struct snd_compressed_buffer buffer; struct snd_codec codec; __u8 no_wake_mode; }; struct snd_compr_metadata { __u32 key; __u32 value[8]; }; struct snd_compr_tstamp { __u32 byte_offset; __u32 copied_total; __u32 pcm_frames; __u32 pcm_io_frames; __u32 sampling_rate; }; struct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[32]; __u32 reserved[11]; }; struct snd_codec_desc { __u32 max_ch; __u32 sample_rates[32]; __u32 num_sample_rates; __u32 bit_rate[32]; __u32 num_bitrates; __u32 rate_control; __u32 profiles; __u32 modes; __u32 formats; __u32 min_buffer; __u32 reserved[15]; }; struct snd_compr_codec_caps { __u32 codec; __u32 num_descriptors; struct snd_codec_desc descriptor[32]; }; struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; }; struct snd_compr { const char *name; struct device dev; struct snd_compr_ops *ops; void *private_data; struct snd_card *card; unsigned int direction; struct mutex lock; int device; bool use_pause_in_draining; char id[64]; struct snd_info_entry *proc_root; struct snd_info_entry *proc_info_entry; }; enum { NETDEV_A_DEV_IFINDEX = 1, NETDEV_A_DEV_PAD = 2, NETDEV_A_DEV_XDP_FEATURES = 3, __NETDEV_A_DEV_MAX = 4, NETDEV_A_DEV_MAX = 3, }; 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_MAX = 5, NETDEV_CMD_MAX = 4, }; enum { NETDEV_NLGRP_MGMT = 0, }; 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 netdev_lag_upper_info { enum netdev_lag_tx_type tx_type; enum netdev_lag_hash hash_type; }; 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; }; struct nf_ct_bridge_info { struct nf_hook_ops *ops; unsigned int ops_size; struct module *me; }; enum { FR_ACT_UNSPEC = 0, FR_ACT_TO_TBL = 1, FR_ACT_GOTO = 2, FR_ACT_NOP = 3, FR_ACT_RES3 = 4, FR_ACT_RES4 = 5, FR_ACT_BLACKHOLE = 6, FR_ACT_UNREACHABLE = 7, FR_ACT_PROHIBIT = 8, __FR_ACT_MAX = 9, }; enum { FRA_UNSPEC = 0, FRA_DST = 1, FRA_SRC = 2, FRA_IIFNAME = 3, FRA_GOTO = 4, FRA_UNUSED2 = 5, FRA_PRIORITY = 6, FRA_UNUSED3 = 7, FRA_UNUSED4 = 8, FRA_UNUSED5 = 9, FRA_FWMARK = 10, FRA_FLOW = 11, FRA_TUN_ID = 12, FRA_SUPPRESS_IFGROUP = 13, FRA_SUPPRESS_PREFIXLEN = 14, FRA_TABLE = 15, FRA_FWMASK = 16, FRA_OIFNAME = 17, FRA_PAD = 18, FRA_L3MDEV = 19, FRA_UID_RANGE = 20, FRA_PROTOCOL = 21, FRA_IP_PROTO = 22, FRA_SPORT_RANGE = 23, FRA_DPORT_RANGE = 24, __FRA_MAX = 25, }; struct fib4_rule { struct fib_rule common; u8 dst_len; u8 src_len; dscp_t dscp; __be32 src; __be32 srcmask; __be32 dst; __be32 dstmask; }; struct tcp6_pseudohdr { struct in6_addr saddr; struct in6_addr daddr; __be32 len; __be32 protocol; }; enum { GSSX_NULL = 0, GSSX_INDICATE_MECHS = 1, GSSX_GET_CALL_CONTEXT = 2, GSSX_IMPORT_AND_CANON_NAME = 3, GSSX_EXPORT_CRED = 4, GSSX_IMPORT_CRED = 5, GSSX_ACQUIRE_CRED = 6, GSSX_STORE_CRED = 7, GSSX_INIT_SEC_CONTEXT = 8, GSSX_ACCEPT_SEC_CONTEXT = 9, GSSX_RELEASE_HANDLE = 10, GSSX_GET_MIC = 11, GSSX_VERIFY = 12, GSSX_WRAP = 13, GSSX_UNWRAP = 14, GSSX_WRAP_SIZE_LIMIT = 15, }; typedef struct xdr_netobj utf8string; typedef struct xdr_netobj gssx_buffer; struct gssx_option; struct gssx_option_array { u32 count; struct gssx_option *data; }; struct gssx_call_ctx { utf8string locale; gssx_buffer server_ctx; struct gssx_option_array options; }; struct gssx_ctx; struct gssx_cred; struct gssx_cb; struct gssx_arg_accept_sec_context { struct gssx_call_ctx call_ctx; struct gssx_ctx *context_handle; struct gssx_cred *cred_handle; struct gssp_in_token input_token; struct gssx_cb *input_cb; u32 ret_deleg_cred; struct gssx_option_array options; struct page **pages; unsigned int npages; }; struct gssx_option { gssx_buffer option; gssx_buffer value; }; typedef struct xdr_netobj gssx_OID; struct gssx_name { gssx_buffer display_name; }; typedef struct gssx_name gssx_name; struct gssx_ctx { gssx_buffer exported_context_token; gssx_buffer state; u32 need_release; gssx_OID mech; gssx_name src_name; gssx_name targ_name; u64 lifetime; u64 ctx_flags; u32 locally_initiated; u32 open; struct gssx_option_array options; }; struct gssx_cred_element; struct gssx_cred_element_array { u32 count; struct gssx_cred_element *data; }; struct gssx_cred { gssx_name desired_name; struct gssx_cred_element_array elements; gssx_buffer cred_handle_reference; u32 needs_release; }; struct gssx_cred_element { gssx_name MN; gssx_OID mech; u32 cred_usage; u64 initiator_time_rec; u64 acceptor_time_rec; struct gssx_option_array options; }; struct gssx_cb { u64 initiator_addrtype; gssx_buffer initiator_address; u64 acceptor_addrtype; gssx_buffer acceptor_address; gssx_buffer application_data; }; struct gssx_status { u64 major_status; gssx_OID mech; u64 minor_status; utf8string major_status_string; utf8string minor_status_string; gssx_buffer server_ctx; struct gssx_option_array options; }; struct gssx_res_accept_sec_context { struct gssx_status status; struct gssx_ctx *context_handle; gssx_buffer *output_token; struct gssx_option_array options; }; enum { dns_key_data = 0, dns_key_error = 1, }; struct mptcp_info { __u8 mptcpi_subflows; __u8 mptcpi_add_addr_signal; __u8 mptcpi_add_addr_accepted; __u8 mptcpi_subflows_max; __u8 mptcpi_add_addr_signal_max; __u8 mptcpi_add_addr_accepted_max; __u32 mptcpi_flags; __u32 mptcpi_token; __u64 mptcpi_write_seq; __u64 mptcpi_snd_una; __u64 mptcpi_rcv_nxt; __u8 mptcpi_local_addr_used; __u8 mptcpi_local_addr_max; __u8 mptcpi_csum_enabled; }; struct mptcp_subflow_data { __u32 size_subflow_data; __u32 num_subflows; __u32 size_kernel; __u32 size_user; }; struct mptcp_subflow_addrs { union { __kernel_sa_family_t sa_family; struct sockaddr sa_local; struct sockaddr_in sin_local; struct sockaddr_in6 sin6_local; struct __kernel_sockaddr_storage ss_local; }; union { struct sockaddr sa_remote; struct sockaddr_in sin_remote; struct sockaddr_in6 sin6_remote; struct __kernel_sockaddr_storage ss_remote; }; }; 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; }; typedef struct { unsigned long key[2]; } hsiphash_key_t; union cpuid_0x80000022_ebx { struct { unsigned int num_core_pmc: 4; unsigned int lbr_v2_stack_sz: 6; unsigned int num_df_pmc: 6; } split; unsigned int full; }; 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 {}; struct cstate_entry { struct { unsigned int eax; unsigned int ecx; } states[8]; }; struct hpet_channel; struct hpet_base { unsigned int nr_channels; unsigned int nr_clockevents; unsigned int boot_cfg; struct hpet_channel *channels; }; 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: 48; long: 64; long: 64; long: 64; }; union hpet_lock { struct { arch_spinlock_t lock; u32 value; }; u64 lockval; }; 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_wait)(void *, struct task_struct *, u64); typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64); typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64); typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64); typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, 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); enum { preempt_dynamic_undefined = -1, preempt_dynamic_none = 0, preempt_dynamic_voluntary = 1, preempt_dynamic_full = 2, }; enum { cpuset = 0, possible = 1, fail = 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, }; 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_template { struct trace_entry ent; char comm[16]; pid_t pid; u64 delay; char __data[0]; }; struct trace_event_raw_sched_stat_runtime { struct trace_entry ent; char comm[16]; pid_t pid; u64 runtime; u64 vruntime; 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_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_data_offsets_sched_process_exec { u32 filename; }; 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; }; 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_template {}; struct trace_event_data_offsets_sched_stat_runtime {}; struct trace_event_data_offsets_sched_pi_setprio {}; 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 {}; typedef int (*tg_visitor)(struct task_group *, void *); struct bpf_map_desc { int map_fd; __u32 max_entries; __u64 initial_value; }; struct bpf_prog_desc { int prog_fd; }; struct bpf_loader_ctx { __u32 sz; __u32 flags; __u32 log_level; __u32 log_size; __u64 log_buf; }; struct iterators_bpf__rodata; struct iterators_bpf { struct bpf_loader_ctx ctx; struct { struct bpf_map_desc rodata; } maps; struct { struct bpf_prog_desc dump_bpf_map; struct bpf_prog_desc dump_bpf_prog; } progs; struct { int dump_bpf_map_fd; int dump_bpf_prog_fd; } links; struct iterators_bpf__rodata *rodata; }; struct iterators_bpf__rodata {}; enum { BPF_SKEL_KERNEL = 1, }; struct bpf_load_and_run_opts { struct bpf_loader_ctx *ctx; const void *data; const void *insns; __u32 data_sz; __u32 insns_sz; const char *errstr; }; struct vm_event_state { unsigned long event[76]; }; 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 memblock { bool bottom_up; phys_addr_t current_limit; struct memblock_type memory; struct memblock_type reserved; }; struct kobj_map; struct char_device_struct { struct char_device_struct *next; unsigned int major; unsigned int baseminor; int minorct; char name[64]; struct cdev *cdev; }; enum umount_tree_flags { UMOUNT_SYNC = 1, UMOUNT_PROPAGATE = 2, UMOUNT_CONNECTED = 4, }; struct mount_attr { __u64 attr_set; __u64 attr_clr; __u64 propagation; __u64 userns_fd; }; 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 mnt_idmap { struct user_namespace *owner; refcount_t count; }; struct proc_mounts { struct mnt_namespace *ns; struct path root; int (*show)(struct seq_file *, struct vfsmount *); struct mount cursor; }; struct elf_thread_core_info___2; struct elf_note_info___2 { struct elf_thread_core_info___2 *thread; struct memelfnote psinfo; struct memelfnote signote; struct memelfnote auxv; struct memelfnote files; siginfo_t csigdata; size_t size; int thread_notes; }; struct elf_thread_core_info___2 { struct elf_thread_core_info___2 *next; struct task_struct *task; struct elf_prstatus prstatus; struct memelfnote notes[0]; }; 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[32]; 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_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_inode { __le32 fc_ino; __u8 fc_raw_inode[0]; }; struct ext4_fc_del_range { __le32 fc_ino; __le32 fc_lblk; __le32 fc_len; }; struct dentry_info_args { int parent_ino; int dname_len; int ino; int inode_len; char *dname; }; struct isofs_fid { u32 block; u16 offset; u16 parent_offset; u32 generation; u32 parent_block; u32 parent_generation; }; struct nfs_referral_count { struct list_head list; const struct task_struct *task; unsigned int referral_count; }; typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); enum { Opt_debug___3 = 0, Opt_dfltuid = 1, Opt_dfltgid = 2, Opt_afid = 3, Opt_uname = 4, Opt_remotename = 5, Opt_cache = 6, Opt_cachetag = 7, Opt_nodevmap = 8, Opt_cache_loose = 9, Opt_fscache___2 = 10, Opt_mmap = 11, Opt_access = 12, Opt_posixacl = 13, Opt_locktimeout = 14, Opt_err___7 = 15, }; struct sel_netport_bkt { int size; struct list_head list; }; struct netport_security_struct { u32 sid; u16 port; u8 protocol; }; struct sel_netport { struct netport_security_struct psec; struct list_head list; struct callback_head rcu; }; 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_kpp_spawn { struct crypto_spawn base; }; struct crypto_report_kpp { char type[64]; }; 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]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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 once_work { struct work_struct work; struct static_key_true *key; struct module *module; }; typedef struct { u64 a; u64 b; } u128; struct gf128mul_64k { struct gf128mul_4k *t[16]; }; typedef struct { __le64 b; __le64 a; } le128; enum msi_desc_filter { MSI_DESC_ALL = 0, MSI_DESC_NOTASSOCIATED = 1, MSI_DESC_ASSOCIATED = 2, }; enum dw_dmac_flags { DW_DMA_IS_CYCLIC = 0, DW_DMA_IS_SOFT_LLP = 1, DW_DMA_IS_PAUSED = 2, DW_DMA_IS_INITIALIZED = 3, }; enum dw_dma_fc { DW_DMA_FC_D_M2M = 0, DW_DMA_FC_D_M2P = 1, DW_DMA_FC_D_P2M = 2, DW_DMA_FC_D_P2P = 3, DW_DMA_FC_P_P2M = 4, DW_DMA_FC_SP_P2P = 5, DW_DMA_FC_P_M2P = 6, DW_DMA_FC_DP_P2P = 7, }; struct dw_lli { __le32 sar; __le32 dar; __le32 llp; __le32 ctllo; __le32 ctlhi; __le32 sstat; __le32 dstat; }; struct dw_desc { struct dw_lli lli; struct list_head desc_node; struct list_head tx_list; struct dma_async_tx_descriptor txd; size_t len; size_t total_len; u32 residue; }; 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 *); }; struct iova { struct rb_node node; unsigned long pfn_hi; unsigned long pfn_lo; }; struct iova_rcache; struct iova_domain { spinlock_t iova_rbtree_lock; struct rb_root rbroot; struct rb_node *cached_node; struct rb_node *cached32_node; unsigned long granule; unsigned long start_pfn; unsigned long dma_32bit_pfn; unsigned long max32_alloc_size; struct iova anchor; struct iova_rcache *rcaches; struct hlist_node cpuhp_dead; }; enum iommu_dma_cookie_type { IOMMU_DMA_IOVA_COOKIE = 0, IOMMU_DMA_MSI_COOKIE = 1, }; struct iova_fq; struct iommu_dma_cookie { enum iommu_dma_cookie_type type; union { struct { struct iova_domain iovad; struct iova_fq __attribute__((btf_type_tag("percpu"))) *fq; atomic64_t fq_flush_start_cnt; atomic64_t fq_flush_finish_cnt; struct timer_list fq_timer; atomic_t fq_timer_on; }; dma_addr_t msi_iova; }; struct list_head msi_page_list; struct iommu_domain *fq_domain; struct mutex mutex; }; struct iova_fq_entry { unsigned long iova_pfn; unsigned long pages; struct list_head freelist; u64 counter; }; struct iova_fq { struct iova_fq_entry entries[256]; unsigned int head; unsigned int tail; spinlock_t lock; }; struct iommu_dma_msi_page { struct list_head list; dma_addr_t iova; phys_addr_t phys; }; struct dma_sgt_handle { struct sg_table sgt; struct page **pages; }; struct drm_property_enum { uint64_t value; struct list_head head; char name[32]; }; struct drm_mode_get_property { __u64 values_ptr; __u64 enum_blob_ptr; __u32 prop_id; __u32 flags; char name[32]; __u32 count_values; __u32 count_enum_blobs; }; struct drm_mode_property_enum { __u64 value; char name[32]; }; struct drm_mode_get_blob { __u32 blob_id; __u32 length; __u64 data; }; struct drm_mode_create_blob { __u64 data; __u32 length; __u32 blob_id; }; struct drm_mode_destroy_blob { __u32 blob_id; }; struct sil164_priv { bool quiet; }; struct hdcp2_hdmi_msg_timeout { u8 msg_id; u16 timeout; }; struct scsi_host_busy_iter_data { bool (*fn)(struct scsi_cmnd *, void *); void *priv; }; 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; }; struct iso_rec { int error_count; int numdesc; }; struct mon_bin_hdr { u64 id; unsigned char type; unsigned char xfer_type; unsigned char epnum; unsigned char devnum; unsigned short busnum; char flag_setup; char flag_data; s64 ts_sec; s32 ts_usec; int status; unsigned int len_urb; unsigned int len_cap; union { unsigned char setup[8]; struct iso_rec iso; } s; int interval; int start_frame; unsigned int xfer_flags; unsigned int ndesc; }; struct mon_bin_mfetch { u32 __attribute__((btf_type_tag("user"))) *offvec; u32 nfetch; u32 nflush; }; struct mon_bin_stats { u32 queued; u32 dropped; }; struct mon_bin_mfetch32 { u32 offvec32; u32 nfetch32; u32 nflush32; }; struct mon_bin_isodesc { int iso_status; unsigned int iso_off; unsigned int iso_len; u32 _pad; }; struct mon_pgmap; struct mon_reader_bin { spinlock_t b_lock; unsigned int b_size; unsigned int b_cnt; unsigned int b_in; unsigned int b_out; unsigned int b_read; struct mon_pgmap *b_vec; wait_queue_head_t b_wait; struct mutex fetch_lock; int mmap_active; struct mon_reader r; unsigned int cnt_lost; }; struct mon_pgmap { struct page *pg; unsigned char *ptr; }; struct mon_bin_get { struct mon_bin_hdr __attribute__((btf_type_tag("user"))) *hdr; void __attribute__((btf_type_tag("user"))) *data; size_t alloc; }; struct mon_bin_get32 { u32 hdr32; u32 data32; u32 alloc32; }; 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 hwmon_type_attr_list { const u32 *attrs; size_t n_attrs; }; 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, }; struct power_supply_hwmon { struct power_supply *psy; unsigned long *props; }; struct md_setup_args { int minor; int partitioned; int level; int chunk; char *device_names; }; struct dmi_memdev_info { const char *device; const char *bank; u64 size; u16 handle; u8 type; }; 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, }; 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 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 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 tipc_basic_hdr { __be32 w[4]; }; struct batadv_unicast_packet { __u8 packet_type; __u8 version; __u8 ttl; __u8 ttvn; __u8 dest[6]; }; 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 hsr_tag { __be16 path_and_LSDU_size; __be16 sequence_nr; __be16 encap_proto; }; struct flow_keys_digest { u8 data[16]; }; enum tc_fifo_command { TC_FIFO_REPLACE = 0, TC_FIFO_DESTROY = 1, TC_FIFO_STATS = 2, }; struct tc_fifo_qopt { __u32 limit; }; struct tc_fifo_qopt_offload { enum tc_fifo_command command; u32 handle; u32 parent; union { struct tc_qopt_offload_stats stats; }; }; 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_eee eee; }; 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; }; struct ping_table { struct hlist_nulls_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 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]; }; struct ip6t_ipv6header_info { __u8 matchflags; __u8 invflags; __u8 modeflag; }; struct xsk_map; struct xsk_map_node { struct list_head node; struct xsk_map *map; struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; }; struct xsk_map { struct bpf_map map; spinlock_t lock; atomic_t count; struct xdp_sock __attribute__((btf_type_tag("rcu"))) *xsk_map[0]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct sockaddr_xdp { __u16 sxdp_family; __u16 sxdp_flags; __u32 sxdp_ifindex; __u32 sxdp_queue_id; __u32 sxdp_shared_umem_fd; }; struct xdp_ring_offset_v1 { __u64 producer; __u64 consumer; __u64 desc; }; struct xdp_statistics { __u64 rx_dropped; __u64 rx_invalid_descs; __u64 tx_invalid_descs; __u64 rx_ring_full; __u64 rx_fill_ring_empty_descs; __u64 tx_ring_empty_descs; }; struct xdp_ring_offset { __u64 producer; __u64 consumer; __u64 desc; __u64 flags; }; struct xdp_mmap_offsets { struct xdp_ring_offset rx; struct xdp_ring_offset tx; struct xdp_ring_offset fr; struct xdp_ring_offset cr; }; struct xdp_mmap_offsets_v1 { struct xdp_ring_offset_v1 rx; struct xdp_ring_offset_v1 tx; struct xdp_ring_offset_v1 fr; struct xdp_ring_offset_v1 cr; }; struct xdp_options { __u32 flags; }; 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 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; }; }; 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; }; 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 { 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 {}; 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 stacktrace_cookie { unsigned long *store; unsigned int size; unsigned int skip; unsigned int len; }; 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 { unsigned long long regs; unsigned long syscall_nr; unsigned long args[6]; }; struct syscall_tp_t___2 { unsigned long long regs; unsigned long syscall_nr; unsigned long ret; }; struct bpf_lru_list { struct list_head lists[3]; unsigned int counts[2]; struct list_head *next_inactive_rotation; raw_spinlock_t lock; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct bpf_lru_locallist; 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; }; struct bpf_lru_node; 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: 56; long: 64; long: 64; long: 64; long: 64; }; 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; 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; long: 64; }; struct bucket { struct hlist_nulls_head head; raw_spinlock_t raw_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 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; int: 32; 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 cgroup_lsm_atype { u32 attach_btf_id; int refcnt; }; 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); struct bpf_sysctl_kern; typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); 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; }; 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); struct bpf_sockopt_kern; typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); 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 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_cg_run_ctx { struct bpf_run_ctx run_ctx; const struct bpf_prog_array_item *prog_item; int retval; }; struct bpf_sockopt_buf { u8 data[32]; }; struct bpf_cgroup_dev_ctx { __u32 access_type; __u32 major; __u32 minor; }; 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, 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 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_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; 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 f_owner_ex { int type; __kernel_pid_t pid; }; typedef s64 compat_loff_t; struct compat_flock64 { short l_type; short l_whence; compat_loff_t l_start; compat_loff_t l_len; compat_pid_t l_pid; } __attribute__((packed)); struct compat_flock { short l_type; short l_whence; compat_off_t l_start; compat_off_t l_len; compat_pid_t l_pid; }; 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, }; 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; }; enum { Opt_block = 0, Opt_check_r___2 = 1, Opt_check_s___2 = 2, Opt_cruft = 3, Opt_gid___6 = 4, Opt_ignore = 5, Opt_iocharset = 6, Opt_map_a = 7, Opt_map_n = 8, Opt_map_o = 9, Opt_mode___4 = 10, Opt_nojoliet = 11, Opt_norock = 12, Opt_sb___2 = 13, Opt_session = 14, Opt_uid___5 = 15, Opt_unhide = 16, Opt_utf8 = 17, Opt_err___8 = 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; }; struct nfs3_createdata { struct rpc_message msg; union { struct nfs3_createargs create; struct nfs3_mkdirargs mkdir; struct nfs3_symlinkargs symlink; struct nfs3_mknodargs mknod; } arg; struct nfs3_diropres res; struct nfs_fh fh; struct nfs_fattr fattr; struct nfs_fattr dir_attr; }; enum { Opt_err___9 = 0, Opt_fd = 1, Opt_uid___6 = 2, Opt_gid___7 = 3, Opt_pgrp = 4, Opt_minproto = 5, Opt_maxproto = 6, Opt_indirect = 7, Opt_direct = 8, Opt_offset = 9, Opt_strictexpire = 10, Opt_ignore___2 = 11, }; enum { Opt_err___10 = 0, Opt_enc = 1, Opt_hash___2 = 2, }; struct sel_netnode_bkt { unsigned int size; struct list_head list; }; struct netnode_security_struct { union { __be32 ipv4; struct in6_addr ipv6; } addr; u32 sid; u16 family; }; struct sel_netnode { struct netnode_security_struct nsec; struct list_head list; struct callback_head rcu; }; enum { CRYPTO_MSG_ALG_REQUEST = 0, CRYPTO_MSG_ALG_REGISTER = 1, CRYPTO_MSG_ALG_LOADED = 2, }; enum { CRYPTOA_UNSPEC = 0, CRYPTOA_ALG = 1, CRYPTOA_TYPE = 2, __CRYPTOA_MAX = 3, }; struct crypto_larval { struct crypto_alg alg; struct crypto_alg *adult; struct completion completion; u32 mask; bool test_started; }; 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; }; struct io_overflow_cqe { struct list_head list; struct io_uring_cqe cqe; }; 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; }; 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 u32 acpi_rsdesc_size; 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 dma_chan_tbl_ent { struct dma_chan *chan; }; struct dmaengine_unmap_pool { struct kmem_cache *cache; const char *name; mempool_t *pool; size_t size; }; struct con_driver { const struct consw *con; const char *desc; struct device *dev; int node; int first; int last; int flag; }; struct interval { uint32_t first; uint32_t last; }; enum { blank_off = 0, blank_normal_wait = 1, blank_vesa_wait = 2, }; enum { 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, ESapc = 13, ESpm = 14, ESdcs = 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, }; struct vc_draw_region { unsigned long from; unsigned long to; int x; }; struct rgb { u8 r; u8 g; u8 b; }; typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); struct trace_event_raw_iommu_group_event { struct trace_entry ent; int gid; u32 __data_loc_device; char __data[0]; }; struct trace_event_raw_iommu_device_event { struct trace_entry ent; u32 __data_loc_device; char __data[0]; }; struct trace_event_raw_map { struct trace_entry ent; u64 iova; u64 paddr; size_t size; char __data[0]; }; struct trace_event_raw_unmap { struct trace_entry ent; u64 iova; size_t size; size_t unmapped_size; char __data[0]; }; struct trace_event_raw_iommu_error { struct trace_entry ent; u32 __data_loc_device; u32 __data_loc_driver; u64 iova; int flags; char __data[0]; }; struct trace_event_data_offsets_iommu_group_event { u32 device; }; struct trace_event_data_offsets_iommu_device_event { u32 device; }; struct trace_event_data_offsets_iommu_error { u32 device; u32 driver; }; struct trace_event_data_offsets_map {}; struct trace_event_data_offsets_unmap {}; struct drm_prime_member { struct dma_buf *dma_buf; uint32_t handle; struct rb_node dmabuf_rb; struct rb_node handle_rb; }; struct drm_prime_handle { __u32 handle; __u32 flags; __s32 fd; }; struct ewma_psr_time { unsigned long internal; }; struct drm_self_refresh_data { struct drm_crtc *crtc; struct delayed_work entry_work; struct mutex avg_mutex; struct ewma_psr_time entry_avg_ms; struct ewma_psr_time exit_avg_ms; }; enum vga_switcheroo_state { VGA_SWITCHEROO_OFF = 0, VGA_SWITCHEROO_ON = 1, VGA_SWITCHEROO_NOT_FOUND = 2, }; enum vga_switcheroo_client_id { VGA_SWITCHEROO_UNKNOWN_ID = 4096, VGA_SWITCHEROO_IGD = 0, VGA_SWITCHEROO_DIS = 1, VGA_SWITCHEROO_MAX_CLIENTS = 2, }; struct vga_switcheroo_client_ops { void (*set_gpu_state)(struct pci_dev *, enum vga_switcheroo_state); void (*reprobe)(struct pci_dev *); bool (*can_switch)(struct pci_dev *); void (*gpu_bound)(struct pci_dev *, enum vga_switcheroo_client_id); }; struct gen6_ppgtt { struct i915_ppgtt base; struct mutex flush; struct i915_vma *vma; gen6_pte_t *pd_addr; u32 pp_dir; atomic_t pin_count; bool scan_for_unused_pt; }; struct drm_i915_gem_userptr { __u64 user_ptr; __u64 user_size; __u32 flags; __u32 handle; }; struct hdcp2_dp_msg_data { u8 msg_id; u32 offset; bool msg_detectable; u32 timeout; u32 timeout2; u32 msg_read_timeout; }; struct hdcp2_dp_errata_stream_type { u8 msg_id; u8 stream_type; }; struct aggregate_device; 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 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: 32; long: 64; long: 64; long: 64; long: 64; }; struct virtio_blk_outhdr { __virtio32 type; __virtio32 ioprio; __virtio64 sector; }; struct virtblk_req { struct virtio_blk_outhdr out_hdr; union { u8 status; struct { u8 status; u8 reserved[7]; __le64 append_sector; } 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 mem_entry { u32 offset; u32 len; }; struct tg3_dev_id { u32 vendor; u32 device; u32 rev; }; struct tg3_dev_id___2 { u32 vendor; u32 device; }; struct subsys_tbl_ent { u16 subsys_vendor; u16 subsys_devid; u32 phy_id; }; enum TG3_FLAGS { TG3_FLAG_TAGGED_STATUS = 0, TG3_FLAG_TXD_MBOX_HWBUG = 1, TG3_FLAG_USE_LINKCHG_REG = 2, TG3_FLAG_ERROR_PROCESSED = 3, TG3_FLAG_ENABLE_ASF = 4, TG3_FLAG_ASPM_WORKAROUND = 5, TG3_FLAG_POLL_SERDES = 6, TG3_FLAG_POLL_CPMU_LINK = 7, TG3_FLAG_MBOX_WRITE_REORDER = 8, TG3_FLAG_PCIX_TARGET_HWBUG = 9, TG3_FLAG_WOL_SPEED_100MB = 10, TG3_FLAG_WOL_ENABLE = 11, TG3_FLAG_EEPROM_WRITE_PROT = 12, TG3_FLAG_NVRAM = 13, TG3_FLAG_NVRAM_BUFFERED = 14, TG3_FLAG_SUPPORT_MSI = 15, TG3_FLAG_SUPPORT_MSIX = 16, TG3_FLAG_USING_MSI = 17, TG3_FLAG_USING_MSIX = 18, TG3_FLAG_PCIX_MODE = 19, TG3_FLAG_PCI_HIGH_SPEED = 20, TG3_FLAG_PCI_32BIT = 21, TG3_FLAG_SRAM_USE_CONFIG = 22, TG3_FLAG_TX_RECOVERY_PENDING = 23, TG3_FLAG_WOL_CAP = 24, TG3_FLAG_JUMBO_RING_ENABLE = 25, TG3_FLAG_PAUSE_AUTONEG = 26, TG3_FLAG_CPMU_PRESENT = 27, TG3_FLAG_40BIT_DMA_BUG = 28, TG3_FLAG_BROKEN_CHECKSUMS = 29, TG3_FLAG_JUMBO_CAPABLE = 30, TG3_FLAG_CHIP_RESETTING = 31, TG3_FLAG_INIT_COMPLETE = 32, TG3_FLAG_MAX_RXPEND_64 = 33, TG3_FLAG_PCI_EXPRESS = 34, TG3_FLAG_ASF_NEW_HANDSHAKE = 35, TG3_FLAG_HW_AUTONEG = 36, TG3_FLAG_IS_NIC = 37, TG3_FLAG_FLASH = 38, TG3_FLAG_FW_TSO = 39, TG3_FLAG_HW_TSO_1 = 40, TG3_FLAG_HW_TSO_2 = 41, TG3_FLAG_HW_TSO_3 = 42, TG3_FLAG_TSO_CAPABLE = 43, TG3_FLAG_TSO_BUG = 44, TG3_FLAG_ICH_WORKAROUND = 45, TG3_FLAG_1SHOT_MSI = 46, TG3_FLAG_NO_FWARE_REPORTED = 47, TG3_FLAG_NO_NVRAM_ADDR_TRANS = 48, TG3_FLAG_ENABLE_APE = 49, TG3_FLAG_PROTECTED_NVRAM = 50, TG3_FLAG_5701_DMA_BUG = 51, TG3_FLAG_USE_PHYLIB = 52, TG3_FLAG_MDIOBUS_INITED = 53, TG3_FLAG_LRG_PROD_RING_CAP = 54, TG3_FLAG_RGMII_INBAND_DISABLE = 55, TG3_FLAG_RGMII_EXT_IBND_RX_EN = 56, TG3_FLAG_RGMII_EXT_IBND_TX_EN = 57, TG3_FLAG_CLKREQ_BUG = 58, TG3_FLAG_NO_NVRAM = 59, TG3_FLAG_ENABLE_RSS = 60, TG3_FLAG_ENABLE_TSS = 61, TG3_FLAG_SHORT_DMA_BUG = 62, TG3_FLAG_USE_JUMBO_BDFLAG = 63, TG3_FLAG_L1PLLPD_EN = 64, TG3_FLAG_APE_HAS_NCSI = 65, TG3_FLAG_TX_TSTAMP_EN = 66, TG3_FLAG_4K_FIFO_LIMIT = 67, TG3_FLAG_5719_5720_RDMA_BUG = 68, TG3_FLAG_RESET_TASK_PENDING = 69, TG3_FLAG_PTP_CAPABLE = 70, TG3_FLAG_5705_PLUS = 71, TG3_FLAG_IS_5788 = 72, TG3_FLAG_5750_PLUS = 73, TG3_FLAG_5780_CLASS = 74, TG3_FLAG_5755_PLUS = 75, TG3_FLAG_57765_PLUS = 76, TG3_FLAG_57765_CLASS = 77, TG3_FLAG_5717_PLUS = 78, TG3_FLAG_IS_SSB_CORE = 79, TG3_FLAG_FLUSH_POSTED_WRITES = 80, TG3_FLAG_ROBOSWITCH = 81, TG3_FLAG_ONE_DMA_AT_ONCE = 82, TG3_FLAG_RGMII_MODE = 83, TG3_FLAG_NUMBER_OF_FLAGS = 84, }; struct tg3_rx_buffer_desc; struct tg3_ext_rx_buffer_desc; struct ring_info___2; struct tg3_rx_prodring_set { u32 rx_std_prod_idx; u32 rx_std_cons_idx; u32 rx_jmb_prod_idx; u32 rx_jmb_cons_idx; struct tg3_rx_buffer_desc *rx_std; struct tg3_ext_rx_buffer_desc *rx_jmb; struct ring_info___2 *rx_std_buffers; struct ring_info___2 *rx_jmb_buffers; dma_addr_t rx_std_mapping; dma_addr_t rx_jmb_mapping; }; struct tg3; struct tg3_hw_status; struct tg3_tx_buffer_desc; struct tg3_tx_ring_info; struct tg3_napi { struct napi_struct napi; struct tg3 *tp; struct tg3_hw_status *hw_status; u32 chk_msi_cnt; u32 last_tag; u32 last_irq_tag; u32 int_mbox; u32 coal_now; long: 32; long: 64; u32 consmbox; u32 rx_rcb_ptr; u32 last_rx_cons; u16 *rx_rcb_prod_idx; struct tg3_rx_prodring_set prodring; struct tg3_rx_buffer_desc *rx_rcb; long: 64; long: 64; long: 64; long: 64; u32 tx_prod; u32 tx_cons; u32 tx_pending; u32 last_tx_cons; u32 prodmbox; struct tg3_tx_buffer_desc *tx_ring; struct tg3_tx_ring_info *tx_buffers; dma_addr_t status_mapping; dma_addr_t rx_rcb_mapping; dma_addr_t tx_desc_mapping; char irq_lbl[16]; unsigned int irq_vec; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct tg3_ethtool_stats { u64 rx_octets; u64 rx_fragments; u64 rx_ucast_packets; u64 rx_mcast_packets; u64 rx_bcast_packets; u64 rx_fcs_errors; u64 rx_align_errors; u64 rx_xon_pause_rcvd; u64 rx_xoff_pause_rcvd; u64 rx_mac_ctrl_rcvd; u64 rx_xoff_entered; u64 rx_frame_too_long_errors; u64 rx_jabbers; u64 rx_undersize_packets; u64 rx_in_length_errors; u64 rx_out_length_errors; u64 rx_64_or_less_octet_packets; u64 rx_65_to_127_octet_packets; u64 rx_128_to_255_octet_packets; u64 rx_256_to_511_octet_packets; u64 rx_512_to_1023_octet_packets; u64 rx_1024_to_1522_octet_packets; u64 rx_1523_to_2047_octet_packets; u64 rx_2048_to_4095_octet_packets; u64 rx_4096_to_8191_octet_packets; u64 rx_8192_to_9022_octet_packets; u64 tx_octets; u64 tx_collisions; u64 tx_xon_sent; u64 tx_xoff_sent; u64 tx_flow_control; u64 tx_mac_errors; u64 tx_single_collisions; u64 tx_mult_collisions; u64 tx_deferred; u64 tx_excessive_collisions; u64 tx_late_collisions; u64 tx_collide_2times; u64 tx_collide_3times; u64 tx_collide_4times; u64 tx_collide_5times; u64 tx_collide_6times; u64 tx_collide_7times; u64 tx_collide_8times; u64 tx_collide_9times; u64 tx_collide_10times; u64 tx_collide_11times; u64 tx_collide_12times; u64 tx_collide_13times; u64 tx_collide_14times; u64 tx_collide_15times; u64 tx_ucast_packets; u64 tx_mcast_packets; u64 tx_bcast_packets; u64 tx_carrier_sense_errors; u64 tx_discards; u64 tx_errors; u64 dma_writeq_full; u64 dma_write_prioq_full; u64 rxbds_empty; u64 rx_discards; u64 rx_errors; u64 rx_threshold_hit; u64 dma_readq_full; u64 dma_read_prioq_full; u64 tx_comp_queue_full; u64 ring_set_send_prod_index; u64 ring_status_update; u64 nic_irqs; u64 nic_avoided_irqs; u64 nic_tx_threshold_hit; u64 mbuf_lwm_thresh_hit; }; struct tg3_link_config { u32 advertising; u32 speed; u8 duplex; u8 autoneg; u8 flowctrl; u8 active_flowctrl; u8 active_duplex; u32 active_speed; u32 rmt_adv; }; struct tg3_bufmgr_config { u32 mbuf_read_dma_low_water; u32 mbuf_mac_rx_low_water; u32 mbuf_high_water; u32 mbuf_read_dma_low_water_jumbo; u32 mbuf_mac_rx_low_water_jumbo; u32 mbuf_high_water_jumbo; u32 dma_low_water; u32 dma_high_water; }; struct tg3_hw_stats; struct tg3 { unsigned int irq_sync; spinlock_t lock; spinlock_t indirect_lock; u32 (*read32)(struct tg3 *, u32); void (*write32)(struct tg3 *, u32, u32); u32 (*read32_mbox)(struct tg3 *, u32); void (*write32_mbox)(struct tg3 *, u32, u32); void *regs; void *aperegs; struct net_device *dev; struct pci_dev *pdev; u32 coal_now; u32 msg_enable; struct ptp_clock_info ptp_info; struct ptp_clock *ptp_clock; s64 ptp_adjust; void (*write32_tx_mbox)(struct tg3 *, u32, u32); u32 dma_limit; u32 txq_req; u32 txq_cnt; u32 txq_max; long: 64; long: 64; struct tg3_napi napi[5]; void (*write32_rx_mbox)(struct tg3 *, u32, u32); u32 rx_copy_thresh; u32 rx_std_ring_mask; u32 rx_jmb_ring_mask; u32 rx_ret_ring_mask; u32 rx_pending; u32 rx_jumbo_pending; u32 rx_std_max_post; u32 rx_offset; u32 rx_pkt_map_sz; u32 rxq_req; u32 rxq_cnt; u32 rxq_max; bool rx_refill; unsigned long rx_dropped; unsigned long tx_dropped; struct rtnl_link_stats64 net_stats_prev; struct tg3_ethtool_stats estats_prev; unsigned long tg3_flags[2]; union { unsigned long phy_crc_errors; unsigned long last_event_jiffies; }; struct timer_list timer; u16 timer_counter; u16 timer_multiplier; u32 timer_offset; u16 asf_counter; u16 asf_multiplier; u32 serdes_counter; struct tg3_link_config link_config; struct tg3_bufmgr_config bufmgr_config; u32 rx_mode; u32 tx_mode; u32 mac_mode; u32 mi_mode; u32 misc_host_ctrl; u32 grc_mode; u32 grc_local_ctrl; u32 dma_rwctrl; u32 coalesce_mode; u32 pwrmgmt_thresh; u32 rxptpctl; u32 pci_chip_rev_id; u16 pci_cmd; u8 pci_cacheline_sz; u8 pci_lat_timer; int pci_fn; int msi_cap; int pcix_cap; int pcie_readrq; struct mii_bus *mdio_bus; int old_link; u8 phy_addr; u8 phy_ape_lock; u32 phy_id; u32 phy_flags; u32 led_ctrl; u32 phy_otp; u32 setlpicnt; u8 rss_ind_tbl[128]; char board_part_number[24]; char fw_ver[32]; u32 nic_sram_data_cfg; u32 pci_clock_ctrl; struct pci_dev *pdev_peer; struct tg3_hw_stats *hw_stats; dma_addr_t stats_mapping; struct work_struct reset_task; int nvram_lock_cnt; u32 nvram_size; u32 nvram_pagesize; u32 nvram_jedecnum; unsigned int irq_max; unsigned int irq_cnt; struct ethtool_coalesce coal; struct ethtool_eee eee; const char *fw_needed; const struct firmware *fw; u32 fw_len; struct device *hwmon_dev; bool link_up; bool pcierr_recovery; u32 ape_hb; unsigned long ape_hb_interval; unsigned long ape_hb_jiffies; long: 64; long: 64; long: 64; long: 64; }; struct tg3_hw_status { u32 status; u32 status_tag; u16 rx_jumbo_consumer; u16 rx_consumer; u16 rx_mini_consumer; u16 reserved; struct { u16 rx_producer; u16 tx_consumer; } idx[16]; }; struct tg3_rx_buffer_desc { u32 addr_hi; u32 addr_lo; u32 idx_len; u32 type_flags; u32 ip_tcp_csum; u32 err_vlan; u32 reserved; u32 opaque; }; struct tg3_ext_rx_buffer_desc { struct { u32 addr_hi; u32 addr_lo; } addrlist[3]; u32 len2_len1; u32 resv_len3; struct tg3_rx_buffer_desc std; }; struct ring_info___2 { u8 *data; dma_addr_t mapping; }; struct tg3_tx_buffer_desc { u32 addr_hi; u32 addr_lo; u32 len_flags; u32 vlan_tag; }; struct tg3_tx_ring_info { struct sk_buff *skb; dma_addr_t mapping; bool fragmented; }; typedef struct { u32 high; u32 low; } tg3_stat64_t; struct tg3_hw_stats { u8 __reserved0[256]; tg3_stat64_t rx_octets; u64 __reserved1; tg3_stat64_t rx_fragments; tg3_stat64_t rx_ucast_packets; tg3_stat64_t rx_mcast_packets; tg3_stat64_t rx_bcast_packets; tg3_stat64_t rx_fcs_errors; tg3_stat64_t rx_align_errors; tg3_stat64_t rx_xon_pause_rcvd; tg3_stat64_t rx_xoff_pause_rcvd; tg3_stat64_t rx_mac_ctrl_rcvd; tg3_stat64_t rx_xoff_entered; tg3_stat64_t rx_frame_too_long_errors; tg3_stat64_t rx_jabbers; tg3_stat64_t rx_undersize_packets; tg3_stat64_t rx_in_length_errors; tg3_stat64_t rx_out_length_errors; tg3_stat64_t rx_64_or_less_octet_packets; tg3_stat64_t rx_65_to_127_octet_packets; tg3_stat64_t rx_128_to_255_octet_packets; tg3_stat64_t rx_256_to_511_octet_packets; tg3_stat64_t rx_512_to_1023_octet_packets; tg3_stat64_t rx_1024_to_1522_octet_packets; tg3_stat64_t rx_1523_to_2047_octet_packets; tg3_stat64_t rx_2048_to_4095_octet_packets; tg3_stat64_t rx_4096_to_8191_octet_packets; tg3_stat64_t rx_8192_to_9022_octet_packets; u64 __unused0[37]; tg3_stat64_t tx_octets; u64 __reserved2; tg3_stat64_t tx_collisions; tg3_stat64_t tx_xon_sent; tg3_stat64_t tx_xoff_sent; tg3_stat64_t tx_flow_control; tg3_stat64_t tx_mac_errors; tg3_stat64_t tx_single_collisions; tg3_stat64_t tx_mult_collisions; tg3_stat64_t tx_deferred; u64 __reserved3; tg3_stat64_t tx_excessive_collisions; tg3_stat64_t tx_late_collisions; tg3_stat64_t tx_collide_2times; tg3_stat64_t tx_collide_3times; tg3_stat64_t tx_collide_4times; tg3_stat64_t tx_collide_5times; tg3_stat64_t tx_collide_6times; tg3_stat64_t tx_collide_7times; tg3_stat64_t tx_collide_8times; tg3_stat64_t tx_collide_9times; tg3_stat64_t tx_collide_10times; tg3_stat64_t tx_collide_11times; tg3_stat64_t tx_collide_12times; tg3_stat64_t tx_collide_13times; tg3_stat64_t tx_collide_14times; tg3_stat64_t tx_collide_15times; tg3_stat64_t tx_ucast_packets; tg3_stat64_t tx_mcast_packets; tg3_stat64_t tx_bcast_packets; tg3_stat64_t tx_carrier_sense_errors; tg3_stat64_t tx_discards; tg3_stat64_t tx_errors; u64 __unused1[31]; tg3_stat64_t COS_rx_packets[16]; tg3_stat64_t COS_rx_filter_dropped; tg3_stat64_t dma_writeq_full; tg3_stat64_t dma_write_prioq_full; tg3_stat64_t rxbds_empty; tg3_stat64_t rx_discards; tg3_stat64_t rx_errors; tg3_stat64_t rx_threshold_hit; u64 __unused2[9]; tg3_stat64_t COS_out_packets[16]; tg3_stat64_t dma_readq_full; tg3_stat64_t dma_read_prioq_full; tg3_stat64_t tx_comp_queue_full; tg3_stat64_t ring_set_send_prod_index; tg3_stat64_t ring_status_update; tg3_stat64_t nic_irqs; tg3_stat64_t nic_avoided_irqs; tg3_stat64_t nic_tx_threshold_hit; tg3_stat64_t mbuf_lwm_thresh_hit; u8 __reserved4[312]; }; struct tg3_firmware_hdr { __be32 version; __be32 base_addr; __be32 len; }; struct tg3_fiber_aneginfo { int state; u32 flags; unsigned long link_time; unsigned long cur_time; u32 ability_match_cfg; int ability_match_count; char ability_match; char idle_match; char ack_match; u32 txconfig; u32 rxconfig; }; struct tg3_ocir { u32 signature; u16 version_flags; u16 refresh_int; u32 refresh_tmr; u32 update_tmr; u32 dst_base_addr; u16 src_hdr_offset; u16 src_hdr_length; u16 src_data_offset; u16 src_data_length; u16 dst_hdr_offset; u16 dst_data_offset; u16 dst_reg_upd_offset; u16 dst_sem_offset; u32 reserved1[2]; u32 port0_flags; u32 port1_flags; u32 port2_flags; u32 port3_flags; u32 reserved2; }; struct tg3_internal_buffer_desc { u32 addr_hi; u32 addr_lo; u32 nic_mbuf; u16 len; u16 cqid_sqid; u32 flags; u32 __cookie1; u32 __cookie2; u32 __cookie3; }; struct ntrig_data { __u16 x; __u16 y; __u16 w; __u16 h; __u16 id; bool tipswitch; bool confidence; bool first_contact_touch; bool reading_mt; __u8 mt_footer[4]; __u8 mt_foot_count; __s8 act_state; __s8 deactivate_slack; __s8 activate_slack; __u16 min_width; __u16 min_height; __u16 activation_width; __u16 activation_height; __u16 sensor_logical_width; __u16 sensor_logical_height; __u16 sensor_physical_width; __u16 sensor_physical_height; }; struct channel_map_table { unsigned char map; int spk_mask; }; struct hdac_cea_channel_speaker_allocation { int ca_index; int speakers[8]; int channels; int spk_mask; }; struct hdac_chmap; struct hdac_chmap_ops { int (*chmap_cea_alloc_validate_get_type)(struct hdac_chmap *, struct hdac_cea_channel_speaker_allocation *, int); void (*cea_alloc_to_tlv_chmap)(struct hdac_chmap *, struct hdac_cea_channel_speaker_allocation *, unsigned int *, int); int (*chmap_validate)(struct hdac_chmap *, int, int, unsigned char *); int (*get_spk_alloc)(struct hdac_device *, int); void (*get_chmap)(struct hdac_device *, int, unsigned char *); void (*set_chmap)(struct hdac_device *, int, unsigned char *, int); bool (*is_pcm_attached)(struct hdac_device *, int); int (*pin_get_slot_channel)(struct hdac_device *, hda_nid_t, int); int (*pin_set_slot_channel)(struct hdac_device *, hda_nid_t, int, int); void (*set_channel_count)(struct hdac_device *, hda_nid_t, int); }; struct hdac_chmap { unsigned int channels_max; struct hdac_chmap_ops ops; struct hdac_device *hdac; }; struct tc_ratespec { unsigned char cell_log; __u8 linklayer; unsigned short overhead; short cell_align; unsigned short mpu; __u32 rate; }; struct qdisc_rate_table { struct tc_ratespec rate; u32 data[256]; struct qdisc_rate_table *next; int refcnt; }; enum tc_link_layer { TC_LINKLAYER_UNAWARE = 0, TC_LINKLAYER_ETHERNET = 1, TC_LINKLAYER_ATM = 2, }; enum { TCA_STAB_UNSPEC = 0, TCA_STAB_BASE = 1, TCA_STAB_DATA = 2, __TCA_STAB_MAX = 3, }; enum tc_root_command { TC_ROOT_GRAFT = 0, }; struct Qdisc_class_common { u32 classid; struct hlist_node hnode; }; struct qdisc_watchdog { u64 last_expires; struct hrtimer timer; struct Qdisc *qdisc; }; struct check_loop_arg { struct qdisc_walker w; struct Qdisc *p; int depth; }; struct tc_bind_class_args { struct qdisc_walker w; unsigned long new_cl; u32 portid; u32 clid; }; struct qdisc_dump_args { struct qdisc_walker w; struct sk_buff *skb; struct netlink_callback *cb; }; struct tc_root_qopt_offload { enum tc_root_command command; u32 handle; bool ingress; }; struct Qdisc_class_hash { struct hlist_head *hash; unsigned int hashsize; unsigned int hashmask; unsigned int hashelems; }; struct tc_query_caps_base { enum tc_setup_type type; void *caps; }; struct tcf_bind_args { struct tcf_walker w; unsigned long base; unsigned long cl; u32 classid; }; 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 = 5, }; 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 icmp_err { int errno; unsigned int fatal: 1; }; struct icmp_control { enum skb_drop_reason (*handler)(struct sk_buff *); short error; }; 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_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_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; }; enum ip6t_reject_with { IP6T_ICMP6_NO_ROUTE = 0, IP6T_ICMP6_ADM_PROHIBITED = 1, IP6T_ICMP6_NOT_NEIGHBOUR = 2, IP6T_ICMP6_ADDR_UNREACH = 3, IP6T_ICMP6_PORT_UNREACH = 4, IP6T_ICMP6_ECHOREPLY = 5, IP6T_TCP_RESET = 6, IP6T_ICMP6_POLICY_FAIL = 7, IP6T_ICMP6_REJECT_ROUTE = 8, }; struct ip6t_reject_info { __u32 with; }; struct cache_queue { struct list_head list; int reader; }; struct cache_request { struct cache_queue q; struct cache_head *item; char *buf; int len; int readers; }; struct thread_deferred_req { struct cache_deferred_req handle; struct completion completion; }; struct cache_reader { struct cache_queue q; int offset; }; struct netlbl_domhsh_tbl { struct list_head *tbl; u32 size; }; struct netlbl_af4list { __be32 addr; __be32 mask; u32 valid; struct list_head list; }; struct netlbl_domaddr4_map { struct netlbl_dommap_def def; struct netlbl_af4list list; }; struct netlbl_af6list { struct in6_addr addr; struct in6_addr mask; u32 valid; struct list_head list; }; struct netlbl_domaddr6_map { struct netlbl_dommap_def def; struct netlbl_af6list list; }; enum { NLBL_MGMT_A_UNSPEC = 0, NLBL_MGMT_A_DOMAIN = 1, NLBL_MGMT_A_PROTOCOL = 2, NLBL_MGMT_A_VERSION = 3, NLBL_MGMT_A_CV4DOI = 4, NLBL_MGMT_A_IPV6ADDR = 5, NLBL_MGMT_A_IPV6MASK = 6, NLBL_MGMT_A_IPV4ADDR = 7, NLBL_MGMT_A_IPV4MASK = 8, NLBL_MGMT_A_ADDRSELECTOR = 9, NLBL_MGMT_A_SELECTORLIST = 10, NLBL_MGMT_A_FAMILY = 11, NLBL_MGMT_A_CLPDOI = 12, __NLBL_MGMT_A_MAX = 13, }; enum { NLBL_MGMT_C_UNSPEC = 0, NLBL_MGMT_C_ADD = 1, NLBL_MGMT_C_REMOVE = 2, NLBL_MGMT_C_LISTALL = 3, NLBL_MGMT_C_ADDDEF = 4, NLBL_MGMT_C_REMOVEDEF = 5, NLBL_MGMT_C_LISTDEF = 6, NLBL_MGMT_C_PROTOCOLS = 7, NLBL_MGMT_C_VERSION = 8, __NLBL_MGMT_C_MAX = 9, }; struct netlbl_domhsh_walk_arg___2 { struct netlink_callback *nl_cb; struct sk_buff *skb; u32 seq; }; struct amd_hostbridge { u32 bus; u32 slot; u32 device; }; struct restore_data_record { unsigned long jump_address; unsigned long jump_address_phys; unsigned long cr3; unsigned long magic; unsigned long e820_checksum; }; typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); 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, }; 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_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 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 char node_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 {}; 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_MAX_SHIFT = 19, }; 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; }; enum kcmp_type { KCMP_FILE = 0, KCMP_VM = 1, KCMP_FILES = 2, KCMP_FS = 3, KCMP_SIGHAND = 4, KCMP_IO = 5, KCMP_SYSVSEM = 6, KCMP_EPOLL_TFD = 7, KCMP_TYPES = 8, }; struct kcmp_epoll_slot { __u32 efd; __u32 tfd; __u32 toff; }; struct dma_chan___2 { int lock; const char *device_id; }; 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 compat_blk_user_trace_setup { char name[32]; u16 act_mask; short: 16; u32 buf_size; u32 buf_nr; compat_u64 start_lba; compat_u64 end_lba; u32 pid; } __attribute__((packed)); 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 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); typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); 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 *); struct latch_tree_root { seqcount_latch_t seq; struct rb_root tree[2]; }; 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; }; 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_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 {}; typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); 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_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 *, struct iomap *); typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); 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_iter { struct trace_entry ent; dev_t dev; u64 ino; loff_t pos; u64 length; unsigned int flags; const void *ops; unsigned long caller; 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_iter {}; 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; }; 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 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; kernel_cap_t permitted; kernel_cap_t inheritable; kuid_t rootid; }; enum data_formats { DATA_FMT_DIGEST = 0, DATA_FMT_DIGEST_WITH_ALGO = 1, DATA_FMT_DIGEST_WITH_TYPE_AND_ALGO = 2, DATA_FMT_STRING = 3, DATA_FMT_HEX = 4, DATA_FMT_UINT = 5, }; enum digest_type { DIGEST_TYPE_IMA = 0, DIGEST_TYPE_VERITY = 1, DIGEST_TYPE__LAST = 2, }; 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; struct crypto_alg base; }; struct crypto_report_acomp { char type[64]; }; struct blk_major_name { struct blk_major_name *next; int major; char name[16]; void (*probe)(dev_t); }; 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; }; enum dock_callback_type { DOCK_CALL_HANDLER = 0, DOCK_CALL_FIXUP = 1, DOCK_CALL_UEVENT = 2, }; struct dock_station { acpi_handle handle; unsigned long last_dock_time; u32 flags; struct list_head dependent_devices; struct list_head sibling; struct platform_device *dock_device; }; struct dock_dependent_device { struct list_head list; struct acpi_device *adev; }; struct acpi_lpat { int temp; int raw; }; struct acpi_lpat_conversion_table { struct acpi_lpat *lpat; int lpat_count; }; 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; }; enum wmi_brightness_method { WMI_BRIGHTNESS_METHOD_LEVEL = 1, WMI_BRIGHTNESS_METHOD_SOURCE = 2, WMI_BRIGHTNESS_METHOD_MAX = 3, }; enum wmi_brightness_source { WMI_BRIGHTNESS_SOURCE_GPU = 1, WMI_BRIGHTNESS_SOURCE_EC = 2, WMI_BRIGHTNESS_SOURCE_AUX = 3, WMI_BRIGHTNESS_SOURCE_MAX = 4, }; struct wmi_brightness_args { u32 mode; u32 val; u32 ret; u32 ignored[3]; }; struct ports_driver_data { struct class *class; struct dentry *debugfs_dir; struct list_head portdevs; struct list_head consoles; }; struct hvc_struct; struct hv_ops { int (*get_chars)(uint32_t, char *, int); int (*put_chars)(uint32_t, const char *, int); int (*flush)(uint32_t, bool); int (*notifier_add)(struct hvc_struct *, int); void (*notifier_del)(struct hvc_struct *, int); void (*notifier_hangup)(struct hvc_struct *, int); int (*tiocmget)(struct hvc_struct *); int (*tiocmset)(struct hvc_struct *, unsigned int, unsigned int); void (*dtr_rts)(struct hvc_struct *, bool); }; struct hvc_struct { struct tty_port port; spinlock_t lock; int index; int do_wakeup; char *outbuf; int outbuf_size; int n_outbuf; uint32_t vtermno; const struct hv_ops *ops; int irq_requested; int data; struct winsize ws; struct work_struct tty_resize; struct list_head next; unsigned long flags; }; struct console___2 { struct list_head list; struct hvc_struct *hvc; struct winsize ws; u32 vtermno; }; struct port_stats { unsigned long bytes_sent; unsigned long bytes_received; unsigned long bytes_discarded; }; struct ports_device; struct port_buffer; struct port___3 { struct list_head list; struct ports_device *portdev; struct port_buffer *inbuf; spinlock_t inbuf_lock; spinlock_t outvq_lock; struct virtqueue *in_vq; struct virtqueue *out_vq; struct dentry *debugfs_file; struct port_stats stats; struct console___2 cons; struct cdev *cdev; struct device *dev; struct kref kref; wait_queue_head_t waitqueue; char *name; struct fasync_struct *async_queue; u32 id; bool outvq_full; bool host_connected; bool guest_connected; }; struct virtio_console_control { __virtio32 id; __virtio16 event; __virtio16 value; }; struct ports_device { struct list_head list; struct work_struct control_work; struct work_struct config_work; struct list_head ports; spinlock_t ports_lock; spinlock_t c_ivq_lock; spinlock_t c_ovq_lock; u32 max_nr_ports; struct virtio_device *vdev; struct virtqueue *c_ivq; struct virtqueue *c_ovq; struct virtio_console_control cpkt; struct virtqueue **in_vqs; struct virtqueue **out_vqs; int chr_major; }; struct port_buffer { char *buf; size_t size; size_t len; size_t offset; dma_addr_t dma; struct device *dev; struct list_head list; unsigned int sgpages; struct scatterlist sg[0]; }; struct sg_list { unsigned int n; unsigned int size; size_t len; struct scatterlist *sg; }; struct iommu_group { struct kobject kobj; struct kobject *devices_kobj; struct list_head devices; struct xarray pasid_array; struct mutex mutex; void *iommu_data; void (*iommu_data_release)(void *); char *name; int id; struct iommu_domain *default_domain; struct iommu_domain *blocking_domain; struct iommu_domain *domain; struct list_head entry; unsigned int owner_cnt; void *owner; }; struct iommu_group_attribute { struct attribute attr; ssize_t (*show)(struct iommu_group *, char *); ssize_t (*store)(struct iommu_group *, const char *, size_t); }; enum iommu_fault_type { IOMMU_FAULT_DMA_UNRECOV = 1, IOMMU_FAULT_PAGE_REQ = 2, }; enum fsl_mc_pool_type { FSL_MC_POOL_DPMCP = 0, FSL_MC_POOL_DPBP = 1, FSL_MC_POOL_DPCON = 2, FSL_MC_POOL_IRQ = 3, FSL_MC_NUM_POOL_TYPES = 4, }; struct group_device { struct list_head list; struct device *dev; char *name; }; struct fsl_mc_obj_desc { char type[16]; int id; u16 vendor; u16 ver_major; u16 ver_minor; u8 irq_count; u8 region_count; u32 state; char label[16]; u16 flags; }; struct fsl_mc_io; struct fsl_mc_device_irq; struct fsl_mc_resource; struct fsl_mc_device { struct device dev; u64 dma_mask; u16 flags; u32 icid; u16 mc_handle; struct fsl_mc_io *mc_io; struct fsl_mc_obj_desc obj_desc; struct resource *regions; struct fsl_mc_device_irq **irqs; struct fsl_mc_resource *resource; struct device_link *consumer_link; const char *driver_override; }; struct fsl_mc_io { struct device *dev; u16 flags; u32 portal_size; phys_addr_t portal_phys_addr; void *portal_virt_addr; struct fsl_mc_device *dpmcp_dev; union { struct mutex mutex; raw_spinlock_t spinlock; }; }; struct fsl_mc_resource_pool; struct fsl_mc_resource { enum fsl_mc_pool_type type; s32 id; void *data; struct fsl_mc_resource_pool *parent_pool; struct list_head node; }; struct fsl_mc_device_irq { unsigned int virq; struct fsl_mc_device *mc_dev; u8 dev_irq_index; struct fsl_mc_resource resource; }; struct __group_domain_type { struct device *dev; unsigned int type; }; struct group_for_pci_data { struct pci_dev *pdev; struct iommu_group *group; }; struct drm_gem_shmem_object___2 { struct drm_gem_object___3 base; struct mutex pages_lock; struct page **pages; unsigned int pages_use_count; int madv; struct list_head madv_list; unsigned int pages_mark_dirty_on_put: 1; unsigned int pages_mark_accessed_on_put: 1; struct sg_table *sgt; struct mutex vmap_lock; void *vaddr; unsigned int vmap_use_count; bool map_wc; }; struct ttm_global { struct page *dummy_read_page; struct list_head device_list; atomic_t bo_count; }; struct ttm_resource_cursor { unsigned int priority; }; enum { DEBUG_FENCE_IDLE = 0, DEBUG_FENCE_NOTIFY = 1, }; struct i915_sw_dma_fence_cb_timer { struct i915_sw_dma_fence_cb base; struct dma_fence *dma; struct timer_list timer; struct irq_work work; struct callback_head rcu; }; struct pxp43_start_huc_auth_in { struct pxp_cmd_header header; __le64 huc_base_address; }; struct pxp43_start_huc_auth_out { struct pxp_cmd_header header; }; 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; 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; }; 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 { 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, }; struct sky2_stat { char name[32]; u16 offset; }; enum { PCI_DEV_REG1 = 64, PCI_DEV_REG2 = 68, PCI_DEV_STATUS = 124, PCI_DEV_REG3 = 128, PCI_DEV_REG4 = 132, PCI_DEV_REG5 = 136, PCI_CFG_REG_0 = 144, PCI_CFG_REG_1 = 148, PSM_CONFIG_REG0 = 152, PSM_CONFIG_REG1 = 156, PSM_CONFIG_REG2 = 352, PSM_CONFIG_REG3 = 356, PSM_CONFIG_REG4 = 360, PCI_LDO_CTRL = 188, }; enum csr_regs { B0_RAP = 0, B0_CTST = 4, B0_POWER_CTRL = 7, B0_ISRC = 8, B0_IMSK = 12, B0_HWE_ISRC = 16, B0_HWE_IMSK = 20, B0_Y2_SP_ISRC2 = 28, B0_Y2_SP_ISRC3 = 32, B0_Y2_SP_EISR = 36, B0_Y2_SP_LISR = 40, B0_Y2_SP_ICR = 44, B2_MAC_1 = 256, B2_MAC_2 = 264, B2_MAC_3 = 272, B2_CONN_TYP = 280, B2_PMD_TYP = 281, B2_MAC_CFG = 282, B2_CHIP_ID = 283, B2_E_0 = 284, B2_Y2_CLK_GATE = 285, B2_Y2_HW_RES = 286, B2_E_3 = 287, B2_Y2_CLK_CTRL = 288, B2_TI_INI = 304, B2_TI_VAL = 308, B2_TI_CTRL = 312, B2_TI_TEST = 313, B2_TST_CTRL1 = 344, B2_TST_CTRL2 = 345, B2_GP_IO = 348, B2_I2C_CTRL = 352, B2_I2C_DATA = 356, B2_I2C_IRQ = 360, B2_I2C_SW = 364, Y2_PEX_PHY_DATA = 368, Y2_PEX_PHY_ADDR = 370, B3_RAM_ADDR = 384, B3_RAM_DATA_LO = 388, B3_RAM_DATA_HI = 392, B3_RI_WTO_R1 = 400, B3_RI_WTO_XA1 = 401, B3_RI_WTO_XS1 = 402, B3_RI_RTO_R1 = 403, B3_RI_RTO_XA1 = 404, B3_RI_RTO_XS1 = 405, B3_RI_WTO_R2 = 406, B3_RI_WTO_XA2 = 407, B3_RI_WTO_XS2 = 408, B3_RI_RTO_R2 = 409, B3_RI_RTO_XA2 = 410, B3_RI_RTO_XS2 = 411, B3_RI_TO_VAL = 412, B3_RI_CTRL = 416, B3_RI_TEST = 418, B3_MA_TOINI_RX1 = 432, B3_MA_TOINI_RX2 = 433, B3_MA_TOINI_TX1 = 434, B3_MA_TOINI_TX2 = 435, B3_MA_TOVAL_RX1 = 436, B3_MA_TOVAL_RX2 = 437, B3_MA_TOVAL_TX1 = 438, B3_MA_TOVAL_TX2 = 439, B3_MA_TO_CTRL = 440, B3_MA_TO_TEST = 442, B3_MA_RCINI_RX1 = 448, B3_MA_RCINI_RX2 = 449, B3_MA_RCINI_TX1 = 450, B3_MA_RCINI_TX2 = 451, B3_MA_RCVAL_RX1 = 452, B3_MA_RCVAL_RX2 = 453, B3_MA_RCVAL_TX1 = 454, B3_MA_RCVAL_TX2 = 455, B3_MA_RC_CTRL = 456, B3_MA_RC_TEST = 458, B3_PA_TOINI_RX1 = 464, B3_PA_TOINI_RX2 = 468, B3_PA_TOINI_TX1 = 472, B3_PA_TOINI_TX2 = 476, B3_PA_TOVAL_RX1 = 480, B3_PA_TOVAL_RX2 = 484, B3_PA_TOVAL_TX1 = 488, B3_PA_TOVAL_TX2 = 492, B3_PA_CTRL = 496, B3_PA_TEST = 498, Y2_CFG_SPC = 7168, Y2_CFG_AER = 7424, }; enum { Y2_VMAIN_AVAIL = 131072, Y2_VAUX_AVAIL = 65536, Y2_HW_WOL_ON = 32768, Y2_HW_WOL_OFF = 16384, Y2_ASF_ENABLE = 8192, Y2_ASF_DISABLE = 4096, Y2_CLK_RUN_ENA = 2048, Y2_CLK_RUN_DIS = 1024, Y2_LED_STAT_ON = 512, Y2_LED_STAT_OFF = 256, CS_ST_SW_IRQ = 128, CS_CL_SW_IRQ = 64, CS_STOP_DONE = 32, CS_STOP_MAST = 16, CS_MRST_CLR = 8, CS_MRST_SET = 4, CS_RST_CLR = 2, CS_RST_SET = 1, }; enum { CFG_CHIP_R_MSK = 240, CFG_DIS_M2_CLK = 2, CFG_SNG_MAC = 1, }; enum { CHIP_ID_YUKON_XL = 179, CHIP_ID_YUKON_EC_U = 180, CHIP_ID_YUKON_EX = 181, CHIP_ID_YUKON_EC = 182, CHIP_ID_YUKON_FE = 183, CHIP_ID_YUKON_FE_P = 184, CHIP_ID_YUKON_SUPR = 185, CHIP_ID_YUKON_UL_2 = 186, CHIP_ID_YUKON_OPT = 188, CHIP_ID_YUKON_PRM = 189, CHIP_ID_YUKON_OP_2 = 190, }; enum yukon_xl_rev { CHIP_REV_YU_XL_A0 = 0, CHIP_REV_YU_XL_A1 = 1, CHIP_REV_YU_XL_A2 = 2, CHIP_REV_YU_XL_A3 = 3, }; enum yukon_ex_rev { CHIP_REV_YU_EX_A0 = 1, CHIP_REV_YU_EX_B0 = 2, }; enum yukon_ec_rev { CHIP_REV_YU_EC_A1 = 0, CHIP_REV_YU_EC_A2 = 1, CHIP_REV_YU_EC_A3 = 2, }; enum yukon_fe_p_rev { CHIP_REV_YU_FE2_A0 = 0, }; enum yukon_supr_rev { CHIP_REV_YU_SU_A0 = 0, CHIP_REV_YU_SU_B0 = 1, CHIP_REV_YU_SU_B1 = 3, }; enum { CFG_LED_MODE_MSK = 28, CFG_LINK_2_AVAIL = 2, CFG_LINK_1_AVAIL = 1, }; enum { Y2_STATUS_LNK2_INAC = 128, Y2_CLK_GAT_LNK2_DIS = 64, Y2_COR_CLK_LNK2_DIS = 32, Y2_PCI_CLK_LNK2_DIS = 16, Y2_STATUS_LNK1_INAC = 8, Y2_CLK_GAT_LNK1_DIS = 4, Y2_COR_CLK_LNK1_DIS = 2, Y2_PCI_CLK_LNK1_DIS = 1, }; enum { Y2_IS_TIST_OV = 536870912, Y2_IS_SENSOR = 268435456, Y2_IS_MST_ERR = 134217728, Y2_IS_IRQ_STAT = 67108864, Y2_IS_PCI_EXP = 33554432, Y2_IS_PCI_NEXP = 16777216, Y2_IS_PAR_RD2 = 8192, Y2_IS_PAR_WR2 = 4096, Y2_IS_PAR_MAC2 = 2048, Y2_IS_PAR_RX2 = 1024, Y2_IS_TCP_TXS2 = 512, Y2_IS_TCP_TXA2 = 256, Y2_IS_PAR_RD1 = 32, Y2_IS_PAR_WR1 = 16, Y2_IS_PAR_MAC1 = 8, Y2_IS_PAR_RX1 = 4, Y2_IS_TCP_TXS1 = 2, Y2_IS_TCP_TXA1 = 1, Y2_HWE_L1_MASK = 63, Y2_HWE_L2_MASK = 16128, Y2_HWE_ALL_MASK = 738213695, }; enum { CPU_WDOG = 3656, CPU_CNTR = 3660, CPU_TIM = 3664, CPU_AHB_ADDR = 3668, CPU_AHB_WDATA = 3672, CPU_AHB_RDATA = 3676, HCU_MAP_BASE = 3680, CPU_AHB_CTRL = 3684, HCU_CCSR = 3688, HCU_HCSR = 3692, }; enum { HCU_CCSR_SMBALERT_MONITOR = 134217728, HCU_CCSR_CPU_SLEEP = 67108864, HCU_CCSR_CS_TO = 33554432, HCU_CCSR_WDOG = 16777216, HCU_CCSR_CLR_IRQ_HOST = 131072, HCU_CCSR_SET_IRQ_HCU = 65536, HCU_CCSR_AHB_RST = 512, HCU_CCSR_CPU_RST_MODE = 256, HCU_CCSR_SET_SYNC_CPU = 32, HCU_CCSR_CPU_CLK_DIVIDE_MSK = 24, HCU_CCSR_CPU_CLK_DIVIDE_BASE = 8, HCU_CCSR_OS_PRSNT = 4, HCU_CCSR_UC_STATE_MSK = 3, HCU_CCSR_UC_STATE_BASE = 1, HCU_CCSR_ASF_RESET = 0, HCU_CCSR_ASF_HALTED = 2, HCU_CCSR_ASF_RUNNING = 1, }; enum { B28_Y2_SMB_CONFIG = 3648, B28_Y2_SMB_CSD_REG = 3652, B28_Y2_ASF_IRQ_V_BASE = 3680, B28_Y2_ASF_STAT_CMD = 3688, B28_Y2_ASF_HOST_COM = 3692, B28_Y2_DATA_REG_1 = 3696, B28_Y2_DATA_REG_2 = 3700, B28_Y2_DATA_REG_3 = 3704, B28_Y2_DATA_REG_4 = 3708, }; enum { Y2_ASF_OS_PRES = 16, Y2_ASF_RESET = 8, Y2_ASF_RUNNING = 4, Y2_ASF_CLR_HSTI = 2, Y2_ASF_IRQ = 1, Y2_ASF_UC_STATE = 12, Y2_ASF_CLK_HALT = 0, }; enum { TST_FRC_DPERR_MR = 128, TST_FRC_DPERR_MW = 64, TST_FRC_DPERR_TR = 32, TST_FRC_DPERR_TW = 16, TST_FRC_APERR_M = 8, TST_FRC_APERR_T = 4, TST_CFG_WRITE_ON = 2, TST_CFG_WRITE_OFF = 1, }; enum { GMAC_CTRL = 3840, GPHY_CTRL = 3844, GMAC_IRQ_SRC = 3848, GMAC_IRQ_MSK = 3852, GMAC_LINK_CTRL = 3856, WOL_CTRL_STAT = 3872, WOL_MATCH_CTL = 3874, WOL_MATCH_RES = 3875, WOL_MAC_ADDR = 3876, WOL_PATT_RPTR = 3884, WOL_PATT_LEN_LO = 3888, WOL_PATT_LEN_HI = 3892, WOL_PATT_CNT_0 = 3896, WOL_PATT_CNT_4 = 3900, }; enum { GMLC_RST_CLR = 2, GMLC_RST_SET = 1, }; enum { GMC_SET_RST = 32768, GMC_SEC_RST_OFF = 16384, GMC_BYP_MACSECRX_ON = 8192, GMC_BYP_MACSECRX_OFF = 4096, GMC_BYP_MACSECTX_ON = 2048, GMC_BYP_MACSECTX_OFF = 1024, GMC_BYP_RETR_ON = 512, GMC_BYP_RETR_OFF = 256, GMC_H_BURST_ON = 128, GMC_H_BURST_OFF = 64, GMC_F_LOOPB_ON = 32, GMC_F_LOOPB_OFF = 16, GMC_PAUSE_ON = 8, GMC_PAUSE_OFF = 4, GMC_RST_CLR = 2, GMC_RST_SET = 1, }; enum pci_dev_reg_3 { P_CLK_ASF_REGS_DIS = 262144, P_CLK_COR_REGS_D0_DIS = 131072, P_CLK_MACSEC_DIS = 131072, P_CLK_PCI_REGS_D0_DIS = 65536, P_CLK_COR_YTB_ARB_DIS = 32768, P_CLK_MAC_LNK1_D3_DIS = 16384, P_CLK_COR_LNK1_D0_DIS = 8192, P_CLK_MAC_LNK1_D0_DIS = 4096, P_CLK_COR_LNK1_D3_DIS = 2048, P_CLK_PCI_MST_ARB_DIS = 1024, P_CLK_COR_REGS_D3_DIS = 512, P_CLK_PCI_REGS_D3_DIS = 256, P_CLK_REF_LNK1_GM_DIS = 128, P_CLK_COR_LNK1_GM_DIS = 64, P_CLK_PCI_COMMON_DIS = 32, P_CLK_COR_COMMON_DIS = 16, P_CLK_PCI_LNK1_BMU_DIS = 8, P_CLK_COR_LNK1_BMU_DIS = 4, P_CLK_PCI_LNK1_BIU_DIS = 2, P_CLK_COR_LNK1_BIU_DIS = 1, PCIE_OUR3_WOL_D3_COLD_SET = 406548, }; enum { PEX_RD_ACCESS = -2147483648, PEX_DB_ACCESS = 1073741824, }; enum { PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_MSK = 240, PSM_CONFIG_REG4_TIMER_PHY_LINK_DETECT_BASE = 4, PSM_CONFIG_REG4_DEBUG_TIMER = 2, PSM_CONFIG_REG4_RST_PHY_LINK_DETECT = 1, }; enum yukon_prm_rev { CHIP_REV_YU_PRM_Z1 = 1, CHIP_REV_YU_PRM_A0 = 2, }; enum { GPC_TX_PAUSE = 1073741824, GPC_RX_PAUSE = 536870912, GPC_SPEED = 402653184, GPC_LINK = 67108864, GPC_DUPLEX = 33554432, GPC_CLOCK = 16777216, GPC_PDOWN = 8388608, GPC_TSTMODE = 4194304, GPC_REG18 = 2097152, GPC_REG12SEL = 1572864, GPC_REG18SEL = 393216, GPC_SPILOCK = 65536, GPC_LEDMUX = 49152, GPC_INTPOL = 8192, GPC_DETECT = 4096, GPC_1000HD = 2048, GPC_SLAVE = 1024, GPC_PAUSE = 512, GPC_LEDCTL = 192, GPC_RST_CLR = 2, GPC_RST_SET = 1, }; enum { PHY_M_FC_AUTO_SEL = 32768, PHY_M_FC_AN_REG_ACC = 16384, PHY_M_FC_RESOLUTION = 8192, PHY_M_SER_IF_AN_BP = 4096, PHY_M_SER_IF_BP_ST = 2048, PHY_M_IRQ_POLARITY = 1024, PHY_M_DIS_AUT_MED = 512, PHY_M_UNDOC1 = 128, PHY_M_DTE_POW_STAT = 16, PHY_M_MODE_MASK = 15, }; enum { TIM_START = 4, TIM_STOP = 2, TIM_CLR_IRQ = 1, }; enum { B28_DPT_INI = 3584, B28_DPT_VAL = 3588, B28_DPT_CTRL = 3592, B28_DPT_TST = 3594, }; enum { DPT_START = 2, DPT_STOP = 1, }; enum { GMAC_TI_ST_VAL = 3604, GMAC_TI_ST_CTRL = 3608, GMAC_TI_ST_TST = 3610, }; enum { GMT_ST_START = 4, GMT_ST_STOP = 2, GMT_ST_CLR_IRQ = 1, }; enum { TXA_ITI_INI = 512, TXA_ITI_VAL = 516, TXA_LIM_INI = 520, TXA_LIM_VAL = 524, TXA_CTRL = 528, TXA_TEST = 529, TXA_STAT = 530, RSS_KEY = 544, RSS_CFG = 584, }; enum { TXA_ENA_FSYNC = 128, TXA_DIS_FSYNC = 64, TXA_ENA_ALLOC = 32, TXA_DIS_ALLOC = 16, TXA_START_RC = 8, TXA_STOP_RC = 4, TXA_ENA_ARB = 2, TXA_DIS_ARB = 1, }; enum { RI_CLR_RD_PERR = 512, RI_CLR_WR_PERR = 256, RI_RST_CLR = 2, RI_RST_SET = 1, }; enum { STAT_CTRL = 3712, STAT_LAST_IDX = 3716, STAT_LIST_ADDR_LO = 3720, STAT_LIST_ADDR_HI = 3724, STAT_TXA1_RIDX = 3728, STAT_TXS1_RIDX = 3730, STAT_TXA2_RIDX = 3732, STAT_TXS2_RIDX = 3734, STAT_TX_IDX_TH = 3736, STAT_PUT_IDX = 3740, STAT_FIFO_WP = 3744, STAT_FIFO_RP = 3748, STAT_FIFO_RSP = 3750, STAT_FIFO_LEVEL = 3752, STAT_FIFO_SHLVL = 3754, STAT_FIFO_WM = 3756, STAT_FIFO_ISR_WM = 3757, STAT_LEV_TIMER_INI = 3760, STAT_LEV_TIMER_CNT = 3764, STAT_LEV_TIMER_CTRL = 3768, STAT_LEV_TIMER_TEST = 3769, STAT_TX_TIMER_INI = 3776, STAT_TX_TIMER_CNT = 3780, STAT_TX_TIMER_CTRL = 3784, STAT_TX_TIMER_TEST = 3785, STAT_ISR_TIMER_INI = 3792, STAT_ISR_TIMER_CNT = 3796, STAT_ISR_TIMER_CTRL = 3800, STAT_ISR_TIMER_TEST = 3801, }; enum { SC_STAT_CLR_IRQ = 16, SC_STAT_OP_ON = 8, SC_STAT_OP_OFF = 4, SC_STAT_RST_CLR = 2, SC_STAT_RST_SET = 1, }; enum { PC_VAUX_ENA = 128, PC_VAUX_DIS = 64, PC_VCC_ENA = 32, PC_VCC_DIS = 16, PC_VAUX_ON = 8, PC_VAUX_OFF = 4, PC_VCC_ON = 2, PC_VCC_OFF = 1, }; enum { Y2_CLK_DIV_VAL_MSK = 16711680, Y2_CLK_DIV_VAL2_MSK = 14680064, Y2_CLK_SELECT2_MSK = 2031616, Y2_CLK_DIV_ENA = 2, Y2_CLK_DIV_DIS = 1, }; enum pci_dev_reg_4 { P_PEX_LTSSM_STAT_MSK = 4261412864, P_PEX_LTSSM_L1_STAT = 52, P_PEX_LTSSM_DET_STAT = 1, P_TIMER_VALUE_MSK = 16711680, P_FORCE_ASPM_REQUEST = 32768, P_ASPM_GPHY_LINK_DOWN = 16384, P_ASPM_INT_FIFO_EMPTY = 8192, P_ASPM_CLKRUN_REQUEST = 4096, P_ASPM_FORCE_CLKREQ_ENA = 16, P_ASPM_CLKREQ_PAD_CTL = 8, P_ASPM_A1_MODE_SELECT = 4, P_CLK_GATE_PEX_UNIT_ENA = 2, P_CLK_GATE_ROOT_COR_ENA = 1, P_ASPM_CONTROL_MSK = 61440, }; enum pci_dev_reg_5 { P_CTL_DIV_CORE_CLK_ENA = -2147483648, P_CTL_SRESET_VMAIN_AV = 1073741824, P_CTL_BYPASS_VMAIN_AV = 536870912, P_CTL_TIM_VMAIN_AV_MSK = 402653184, P_REL_PCIE_RST_DE_ASS = 67108864, P_REL_GPHY_REC_PACKET = 33554432, P_REL_INT_FIFO_N_EMPTY = 16777216, P_REL_MAIN_PWR_AVAIL = 8388608, P_REL_CLKRUN_REQ_REL = 4194304, P_REL_PCIE_RESET_ASS = 2097152, P_REL_PME_ASSERTED = 1048576, P_REL_PCIE_EXIT_L1_ST = 524288, P_REL_LOADER_NOT_FIN = 262144, P_REL_PCIE_RX_EX_IDLE = 131072, P_REL_GPHY_LINK_UP = 65536, P_GAT_PCIE_RST_ASSERTED = 1024, P_GAT_GPHY_N_REC_PACKET = 512, P_GAT_INT_FIFO_EMPTY = 256, P_GAT_MAIN_PWR_N_AVAIL = 128, P_GAT_CLKRUN_REQ_REL = 64, P_GAT_PCIE_RESET_ASS = 32, P_GAT_PME_DE_ASSERTED = 16, P_GAT_PCIE_ENTER_L1_ST = 8, P_GAT_LOADER_FINISHED = 4, P_GAT_PCIE_RX_EL_IDLE = 2, P_GAT_GPHY_LINK_DOWN = 1, PCIE_OUR5_EVENT_CLK_D3_SET = 50987786, }; enum { GLB_GPIO_CLK_DEB_ENA = -2147483648, GLB_GPIO_CLK_DBG_MSK = 1006632960, GLB_GPIO_INT_RST_D3_DIS = 32768, GLB_GPIO_LED_PAD_SPEED_UP = 16384, GLB_GPIO_STAT_RACE_DIS = 8192, GLB_GPIO_TEST_SEL_MSK = 6144, GLB_GPIO_TEST_SEL_BASE = 2048, GLB_GPIO_RAND_ENA = 1024, GLB_GPIO_RAND_BIT_1 = 512, }; enum { GM_GP_STAT = 0, GM_GP_CTRL = 4, GM_TX_CTRL = 8, GM_RX_CTRL = 12, GM_TX_FLOW_CTRL = 16, GM_TX_PARAM = 20, GM_SERIAL_MODE = 24, GM_SRC_ADDR_1L = 28, GM_SRC_ADDR_1M = 32, GM_SRC_ADDR_1H = 36, GM_SRC_ADDR_2L = 40, GM_SRC_ADDR_2M = 44, GM_SRC_ADDR_2H = 48, GM_MC_ADDR_H1 = 52, GM_MC_ADDR_H2 = 56, GM_MC_ADDR_H3 = 60, GM_MC_ADDR_H4 = 64, GM_TX_IRQ_SRC = 68, GM_RX_IRQ_SRC = 72, GM_TR_IRQ_SRC = 76, GM_TX_IRQ_MSK = 80, GM_RX_IRQ_MSK = 84, GM_TR_IRQ_MSK = 88, GM_SMI_CTRL = 128, GM_SMI_DATA = 132, GM_PHY_ADDR = 136, GM_MIB_CNT_BASE = 256, GM_MIB_CNT_END = 604, }; enum { GM_RXCR_UCF_ENA = 32768, GM_RXCR_MCF_ENA = 16384, GM_RXCR_CRC_DIS = 8192, GM_RXCR_PASS_FC = 4096, }; enum { BASE_GMAC_1 = 10240, BASE_GMAC_2 = 14336, }; enum flow_control { FC_NONE = 0, FC_TX = 1, FC_RX = 2, FC_BOTH = 3, }; enum { PHY_MARV_CTRL = 0, PHY_MARV_STAT = 1, PHY_MARV_ID0 = 2, PHY_MARV_ID1 = 3, PHY_MARV_AUNE_ADV = 4, PHY_MARV_AUNE_LP = 5, PHY_MARV_AUNE_EXP = 6, PHY_MARV_NEPG = 7, PHY_MARV_NEPG_LP = 8, PHY_MARV_1000T_CTRL = 9, PHY_MARV_1000T_STAT = 10, PHY_MARV_EXT_STAT = 15, PHY_MARV_PHY_CTRL = 16, PHY_MARV_PHY_STAT = 17, PHY_MARV_INT_MASK = 18, PHY_MARV_INT_STAT = 19, PHY_MARV_EXT_CTRL = 20, PHY_MARV_RXE_CNT = 21, PHY_MARV_EXT_ADR = 22, PHY_MARV_PORT_IRQ = 23, PHY_MARV_LED_CTRL = 24, PHY_MARV_LED_OVER = 25, PHY_MARV_EXT_CTRL_2 = 26, PHY_MARV_EXT_P_STAT = 27, PHY_MARV_CABLE_DIAG = 28, PHY_MARV_PAGE_ADDR = 29, PHY_MARV_PAGE_DATA = 30, PHY_MARV_FE_LED_PAR = 22, PHY_MARV_FE_LED_SER = 23, PHY_MARV_FE_VCT_TX = 26, PHY_MARV_FE_VCT_RX = 27, PHY_MARV_FE_SPEC_2 = 28, }; enum { PHY_M_EC_ENA_BC_EXT = 32768, PHY_M_EC_ENA_LIN_LB = 16384, PHY_M_EC_DIS_LINK_P = 4096, PHY_M_EC_M_DSC_MSK = 3072, PHY_M_EC_S_DSC_MSK = 768, PHY_M_EC_M_DSC_MSK2 = 3584, PHY_M_EC_DOWN_S_ENA = 256, PHY_M_EC_RX_TIM_CT = 128, PHY_M_EC_MAC_S_MSK = 112, PHY_M_EC_FIB_AN_ENA = 8, PHY_M_EC_DTE_D_ENA = 4, PHY_M_EC_TX_TIM_CT = 2, PHY_M_EC_TRANS_DIS = 1, PHY_M_10B_TE_ENABLE = 128, }; enum { MAC_TX_CLK_0_MHZ = 2, MAC_TX_CLK_2_5_MHZ = 6, MAC_TX_CLK_25_MHZ = 7, }; enum { PHY_M_PC_MAN_MDI = 0, PHY_M_PC_MAN_MDIX = 1, PHY_M_PC_ENA_AUTO = 3, }; enum { PHY_M_PC_TX_FFD_MSK = 49152, PHY_M_PC_RX_FFD_MSK = 12288, PHY_M_PC_ASS_CRS_TX = 2048, PHY_M_PC_FL_GOOD = 1024, PHY_M_PC_EN_DET_MSK = 768, PHY_M_PC_ENA_EXT_D = 128, PHY_M_PC_MDIX_MSK = 96, PHY_M_PC_DIS_125CLK = 16, PHY_M_PC_MAC_POW_UP = 8, PHY_M_PC_SQE_T_ENA = 4, PHY_M_PC_POL_R_DIS = 2, PHY_M_PC_DIS_JABBER = 1, }; enum { PHY_M_FESC_DIS_WAIT = 4, PHY_M_FESC_ENA_MCLK = 2, PHY_M_FESC_SEL_CL_A = 1, }; enum { PHY_M_PC_DIS_LINK_Pa = 32768, PHY_M_PC_DSC_MSK = 28672, PHY_M_PC_DOWN_S_ENA = 2048, }; enum { PHY_M_MAC_MD_MSK = 896, PHY_M_MAC_GMIF_PUP = 8, PHY_M_MAC_MD_AUTO = 3, PHY_M_MAC_MD_COPPER = 5, PHY_M_MAC_MD_1000BX = 7, }; enum { PHY_M_FIB_FORCE_LNK = 1024, PHY_M_FIB_SIGD_POL = 512, PHY_M_FIB_TX_DIS = 8, }; enum { PHY_CT_RESET = 32768, PHY_CT_LOOP = 16384, PHY_CT_SPS_LSB = 8192, PHY_CT_ANE = 4096, PHY_CT_PDOWN = 2048, PHY_CT_ISOL = 1024, PHY_CT_RE_CFG = 512, PHY_CT_DUP_MD = 256, PHY_CT_COL_TST = 128, PHY_CT_SPS_MSB = 64, }; enum { PHY_AN_NXT_PG = 32768, PHY_AN_ACK = 16384, PHY_AN_RF = 8192, PHY_AN_PAUSE_ASYM = 2048, PHY_AN_PAUSE_CAP = 1024, PHY_AN_100BASE4 = 512, PHY_AN_100FULL = 256, PHY_AN_100HALF = 128, PHY_AN_10FULL = 64, PHY_AN_10HALF = 32, PHY_AN_CSMA = 1, PHY_AN_SEL = 31, PHY_AN_FULL = 321, PHY_AN_ALL = 480, }; enum { PHY_M_1000C_TEST = 57344, PHY_M_1000C_MSE = 4096, PHY_M_1000C_MSC = 2048, PHY_M_1000C_MPD = 1024, PHY_M_1000C_AFD = 512, PHY_M_1000C_AHD = 256, }; enum { PHY_M_AN_NXT_PG = 32768, PHY_M_AN_ACK = 16384, PHY_M_AN_RF = 8192, PHY_M_AN_ASP = 2048, PHY_M_AN_PC = 1024, PHY_M_AN_100_T4 = 512, PHY_M_AN_100_FD = 256, PHY_M_AN_100_HD = 128, PHY_M_AN_10_FD = 64, PHY_M_AN_10_HD = 32, PHY_M_AN_SEL_MSK = 496, }; enum { PHY_M_AN_ASP_X = 256, PHY_M_AN_PC_X = 128, PHY_M_AN_1000X_AHD = 64, PHY_M_AN_1000X_AFD = 32, }; enum { GM_GPCR_PROM_ENA = 16384, GM_GPCR_FC_TX_DIS = 8192, GM_GPCR_TX_ENA = 4096, GM_GPCR_RX_ENA = 2048, GM_GPCR_BURST_ENA = 1024, GM_GPCR_LOOP_ENA = 512, GM_GPCR_PART_ENA = 256, GM_GPCR_GIGS_ENA = 128, GM_GPCR_FL_PASS = 64, GM_GPCR_DUP_FULL = 32, GM_GPCR_FC_RX_DIS = 16, GM_GPCR_SPEED_100 = 8, GM_GPCR_AU_DUP_DIS = 4, GM_GPCR_AU_FCT_DIS = 2, GM_GPCR_AU_SPD_DIS = 1, }; enum { PHY_CT_SP1000 = 64, PHY_CT_SP100 = 8192, PHY_CT_SP10 = 0, }; enum { PULS_NO_STR = 0, PULS_21MS = 1, PULS_42MS = 2, PULS_84MS = 3, PULS_170MS = 4, PULS_340MS = 5, PULS_670MS = 6, PULS_1300MS = 7, }; enum { PHY_M_LEDC_DIS_LED = 32768, PHY_M_LEDC_PULS_MSK = 28672, PHY_M_LEDC_F_INT = 2048, PHY_M_LEDC_BL_R_MSK = 1792, PHY_M_LEDC_DP_C_LSB = 128, PHY_M_LEDC_TX_C_LSB = 64, PHY_M_LEDC_LK_C_MSK = 56, }; enum { BLINK_42MS = 0, BLINK_84MS = 1, BLINK_170MS = 2, BLINK_340MS = 3, BLINK_670MS = 4, }; enum { PHY_M_FELP_LED2_MSK = 3840, PHY_M_FELP_LED1_MSK = 240, PHY_M_FELP_LED0_MSK = 15, }; enum { LED_PAR_CTRL_COLX = 0, LED_PAR_CTRL_ERROR = 1, LED_PAR_CTRL_DUPLEX = 2, LED_PAR_CTRL_DP_COL = 3, LED_PAR_CTRL_SPEED = 4, LED_PAR_CTRL_LINK = 5, LED_PAR_CTRL_TX = 6, LED_PAR_CTRL_RX = 7, LED_PAR_CTRL_ACT = 8, LED_PAR_CTRL_LNK_RX = 9, LED_PAR_CTRL_LNK_AC = 10, LED_PAR_CTRL_ACT_BL = 11, LED_PAR_CTRL_TX_BL = 12, LED_PAR_CTRL_RX_BL = 13, LED_PAR_CTRL_COL_BL = 14, LED_PAR_CTRL_INACT = 15, }; enum { PHY_M_PC_ENA_DTE_DT = 32768, PHY_M_PC_ENA_ENE_DT = 16384, PHY_M_PC_DIS_NLP_CK = 8192, PHY_M_PC_ENA_LIP_NP = 4096, PHY_M_PC_DIS_NLP_GN = 2048, PHY_M_PC_DIS_SCRAMB = 512, PHY_M_PC_DIS_FEFI = 256, PHY_M_PC_SH_TP_SEL = 64, PHY_M_PC_RX_FD_MSK = 12, }; enum { PHY_M_LEDC_LOS_MSK = 61440, PHY_M_LEDC_INIT_MSK = 3840, PHY_M_LEDC_STA1_MSK = 240, PHY_M_LEDC_STA0_MSK = 15, }; enum { PHY_M_POLC_LS1M_MSK = 61440, PHY_M_POLC_IS0M_MSK = 3840, PHY_M_POLC_LOS_MSK = 192, PHY_M_POLC_INIT_MSK = 48, PHY_M_POLC_STA1_MSK = 12, PHY_M_POLC_STA0_MSK = 3, }; enum { PHY_M_LEDC_LINK_MSK = 24, PHY_M_LEDC_DP_CTRL = 4, PHY_M_LEDC_DP_C_MSB = 4, PHY_M_LEDC_RX_CTRL = 2, PHY_M_LEDC_TX_CTRL = 1, PHY_M_LEDC_TX_C_MSB = 1, }; enum led_mode { MO_LED_NORM = 0, MO_LED_BLINK = 1, MO_LED_OFF = 2, MO_LED_ON = 3, }; enum { PHY_M_IS_AN_ERROR = 32768, PHY_M_IS_LSP_CHANGE = 16384, PHY_M_IS_DUP_CHANGE = 8192, PHY_M_IS_AN_PR = 4096, PHY_M_IS_AN_COMPL = 2048, PHY_M_IS_LST_CHANGE = 1024, PHY_M_IS_SYMB_ERROR = 512, PHY_M_IS_FALSE_CARR = 256, PHY_M_IS_FIFO_ERROR = 128, PHY_M_IS_MDI_CHANGE = 64, PHY_M_IS_DOWNSH_DET = 32, PHY_M_IS_END_CHANGE = 16, PHY_M_IS_DTE_CHANGE = 4, PHY_M_IS_POL_CHANGE = 2, PHY_M_IS_JABBER = 1, PHY_M_DEF_MSK = 25600, PHY_M_AN_MSK = 34816, }; enum { PHY_ADDR_MARV = 0, }; enum { GM_SMI_CT_PHY_A_MSK = 63488, GM_SMI_CT_REG_A_MSK = 1984, GM_SMI_CT_OP_RD = 32, GM_SMI_CT_RD_VAL = 16, GM_SMI_CT_BUSY = 8, }; enum pci_dev_reg_2 { PCI_VPD_WR_THR = 4278190080, PCI_DEV_SEL = 16646144, PCI_VPD_ROM_SZ = 114688, PCI_PATCH_DIR = 3840, PCI_EXT_PATCHS = 240, PCI_EN_DUMMY_RD = 8, PCI_REV_DESC = 4, PCI_USEDATA64 = 1, }; enum { B8_Q_REGS = 1024, Q_D = 0, Q_VLAN = 32, Q_DONE = 36, Q_AC_L = 40, Q_AC_H = 44, Q_BC = 48, Q_CSR = 52, Q_TEST = 56, Q_WM = 64, Q_AL = 66, Q_RSP = 68, Q_RSL = 70, Q_RP = 72, Q_RL = 74, Q_WP = 76, Q_WSP = 77, Q_WL = 78, Q_WSL = 79, }; enum { BMU_IDLE = -2147483648, BMU_RX_TCP_PKT = 1073741824, BMU_RX_IP_PKT = 536870912, BMU_ENA_RX_RSS_HASH = 32768, BMU_DIS_RX_RSS_HASH = 16384, BMU_ENA_RX_CHKSUM = 8192, BMU_DIS_RX_CHKSUM = 4096, BMU_CLR_IRQ_PAR = 2048, BMU_CLR_IRQ_TCP = 2048, BMU_CLR_IRQ_CHK = 1024, BMU_STOP = 512, BMU_START = 256, BMU_FIFO_OP_ON = 128, BMU_FIFO_OP_OFF = 64, BMU_FIFO_ENA = 32, BMU_FIFO_RST = 16, BMU_OP_ON = 8, BMU_OP_OFF = 4, BMU_RST_CLR = 2, BMU_RST_SET = 1, BMU_CLR_RESET = 22, BMU_OPER_INIT = 3368, BMU_WM_DEFAULT = 1536, BMU_WM_PEX = 128, }; enum { B6_EXT_REG = 768, B7_CFG_SPC = 896, B8_RQ1_REGS = 1024, B8_RQ2_REGS = 1152, B8_TS1_REGS = 1536, B8_TA1_REGS = 1664, B8_TS2_REGS = 1792, B8_TA2_REGS = 1920, B16_RAM_REGS = 2048, }; enum { RB_START = 0, RB_END = 4, RB_WP = 8, RB_RP = 12, RB_RX_UTPP = 16, RB_RX_LTPP = 20, RB_RX_UTHP = 24, RB_RX_LTHP = 28, RB_PC = 32, RB_LEV = 36, RB_CTRL = 40, RB_TST1 = 41, RB_TST2 = 42, }; enum { RB_ENA_STFWD = 32, RB_DIS_STFWD = 16, RB_ENA_OP_MD = 8, RB_DIS_OP_MD = 4, RB_RST_CLR = 2, RB_RST_SET = 1, }; enum { LNK_SYNC_INI = 3120, LNK_SYNC_VAL = 3124, LNK_SYNC_CTRL = 3128, LNK_SYNC_TST = 3129, LNK_LED_REG = 3132, RX_GMF_EA = 3136, RX_GMF_AF_THR = 3140, RX_GMF_CTRL_T = 3144, RX_GMF_FL_MSK = 3148, RX_GMF_FL_THR = 3152, RX_GMF_FL_CTRL = 3154, RX_GMF_TR_THR = 3156, RX_GMF_UP_THR = 3160, RX_GMF_LP_THR = 3162, RX_GMF_VLAN = 3164, RX_GMF_WP = 3168, RX_GMF_WLEV = 3176, RX_GMF_RP = 3184, RX_GMF_RLEV = 3192, }; enum { RX_GCLKMAC_ENA = -2147483648, RX_GCLKMAC_OFF = 1073741824, RX_STFW_DIS = 536870912, RX_STFW_ENA = 268435456, RX_TRUNC_ON = 134217728, RX_TRUNC_OFF = 67108864, RX_VLAN_STRIP_ON = 33554432, RX_VLAN_STRIP_OFF = 16777216, RX_MACSEC_FLUSH_ON = 8388608, RX_MACSEC_FLUSH_OFF = 4194304, RX_MACSEC_ASF_FLUSH_ON = 2097152, RX_MACSEC_ASF_FLUSH_OFF = 1048576, GMF_RX_OVER_ON = 524288, GMF_RX_OVER_OFF = 262144, GMF_ASF_RX_OVER_ON = 131072, GMF_ASF_RX_OVER_OFF = 65536, GMF_WP_TST_ON = 16384, GMF_WP_TST_OFF = 8192, GMF_WP_STEP = 4096, GMF_RP_TST_ON = 1024, GMF_RP_TST_OFF = 512, GMF_RP_STEP = 256, GMF_RX_F_FL_ON = 128, GMF_RX_F_FL_OFF = 64, GMF_CLI_RX_FO = 32, GMF_CLI_RX_C = 16, GMF_OPER_ON = 8, GMF_OPER_OFF = 4, GMF_RST_CLR = 2, GMF_RST_SET = 1, RX_GMF_FL_THR_DEF = 10, GMF_RX_CTRL_DEF = 136, }; enum { Y2_B8_PREF_REGS = 1104, PREF_UNIT_CTRL = 0, PREF_UNIT_LAST_IDX = 4, PREF_UNIT_ADDR_LO = 8, PREF_UNIT_ADDR_HI = 12, PREF_UNIT_GET_IDX = 16, PREF_UNIT_PUT_IDX = 20, PREF_UNIT_FIFO_WP = 32, PREF_UNIT_FIFO_RP = 36, PREF_UNIT_FIFO_WM = 40, PREF_UNIT_FIFO_LEV = 44, PREF_UNIT_MASK_IDX = 4095, }; enum { PREF_UNIT_OP_ON = 8, PREF_UNIT_OP_OFF = 4, PREF_UNIT_RST_CLR = 2, PREF_UNIT_RST_SET = 1, }; enum { PHY_M_PC_COP_TX_DIS = 8, PHY_M_PC_POW_D_ENA = 4, }; enum { TX_GMF_EA = 3392, TX_GMF_AE_THR = 3396, TX_GMF_CTRL_T = 3400, TX_GMF_WP = 3424, TX_GMF_WSP = 3428, TX_GMF_WLEV = 3432, TX_GMF_RP = 3440, TX_GMF_RSTP = 3444, TX_GMF_RLEV = 3448, ECU_AE_THR = 112, ECU_TXFF_LEV = 416, ECU_JUMBO_WM = 128, }; enum { Y2_IS_HW_ERR = -2147483648, Y2_IS_STAT_BMU = 1073741824, Y2_IS_ASF = 536870912, Y2_IS_CPU_TO = 268435456, Y2_IS_POLL_CHK = 134217728, Y2_IS_TWSI_RDY = 67108864, Y2_IS_IRQ_SW = 33554432, Y2_IS_TIMINT = 16777216, Y2_IS_IRQ_PHY2 = 4096, Y2_IS_IRQ_MAC2 = 2048, Y2_IS_CHK_RX2 = 1024, Y2_IS_CHK_TXS2 = 512, Y2_IS_CHK_TXA2 = 256, Y2_IS_PSM_ACK = 128, Y2_IS_PTP_TIST = 64, Y2_IS_PHY_QLNK = 32, Y2_IS_IRQ_PHY1 = 16, Y2_IS_IRQ_MAC1 = 8, Y2_IS_CHK_RX1 = 4, Y2_IS_CHK_TXS1 = 2, Y2_IS_CHK_TXA1 = 1, Y2_IS_BASE = -1073741824, Y2_IS_PORT_1 = 29, Y2_IS_PORT_2 = 7424, Y2_IS_ERROR = -2147480307, }; enum { Q_R1 = 0, Q_R2 = 128, Q_XS1 = 512, Q_XA1 = 640, Q_XS2 = 768, Q_XA2 = 896, }; enum { F_TX_CHK_AUTO_OFF = -2147483648, F_TX_CHK_AUTO_ON = 1073741824, F_M_RX_RAM_DIS = 16777216, }; enum yukon_ec_u_rev { CHIP_REV_YU_EC_U_A0 = 1, CHIP_REV_YU_EC_U_A1 = 2, CHIP_REV_YU_EC_U_B0 = 3, CHIP_REV_YU_EC_U_B1 = 5, }; enum { HW_OWNER = 128, OP_TCPWRITE = 17, OP_TCPSTART = 18, OP_TCPINIT = 20, OP_TCPLCK = 24, OP_TCPCHKSUM = 18, OP_TCPIS = 22, OP_TCPLW = 25, OP_TCPLSW = 27, OP_TCPLISW = 31, OP_ADDR64 = 33, OP_VLAN = 34, OP_ADDR64VLAN = 35, OP_LRGLEN = 36, OP_LRGLENVLAN = 38, OP_MSS = 40, OP_MSSVLAN = 42, OP_BUFFER = 64, OP_PACKET = 65, OP_LARGESEND = 67, OP_LSOV2 = 69, OP_RXSTAT = 96, OP_RXTIMESTAMP = 97, OP_RXVLAN = 98, OP_RXCHKS = 100, OP_RXCHKSVLAN = 102, OP_RXTIMEVLAN = 99, OP_RSS_HASH = 101, OP_TXINDEXLE = 104, OP_MACSEC = 108, OP_PUTIDX = 112, }; enum { PHY_MARV_ID0_VAL = 321, PHY_BCOM_ID1_A1 = 24641, PHY_BCOM_ID1_B2 = 24643, PHY_BCOM_ID1_C0 = 24644, PHY_BCOM_ID1_C5 = 24647, PHY_MARV_ID1_B0 = 3107, PHY_MARV_ID1_B2 = 3109, PHY_MARV_ID1_C2 = 3266, PHY_MARV_ID1_Y2 = 3217, PHY_MARV_ID1_FE = 3203, PHY_MARV_ID1_ECU = 3248, }; enum { GM_IS_TX_CO_OV = 32, GM_IS_RX_CO_OV = 16, GM_IS_TX_FF_UR = 8, GM_IS_TX_COMPL = 4, GM_IS_RX_FF_OR = 2, GM_IS_RX_COMPL = 1, }; enum { GM_PAR_MIB_CLR = 32, GM_PAR_MIB_TST = 16, }; enum { GM_TXCR_FORCE_JAM = 32768, GM_TXCR_CRC_DIS = 16384, GM_TXCR_PAD_DIS = 8192, GM_TXCR_COL_THR_MSK = 7168, }; enum { GM_TXPA_JAMLEN_MSK = 49152, GM_TXPA_JAMIPG_MSK = 15872, GM_TXPA_JAMDAT_MSK = 496, GM_TXPA_BO_LIM_MSK = 15, TX_JAM_LEN_DEF = 3, TX_JAM_IPG_DEF = 11, TX_IPG_JAM_DEF = 28, TX_BOF_LIM_DEF = 4, }; enum { GM_SMOD_DATABL_MSK = 63488, GM_SMOD_LIMIT_4 = 1024, GM_SMOD_VLAN_ENA = 512, GM_SMOD_JUMBO_ENA = 256, GM_NEW_FLOW_CTRL = 64, GM_SMOD_IPG_MSK = 31, }; enum { GMR_FS_LEN = 2147418112, GMR_FS_VLAN = 8192, GMR_FS_JABBER = 4096, GMR_FS_UN_SIZE = 2048, GMR_FS_MC = 1024, GMR_FS_BC = 512, GMR_FS_RX_OK = 256, GMR_FS_GOOD_FC = 128, GMR_FS_BAD_FC = 64, GMR_FS_MII_ERR = 32, GMR_FS_LONG_ERR = 16, GMR_FS_FRAGMENT = 8, GMR_FS_CRC_ERR = 2, GMR_FS_RX_FF_OV = 1, GMR_FS_ANY_ERR = 6267, }; enum { TX_DYN_WM_ENA = 3, }; enum { TX_STFW_DIS = -2147483648, TX_STFW_ENA = 1073741824, TX_VLAN_TAG_ON = 33554432, TX_VLAN_TAG_OFF = 16777216, TX_PCI_JUM_ENA = 8388608, TX_PCI_JUM_DIS = 4194304, GMF_WSP_TST_ON = 262144, GMF_WSP_TST_OFF = 131072, GMF_WSP_STEP = 65536, GMF_CLI_TX_FU = 64, GMF_CLI_TX_FC = 32, GMF_CLI_TX_PE = 16, }; enum { RX_IPV6_SA_MOB_ENA = 512, RX_IPV6_SA_MOB_DIS = 256, RX_IPV6_DA_MOB_ENA = 128, RX_IPV6_DA_MOB_DIS = 64, RX_PTR_SYNCDLY_ENA = 32, RX_PTR_SYNCDLY_DIS = 16, RX_ASF_NEWFLAG_ENA = 8, RX_ASF_NEWFLAG_DIS = 4, RX_FLSH_MISSPKT_ENA = 2, RX_FLSH_MISSPKT_DIS = 1, }; enum { TBMU_TEST_BMU_TX_CHK_AUTO_OFF = -2147483648, TBMU_TEST_BMU_TX_CHK_AUTO_ON = 1073741824, TBMU_TEST_HOME_ADD_PAD_FIX1_EN = 536870912, TBMU_TEST_HOME_ADD_PAD_FIX1_DIS = 268435456, TBMU_TEST_ROUTING_ADD_FIX_EN = 134217728, TBMU_TEST_ROUTING_ADD_FIX_DIS = 67108864, TBMU_TEST_HOME_ADD_FIX_EN = 33554432, TBMU_TEST_HOME_ADD_FIX_DIS = 16777216, TBMU_TEST_TEST_RSPTR_ON = 4194304, TBMU_TEST_TEST_RSPTR_OFF = 2097152, TBMU_TEST_TESTSTEP_RSPTR = 1048576, TBMU_TEST_TEST_RPTR_ON = 262144, TBMU_TEST_TEST_RPTR_OFF = 131072, TBMU_TEST_TESTSTEP_RPTR = 65536, TBMU_TEST_TEST_WSPTR_ON = 16384, TBMU_TEST_TEST_WSPTR_OFF = 8192, TBMU_TEST_TESTSTEP_WSPTR = 4096, TBMU_TEST_TEST_WPTR_ON = 1024, TBMU_TEST_TEST_WPTR_OFF = 512, TBMU_TEST_TESTSTEP_WPTR = 256, TBMU_TEST_TEST_REQ_NB_ON = 64, TBMU_TEST_TEST_REQ_NB_OFF = 32, TBMU_TEST_TESTSTEP_REQ_NB = 16, TBMU_TEST_TEST_DONE_IDX_ON = 4, TBMU_TEST_TEST_DONE_IDX_OFF = 2, TBMU_TEST_TESTSTEP_DONE_IDX = 1, }; enum { HASH_TCP_IPV6_EX_CTRL = 32, HASH_IPV6_EX_CTRL = 16, HASH_TCP_IPV6_CTRL = 8, HASH_IPV6_CTRL = 4, HASH_TCP_IPV4_CTRL = 2, HASH_IPV4_CTRL = 1, HASH_ALL = 63, }; enum { GM_RXF_UC_OK = 256, GM_RXF_BC_OK = 264, GM_RXF_MPAUSE = 272, GM_RXF_MC_OK = 280, GM_RXF_FCS_ERR = 288, GM_RXO_OK_LO = 304, GM_RXO_OK_HI = 312, GM_RXO_ERR_LO = 320, GM_RXO_ERR_HI = 328, GM_RXF_SHT = 336, GM_RXE_FRAG = 344, GM_RXF_64B = 352, GM_RXF_127B = 360, GM_RXF_255B = 368, GM_RXF_511B = 376, GM_RXF_1023B = 384, GM_RXF_1518B = 392, GM_RXF_MAX_SZ = 400, GM_RXF_LNG_ERR = 408, GM_RXF_JAB_PKT = 416, GM_RXE_FIFO_OV = 432, GM_TXF_UC_OK = 448, GM_TXF_BC_OK = 456, GM_TXF_MPAUSE = 464, GM_TXF_MC_OK = 472, GM_TXO_OK_LO = 480, GM_TXO_OK_HI = 488, GM_TXF_64B = 496, GM_TXF_127B = 504, GM_TXF_255B = 512, GM_TXF_511B = 520, GM_TXF_1023B = 528, GM_TXF_1518B = 536, GM_TXF_MAX_SZ = 544, GM_TXF_COL = 560, GM_TXF_LAT_COL = 568, GM_TXF_ABO_COL = 576, GM_TXF_MUL_COL = 584, GM_TXF_SNG_COL = 592, GM_TXE_FIFO_UR = 600, }; enum { UDPTCP = 1, CALSUM = 2, WR_SUM = 4, INIT_SUM = 8, LOCK_SUM = 16, INS_VLAN = 32, EOP = 128, }; enum { PHY_M_PS_SPEED_MSK = 49152, PHY_M_PS_SPEED_1000 = 32768, PHY_M_PS_SPEED_100 = 16384, PHY_M_PS_SPEED_10 = 0, PHY_M_PS_FULL_DUP = 8192, PHY_M_PS_PAGE_REC = 4096, PHY_M_PS_SPDUP_RES = 2048, PHY_M_PS_LINK_UP = 1024, PHY_M_PS_CABLE_MSK = 896, PHY_M_PS_MDI_X_STAT = 64, PHY_M_PS_DOWNS_STAT = 32, PHY_M_PS_ENDET_STAT = 16, PHY_M_PS_TX_P_EN = 8, PHY_M_PS_RX_P_EN = 4, PHY_M_PS_POL_REV = 2, PHY_M_PS_JABBER = 1, }; enum { LINKLED_OFF = 1, LINKLED_ON = 2, LINKLED_LINKSYNC_OFF = 4, LINKLED_LINKSYNC_ON = 8, LINKLED_BLINK_OFF = 16, LINKLED_BLINK_ON = 32, }; enum status_css { CSS_TCPUDPCSOK = 128, CSS_ISUDP = 64, CSS_ISTCP = 32, CSS_ISIPFRAG = 16, CSS_ISIPV6 = 8, CSS_IPV4CSUMOK = 4, CSS_ISIPV4 = 2, CSS_LINK_BIT = 1, }; enum { WOL_CTL_LINK_CHG_OCC = 32768, WOL_CTL_MAGIC_PKT_OCC = 16384, WOL_CTL_PATTERN_OCC = 8192, WOL_CTL_CLEAR_RESULT = 4096, WOL_CTL_ENA_PME_ON_LINK_CHG = 2048, WOL_CTL_DIS_PME_ON_LINK_CHG = 1024, WOL_CTL_ENA_PME_ON_MAGIC_PKT = 512, WOL_CTL_DIS_PME_ON_MAGIC_PKT = 256, WOL_CTL_ENA_PME_ON_PATTERN = 128, WOL_CTL_DIS_PME_ON_PATTERN = 64, WOL_CTL_ENA_LINK_CHG_UNIT = 32, WOL_CTL_DIS_LINK_CHG_UNIT = 16, WOL_CTL_ENA_MAGIC_PKT_UNIT = 8, WOL_CTL_DIS_MAGIC_PKT_UNIT = 4, WOL_CTL_ENA_PATTERN_UNIT = 2, WOL_CTL_DIS_PATTERN_UNIT = 1, }; enum pci_dev_reg_1 { PCI_Y2_PIG_ENA = -2147483648, PCI_Y2_DLL_DIS = 1073741824, PCI_SW_PWR_ON_RST = 1073741824, PCI_Y2_PHY2_COMA = 536870912, PCI_Y2_PHY1_COMA = 268435456, PCI_Y2_PHY2_POWD = 134217728, PCI_Y2_PHY1_POWD = 67108864, PCI_Y2_PME_LEGACY = 32768, PCI_PHY_LNK_TIM_MSK = 768, PCI_ENA_L1_EVENT = 128, PCI_ENA_GPHY_LNK = 64, PCI_FORCE_PEX_L1 = 32, }; struct sky2_status_le; struct sky2_hw { void *regs; struct pci_dev *pdev; struct napi_struct napi; struct net_device *dev[2]; unsigned long flags; u8 chip_id; u8 chip_rev; u8 pmd_type; u8 ports; struct sky2_status_le *st_le; u32 st_size; u32 st_idx; dma_addr_t st_dma; struct timer_list watchdog_timer; struct work_struct restart_work; wait_queue_head_t msi_wait; char irq_name[0]; }; struct sky2_status_le { __le32 status; __le16 length; u8 css; u8 opcode; }; struct sky2_stats { struct u64_stats_sync syncp; u64 packets; u64 bytes; }; struct tx_ring_info; struct sky2_tx_le; struct rx_ring_info; struct sky2_rx_le; struct sky2_port { struct sky2_hw *hw; struct net_device *netdev; unsigned int port; u32 msg_enable; spinlock_t phy_lock; struct tx_ring_info *tx_ring; struct sky2_tx_le *tx_le; struct sky2_stats tx_stats; u16 tx_ring_size; u16 tx_cons; u16 tx_prod; u16 tx_next; u16 tx_pending; u16 tx_last_mss; u32 tx_last_upper; u32 tx_tcpsum; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; struct rx_ring_info *rx_ring; struct sky2_rx_le *rx_le; struct sky2_stats rx_stats; u16 rx_next; u16 rx_put; u16 rx_pending; u16 rx_data_size; u16 rx_nfrags; unsigned long last_rx; struct { unsigned long last; u32 mac_rp; u8 mac_lev; u8 fifo_rp; u8 fifo_lev; } check; dma_addr_t rx_le_map; dma_addr_t tx_le_map; u16 advertising; u16 speed; u8 wol; u8 duplex; u16 flags; enum flow_control flow_mode; enum flow_control flow_status; long: 64; long: 64; long: 64; }; struct tx_ring_info { struct sk_buff *skb; unsigned long flags; dma_addr_t mapaddr; __u32 maplen; }; struct sky2_tx_le { __le32 addr; __le16 length; u8 ctrl; u8 opcode; }; struct rx_ring_info { struct sk_buff *skb; dma_addr_t data_addr; __u32 data_size; dma_addr_t frag_addr[2]; }; struct sky2_rx_le { __le32 addr; __le16 length; u8 ctrl; u8 opcode; }; struct alps_protocol_info { u16 version; u8 byte0; u8 mask0; unsigned int flags; }; struct alps_model_info { u8 signature[3]; struct alps_protocol_info protocol_info; }; struct alps_nibble_commands { int command; unsigned char data; }; enum V7_PACKET_ID { V7_PACKET_ID_IDLE = 0, V7_PACKET_ID_TWO = 1, V7_PACKET_ID_MULTI = 2, V7_PACKET_ID_NEW = 3, V7_PACKET_ID_UNKNOWN = 4, }; enum SS4_PACKET_ID { SS4_PACKET_ID_IDLE = 0, SS4_PACKET_ID_ONE = 1, SS4_PACKET_ID_TWO = 2, SS4_PACKET_ID_MULTI = 3, SS4_PACKET_ID_STICK = 4, }; struct alps_fields { unsigned int x_map; unsigned int y_map; unsigned int fingers; int pressure; struct input_mt_pos st; struct input_mt_pos mt[4]; unsigned int first_mp: 1; unsigned int is_mp: 1; unsigned int left: 1; unsigned int right: 1; unsigned int middle: 1; unsigned int ts_left: 1; unsigned int ts_right: 1; unsigned int ts_middle: 1; }; struct alps_data { struct psmouse *psmouse; struct input_dev *dev2; struct input_dev *dev3; char phys2[32]; char phys3[32]; struct delayed_work dev3_register_work; const struct alps_nibble_commands *nibble_commands; int addr_command; u16 proto_version; u8 byte0; u8 mask0; u8 dev_id[3]; u8 fw_ver[3]; int flags; int x_max; int y_max; int x_bits; int y_bits; unsigned int x_res; unsigned int y_res; int (*hw_init)(struct psmouse *); void (*process_packet)(struct psmouse *); int (*decode_fields)(struct alps_fields *, unsigned char *, struct psmouse *); void (*set_abs_params)(struct alps_data *, struct input_dev *); int prev_fin; int multi_packet; int second_touch; unsigned char multi_data[6]; struct alps_fields f; u8 quirks; struct timer_list timer; }; struct alps_bitmap_point { int start_bit; int num_bits; }; 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 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 font_desc { int idx; const char *name; unsigned int width; unsigned int height; unsigned int charcount; const void *data; int pref; }; struct sdw_intel_acpi_info { acpi_handle handle; int count; u32 link_mask; }; 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 { 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; }; enum { TCA_BPF_UNSPEC = 0, TCA_BPF_ACT = 1, TCA_BPF_POLICE = 2, TCA_BPF_CLASSID = 3, TCA_BPF_OPS_LEN = 4, TCA_BPF_OPS = 5, TCA_BPF_FD = 6, TCA_BPF_NAME = 7, TCA_BPF_FLAGS = 8, TCA_BPF_FLAGS_GEN = 9, TCA_BPF_TAG = 10, TCA_BPF_ID = 11, __TCA_BPF_MAX = 12, }; struct cls_bpf_prog { struct bpf_prog *filter; struct list_head link; struct tcf_result res; bool exts_integrated; u32 gen_flags; unsigned int in_hw_count; struct tcf_exts exts; u32 handle; u16 bpf_num_ops; struct sock_filter *bpf_ops; const char *bpf_name; struct tcf_proto *tp; struct rcu_work rwork; }; struct cls_bpf_head { struct list_head plist; struct idr handle_idr; struct callback_head rcu; }; struct xt_tcpmss_info { __u16 mss; }; struct tcp_plb_state { u8 consec_cong_rounds: 5; u8 unused: 3; u32 pause_until; }; struct rta_mfc_stats { __u64 mfcs_packets; __u64 mfcs_bytes; __u64 mfcs_wrong_if; }; struct udp_skb_cb { union { struct inet_skb_parm h4; struct inet6_skb_parm h6; } header; __u16 cscov; __u8 partial_cov; }; struct udp_iter_state { struct seq_net_private p; int bucket; struct udp_seq_afinfo *bpf_seq_afinfo; }; struct udp_dev_scratch { u32 _tsize_state; u16 len; bool is_linear; bool csum_unnecessary; }; enum mpls_payload_type { MPT_UNSPEC = 0, MPT_IPV4 = 4, MPT_IPV6 = 6, }; enum { MPLS_STATS_UNSPEC = 0, MPLS_STATS_LINK = 1, __MPLS_STATS_MAX = 2, }; struct mpls_entry_decoded { u32 label; u8 ttl; u8 tc; u8 bos; }; struct mpls_route_config { u32 rc_protocol; u32 rc_ifindex; u8 rc_via_table; u8 rc_via_alen; u8 rc_via[32]; u32 rc_label; u8 rc_ttl_propagate; u8 rc_output_labels; u32 rc_output_label[30]; u32 rc_nlflags; enum mpls_payload_type rc_payload_type; struct nl_info rc_nlinfo; struct rtnexthop *rc_mp; int rc_mp_len; }; 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, }; enum energy_perf_value_index___2 { EPB_INDEX_PERFORMANCE = 0, EPB_INDEX_BALANCE_PERFORMANCE = 1, EPB_INDEX_NORMAL = 2, EPB_INDEX_BALANCE_POWERSAVE = 3, EPB_INDEX_POWERSAVE = 4, }; struct acpi_madt_multiproc_wakeup_mailbox { u16 command; u16 reserved; u32 apic_id; u64 wakeup_vector; u8 reserved_os[2032]; u8 reserved_firmware[2048]; }; struct acpi_table_boot { struct acpi_table_header header; u8 cmos_index; u8 reserved[3]; }; 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 wq_flusher; struct workqueue_attrs; struct wq_device; 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 saved_max_active; struct workqueue_attrs *unbound_attrs; struct pool_workqueue *dfl_pwq; struct wq_device *wq_dev; char name[24]; struct callback_head rcu; long: 64; long: 64; long: 64; long: 64; long: 64; unsigned int flags; struct pool_workqueue __attribute__((btf_type_tag("percpu"))) *cpu_pwqs; struct pool_workqueue __attribute__((btf_type_tag("rcu"))) *numa_pwq_tbl[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]; int nr_active; int max_active; struct list_head inactive_works; struct list_head pwqs_node; struct list_head mayday_node; struct work_struct unbound_release_work; struct callback_head rcu; 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; 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 workqueue_attrs { int nice; cpumask_var_t cpumask; bool no_numa; }; struct wq_device { struct workqueue_struct *wq; struct device dev; }; 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); enum { POOL_MANAGER_ACTIVE = 1, POOL_DISASSOCIATED = 4, WORKER_DIE = 2, WORKER_IDLE = 4, WORKER_PREP = 8, WORKER_CPU_INTENSIVE = 64, WORKER_UNBOUND = 128, WORKER_REBOUND = 256, WORKER_NOT_RUNNING = 456, 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 = 24, }; 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_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; }; 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 klp_find_arg { const char *name; unsigned long addr; unsigned long count; unsigned long pos; }; struct mod_tree_root { struct latch_tree_root root; unsigned long addr_min; unsigned long addr_max; }; 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 { TRACE_FUNC_NO_OPTS = 0, TRACE_FUNC_OPT_STACK = 1, TRACE_FUNC_OPT_NO_REPEATS = 2, TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; enum error_detector { ERROR_DETECTOR_KFENCE = 0, ERROR_DETECTOR_KASAN = 1, ERROR_DETECTOR_WARN = 2, }; 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 {}; 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_queue_stack { struct bpf_map map; raw_spinlock_t lock; u32 head; u32 tail; u32 size; char elements[0]; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; 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 *); 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 *); 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; void *base_addr; unsigned long *alloc_map; unsigned long *bound_map; struct pcpu_block_md *md_blocks; void *data; bool immutable; bool isolated; int start_offset; int end_offset; int nr_pages; int nr_populated; int nr_empty_pop_pages; unsigned long populated[0]; }; 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 {}; struct file_handle { __u32 handle_bytes; int handle_type; unsigned char f_handle[0]; }; enum { MBE_REFERENCED_B = 0, MBE_REUSABLE_B = 1, }; 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 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 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; }; struct nfs_open_dir_context { struct list_head list; atomic_t cache_hits; atomic_t cache_misses; unsigned long attr_gencount; __be32 verf[2]; __u64 dir_cookie; __u64 last_cookie; unsigned long page_index; unsigned int dtsize; bool force_clear; bool eof; struct callback_head callback_head; }; struct nfs_readdir_descriptor { struct file *file; struct page *page; struct dir_context *ctx; unsigned long page_index; unsigned long page_index_max; u64 dir_cookie; u64 last_cookie; loff_t current_index; __be32 verf[2]; unsigned long dir_verifier; unsigned long timestamp; unsigned long gencount; unsigned long attr_gencount; unsigned int cache_entry_index; unsigned int buffer_fills; unsigned int dtsize; bool clear_cache; bool plus; bool eob; bool eof; }; struct nfs_cache_array_entry { u64 cookie; u64 ino; const char *name; unsigned int name_len; unsigned char d_type; }; struct nfs_cache_array { u64 change_attr; u64 last_cookie; unsigned int size; unsigned char page_full: 1; unsigned char page_is_eof: 1; unsigned char cookies_are_ordered: 1; struct nfs_cache_array_entry array[0]; }; struct debugfs_fsdata { const struct file_operations *real_fops; refcount_t active_users; struct completion active_users_drained; }; 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 shash_instance { void (*free)(struct shash_instance *); union { struct { char head[96]; struct crypto_instance base; } s; struct shash_alg alg; }; }; struct crypto_shash_spawn { struct crypto_spawn base; }; struct hmac_ctx { struct crypto_shash *hash; }; 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 show_busy_params { struct seq_file *m; struct blk_mq_hw_ctx *hctx; }; typedef ZSTD_ErrorCode ERR_enum; typedef uint64_t vli_type; struct xz_dec_hash { vli_type unpadded; vli_type uncompressed; uint32_t crc32; }; enum xz_check { XZ_CHECK_NONE = 0, XZ_CHECK_CRC32 = 1, XZ_CHECK_CRC64 = 4, XZ_CHECK_SHA256 = 10, }; struct xz_dec_bcj; struct xz_dec { enum { SEQ_STREAM_HEADER = 0, SEQ_BLOCK_START = 1, SEQ_BLOCK_HEADER = 2, SEQ_BLOCK_UNCOMPRESS = 3, SEQ_BLOCK_PADDING = 4, SEQ_BLOCK_CHECK = 5, SEQ_INDEX = 6, SEQ_INDEX_PADDING = 7, SEQ_INDEX_CRC32 = 8, SEQ_STREAM_FOOTER = 9, } sequence; uint32_t pos; vli_type vli; size_t in_start; size_t out_start; uint32_t crc32; enum xz_check check_type; enum xz_mode mode; bool allow_buf_error; struct { vli_type compressed; vli_type uncompressed; uint32_t size; } block_header; struct { vli_type compressed; vli_type uncompressed; vli_type count; struct xz_dec_hash hash; } block; struct { enum { SEQ_INDEX_COUNT = 0, SEQ_INDEX_UNPADDED = 1, SEQ_INDEX_UNCOMPRESSED = 2, } sequence; vli_type size; vli_type count; struct xz_dec_hash hash; } index; struct { size_t pos; size_t size; uint8_t buf[1024]; } temp; struct xz_dec_lzma2 *lzma2; struct xz_dec_bcj *bcj; bool bcj_active; }; 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; }; 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; char: 4; u32 aspm_disable: 7; u32 clkpm_capable: 1; u32 clkpm_enabled: 1; u32 clkpm_default: 1; u32 clkpm_disable: 1; }; enum { VP_MSIX_CONFIG_VECTOR = 0, VP_MSIX_VQ_VECTOR = 1, }; 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 edid_quirk { u32 panel_id; u32 quirks; }; struct minimode { short w; short h; short r; short rb; }; struct stereo_mandatory_mode { int width; int height; int vrefresh; unsigned int flags; }; enum edid_block_status { EDID_BLOCK_OK = 0, EDID_BLOCK_READ_FAIL = 1, EDID_BLOCK_NULL = 2, EDID_BLOCK_ZERO = 3, EDID_BLOCK_HEADER_CORRUPT = 4, EDID_BLOCK_HEADER_REPAIR = 5, EDID_BLOCK_HEADER_FIXED = 6, EDID_BLOCK_CHECKSUM = 7, EDID_BLOCK_VERSION = 8, }; struct cea_db { u8 tag_length; u8 data[0]; }; struct displayid_block { u8 tag; u8 rev; u8 num_bytes; }; struct displayid_vesa_vendor_specific_block { struct displayid_block base; u8 oui[3]; u8 data_structure_type; u8 mso; }; struct displayid_detailed_timings_1 { u8 pixel_clock[3]; u8 flags; u8 hactive[2]; u8 hblank[2]; u8 hsync[2]; u8 hsw[2]; u8 vactive[2]; u8 vblank[2]; u8 vsync[2]; u8 vsw[2]; }; struct displayid_detailed_timing_block { struct displayid_block base; struct displayid_detailed_timings_1 timings[0]; }; struct displayid_tiled_block { struct displayid_block base; u8 tile_cap; u8 topo[3]; u8 tile_size[4]; u8 tile_pixel_bezel[5]; u8 topology_id[8]; }; struct displayid_iter { const struct drm_edid *drm_edid; const u8 *section; int length; int idx; int ext_index; }; typedef void detailed_cb(const struct detailed_timing *, void *); struct drm_edid_iter { const struct drm_edid *drm_edid; int index; }; struct cea_db_iter { struct drm_edid_iter edid_iter; struct displayid_iter displayid_iter; const u8 *collection; int index; int end; }; struct cea_sad { u8 format; u8 channels; u8 freq; u8 byte2; }; struct detailed_mode_closure { struct drm_connector *connector; const struct drm_edid *drm_edid; bool preferred; int modes; }; typedef int read_block_fn(void *, u8 *, unsigned int, size_t); struct hdr_metadata_infoframe { __u8 eotf; __u8 metadata_type; struct { __u16 x; __u16 y; } display_primaries[3]; struct { __u16 x; __u16 y; } white_point; __u16 max_display_mastering_luminance; __u16 min_display_mastering_luminance; __u16 max_cll; __u16 max_fall; }; struct hdr_output_metadata { __u32 metadata_type; union { struct hdr_metadata_infoframe hdmi_metadata_type1; }; }; struct reg_and_bit { union { i915_reg_t reg; i915_mcr_reg_t mcr_reg; }; u32 bit; }; struct drm_i915_gem_set_tiling { __u32 handle; __u32 tiling_mode; __u32 stride; __u32 swizzle_mode; }; struct drm_i915_gem_get_tiling { __u32 handle; __u32 tiling_mode; __u32 swizzle_mode; __u32 phys_swizzle_mode; }; struct i915_power_well_regs { i915_reg_t bios; i915_reg_t driver; i915_reg_t kvmr; i915_reg_t debug; }; enum skl_power_gate { SKL_PG0 = 0, SKL_PG1 = 1, SKL_PG2 = 2, ICL_PG3 = 3, ICL_PG4 = 4, }; enum virtio_gpu_formats { VIRTIO_GPU_FORMAT_B8G8R8A8_UNORM = 1, VIRTIO_GPU_FORMAT_B8G8R8X8_UNORM = 2, VIRTIO_GPU_FORMAT_A8R8G8B8_UNORM = 3, VIRTIO_GPU_FORMAT_X8R8G8B8_UNORM = 4, VIRTIO_GPU_FORMAT_R8G8B8A8_UNORM = 67, VIRTIO_GPU_FORMAT_X8B8G8R8_UNORM = 68, VIRTIO_GPU_FORMAT_A8B8G8R8_UNORM = 121, VIRTIO_GPU_FORMAT_R8G8B8X8_UNORM = 134, }; enum virtio_gpu_ctrl_type { VIRTIO_GPU_UNDEFINED = 0, VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 256, VIRTIO_GPU_CMD_RESOURCE_CREATE_2D = 257, VIRTIO_GPU_CMD_RESOURCE_UNREF = 258, VIRTIO_GPU_CMD_SET_SCANOUT = 259, VIRTIO_GPU_CMD_RESOURCE_FLUSH = 260, VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D = 261, VIRTIO_GPU_CMD_RESOURCE_ATTACH_BACKING = 262, VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING = 263, VIRTIO_GPU_CMD_GET_CAPSET_INFO = 264, VIRTIO_GPU_CMD_GET_CAPSET = 265, VIRTIO_GPU_CMD_GET_EDID = 266, VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID = 267, VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB = 268, VIRTIO_GPU_CMD_SET_SCANOUT_BLOB = 269, VIRTIO_GPU_CMD_CTX_CREATE = 512, VIRTIO_GPU_CMD_CTX_DESTROY = 513, VIRTIO_GPU_CMD_CTX_ATTACH_RESOURCE = 514, VIRTIO_GPU_CMD_CTX_DETACH_RESOURCE = 515, VIRTIO_GPU_CMD_RESOURCE_CREATE_3D = 516, VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D = 517, VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D = 518, VIRTIO_GPU_CMD_SUBMIT_3D = 519, VIRTIO_GPU_CMD_RESOURCE_MAP_BLOB = 520, VIRTIO_GPU_CMD_RESOURCE_UNMAP_BLOB = 521, VIRTIO_GPU_CMD_UPDATE_CURSOR = 768, VIRTIO_GPU_CMD_MOVE_CURSOR = 769, VIRTIO_GPU_RESP_OK_NODATA = 4352, VIRTIO_GPU_RESP_OK_DISPLAY_INFO = 4353, VIRTIO_GPU_RESP_OK_CAPSET_INFO = 4354, VIRTIO_GPU_RESP_OK_CAPSET = 4355, VIRTIO_GPU_RESP_OK_EDID = 4356, VIRTIO_GPU_RESP_OK_RESOURCE_UUID = 4357, VIRTIO_GPU_RESP_OK_MAP_INFO = 4358, VIRTIO_GPU_RESP_ERR_UNSPEC = 4608, VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY = 4609, VIRTIO_GPU_RESP_ERR_INVALID_SCANOUT_ID = 4610, VIRTIO_GPU_RESP_ERR_INVALID_RESOURCE_ID = 4611, VIRTIO_GPU_RESP_ERR_INVALID_CONTEXT_ID = 4612, VIRTIO_GPU_RESP_ERR_INVALID_PARAMETER = 4613, }; struct mdio_board_entry { struct list_head list; struct mdio_board_info board_info; }; struct my_u { __le64 a; __le64 b; }; struct xhci_driver_data { u64 quirks; const char *firmware; }; 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 {}; 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_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; }; 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 hid_dynid { struct list_head list; struct hid_device_id id; }; struct snd_info_private_data { struct snd_info_buffer *rbuffer; struct snd_info_buffer *wbuffer; struct snd_info_entry *entry; void *file_private_data; }; 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 gnet_estimator { signed char interval; unsigned char ewma_log; }; 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 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 bbr_mode { BBR_STARTUP = 0, BBR_DRAIN = 1, BBR_PROBE_BW = 2, BBR_PROBE_RTT = 3, }; enum { INET_DIAG_NONE = 0, INET_DIAG_MEMINFO = 1, INET_DIAG_INFO = 2, INET_DIAG_VEGASINFO = 3, INET_DIAG_CONG = 4, INET_DIAG_TOS = 5, INET_DIAG_TCLASS = 6, INET_DIAG_SKMEMINFO = 7, INET_DIAG_SHUTDOWN = 8, INET_DIAG_DCTCPINFO = 9, INET_DIAG_PROTOCOL = 10, INET_DIAG_SKV6ONLY = 11, INET_DIAG_LOCALS = 12, INET_DIAG_PEERS = 13, INET_DIAG_PAD = 14, INET_DIAG_MARK = 15, INET_DIAG_BBRINFO = 16, INET_DIAG_CLASS_ID = 17, INET_DIAG_MD5SIG = 18, INET_DIAG_ULP_INFO = 19, INET_DIAG_SK_BPF_STORAGES = 20, INET_DIAG_CGROUP_ID = 21, INET_DIAG_SOCKOPT = 22, __INET_DIAG_MAX = 23, }; struct bbr { u32 min_rtt_us; u32 min_rtt_stamp; u32 probe_rtt_done_stamp; struct minmax bw; u32 rtt_cnt; u32 next_rtt_delivered; u64 cycle_mstamp; u32 mode: 3; u32 prev_ca_state: 3; u32 packet_conservation: 1; u32 round_start: 1; u32 idle_restart: 1; u32 probe_rtt_round_done: 1; u32 unused: 13; u32 lt_is_sampling: 1; u32 lt_rtt_cnt: 7; u32 lt_use_bw: 1; u32 lt_bw; u32 lt_last_delivered; u32 lt_last_stamp; u32 lt_last_lost; u32 pacing_gain: 10; u32 cwnd_gain: 10; u32 full_bw_reached: 1; u32 full_bw_cnt: 2; u32 cycle_idx: 3; u32 has_seen_rtt: 1; u32 unused_b: 5; u32 prior_cwnd; u32 full_bw; u64 ack_epoch_mstamp; u16 extra_acked[2]; u32 ack_epoch_acked: 20; u32 extra_acked_win_rtts: 5; u32 extra_acked_win_idx: 1; u32 unused_c: 6; }; enum { NDUSEROPT_UNSPEC = 0, NDUSEROPT_SRCADDR = 1, __NDUSEROPT_MAX = 2, }; struct nd_msg { struct icmp6hdr icmph; struct in6_addr target; __u8 opt[0]; }; 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; }; struct devlink_info_req { struct sk_buff *msg; void (*version_cb)(const char *, enum devlink_info_version_type, void *); void *version_cb_priv; }; struct devlink_reload_combination { enum devlink_reload_action action; enum devlink_reload_limit limit; }; enum devlink_attr_selftest_id { DEVLINK_ATTR_SELFTEST_ID_UNSPEC = 0, DEVLINK_ATTR_SELFTEST_ID_FLASH = 1, __DEVLINK_ATTR_SELFTEST_ID_MAX = 2, DEVLINK_ATTR_SELFTEST_ID_MAX = 1, }; enum devlink_attr_selftest_result { DEVLINK_ATTR_SELFTEST_RESULT_UNSPEC = 0, DEVLINK_ATTR_SELFTEST_RESULT = 1, DEVLINK_ATTR_SELFTEST_RESULT_ID = 2, DEVLINK_ATTR_SELFTEST_RESULT_STATUS = 3, __DEVLINK_ATTR_SELFTEST_RESULT_MAX = 4, DEVLINK_ATTR_SELFTEST_RESULT_MAX = 3, }; struct devlink_resource; struct devlink_flash_notify { const char *status_msg; const char *component; unsigned long done; unsigned long total; unsigned long timeout; }; struct devlink_flash_component_lookup_ctx { const char *lookup_name; bool lookup_name_found; }; enum sgn_alg { SGN_ALG_DES_MAC_MD5 = 0, SGN_ALG_MD2_5 = 1, SGN_ALG_DES_MAC = 2, SGN_ALG_3 = 3, SGN_ALG_HMAC_SHA1_DES3_KD = 4, }; enum seal_alg { SEAL_ALG_NONE = 65535, SEAL_ALG_DES = 0, SEAL_ALG_1 = 1, SEAL_ALG_DES3KD = 2, }; 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_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 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, }; 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; }; }; enum rfkill_operation { RFKILL_OP_ADD = 0, RFKILL_OP_DEL = 1, RFKILL_OP_CHANGE = 2, RFKILL_OP_CHANGE_ALL = 3, }; enum rfkill_user_states { RFKILL_USER_STATE_SOFT_BLOCKED = 0, RFKILL_USER_STATE_UNBLOCKED = 1, RFKILL_USER_STATE_HARD_BLOCKED = 2, }; struct rfkill { spinlock_t lock; enum rfkill_type type; unsigned long state; unsigned long hard_block_reasons; u32 idx; bool registered; bool persistent; bool polling_paused; bool suspended; const struct rfkill_ops *ops; void *data; struct led_trigger led_trigger; const char *ledtrigname; struct device dev; struct list_head node; struct delayed_work poll_work; struct work_struct uevent_work; struct work_struct sync_work; char name[0]; }; struct rfkill_data { struct list_head list; struct list_head events; struct mutex mtx; wait_queue_head_t read_wait; bool input_handler; u8 max_size; }; struct rfkill_event_ext { __u32 idx; __u8 type; __u8 op; __u8 soft; __u8 hard; __u8 hard_block_reasons; } __attribute__((packed)); struct rfkill_int_event { struct list_head list; struct rfkill_event_ext ev; }; enum dns_payload_content_type { DNS_PAYLOAD_IS_SERVER_LIST = 0, }; struct dns_payload_header { __u8 zero; __u8 content; __u8 version; }; struct token_bucket { spinlock_t lock; int chain_len; struct hlist_nulls_head req_chain; struct hlist_nulls_head msk_chain; }; struct ida_bitmap { unsigned long bitmap[16]; }; struct amd_uncore { int id; int refcnt; int cpu; int num_counters; int rdpmc_base; u32 msr_base; cpumask_t *active_mask; struct pmu *pmu; struct perf_event **events; struct hlist_node node; }; struct cyc2ns { struct cyc2ns_data data[2]; seqcount_latch_t seq; }; struct mtrr_value { mtrr_type ltype; unsigned long lbase; unsigned long lsize; }; struct set_mtrr_data { unsigned long smp_base; unsigned long smp_size; unsigned int smp_reg; mtrr_type smp_type; }; struct kaslr_memory_region { unsigned long *base; unsigned long size_tb; }; enum pti_mode { PTI_AUTO = 0, PTI_FORCE_OFF = 1, PTI_FORCE_ON = 2, }; enum pti_clone_level { PTI_CLONE_PMD = 0, PTI_CLONE_PTE = 1, }; 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 *); }; 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; 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 mem_extent { struct list_head hook; unsigned long start; unsigned long end; }; enum wd_read_status { WD_READ_SUCCESS = 0, WD_READ_UNSTABLE = 1, WD_READ_SKIP = 2, }; struct misc_res { unsigned long max; atomic_long_t usage; atomic_long_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, }; enum kprobe_slot_state { SLOT_CLEAN = 0, SLOT_DIRTY = 1, SLOT_USED = 2, }; 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 ustring_buffer { char buffer[1024]; }; enum filter_pred_fn { FILTER_PRED_FN_NOP = 0, FILTER_PRED_FN_64 = 1, FILTER_PRED_FN_S64 = 2, FILTER_PRED_FN_U64 = 3, FILTER_PRED_FN_32 = 4, FILTER_PRED_FN_S32 = 5, FILTER_PRED_FN_U32 = 6, FILTER_PRED_FN_16 = 7, FILTER_PRED_FN_S16 = 8, FILTER_PRED_FN_U16 = 9, FILTER_PRED_FN_8 = 10, FILTER_PRED_FN_S8 = 11, FILTER_PRED_FN_U8 = 12, FILTER_PRED_FN_COMM = 13, FILTER_PRED_FN_STRING = 14, FILTER_PRED_FN_STRLOC = 15, FILTER_PRED_FN_STRRELLOC = 16, FILTER_PRED_FN_PCHAR_USER = 17, FILTER_PRED_FN_PCHAR = 18, FILTER_PRED_FN_CPU = 19, FILTER_PRED_FN_FUNCTION = 20, FILTER_PRED_FN_ = 21, FILTER_PRED_TEST_VISITED = 22, }; 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 { 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_OPERAND_TOO_LONG = 5, FILT_ERR_EXPECT_STRING = 6, FILT_ERR_EXPECT_DIGIT = 7, FILT_ERR_ILLEGAL_FIELD_OP = 8, FILT_ERR_FIELD_NOT_FOUND = 9, FILT_ERR_ILLEGAL_INTVAL = 10, FILT_ERR_BAD_SUBSYS_FILTER = 11, FILT_ERR_TOO_MANY_PREDS = 12, FILT_ERR_INVALID_FILTER = 13, FILT_ERR_IP_FIELD_ONLY = 14, FILT_ERR_INVALID_VALUE = 15, FILT_ERR_NO_FUNCTION = 16, FILT_ERR_ERRNO = 17, FILT_ERR_NO_FILTER = 18, }; enum { INVERT = 1, PROCESS_AND = 2, PROCESS_OR = 4, }; struct regex; typedef int (*regex_match_func)(char *, struct regex *, int); struct regex { char pattern[256]; int len; int field_len; regex_match_func match; }; struct filter_pred { enum filter_pred_fn fn_num; u64 val; u64 val2; struct regex regex; unsigned short *ops; struct ftrace_event_field *field; int offset; int not; int op; }; 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 u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t); typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *); struct bpf_storage_blob { struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *storage; }; 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 select_data { struct dentry *start; union { long found; struct dentry *victim; }; struct list_head dispose; }; struct proc_fs_opts { int flag; const char *str; }; 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; }; typedef struct { __le32 a_version; } ext4_acl_header; typedef struct { __le16 e_tag; __le16 e_perm; __le32 e_id; } ext4_acl_entry; struct msg_msgseg { struct msg_msgseg *next; }; struct nlmsg_perm { u16 nlmsg_type; u32 perm; }; struct cond_insertf_data { struct policydb *p; struct avtab_node **dst; struct cond_av_list *other; }; struct crypto_queue { struct list_head list; struct list_head *backlog; unsigned int qlen; unsigned int max_qlen; }; 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_APOLL_OK = 0, IO_APOLL_ABORTED = 1, IO_APOLL_READY = 2, }; enum { IOU_POLL_DONE = 0, IOU_POLL_NO_ACTION = 1, IOU_POLL_REMOVE_POLL_USE_RES = 2, IOU_POLL_REISSUE = 3, }; 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_bus_resource { struct list_head list; struct resource *res; unsigned int flags; }; 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 { 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_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_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 { 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]; }; typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); enum { MATCH_MTR = 0, MATCH_MEQ = 1, MATCH_MLE = 2, MATCH_MLT = 3, MATCH_MGE = 4, MATCH_MGT = 5, }; struct acpi_get_devices_info { acpi_walk_callback user_function; void *context; const char *hid; }; 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; }; 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; unsigned int irq; unsigned long irqflags; unsigned int uartclk; void *private_data; unsigned char regshift; unsigned char iotype; unsigned char hub6; unsigned char has_sysrq; upf_t flags; unsigned int type; 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 *); int (*handle_irq)(struct uart_port *); void (*pm)(struct uart_port *, unsigned int, unsigned int); void (*handle_break)(struct uart_port *); }; struct tpm2_hash { unsigned int crypto_id; unsigned int tpm_id; }; enum tpm2_const { TPM2_PLATFORM_PCR = 24, TPM2_PCR_SELECT_MIN = 3, }; enum tpm2_properties { TPM_PT_TOTAL_COMMANDS = 297, }; struct tpm2_pcr_read_out { __be32 update_cnt; __be32 pcr_selects_cnt; __be16 hash_alg; u8 pcr_select_size; u8 pcr_select[3]; __be32 digests_cnt; __be16 digest_size; u8 digest[0]; } __attribute__((packed)); struct tpm2_get_random_out { __be16 size; u8 buffer[128]; }; struct tpm2_get_cap_out { u8 more_data; __be32 subcap_id; __be32 property_cnt; __be32 property_id; __be32 value; } __attribute__((packed)); struct tpm2_null_auth_area { __be32 handle; __be16 nonce_size; u8 attributes; __be16 auth_size; } __attribute__((packed)); struct tpm2_pcr_selection { __be16 hash_alg; u8 size_of_select; u8 pcr_select[3]; }; struct drm_i915_cmd_descriptor; struct drm_i915_cmd_table { const struct drm_i915_cmd_descriptor *table; int count; }; struct drm_i915_cmd_descriptor { u32 flags; struct { u32 value; u32 mask; } cmd; union { u32 fixed; u32 mask; } length; struct { u32 offset; u32 mask; u32 step; } reg; struct { u32 offset; u32 mask; u32 expected; u32 condition_offset; u32 condition_mask; } bits[3]; }; struct drm_i915_reg_descriptor { i915_reg_t addr; u32 mask; u32 value; }; struct cmd_node { const struct drm_i915_cmd_descriptor *desc; struct hlist_node node; }; struct wait_rps_boost { struct wait_queue_entry wait; struct drm_crtc *crtc; struct i915_request___2 *request; }; struct overlay_registers; struct intel_overlay { struct drm_i915_private___4 *i915; struct intel_context___3 *context; struct intel_crtc *crtc; struct i915_vma___3 *vma; struct i915_vma___3 *old_vma; struct intel_frontbuffer___3 *frontbuffer; bool active; bool pfit_active; u32 pfit_vscale_ratio; u32 color_key: 24; u32 color_key_enabled: 1; u32 brightness; u32 contrast; u32 saturation; u32 old_xscale; u32 old_yscale; struct drm_i915_gem_object___3 *reg_bo; struct overlay_registers *regs; u32 flip_addr; struct i915_active last_flip; void (*flip_complete)(struct intel_overlay *); }; struct overlay_registers { u32 OBUF_0Y; u32 OBUF_1Y; u32 OBUF_0U; u32 OBUF_0V; u32 OBUF_1U; u32 OBUF_1V; u32 OSTRIDE; u32 YRGB_VPH; u32 UV_VPH; u32 HORZ_PH; u32 INIT_PHS; u32 DWINPOS; u32 DWINSZ; u32 SWIDTH; u32 SWIDTHSW; u32 SHEIGHT; u32 YRGBSCALE; u32 UVSCALE; u32 OCLRC0; u32 OCLRC1; u32 DCLRKV; u32 DCLRKM; u32 SCLRKVH; u32 SCLRKVL; u32 SCLRKEN; u32 OCONFIG; u32 OCMD; u32 RESERVED1; u32 OSTART_0Y; u32 OSTART_1Y; u32 OSTART_0U; u32 OSTART_0V; u32 OSTART_1U; u32 OSTART_1V; u32 OTILEOFF_0Y; u32 OTILEOFF_1Y; u32 OTILEOFF_0U; u32 OTILEOFF_0V; u32 OTILEOFF_1U; u32 OTILEOFF_1V; u32 FASTHSCALE; u32 UVSCALEV; u32 RESERVEDC[86]; u16 Y_VCOEFS[51]; u16 RESERVEDD[77]; u16 Y_HCOEFS[85]; u16 RESERVEDE[171]; u16 UV_VCOEFS[51]; u16 RESERVEDF[77]; u16 UV_HCOEFS[51]; u16 RESERVEDG[77]; }; struct intel_overlay_error_state { struct overlay_registers regs; unsigned long base; u32 dovsta; u32 isr; }; struct intel_plane___2; struct intel_plane_state___2 { struct drm_plane_state uapi; struct { struct drm_crtc *crtc; struct drm_framebuffer *fb; u16 alpha; u16 pixel_blend_mode; unsigned int rotation; enum drm_color_encoding color_encoding; enum drm_color_range color_range; enum drm_scaling_filter scaling_filter; } hw; struct i915_vma___3 *ggtt_vma; struct i915_vma___3 *dpt_vma; unsigned long flags; struct intel_fb_view view; bool decrypt; bool force_black; u32 ctl; u32 color_ctl; u32 cus_ctl; int scaler_id; struct intel_plane___2 *planar_linked_plane; u32 planar_slave; struct drm_intel_sprite_colorkey ckey; struct drm_rect psr2_sel_fetch_area; u64 ccval; const char *no_fbc_reason; }; struct intel_plane___2 { struct drm_plane base; enum i9xx_plane_id i9xx_plane; enum plane_id id; enum pipe pipe; bool need_async_flip_disable_wa; u32 frontbuffer_bit; struct { u32 base; u32 cntl; u32 size; } cursor; struct intel_fbc *fbc; int (*min_width)(const struct drm_framebuffer *, int, unsigned int); int (*max_width)(const struct drm_framebuffer *, int, unsigned int); int (*max_height)(const struct drm_framebuffer *, int, unsigned int); unsigned int (*max_stride)(struct intel_plane___2 *, u32, u64, unsigned int); void (*update_noarm)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *); void (*update_arm)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *); void (*disable_arm)(struct intel_plane___2 *, const struct intel_crtc_state *); bool (*get_hw_state)(struct intel_plane___2 *, enum pipe *); int (*check_plane)(struct intel_crtc_state *, struct intel_plane_state___2 *); int (*min_cdclk)(const struct intel_crtc_state *, const struct intel_plane_state___2 *); void (*async_flip)(struct intel_plane___2 *, const struct intel_crtc_state *, const struct intel_plane_state___2 *, bool); void (*enable_flip_done)(struct intel_plane___2 *); void (*disable_flip_done)(struct intel_plane___2 *); }; struct drm_intel_overlay_put_image { __u32 flags; __u32 bo_handle; __u16 stride_Y; __u16 stride_UV; __u32 offset_Y; __u32 offset_U; __u32 offset_V; __u16 src_width; __u16 src_height; __u16 src_scan_width; __u16 src_scan_height; __u32 crtc_id; __u16 dst_x; __u16 dst_y; __u16 dst_width; __u16 dst_height; }; struct drm_i915_error_state_buf___2 { struct drm_i915_private___4 *i915; struct scatterlist *sgl; struct scatterlist *cur; struct scatterlist *end; char *buf; size_t bytes; size_t size; loff_t iter; int err; }; struct drm_intel_overlay_attrs { __u32 flags; __u32 color_key; __s32 brightness; __u32 contrast; __u32 saturation; __u32 gamma0; __u32 gamma1; __u32 gamma2; __u32 gamma3; __u32 gamma4; __u32 gamma5; }; struct rc_parameters { u16 initial_xmit_delay; u8 first_line_bpg_offset; u16 initial_offset; u8 flatness_min_qp; u8 flatness_max_qp; u8 rc_quant_incr_limit0; u8 rc_quant_incr_limit1; struct drm_dsc_rc_range_parameters rc_range_params[15]; }; enum ROW_INDEX_BPP { ROW_INDEX_6BPP = 0, ROW_INDEX_8BPP = 1, ROW_INDEX_10BPP = 2, ROW_INDEX_12BPP = 3, ROW_INDEX_15BPP = 4, MAX_ROW_INDEX = 5, }; enum COLUMN_INDEX_BPC { COLUMN_INDEX_8BPC = 0, COLUMN_INDEX_10BPC = 1, COLUMN_INDEX_12BPC = 2, COLUMN_INDEX_14BPC = 3, COLUMN_INDEX_16BPC = 4, MAX_COLUMN_INDEX = 5, }; struct drm_dsc_pps_infoframe { struct dp_sdp_header pps_header; struct drm_dsc_picture_parameter_set pps_payload; }; 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_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, }; 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 {}; struct usb_dynid { struct list_head node; struct usb_device_id id; }; 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); const struct attribute_group **dev_groups; struct usbdrv_wrap drvwrap; const struct usb_device_id *id_table; unsigned int supports_autosuspend: 1; unsigned int generic_subclass: 1; }; 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_timings_manchester { unsigned int leader_pulse; unsigned int leader_space; unsigned int clock; unsigned int invert: 1; unsigned int trailer_space; }; 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; }; 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; }; struct efivar_operations; struct efivars { struct kset *kset; const struct efivar_operations *ops; }; 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_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; }; typedef u16 ucs2_char_t; struct lg4ff_alternate_mode { const u16 product_id; const char *tag; const char *name; }; struct lg4ff_wheel_ident_info { const u32 modes; const u16 mask; const u16 result; const u16 real_product_id; }; struct lg4ff_compat_mode_switch { const u8 cmd_count; const u8 cmd[0]; }; struct lg4ff_wheel { const u32 product_id; const short *ff_effects; const u16 min_range; const u16 max_range; void (*set_range)(struct hid_device *, u16); }; struct lg4ff_multimode_wheel { const u16 product_id; const u32 alternate_modes; const char *real_tag; const char *real_name; }; struct lg4ff_wheel_data { const u32 product_id; u16 combine; u16 range; const u16 min_range; const u16 max_range; u8 led_state; struct led_classdev *led[5]; const u32 alternate_modes; const char * const real_tag; const char * const real_name; const u16 real_product_id; void (*set_range)(struct hid_device *, u16); }; struct lg4ff_device_entry { spinlock_t report_lock; struct hid_report *report; struct lg4ff_wheel_data wdata; }; enum { IF_LINK_MODE_DEFAULT = 0, IF_LINK_MODE_DORMANT = 1, IF_LINK_MODE_TESTING = 2, }; enum lw_bits { LW_URGENT = 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 psched_pktrate { u64 rate_pkts_ps; u32 mult; u8 shift; }; 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 { 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 ethnl_tunnel_info_dump_ctx { struct ethnl_req_info req_info; int pos_hash; int pos_idx; }; 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 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 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; }; struct rpc_filelist { const char *name; const struct file_operations *i_fop; umode_t mode; }; enum { RPCAUTH_info = 0, RPCAUTH_EOF = 1, }; enum { RPCAUTH_lockd = 0, RPCAUTH_mount = 1, RPCAUTH_nfs = 2, RPCAUTH_portmap = 3, RPCAUTH_statd = 4, RPCAUTH_nfsd4_cb = 5, RPCAUTH_cache = 6, RPCAUTH_nfsd = 7, RPCAUTH_gssd = 8, RPCAUTH_RootEOF = 9, }; struct rate_control_alg { struct list_head list; const struct rate_control_ops *ops; }; struct mptcp_out_options { u16 suboptions; struct mptcp_rm_list rm_list; u8 join_id; u8 backup; u8 reset_reason: 4; u8 reset_transient: 1; u8 csum_reqd: 1; u8 allow_join_id0: 1; union { struct { u64 sndr_key; u64 rcvr_key; u64 data_seq; u32 subflow_seq; u16 data_len; __sum16 csum; }; struct { struct mptcp_addr_info addr; u64 ahmac; }; struct { struct mptcp_ext ext_copy; u64 fail_seq; }; struct { u32 nonce; u32 token; u64 thmac; u8 hmac[20]; }; }; }; struct csum_pseudo_header { __be64 data_seq; __be32 subflow_seq; __be16 data_len; __sum16 csum; }; struct amd_iommu_event_desc { struct device_attribute attr; const char *event; }; struct amd_iommu; struct perf_amd_iommu { struct list_head list; struct pmu pmu; struct amd_iommu *iommu; char name[16]; u8 max_banks; u8 max_counters; u64 cntr_assign_mask; raw_spinlock_t lock; }; enum kernel_gp_hint { GP_NO_HINT = 0, GP_NON_CANONICAL = 1, GP_CANONICAL = 2, }; struct muldiv { u32 multiplier; u32 divider; }; struct freq_desc { bool use_msr_plat; struct muldiv muldiv[16]; u32 freqs[16]; u32 mask; }; struct ssb_state { struct ssb_state *shared_state; raw_spinlock_t lock; unsigned int disable_state; unsigned long local_state; }; 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 fork_frame { struct inactive_task_frame frame; struct pt_regs regs; }; struct kretprobe_blackpoint { const char *name; void *addr; }; struct __arch_relative_insn { u8 op; s32 raddr; } __attribute__((packed)); struct kvm_vcpu_pv_apf_data { __u32 flags; __u32 token; __u8 pad[56]; __u32 enabled; }; struct kvm_steal_time { __u64 steal; __u32 version; __u32 flags; __u8 preempted; __u8 u8_pad[3]; __u32 pad[11]; }; struct kvm_task_sleep_head { raw_spinlock_t lock; struct hlist_head list; }; struct kvm_task_sleep_node { struct hlist_node link; struct swait_queue_head wq; u32 token; int cpu; }; typedef unsigned __int128 __uint128_t; struct umd_info { const char *driver_name; struct file *pipe_to_umh; struct file *pipe_from_umh; struct path wd; struct pid *tgid; }; typedef void (*btf_trace_console)(void *, const char *, size_t); struct latched_seq { seqcount_latch_t latch; u64 val[2]; }; struct console_cmdline { char name[16]; int index; bool user_specified; char *options; }; struct printk_buffers { char outbuf[2048]; char scratchbuf[1024]; }; 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_flush_mode { CONSOLE_FLUSH_PENDING = 0, CONSOLE_REPLAY_ALL = 1, }; enum con_msg_format_flags { MSG_FORMAT_DEFAULT = 0, MSG_FORMAT_SYSLOG = 1, }; 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; }; 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 audit_nfcfgop_tab { enum audit_nfcfgop op; const char *s; }; struct audit_aux_data { struct audit_aux_data *next; int type; }; struct audit_chunk; struct audit_tree_refs { struct audit_tree_refs *next; struct audit_chunk *c[31]; }; struct audit_aux_data_bprm_fcaps { struct audit_aux_data d; struct audit_cap_data fcap; unsigned int fcap_ver; struct audit_cap_data old_pcap; struct audit_cap_data new_pcap; }; struct audit_aux_data_pids { struct audit_aux_data d; pid_t target_pid[16]; kuid_t target_auid[16]; kuid_t target_uid[16]; unsigned int target_sessionid[16]; u32 target_sid[16]; char target_comm[256]; int pid_count; }; struct fanotify_response_info_header { __u8 type; __u8 pad; __u16 len; }; struct fanotify_response_info_audit_rule { struct fanotify_response_info_header hdr; __u32 rule_number; __u32 subj_trust; __u32 obj_trust; }; struct trace_probe_log { const char *subsystem; const char **argv; int argc; int index; }; 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 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_ALL = 3, }; 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 remote_output { struct perf_buffer *rb; int err; }; 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 debugfs_devm_entry { int (*read)(struct seq_file *, void *); struct device *dev; }; struct selinux_kernel_status { u32 version; u32 sequence; u32 enforcing; u32 policyload; u32 deny_unknown; }; struct crypto_hash_walk { char *data; unsigned int offset; unsigned int alignmask; struct page *pg; unsigned int entrylen; unsigned int total; struct scatterlist *sg; unsigned int flags; }; struct crypto_report_hash { char type[64]; unsigned int blocksize; unsigned int digestsize; }; struct bdev_inode { struct block_device bdev; struct inode vfs_inode; }; 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_depth { unsigned int max_depth; int scale_step; bool scaled_max; unsigned int queue_depth; unsigned int default_depth; }; typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); 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, }; 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 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; }; enum virtio_input_config_select { VIRTIO_INPUT_CFG_UNSET = 0, VIRTIO_INPUT_CFG_ID_NAME = 1, VIRTIO_INPUT_CFG_ID_SERIAL = 2, VIRTIO_INPUT_CFG_ID_DEVIDS = 3, VIRTIO_INPUT_CFG_PROP_BITS = 16, VIRTIO_INPUT_CFG_EV_BITS = 17, VIRTIO_INPUT_CFG_ABS_INFO = 18, }; struct virtio_input_event { __le16 type; __le16 code; __le32 value; }; struct virtio_input { struct virtio_device *vdev; struct input_dev *idev; char name[64]; char serial[64]; char phys[64]; struct virtqueue *evt; struct virtqueue *sts; struct virtio_input_event evts[64]; spinlock_t lock; bool ready; }; 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 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_moxa8250_2p = 113, pbn_moxa8250_4p = 114, pbn_moxa8250_8p = 115, }; struct f815xxa_data { spinlock_t lock; int idx; }; struct pasid_entry { u64 val[8]; }; struct pasid_dir_entry { u64 val; }; struct drm_mode_obj_get_properties { __u64 props_ptr; __u64 prop_values_ptr; __u32 count_props; __u32 obj_id; __u32 obj_type; }; struct lri { i915_reg_t reg; u32 value; }; enum { INTEL_ADVANCED_CONTEXT = 0, INTEL_LEGACY_32B_CONTEXT = 1, INTEL_ADVANCED_AD_CONTEXT = 2, INTEL_LEGACY_64B_CONTEXT = 3, }; typedef u32 * (*wa_bb_func_t)(struct intel_engine_cs *, u32 *); struct i915_power_well_desc_list { const struct i915_power_well_desc *list; u8 count; }; 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 software_node_ref_args { const struct software_node *node; unsigned int nargs; u64 args[8]; }; 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; }; 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; typedef struct sg_io_hdr sg_io_hdr_t; 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; }; struct sg_proc_deviter { loff_t index; size_t max; }; 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]; }; 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 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 compat_sg_req_info { char req_state; char orphan; char sg_io_owned; char problem; int pack_id; compat_uptr_t usr_ptr; unsigned int duration; int unused; }; 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, }; enum { IFLA_VXLAN_UNSPEC = 0, IFLA_VXLAN_ID = 1, IFLA_VXLAN_GROUP = 2, IFLA_VXLAN_LINK = 3, IFLA_VXLAN_LOCAL = 4, IFLA_VXLAN_TTL = 5, IFLA_VXLAN_TOS = 6, IFLA_VXLAN_LEARNING = 7, IFLA_VXLAN_AGEING = 8, IFLA_VXLAN_LIMIT = 9, IFLA_VXLAN_PORT_RANGE = 10, IFLA_VXLAN_PROXY = 11, IFLA_VXLAN_RSC = 12, IFLA_VXLAN_L2MISS = 13, IFLA_VXLAN_L3MISS = 14, IFLA_VXLAN_PORT = 15, IFLA_VXLAN_GROUP6 = 16, IFLA_VXLAN_LOCAL6 = 17, IFLA_VXLAN_UDP_CSUM = 18, IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 19, IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 20, IFLA_VXLAN_REMCSUM_TX = 21, IFLA_VXLAN_REMCSUM_RX = 22, IFLA_VXLAN_GBP = 23, IFLA_VXLAN_REMCSUM_NOPARTIAL = 24, IFLA_VXLAN_COLLECT_METADATA = 25, IFLA_VXLAN_LABEL = 26, IFLA_VXLAN_GPE = 27, IFLA_VXLAN_TTL_INHERIT = 28, IFLA_VXLAN_DF = 29, IFLA_VXLAN_VNIFILTER = 30, __IFLA_VXLAN_MAX = 31, }; struct vxlan_fdb { struct hlist_node hlist; struct callback_head rcu; unsigned long updated; unsigned long used; struct list_head remotes; u8 eth_addr[6]; u16 state; __be32 vni; u16 flags; struct list_head nh_list; struct nexthop __attribute__((btf_type_tag("rcu"))) *nh; struct vxlan_dev __attribute__((btf_type_tag("rcu"))) *vdev; }; struct vxlanhdr { __be32 vx_flags; __be32 vx_vni; }; struct vxlanhdr_gpe { u8 oam_flag: 1; u8 reserved_flags1: 1; u8 np_applied: 1; u8 instance_applied: 1; u8 version: 2; u8 reserved_flags2: 2; u8 reserved_flags3; u8 reserved_flags4; u8 next_protocol; __be32 vx_vni; }; struct vxlanhdr_gbp { u8 vx_flags; u8 reserved_flags1: 3; u8 policy_applied: 1; u8 reserved_flags2: 2; u8 dont_learn: 1; u8 reserved_flags3: 1; __be16 policy_id; __be32 vx_vni; }; struct switchdev_notifier_info { struct net_device *dev; struct netlink_ext_ack *extack; const void *ctx; }; struct switchdev_notifier_vxlan_fdb_info { struct switchdev_notifier_info info; union vxlan_addr remote_ip; __be16 remote_port; __be32 remote_vni; u32 remote_ifindex; u8 eth_addr[6]; __be32 vni; bool offloaded; bool added_by_user; }; struct ifla_vxlan_port_range { __be16 low; __be16 high; }; 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 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)); 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; }; struct pps_ktime_compat { __s64 sec; __s32 nsec; __u32 flags; }; struct pps_kinfo_compat { __u32 assert_sequence; __u32 clear_sequence; struct pps_ktime_compat assert_tu; struct pps_ktime_compat clear_tu; int current_mode; } __attribute__((packed)); struct pps_fdata_compat { struct pps_kinfo_compat info; struct pps_ktime_compat timeout; } __attribute__((packed)); enum sync { DEFAULTSYNC = 0, NOSYNC = 1, FORCESYNC = 2, }; struct log_header_core { uint32_t magic; uint32_t version; uint64_t nr_regions; }; struct log_header_disk; struct log_c { struct dm_target *ti; int touched_dirtied; int touched_cleaned; int flush_failed; uint32_t region_size; unsigned int region_count; region_t sync_count; unsigned int bitset_uint32_count; uint32_t *clean_bits; uint32_t *sync_bits; uint32_t *recovering_bits; int sync_search; enum sync sync; struct dm_io_request io_req; int log_dev_failed; int log_dev_flush_failed; struct dm_dev *log_dev; struct log_header_core header; struct dm_io_region header_location; struct log_header_disk *disk_header; }; struct log_header_disk { __le32 magic; __le32 version; __le64 nr_regions; }; struct quirks_list_struct { struct hid_device_id hid_bl_item; struct list_head node; }; struct bmof_priv { union acpi_object *bmofdata; struct bin_attribute bmof_bin_attr; }; 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 skb_free_array { unsigned int skb_count; void *skb_array[16]; }; typedef int (*sendmsg_func)(struct sock *, struct msghdr *, struct kvec *, size_t, size_t); typedef int (*sendpage_func)(struct sock *, struct page *, int, size_t, int); 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 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, }; 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, }; 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]; }; typedef void (*btf_trace_bpf_test_finish)(void *, int *); 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_test_timer { enum { NO_PREEMPT = 0, NO_MIGRATE = 1, } mode; u32 i; u64 time_start; u64 time_spent; }; struct bpf_fentry_test_t { struct bpf_fentry_test_t *a; }; struct trace_event_raw_bpf_test_finish { struct trace_entry ent; int err; char __data[0]; }; 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 xdp_page_head { struct xdp_buff orig_ctx; struct xdp_buff ctx; struct xdp_frame frm; u8 data[0]; }; struct trace_event_data_offsets_bpf_test_finish {}; struct prog_test_pass1 { int x0; struct { int x1; struct { int x2; struct { int x3; }; }; }; }; struct prog_test_pass2 { int len; short arr1[4]; struct { char arr2[4]; unsigned long arr3[8]; } x; }; struct prog_test_fail1 { void *p; int x; }; struct prog_test_fail2 { int x8; struct prog_test_pass1 x; }; struct prog_test_fail3 { int len; char arr1[2]; char arr2[0]; }; struct bpf_raw_tp_test_run_info { struct bpf_prog *prog; void *ctx; u32 retval; }; 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; }; 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 iter_state { struct seq_net_private p; unsigned int bucket; }; 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 xt_nflog_info { __u32 len; __u16 group; __u16 threshold; __u16 flags; __u16 pad; char prefix[64]; }; 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, }; enum { BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, }; enum { TCP_NO_QUEUE = 0, TCP_RECV_QUEUE = 1, TCP_SEND_QUEUE = 2, TCP_QUEUES_NR = 3, }; 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; }; 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; }; struct michael_mic_ctx { u32 l; u32 r; }; struct mcs_group___2 { u16 flags; u8 streams; u8 shift; u8 bw; u16 duration[10]; }; enum minstrel_sample_type { MINSTREL_SAMPLE_TYPE_INC = 0, MINSTREL_SAMPLE_TYPE_JUMP = 1, MINSTREL_SAMPLE_TYPE_SLOW = 2, __MINSTREL_SAMPLE_TYPE_MAX = 3, }; 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]; }; enum { MPTCP_PM_ATTR_UNSPEC = 0, MPTCP_PM_ATTR_ADDR = 1, MPTCP_PM_ATTR_RCV_ADD_ADDRS = 2, MPTCP_PM_ATTR_SUBFLOWS = 3, MPTCP_PM_ATTR_TOKEN = 4, MPTCP_PM_ATTR_LOC_ID = 5, MPTCP_PM_ATTR_ADDR_REMOTE = 6, __MPTCP_PM_ATTR_MAX = 7, }; struct mptcp_pm_addr_entry { struct list_head list; struct mptcp_addr_info addr; u8 flags; int ifindex; struct socket *lsk; }; 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 hv_tsc_page_status { HV_TSC_PAGE_UNSET = 0, HV_TSC_PAGE_GUEST_CHANGED = 1, HV_TSC_PAGE_HOST_CHANGED = 2, HV_TSC_PAGE_SET = 3, HV_TSC_PAGE_BROKEN = 4, }; enum pfn_cache_usage { KVM_GUEST_USES_PFN = 1, KVM_HOST_USES_PFN = 2, KVM_GUEST_AND_HOST_USE_PFN = 3, }; 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 prev_counter; u64 eventsel; struct perf_event *perf_event; struct kvm_vcpu *vcpu; u64 current_config; }; struct kvm_pmu { 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_ovf_ctrl_mask; u64 reserved_bits; u64 raw_event_mask; u8 version; struct kvm_pmc gp_counters[8]; struct kvm_pmc fixed_counters[3]; struct irq_work irq_work; 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 unsigned long gva_t; 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_page)(struct kvm_vcpu *, struct kvm_mmu_page *); void (*invlpg)(struct kvm_vcpu *, gva_t, hpa_t); 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 { int nobjs; gfp_t gfp_zero; gfp_t gfp_custom; struct kmem_cache *kmem_cache; int capacity; 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; 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 kvm_vcpu *vcpu; struct list_head list; rwlock_t lock; struct mutex refresh_lock; void *khva; kvm_pfn_t pfn; enum pfn_cache_usage usage; 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_vcpu_xen { u64 hypercall_rip; u32 current_runstate; u8 upcall_vector; struct gfn_to_pfn_cache vcpu_info_cache; struct gfn_to_pfn_cache vcpu_time_info_cache; struct gfn_to_pfn_cache runstate_cache; struct gfn_to_pfn_cache runstate2_cache; u64 last_steal; u64 runstate_entry_time; u64 runstate_times[4]; unsigned long evtchn_pending_sel; u32 vcpu_id; u32 timer_virq; u64 timer_expires; atomic_t timer_pending; struct hrtimer timer; int poll_evtchn; struct timer_list poll_timer; struct kvm_hypervisor_cpuid cpuid; }; struct kvm_cpuid_entry2; struct kvm_vcpu_hv; 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 xsaves_enabled; 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; 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; bool hyperv_enabled; struct kvm_vcpu_hv *hyperv; struct kvm_vcpu_xen xen; 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; bool write_fault_to_shadow_pgtable; 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 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 kvm_page_track_notifier_node { struct hlist_node node; void (*track_write)(struct kvm_vcpu *, gpa_t, const u8 *, int, struct kvm_page_track_notifier_node *); void (*track_flush_slot)(struct kvm *, struct kvm_memory_slot *, struct kvm_page_track_notifier_node *); }; struct kvm_page_track_notifier_head { struct srcu_struct track_srcu; struct hlist_head track_notifier_list; }; 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 ms_hyperv_tsc_page { volatile u32 tsc_sequence; u32 reserved1; volatile u64 tsc_scale; volatile s64 tsc_offset; }; struct kvm_hv_syndbg { struct { u64 control; u64 status; u64 send_page; u64 recv_page; u64 pending_page; } control; u64 options; }; struct hv_partition_assist_pg; struct kvm_hv { struct mutex hv_lock; u64 hv_guest_os_id; u64 hv_hypercall; u64 hv_tsc_page; enum hv_tsc_page_status hv_tsc_page_status; u64 hv_crash_param[5]; u64 hv_crash_ctl; struct ms_hyperv_tsc_page tsc_ref; struct idr conn_to_evt; u64 hv_reenlightenment_control; u64 hv_tsc_emulation_control; u64 hv_tsc_emulation_status; u64 hv_invtsc_control; atomic_t num_mismatched_vp_indexes; unsigned int synic_auto_eoi_used; struct hv_partition_assist_pg *hv_pa_pg; struct kvm_hv_syndbg hv_syndbg; }; struct kvm_xen { struct mutex xen_lock; u32 xen_version; bool long_mode; bool runstate_update_flag; u8 upcall_vector; struct gfn_to_pfn_cache shinfo_cache; struct idr evtchn_ports; unsigned long poll_mask[16]; }; struct kvm_apic_map; struct kvm_x86_msr_filter; struct kvm_x86_pmu_event_filter; struct kvm_arch { 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; struct kvm_page_track_notifier_node mmu_sp_tracker; struct kvm_page_track_notifier_head track_notifier_head; spinlock_t mmu_unsync_pages_lock; struct list_head assigned_dev_head; 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; 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; struct kvm_hv hyperv; struct kvm_xen xen; 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; struct workqueue_struct *tdp_mmu_zap_wq; 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 kvm_vm_stat stat; struct kvm_arch arch; refcount_t users_count; struct mutex irq_lock; struct mmu_notifier mmu_notifier; unsigned long mmu_invalidate_seq; long mmu_invalidate_in_progress; unsigned long mmu_invalidate_range_start; unsigned long mmu_invalidate_range_end; 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_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_track[1]; }; 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_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 hv_partition_assist_pg { u32 tlb_lock_count; }; 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 nr; __u64 args[6]; __u64 ret; __u32 longmode; __u32 pad; } 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; 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 kvm_vcpu_hv_synic { u64 version; u64 control; u64 msg_page; u64 evt_page; atomic64_t sint[16]; atomic_t sint_to_gsi[16]; unsigned long auto_eoi_bitmap[4]; unsigned long vec_bitmap[4]; bool active; bool dont_zero_synic_pages; }; union hv_stimer_config { u64 as_uint64; struct { u64 enable: 1; u64 periodic: 1; u64 lazy: 1; u64 auto_enable: 1; u64 apic_vector: 8; u64 direct_mode: 1; u64 reserved_z0: 3; u64 sintx: 4; u64 reserved_z1: 44; }; }; union hv_message_flags { __u8 asu8; struct { __u8 msg_pending: 1; __u8 reserved: 7; }; }; union hv_port_id { __u32 asu32; struct { __u32 id: 24; __u32 reserved: 8; } u; }; struct hv_message_header { __u32 message_type; __u8 payload_size; union hv_message_flags message_flags; __u8 reserved[2]; union { __u64 sender; union hv_port_id port; }; }; struct hv_message { struct hv_message_header header; union { __u64 payload[30]; } u; }; struct kvm_vcpu_hv_stimer { struct hrtimer timer; int index; union hv_stimer_config config; u64 count; u64 exp_time; struct hv_message msg; bool msg_pending; }; struct kvm_vcpu_hv_tlb_flush_fifo { spinlock_t write_lock; struct { union { struct __kfifo kfifo; u64 *type; const u64 *const_type; char (*rectype)[0]; u64 *ptr; const u64 *ptr_const; }; u64 buf[16]; } entries; }; struct hv_nested_enlightenments_control { struct { __u32 directhypercall: 1; __u32 reserved: 31; } features; struct { __u32 inter_partition_comm: 1; __u32 reserved: 31; } hypercallControls; }; struct hv_vp_assist_page { __u32 apic_assist; __u32 reserved1; __u32 vtl_entry_reason; __u32 vtl_reserved; __u64 vtl_ret_x64rax; __u64 vtl_ret_x64rcx; struct hv_nested_enlightenments_control nested_control; __u8 enlighten_vmentry; __u8 reserved2[7]; __u64 current_nested_vmcs; __u8 synthetic_time_unhalted_timer_expired; __u8 reserved3[7]; __u8 virtualization_fault_information[40]; __u8 reserved4[8]; __u8 intercept_message[256]; __u8 vtl_ret_actions[256]; }; struct kvm_vcpu_hv { struct kvm_vcpu *vcpu; u32 vp_index; u64 hv_vapic; s64 runtime_offset; struct kvm_vcpu_hv_synic synic; struct kvm_hyperv_exit exit; struct kvm_vcpu_hv_stimer stimer[4]; unsigned long stimer_pending_bitmap[1]; bool enforce_cpuid; struct { u32 features_eax; u32 features_ebx; u32 features_edx; u32 enlightenments_eax; u32 enlightenments_ebx; u32 syndbg_cap_eax; u32 nested_eax; u32 nested_ebx; } cpuid_cache; struct kvm_vcpu_hv_tlb_flush_fifo tlb_flush_fifo[2]; u64 sparse_banks[64]; struct hv_vp_assist_page vp_assist_page; struct { u64 pa_page_gpa; u64 vm_id; u32 vp_id; } nested; }; struct kvm_dirty_gfn { __u32 flags; __u32 slot; __u64 offset; }; typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); 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 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 rp_check { RP_CHECK_CALL = 0, RP_CHECK_CHAIN_CALL = 1, RP_CHECK_RET = 2, }; 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; }; enum { AFFINITY = 0, AFFINITY_LIST = 1, EFFECTIVE = 2, EFFECTIVE_LIST = 3, }; 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 symsearch { const struct kernel_symbol *start; const struct kernel_symbol *stop; const s32 *crcs; enum mod_license license; }; 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 *module_init; }; struct trace_event_data_offsets_module_load { u32 name; }; struct trace_event_data_offsets_module_free { u32 name; }; struct trace_event_data_offsets_module_refcnt { u32 name; }; struct trace_event_data_offsets_module_request { u32 name; }; 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 { 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; 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; u64 read_stamp; u64 page_stamp; struct ring_buffer_event *event; 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; long wait_index; bool waiters_pending; bool full_waiters_pending; bool wakeup_full; }; struct trace_buffer; 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; 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; 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; }; struct rb_event_info { u64 ts; u64 delta; u64 before; u64 after; unsigned long length; struct buffer_page *tail_page; int add_timestamp; }; 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_seq_task_info { struct bpf_iter_seq_task_common common; u32 tid; }; struct reuseport_array { struct bpf_map map; struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; }; struct pkcs7_message; struct copy_subpage_arg { struct page *dst; struct page *src; struct vm_area_struct *vma; }; 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; struct { atomic_t reqs_available; long: 32; 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; }; struct { struct mutex ring_lock; wait_queue_head_t wait; long: 64; }; struct { unsigned int tail; unsigned int completed_events; spinlock_t completion_lock; long: 32; 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: 32; 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; }; typedef u32 compat_aio_context_t; struct __aio_sigset { const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; size_t sigsetsize; }; struct __compat_aio_sigset { compat_uptr_t sigmask; compat_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]; }; typedef __kernel_mode_t mode_t; struct orlov_stats { __u64 free_clusters; __u32 free_inodes; __u32 used_dirs; }; struct nfs_find_desc { struct nfs_fh *fh; struct nfs_fattr *fattr; }; typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); struct avc_cache { struct hlist_head slots[512]; spinlock_t slots_lock[512]; atomic_t lru_hint; atomic_t active_nodes; u32 latest_notif; }; struct selinux_avc { unsigned int avc_cache_threshold; struct avc_cache avc_cache; }; struct avc_callback_node { int (*callback)(u32); u32 events; struct avc_callback_node *next; }; struct avc_xperms_node; struct avc_entry { u32 ssid; u32 tsid; u16 tclass; struct av_decision avd; struct avc_xperms_node *xp_node; }; struct avc_node { struct avc_entry ae; struct hlist_node list; struct callback_head rhead; }; struct avc_xperms_node { struct extended_perms xp; struct list_head xpd_head; }; struct trace_event_raw_selinux_audited { struct trace_entry ent; u32 requested; u32 denied; u32 audited; int result; u32 __data_loc_scontext; u32 __data_loc_tcontext; u32 __data_loc_tclass; char __data[0]; }; struct avc_xperms_decision_node { struct extended_perms_decision xpd; struct list_head xpd_list; }; struct trace_event_data_offsets_selinux_audited { u32 scontext; u32 tcontext; u32 tclass; }; struct cmac_tfm_ctx { struct crypto_cipher *child; u8 ctx[0]; }; struct cmac_desc_ctx { unsigned int len; u8 ctx[0]; }; struct ccm_instance_ctx { struct crypto_skcipher_spawn ctr; struct crypto_ahash_spawn mac; }; 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; }; 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; }; enum prep_dispatch { PREP_DISPATCH_OK = 0, PREP_DISPATCH_NO_TAG = 1, PREP_DISPATCH_NO_BUDGET = 2, }; struct blk_mq_qe_pair { struct list_head node; struct request_queue *q; struct elevator_type *type; }; 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; }; typedef struct tree_desc_s tree_desc; 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 enum { ZSTD_reset_session_only = 1, ZSTD_reset_parameters = 2, ZSTD_reset_session_and_parameters = 3, } ZSTD_ResetDirective; typedef ZSTD_DCtx___2 ZSTD_DStream___2; 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 font_data { unsigned int extra[4]; const unsigned char data[0]; }; struct node_groups { unsigned int id; union { unsigned int ngroups; unsigned int ncpus; }; }; 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; }; struct find_child_walk_data { struct acpi_device *adev; u64 address; int score; bool check_sta; bool check_children; }; 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; }; typedef u64 acpi_integer; enum { AML_FIELD_UPDATE_PRESERVE = 0, AML_FIELD_UPDATE_WRITE_AS_ONES = 32, AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, }; struct acpi_pci_device { acpi_handle device; struct acpi_pci_device *next; }; struct acpi_dma_spec; struct acpi_dma { struct list_head dma_controllers; struct device *dev; struct dma_chan * (*acpi_dma_xlate)(struct acpi_dma_spec *, struct acpi_dma *); void *data; unsigned short base_request_line; unsigned short end_request_line; }; struct acpi_dma_spec { int chan_id; int slave_id; struct device *dev; }; struct acpi_csrt_group { u32 length; u32 vendor_id; u32 subvendor_id; u16 device_id; u16 subdevice_id; u16 revision; u16 reserved; u32 shared_info_length; }; struct acpi_csrt_shared_info { u16 major_version; u16 minor_version; u32 mmio_base_low; u32 mmio_base_high; u32 gsi_interrupt; u8 interrupt_polarity; u8 interrupt_mode; u8 num_channels; u8 dma_address_width; u16 base_request_line; u16 num_handshake_signals; u32 max_block_size; }; struct acpi_table_csrt { struct acpi_table_header header; }; struct acpi_dma_parser_data { struct acpi_dma_spec dma_spec; size_t index; size_t n; }; struct acpi_dma_filter_info { dma_cap_mask_t dma_cap; dma_filter_fn filter_fn; }; struct uni_pagedict { u16 **uni_pgdir[32]; unsigned long refcount; unsigned long sum; unsigned char *inverse_translations[4]; u16 *inverse_trans_unicode; }; struct intel_agp_driver_description { unsigned int chip_id; char *name; const struct agp_bridge_driver *driver; }; typedef void (*btf_trace_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64); typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, unsigned long); struct trace_event_raw_qi_submit { struct trace_entry ent; u64 qw0; u64 qw1; u64 qw2; u64 qw3; u32 __data_loc_iommu; char __data[0]; }; struct trace_event_raw_prq_report { struct trace_entry ent; u64 dw0; u64 dw1; u64 dw2; u64 dw3; unsigned long seq; u32 __data_loc_iommu; u32 __data_loc_dev; u32 __data_loc_buff; char __data[0]; }; struct trace_event_data_offsets_qi_submit { u32 iommu; }; struct trace_event_data_offsets_prq_report { u32 iommu; u32 dev; u32 buff; }; struct i915_ttm_buddy_manager { struct ttm_resource_manager manager; struct drm_buddy mm; struct list_head reserved; struct mutex lock; unsigned long visible_size; unsigned long visible_avail; unsigned long visible_reserved; u64 default_page_size; }; enum slpc_param_id { SLPC_PARAM_TASK_ENABLE_GTPERF = 0, SLPC_PARAM_TASK_DISABLE_GTPERF = 1, SLPC_PARAM_TASK_ENABLE_BALANCER = 2, SLPC_PARAM_TASK_DISABLE_BALANCER = 3, SLPC_PARAM_TASK_ENABLE_DCC = 4, SLPC_PARAM_TASK_DISABLE_DCC = 5, SLPC_PARAM_GLOBAL_MIN_GT_UNSLICE_FREQ_MHZ = 6, SLPC_PARAM_GLOBAL_MAX_GT_UNSLICE_FREQ_MHZ = 7, SLPC_PARAM_GLOBAL_MIN_GT_SLICE_FREQ_MHZ = 8, SLPC_PARAM_GLOBAL_MAX_GT_SLICE_FREQ_MHZ = 9, SLPC_PARAM_GTPERF_THRESHOLD_MAX_FPS = 10, SLPC_PARAM_GLOBAL_DISABLE_GT_FREQ_MANAGEMENT = 11, SLPC_PARAM_GTPERF_ENABLE_FRAMERATE_STALLING = 12, SLPC_PARAM_GLOBAL_DISABLE_RC6_MODE_CHANGE = 13, SLPC_PARAM_GLOBAL_OC_UNSLICE_FREQ_MHZ = 14, SLPC_PARAM_GLOBAL_OC_SLICE_FREQ_MHZ = 15, SLPC_PARAM_GLOBAL_ENABLE_IA_GT_BALANCING = 16, SLPC_PARAM_GLOBAL_ENABLE_ADAPTIVE_BURST_TURBO = 17, SLPC_PARAM_GLOBAL_ENABLE_EVAL_MODE = 18, SLPC_PARAM_GLOBAL_ENABLE_BALANCER_IN_NON_GAMING_MODE = 19, SLPC_PARAM_GLOBAL_RT_MODE_TURBO_FREQ_DELTA_MHZ = 20, SLPC_PARAM_PWRGATE_RC_MODE = 21, SLPC_PARAM_EDR_MODE_COMPUTE_TIMEOUT_MS = 22, SLPC_PARAM_EDR_QOS_FREQ_MHZ = 23, SLPC_PARAM_MEDIA_FF_RATIO_MODE = 24, SLPC_PARAM_ENABLE_IA_FREQ_LIMITING = 25, SLPC_PARAM_STRATEGIES = 26, SLPC_PARAM_POWER_PROFILE = 27, SLPC_PARAM_IGNORE_EFFICIENT_FREQUENCY = 28, SLPC_MAX_PARAM = 32, }; enum slpc_event_id { SLPC_EVENT_RESET = 0, SLPC_EVENT_SHUTDOWN = 1, SLPC_EVENT_PLATFORM_INFO_CHANGE = 2, SLPC_EVENT_DISPLAY_MODE_CHANGE = 3, SLPC_EVENT_FLIP_COMPLETE = 4, SLPC_EVENT_QUERY_TASK_STATE = 5, SLPC_EVENT_PARAMETER_SET = 6, SLPC_EVENT_PARAMETER_UNSET = 7, }; enum slpc_global_state { SLPC_GLOBAL_STATE_NOT_RUNNING = 0, SLPC_GLOBAL_STATE_INITIALIZING = 1, SLPC_GLOBAL_STATE_RESETTING = 2, SLPC_GLOBAL_STATE_RUNNING = 3, SLPC_GLOBAL_STATE_SHUTTING_DOWN = 4, SLPC_GLOBAL_STATE_ERROR = 5, }; struct intel_limit { struct { int min; int max; } dot; struct { int min; int max; } vco; struct { int min; int max; } n; struct { int min; int max; } m; struct { int min; int max; } m1; struct { int min; int max; } m2; struct { int min; int max; } p; struct { int min; int max; } p1; struct { int dot_limit; int p2_slow; int p2_fast; } p2; }; struct intel_sdvo_caps { u8 vendor_id; u8 device_id; u8 device_rev_id; u8 sdvo_version_major; u8 sdvo_version_minor; unsigned int sdvo_inputs_mask: 2; unsigned int smooth_scaling: 1; unsigned int sharp_scaling: 1; unsigned int up_scaling: 1; unsigned int down_scaling: 1; unsigned int stall_support: 1; unsigned int pad: 1; u16 output_flags; }; struct intel_sdvo { struct intel_encoder base; struct i2c_adapter *i2c; u8 slave_addr; long: 56; struct i2c_adapter ddc; i915_reg_t sdvo_reg; u16 controlled_output; struct intel_sdvo_caps caps; u8 colorimetry_cap; char: 8; int pixel_clock_min; int pixel_clock_max; u16 attached_output; u16 hotplug_active; enum port port; bool has_hdmi_monitor; bool has_hdmi_audio; u8 ddc_bus; u8 dtd_sdvo_flags; int: 32; } __attribute__((packed)); struct intel_sdvo_connector { struct intel_connector base; u16 output_flag; u8 tv_format_supported[19]; int format_supported_num; struct drm_property *tv_format; struct drm_property *left; struct drm_property *right; struct drm_property *top; struct drm_property *bottom; struct drm_property *hpos; struct drm_property *vpos; struct drm_property *contrast; struct drm_property *saturation; struct drm_property *hue; struct drm_property *sharpness; struct drm_property *flicker_filter; struct drm_property *flicker_filter_adaptive; struct drm_property *flicker_filter_2d; struct drm_property *tv_chroma_filter; struct drm_property *tv_luma_filter; struct drm_property *dot_crawl; struct drm_property *brightness; u32 max_hscan; u32 max_vscan; bool is_hdmi; }; struct intel_sdvo_connector_state { struct intel_digital_connector_state base; struct { unsigned int overscan_h; unsigned int overscan_v; unsigned int hpos; unsigned int vpos; unsigned int sharpness; unsigned int flicker_filter; unsigned int flicker_filter_2d; unsigned int flicker_filter_adaptive; unsigned int chroma_filter; unsigned int luma_filter; unsigned int dot_crawl; } tv; }; struct intel_sdvo_tv_format { unsigned int ntsc_m: 1; unsigned int ntsc_j: 1; unsigned int ntsc_443: 1; unsigned int pal_b: 1; unsigned int pal_d: 1; unsigned int pal_g: 1; unsigned int pal_h: 1; unsigned int pal_i: 1; unsigned int pal_m: 1; unsigned int pal_n: 1; unsigned int pal_nc: 1; unsigned int pal_60: 1; unsigned int secam_b: 1; unsigned int secam_d: 1; unsigned int secam_g: 1; unsigned int secam_k: 1; unsigned int secam_k1: 1; unsigned int secam_l: 1; unsigned int secam_60: 1; unsigned int hdtv_std_smpte_240m_1080i_59: 1; unsigned int hdtv_std_smpte_240m_1080i_60: 1; unsigned int hdtv_std_smpte_260m_1080i_59: 1; unsigned int hdtv_std_smpte_260m_1080i_60: 1; unsigned int hdtv_std_smpte_274m_1080i_50: 1; unsigned int hdtv_std_smpte_274m_1080i_59: 1; unsigned int hdtv_std_smpte_274m_1080i_60: 1; unsigned int hdtv_std_smpte_274m_1080p_23: 1; unsigned int hdtv_std_smpte_274m_1080p_24: 1; unsigned int hdtv_std_smpte_274m_1080p_25: 1; unsigned int hdtv_std_smpte_274m_1080p_29: 1; unsigned int hdtv_std_smpte_274m_1080p_30: 1; unsigned int hdtv_std_smpte_274m_1080p_50: 1; unsigned int hdtv_std_smpte_274m_1080p_59: 1; unsigned int hdtv_std_smpte_274m_1080p_60: 1; unsigned int hdtv_std_smpte_295m_1080i_50: 1; unsigned int hdtv_std_smpte_295m_1080p_50: 1; unsigned int hdtv_std_smpte_296m_720p_59: 1; unsigned int hdtv_std_smpte_296m_720p_60: 1; unsigned int hdtv_std_smpte_296m_720p_50: 1; unsigned int hdtv_std_smpte_293m_480p_59: 1; unsigned int hdtv_std_smpte_170m_480i_59: 1; unsigned int hdtv_std_iturbt601_576i_50: 1; unsigned int hdtv_std_iturbt601_576p_50: 1; unsigned int hdtv_std_eia_7702a_480i_60: 1; unsigned int hdtv_std_eia_7702a_480p_60: 1; unsigned int pad: 3; } __attribute__((packed)); struct intel_sdvo_encode { u8 dvi_rev; u8 hdmi_rev; }; struct intel_sdvo_set_target_input_args { unsigned int target_1: 1; unsigned int pad: 7; } __attribute__((packed)); struct intel_sdvo_enhancements_reply { unsigned int flicker_filter: 1; unsigned int flicker_filter_adaptive: 1; unsigned int flicker_filter_2d: 1; unsigned int saturation: 1; unsigned int hue: 1; unsigned int brightness: 1; unsigned int contrast: 1; unsigned int overscan_h: 1; unsigned int overscan_v: 1; unsigned int hpos: 1; unsigned int vpos: 1; unsigned int sharpness: 1; unsigned int dot_crawl: 1; unsigned int dither: 1; unsigned int tv_chroma_filter: 1; unsigned int tv_luma_filter: 1; } __attribute__((packed)); struct intel_sdvo_dtd { struct { u16 clock; u8 h_active; u8 h_blank; u8 h_high; u8 v_active; u8 v_blank; u8 v_high; } part1; struct { u8 h_sync_off; u8 h_sync_width; u8 v_sync_off_width; u8 sync_off_width_high; u8 dtd_flags; u8 sdvo_flags; u8 v_sync_off_high; u8 reserved; } part2; }; struct intel_sdvo_get_trained_inputs_response { unsigned int input0_trained: 1; unsigned int input1_trained: 1; unsigned int pad: 6; } __attribute__((packed)); struct intel_sdvo_preferred_input_timing_args { u16 clock; u16 width; u16 height; u8 interlace: 1; u8 scaled: 1; u8 pad: 6; } __attribute__((packed)); struct intel_sdvo_sdtv_resolution_request { unsigned int ntsc_m: 1; unsigned int ntsc_j: 1; unsigned int ntsc_443: 1; unsigned int pal_b: 1; unsigned int pal_d: 1; unsigned int pal_g: 1; unsigned int pal_h: 1; unsigned int pal_i: 1; unsigned int pal_m: 1; unsigned int pal_n: 1; unsigned int pal_nc: 1; unsigned int pal_60: 1; unsigned int secam_b: 1; unsigned int secam_d: 1; unsigned int secam_g: 1; unsigned int secam_k: 1; unsigned int secam_k1: 1; unsigned int secam_l: 1; unsigned int secam_60: 1; unsigned int pad: 5; } __attribute__((packed)); struct intel_sdvo_in_out_map { u16 in0; u16 in1; }; struct intel_sdvo_pixel_clock_range { u16 min; u16 max; }; 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; }; struct virtio_scsi_event { __virtio32 event; __u8 lun[8]; __virtio32 reason; }; struct virtio_scsi; struct virtio_scsi_event_node { struct virtio_scsi *vscsi; struct virtio_scsi_event event; struct work_struct work; }; struct virtio_scsi_vq { spinlock_t vq_lock; struct virtqueue *vq; }; struct virtio_scsi { struct virtio_device *vdev; struct virtio_scsi_event_node event_list[8]; u32 num_queues; struct hlist_node node; bool stop_events; struct virtio_scsi_vq ctrl_vq; struct virtio_scsi_vq event_vq; struct virtio_scsi_vq req_vqs[0]; }; struct virtio_scsi_cmd_req { __u8 lun[8]; __virtio64 tag; __u8 task_attr; __u8 prio; __u8 crn; __u8 cdb[32]; } __attribute__((packed)); struct virtio_scsi_cmd_req_pi { __u8 lun[8]; __virtio64 tag; __u8 task_attr; __u8 prio; __u8 crn; __virtio32 pi_bytesout; __virtio32 pi_bytesin; __u8 cdb[32]; } __attribute__((packed)); struct virtio_scsi_ctrl_tmf_req { __virtio32 type; __virtio32 subtype; __u8 lun[8]; __virtio64 tag; }; struct virtio_scsi_ctrl_an_req { __virtio32 type; __u8 lun[8]; __virtio32 event_requested; }; struct virtio_scsi_cmd_resp { __virtio32 sense_len; __virtio32 resid; __virtio16 status_qualifier; __u8 status; __u8 response; __u8 sense[96]; }; struct virtio_scsi_ctrl_tmf_resp { __u8 response; }; struct virtio_scsi_ctrl_an_resp { __virtio32 event_actual; __u8 response; } __attribute__((packed)); struct virtio_scsi_cmd { struct scsi_cmnd *sc; struct completion *comp; union { struct virtio_scsi_cmd_req cmd; struct virtio_scsi_cmd_req_pi cmd_pi; struct virtio_scsi_ctrl_tmf_req tmf; struct virtio_scsi_ctrl_an_req an; } req; union { struct virtio_scsi_cmd_resp cmd; struct virtio_scsi_ctrl_tmf_resp tmf; struct virtio_scsi_ctrl_an_resp an; struct virtio_scsi_event evt; } resp; long: 8; long: 64; } __attribute__((packed)); struct cis_cache_entry { struct list_head node; unsigned int addr; unsigned int len; unsigned int attr; unsigned char cache[0]; }; struct tuple_flags { u_int link_space: 4; u_int has_link: 1; u_int mfc_fn: 3; u_int space: 4; }; struct usb_phy_roothub { struct phy *phy; struct list_head list; }; 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; }; 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 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; }; struct snd_fasync { struct fasync_struct *fasync; int signal; int poll; int on; struct list_head list; }; enum { HDA_DIG_NONE = 0, HDA_DIG_EXCLUSIVE = 1, HDA_DIG_ANALOG_DUP = 2, }; enum { HDA_FRONT = 0, HDA_REAR = 1, HDA_CLFE = 2, HDA_SIDE = 3, }; struct hda_beep { struct input_dev *dev; struct hda_codec *codec; char phys[32]; int tone; hda_nid_t nid; unsigned int registered: 1; unsigned int enabled: 1; unsigned int linear_tone: 1; unsigned int playing: 1; unsigned int keep_power_at_enable: 1; struct work_struct beep_work; struct mutex mutex; void (*power_hook)(struct hda_beep *, bool); }; struct hda_conn_list { struct list_head list; int len; hda_nid_t nid; hda_nid_t conns[0]; }; struct hda_nid_item { struct snd_kcontrol *kctl; unsigned int index; hda_nid_t nid; unsigned short flags; }; struct hda_cvt_setup { hda_nid_t nid; u8 stream_tag; u8 channel_id; u16 format_id; unsigned char active; unsigned char dirty; }; typedef int (*map_follower_func_t)(struct hda_codec *, void *, struct snd_kcontrol *); struct follower_init_arg { struct hda_codec *codec; int step; }; struct hda_vmaster_mute_hook { struct snd_kcontrol *sw_kctl; void (*hook)(void *, int); struct hda_codec *codec; }; struct hda_multi_out { int num_dacs; const hda_nid_t *dac_nids; hda_nid_t hp_nid; hda_nid_t hp_out_nid[5]; hda_nid_t extra_out_nid[5]; hda_nid_t dig_out_nid; const hda_nid_t *follower_dig_outs; int max_channels; int dig_out_used; int no_share_stream; int share_spdif; unsigned int analog_rates; unsigned int analog_maxbps; u64 analog_formats; unsigned int spdif_rates; unsigned int spdif_maxbps; u64 spdif_formats; }; struct hda_amp_list; struct hda_loopback_check { const struct hda_amp_list *amplist; int power_on; }; struct hda_amp_list { hda_nid_t nid; unsigned char dir; unsigned char idx; }; struct hda_input_mux_item { char label[32]; unsigned int index; }; struct hda_input_mux { unsigned int num_items; struct hda_input_mux_item items[36]; }; 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_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_match_arp { struct flow_dissector_key_arp *key; struct flow_dissector_key_arp *mask; }; 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_match_ports_range { struct flow_dissector_key_ports_range *key; struct flow_dissector_key_ports_range *mask; }; struct flow_match_tcp { struct flow_dissector_key_tcp *key; struct flow_dissector_key_tcp *mask; }; struct flow_match_icmp { struct flow_dissector_key_icmp *key; struct flow_dissector_key_icmp *mask; }; struct flow_match_mpls { struct flow_dissector_key_mpls *key; struct flow_dissector_key_mpls *mask; }; struct flow_match_enc_keyid { struct flow_dissector_key_keyid *key; struct flow_dissector_key_keyid *mask; }; struct flow_match_enc_opts { struct flow_dissector_key_enc_opts *key; struct flow_dissector_key_enc_opts *mask; }; struct flow_match_ct { struct flow_dissector_key_ct *key; struct flow_dissector_key_ct *mask; }; struct flow_match_pppoe { struct flow_dissector_key_pppoe *key; struct flow_dissector_key_pppoe *mask; }; struct flow_match_l2tpv3 { struct flow_dissector_key_l2tpv3 *key; struct flow_dissector_key_l2tpv3 *mask; }; 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; raw_spinlock_t lock; long: 32; long: 64; long: 64; }; 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; long: 32; long: 64; }; struct bpf_shtab_bucket { struct hlist_head head; raw_spinlock_t lock; }; struct bpf_shtab_elem { struct callback_head rcu; u32 hash; struct sock *sk; struct hlist_node node; u8 key[0]; }; 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; }; 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; }; struct xt_secmark_target_info_v1 { __u8 mode; char secctx[256]; __u32 secid; }; struct xt_secmark_target_info { __u8 mode; __u32 secid; char secctx[256]; }; 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 ac6_iter_state { struct seq_net_private p; struct net_device *dev; struct inet6_dev *idev; }; 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; }; 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, }; struct xsk_dma_map { dma_addr_t *dma_pages; struct device *dev; struct net_device *netdev; refcount_t users; struct list_head list; u32 dma_pages_cnt; bool dma_need_sync; }; 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]; }; 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: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; 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]; }; enum insn_type { CALL = 0, NOP___2 = 1, JMP = 2, RET = 3, JCC = 4, }; struct user_i387_ia32_struct { u32 cwd; u32 swd; u32 twd; u32 fip; u32 fcs; u32 foo; u32 fos; u32 st_space[20]; }; struct mtrr_sentry32 { compat_ulong_t base; compat_uint_t size; compat_uint_t type; }; struct mtrr_gentry32 { compat_ulong_t regnum; compat_uint_t base; compat_uint_t size; compat_uint_t type; }; struct mtrr_sentry { __u64 base; __u32 size; __u32 type; }; struct mtrr_gentry { __u64 base; __u32 size; __u32 regnum; __u32 type; __u32 _pad; }; typedef void crash_vmclear_fn(); enum cpa_warn { CPA_CONFLICT = 0, CPA_PROTECT = 1, CPA_DETECT = 2, }; 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; }; typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); typedef void (*btf_trace_contention_end)(void *, void *, int); 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 mutex_waiter { struct list_head list; struct task_struct *task; struct ww_acquire_ctx *ww_ctx; }; struct trace_event_data_offsets_contention_begin {}; struct trace_event_data_offsets_contention_end {}; struct klp_shadow { struct hlist_node node; struct callback_head callback_head; void *obj; unsigned long id; char data[0]; }; typedef void (*klp_shadow_dtor_t)(void *, void *); typedef int (*klp_shadow_ctor_t)(void *, void *, void *); struct dma_devres { size_t size; void *vaddr; dma_addr_t dma_handle; unsigned long attrs; }; struct futex_waitv { __u64 val; __u64 uaddr; __u32 flags; __u32 __reserved; }; struct futex_vector { struct futex_waitv w; struct futex_q q; }; 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 trace_bprintk_fmt { struct list_head list; const char *fmt; }; struct dynevent_arg_pair { const char *lhs; const char *rhs; char operator; char separator; }; 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; long: 32; long: 64; long: 64; long: 64; }; 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 { __u32 prefixlen; __u8 data[0]; }; 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_migratepages)(void *, struct compact_control *, 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); 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]; }; 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 eventfd_ctx { struct kref kref; wait_queue_head_t wqh; __u64 count; unsigned int flags; int id; }; 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 compat_mq_attr { compat_long_t mq_flags; compat_long_t mq_maxmsg; compat_long_t mq_msgsize; compat_long_t mq_curmsgs; compat_long_t __reserved[4]; }; struct mqueue_fs_context { struct ipc_namespace *ipc_ns; bool newns; }; 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 *); struct hash_alg_common halg; }; struct ahash_instance { void (*free)(struct ahash_instance *); union { struct { char head[88]; struct crypto_instance base; } s; struct ahash_alg alg; }; }; struct authenc_esn_instance_ctx { struct crypto_ahash_spawn auth; struct crypto_skcipher_spawn enc; }; 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 prio_policy { POLICY_NO_CHANGE = 0, POLICY_NONE_TO_RT = 1, POLICY_RESTRICT_TO_BE = 2, POLICY_ALL_TO_IDLE = 3, }; struct ioprio_blkcg { struct blkcg_policy_data cpd; enum prio_policy prio_policy; }; struct ioprio_blkg { struct blkg_policy_data pd; }; struct io_uring_rsrc_update { __u32 offset; __u32 resv; __u64 data; }; enum smbios_attr_enum { SMBIOS_ATTR_NONE = 0, SMBIOS_ATTR_LABEL_SHOW = 1, SMBIOS_ATTR_INSTANCE_SHOW = 2, }; enum acpi_attr_enum { ACPI_ATTR_LABEL_SHOW = 0, ACPI_ATTR_INDEX_SHOW = 1, }; 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 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; void *handler_addr; 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; }; enum bios_platform_class { BIOS_CLIENT = 0, BIOS_SERVER = 1, }; struct client_hdr { u32 log_max_len; u64 log_start_addr; } __attribute__((packed)); struct server_hdr { u16 reserved; u64 log_max_len; u64 log_start_addr; } __attribute__((packed)); struct acpi_tcpa { struct acpi_table_header hdr; u16 platform_class; union { struct client_hdr client; struct server_hdr server; }; } __attribute__((packed)); struct acpi_tpm2_phy { u8 start_method_specific[12]; u32 log_area_minimum_length; u64 log_area_start_address; }; struct vlv_s0ix_state { u32 wr_watermark; u32 gfx_prio_ctrl; u32 arb_mode; u32 gfx_pend_tlb0; u32 gfx_pend_tlb1; u32 lra_limits[13]; u32 media_max_req_count; u32 gfx_max_req_count; u32 render_hwsp; u32 ecochk; u32 bsd_hwsp; u32 blt_hwsp; u32 tlb_rd_addr; u32 g3dctl; u32 gsckgctl; u32 mbctl; u32 ucgctl1; u32 ucgctl3; u32 rcgctl1; u32 rcgctl2; u32 rstctl; u32 misccpctl; u32 gfxpause; u32 rpdeuhwtc; u32 rpdeuc; u32 ecobus; u32 pwrdwnupctl; u32 rp_down_timeout; u32 rp_deucsw; u32 rcubmabdtmr; u32 rcedata; u32 spare2gh; u32 gt_imr; u32 gt_ier; u32 pm_imr; u32 pm_ier; u32 gt_scratch[8]; u32 tilectl; u32 gt_fifoctl; u32 gtlc_wake_ctrl; u32 gtlc_survive; u32 pmwgicz; u32 gu_ctl0; u32 gu_ctl1; u32 pcbr; u32 clock_gate_dis2; }; struct drm_i915_gem_create_ext_memory_regions { struct i915_user_extension base; __u32 pad; __u32 num_regions; __u64 regions; }; struct create_ext___2 { struct drm_i915_private___3 *i915; struct intel_memory_region *placements[7]; unsigned int n_placements; unsigned int placement_mask; unsigned long flags; }; struct drm_i915_gem_create { __u64 size; __u32 handle; __u32 pad; }; struct drm_i915_gem_create_ext { __u64 size; __u32 handle; __u32 flags; __u64 extensions; }; struct drm_i915_gem_create_ext_protected_content { struct i915_user_extension base; __u32 flags; }; enum intel_guc_rc_options { INTEL_GUCRC_HOST_CONTROL = 0, INTEL_GUCRC_FIRMWARE_CONTROL = 1, }; struct skl_wrpll_params { u32 dco_fraction; u32 dco_integer; u32 qdiv_ratio; u32 qdiv_mode; u32 kdiv; u32 pdiv; u32 central_freq; }; struct icl_combo_pll_params { int clock; struct skl_wrpll_params wrpll; }; struct skl_dpll_regs { i915_reg_t ctl; i915_reg_t cfgcr1; i915_reg_t cfgcr2; }; struct skl_wrpll_context { u64 min_deviation; u64 central_freq; u64 dco_freq; unsigned int p; }; struct hsw_wrpll_rnp { unsigned int p; unsigned int n2; unsigned int r2; }; typedef const u8 * (*fn_mipi_elem_exec)(struct intel_dsi *, const u8 *); struct gpio_map { u16 base_offset; bool init; }; struct gpiod_lookup { const char *key; u16 chip_hwnum; const char *con_id; unsigned int idx; unsigned long flags; }; struct gpiod_lookup_table { struct list_head list; const char *dev_id; struct gpiod_lookup table[0]; }; enum pinctrl_map_type { PIN_MAP_TYPE_INVALID = 0, PIN_MAP_TYPE_DUMMY_STATE = 1, PIN_MAP_TYPE_MUX_GROUP = 2, PIN_MAP_TYPE_CONFIGS_PIN = 3, PIN_MAP_TYPE_CONFIGS_GROUP = 4, }; struct pinctrl_map_mux { const char *group; const char *function; }; struct pinctrl_map_configs { const char *group_or_pin; unsigned long *configs; unsigned int num_configs; }; struct pinctrl_map { const char *dev_name; const char *name; enum pinctrl_map_type type; const char *ctrl_dev_name; union { struct pinctrl_map_mux mux; struct pinctrl_map_configs configs; } data; }; enum { MIPI_RESET_1 = 0, MIPI_AVDD_EN_1 = 1, MIPI_BKLT_EN_1 = 2, MIPI_AVEE_EN_1 = 3, MIPI_VIO_EN_1 = 4, MIPI_RESET_2 = 5, MIPI_AVDD_EN_2 = 6, MIPI_BKLT_EN_2 = 7, MIPI_AVEE_EN_2 = 8, MIPI_VIO_EN_2 = 9, }; struct i2c_adapter_lookup { u16 slave_addr; struct intel_dsi *intel_dsi; acpi_handle dev_handle; }; struct virtio_gpu_vbuffer; typedef void (*virtio_gpu_resp_cb)(struct virtio_gpu_device *, struct virtio_gpu_vbuffer *); struct virtio_gpu_vbuffer { char *buf; int size; void *data_buf; uint32_t data_size; char *resp_buf; int resp_size; virtio_gpu_resp_cb resp_cb; void *resp_cb_data; struct virtio_gpu_object_array *objs; struct list_head list; uint32_t seqno; }; struct virtio_gpu_command; struct virtio_gpu_resp_display_info { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_display_one pmodes[16]; }; struct virtio_gpu_get_capset_info { struct virtio_gpu_ctrl_hdr hdr; __le32 capset_index; __le32 padding; }; struct virtio_gpu_resp_capset_info { struct virtio_gpu_ctrl_hdr hdr; __le32 capset_id; __le32 capset_max_version; __le32 capset_max_size; __le32 padding; }; struct virtio_gpu_get_capset { struct virtio_gpu_ctrl_hdr hdr; __le32 capset_id; __le32 capset_version; }; struct virtio_gpu_resp_capset { struct virtio_gpu_ctrl_hdr hdr; __u8 capset_data[0]; }; struct virtio_gpu_cmd_get_edid { struct virtio_gpu_ctrl_hdr hdr; __le32 scanout; __le32 padding; }; struct virtio_gpu_resp_edid { struct virtio_gpu_ctrl_hdr hdr; __le32 size; __le32 padding; __u8 edid[1024]; }; struct virtio_gpu_resp_resource_uuid { struct virtio_gpu_ctrl_hdr hdr; __u8 uuid[16]; }; struct virtio_gpu_resp_map_info { struct virtio_gpu_ctrl_hdr hdr; __u32 map_info; __u32 padding; }; struct virtio_gpu_box { __le32 x; __le32 y; __le32 z; __le32 w; __le32 h; __le32 d; }; struct virtio_gpu_resource_attach_backing { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 nr_entries; }; struct virtio_gpu_resource_create_2d { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 format; __le32 width; __le32 height; }; struct virtio_gpu_resource_unref { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 padding; }; struct virtio_gpu_set_scanout { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_rect r; __le32 scanout_id; __le32 resource_id; }; struct virtio_gpu_resource_flush { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_rect r; __le32 resource_id; __le32 padding; }; struct virtio_gpu_transfer_to_host_2d { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_rect r; __le64 offset; __le32 resource_id; __le32 padding; }; struct virtio_gpu_ctx_create { struct virtio_gpu_ctrl_hdr hdr; __le32 nlen; __le32 context_init; char debug_name[64]; }; struct virtio_gpu_ctx_destroy { struct virtio_gpu_ctrl_hdr hdr; }; struct virtio_gpu_ctx_resource { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 padding; }; struct virtio_gpu_resource_create_3d { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 target; __le32 format; __le32 bind; __le32 width; __le32 height; __le32 depth; __le32 array_size; __le32 last_level; __le32 nr_samples; __le32 flags; __le32 padding; }; struct virtio_gpu_transfer_host_3d { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_box box; __le64 offset; __le32 resource_id; __le32 level; __le32 stride; __le32 layer_stride; }; struct virtio_gpu_cmd_submit { struct virtio_gpu_ctrl_hdr hdr; __le32 size; __le32 padding; }; struct virtio_gpu_resource_assign_uuid { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 padding; }; struct virtio_gpu_resource_map_blob { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 padding; __le64 offset; }; struct virtio_gpu_resource_unmap_blob { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 padding; }; struct virtio_gpu_resource_create_blob { struct virtio_gpu_ctrl_hdr hdr; __le32 resource_id; __le32 blob_mem; __le32 blob_flags; __le32 nr_entries; __le64 blob_id; __le64 size; }; struct virtio_gpu_set_scanout_blob { struct virtio_gpu_ctrl_hdr hdr; struct virtio_gpu_rect r; __le32 scanout_id; __le32 resource_id; __le32 width; __le32 height; __le32 format; __le32 padding; __le32 strides[4]; __le32 offsets[4]; }; 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, }; struct speed_down_verdict_arg { u64 since; int xfer_ok; int nr_errors[8]; }; struct cdrom_sysctl_settings { char info[1000]; int autoclose; int autoeject; int debug; int lock; int check; }; enum cdrom_print_option { CTL_NAME = 0, CTL_SPEED = 1, CTL_SLOTS = 2, CTL_CAPABILITY = 3, }; struct mrw_feature_desc { __be16 feature_code; __u8 curr: 1; __u8 persistent: 1; __u8 feature_version: 4; __u8 reserved1: 2; __u8 add_len; __u8 write: 1; __u8 reserved2: 7; __u8 reserved3; __u8 reserved4; __u8 reserved5; }; struct mode_page_header { __be16 mode_data_length; __u8 medium_type; __u8 reserved1; __u8 reserved2; __u8 reserved3; __be16 desc_length; }; struct cdrom_timed_media_change_info { __s64 last_media_change; __u64 media_flags; }; struct cdrom_msf { __u8 cdmsf_min0; __u8 cdmsf_sec0; __u8 cdmsf_frame0; __u8 cdmsf_min1; __u8 cdmsf_sec1; __u8 cdmsf_frame1; }; struct cdrom_read_audio { union cdrom_addr addr; __u8 addr_format; int nframes; __u8 __attribute__((btf_type_tag("user"))) *buf; }; struct cdrom_subchnl { __u8 cdsc_format; __u8 cdsc_audiostatus; __u8 cdsc_adr: 4; __u8 cdsc_ctrl: 4; __u8 cdsc_trk; __u8 cdsc_ind; union cdrom_addr cdsc_absaddr; union cdrom_addr cdsc_reladdr; }; struct cdrom_blk { unsigned int from; unsigned short len; }; struct cdrom_volctrl { __u8 channel0; __u8 channel1; __u8 channel2; __u8 channel3; }; struct dvd_lu_send_agid { __u8 type; unsigned int agid: 2; }; typedef __u8 dvd_challenge[10]; struct dvd_host_send_challenge { __u8 type; unsigned int agid: 2; dvd_challenge chal; }; typedef __u8 dvd_key[5]; struct dvd_send_key { __u8 type; unsigned int agid: 2; dvd_key key; }; struct dvd_lu_send_challenge { __u8 type; unsigned int agid: 2; dvd_challenge chal; }; struct dvd_lu_send_title_key { __u8 type; unsigned int agid: 2; dvd_key title_key; int lba; unsigned int cpm: 1; unsigned int cp_sec: 1; unsigned int cgms: 2; }; struct dvd_lu_send_asf { __u8 type; unsigned int agid: 2; unsigned int asf: 1; }; struct dvd_host_send_rpcstate { __u8 type; __u8 pdrc; }; struct dvd_lu_send_rpcstate { __u8 type: 2; __u8 vra: 3; __u8 ucca: 3; __u8 region_mask; __u8 rpc_scheme; }; typedef union { __u8 type; struct dvd_lu_send_agid lsa; struct dvd_host_send_challenge hsc; struct dvd_send_key lsk; struct dvd_lu_send_challenge lsc; struct dvd_send_key hsk; struct dvd_lu_send_title_key lstk; struct dvd_lu_send_asf lsasf; struct dvd_host_send_rpcstate hrpcs; struct dvd_lu_send_rpcstate lrpcs; } dvd_authinfo; typedef struct { __be16 disc_information_length; __u8 disc_status: 2; __u8 border_status: 2; __u8 erasable: 1; __u8 reserved1: 3; __u8 n_first_track; __u8 n_sessions_lsb; __u8 first_track_lsb; __u8 last_track_lsb; __u8 mrw_status: 2; __u8 dbit: 1; __u8 reserved2: 2; __u8 uru: 1; __u8 dbc_v: 1; __u8 did_v: 1; __u8 disc_type; __u8 n_sessions_msb; __u8 first_track_msb; __u8 last_track_msb; __u32 disc_id; __u32 lead_in; __u32 lead_out; __u8 disc_bar_code[8]; __u8 reserved3; __u8 n_opc; } disc_information; typedef struct { int data; int audio; int cdi; int xa; long error; } tracktype; struct rwrt_feature_desc { __be16 feature_code; __u8 curr: 1; __u8 persistent: 1; __u8 feature_version: 4; __u8 reserved1: 2; __u8 add_len; __u32 last_lba; __u32 block_size; __u16 blocking; __u8 page_present: 1; __u8 reserved2: 7; __u8 reserved3; }; struct cdrom_mechstat_header { __u8 curslot: 5; __u8 changer_state: 2; __u8 fault: 1; __u8 reserved1: 4; __u8 door_open: 1; __u8 mech_state: 3; __u8 curlba[3]; __u8 nslots; __u16 slot_tablelen; }; struct cdrom_slot { __u8 change: 1; __u8 reserved1: 6; __u8 disc_present: 1; __u8 reserved2[3]; }; struct cdrom_changer_info { struct cdrom_mechstat_header hdr; struct cdrom_slot slots[256]; }; typedef struct { __be16 track_information_length; __u8 track_lsb; __u8 session_lsb; __u8 reserved1; __u8 track_mode: 4; __u8 copy: 1; __u8 damage: 1; __u8 reserved2: 2; __u8 data_mode: 4; __u8 fp: 1; __u8 packet: 1; __u8 blank: 1; __u8 rt: 1; __u8 nwa_v: 1; __u8 lra_v: 1; __u8 reserved3: 6; __be32 track_start; __be32 next_writable; __be32 free_blocks; __be32 fixed_packet_size; __be32 track_size; __be32 last_rec_address; } track_information; struct compat_cdrom_read_audio { union cdrom_addr addr; u8 addr_format; compat_int_t nframes; compat_caddr_t buf; }; struct modesel_head { __u8 reserved1; __u8 medium; __u8 reserved2; __u8 block_desc_length; __u8 density; __u8 number_of_blocks_hi; __u8 number_of_blocks_med; __u8 number_of_blocks_lo; __u8 reserved3; __u8 block_length_hi; __u8 block_length_med; __u8 block_length_lo; }; struct dvd_layer { __u8 book_version: 4; __u8 book_type: 4; __u8 min_rate: 4; __u8 disc_size: 4; __u8 layer_type: 4; __u8 track_path: 1; __u8 nlayers: 2; char: 1; __u8 track_density: 4; __u8 linear_density: 4; __u8 bca: 1; __u32 start_sector; __u32 end_sector; __u32 end_sector_l0; }; struct dvd_physical { __u8 type; __u8 layer_num; struct dvd_layer layer[4]; }; struct dvd_copyright { __u8 type; __u8 layer_num; __u8 cpst; __u8 rmi; }; struct dvd_disckey { __u8 type; unsigned int agid: 2; __u8 value[2048]; }; struct dvd_bca { __u8 type; int len; __u8 value[188]; }; struct dvd_manufact { __u8 type; __u8 layer_num; int len; __u8 value[2048]; }; typedef union { __u8 type; struct dvd_physical physical; struct dvd_copyright copyright; struct dvd_disckey disckey; struct dvd_bca bca; struct dvd_manufact manufact; } dvd_struct; typedef struct { __u16 report_key_length; __u8 reserved1; __u8 reserved2; __u8 ucca: 3; __u8 vra: 3; __u8 type_code: 2; __u8 region_mask; __u8 rpc_scheme; __u8 reserved3; } rpc_state_t; 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 dm_sysfs_attr { struct attribute attr; ssize_t (*show)(struct mapped_device *, char *); ssize_t (*store)(struct mapped_device *, const char *, size_t); }; struct acpi_table_bgrt { struct acpi_table_header header; u16 version; u8 status; u8 image_type; u64 image_address; u32 image_offset_x; u32 image_offset_y; }; struct bmp_header { u16 id; u32 size; } __attribute__((packed)); 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_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; 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]; }; 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; struct linux_efi_initrd { unsigned long base; unsigned long size; }; struct component_match; enum hwtstamp_flags { HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, HWTSTAMP_FLAG_LAST = 1, HWTSTAMP_FLAG_MASK = 1, }; struct compat_ifconf { compat_int_t ifc_len; compat_caddr_t ifcbuf; }; struct compat_cmsghdr { compat_size_t cmsg_len; compat_int_t cmsg_level; compat_int_t cmsg_type; }; 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; }; struct ipq { struct inet_frag_queue q; u8 ecn; u16 max_df_size; int iif; unsigned int rid; struct inet_peer *peer; }; 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; spinlock_t encrypt_compl_lock; int async_notify; u8 async_capable: 1; unsigned long tx_bitmask; }; struct xfrm6_tunnel { int (*handler)(struct sk_buff *); int (*cb_handler)(struct sk_buff *, int); int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); struct xfrm6_tunnel __attribute__((btf_type_tag("rcu"))) *next; int priority; }; struct ipv6_tel_txoption { struct ipv6_txoptions ops; __u8 dst_opt[8]; }; struct ip6_tnl_net { struct net_device *fb_tnl_dev; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tnls_r_l[32]; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *tnls_wc[1]; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) **tnls[2]; struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *collect_md_tun; }; struct ip6_tnl_parm { char name[16]; int link; __u8 proto; __u8 encap_limit; __u8 hop_limit; __be32 flowinfo; __u32 flags; struct in6_addr laddr; struct in6_addr raddr; }; struct xprt_addr { const char *addr; struct callback_head rcu; }; struct link_container { struct ieee80211_link_data data; struct ieee80211_bss_conf conf; }; 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; }; 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 lbr_entry { u64 from; u64 to; u64 info; }; 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 { 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 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 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 { 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, }; 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 { 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 semaphore_waiter { struct list_head list; struct task_struct *task; bool up; }; struct rcu_exp_work { unsigned long rew_s; struct work_struct 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; 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 boost_kthread_mutex; struct task_struct *boost_kthread_task; unsigned int boost_kthread_status; unsigned long n_boosts; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; raw_spinlock_t fqslock; long: 32; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; 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; 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 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; }; struct rcu_state { struct rcu_node node[5]; struct rcu_node *level[3]; int ncpus; int n_online_cpus; long: 64; 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; unsigned long jiffies_resched; unsigned long n_force_qs_gpstart; const char *name; char abbr; long: 56; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; arch_spinlock_t ofl_lock; int nocb_is_setup; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; }; struct kfree_rcu_cpu; struct kfree_rcu_cpu_work { struct rcu_work rcu_work; struct callback_head *head_free; 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; unsigned long 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 rcu_gp_oldstate { unsigned long rgos_norm; unsigned long rgos_exp; }; 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; }; struct btf_kfunc_set_tab { struct btf_id_set8 *sets[12]; }; 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_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_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; }; }; struct bpf_perf_event_data { bpf_user_pt_regs_t regs; __u64 sample_period; __u64 addr; }; struct bpf_sysctl { __u32 write; __u32 file_pos; }; struct bpf_sockopt { union { struct bpf_sock *sk; }; union { void *optval; }; union { void *optval_end; }; __s32 level; __s32 optname; __s32 optlen; __s32 retval; }; 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 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; __u32 BPF_PROG_TYPE_LIRC_MODE2_prog; u32 BPF_PROG_TYPE_LIRC_MODE2_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_LSM_prog; void *BPF_PROG_TYPE_LSM_kern; void *BPF_PROG_TYPE_SYSCALL_prog; void *BPF_PROG_TYPE_SYSCALL_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_struct_walk_result { WALK_SCALAR = 0, WALK_PTR = 1, WALK_STRUCT = 2, }; 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_MAX = 12, }; enum { BTF_KFUNC_SET_MAX_CNT = 256, BTF_DTOR_KFUNC_MAX_CNT = 256, }; 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_sec_info { u32 off; u32 len; }; struct btf_var { __u32 linkage; }; 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; }; }; struct vma_swap_readahead { unsigned short win; unsigned short offset; unsigned short nr_pte; pte_t *ptes; }; struct v2_disk_dqheader { __le32 dqh_magic; __le32 dqh_version; }; struct v2_disk_dqinfo { __le32 dqi_bgrace; __le32 dqi_igrace; __le32 dqi_flags; __le32 dqi_blocks; __le32 dqi_free_blk; __le32 dqi_free_entry; }; struct v2r0_disk_dqblk { __le32 dqb_id; __le32 dqb_ihardlimit; __le32 dqb_isoftlimit; __le32 dqb_curinodes; __le32 dqb_bhardlimit; __le32 dqb_bsoftlimit; __le64 dqb_curspace; __le64 dqb_btime; __le64 dqb_itime; }; struct v2r1_disk_dqblk { __le32 dqb_id; __le32 dqb_pad; __le64 dqb_ihardlimit; __le64 dqb_isoftlimit; __le64 dqb_curinodes; __le64 dqb_bhardlimit; __le64 dqb_bsoftlimit; __le64 dqb_curspace; __le64 dqb_btime; __le64 dqb_itime; }; struct ext4_filename { const struct qstr *usr_fname; struct fscrypt_str disk_name; struct dx_hash_info hinfo; }; enum ramfs_param { Opt_mode___5 = 0, }; struct ramfs_mount_opts { umode_t mode; }; struct ramfs_fs_info { struct ramfs_mount_opts mount_opts; }; struct nlm_lookup_host_info { const int server; const struct sockaddr *sap; const size_t salen; const unsigned short protocol; const u32 version; const char *hostname; const size_t hostname_len; const int noresvport; struct net *net; const struct cred *cred; }; struct fscache_volume; struct fscache_cookie { refcount_t ref; atomic_t n_active; atomic_t n_accesses; unsigned int debug_id; unsigned int inval_counter; spinlock_t lock; struct fscache_volume *volume; void *cache_priv; struct hlist_bl_node hash_link; struct list_head proc_link; struct list_head commit_link; struct work_struct work; loff_t object_size; unsigned long unused_at; unsigned long flags; enum fscache_cookie_state state; u8 advice; u8 key_len; u8 aux_len; u32 key_hash; union { void *key; u8 inline_key[16]; }; union { void *aux; u8 inline_aux[8]; }; }; struct fscache_cache; struct fscache_volume { refcount_t ref; atomic_t n_cookies; atomic_t n_accesses; unsigned int debug_id; unsigned int key_hash; u8 *key; struct list_head proc_link; struct hlist_bl_node hash_link; struct work_struct work; struct fscache_cache *cache; void *cache_priv; spinlock_t lock; unsigned long flags; u8 coherency_len; u8 coherency[0]; }; enum { Opt_error = -1, Opt_context = 0, Opt_defcontext = 1, Opt_fscontext = 2, Opt_rootcontext = 3, Opt_seclabel = 4, }; struct file_security_struct { u32 sid; u32 fown_sid; u32 isid; u32 pseqno; }; struct bpf_security_struct { u32 sid; }; struct ipc_security_struct { u16 sclass; u32 sid; }; struct msg_security_struct { u32 sid; }; struct selinux_mnt_opts { u32 fscontext_sid; u32 context_sid; u32 rootcontext_sid; u32 defcontext_sid; }; struct tun_security_struct { u32 sid; }; struct key_security_struct { u32 sid; }; struct perf_event_security_struct { u32 sid; }; struct aperture_range { struct device *dev; resource_size_t base; resource_size_t size; struct list_head lh; void (*detach)(struct device *); }; struct intel_gtt_driver; struct _intel_private { const struct intel_gtt_driver *driver; struct pci_dev *pcidev; struct pci_dev *bridge_dev; u8 *registers; phys_addr_t gtt_phys_addr; u32 PGETBL_save; u32 *gtt; bool clear_fake_agp; int num_dcache_entries; void *i9xx_flush_page; char *i81x_gtt_table; struct resource ifp_resource; int resource_valid; struct page *scratch_page; phys_addr_t scratch_page_dma; int refcount; unsigned int needs_dmar: 1; phys_addr_t gma_bus_addr; resource_size_t stolen_size; unsigned int gtt_total_entries; unsigned int gtt_mappable_entries; }; struct intel_gtt_driver { unsigned int gen: 8; unsigned int is_g33: 1; unsigned int is_pineview: 1; unsigned int is_ironlake: 1; unsigned int has_pgtbl_enable: 1; unsigned int dma_mask_size: 8; int (*setup)(); void (*cleanup)(); void (*write_entry)(dma_addr_t, unsigned int, unsigned int); bool (*check_flags)(unsigned int); void (*chipset_flush)(); }; struct intel_gtt_driver_description { unsigned int gmch_chip_id; char *name; const struct intel_gtt_driver *gtt_driver; }; struct ioasid_allocator_ops; struct ioasid_allocator_data { struct ioasid_allocator_ops *ops; struct list_head list; struct list_head slist; unsigned long flags; struct xarray xa; struct callback_head rcu; }; typedef ioasid_t (*ioasid_alloc_fn_t)(ioasid_t, ioasid_t, void *); typedef void (*ioasid_free_fn_t)(ioasid_t, void *); struct ioasid_allocator_ops { ioasid_alloc_fn_t alloc; ioasid_free_fn_t free; struct list_head list; void *pdata; }; struct ioasid_set; struct ioasid_data { ioasid_t id; struct ioasid_set *set; void *private; struct callback_head rcu; }; struct ioasid_set { int dummy; }; struct iova_magazine; struct iova_cpu_rcache { spinlock_t lock; struct iova_magazine *loaded; struct iova_magazine *prev; }; struct iova_magazine { unsigned long size; unsigned long pfns[127]; }; struct iova_rcache { spinlock_t lock; unsigned long depot_size; struct iova_magazine *depot[32]; struct iova_cpu_rcache __attribute__((btf_type_tag("percpu"))) *cpu_rcaches; }; struct syncobj_wait_entry { struct list_head node; struct task_struct *task; struct dma_fence *fence; struct dma_fence_cb fence_cb; u64 point; }; struct drm_syncobj_transfer { __u32 src_handle; __u32 dst_handle; __u64 src_point; __u64 dst_point; __u32 flags; __u32 pad; }; struct drm_syncobj_wait { __u64 handles; __s64 timeout_nsec; __u32 count_handles; __u32 flags; __u32 first_signaled; __u32 pad; }; struct drm_syncobj_timeline_wait { __u64 handles; __u64 points; __s64 timeout_nsec; __u32 count_handles; __u32 flags; __u32 first_signaled; __u32 pad; }; struct drm_syncobj_create { __u32 handle; __u32 flags; }; struct drm_syncobj_destroy { __u32 handle; __u32 pad; }; struct drm_syncobj_handle { __u32 handle; __u32 flags; __s32 fd; __u32 pad; }; struct drm_syncobj_array { __u64 handles; __u32 count_handles; __u32 pad; }; struct drm_syncobj_timeline_array { __u64 handles; __u64 points; __u32 count_handles; __u32 flags; }; struct cxsr_latency { bool is_desktop: 1; bool is_ddr3: 1; u16 fsb_freq; u16 mem_freq; u16 display_sr; u16 display_hpll_disable; u16 cursor_sr; u16 cursor_hpll_disable; }; struct intel_watermark_params { u16 fifo_size; u16 max_wm; u8 default_wm; u8 guard_size; u8 cacheline_size; }; enum g4x_wm_level { G4X_WM_LEVEL_NORMAL = 0, G4X_WM_LEVEL_SR = 1, G4X_WM_LEVEL_HPLL = 2, NUM_G4X_WM_LEVELS = 3, }; enum vlv_wm_level { VLV_WM_LEVEL_PM2 = 0, VLV_WM_LEVEL_PM5 = 1, VLV_WM_LEVEL_DDR_DVFS = 2, NUM_VLV_WM_LEVELS = 3, }; struct ilk_wm_maximums { u16 pri; u16 spr; u16 cur; u16 fbc; }; struct intel_wm_config { unsigned int num_pipes_active; bool sprites_enabled; bool sprites_scaled; }; struct drm_i915_mocs_entry { u32 control_value; u16 l3cc_value; u16 used; }; enum { HAS_GLOBAL_MOCS = 1, HAS_ENGINE_MOCS = 2, HAS_RENDER_L3CC = 4, }; enum i915_mocs_table_index { I915_MOCS_UNCACHED = 0, I915_MOCS_PTE = 1, I915_MOCS_CACHED = 2, }; struct drm_i915_mocs_table { unsigned int size; unsigned int n_entries; const struct drm_i915_mocs_entry *table; u8 uc_index; u8 wb_index; u8 unused_entries_index; }; struct guc_mmio_reg_set { u32 address; u16 count; u16 reserved; }; struct guc_ads { struct guc_mmio_reg_set reg_state_list[512]; u32 reserved0; u32 scheduler_policies; u32 gt_system_info; u32 reserved1; u32 control_data; u32 golden_context_lrca[16]; u32 eng_state_size[16]; u32 private_data; u32 reserved2; u32 capture_instance[32]; u32 capture_class[32]; u32 capture_global[2]; u32 reserved[14]; }; struct guc_policies { u32 submission_queue_depth[16]; u32 dpc_promote_time; u32 is_valid; u32 max_num_work_items; u32 global_flags; u32 reserved[4]; }; struct guc_gt_system_info { u8 mapping_table[512]; u32 engine_enabled_masks[16]; u32 generic_gt_sysinfo[16]; }; struct guc_engine_usage { struct guc_engine_usage_record engines[512]; }; struct __guc_ads_blob { struct guc_ads ads; struct guc_policies policies; struct guc_gt_system_info system_info; struct guc_engine_usage engine_usage; struct guc_mmio_reg regset[0]; }; struct temp_regset { struct guc_mmio_reg *registers; struct guc_mmio_reg *storage; u32 storage_used; u32 storage_max; }; struct pps_registers { i915_reg_t pp_ctrl; i915_reg_t pp_stat; i915_reg_t pp_on; i915_reg_t pp_off; i915_reg_t pp_div; }; typedef bool (*pps_check)(struct drm_i915_private *, int); enum scsi_timeouts { SCSI_DEFAULT_EH_TIMEOUT = 10000, }; struct async_scan_data { struct list_head list; struct Scsi_Host *shost; struct completion prev_finished; }; 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 xhci_file_map { const char *name; int (*show)(struct seq_file *, void *); }; struct xhci_regset { char name[32]; struct debugfs_regset32 regset; size_t nregs; struct list_head list; }; 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 xhci_slot_priv { char name[32]; struct dentry *root; struct xhci_ep_priv *eps[31]; struct xhci_virt_device *dev; }; struct min_max_quirk { const char * const *pnp_ids; struct { u32 min; u32 max; } board_id; u32 x_min; u32 x_max; u32 y_min; u32 y_max; }; enum synaptics_pkt_type { SYN_NEWABS = 0, SYN_NEWABS_STRICT = 1, SYN_NEWABS_RELAXED = 2, SYN_OLDABS = 3, }; enum rmi_sensor_type { rmi_sensor_default = 0, rmi_sensor_touchscreen = 1, rmi_sensor_touchpad = 2, }; enum rmi_reg_state { RMI_REG_STATE_DEFAULT = 0, RMI_REG_STATE_OFF = 1, RMI_REG_STATE_ON = 2, }; enum { SYNAPTICS_INTERTOUCH_NOT_SET = -1, SYNAPTICS_INTERTOUCH_OFF = 0, SYNAPTICS_INTERTOUCH_ON = 1, }; struct synaptics_device_info { u32 model_id; u32 firmware_id; u32 board_id; u32 capabilities; u32 ext_cap; u32 ext_cap_0c; u32 ext_cap_10; u32 identity; u32 x_res; u32 y_res; u32 x_max; u32 y_max; u32 x_min; u32 y_min; }; struct rmi_device_platform_data_spi { u32 block_delay_us; u32 split_read_block_delay_us; u32 read_delay_us; u32 write_delay_us; u32 split_read_byte_delay_us; u32 pre_delay_us; u32 post_delay_us; u8 bits_per_word; u16 mode; void *cs_assert_data; int (*cs_assert)(const void *, const bool); }; struct rmi_2d_axis_alignment { bool swap_axes; bool flip_x; bool flip_y; u16 clip_x_low; u16 clip_y_low; u16 clip_x_high; u16 clip_y_high; u16 offset_x; u16 offset_y; u8 delta_x_threshold; u8 delta_y_threshold; }; struct rmi_2d_sensor_platform_data { struct rmi_2d_axis_alignment axis_align; enum rmi_sensor_type sensor_type; int x_mm; int y_mm; int disable_report_mask; u16 rezero_wait; bool topbuttonpad; bool kernel_tracking; int dmax; int dribble; int palm_detect; }; struct rmi_f01_power_management { enum rmi_reg_state nosleep; u8 wakeup_threshold; u8 doze_holdoff; u8 doze_interval; }; struct rmi_gpio_data { bool buttonpad; bool trackstick_buttons; bool disable; }; struct rmi_device_platform_data { int reset_delay_ms; int irq; struct rmi_device_platform_data_spi spi_data; struct rmi_2d_sensor_platform_data sensor_pdata; struct rmi_f01_power_management power_management; struct rmi_gpio_data gpio_data; }; struct synaptics_hw_state { int x; int y; int z; int w; unsigned int left: 1; unsigned int right: 1; unsigned int middle: 1; unsigned int up: 1; unsigned int down: 1; u8 ext_buttons; s8 scroll; }; struct synaptics_data { struct synaptics_device_info info; enum synaptics_pkt_type pkt_type; u8 mode; int scroll; bool absolute_mode; bool disable_gesture; struct serio *pt_port; struct synaptics_hw_state agm; unsigned int agm_count; unsigned long press_start; bool press; bool report_press; bool is_forcepad; }; 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, }; 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, }; 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, }; 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; }; struct trace_event_data_offsets_hwmon_attr_show_string { u32 attr_name; u32 label; }; 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; }; enum led_default_state { LEDS_DEFSTATE_OFF = 0, LEDS_DEFSTATE_ON = 1, LEDS_DEFSTATE_KEEP = 2, }; struct led_properties { u32 color; bool color_present; const char *function; u32 func_enum; bool func_enum_present; const char *label; }; struct snd_jack_kctl { struct snd_kcontrol *kctl; struct list_head list; unsigned int mask_bits; struct snd_jack *jack; bool sw_inject_enable; }; struct sock_diag_handler { __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 broadcast_sk { struct sock *sk; struct work_struct work; }; struct sock_diag_req { __u8 sdiag_family; __u8 sdiag_protocol; }; struct nvmem_cell; 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 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, }; enum ctattr_timeout_tcp { CTA_TIMEOUT_TCP_UNSPEC = 0, CTA_TIMEOUT_TCP_SYN_SENT = 1, CTA_TIMEOUT_TCP_SYN_RECV = 2, CTA_TIMEOUT_TCP_ESTABLISHED = 3, CTA_TIMEOUT_TCP_FIN_WAIT = 4, CTA_TIMEOUT_TCP_CLOSE_WAIT = 5, CTA_TIMEOUT_TCP_LAST_ACK = 6, CTA_TIMEOUT_TCP_TIME_WAIT = 7, CTA_TIMEOUT_TCP_CLOSE = 8, CTA_TIMEOUT_TCP_SYN_SENT2 = 9, CTA_TIMEOUT_TCP_RETRANS = 10, CTA_TIMEOUT_TCP_UNACK = 11, __CTA_TIMEOUT_TCP_MAX = 12, }; struct nf_ct_tcp_flags { __u8 flags; __u8 mask; }; 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_MAX_STATES = 13, }; 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_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 udp_tunnel_nic_table_entry; struct udp_tunnel_nic { struct work_struct work; struct net_device *dev; u8 need_sync: 1; u8 need_replay: 1; u8 work_pending: 1; unsigned int n_tables; unsigned long missed; struct udp_tunnel_nic_table_entry **entries; }; struct udp_tunnel_nic_table_entry { __be16 port; u8 type; u8 flags; u16 use_cnt; u8 hw_priv; }; enum udp_tunnel_nic_table_entry_flags { UDP_TUNNEL_NIC_ENTRY_ADD = 1, UDP_TUNNEL_NIC_ENTRY_DEL = 2, UDP_TUNNEL_NIC_ENTRY_OP_FAIL = 4, UDP_TUNNEL_NIC_ENTRY_FROZEN = 8, }; struct udp_tunnel_nic_shared_node { struct net_device *dev; struct list_head list; }; enum { LWT_XFRM_UNSPEC = 0, LWT_XFRM_IF_ID = 1, LWT_XFRM_LINK = 2, __LWT_XFRM_MAX = 3, }; enum { IFLA_XFRM_UNSPEC = 0, IFLA_XFRM_LINK = 1, IFLA_XFRM_IF_ID = 2, IFLA_XFRM_COLLECT_METADATA = 3, __IFLA_XFRM_MAX = 4, }; struct xfrm_if_parms { int link; u32 if_id; bool collect_md; }; struct xfrm_if { struct xfrm_if __attribute__((btf_type_tag("rcu"))) *next; struct net_device *dev; struct net *net; struct xfrm_if_parms p; struct gro_cells gro_cells; }; struct ip_comp_hdr { __u8 nexthdr; __u8 flags; __be16 cpi; }; struct xfrmi_net { struct xfrm_if __attribute__((btf_type_tag("rcu"))) *xfrmi[256]; struct xfrm_if __attribute__((btf_type_tag("rcu"))) *collect_md_xfrmi; }; struct gssx_name_attr; struct gssx_name_attr_array { u32 count; struct gssx_name_attr *data; }; struct gssx_name_attr { gssx_buffer attr; gssx_buffer value; struct gssx_option_array extensions; }; enum ieee80211_bss_valid_data_flags { IEEE80211_BSS_VALID_WMM = 2, IEEE80211_BSS_VALID_RATES = 4, IEEE80211_BSS_VALID_ERP = 8, }; struct netlbl_unlhsh_tbl { struct list_head *tbl; u32 size; }; struct netlbl_unlhsh_iface { int ifindex; struct list_head addr4_list; struct list_head addr6_list; u32 valid; struct list_head list; struct callback_head rcu; }; enum { NLBL_UNLABEL_A_UNSPEC = 0, NLBL_UNLABEL_A_ACPTFLG = 1, NLBL_UNLABEL_A_IPV6ADDR = 2, NLBL_UNLABEL_A_IPV6MASK = 3, NLBL_UNLABEL_A_IPV4ADDR = 4, NLBL_UNLABEL_A_IPV4MASK = 5, NLBL_UNLABEL_A_IFACE = 6, NLBL_UNLABEL_A_SECCTX = 7, __NLBL_UNLABEL_A_MAX = 8, }; enum { NLBL_UNLABEL_C_UNSPEC = 0, NLBL_UNLABEL_C_ACCEPT = 1, NLBL_UNLABEL_C_LIST = 2, NLBL_UNLABEL_C_STATICADD = 3, NLBL_UNLABEL_C_STATICREMOVE = 4, NLBL_UNLABEL_C_STATICLIST = 5, NLBL_UNLABEL_C_STATICADDDEF = 6, NLBL_UNLABEL_C_STATICREMOVEDEF = 7, NLBL_UNLABEL_C_STATICLISTDEF = 8, __NLBL_UNLABEL_C_MAX = 9, }; struct netlbl_unlhsh_addr4 { u32 secid; struct netlbl_af4list list; struct callback_head rcu; }; struct netlbl_unlhsh_addr6 { u32 secid; struct netlbl_af6list list; struct callback_head rcu; }; struct netlbl_unlhsh_walk_arg { struct netlink_callback *nl_cb; struct sk_buff *skb; u32 seq; }; enum mapping_status { MAPPING_OK = 0, MAPPING_INVALID = 1, MAPPING_EMPTY = 2, MAPPING_DATA_FIN = 3, MAPPING_DUMMY = 4, MAPPING_BAD_CSUM = 5, }; typedef struct ldttss_desc ldt_desc; struct amd_nb_bus_dev_range { u8 bus; u8 dev_base; u8 dev_limit; }; struct amd_northbridge_info { u16 num; u64 flags; struct amd_northbridge *nb; }; 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; union efi_boot_services; typedef union efi_boot_services efi_boot_services_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; struct msi_ctrl { unsigned int domid; unsigned int first; unsigned int last; unsigned int nirqs; }; struct profile_hit { u32 pc; u32 hits; }; struct rchan_percpu_buf_dispatcher { struct rchan_buf *buf; struct dentry *dentry; }; typedef unsigned long perf_trace_t[1024]; enum bpf_iter_feature { BPF_ITER_RESCHED = 1, }; struct bpf_iter_target_info { struct list_head list; const struct bpf_iter_reg *reg_info; u32 btf_id; }; 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: 56; 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); struct btf_iter_num; struct bpf_iter_num { __u64 __opaque[1]; }; struct bpf_iter_num_kern { int cur; int end; }; 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 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 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 {}; struct core_name { char *corename; int used; int size; }; enum { Opt_uid___7 = 0, Opt_gid___8 = 1, Opt_mode___6 = 2, Opt_ptmxmode = 3, Opt_newinstance = 4, Opt_max = 5, Opt_err___11 = 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 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 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 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 proc_nfs_info { int flag; const char *str; const char *nostr; }; struct autofs_dev_ioctl; typedef int (*ioctl_fn___2)(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, }; struct keyring_read_iterator_context { size_t buflen; size_t count; key_serial_t *buffer; }; struct ima_algo_desc { struct crypto_shash *tfm; enum hash_algo algo; }; enum tpm_pcrs { TPM_PCR0 = 0, TPM_PCR8 = 8, TPM_PCR10 = 10, }; struct hash_ctx { struct af_alg_sgl sgl; u8 *result; struct crypto_wait wait; unsigned int len; bool more; struct ahash_request req; }; 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_sqe)(void *, struct io_kiocb *, bool); 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, 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); enum { IO_CHECK_CQ_OVERFLOW_BIT = 0, IO_CHECK_CQ_DROPPED_BIT = 1, }; enum { IO_EVENTFD_OP_SIGNAL_BIT = 0, IO_EVENTFD_OP_FREE_BIT = 1, }; 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, }; 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_LAST = 26, IORING_REGISTER_USE_REGISTERED_RING = 2147483648, }; 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 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 int 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_sqe { struct trace_entry ent; void *ctx; void *req; unsigned long long user_data; u8 opcode; u32 flags; bool force_nonblock; 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; unsigned int loops; 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_wait_queue { struct wait_queue_entry wq; struct io_ring_ctx *ctx; unsigned int cq_tail; unsigned int nr_timeouts; ktime_t timeout; }; struct io_tctx_exit { struct callback_head task_work; struct completion completion; struct io_ring_ctx *ctx; }; struct trace_event_data_offsets_io_uring_queue_async_work { u32 op_str; }; struct trace_event_data_offsets_io_uring_defer { u32 op_str; }; struct trace_event_data_offsets_io_uring_fail_link { u32 op_str; }; struct trace_event_data_offsets_io_uring_submit_sqe { u32 op_str; }; struct trace_event_data_offsets_io_uring_poll_arm { u32 op_str; }; struct trace_event_data_offsets_io_uring_task_add { u32 op_str; }; struct trace_event_data_offsets_io_uring_req_failed { u32 op_str; }; struct io_uring_getevents_arg { __u64 sigmask; __u32 sigmask_sz; __u32 pad; __u64 ts; }; struct creds; 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 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 displayid_header { u8 rev; u8 bytes; u8 prod_id; u8 ext_count; }; struct drm_mode_map_dumb { __u32 handle; __u32 pad; __u64 offset; }; struct drm_mode_destroy_dumb { __u32 handle; }; struct ttm_range_manager { struct ttm_resource_manager___2 manager; struct drm_mm mm; spinlock_t lock; }; struct sched_cache { struct list_head *priolist; }; struct dp_aud_n_m { int sample_rate; int clock; u16 m; u16 n; }; struct hdmi_aud_ncts { int sample_rate; int clock; int n; int cts; }; struct aud_ts_cdclk_m_n { u8 m; u16 n; }; struct ibx_audio_regs { i915_reg_t hdmiw_hdmiedid; i915_reg_t aud_config; i915_reg_t aud_cntl_st; i915_reg_t aud_cntrl_st2; }; struct local_event { local_lock_t lock; __u32 count; }; enum proc_cn_mcast_op { PROC_CN_MCAST_LISTEN = 1, PROC_CN_MCAST_IGNORE = 2, }; struct fork_proc_event { __kernel_pid_t parent_pid; __kernel_pid_t parent_tgid; __kernel_pid_t child_pid; __kernel_pid_t child_tgid; }; struct exec_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; }; struct id_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; union { __u32 ruid; __u32 rgid; } r; union { __u32 euid; __u32 egid; } e; }; struct sid_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; }; struct ptrace_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; __kernel_pid_t tracer_pid; __kernel_pid_t tracer_tgid; }; struct comm_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; char comm[16]; }; struct coredump_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; __kernel_pid_t parent_pid; __kernel_pid_t parent_tgid; }; struct exit_proc_event { __kernel_pid_t process_pid; __kernel_pid_t process_tgid; __u32 exit_code; __u32 exit_signal; __kernel_pid_t parent_pid; __kernel_pid_t parent_tgid; }; struct proc_event { enum what what; __u32 cpu; __u64 timestamp_ns; union { struct { __u32 err; } ack; struct fork_proc_event fork; struct exec_proc_event exec; struct id_proc_event id; struct sid_proc_event sid; struct ptrace_proc_event ptrace; struct comm_proc_event comm; struct coredump_proc_event coredump; struct exit_proc_event exit; } event_data; }; 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_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_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; }; struct each_dev_arg { void *data; int (*fn)(struct usb_device *, void *); }; struct find_interface_arg { int minor; struct device_driver *drv; }; 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 fib_rule_uid_range { __u32 start; __u32 end; }; struct fib_rule_notifier_info { struct fib_notifier_info info; struct fib_rule *rule; }; enum { TCA_EMATCH_TREE_UNSPEC = 0, TCA_EMATCH_TREE_HDR = 1, TCA_EMATCH_TREE_LIST = 2, __TCA_EMATCH_TREE_MAX = 3, }; struct tcf_ematch_hdr { __u16 matchid; __u16 kind; __u16 flags; __u16 pad; }; 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 ct_dccp_roles { CT_DCCP_ROLE_CLIENT = 0, CT_DCCP_ROLE_SERVER = 1, __CT_DCCP_ROLE_MAX = 2, }; 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, }; enum ctattr_protoinfo_dccp { CTA_PROTOINFO_DCCP_UNSPEC = 0, CTA_PROTOINFO_DCCP_STATE = 1, CTA_PROTOINFO_DCCP_ROLE = 2, CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ = 3, CTA_PROTOINFO_DCCP_PAD = 4, __CTA_PROTOINFO_DCCP_MAX = 5, }; enum ctattr_timeout_dccp { CTA_TIMEOUT_DCCP_UNSPEC = 0, CTA_TIMEOUT_DCCP_REQUEST = 1, CTA_TIMEOUT_DCCP_RESPOND = 2, CTA_TIMEOUT_DCCP_PARTOPEN = 3, CTA_TIMEOUT_DCCP_OPEN = 4, CTA_TIMEOUT_DCCP_CLOSEREQ = 5, CTA_TIMEOUT_DCCP_CLOSING = 6, CTA_TIMEOUT_DCCP_TIMEWAIT = 7, __CTA_TIMEOUT_DCCP_MAX = 8, }; struct dccp_hdr_ext { __be32 dccph_seq_low; }; struct dccp_hdr_ack_bits { __be16 dccph_reserved1; __be16 dccph_ack_nr_high; __be32 dccph_ack_nr_low; }; struct dctcp { u32 old_delivered; u32 old_delivered_ce; u32 prior_rcv_nxt; u32 dctcp_alpha; u32 next_seq; u32 ce_state; u32 loss_cwnd; struct tcp_plb_state plb; }; 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 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 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; }; struct unix_domain { struct auth_domain h; }; struct unix_gid { struct cache_head h; kuid_t uid; struct group_info *gi; struct callback_head rcu; }; struct ip_map { struct cache_head h; char m_class[8]; struct in6_addr m_addr; struct unix_domain *m_client; struct callback_head m_rcu; }; enum { NLBL_CIPSOV4_A_UNSPEC = 0, NLBL_CIPSOV4_A_DOI = 1, NLBL_CIPSOV4_A_MTYPE = 2, NLBL_CIPSOV4_A_TAG = 3, NLBL_CIPSOV4_A_TAGLST = 4, NLBL_CIPSOV4_A_MLSLVLLOC = 5, NLBL_CIPSOV4_A_MLSLVLREM = 6, NLBL_CIPSOV4_A_MLSLVL = 7, NLBL_CIPSOV4_A_MLSLVLLST = 8, NLBL_CIPSOV4_A_MLSCATLOC = 9, NLBL_CIPSOV4_A_MLSCATREM = 10, NLBL_CIPSOV4_A_MLSCAT = 11, NLBL_CIPSOV4_A_MLSCATLST = 12, __NLBL_CIPSOV4_A_MAX = 13, }; enum { NLBL_CIPSOV4_C_UNSPEC = 0, NLBL_CIPSOV4_C_ADD = 1, NLBL_CIPSOV4_C_REMOVE = 2, NLBL_CIPSOV4_C_LIST = 3, NLBL_CIPSOV4_C_LISTALL = 4, __NLBL_CIPSOV4_C_MAX = 5, }; struct netlbl_cipsov4_doiwalk_arg { struct netlink_callback *nl_cb; struct sk_buff *skb; u32 seq; }; enum { MPTCP_PM_ADDR_ATTR_UNSPEC = 0, MPTCP_PM_ADDR_ATTR_FAMILY = 1, MPTCP_PM_ADDR_ATTR_ID = 2, MPTCP_PM_ADDR_ATTR_ADDR4 = 3, MPTCP_PM_ADDR_ATTR_ADDR6 = 4, MPTCP_PM_ADDR_ATTR_PORT = 5, MPTCP_PM_ADDR_ATTR_FLAGS = 6, MPTCP_PM_ADDR_ATTR_IF_IDX = 7, __MPTCP_PM_ADDR_ATTR_MAX = 8, }; enum mptcp_event_attr { MPTCP_ATTR_UNSPEC = 0, MPTCP_ATTR_TOKEN = 1, MPTCP_ATTR_FAMILY = 2, MPTCP_ATTR_LOC_ID = 3, MPTCP_ATTR_REM_ID = 4, MPTCP_ATTR_SADDR4 = 5, MPTCP_ATTR_SADDR6 = 6, MPTCP_ATTR_DADDR4 = 7, MPTCP_ATTR_DADDR6 = 8, MPTCP_ATTR_SPORT = 9, MPTCP_ATTR_DPORT = 10, MPTCP_ATTR_BACKUP = 11, MPTCP_ATTR_ERROR = 12, MPTCP_ATTR_FLAGS = 13, MPTCP_ATTR_TIMEOUT = 14, MPTCP_ATTR_IF_IDX = 15, MPTCP_ATTR_RESET_REASON = 16, MPTCP_ATTR_RESET_FLAGS = 17, MPTCP_ATTR_SERVER_SIDE = 18, __MPTCP_ATTR_AFTER_LAST = 19, }; enum { MPTCP_PM_CMD_UNSPEC = 0, MPTCP_PM_CMD_ADD_ADDR = 1, MPTCP_PM_CMD_DEL_ADDR = 2, MPTCP_PM_CMD_GET_ADDR = 3, MPTCP_PM_CMD_FLUSH_ADDRS = 4, MPTCP_PM_CMD_SET_LIMITS = 5, MPTCP_PM_CMD_GET_LIMITS = 6, MPTCP_PM_CMD_SET_FLAGS = 7, MPTCP_PM_CMD_ANNOUNCE = 8, MPTCP_PM_CMD_REMOVE = 9, MPTCP_PM_CMD_SUBFLOW_CREATE = 10, MPTCP_PM_CMD_SUBFLOW_DESTROY = 11, __MPTCP_PM_CMD_AFTER_LAST = 12, }; struct mptcp_pm_add_entry { struct list_head list; struct mptcp_addr_info addr; struct timer_list add_timer; struct mptcp_sock *sock; u8 retrans_times; }; struct pm_nl_pernet { spinlock_t lock; struct list_head local_addr_list; unsigned int addrs; unsigned int stale_loss_cnt; unsigned int add_addr_signal_max; unsigned int add_addr_accept_max; unsigned int local_addr_max; unsigned int subflows_max; unsigned int next_id; unsigned long id_bitmap[4]; }; 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 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_ebx { struct { unsigned int lbr_cpl: 1; unsigned int lbr_filter: 1; unsigned int lbr_call_stack: 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; } 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: 32; 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 ms_hyperv_info { u32 features; u32 priv_high; u32 misc_features; u32 hints; u32 nested_features; u32 max_vp_index; u32 max_lp_index; u32 isolation_config_a; union { u32 isolation_config_b; struct { u32 cvm_type: 4; u32 reserved1: 1; u32 shared_gpa_boundary_active: 1; u32 shared_gpa_boundary_bits: 6; u32 reserved2: 20; }; }; u64 shared_gpa_boundary; }; enum hv_isolation_type { HV_ISOLATION_TYPE_NONE = 0, HV_ISOLATION_TYPE_VBS = 1, HV_ISOLATION_TYPE_SNP = 2, }; enum allow_write_msrs { MSR_WRITES_ON = 0, MSR_WRITES_OFF = 1, MSR_WRITES_DEFAULT = 2, }; struct core_text { unsigned long base; unsigned long end; const char *name; }; struct taint_flag { char c_true; char c_false; bool module; }; struct warn_args { const char *fmt; va_list args; }; 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_dl; 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_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 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, }; struct asym_cap_data { struct list_head link; unsigned long capacity; unsigned long cpus[0]; }; struct s_data { struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; struct root_domain *rd; }; struct auditd_connection { struct pid *pid; u32 portid; struct net *net; struct callback_head rcu; }; struct audit_ctl_mutex { struct mutex lock; void *owner; }; struct audit_features { __u32 vers; __u32 mask; __u32 features; __u32 lock; }; enum audit_nlgrps { AUDIT_NLGRP_NONE = 0, AUDIT_NLGRP_READLOG = 1, __AUDIT_NLGRP_MAX = 2, }; struct audit_reply { __u32 portid; struct net *net; struct sk_buff *skb; }; struct audit_net { struct sock *sk; }; struct audit_buffer { struct sk_buff *skb; struct audit_context *ctx; gfp_t gfp_mask; }; struct audit_sig_info { uid_t uid; pid_t pid; char ctx[0]; }; struct audit_tty_status { __u32 enabled; __u32 log_passwd; }; struct audit_status { __u32 mask; __u32 enabled; __u32 failure; __u32 pid; __u32 rate_limit; __u32 backlog_limit; __u32 lost; __u32 backlog; union { __u32 version; __u32 feature_bitmap; }; __u32 backlog_wait_time; __u32 backlog_wait_time_actual; }; 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; long: 32; long: 64; long: 64; }; 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_dtab *dtab; struct bpf_prog *xdp_prog; struct callback_head rcu; unsigned int idx; struct bpf_devmap_val val; }; 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 { 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; }; typedef u8 uprobe_opcode_t; struct delayed_uprobe { struct list_head list; struct uprobe *uprobe; struct mm_struct *mm; }; 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; }; 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; }; struct old_linux_dirent { unsigned long d_ino; unsigned long d_offset; unsigned short d_namlen; char d_name[1]; }; 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[1]; }; 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 compat_old_linux_dirent { compat_ulong_t d_ino; compat_ulong_t d_offset; unsigned short d_namlen; char d_name[1]; }; struct compat_readdir_callback { struct dir_context ctx; struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; int result; }; struct compat_linux_dirent { compat_ulong_t d_ino; compat_ulong_t d_off; unsigned short d_reclen; char d_name[1]; }; struct compat_getdents_callback { struct dir_context ctx; struct compat_linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; int prev_reclen; int count; int error; }; struct fd_data { fmode_t mode; unsigned int fd; }; struct kernfs_global_locks { struct mutex open_file_mutex[1024]; }; struct shortname_info { unsigned char lower: 1; unsigned char upper: 1; unsigned char valid: 1; }; enum { NFS_OWNER_RECLAIM_REBOOT = 0, NFS_OWNER_RECLAIM_NOGRACE = 1, }; 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; }; 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 compat_shmid_ds { struct compat_ipc_perm shm_perm; int shm_segsz; old_time32_t shm_atime; old_time32_t shm_dtime; old_time32_t shm_ctime; compat_ipc_pid_t shm_cpid; compat_ipc_pid_t shm_lpid; unsigned short shm_nattch; unsigned short shm_unused; compat_uptr_t shm_unused2; compat_uptr_t shm_unused3; }; struct compat_shmid64_ds { struct compat_ipc64_perm shm_perm; compat_size_t shm_segsz; compat_ulong_t shm_atime; compat_ulong_t shm_atime_high; compat_ulong_t shm_dtime; compat_ulong_t shm_dtime_high; compat_ulong_t shm_ctime; compat_ulong_t shm_ctime_high; compat_pid_t shm_cpid; compat_pid_t shm_lpid; compat_ulong_t shm_nattch; compat_ulong_t __unused4; compat_ulong_t __unused5; }; struct compat_shminfo64 { compat_ulong_t shmmax; compat_ulong_t shmmin; compat_ulong_t shmmni; compat_ulong_t shmseg; compat_ulong_t shmall; compat_ulong_t __unused1; compat_ulong_t __unused2; compat_ulong_t __unused3; compat_ulong_t __unused4; }; struct compat_shm_info { compat_int_t used_ids; compat_ulong_t shm_tot; compat_ulong_t shm_rss; compat_ulong_t shm_swp; compat_ulong_t swap_attempts; compat_ulong_t swap_successes; }; struct bio_map_data { bool is_our_pages: 1; bool is_null_mapped: 1; struct iov_iter iter; struct iovec iov[0]; }; 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 { LCOEF_RPAGE = 0, LCOEF_RSEQIO = 1, LCOEF_RRANDIO = 2, LCOEF_WPAGE = 3, LCOEF_WSEQIO = 4, LCOEF_WRANDIO = 5, NR_LCOEFS = 6, }; 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 { 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; u32 cgroup; }; struct trace_event_data_offsets_iocg_inuse_update { u32 devname; u32 cgroup; }; struct trace_event_data_offsets_iocost_ioc_vrate_adj { u32 devname; }; struct trace_event_data_offsets_iocost_iocg_forgive_debt { u32 devname; u32 cgroup; }; struct iocg_wake_ctx { struct ioc_gq *iocg; u32 hw_inuse; s64 vbudget; }; 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; } __attribute__((packed)); struct acpi_table_lpit { struct acpi_table_header header; }; 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 lpss8250; struct lpss8250_board { unsigned long freq; unsigned int base_baud; int (*setup)(struct lpss8250 *, struct uart_port *); void (*exit)(struct lpss8250 *); }; 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 drm_mode_card_res { __u64 fb_id_ptr; __u64 crtc_id_ptr; __u64 connector_id_ptr; __u64 encoder_id_ptr; __u32 count_fbs; __u32 count_crtcs; __u32 count_connectors; __u32 count_encoders; __u32 min_width; __u32 max_width; __u32 min_height; __u32 max_height; }; struct drm_fb_helper_funcs; struct drm_fb_helper { struct drm_client_dev client; struct drm_client_buffer *buffer; struct drm_framebuffer *fb; struct drm_device *dev; const struct drm_fb_helper_funcs *funcs; struct fb_info *info; u32 pseudo_palette[17]; struct drm_clip_rect damage_clip; spinlock_t damage_lock; struct work_struct damage_work; struct work_struct resume_work; struct mutex lock; struct list_head kernel_fb_list; bool delayed_hotplug; bool deferred_setup; int preferred_bpp; bool hint_leak_smem_start; }; struct drm_fb_helper_surface_size; struct drm_fb_helper_funcs { int (*fb_probe)(struct drm_fb_helper *, struct drm_fb_helper_surface_size *); int (*fb_dirty)(struct drm_fb_helper *, struct drm_clip_rect *); }; struct drm_fb_helper_surface_size { u32 fb_width; u32 fb_height; u32 surface_width; u32 surface_height; u32 surface_bpp; u32 surface_depth; }; enum vgt_g2v_type { VGT_G2V_PPGTT_L3_PAGE_TABLE_CREATE = 2, VGT_G2V_PPGTT_L3_PAGE_TABLE_DESTROY = 3, VGT_G2V_PPGTT_L4_PAGE_TABLE_CREATE = 4, VGT_G2V_PPGTT_L4_PAGE_TABLE_DESTROY = 5, VGT_G2V_EXECLIST_CONTEXT_CREATE = 6, VGT_G2V_EXECLIST_CONTEXT_DESTROY = 7, VGT_G2V_MAX = 8, }; struct guc_log_section { u32 max; u32 flag; u32 default_val; const char *name; }; struct intel_dvo { struct intel_encoder base; struct intel_dvo_device dev; struct intel_connector *attached_connector; }; struct regmap_debugfs_node { struct regmap *map; struct list_head link; }; struct regmap_debugfs_off_cache { struct list_head list; off_t min; off_t max; unsigned int base_reg; unsigned int max_reg; }; enum spi_signal_type { SPI_SIGNAL_UNKNOWN = 1, SPI_SIGNAL_SE = 2, SPI_SIGNAL_LVD = 3, SPI_SIGNAL_HVD = 4, }; 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; }; struct register_test { __u32 reg; __u32 mask; }; struct nv_ethtool_str { char name[32]; }; enum { NvRegIrqStatus = 0, NvRegIrqMask = 4, NvRegUnknownSetupReg6 = 8, NvRegPollingInterval = 12, NvRegMSIMap0 = 32, NvRegMSIMap1 = 36, NvRegMSIIrqMask = 48, NvRegMisc1 = 128, NvRegMacReset = 52, NvRegTransmitterControl = 132, NvRegTransmitterStatus = 136, NvRegPacketFilterFlags = 140, NvRegOffloadConfig = 144, NvRegReceiverControl = 148, NvRegReceiverStatus = 152, NvRegSlotTime = 156, NvRegTxDeferral = 160, NvRegRxDeferral = 164, NvRegMacAddrA = 168, NvRegMacAddrB = 172, NvRegMulticastAddrA = 176, NvRegMulticastAddrB = 180, NvRegMulticastMaskA = 184, NvRegMulticastMaskB = 188, NvRegPhyInterface = 192, NvRegBackOffControl = 196, NvRegTxRingPhysAddr = 256, NvRegRxRingPhysAddr = 260, NvRegRingSizes = 264, NvRegTransmitPoll = 268, NvRegLinkSpeed = 272, NvRegUnknownSetupReg5 = 304, NvRegTxWatermark = 316, NvRegTxRxControl = 324, NvRegTxRingPhysAddrHigh = 328, NvRegRxRingPhysAddrHigh = 332, NvRegTxPauseFrame = 368, NvRegTxPauseFrameLimit = 372, NvRegMIIStatus = 384, NvRegMIIMask = 388, NvRegAdapterControl = 392, NvRegMIISpeed = 396, NvRegMIIControl = 400, NvRegMIIData = 404, NvRegTxUnicast = 416, NvRegTxMulticast = 420, NvRegTxBroadcast = 424, NvRegWakeUpFlags = 512, NvRegMgmtUnitGetVersion = 516, NvRegMgmtUnitVersion = 520, NvRegPowerCap = 616, NvRegPowerState = 620, NvRegMgmtUnitControl = 632, NvRegTxCnt = 640, NvRegTxZeroReXmt = 644, NvRegTxOneReXmt = 648, NvRegTxManyReXmt = 652, NvRegTxLateCol = 656, NvRegTxUnderflow = 660, NvRegTxLossCarrier = 664, NvRegTxExcessDef = 668, NvRegTxRetryErr = 672, NvRegRxFrameErr = 676, NvRegRxExtraByte = 680, NvRegRxLateCol = 684, NvRegRxRunt = 688, NvRegRxFrameTooLong = 692, NvRegRxOverflow = 696, NvRegRxFCSErr = 700, NvRegRxFrameAlignErr = 704, NvRegRxLenErr = 708, NvRegRxUnicast = 712, NvRegRxMulticast = 716, NvRegRxBroadcast = 720, NvRegTxDef = 724, NvRegTxFrame = 728, NvRegRxCnt = 732, NvRegTxPause = 736, NvRegRxPause = 740, NvRegRxDropFrame = 744, NvRegVlanControl = 768, NvRegMSIXMap0 = 992, NvRegMSIXMap1 = 996, NvRegMSIXIrqStatus = 1008, NvRegPowerState2 = 1536, }; enum { NV_OPTIMIZATION_MODE_THROUGHPUT = 0, NV_OPTIMIZATION_MODE_CPU = 1, NV_OPTIMIZATION_MODE_DYNAMIC = 2, }; enum { NV_CROSSOVER_DETECTION_DISABLED = 0, NV_CROSSOVER_DETECTION_ENABLED = 1, }; struct nv_txrx_stats { u64 stat_rx_packets; u64 stat_rx_bytes; u64 stat_rx_missed_errors; u64 stat_rx_dropped; u64 stat_tx_packets; u64 stat_tx_bytes; u64 stat_tx_dropped; }; struct nv_ethtool_stats { u64 tx_bytes; u64 tx_zero_rexmt; u64 tx_one_rexmt; u64 tx_many_rexmt; u64 tx_late_collision; u64 tx_fifo_errors; u64 tx_carrier_errors; u64 tx_excess_deferral; u64 tx_retry_error; u64 rx_frame_error; u64 rx_extra_byte; u64 rx_late_collision; u64 rx_runt; u64 rx_frame_too_long; u64 rx_over_errors; u64 rx_crc_errors; u64 rx_frame_align_error; u64 rx_length_error; u64 rx_unicast; u64 rx_multicast; u64 rx_broadcast; u64 rx_packets; u64 rx_errors_total; u64 tx_errors_total; u64 tx_deferral; u64 tx_packets; u64 rx_bytes; u64 tx_pause; u64 rx_pause; u64 rx_drop_frame; u64 tx_unicast; u64 tx_multicast; u64 tx_broadcast; }; struct ring_desc; struct ring_desc_ex; union ring_type { struct ring_desc *orig; struct ring_desc_ex *ex; }; struct nv_skb_map; struct fe_priv { spinlock_t lock; struct net_device *dev; struct napi_struct napi; spinlock_t hwstats_lock; struct nv_ethtool_stats estats; int in_shutdown; u32 linkspeed; int duplex; int autoneg; int fixed_mode; int phyaddr; int wolenabled; unsigned int phy_oui; unsigned int phy_model; unsigned int phy_rev; u16 gigabit; int intr_test; int recover_error; int quiet_count; dma_addr_t ring_addr; struct pci_dev *pci_dev; u32 orig_mac[2]; u32 events; u32 irqmask; u32 desc_ver; u32 txrxctl_bits; u32 vlanctl_bits; u32 driver_data; u32 device_id; u32 register_size; u32 mac_in_use; int mgmt_version; int mgmt_sema; void *base; union ring_type get_rx; union ring_type put_rx; union ring_type last_rx; struct nv_skb_map *get_rx_ctx; struct nv_skb_map *put_rx_ctx; struct nv_skb_map *last_rx_ctx; struct nv_skb_map *rx_skb; union ring_type rx_ring; unsigned int rx_buf_sz; unsigned int pkt_limit; struct timer_list oom_kick; struct timer_list nic_poll; struct timer_list stats_poll; u32 nic_poll_irq; int rx_ring_size; struct u64_stats_sync swstats_rx_syncp; struct nv_txrx_stats __attribute__((btf_type_tag("percpu"))) *txrx_stats; int need_linktimer; unsigned long link_timeout; union ring_type get_tx; union ring_type put_tx; union ring_type last_tx; struct nv_skb_map *get_tx_ctx; struct nv_skb_map *put_tx_ctx; struct nv_skb_map *last_tx_ctx; struct nv_skb_map *tx_skb; union ring_type tx_ring; u32 tx_flags; int tx_ring_size; int tx_limit; u32 tx_pkts_in_progress; struct nv_skb_map *tx_change_owner; struct nv_skb_map *tx_end_flip; int tx_stop; struct u64_stats_sync swstats_tx_syncp; u32 msi_flags; struct msix_entry msi_x_entry[8]; u32 pause_flags; u32 saved_config_space[385]; char name_rx[19]; char name_tx[19]; char name_other[22]; }; struct ring_desc { __le32 buf; __le32 flaglen; }; struct ring_desc_ex { __le32 bufhigh; __le32 buflow; __le32 txvlan; __le32 flaglen; }; struct nv_skb_map { struct sk_buff *skb; dma_addr_t dma; unsigned int dma_len: 31; unsigned int dma_single: 1; struct ring_desc_ex *first_tx_desc; struct nv_skb_map *next_tx_ctx; }; enum snoop_when { SUBMIT = 0, COMPLETE = 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_urb32 { unsigned char type; unsigned char endpoint; compat_int_t status; compat_uint_t flags; compat_caddr_t buffer; compat_int_t buffer_length; compat_int_t actual_length; compat_int_t start_frame; compat_int_t number_of_packets; compat_int_t error_count; compat_uint_t signr; compat_caddr_t usercontext; struct usbdevfs_iso_packet_desc iso_frame_desc[0]; }; struct usbdevfs_ioctl32 { s32 ifno; s32 ioctl_code; compat_caddr_t data; }; struct usbdevfs_ioctl { int ifno; int ioctl_code; void __attribute__((btf_type_tag("user"))) *data; }; struct usbdevfs_setinterface { unsigned int interface; unsigned int altsetting; }; struct usbdevfs_ctrltransfer { __u8 bRequestType; __u8 bRequest; __u16 wValue; __u16 wIndex; __u16 wLength; __u32 timeout; void __attribute__((btf_type_tag("user"))) *data; }; struct usbdevfs_disconnectsignal { unsigned int signr; void __attribute__((btf_type_tag("user"))) *context; }; struct usbdevfs_bulktransfer32 { compat_uint_t ep; compat_uint_t len; compat_uint_t timeout; compat_caddr_t data; }; struct usbdevfs_bulktransfer { unsigned int ep; unsigned int len; unsigned int timeout; void __attribute__((btf_type_tag("user"))) *data; }; struct usbdevfs_getdriver { unsigned int interface; char driver[256]; }; struct usbdevfs_disconnect_claim { unsigned int interface; unsigned int flags; char driver[256]; }; struct usbdevfs_ctrltransfer32 { u8 bRequestType; u8 bRequest; u16 wValue; u16 wIndex; u16 wLength; u32 timeout; compat_caddr_t data; }; struct usbdevfs_disconnectsignal32 { compat_int_t signr; compat_caddr_t context; }; struct usbdevfs_connectinfo { unsigned int devnum; unsigned char slow; }; 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]; }; union input_seq_state { struct { unsigned short pos; bool mutex_acquired; }; void *p; }; struct input_devres { struct input_dev *input; }; 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, }; enum { SNDRV_HWDEP_IFACE_OPL2 = 0, SNDRV_HWDEP_IFACE_OPL3 = 1, SNDRV_HWDEP_IFACE_OPL4 = 2, SNDRV_HWDEP_IFACE_SB16CSP = 3, SNDRV_HWDEP_IFACE_EMU10K1 = 4, SNDRV_HWDEP_IFACE_YSS225 = 5, SNDRV_HWDEP_IFACE_ICS2115 = 6, SNDRV_HWDEP_IFACE_SSCAPE = 7, SNDRV_HWDEP_IFACE_VX = 8, SNDRV_HWDEP_IFACE_MIXART = 9, SNDRV_HWDEP_IFACE_USX2Y = 10, SNDRV_HWDEP_IFACE_EMUX_WAVETABLE = 11, SNDRV_HWDEP_IFACE_BLUETOOTH = 12, SNDRV_HWDEP_IFACE_USX2Y_PCM = 13, SNDRV_HWDEP_IFACE_PCXHR = 14, SNDRV_HWDEP_IFACE_SB_RC = 15, SNDRV_HWDEP_IFACE_HDA = 16, SNDRV_HWDEP_IFACE_USB_STREAM = 17, SNDRV_HWDEP_IFACE_FW_DICE = 18, SNDRV_HWDEP_IFACE_FW_FIREWORKS = 19, SNDRV_HWDEP_IFACE_FW_BEBOB = 20, SNDRV_HWDEP_IFACE_FW_OXFW = 21, SNDRV_HWDEP_IFACE_FW_DIGI00X = 22, SNDRV_HWDEP_IFACE_FW_TASCAM = 23, SNDRV_HWDEP_IFACE_LINE6 = 24, SNDRV_HWDEP_IFACE_FW_MOTU = 25, SNDRV_HWDEP_IFACE_FW_FIREFACE = 26, SNDRV_HWDEP_IFACE_LAST = 26, }; struct hda_verb_ioctl { u32 verb; u32 res; }; struct rtnl_link { rtnl_doit_func doit; rtnl_dumpit_func dumpit; struct module *owner; unsigned int flags; struct callback_head rcu; }; 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 { 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_MAX = 43, }; 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 { 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[65]; struct nlattr *attr[51]; struct nlattr *slave_attr[43]; }; 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 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_link_ifmap { __u64 mem_start; __u64 mem_end; __u64 base_addr; __u16 irq; __u8 dma; __u8 port; }; struct ifla_vf_rss_query_en { __u32 vf; __u32 setting; }; struct ifla_vf_link_state { __u32 vf; __u32 link_state; }; struct ifla_vf_vlan_info { __u32 vf; __u32 vlan; __u32 qos; __be16 vlan_proto; }; struct ifla_vf_spoofchk { __u32 vf; __u32 setting; }; struct ifla_vf_tx_rate { __u32 vf; __u32 rate; }; struct ifla_vf_trust { __u32 vf; __u32 setting; }; struct ifla_vf_vlan { __u32 vf; __u32 vlan; __u32 qos; }; struct ifla_vf_rate { __u32 vf; __u32 min_tx_rate; __u32 max_tx_rate; }; struct ifla_vf_mac { __u32 vf; __u8 mac[32]; }; struct ifla_vf_broadcast { __u8 broadcast[32]; }; 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 { 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 retry_state { STATE_CONGESTED = 0, STATE_RESTART = 1, STATE_DONE = 2, }; struct bpf_iter__udp { union { struct bpf_iter_meta *meta; }; union { struct udp_sock *udp_sk; }; uid_t uid; int: 32; int bucket; }; 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; }; struct icmp6_err { int err; int fatal; }; struct icmpv6_msg { struct sk_buff *skb; int offset; uint8_t type; }; struct rpc_cred_cache { struct hlist_head *hashtable; unsigned int hashbits; spinlock_t lock; }; struct encryptor_desc { u8 iv[16]; struct skcipher_request *req; int pos; struct xdr_buf *outbuf; struct page **pages; struct scatterlist infrags[4]; struct scatterlist outfrags[4]; int fragno; int fraglen; }; struct decryptor_desc { u8 iv[16]; struct skcipher_request *req; struct scatterlist frags[4]; int fragno; int fraglen; }; struct sta_link_alloc { struct link_sta_info info; struct ieee80211_link_sta sta; struct callback_head callback_head; }; struct group_data { int limit[21]; int base[20]; int permute[258]; int minLen; int maxLen; }; struct bunzip_data { int writeCopies; int writePos; int writeRunCountdown; int writeCount; int writeCurrent; long (*fill)(void *, unsigned long); long inbufCount; long inbufPos; unsigned char *inbuf; unsigned int inbufBitCount; unsigned int inbufBits; unsigned int crc32Table[256]; unsigned int headerCRC; unsigned int totalCRC; unsigned int writeCRC; unsigned int *dbuf; unsigned int dbufSize; unsigned char selectors[32768]; struct group_data groups[6]; int io_error; int byteCount[256]; unsigned char symToByte[256]; unsigned char mtfSymbol[256]; }; struct rc { long (*fill)(void *, unsigned long); uint8_t *ptr; uint8_t *buffer; uint8_t *buffer_end; long buffer_size; uint32_t code; uint32_t range; uint32_t bound; void (*error)(char *); }; struct lzma_header; struct writer { uint8_t *buffer; uint8_t previous_byte; size_t buffer_pos; int bufsize; size_t global_pos; long (*flush)(void *, unsigned long); struct lzma_header *header; }; struct lzma_header { uint8_t pos; uint32_t dict_size; uint64_t dst_size; } __attribute__((packed)); struct cstate { int state; uint32_t rep0; uint32_t rep1; uint32_t rep2; uint32_t rep3; }; 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, }; struct fprop_local_single { unsigned long events; unsigned int period; raw_spinlock_t lock; }; struct klist_waiter { struct list_head list; struct klist_node *node; struct task_struct *process; int woken; }; 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, }; 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, }; #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute pop #endif #endif /* __VMLINUX_H__ */